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

OS/2 e-Zine!		September 16, 1998		volume 3, number 14
--------------------------------------------------------------------------
Copyright 1998		Falcon Networking		ISSN 1203-5696

	"Over Three Quarters of a Million Satisfied Visitors!"


OPINIONS:

  Chris Wenham 
  Chris Wright

DEPARTMENTS:

  The Rexx Files 

REVIEWS:

Music in OS/2

  MIDI Sound Studio - Christopher B. Wright 
  MP3 Players, PM123 vs. WarpAMP - Lief Clennon 

  The Hacker Card - David Wei 
  First Looks: WebWilly Watch for OS/2 - Chris Wenham 
  First Looks and Nifty Gadgets: 
	SmartWindows 0.81	WarpNote

ARTICLES:

  Dynamic Web Sites in OS/2: Part IV - Chris Wenham 
  Learn how to import data from a real database or spreadsheet 
  and use it to build your web catalog. 

END NOTES:

  Top Selling Software From Mensys 

ADMINISTRIVIA:

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


Copyright 1998   -   Falcon Networking
ISSN 1203-5696

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

Chris's Rant		-Chris Wenham

Mining For The Mother Lode

Summary: Where can we expect new software for OS/2 to come from in the future? What's the most likely source? A look into three possibilities.

It would not be wrong for an OS/2 publication to say once in a while: "Aw heck, what are we going to write about next year?" because the fact is, that's what I've been asking myself recently. By this time next year there will be even less commercially produced new software for OS/2, barring a miracle of course (which could happen and will be the topic of another column). This means less to do, less to try, and less to write about. Where is the excitement going to come from in 1999?

In addition to the status quo, three new possibilities made themselves apparent, three that might yield the mother lode of new software for OS/2. One is a program you can download, the next is a technology, and the last is more like a philosophy and attitude. To appraise you of their chances, I've ranked and listed them in reverse order of likeliness. Going from least likely all the way down to a sure thing. Read on.

Status Quo
Likeliness: Abysmally Low

This is the control group. The "do nothing different" option. We keep looking for new software made by OS/2 vendors trying to make a profit in the OS/2 market. But is the OS/2 market really supporting these kind of companies anymore? By the looks of things, no. Take it from the guy who gets all the press releases; the trickle of new software for OS/2 is going down. Most of what's coming are shareware titles and upgrades to existing programs.
In my September 1st rant I suggested that there may be some companies and products that can survive in an OS/2 market, developed by conventional means, selling by conventional means, profiting by conventional means. Maybe. But as I also pointed out in that column, it's very hard to tell who they are.

I give this an Abysmally Low rating because I'm not seeing any signs of the trend being reversed. Commercial software written specifically for the home and small business OS/2 user is not making money for most companies. What is being made is usually written off as a "customer loyalty" expense or to secure a larger deal. We're riding on the coattails of bigger things, and sooner or later, we're going to get shrugged off even that.

Win32-OS/2
Likeliness: Medium

Wave a magic wand and poof! Your Windows 95 applications are magically converted into native OS/2 programs that need no emulator or space-consuming Windows subsystem. Just a few support libraries. Is this a great thing or what?

But let's look at it this way: The applications you convert weren't written for OS/2, can't take advantage of OS/2's best, come from companies that still don't care about OS/2, and negate the support warrantee at the same time. If it works it'll introduce a flood of software that forces vendors of native OS/2 software to compete against products from companies with larger budgets and who barely even know we're here. Is this a good thing?

That was the core of the debate against putting Windows 95 support in OS/2. Luckily for OS/2 vendors, Win32-OS/2 is not yet capable of converting a serious enough number of applications to be a threat. But what do they do when it can? Will the market for truly native OS/2 applications be decimated, or will vendors simply have to get better and compete? Win32-OS/2 could heal the wound it simultaneously inflicts, because if it seriously makes OS/2 a compelling alternative for Windows users, as Timur likes to suggest, then the increase in users might make the OS/2 market profitable again for OS/2 vendors to stay and duke it out. But if it doesn't, then you and me could be left feeling like second class citizens.
Win32-OS/2 doesn't seem to be developing fast enough to make this future happen, however, and that's why I place its likeliness at Medium. The technical issues are still enormous and the Windows API may shift too quickly to make it a long-term solution, just as WinOS/2 is not much of a solution anymore now.

Java
Likeliness: Good

Buy a faster chip, buy more RAM, and Java performance doesn't matter anymore. Well to a point it's ceasing to matter much today. I wasn't kidding when I said J Street Mailer was an eye-opener, it is. But then I wouldn't attempt to run it alongside the Java versions of AOL Instant Messenger or ICQ, both of which are tiny programs in comparison, but weigh heavy on your system.

I list Java here because it has the whole weight of IBM bearing down on it. This is what they want to win. And when a $60 billion dollar corporation wants something to win, it's at least going to have better odds than most others.
But it also has many of the same problems (for the OS/2 market) that Win32-OS/2 does. Java programs don't take advantage of OS/2 features like Workplace Shell integration, and they compete against products from OS/2 dedicated vendors which do. If Java takes off, will it spell an end to unique OS/2 applications?

But then Java is not making much speed on the desktop right now, so the issue may be moot. Its success has been largely measured in the server market, where Java applications are helping run the scenes behind web sites and factory automation systems. Being ready and available now, I give it a likeliness rating of Medium, as its success is also helped by the much larger and more lucrative "anything outside of OS/2" market. Some killer Java apps for the desktop might be coming soon. If they do, expect more old OS/2 vendors to do what Innoval did, and switch fast.

Free Software 
Likeliness: High

Just how profitable is the OS/2 market right now anyway? In the (http://www.os2ezine.com/forums/get/forums/rant/Sept1-1998.html) discussion forum for my September 1st rant it was revealed by one shareware author that registrations for his program were miserably small. "So what?" you ask, "I guess his program just wasn't good enough." But then he pointed out how high it was in BMT Micro's top-10 selling shareware for that month. Uh oh. If he's doing so poorly, yet his program was ranked in the Top 10, then that doesn't say much for the rest, does it? This trend is not recent, either. Last year, during one of my last phone conversations with Joel Krautheim of SPG Inc (former developers of ColorWorks for OS/2) he revealed that sales of ColorWorks 2.0 were down to only 40 copies per month, and in his words he had "A year's supply of ColorWorks on my desk". At the June 1997 price, it wasn't enough for the families of a 3-employee company to really make a living on. Yet ColorWorks 2.0 was ranked one of the highest on the list of Top selling apps from Indelible Blue that same month. If Joel was telling the truth, then the vendors of all the other applications on that list shouldn't have been selling much either.

So if there's no more profit in the OS/2 market, does that mean the only software that will continue to be made and updated in the future will be from developers who don't care for a profit? In other words, is free software OS/2's best bet for the future?
Now "Free Software" can mean both freeware and free software (also known as "Open Software"). The distinction being that freeware is usually copyrighted and distributed without source code, but free software is "copylefted" (uses the GNU Public License) and does come with the source code.

Would it work for OS/2? OS/2 itself is a proprietary operating system that you must pay money for and cannot obtain the source code for. Would free software developers pay serious attention to it like they do for truly free platforms such as GNU/Linux and FreeBSD?
There's reason to believe that they will, because the issues most central to the hearts of many free software developers is not so much idealism and information philosophy as its ideal tools and design philosophy. OS/2 is a compelling platform to develop on for its technical merits alone. Plus, with the EMX libraries developed years ago, a staggering amount of software originally developed for Unix is making its way to OS/2. Emacs is one example of an admittedly unsexy but useful application, and an early port of GIMP (a photo processing and painting program, feature-par with PhotoShop) is available now to help fill the hole that the unprofitable ColorWorks left behind.

The most considerable problem with free software under OS/2 right now is the user unfriendliness met when trying to install or set programs up (GIMP requires than you have XFree or some other X Windows server installed, and both require the EMX libraries to be installed).

I give this a High likeliness because it's the one least affected by other companies, market conditions, or a single team of programmers. There is also a flood of software already being made under this philosophy. But in truth it's more like a superset of the above, since a free application could be written in Java or could be quickly ported with Win32-OS/2. Free software comes from developers who either earn their pay some other way (they consult, do custom programming, sell support and so-on) and do not usually write a program unless they have a real personal interest in it. It's also adopted, maintained and improved by other programmers who elect themselves to the task, meaning that the demise of the original creative entity does not affect the future of the program itself.

To end this column I thought about expressing our undying optimism here at the e-Zine!, but thought that'd just wipe off as lip service. Instead I'll say that of all the above, I personally like the idea of Java the best, even if it does mean another hardware upgrade. But emotion wasn't supposed to play a part in this evaluation, only a study of trends.

                         - * -

Have your own ideas for the future of OS/2 software? Join in our (http://www.os2ezine.com/forums/get/forums/rant/Sept16-1998.html) discussion forum and talk about it with other readers.

***********************************
 
Corporate Sponsors

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

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

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

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

(http://www.pinnacletech.com/os2site.html) Pinnacle Technology
Desktop security, control, and administration for Windows NT, Windows 95/98, and OS/2.

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

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

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

***********************************
 
Chris Wright		-Christopher B. Wright

A Wolf in Sheep's Clothing in a Den of Lions, Part 2 ("A Niche For All Seasons")

Last issue I'd planned to follow up my introduction to this topic with a description of the strengths of the OS/2 community and how those strengths can help us create our own niche in the computer world. Based on some of the responses I received from that article, however, I think it would be better that I elaborate on why I think Internet Publishing would be a great niche for OS/2.

IBM, whether they admit it or not, doesn't care too much about OS/2 as a client operating system. They want to continue selling Warp Server and getting their vendors to use Workspace On Demand as their client OS. This is, for them, a business decision: they haven't been able to sell OS/2 as a client in enough units to consider it an success, so they'll just ignore it and hope it eventually goes away.

However, the server has a lot of potential as an applications server, a file server, and a web server. The server is still being developed (the next version is code named "Aurora" and entering the beta testing phase.)

The client is still being supported, and still being updated via fixpacks and new drivers over the Internet. It's still a very stable and reliable operating system with one of the best user interfaces ever created for a personal computer. The client has excellent Internet tools and can connect to a wide variety of networks.

IBM's focus is the corporate consumer, concentrating on servers. IBM is no longer focusing on the client, though it continues to support it because IBM is IBM.

We, on the other hand, want a continually supported OS/2 client. We want IBM to be interested in OS/2 as both a client and a server operating system. We want IBM to actually, truly, and finally, make the commitment to make OS/2 succeed - or, at least, give someone else the opportunity to do so.

To do this, we need to be able to point to an example where OS/2 client is the preferred platform. It needs to be a market where there is no one dominant force, and where there isn't really a lot of momentum behind one platform.

This niche, of course, is the World Wide Web.

Why the World Wide Web? Because it's visible. Because it's trendy. Because the web is a results-oriented, rather than process-oriented medium. People view the web through a web browser, not an operating system! Whether or not the server hosting the HTML pages is running Microsoft NT, MacOS, BeOS, Linux, OS/2, Solaris, or any other operating system is irrelevant to the end user -- so long as he or she can browse the pages, buy the products, take the surveys, download the software, listen to the streaming audio, or interact in the bulletin board.

To the developer, however, the operating system can be very, very, very important. Ever spent hours working on a web page, only to have your Windows 95 machine lock up just from trying to scroll down a page of text in Microsoft FrontPage? I have; it's frustrating. Ever had your machine crash because you were working on a web page in one program, updating the web page graphics in another program, and editing the articles in a third, and run out of resources? I have; it's frustrating. Ever spent hours and hours and hours trying to configure a CGI script, and had it not work because something on your system was configured incorrectly? I have; it's frustrating. Ever wanted to host your own web page and tried to calculate the combined hardware and software costs of everything involved? I have; it's depressing.

OS/2 has a lot of answers to these problems. It's stable. It multitasks better than most client operating systems out there today. It's a lot easier on your system resources than some other, more popular operating systems. And while it might not have as elegant a set of tools available to web designers as, say, the Windows 9x platforms, it probably has everything you need to create and manage complicated sites with a minimum amount of time and effort.
And, best of all, the people visiting your site won't care. They won't even know, unless you tell them.

This is the web's advantage: as long as the web browser can understand the HTML code, no one cares what operating system the site is being hosted on. No one cares what operating system was used when the site was designed. But if you can demonstrate that an operating system will give you a better, more reliable development environment, if you can convince people that an operating system will more consistently handle a large amount of web traffic with fewer hassles to the webmaster or sysadmin, and if you can show people that it can do this MORE CHEAPLY than other operating systems, you suddenly have people's interest. More to the point, you suddenly have people interested who may have felt previously that they couldn't afford to do what they wanted to do. Most specifically, you have now captured the attention of small businesses, home offices, and up-and-coming entrepreneurs.

People who start businesses are looking for cheap and reliable ways to reach their goals. People who want to start a business and sell products over the web are looking for a solution that will both a) work and b) be affordable and c) be expandable when it takes off. People who are just starting out in their private ventures are looking for ways to get the most return out of the last amount of money. I feel that OS/2 can be sold, and sold successfully, to these people.

"Oh, you want to have a dedicated web site for your 10-person business? Well, try using OS/2 Warp 4 client with the Apache web server. It's much, much cheaper than an equivalent NT solution, and when your business grows you can get Warp Server (or Aurora) if you need more power later on down the line..."

You get the idea.

This niche needs to be a market that can be tied into IBM's original focus. If IBM is only interested in OS/2 as a server operating system, we need to choose a client niche that can increase sales and interest in Warp Server. If IBM can see people choosing Warp Server as a web server because Warp Client is such a great web development platform, IBM will be more interested in developing Warp Client.

"While you're at it, have you considered putting OS/2 on some of your end-user machines? It's cheaper than Windows NT, Year 2000 compliant, and behaves very well in a network environment. If you need to manage a lot of PC's at once, have you considered Workspace on Demand?"...

The art of carving out a niche is not to try and steal customers away from whatever tools they're already using to do the job, but to find people who haven't started doing the job yet. People starting a new business, setting up a web site, and the rest already know "where they want to go today," they just don't know how they're going to get there. Most people just starting out are willing to use a compact car until they can afford something fancier. If they find, to their delight, that the compact car is really a souped-up racer that was put in a lighter frame just to squeeze that much more oomph out of the engine, they'll stick with it.
That, ladies and gentlemen of the jury, is the niche we need to be aiming for, and why it needs to focus on the web.

Ok, next issue I'll talk about what we have going for us that can help this dream come true. I promise.

Join the debate with other readers in our interactive (http://www.os2ezine.com/forums/get/forums/wright/Sept16-1998.html) discussion forum.

***********************************
 
The Rexx File		-Dr. Dirk Terrell

Summary: A look at advanced math functions in Rexx

Being an interpreted language, REXX is usually not a good choice when it comes to complex numerical calculations. There are situations, however, where REXX is a good choice. Fortran is normally the language of choice for scientists like myself because of its optimizations for numerical work. But Fortran is not very useful when it comes to reading and writing text files. REXX, of course, excels at handling text and piecing things together. And with a good mathematical library, it can do a decent job for numerical work.

This month a reader at NASA's Marshall Space Flight Center asked me if I had any OS/2 REXX code to calculate the position of the Sun at a given time and location. They had a program that would do such calculations, but it wasn't very convenient to use. With a REXX program, users could more easily customize it for their needs. I hadn't written such a program in REXX, but I thought it would give me a chance to talk about the numerical capabilities of REXX.

REXX comes with the basic mathematical operators:

Operator	Symbol		Example
Addition	+		4 + 2 = 6
Subtraction	-		4 - 2 = 2
Multiplication	*		4 * 2 = 8
Division	/		4 / 2 = 2
Exponentiation	**		4 ** 2 = 16

You also have a couple of other useful operators at you disposal. The // operator returns the remainder of a division. For example, nine divided by two doesn't yield a whole number result, but two plus a remainder of one. The // operator would return one in that case. The other useful operator, which is complementary to the // operator is the % operator which returns only the whole number part of a division. So, 9 % 2 would return four.

And that's where the numerical functions of REXX end unfortunately. For anything else, you will have to either write a REXX subroutine to perform the function or use an external library. For example, numerical work will involve the trigonometric functions like sine and cosine. These functions can be written as the sums of infinite series. The cosine function, for example, can be written as:

cosine(x) = 1 - (x**2)/2! + (x**4)/4! - (x**6)/6! - ...

Where the ! means the factorial function, e.g. 6! = 6 * 5 * 4 * 3 * 2 * 1. So, a REXX routine that implements this algorithm looks like this:

/* Routine to calculate the cosine of an angle */
Say "Enter the angle in radians:"
Parse Pull Angle
Say "How many digits of precision?"
Parse Pull NDigits
Numeric Digits NDigits+1
Limit=10**-(NDigits+1)
C=cos(Angle)
Say "Cos("||Angle||") =" C

Exit

Cos:
/* Compute the cosine of an angle in radians */
Procedure Expose Limit
Parse Arg Angle
Sum=1
Sign=1
Epsilon=1
Old=0
i=0
Do While Epsilon > Limit
i=i+2
Sign=-1*Sign
Sum=Sum+Sign*(Angle**i/Factorial(i))
Say "Sum:" Sum
Epsilon=Old-Sum
/* Make epsilon always positive for comparison */
If Epsilon < 0  then
Epsilon=-1*Epsilon
Old=Sum
end /* do */

Return Sum

and the factorial routine looks like this:

Factorial:
Procedure
Parse Arg N
Prod=1
Do j=N to 2 By -1
Prod=Prod*j
end /* do */
Return Prod

This program asks the user for the angle in radians and the number of digits to use in the calculations. That is one advantage to using REXX for numerical calculations: the ability to easily change the precision of the calculation. Now, above I said that the series we are using is infinite, but obviously we are not doing an infinite number of calculations. How many do we need to do? The answer lies in the program's use of the number of digits of precision. We only need to do the calculations until the computed number doesn't change from one iteration to the next. So, we ask the user how many digits of precision are necessary and then compute the cosine series until the difference between one iteration and the next is less than the number of significant digits dictates.

The above routine can be used to calculate the cosine of an angle, but it may not be the optimal solution if you have a large number of cosines to calculate because of the interpreted nature of REXX. If you need a faster method or don't want to write the routines yourself, then you need to use an external library for math functions. There are several of them around and I use
(http://www.os2ss.com/archives/hobbes/os2/dev/rexx/rexxmath.zip) REXXMATH by Zhitao Zeng.

REXXMATH has many mathematical functions. Some of the common ones are:

Function	Description
acos( x )	Inverse cosine
asin( x )	Inverse sine
atan( x )	Inverse tangent (-Pi/2 to +Pi/2 version)
atan2( x, y )	Inverse tangent (0 to 2*Pi version)
ceil( x )	Next integer larger than x
cos( x )	Cosine
cosh( x )	Hyperbolic cosine
exp( x )	Exponential function, e.g. e**x)
fabs( x )	Absolute value
floor( x )	Next integer less than x
fmod( x, y )	Modulo function (same as // operator in REXX)
log( x )	Natural (base e) logarithms
log10( x )	Common (base 10) logarithms
sin( x )	Sine
sinh( x )	Hyperbolic sine
sqrt( x )	Square root
tan( x )	Tangent
tanh( x )	Hyperbolic tangent

To use these functions, simply load the library in the usual way:

call RxFuncAdd 'MathLoadFuncs', 'REXXMATH', 'MathLoadFuncs'
call MathLoadFuncs

and afterwards they will be available to you. Remember that the argument to a function like the cosine is an angle and that the angle must be measured in radians, not degrees. Most people are used to thinking of angles in degrees, so you must convert angles measured in degrees to radians before passing them to these functions. The conversion is pretty simple though. There are 2*Pi radians in a full circle, 360 degrees. So, to convert an angle X in degrees to radians, you multiply it by 360/(2*Pi) or 180/Pi. To convert from radians to degrees, just invert the conversion factor. In REXX, two routines that do these conversions look like this:

Rad2Deg:
Procedure Expose Pi
/* Convert an input angle in radians to degrees */
Parse Arg Radians
Radians = Radians * (180/Pi)
Return Radians

and

Deg2Rad:
Procedure Expose Pi
/* Convert an input angle in degrees to radians */
Parse Arg Degrees
Radians = Degrees * (Pi/180)
Return Radians

Obviously, a library like REXXMATH saves you a lot of programming time as opposed to writing everything yourself in REXX.

Finally, let me make a few comments on the code to calculate the position of the Sun at a given location and time. I won't bore you with the details of how such a calculation is done since it is, as you might imagine, somewhat complicated and not really germane to this column. But I will make it available for the curious. Note that this code is only accurate to a few minutes and doesn't include corrections for various effects that would be necessary for higher accuracy. It computes the altitude and azimuth of the Sun given the date and time and location of the observer. The date and time must be in Universal Time, so make sure to apply the correction for your time zone before entering it. The altitude of an object is the angle that it makes to the horizon, 0 degrees meaning that the object is on the horizon and 90 degrees meaning that it is directly overhead. The azimuth is an indication of the compass direction the observer is facing, with 0 degrees being north, 90 degrees east, 180 degrees south, and 270 degrees west. Have fun with it.

***********************************
 
MIDI Station Sequencer 1.1		-Christopher B. Wright

Summary: MIDI Station Sequencer is a surprisingly useful program. While it lacks some features I'd like to see (such as a more intuitive way of assigning MIDI patches to tracks, and a piano roll view to make more precise additions to your work) it is an excellent free-form MIDI sequencing program with room to expand.

If Cakewalk is the standard by which all MIDI sequencing programs are judged, think of MIDI Station Sequencer as a "Cakewalk Lite" in training for the OS/2 platform. MIDI Station Sequencer has started on the path towards being a rich and versatile sequencing application, and while I can think of many things I'd like to see added in future versions, it covers the bases very well and will be a valuable addition to any OS/2 MIDI enthusiast's studio.
However, don't try to use this application unless you have a card that will correctly use the RTMIDI drivers. It absolutely depends on functioning RTMIDI drivers -- without them, this program will not work at all.

Installation, Documentation, Support 

MIDI Station Sequencer is almost 1.6 megs large and can be downloaded from various locations on the Internet, including BMT Micro and Hobbes. The program costs $30 US to register, and you need to register it before you save any of your sequences.

MIDI Station Sequencer does not use IBM's standard installer. It uses a simple text install routine that updates the desktop with the appropriate icons and puts the files in the chosen directory. Early versions of this release had an install script error that would cause the install to fail, sending an "error in line 61" message to the end user, but a fix has since been posted on the authors home page that solves this problem. You don't actually need to install the program to use it, however -- all you need to do is run the executable after you've unzipped it.

Trying to evaluate the ease of installation for this program is a bit difficult because it depends on RTMIDI to function properly, and not all sound cards use RTMIDI. For example, Creative Labs sound cards are not RTMIDI compatible -- and they're the "industry standard!" Crystal Semiconductor-based sound cards are the best for RTMIDI, but even they are not problem free. Case in point, I use a Crystal TidalWave 128 card, which is supposed to be RTMIDI compatible. While it works fine now, it didn't originally -- I don't know why. I messed around with it so much my system became very unstable and I destroyed my multimedia support. I eventually wound up re-installing OS/2 without any multimedia support at all, installing the latest Crystal drivers, then installing MMOS/2. While that worked, I found it something of an extreme solution to the problem.

The program documentation is reasonable but not encyclopedic. The troubleshooting section dealing with RTMIDI problems was especially sparse, but that may be simply because in most cases either it works or it doesn't, and there's not really a lot you can do if it doesn't. The documentation also assumes you have at least some knowledge of MIDI sequencing, which is a shame since out of the OS/2 sequencing programs I've reviewed it's the easiest to use, and the most potentially user-friendly for beginners.

User Interface 

Of the programs I've reviewed, MIDI Station Sequencer is the most "traditional" in terms of how its laid out. While it is of course much simpler in terms of features and scope, it roughly resembles Cakewalk's layout. In fact, the more I used the program the more I thought how, with work, MIDI Station Sequencer could be OS/2's Cakewalk. It's main interface looks a lot like the instrument configuration region of Cakewalk 4.5 (the last version that will run in a Win-OS/2 session). It also has a "bars view" that gives you a semi-graphical representation of when instruments are and are not being used that is very similar in concept to Cakewalk's "bars view" region.

This traditional UI approach is a good idea, it makes using the application a lot more intuitive for people who have had some experience with sequencing software in the past. Still, there are some areas where I felt widgets could have been implemented a little more logically. For example, on the dialog box that configures your patches, I felt it would have been useful if I could have simply typed in an instrument number instead of using the up & down arrows to scroll through them.

Features 

MIDI Station Sequencer has all the basic features you'd expect in a traditional sequencing program. You can define instruments by setting up the appropriate channel, bank and program # you want MIDI Station Sequencer to activate, and can name it whatever you wish. I was disappointed that the program didn't include presets for the 127 standard MIDI instruments -- I thought that would have been quite a time saver in some instances.

MIDI Station Sequencer allows you to record your tunes on the fly: you configure your instruments, hit record, and play until you're ready to stop, then hit the "stop" button at the top of the main screen. The most recent release of MIDI Station Sequencer supports MIDI-thru, which allows you to hear what you're playing while you're recording it. This is a significant enhancement to the program -- before that you wouldn't be able to hear what you were recording until after you'd finished!

MIDI Station Sequencer provides a quantize tool to help you "clean up" your tracks by moving the notes to the closest note you define (quarter notes, sixteenth notes, etc), and it allows you to step record your tunes (go through the sequence step by step, adding notes one at a time). However, there doesn't really seem to be a "piano roll" function that allows you to easily modify, bit by bit, the work you're already done. (Note to Chris: use cakewalk01.tif for an illustration of Cakewalk's ability to do this). This seems to be the next logical step in the application's development: the ability to modify the music you've recorded through a point-and-click interface.

One of the niftier additions to MIDI Station Sequencer is a mixer utility for your MIDI tracks. With this utility, you can preset the volume and pan for each instrument easily. There are also tools that let you change the tempo and rhythm of the piece by inserting tempo and time signature changes in the piece itself. You could, for example, take a piece of music playing at 100 beats per minute in 4/4 and transform it into a 150 beats per minute piece of music in 3/4 time as soon as it reaches measure 88.

One of the things this program will not do, that most of the newer versions of Cakewalk will, is allow you to record audio tracks as well as MIDI tracks. The author has mentioned that he's considering it for a future release, but for the moment this is a MIDI only application.
The only really big problem I had with MIDI Station Sequencer was that it didn't seem to respect the instrument choices made by MIDI files created in other programs. I created a sample MIDI file in Cakewalk 4.5 to test on all the programs, and MIDI Station Sequencer lost the instrument settings. No amount of adjusting afterwards would bring them back. In fact, in order for the song to sound right I had to manually preset my Yamaha MU-50 (the tone generator I use for all my MIDI instrument sounds).

Final Thoughts 

MIDI Station Sequencer is a very capable program with a lot of promise. Of the programs I've reviewed, this one shows the most ability to fill in as a sequencing program for people weaned on Cakewalk. While you won't find all the bells and whistles that comes with the standard for PC MIDI sequencing, you will be pleasantly surprised at the bells and whistles you do find, and can look forward to more interesting enhancements in the future.

However -- and this is very important -- you need to ensure that your hardware supports RTMIDI before committing to this program. If your sound card cannot support the RTMIDI drivers, this application will be unusable.

Suitability: 3
Ease of use: 3.5
Stability: 4
OS/2 Leverage: 3

Overall: 3.5

MIDI Station Sequencer 1.1
by (http://www.MIDIStation.cei.nu/) Christopher Hodges
download from (http://hobbes.nmsu.edu/pub/os2/apps/mmedia/music/midi/editors/mseqv11.zip) Hobbes Archive (1.52mb)
Registration: US$30

***********************************
 
PM123 vs. WarpAMP		-Lief Clennon

Summary: The two top MP3 players for OS/2 are pitted head to head in this comparison review.

This month OS/2 e-Zine! focuses on audio, and once again the controversial mp3 format is a topic for discussion. Using lossy compression (similar in concept to jpeg for images), mp3 files are able to deliver CD-quality stereo sound at a file size of less than a megabyte per minute, and like jpeg, the quality can be reduced to create additional savings in size. Compared to raw audio (i.e., WAV), which takes over eleven megabytes per minute for the same quality, this is a truly impressive technology, and the only price is a fairly heavy CPU load for decoding in real-time.

The list of graphical mp3 audio players for OS/2 is very short. In fact, there are only two viable options: PM123 and WarpAMP. And despite appearances, there is no clear-cut winner between them just yet; this is a race between tortoise and hare. Both players are very easy on the CPU, only using about 10% of my 200mHz P6, and so could conceivably run on a fast 486 at full quality; and both offer the option to "downmix" from 44kHz to 22kHz sample rates, and from stereo to mono, each conversion halving the processor power required.

Common Ground

WarpAMP is still in beta. In fact it has been frozen at beta 4 since late March and I do not know when or if a new version is due. PM123, on the other hand, has gone from free beta software to commercial shareware, with a version 1.01 recently released that fixed various problems including the inability to play some files, and difficulties with GUS audio cards.
Both players offer similar functionality to your average CD player: you can skip ahead or behind a full track, or scan within the current song; both also have shuffle-play features. However, unlike a CD, there is no limit to the number of songs in your playlist. I myself have over 300 songs in a single list, and using shuffle-play it's like having a personal radio station.

Finally, both WinAMP and PM123 have a full suite of playlist management tools, allowing you to automatically sort or manually arrange your play order. They also each have an ID3 tag editor; ID3 is a method of embedding information into the mp3 file, including artist, song and album title, year of release, etc. I'll comment here that WarpAMP's tag editor is a bit better designed: it allows you to scan through the playlist from within the editor dialog, rather than requiring you to select a song, edit the tag, close the editor, select another song, etc.

Head to head

PM123 has quite a few things WarpAMP doesn't. First of all, the DLL that actually plays the files (both players keep their guts in a DLL, while the EXE contains the interface) is significantly more complete. WarpAMP has problems with forward-seeking within a song, and reverse-seek is quite nearly useless; PM123 does both quite smoothly, and furthermore can jump to any specific point in the song; this is controlled by a slider bar that moves across the screen over the course of the song. Also, WarpAMP's player doesn't properly flush the DART buffers, often causing clicks between songs; PM123 fixed this with version 1.01.

The real selling point of PM123, though, is its support for both plugins and skins. Plugins add functionality to either the player or the interface; included with the PM123 distribution file are a spectrum analyzer display; a professional-quality equalizer (which is more of a load on the processor than the player itself), and a smooth-scrolling text display for filenames and tag info.

Now, what is a skin? Essentially, skins allow you to completely redesign the interface. You can include custom graphics for every button and display, and arrange them as you please. PM123 has its own skin format, but it also supports skins for the popular WinAMP player for Windows 95. Everything works as it should -- even the spectrum analyzer displays correctly while playing.

But, this comes at a price. PM123 has a mild case of creeping featuritis: in the rush to add newer and cooler stuff, some basic functionality has been overlooked. The most obvious at first glance is that the character set for the graphical fonts is extremely limited. It has the letters a-z (there is no distinguishing between upper- and lowercase), the numbers 1-9, &auml; and &ouml;, and these symbols: -_&.():,+%[]

This isn't enough to handle all possible filenames, much less the contents of an ID3 tag. This problem can be avoided by using the system-font display plugin, but that doesn't work with custom skins. An even worse problem for me is that any file with a semicolon in the name cannot be loaded in a playlist. This includes semicolons in directory names. So for example, if you have a file called "TooOldToRockNRoll;TooYoungToDie.mp3" PM123 won't be able to load it because of the semi-colon.

This isn't a problem if you don't use semicolons in your file/directory names, but my naming scheme matches the names of songs and albums, and I've got a few with semicolons in them, leaving me with several songs and an entire directory that I just can't load.

WarpAMP has no skin support, but it uses the system font for its display, meaning it can show any character used in a filename. Plus in my opinion, WarpAMP's playlist management is markedly superior; it doesn't have the semicolon problem and its editing window is easier to navigate. Another minor difference is that when you hit the random button, PM123 actually shuffles the playlist, whereas WarpAMP keeps it sorted as-is and only randomizes its internal play-order. I personally prefer the latter behavior, but it's a matter of individual taste. PM123 does have one playlist advantage: you can add, remove or change the order of songs while the playlist is active. With WarpAMP, you have to re-activate the list (which resets the randomizer and starts it playing from the beginning again).

Wind Up

In the final analysis, both players have significant potential, but both need work. As it stands, I use WarpAMP day-to-day, but there are functions for which PM123 is better, most notably when you wish to seek back and forth within a song. If you're willing to fit your filenames into PM123's limited range, it is suitable for professional use; WarpAMP, with its occasional clicks between songs, is not.

Future revisions may place one solidly above the other, but at the moment I suggest downloading and trying both. Only personal preference can dictate which is superior.

                         - * -

PM123 1.01
by (http://www.teamos2.sci.fi/pm123/) Taneli Lepp&auml; / Samuel Audet
download from (ftp://ftp.bmtmicro.com/bmtmicro/pm123101.zip) BMT Micro (721K)
Registration: $15

WarpAMP Beta 4C
by (http://sdg.ml.org/) Software Developer's Guild
download from (ftp://ftp.sdg.ml.org/pub/warpamp/wamp_b4.zip) SDG Homepage (256K)
Registration: Freeware

***********************************
 
The Hacker Card		-David Wei

Summary: Protect your computer with this handy expansion card that not only backs up your OS/2 partitions, but also password protects your whole machine.

The Hacker Card is a neat device from a Taiwanese company called Lenten Tech that helps you implement several hardware based security and protection schemes. It consists of a tiny ISA card with a Flash memory chip, a few accompanying chips and jumpers for you to adjust the Flash ROM's memory address setting. Its simplistic appearance can fool you, but the secret is in the code stored in the Flash memory chip. For what you get, The Hacker Card does an amazing variety of tasks that can either lock down your computer from potential intruders or save your bacon from a corrupted partition.

The package that you get includes the Hacker card, a floppy with a program for updating the card's Flash memory, plus a manual that describes how to install and setup the card to protect your computer's data.

The Functions

The functions of the card are simple: Add partition mirroring capabilities for easy disaster recovery; save your BIOS settings in case they get corrupted; add strong boot-up password protection; and supply a more powerful multi-boot capability. There are a few other features such as hard drive read-only protection and sector-by-sector copying of one physical drive to another, but I was unable to test these for this review.

Partition Mirroring and Disaster Recovery

For the partition mirroring feature, the Hacker Card creates a "twin" partition on your hard drive and makes a sector-by-sector identical copy of the original. The speed of the process depends on how fast your hard drive can work and by the size of the partition, but it will work on IDE, SCSI, or virtually any kind of disk media that your computer can partition.

After the procedure is complete, the mirrored image will stay the same and not change even as the original partition changes, meaning that you should occasionally tell the Hacker Card to re-copy the original partition and keep your backup fresh. When disaster such as a virus attack, faulty program installation, accidental hard drive format or other freak accident occurs, you'll only need to use the Hacker card to restore the image and your system will revert back to normal as if nothing had happened. This makes it the perfect tool for recovering from a nasty FixPak installation fault, for example.

Password Protection

The boot-up password protection feature isn't like any of those I've seen before. Most of the available software-based password protection is achieved by modifying the partition table and only unlocking it after the correct password is given. I've personally cracked this kind of protection in 5 minutes by using a partition recovery tool and telling it to rebuild the partition table; giving me access to anything and everything on the drive. The second kind of protection is a hardware based lock, where it prevents you from doing anything without the password. I defeated that as well by removing the hard drive and using it in another computer. You see, a chain is only as strong as its weakest link, and when the invader is not playing by the rule of the designer, then the whole protection breaks down.

The Hacker card gets around the above weaknesses in two ways. First, like regular hardware protection, the Hacker Card will not allow the intruder to do anything without the password, but it does not end there. The drive is rendered completely unreadable if you do not have the Hacker Card installed, to the point where no recovery software or even FDISK can figure out if any partitions exist on the drive at all.

Multiple Boot

The multi-boot feature is similar to a Boot Manager setup with only Primary partition for booting and extended logical partitions for shared data area, meaning you can install other operating systems without them interfering with each other.

As a warning, Asus and other Symbios based SCSI card might conflict with the Hacker Card. While the Hacker Card has the memory address used by the onboard ROM clearly documented, the Asus SC875 UWSCSI have absolutely no such information in the documentation. I found that out by chance when I was in the SCSI BIOS setup. So if you have such card installed, you'd better check out the memory address for the SCSI ROM, and record it down on a piece of paper with all the important setting of your computer.

Installation

Installation of the Hacker card is simple; change the jumper settings to avoid the address used by your SCSI card (if any) and shove it into a free ISA slot. Boot up your computer and you'll see the BIOS doing all the work of checking the memory and the drives, while SCSI scans for all the SCSI devices. Nothing changed, eh? Wait a couple more seconds and the program in the Hacker Card jumps to life, asking you to place the update disk into the drive which it uses to update the code in the Hacker card.

Now after the code update, I am prompted to partition the drive into two categories: bootable-and-mirrored, bootable, and non-bootable shared data area. As the test was done on a 1.6GB hard drive, I partitioned the drive into a 500MB bootable-and-mirrored partition (1 gig total) and one 600MB non-bootable shared partition. OS/2 TWarp 4.0 (Taiwanese language edition) and FixPak 4 are installed on the bootable partition. Then Netscape, MR/2 ICE and several other applications are then installed on the shared data drive. With a reboot to activate Hacker Card's program, I order it to do a backup image of the partition's current status. After about 15 minutes, the task is complete and I can boot into OS/2 again. Everything works just as before and nothing different shows up, but I now have a backup of the OS/2 partition.

Well, it is time for some acid test. I reboot again, this time from OS/2's installation disks, and use it to completely format the drive with OS/2 on it. The boot partition has now been completely killed (the HPFS partition overwritten with FAT too), beyond any repair utility's power to recover without a complete backup. I reboot again and note that the computer cannot boot into OS/2 at all anymore. So I select the recover option from the Hacker Card, wait about 15 minutes for the partition to be restored, and boot again into my now working OS/2 partition. Everything has been returned to the pristine shape it was in before.

The Hacker card truly lives up to the advertising slogan: "The computer that just won't die." Nothing replaces a real backup, but with Hacker card you will not need to break out the backup tapes or disks for most of your problems. A snap of the finger is all you need to recover from data corruption, or FixPak installation problems. But the Hacker Card will not help you if your hard drive dies (physical failure), or the data on your non-protected partition gets messed up. A Hacker card is best combined with a good backup system for the ultimate combo of data safety and ease of operation.

I have not tested the read-only protection feature of the Hacker card, for the reason that it will wreck havoc under OS/2 (imagine that OS/2 is now unable to update OS2.ini, SWAPPER.DAT and other essential files.). I was also unable to test the track to track hard-drive copy feature because I could not obtain another of the same drive for testing. The track to track copy feature is useful for "mass" producing hard drives with identical content, including partition setup and more, which would be nice to have if you are setting up a computer classroom or selling computers for a living.

I've tested the Hacker Card on a Western Digital 1.6GB drive and a IBM DDRS-39130UW 9GB UWSCSI drive. Tests show that the Hacker Card has one bug in the calculation, reporting my 9GB hard drive (8.7GB in BIOS) as only a 8GB drive. But this calculation error does not seem to affect the function of the card.

Value: 5
Coexistability: 4
Durability: 4
OS/2 Friendliness: 5
Overall: 4.5

The Hacker Card
by (http://www.lenten.com.tw/) Lenten Tech. Ltd., Co.
MSRP: US$50 in Taiwan, US availability T.B.A.

***********************************
 
First Looks: WebWilly Watch 3.0a for OS/2		-Chris Wenham

Summary: The surfing utility formerly known as NetExtra from Innoval gains some new features, the most important of which are the content blocking, or parental control features. These make WebWilly the first application for OS/2 that enables parents and guardians to protect children from obscene material on the web.

Aside from the advanced bookmarking features, page mining capabilities (for offline browsing) and dated logs of your browsing history, WebWilly Watch for OS/2, formerly known as NetExtra, now adds the power for parents and guardians to block obscene and potentially harmful material from children who surf the net. In a nutshell, it means no more sneaking peeks at the playmate of the month for Junior anymore.

Easy Setup

Installing WebWilly is remarkably easy and takes a "wizard"-type approach to configuring the program for use. WebWilly can work alongside both WebExplorer, Netscape Navigator 2.02 and the Netscape Communicator Beta for OS/2. It'll ask for a password and use this to protect the parental control configuration, page mining features and program exit functions.
Surfing With WebWilly

For you and me, WebWilly's most appealing features are the advanced bookmarking, extensive logs of your surfing history and page mining. WebWilly's bookmarks can be arranged and sorted in a tree so you can set them out in a logical fashion, but these seem to take a back seat to the bookmarking features of Netscape, meaning you'll probably make more use of WebWilly's bookmarks whenever you're in WebExplorer instead. The browsing history feature is excellent for either browser, however, since it not only keeps a searchable log of every site you've ever visited (while WebWilly was running too) but it can also keep monthly logs all the way back as far as you care. If you remember a web site from months or years ago and can't remember what it was, WebWilly could come to the rescue.

Page Mining is most useful for downloading an entire site and browsing it while offline, or as an advanced cache for when you're still on-line.You can set up multiple "agents" that can refresh the offline copy of one or more sites at a time. So for example, you could create a page mining agent called "Daily" that checks all of the sites you visit daily and downloads the first 1 or more levels of pages deep for browsing later.

Parental Control

For parents and guardians who are concerned about the presence of easily downloadable smut on the Internet, WebWilly offers a pretty good deal of protection and blocking. The program monitors both the addresses of the web sites that are being visited as well as the content of the pages themselves. While obvious sites like Playboy and Penthouse are blocked at the URL level, WebWilly is still capable of nailing sites with unrecognized URLs that have "bad" words in them. Try to load these up in the browser and you'll just get WebWilly's "Sorry, you can't go there" page instead.

In the parental control configuration notebook there are many options for deciding how WebWilly should judge a page before blocking it. You can add your own list of undesirable web sites and words, or restrict browsing completely to only your list of "good" sites. Pages can also be blocked if they contain 1-900 numbers, preventing Junior from running up your bills and listening to porn on the unfilterable telephone.

Plus, WebWilly can also prevent your child from accidentally giving out your home address or telephone number in an internet chat room. Something that may be of special concern to parents afraid of pedophiles luring young innocents away. This feature does not seem to work with chat rooms that exist outside the browser, like Internet Relay Chat (IRC) clients.

Thwarting WebWilly

Of course, any kid left on his own with a computer is probably going to try and circumvent WebWilly's protection through one trick or another, and this is where WebWilly's design becomes important. First of all, the obvious "Exit" command is password protected. Either from WebWilly's own menu of from the window list, you can't shut it down without knowing the password.

Secondly, WebWilly does not make use of a proxy server to do it's work, so going to Netscape or WebExplorer's configuration is not going to do Junior any good. Nor must the browser be started by WebWilly (although it can be). So if you start the browser and then WebWilly, or vice versa, the blocking still works.

But I did find a couple of ways to thwart WebWilly without having to know the password. Any process killer such as Process Commander, the freeware go.exe and many other downloadable programs can be used to forcibly terminate WebWilly. It also seems that WebWilly needs to "see" the titlebar of the browser as a handle to know what it's doing, so if you use any utilities such as Smart Windows or ScreenSpace -- both of which can hide a window's titlebar -- it could be used to make WebWilly, in a sense, "blind".

Therefore I advise anyone who wishes to use WebWilly to combine it with a few other measures of common sense. Make sure there aren't any process killers installed on the machine. Invest in a program such as Workplace Security (also found in Object Desktop Pro) to lock down the icons of the command prompts and any other program you can't do without that could be used to kill the WebWilly process or disable it's ability to start up again. And lastly, use the boot-up password feature found in most modern BIOSes to prevent your child from rebooting or power-cycling the computer after he's taken WebWilly out of the startup folder.

Safe Surfing

While it's not OS/2 e-Zine!'s policy to suggest how you should raise your children, it's our recommendation that the best child protection scheme is still your own physical presence in the room while your child uses the computer. What WebWilly affords you is more like an extended leash, giving you the freedom to answer the door or the phone, make yourself some lunch and do other brief activities that takes you out of visual-range of the computer. Because if your child is one of those who always finds the cookie jar and the birthday presents, then he or she may be resourceful enough to eventually find a way around this program if given enough unsupervised time to do it in.

WebWilly Watch 3.0a
by (http://www.innoval.com/) Innoval
MSRP: US$20

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

First Looks and Nifty Gadgets brings you reviews of the new and novel. In each issue we take a look at what's just hitting the streets and some tiny, but tried and true products that are still helping people be as productive as possible.
	In this issue we look at: Smart Windows 0.81 Beta | WarpNote 1.6

Smart Windows 0.81 Beta

The battle to build the best Workplace Shell enhancement utility is coming to a head, with several excellent products now available. But it's a credit to the design of the Shell's underlying object model and utility programmer's common sense that has led to products that do just as good a job of coexisting as they do at enhancing. Smart Windows is a great addition that can live alongside other enhancers such as Object Desktop and XFolder without too much feature overlap.

Smart Windows does most of its work on or around the titlebar of each window - folder windows or application windows. For a start it changes the appearance with bitmap or gradated titlebar backgrounds, similar to what CandyBarz already does. It also changes the appearance of the window controls; minimize, maximize, close and hide, and adding two more optional buttons that roll up the window to just the titlebar, or eliminate the titlebar and menu altogether.

It's this titlebar and menu elimination that's one of Smart Window's best hidden features. For programs that duplicate almost all of their menu-bar functionality in button bars and floating palettes, this feature can be a compelling way to increase the work-area by another half inch of screen estate. Try it with Netscape or PMMail and you might be surprised how little you need either titlebar or menu, but if you do need the menu, Smart Windows can leave it in place. To get the titlebar and menu back, just hold the mouse over the top window border for a second, and it'll reappear.

Smart Windows rounds out its feature set with the ability to hide the mouse cursor when it's not active, control over the size and position of maximized windows, X-Windows like focus setting and several other mouse and keyboard control enhancements.

Smart Windows 0.81 Beta
by (http://www.ghostbbs.ml.org/utenti/alcant/) Alessandro Cantatore
download from (http://hobbes.nmsu.edu/pub/os2/util/wps/smw081.zip) The Hobbes Archive (675K)
Registration: T.B.A.


WarpNote 1.6

Sometime around the mid 80's a chemist at the 3M company was looking for the world's strongest glue, but to his chagrin came up with one of the weakest instead. The real stroke of genius was when he tried using it for sticky paper notes and found that while it was weak, it was still strong enough to hold the note in place, giving birth to the now famous Post-It note. Thanks to this accidental ingenuity, the yellow sticky note is about as common today as paper clips and pencils and serves well to leave reminders, notes and short messages. Unfortunately, Post-It notes have no built-in management system, quickly leading to clutter and mess. Attempting to solve this problem was Uwe Schlenther, author of WarpNote -- the software equivalent of the yellow sticky note which runs under OS/2.

WarpNote has a number of features that make it compelling to use. While its immediate and obvious purpose is to mimic the yellow sticky-note on your computer screen, WarpNote also has a management window that keeps a list off all the notes you've written that can show, hide and delete them. WarpNote is configurable enough to alter the color and font of your notes either on a global or individual basis, plus it can create new notes instantly by drag-n-dropping a text file into the Notes List from anywhere within the Workplace Shell.

WarpNote is a tiny program that affords you the luxury of running it all the time. It can also be controlled from the command line, a batch file, or a Rexx Script to automate the creation, modification and deletion of your on-screen sticky notes (it comes with an example script that creates a note of upcoming birthdays and anniversaries). And just as notes can be easily created by drag-n-dropping text files into the Notes List, the trick works the other way around too, letting you create instant text files by dragging notes out of the List. Add note printing and searching features and the result is a program that, while not quite suitable for sticking on your refrigerator door, can help your poor memory when working in and around the environment of your computer.

WarpNote 1.6
by (http://www.geocities.com/RodeoDrive/2048/warpnote.html) Uwe Schlenther
download from (http://www.geocities.com/RodeoDrive/2048/wnote16.zip) The WarpNote Homepage (83K)
Registration: US$14

***********************************
 
Dynamic Web Sites in OS/2, Part IV		-Chris Wenham

Summary: Learn how to create a web catalog by importing your information from a database or spreadsheet program.

Last month I showed you how to create a simple "poor man's database" that was used to generate a catalog web site, one that could be used in an e-commerce site or "Web storefront." The database wasn't really a very practical one, as its "format" was very ad-hoc and consisted mostly of embedding commands for the HTML preprocessor into the data itself. Not very elegant, and not very editable. If you had a catalog with hundreds of items, the database file could get extremely unwieldy in an ordinary text editor. What we really need is the ability to import from a real database.

Luckily this is easier than it may seem. Most database programs for OS/2 can export to a comma or tab delimited format and those are a piece of cake to work with. In fact, PPWizard has an #import function that does just this.

#import

This function is one of the most complex and powerful in PPWizard's set. By default, the command will read a comma delimited, tab delimited and fixed-column-width file and format the contents it finds into a table - the most obvious structure for what is essentially data in tabular form. For example, say you had a comma delimited file called staff.csv that looked a bit like this:

Chris Wenham,Editor-In-Chief,chris@os2ezine.com
Chris Wright,Senior Editor,wright@dtcweb.com

And imported it into a web page with this line:

#import staff.csv CMA '' "Name" "Position" "Email"

Then it would generate the code for a table that looks like this:

(Note to readers of OS/2 e-Zine!'s ASCII version: HTML has been left intact for illustration purposes)

<table border=5 cellspacing=5 align=center>
<tr>
<td  align=center valign=middle>Name 
<td  align=center valign=middle>Position 
<td  align=center valign=middle>Email  

<tr>
<td  align=center valign=middle>Chris Wenham  
<td  align=center valign=middle>Editor-In-Chief 
<td  align=center valign=middle>chris@os2ezine.com  

<tr>
<td  align=center valign=middle>Chris Wright  
<td  align=center valign=middle>Senior Editor 
<td  align=center valign=middle>wright@dtcweb.com  
</table>

It's quite simple to see how PPWizard mapped the names of the fields with the records in the staff.csv by taking them in the order in which they were named on the #import line. As it turns out, you have the power to rearrange the order of these columns as you please, but we won't be covering that this week.

Looking at the #import line itself, you see that after the filename of the file to import there's a keyword "CMA." This tells PPWizard that it's importing a CoMmA separated file. Other keywords are "TAB" for tab delimited files (good if some of your records have commas in their data) and "FIX" for fixed width files. Check the PPWizard manual, because additional format support may have been added by the time you read this. There's also the option to specify the delimiter yourself, so if you used semicolons instead of commas, PPWizard will know what to look for.

If you put a minus sign after the file type keyword, such as "CMA-" or "TAB-" then PPWizard will ignore the first line it finds in the file - assuming it's probably where the database had inserted the names of the fields rather than the first actuall record.

It's easy to change the way the table looks, because PPWizard stores its defaults in variables you can override with the #define command. For example, say we put these two lines before the #import statement:

#define IMPORT_TABLE_ATTRIBS BORDER=1 CELLSPACING=2
#define IMPORT_RECORD <TR><TD ALIGN=CENTER>{$Column1} \
  <TD ALIGN=CENTER>{$Column2} \
  <TD ALIGN=CENTER><a href="mailto:{$Column3}">{$Column3}</a></TR>

(The backslashes "\" tell the preprocessor that the #define statement is continued on the next line)
PPWizard would then generate a table that looks like this:
                         
<table border=1>
<tr>
<td  align=center valign=middle><strong>Name</strong></td>
<td  align=center valign=middle><strong>Position</strong></td>
<td  align=center valign=middle><strong>Email </strong></td></tr>
<tr>
<td  align=center valign=middle>Chris Wenham </td>
<td  align=center valign=middle>Editor-In-Chief </td>
<td  align=center valign=middle><a href="mailto:chris@os2ezine.com">chris@os2ezine.com</a> </td></tr>
<tr>
<td  align=center valign=middle>Chris Wright </td>
<td  align=center valign=middle>Senior Editor </td>
<td  align=center valign=middle><a href="mailto:wright@dtcweb.com">wright@dtcweb.com </a> </td></tr>
</table>  

Not only was the border and cell spacing changed, but the e-mail addresses are now properly hyperlinked. We just told PPWizard to format records differently than the default settings specify. There are several other defaults that can be overridden, ones that can switch off the formation of tables altogether. It's these that we're going to use when creating a better version of the "Catalog Maker" from last month.

Making #import act like a conversion utility

We could settle for making our web catalog take the form of a boring table, but we're not. Remember that makeshift "poor man's database" format from last month? It's actually pretty good for making PPWizard create all the files for us, but it really only should have been an intermediate format, a temporary work file that gets thrown away. What we need to do is convert the easily manageable and exportable CSV format into our "poor man's database" format and keep the same templates from last month.

To do this we're going to make the preprocessor eat its own lunch, in effect. First we make it create a poor man's database, then we make it use it. Take a look at the following code, stored in a file called convert.it, and you'll see that we're tricking PPWizard into writing "#define" statements instead of finished HTML code. We'll then make it read back those #define statements that it just generated, using them to build our catalog pages.

;Lets create and start writing to a new file
#output database.it AsIs

;Clear all the defauts used to define a table's HTML code
#define IMPORT_BEFORE
#define IMPORT_AFTER
#define IMPORT_HEADER

;Create "#define" statements for each record
#define IMPORT_RECORD <?hash>define+ File {$Column1}<?NewLine> \
  <?hash>define+ Name {$Column2}<?NewLine> \
  <?hash>define+ Materials {$Column3}<?NewLine> \
  <?hash>define+ Description {$Column4}<?NewLine> \
  <?hash>define+ Picture {$Column5}<?NewLine> \
  <?hash>define+ Price {$Column6}<?NewLine> \
  <?hash>include item.it<?NewLine>

;Import the tab delimited file with the database contents
#import catalog.csv CMA '' "File" "Name" "Mat" "Desc" "Pic" "Price"

;Close the file
#output

It assumes there's a file called catalog.csv, looking a bit like the "staff.csv" of earlier, but which contains our catalog of goods instead. Notice the "<?hash>" and "<?NewLine>" tags. These are built-in to the preprocessor and are substituted with the hash character ("#") and a carriage return respectfully. They had to be referenced this way so that PPWizard wouldn't try to interpret the line before we're ready.

The IMPORT_BEFORE variable used to contain the "<TABLE BORDER=1 CELLSPACING=2>" line that started the HTML code for a table. But we cleared it so it won't try to create a table where we don't want one. We also cleared a few others, then redefined the IMPORT_RECORD variable so that instead of putting the data from the imported file into table cells, it's placed after a "#define+" line instead.

(By the way, after last month's column, Dennis Bareis -- author of PPWizard -- pointed out that if you use "#define+" instead of plain "#define", you won't get any warnings when the variables are redefined a moment later by the next database record. He also pointed out a couple of other good tips, which you'll see later)

When you run the command "PPWizard convert.it" on the command line, a file called database.it is generated. It's contents will look a bit like this:

#define+ File item1
#define+ Name Deluxe Ball Point Pen
#define+ Materials Oak, Paduk, Bubigna, Cherry
#define+ Description A fine writing implement.
#define+ Picture ballpen.gif
#define+ Price $79.95
#include item.it

#define+ File item2
#define+ Name Elegant Fountain Pen
#define+ Materials Oak, Chak-De-Koke, Paduk, Bloodwood
#define+ Description A magnificent compliment to your desk.
#define+ Picture fountpen.gif
#define+ Price $99.95
#include item.it

(Don't worry if there are spaces before some of the #define+ lines, this won't hurt the next step)

You should recognize this format from last month (with a few changes as per Dennis's suggestion; the #output and <p> lines got moved into item.it). But this time, it wasn't you who created it directly, it was created by PPWizard.

Taking the contents page from last month we make a slight change to the HTML code, making it look like this:

;Make PPWizard convert from a CSV database to a "#define" file
#include convert.it

<HTML>
<HEAD>
<TITLE>Frank's World Of Handcrafted Goods</TITLE>
</HEAD>
<BODY>

<H1>Frank's World Of Handcrafted Goods</H1>

<P>Choose from our wide range of quality handcrafted goods!

<ul>
;Make PPWizard now include the file that it generated earlier
#include database.it
</ul>

<p>Please make checks and money orders payable to:
Frank's World Of Handcrafted Goods.
<br>Mail your orders to:
Frank, 187 Hancrafted Way, Woodtown, NY, 12345
or phone (555)555-2624
<br>E-mail frank@frankcrafts.com

</BODY>
</HTML>

At the top is the #include line that starts PPWizard working on converting the CSV file you exported from your database into an intermediate, throwaway format that drives the production of all the separate catalog pages. In between the Unordered List tags (<ul>) is the line to read back the file PPWizard had just finished creating earlier. In that file is the data and the commands needed to create the remaining catalog pages. To give you an idea of what all this mumbo jumbo produces, here is an example web site created using the source code from this month's column.

The data for it was stored in a Lotus Approach database, then exported into a Comma Separated Value file. By typing "PPWizard contents.it" on the command line (something you can create a desktop icon for, to do the job even faster), this exported file was sucked in, mulched, and spat out as a series of finished web pages ready to go up. Since the original data was stored in Approach, it was easy to create many more records than last month's example. It was also easier to sort and edit these records.

This example is also not typically how databases are leveraged onto the web. Most companies with large and relational databases will make use of an SQL server (Standard Query Language). But so many principles are still shared. Once the data is read, it's usually positioned into the HTML code using a means similar to ours: a special tag is embedded into the web page code and the web server substitutes it with the real data a second before it's served to the browser. Serving data through SQL is something I may be tackling in the future, just as soon as I figure it out myself.

In Part V of Building Dynamic Web Sites In OS/2 I'll be showing you how to make conditional statements, how to modify text on the fly, and even how to execute Rexx code in the middle of a web page.

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

September's Top Selling Apps from Mensys

Each month OS/2 e-Zine! gathers data from various OS/2 retailers on the hottest selling OS/2 applications from around the world and presents the findings right here. Because of the unique on-line OS/2 community, these lists may represent shareware, commercial software or a combination of the two.
This week, we're pleased to bring you the top selling software from Mensys.


Position	Last Month	Product				Developer

1  		5  		OS/2 Fixpack CD   		Mensys
2   		-  		Object Desktop Beta  		Stardock
3   		2  		Drive Image V2   		Powerquest
4   		-  		Object Desktop Professional 	Stardock
5   		4  		Hobbes CD april 1998  		Walnut Creek
6   		3    		DriveCopy V2   			Powerquest
7   		-    		Partition Maigc  		Powerquest
8   		-    		BMT Micro CD ROM June 1998 	BMT Micro
9   		-    		PlusPak: PMI News  		Stardock
10  		-   		PlusPak: Themes  		Stardock

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

Subscribe for FREE

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

     subscribe 

in the body of the message. 

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

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

Falcon Networking
4302 NW 25th Terrace
Gainesville, FL 32605

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

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

Sponsor OS/2 e-Zine!

Corporate Advertisers

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

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

Readers Can Sponsor Too!

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

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

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

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

o (800) 414-4268 (Voice) 9:00am - 7:00pm EST
o (910) 791-7052 (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

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

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

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

***********************************
 
Corporate Sponsors

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

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

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

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

(http://www.pinnacletech.com/os2site.html) Pinnacle Technology
Desktop security, control, and administration for Windows NT, Windows 95/98, and OS/2.

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

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

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

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