[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!		April 1, 1999	volume 4, number 5
--------------------------------------------------------------------------
Copyright 1998		Falcon Networking	ISSN 1203-5696

	"Over Three Quarters of a Million Satisfied Visitors!"

Reviews:

A major addition to OS/2's graphics repertoire, GIMP/2 may still need to run in an X Window session, but it's well worth all the effort. We look at GIMP's features from a "How To" perspective, teaching not only the basics, but a few tricks that you can start using right away.
* GIMP/2 For Button Pushers - Chris Wenham 
* Basic GIMP/2 

Articles:
* An Unhealthy Obsession With NT - Bob St. John 
- As Aurora looms, the new OS/2 Warp Server for e-business, Bob finds himself reflecting on where the industry and Warp Server are. 

* Into Java, Part I - Simon Gronlund 
- If our introductions to Rexx have whet your appitite any, you may now be interested in moving up to another easy-to-learn language: Java. 

Opinions:

* Letter from the Editor 
* Chris Wenham 
* Chris Wright 

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

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

Letter From The Editor  - Chris Wenham

Summary: A brief heads-up on what's been going on behind the scenes at the e-Zine!, plus results on the winner of our Screenshot Contest.

Screenshot Contest Winner:

As a number of you have sent inquisitive e-mails about, we've been mum on who the winner of the Screenshot Contest was. While we certainly took our own time, the winner is too, it seems. Congratulations go to *Steve Wagner*, with his visually stunning "Lightning and Earth" theme. While we sent a notification by e-mail, Steve has yet to reply with his mailing address so we can send his prize (a $50 Indelible Blue gift certificate). We will defer to the runner up if Steve doesn't claim it by May 1st. The (http://www.os2ezine.com/contests/screenshot98/SWagner.jpg">winning screenshot (.JPG, 180K) can be viewed online.

A Word On Editorial Directions:

It has felt like slow going in recent months as I make some major changes in my personal life and see them cause disruption in the content and schedule of the -e-Zine!- Both myself and Senior Editor Chris Wright have recently moved to new homes and new day jobs, both of us managing to pick the same time as each other to do it and de-railing our publishing schedule as a result. Chris Wright has moved to a new home in North Carolina and should be settled in now, while I've moved to a new home in Long Island (a seller's market on steroids, oh what a nightmare) and a day-job that takes a lot of my time but gives me access to new perspectives that I think I can use to make the -e-Zine!- better.

It has also felt like slow going for all the changes I've wanted to make in the 'zine. It doesn't seem proper not to have a major paradigm shifting mega project cooking in the back room, ready to stun the world for fifty seconds. But the evolutionary and progressive changes I've completed and contemplated have been made up partly of my own desires and passions and partly to satisfy what I think has been the demand from our readers. E-mail and the grapevine both have told me in no uncertain terms that the quality of our articles has got to get better. Some have bemoaned the dwindling -quantity- of articles, but that's something that can't be helped. And I'll tell you why.

Manpower is what limits the number of articles we can publish on a regular basis. OS/2 -e-Zine!- is not and never has been a barometer of the OS/2 software market, our ups and downs have never been due to a lack of software or events to report on. I have made the mistake of thinking that -our- content volume mattered as part of OS/2's overall image and I've nearly burnt myself out trying to meet that mythical quota. We publish what gets written, and how much gets written depends on how many are writing. But over the past year we've lost several of our best writers, such as Ryan Dill, Colin Hildinger and Trevor Smith. They're all dearly missed.

With these things in mind I've made the decision to slow down the -e-Zine!- a bit and hit a more relaxed pace. We are not a news service, so we're not concerned with "scooping" anyone. We're not the vanguard of the OS/2 industry, so we're not here to impress anyone with article counts. The number of articles we publish is going to go down, but the quality is going to go up. We're going to publish articles as they are finished, but we're still going to keep compiling "issues" once a month into archives that can be downloaded and read offline.

We're not going to shift our focus on a yearly whim, but we will evolve to cover more "How To" style articles. I've noticed a positive reaction to many of these and, if there are no more objections, I'm going to step up their frequency. It's true that the software scene isn't as exciting as it once was, but I've discovered that half the yearn for new software comes from not knowing what the existing software can already do.

And finally, we're always looking for new writers too. If you've had an idea for an article or series, you may be the most qualified to write it. Don't worry about lack of writing or English skills, we'll help with that. But any complaints about the low article count of each issue will be considered an offer to join the writing team. Be warned, cranky e-mail about a lack of coverage for product X will get you an assignment and a deadline ;-)

Thank you, and may your screens never go blue.

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

Chris' Rant  - Chris Wenham

Summary: Rather than keeping to themselves, programs are starting to talk to each other to share information. The bad news is that most seem to only talk with programs from the same vendor.

_Converging Outside The Lines_

Coloring outside the lines is one of the last tricks you learn in school, despite how your lack of motor skills at that age may have caused a few accidental crayon lines to breach the black inked border. And like a kid with a crayon and a piece of pre-drawn artwork ready to color in, the early age of software consisted of programmers trying to fill in the borders and lines imposed by proprietary hardware or rigid operating system structures. Every program and every programmer was concerned with only one world: their own. Crashes and malfunctions were caused by programs doing the equivalent of a crayon in the hands of an unsteady artist: writing into memory outside their allocated space. This is where the General Protection Fault came from, and suddenly every operating system maker was playing with the idea of protected memory and programs that were isolated from any outside influence - to the extent of running them inside their own little *electronic jail cell*.

It's different now because, like an artist realizing that the pencil lines you sketch out are only meant to be -guides- and it gets to be far more interesting when you deliberately color a bit outside of them, software developers are realizing that the coolest features are the ones that reach outside of the program's own little world. These could be a system wide clipboard, in its most primitive state, or it can be like an address book program that automatically captures street and e-mail addresses seen in the pages you visit with your web browser. It could be said that all of the features you could possibly put into a single program have already been thought of and implemented. The typical word processor or spreadsheet is *done*,      the last line of code needed to implement the last useful feature was compiled three or four years ago. What's been added since then are -data sharing- and -function- -sharing- features.

And computer users have been lapping it up because it's actually a *good idea*. When most users think of their computers as being a single product, it doesn't make sense for your calculator program to be oblivious to the existence of your accounting program. So when accounting programs started coming with calculators built into them, the need for stand-alone calculator programs *evaporated*. It could be just as simple as inserting the result of a quick calculation into the field of a larger spreadsheet or ledger. That's the killer feature. Not programmable hotkeys, not a virtual ticker tape, not a simulated LCD display.

It hasn't quite dawned on every developer yet, so we still find ourselves using e-mail clients that don't realize there's a perfectly good address book program already installed on the computer. Or we use a paint program that assumes the Workplace Shell is just for launching programs and not document management. And we use an office suite that pretends the operating system doesn't exist. PMMail, ColorWorks and StarOffice are all very good in their class, but they act as if we should be grateful that they even know how to feed a URL to the web browser.

Or then, they understand that programs should communicate with each other, but then attempt to develop for themselves all the other programs that will be communicated with. I'm reminded of PMMail from Southsoft again, which learned how to share its address book with a newsreader - Southsoft's newsreader. StarOffice also learned how to let a presentation accept a picture or chart dragged from the desktop - StarOffice's desktop. Lacking the confidence that anyone else would make the same design decisions as they, each developer slowly tries to re-create the world in their own image and ideals. Give StarOffice a little longer and it'll turn into a full operating system. Southsoft was well on the road to making a complete internet suite. And ColorWorks, after migrating to Windows, tried to blossom out into a web graphics suite.

Self contained environments are what all of the office suites and Internet suites and miscellaneous suites are turning into, as even Microsoft gives up on OLE for anything more than its own -internal- system for sharing components. At this rate, the prevalent idea will cease to be one that revolves around opening up protocols and standards to let other developers write programs that -peer- with one another, but instead these technologies will exist to let other developers write mere *supplements* and *plug-ins*. You'll buy a computer that's utterly integrated with its one big operating-system-and-office-suite, to the point where it makes no sense to consider either of the three as separate products. You'll then buy *gadgets* that are activated only when they're needed by the master program. These super-systems will not be coloring outside the lines, they will have simply *moved the lines* to encompass more and more territory.

This desire for grand unification and convergence is what's fueling Microsoftian acquisitions of companies as much as money lust does. Computer companies rarely become conglomerates of unrelated products since they all try to capture companies making products that -fit in- with their existing lines. When they try real diversification they often fail, like Novell did with WordPerfect. At the time, there weren't really many ways to tie a word processor in with Netware, so with nothing to share it was like having two different companies that met at the top somewhere. (BTW: Now watch Corel plummet.)

Yet this desire for grand unification *is* going to produce better software when companies and groups with world-class software in their portfolio start trying to make them talk to each other some way. Lotus 1-2-3 could be paying attention to which documents you edit in Word Pro so that it can prepare a bill for the hours you spend working for each client. But with the attitude of talking to only those programs within the parent company's huge fold, there's unlikely to be a time when, for example, 1-2-3 is keeping track of what non-SmartSuite documents you edit or what client related web sites you browse.

So it's at this point in the story that, with any other columnist, the subject of open source would creep in. And the columnist would start talking about how open source is going to fix this, and how it's going to fix that, and how the world is going to be a wonderful place because you can "make install". Baby, it ain't so. Open Source is a hotbed of experimentation, but a desert of practical implementations. There's an oasis over there called Apache, and another one called Sendmail that's linked to the first by a narrow grassland of unexciting programs that you run on a server and forget about. There are two open source efforts to create integrated desktops, and when they're not trying the very best they can to *copy Windows*, they're on a Jihad because they can't agree on what toolkit to use. For this reason and others, I don't think they'll be agreeing on many data sharing protocols either. Half the programs will want to talk to GNOME, the others will want to talk to KDE. And just when a standard seems to be in sight, disagreements brew and they "fork the tree." <!-- Yes, actually that was a challenge. Glad you practice what you preach and read the source ;-) -->

On a micro scale, hobbyists who can write in Rexx or Perl might already know the pleasures of a CD player that can tell a web server what album and track is currently being listened to, but this toy is nothing compared to a Caller-ID program that can broadcast the number of who's calling to every application on your computer. OLE and OpenDoc are quickly forgotten when your word processor is offering a button to create a letter and envelope template with the current caller's address already filled in, your browser is already suggesting his homepage, your ToDo list is already reminding you about what you wanted to say to him and your accounting program is telling you how much he owes.

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

Chris Wright  - Chris Wright

Summary: Spend enough time to learn a thing as complicated as a computer, and you might as well make it your job.

As of the time I write this I'm still in the process of moving from Virginia to North Carolina. I'm commuting six hours a day (3 in the morning, 3 in the evening) and I'm in the process of buying a house. It has been one of the most stressful periods of my life to date. During this time I reached an epiphany of sorts: I realized what it is that Microsoft really, truly has over the rest of us poor schlubs who use OS/2, Linux, AmigaOS, and every other less-noticeale-but-noticeably-more-robust-operating-system.

I'm a first-time home buyer, and I'm going out of my mind. I'm going out of my mind largely because there is just too much to learn and not enough time to learn it. I am haunted by the knowledge that at any moment the deal could fall through because I didn't know something I should have. I am constantly reminded that if I don't cross all my t's and dot my i's I will not have the house I'm currently going through a great deal of effort to buy -- and that I don't know what all the t's and the i's are.

Consequently, I rely on many experts who do this for a living to advise me and walk me through the process. While this is somewhat more dangerous (after all, any of these "experts" could, theoretically, be people who exist only to suck my finances dry, leave me destitute and without any credit rating to speak of) it's simply not practical to try to know everything there is to know before you buy a house -- that would take years of study and I don't have that kind of time.

I could devote that kind of time to learning the proper way to buy a house (and learn to do it in every state of the United States, where the laws are slightly different, and in every country, where laws can be -significantly- different) but after spending that amount of time I'd feel obligated to take it up as a career. I don't want to spend my life buying houses, I want to buy one house and then -live- in it.

If I took the amount of time it took to become familiar with every aspect of house buying, I suspect I could have made a much better deal on the house I bought. As it stands, the deal I made is "good enough" because a) I understand what's required of me (more or less), b) I can do the things that are expected of me under this deal, and c) I really need to get past this thing and move on with my life.

Which brings me to the topic of computers.

I like computers just fine, but I like -using- computers much more. I see a computer as a tool -- it's not the computer I'm most impressed with, but the- things I can do -with a computer that really astounds me. I compose music, I draw, I write, I design web sites, I produce documentation, I -publish- with a computer, and I do things that 20 years ago would have required more money than I will ever amass in my lifetime.

Computers enable me to do things I have always wanted to do. I'm interested in computers only so far as they continue to enable me to do these things. As soon as I learn enough to do what I want to do, I stop learning. It's that simple, for the most part.

I learned how to put computer parts together because I needed a more powerful computer than the one I had in order to run the software I wanted to run. My computer didn't have enough memory, I learned how to install RAM. My computer needed a bigger hard drive, I learned how to install a hard drive. My computer was too slow, I learned to install a motherboard and a faster processor. My excursions into the dirty underbelly of the computing beast were borne not out of curiosity, but out of necessity. I had a goal in mind, and I was going to achieve that goal...

...and then one day I woke up to discover that computers had become my hobby. I do like to tinker, I do like to play around with and tweak my hardware, I do like to, on occasion, learn the minutiae that makes up the computing environment. But by and large I consider myself an end user because computers are a means to end.

I have tried, with varying degrees of success, not to let the fascination of technology and learning to use technology interfere with my original goal: to get something done. It is possible to get so lost in learning something that you forget why you were learning it in the first place and in order to learn productively you need to watch out for that. Unfortunately, my philosophy is often stymied by technology itself. I have found that most computer companies tend to be more -enthusiastic- about their technologies than they are -accurate-. In the process of trying to get a computer to do what I want it to do, I find I spend more and more time trying to figure out why it just -won't-, and ultimately I find I've lost sight of my original goals.

It's a vicious cycle: the more time I spend trying to get my computer to do what I want it to do, the less time I have to actually do it. It's even worse when you're not using a "mainstream" platform because you have to spend more time looking for less available information.

Many of your "average" computer users feel the same way, which is why they often settle for environments they consider to be less than optimal. It's probably hard for those of us who work with computers every day to fully understand that there are people out there who could take or leave computers -- they simply don't care. These people have to use computers primarily to store and retrieve information. They can be doctors, lawyers, mechanics, store clerks, secretaries, politicians, teachers, preachers, policemen, artists, musicians, whatever. These are people who have an entire career to pursue that doesn't specifically deal with computers, and they're not going to sacrifice that career just to learn how to use a blinking, beeping box that never quite works the way they think it should.

This, incidentally, is one of the main reasons why Microsoft Windows has done so much better than OS/2. Not because Windows 95 has more applications, not because Microsoft is a large, overbearing monopoly -- though of course both of those play into the big picture. No, Microsoft understood -- and understood a long time before any other computer company -- that most computer users don't appreciate technology for technology's sake, they simply want to get something done. To that end, the Microsoft marketing machine focused on building a public image of using computers to get things done.

This focus -- a focus on results rather than technology -- was one of the biggest things that convinced potential computer users to give these beige beeping boxes a try. Microsoft adopted the "Where do you want to go today?" slogan to send out a message that computers were tools that produced results. If they'd been able, I'm sure they would have used the "Just Do It" slogan instead (but it was already taken).

OS/2 users, Linux users, and users of other more esoteric operating systems, being more sophisticated and educated about computers (largely out of necessity) tend to focus on the "behind the scenes" actions of a computer -- how well does it multitask, how does it handle threading, how does it manage your resources. These are important things to consider, of course, but such things seem more trivial to someone who simply wants to "get something done" and move on. While Linux, for example, may be extremely stable and capable, your average user will probably be less than thrilled at the prospect of using an operating system that really requires you to spend at least a few months learning it in order to use it properly.

OS/2 might be a little more intuitive than Linux, but many people, when faced at the prospect of having to use a document conversion filter of a "non-standard" word processing application in order to remain compatible with the industry standard (as inadequate as that standard may be), may opt instead to simply use the standard and cut out the extra steps.

The fact is, people who choose to use Windows 95 simply because it requires less initial effort have a point. The "promise" of Windows 95 is that you can click the Start button and start using it. The "promise" of Windows 95 is that it is painless -- that the beginner can sit down in front of it and use it and get up and walk away from it.

Whether or not Windows 95 or Windows 98 carries through on that promise is irrelevant. You and I both know that the WinX operating systems fall terribly short when it comes to delivering on their promises. You and I both know that the Windows operating system's are at this point patched together with duct tape, safety pins, and cheerful, winking paper clips. But people are being drawn into the world of computing by the promises that Microsoft has made -- that computers are tools that you can sit down in front of, use for an hour, and then walk away from to go do something else.

I bring this up because, due to Microsoft's recent legal troubles, other operating systems are getting more and more attention, but none of the other operating systems out there really seem to understand one of the things about Microsoft Windows that made it so popular. With the possible exception of the Macintosh, most operating systems focus on the features that make them powerful, rather than the features that make them accessible (and these days, the Macintosh is trying to position itself more as an artists and designers tool, rather than as a user-friendly machine).

If, due to some cosmic event, Microsoft were to be hit hard by its recent legal woes and other operating systems were thrust more fully into the limelight, I predict that many of the people beginning to explore computers would simply walk away from them altogether rather than try something more powerful and more complex. The only way around this, as far as I can tell, is for developers to stop thinking of beginners as computer illiterates and start thinking of them as people who would rather do their jobs and go home at the end of the day.

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

GIMP/2 For Button-Pushers  - Chris Wenham

Summary: GIMP has enough point-and-click plugins and gadgets that will keep non-artists satisfied for hours. Here then is a simple guide to what you can do without doing so much as even drawing a rectangle.

Kai's Power Tools and Alien Skin's Black Box have a nice racket going in the Photoshop plugins business, what they do is write software that gives point-and-click solutions to non-artists who want to do a page curl or drop-shadows. What they do behind the scenes, most of the time, is chain together a series of traditional graphics operations that Photoshop, or whatever paint program you have, is already capable of doing on its own. The reason these plugins are purchased is for the convenience - you don't have to learn how do do all those channel operations yourself.

In competition with Photoshop, various developers either working directly as part of the GIMP team or as independent plugin and script authors, have written a gaggle of plugins and macros that mimic a number of those pioneered on Windows and the Macintosh. Most of those that have been ported to OS/2 are already included with the GIMP package. Others are available to be downloaded. When it comes to stock-and-trade fancy effects (including the Four Horsemen of the Web Apocalypse; 3D Text, Drop Shadow, Lens Flare and Beveled Edge), GIMP is nicely equipped to handle all with mere push-button ease.

The Scripts:

GIMP has two means of third party enhancement; scripts and plugins. Scripts, written in a language called "Script-Fu," are mini-programs that work the features already built into GIMP. For most, you will fill out a dialog box with whatever preferences apply to the script you're using, then click on "OK" and watch it construct the image or effect -as you watch-. All of these effects can be replicated by hand, and probably were at first, before the author of the script understood the process enough to automate it.

For the purpose of this article, there are also two different kinds of script. Ones that will create a new canvas from scratch, and ones that will add to, or modify an existing picture that you already have open. When you first start GIMP, you can run any of the scripts that appear in the "Xtns" menu of the toolbar. These will all create new canvases with artwork drawn from scratch. Many of them are for creating fancy text and headlines, prompting you to enter your caption, what font you want it rendered in and maybe also what colors and patterns you want. Something to watch out for is what font the script chooses by default, since it's often one that didn't come bundled with XFree86 for OS/2 (or GIMP). The fonts you have installed in OS/2's own Workplace Shell may not necessarily be installed in XFree too, and the simple dialogs that the scripts present are not sophisticated enough to list what fonts -are- installed and recognized by X. If you don't remember what you have installed, try "Helvetica" or "Utopia."

To begin with, try the 3D Outline script that you'll find listed under *Logos* in the *Xtns* *-> Script-Fu* menu of GIMP's tool palette. It's a good example of the classic, fancy-schmancy 3D text effect (First Horseman of the Web Apocalypse) that web designers go crazy for. It's also dirt easy to use, just type in your headline where it prompts for it, then pick a font. What it renders is slick, outlined, textured, drop shadowed, evil, and very 3D. If you want to change the pattern that it uses to fill the text, open up the "Patterns" dialog (in *File -> Dialogs*), select the pattern you want, then make a note of the name of that pattern. You'll need to type that name in the script's configuration dialog, since it's not sophisticated enough to figure that part out on its own.

Also included in the same menu, as you will have noticed, are an ice-cream list of other effects intended to be used as quick and easy means of creating logos or headlines in fancy type. Since I'm confident you'll try them all, I'll move onto the other type of script: the ones that modify and embellish existing pictures.

Drop shadows are a piece of cake as long as you remember to put what you want shadowed on a separate layer. If you right click over a canvas and go down to the *dialogs* menu you'll find an option called *Layers and Channels* that will open a new window. You'll see a palette of layers that are in the image (only one, called "Background", if you've just created a new canvas) and a row of buttons near the bottom for manipulating them. The one that looks like a single sheet of paper will create a new layer, so in the interests of stepping you through an example you should create one now. Once done, use the text tool in GIMP's main palette to add a headline of your choice. With that done, right click over the canvas, pick *Script-Fu -> Shadow -> Drop Shadow* from the menu and tell the dialog what kind of offset and blur intensity you want.

This effect is, of course, not limited to text. It may also choose to re-size your canvas if it thinks it needs the room to put the shadow in, something that can be avoided by narrowing the offset.

The Plugins:

Stepping up in sophistication, both for functionality and interface, are the plugins. GIMP actually moves a heavy part of its standard functions into plugin form, probably to reduce the complexity of the main code as well as make it possible to assemble a lightweight version of the program. Nearly all of the import and export filters are implemented as plugins and so are most of the image processing filters. But aside from the ones that a non-artist wouldn't be interested in (such as gaussian blurs and edge detection filters), there are a number of *gadgets* that will appeal to even the laziest of push-button operators.

One such gadget will come of instant recognition to those who had Kai's Power Tools: the page curl. It's hidden in the *Filters ->   Distort* menu of GIMP (when you right-click over a canvas), although to be truthful the page curl is actually a decoration rather than a distortion. It doesn't "bend" your image, it just adds some nifty shading and gradients to get the classic "crome" look.

Another classy embellishment, found in the *Light Effects* menu, is called Supernova. You point at a thumbnail of your picture to determine where the supernova "explodes" from, then click on "OK". The visual effect it creates is not only better looking than a lens flare, but it also has yet to show up on a few hundred million web pages yet.

More To Download:

Not included with the basic GIMP package are a few more plugins that have been ported to OS/2. The first is a package of three plugins bundled together called Graphics Muse. They include a more advanced rotation tool than is included with GIMP, a tool for drawing arrows (with different styles of head and tail), and another for tiling an image until it's suitable for printing on standard business card stock. This last one seems extremely odd to me, since it's smarter to just do it with a desktop publishing program and GIMP consumes boggling amounts of RAM and time to display and process a 11 x 8.5 x 300dpi image.

*Dynamic Text* is a worthwhile plugin to grab if you want to do paragraph text - a basic that's beyond GIMP's own text tool. The Dynamic Text plugin, which you'll find in the *Filters -> Render* menu once it's installed, can do multi-line text and even import a plain text file too.

Graphics Muse Tools 
by Michael J. Hammel (http://www.graphics-muse.org/sw/sw.html) 
	download from The Hobbes Archive 
	ftp://hobbes.nmsu.edu/pub/os2/apps/graphics/gimp/gfxmuse.zip (178K) 
	Registration: Free  

Dynamic Text Plugin 
by Marco Lamberto (http://www.geocities.com/Tokyo/1474/gimp/) 
	download from The Hobbes Archive 
	ftp://hobbes.nmsu.edu/pub/os2/apps/graphics/gimp/gdyntext.zip (26K) 
	Registration: Free  

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

Basic GIMP/2  - Chris Wenham

Summary: Learn how GIMP deals with common graphics tasks, with comparisons to PhotoShop, Embellish and ColorWorks to help those moving from other painting programs.

Primitives, masks, channel operations and layers are prerequisites for any usable graphics application, should you be wanting to do more than poke dots where the eyes, nose and mouth of your cartoon character are supposed to go. With those and a decent collection of filters, you can perform about 90% of all common graphics tasks that you might do in the construction of a web site or piece of artwork.

Primitives:

*Primitives* are the tools you use to draw basic shapes, up to and including *text*. Rectangles, ellipses, polygons and bezier curves are the usual stock of the trade and it's as if each paint program has got a better way of doing it than the others. Take the drawing of circles: should you draw it from the center outward, or from corner to corner? And then: Should there be a separate drawing tool for circles and ellipses? Or even: Should there be a separate tool for drawing circles and selecting circular regions?

While Embellish is the most extreme of all paint programs for OS/2 -- having separate tools for circles, ellipses, squares, rectangles, -filled- circles, -filled- squares, -filled- rectangles, circular selections, elliptical selections, rectangular selections, square selections and on and on and on -- GIMP has it boiled down to about three tools total: Elliptical selections, rectangular selections and curve-based selections. It's from these three that you can get all of the above.

It works like this: You can only paint within the confines of the current selection and you can always tell GIMP to stroke the edges of the current selection with the current brush and color. To draw a filled circle you make a circular selection and fill it with the bucket fill tool. To make that selection into a hollow circle instead, you select the brush shape you want and pick "Stroke" from the "Edit" menu that you get after clicking the right mouse button over the canvas.

To make perfect squares or perfect circles, hold down the shift key while drawing. To make it draw from the center outwards, hold down the control key.

To draw polygons that have no curves, use the curve selection tool but don't "drag" the mouse as you draw. Just click the points where you want the polygon's corners to be. If you click in the wrong place and need to move that corner, hold down the control key while you click on that corner's "node" and drag it elsewhere. To finish the polygon, complete it by clicking on the first node, make any final adjustments with the control-drag method, and then click -inside- the selection to tell GIMP you're ready to start using it. Now you can fill it or "stroke" it to make solid or hollow polygons.

Getting a bit more sophisticated, GIMP can add or subtract from a selection - to take bites out of it or append new chunks to it. Draw a circle and then use the curve tool to take a pizza slice out of it. Or draw a rectangle and give it a rounded end with the ellipse tool. You do this with rectangles and circles by holding down the Shift key (for adding) or the Control key (for subtracting) at the time that you make the first click to start drawing the shape. Once you've started drawing and you still have the mouse button down, release the shift or control key and finish drawing the shape. The next time you hold down either Shift or Control while still drawing, GIMP will assume you now want to constrain the shape to a perfect square or circle (Shift) or draw from the center (Control).

So, for example, let's say we want to take a circular slice out of a circular selection that's already on the screen - as shown by the "marching ants" - in order to make a half-moon or crescent shape. Hold down the control key after positioning the mouse, click and hold the mouse button down while you start to drag, release the control key and then *press and hold it down again* along with the Shift key now to make it draw a perfect circle from the center outwards. When you're finished and you release the mouse button, GIMP will subtract the difference of the overlapping circles - leaving a crescent shaped selection that can now be filled or stroked.

For the polygon/curves tool, draw it as you normally would, and only hold down the Shift or Control key (to add or subtract) when you click inside the polygon to finalize it.

Masks:

*Masks* are used to protect a region of your canvas from being drawn on and, in the best programs, come in what are called "8 bit" varieties. What that means is that the mask can be defined in up to 256 shades of gray, or white and 254 grays in between until you get to black. You don't see the mask in the final picture, you only use it for *control* of where paint is allowed to be applied. A mask is always the same size as the picture and each pixel of the mask corresponds to the pixel of the same coordinate in the picture. If that pixel in the mask is black, that corresponding pixel in the picture will be protected from change - no paintbrush in GIMP's toolset can paint over it while the mask is in effect. If the pixel is gray, paint will only -partially- affect that pixel according to how light or dark that shade of gray is. Best of all, you can create and edit a mask just by painting to it, even using cut and paste operations from other masks and other images.

A common use for masks is to fill a shape with something other than a solid color, especially if the shape is a complex one, -definitely- if the shape uses fades or anti-aliasing to smooth the edges, and -always- if the shape is in another file or needs to be saved to disk for use later.

In ColorWorks you might have dealt with 8-Bit masks as separate image files, usually saved together in an ever increasingly cluttered folder of other masks from other projects. You told the program to start working with masks, pointed to the mask in question and started painting with the mask active. GIMP is different in that it stores each mask -with- the associated image and you get to them by opening the Layers and Channels palette (or "dialog"). From GIMP's point of view, these masks are stored as *channels*, and at any point you can right click on a channel in the Layers and Channels palette, pick "channel to selection", and start working with that selection as if it were one you just drew with the regular selection tools. While the "marching ants" will display an approximate border - possibly making you think it's forgotten all your fades, blends and antialiasing - the 8-bit mask is actually in full effect.

To create a new Mask in GIMP, flip to the *channels* tab of the Layers and Channels palette and create a new channel. Name it what you want. Now, after highlighting the new channel and making sure it's visible (click the white space until an eye icon shows up), go into the canvas and start painting. You'll be painting the mask here, so the only colors available to you will be grays. You'll also notice you can see your picture through the mask, as if what you're actually editing is a film of smoke across the glass that covers your picture. This is to help you match up the mask's shape and form with that of your picture. You won't be editing the picture itself, since you won't have either its layer or any of the Red/Green/Blue channels highlighted in the palette. GIMP only paints to whatever channel or layer is -selected- in the Layers and Channels palette.

When you're done painting the mask, right click on the mask in the Layers and Channels palette, pick "Channel to selection" in the menu, flip back to the "Layers" tab of the palette and select either the "Background" layer or any of the others that you have created and want to paint on. You'll see the "marching ants" have outlined the approximate shape of your mask, and when you take any of the GIMP brushes to your picture they'll only apply color within that shape.

Knowing how to use masks will come in handy like you'd never believe. If you've seen those fancy photo montages where one image blends into another and wondered how to do them, masks are about the only trick you need to know to do it. You just create masks that protect the areas of the montage that you've already done, and use fades (with the help of the gradient tool) in those masks to create the blends.

Channel Operations:

Depending on what color model you prefer to edit your images in, there will be at least three components to each color image. The default ones are Red, Green and Blue. Other major color models are Cyan, Yellow and Magenta, plus Hue, Saturation and Intensity. Any color in the spectrum (all 16 million of them from your computer's point of view,) can be described by these color models as a three number value, each number being between 0 and 255. The color white is represented, in the RGB model, as Red: 255, Green: 255 and Blue: 255. The color red is Red: 255, Green: 0, Blue: 0. And "e-Zine! Orange" is Red: 250, Green: 166, Blue: 2.

Every paint program defaults to editing these color components together as a whole, adding the right amounts of red, green and blue to each pixel's color value automatically and transparently to you. You just pick the color and draw stuff. Try clicking on the color box in Gimp's toolbar and dragging your mouse around the square of color, watching the slider bars to the right move back and forth in real-time. It's in this color selector box that you'll see how each different color model has its advantages over others. For example, suppose you want a darker variant of your currently selected color -- just reduce its Intensity level. Or let's say you want a pale version of the color you have -- just reduce its saturation. In both cases you're editing the color in the Hue, Saturation and Intensity color model.

It's impossible to create a color in one model that can't be represented in another model, so don't think that you're forced to choose one or the other. Just use whatever is most convenient for you.

But what this brief tutorial on color models was meant to prepare you for was the concept of *channel operations*. This is where you stop editing your image as a unified color model and start editing only specific channels.

In a picture canvas that you already have open, preferably with something like a photograph in it, flip to the *channels* tab of the Layers and Channels dialog and de-select two of the three channels you see there. Now start painting. Notice how the paintbrush doesn't behave as usual, it's not painting the same color as it was before and it's even painting -transparent- color - it only -taints- the picture. This is because GIMP is not painting to the color channels you have deselected. If a pixel's red component is 150 when you paint over it with only the green and blue channels selected, that pixel's red value will stay at 150, even though its green and blue channel values will change. Paint with black and you reset the green and blue value of each pixel to zero, leaving the red value intact, and leaving you with a deep red tint (made up of whatever red was present in the picture before you started painting). Paint with white and you elevate the green and blue component of each pixel to 255, giving you washed out cyans.

But there's more, because just as you can paint to only the red or green or blue channels individually, you can also make GIMP assume a different color model and paint to a pixel's hue, saturation or intensity instead. But instead of selecting "hue" or "saturation" or "intensity" in the channels tab of the Layers and Channels palette, you do it a different way; you create a new layer and change the way it adds its contents to the combined picture. This can have a number of advantages to it, not the least of which is the ability to switch off a layer if you want to look at your picture without the effect that it adds, or to switch between different combination methods.

In the *layers* tab of the Layers and Channels palette you create a new layer and, making sure its highlighted, change the *Mode* to something other than "Normal." For example, set the mode to "Color", pick a color to paint with and start painting. Try the other channels to get a visual idea of what they do. Depending on what kind of picture you're working on, it may or may not be immediately obvious what these different modes do.

And of course it's not just the old paintbrush tool that you can use in conjunction with these channel operations either. All of the filters will work too, applying their effects only to the channels or layers you have selected at the time. As you play with this in "exploration mode" you will probably make a glorious *mess*, but bear with me, these channel operations (or "chops") are used for some nifty effects that you'll learn later.

Layers:

Imagine your picture is composed of sheets of clear acetate, each sheet having an independently editable part of the image on it. If your making a title banner for your web page the first layer might be the decorative backing (a stylized wood panel maybe), the second layer could be additional decorations (carved corners) and the third layer may be the text. If you make a spelling mistake and need to go back later to correct it, erasing the text layer won't affect what's on the other layers. Better yet, you can selectively switch layers on and off to see what the composite picture looks like with or without them.

Support for layers has become another make-or-break feature for modern paint programs. In Embellish you work with objects rather than layers, ultimately emulating most of the same advantages. ColorWorks, alas, has no such analog. GIMP's Layer tool is patterned almost button for button after Photoshop's, so those in transition from Adobe's tool will have no problems getting to grips with it.

A hidden advantage comes from having an alpha channel associated with each layer. An alpha channel is like a combination of the Masks and Color Channels that I described above. Like a channel, it's edited in the background by GIMP without you being aware of it, and like a mask it's used to control the degree of transparency for each pixel. Effects such as anti-aliasing (the smoothing of edges to remove the "staircase" appearance of diagonal and curved lines) are created in the alpha channel. Why? It's so that if you change the background of an anti-aliased shape, the edges will still blend from the foreground color to the new background color. Without it you'd see a "fringe" around the edge, where the anti-aliasing is trying to blend into the old background color. This is absolutely essential for a layering paint program, since the whole point of having the layers is to let you change the background -as well as- the foreground.

If you've been following my examples so far then you've already created a layer to play with the channel operations. Adding more is simple, and at your discretion. Most artists (and even those humble enough not to use that term to describe themselves) invent their own rules and conventions for creating layers depending on what their style and skill level allow. You don't need to create a new layer for every brush stroke, of course. The undo and redo commands will usually suffice for most of your experimentation. You might find yourself creating lots of layers at the beginning, either in effort to understand the layers concept, or because you're not confident that you won't need to go back and edit your background. But as time progresses you may find it's convenient to only have one or two layers above the background, as your confidence of creating an effect right the first time rises.

Wrap-Up:

In order to teach fancier and cooler tricks, one has to make sure the basics are known first. That's what the above four are. They're the building blocks on which almost all other tricks are constructed from. The gadgets and "instant special effects" included with GIMP (see our article *GIMP/2 For Button-Pushers* in this      issue) are all very well and good, but they're mainly for whipping up fancy headlines and logos, not serious design work.

Yet to come are some more tips and tutorials for GIMP users out there, ones that could shift you up into the same gear as professional web designers. Not the ones who use Alien Skin Black Box effects and not the ones who sneak over to (http://www.cooltext.com/">cooltext.com. Stay tuned.

GIMP 1.0.2 for OS/2 
by OS/2 Netlabs / GIMP Development Team (http://www.netlabs.org/gimp/index.html) 
	Registration: Free  

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

The Unhealthy Obsession with NT  - Bob St. John

Summary: As Aurora looms, the new OS/2 Warp Server for e.business, I find myself reflecting on where the industry and Warp Server are. I'd like to share these thoughts, facts, and opinions with you and hope you will share yours with me.

I was recently asked (by an IBMer) ... "Why are people complaining so much about NT?" My response is: Because familiarity breeds contempt. People are now using NT and becoming more familiar with what it can do and how well it does it; not always living up to expectations. Familiarity breeds contempt.

We might add resentment due to the fact that many feel they are forced to use NT. The "market mindshare" leaves them no choice. People tend to resent a lack of choice. The issue comes more serious if the product they feel "forced" to use simply doesn't do the job to their satisfaction. And the promises of things getting fixed in the next release, service pack, whatever, are getting thin. The big fear isn't that Windows2000 won't fix existing problems, but that it is sure to deliver a entirely new set of problems. That would stand to reason for any new release of a large software product, even if the track record wasn't already there.

Computers are supposed to be reliable. But this is Windows we are talking about. For some reason, which has always eluded me, users have been quite accepting of Windows' frailties. A satiric item was circulated years ago called:* "If Microsoft Made Cars"*. It was a jewel. My favorite line (paraphrased from memory) was "Now and then, for no apparent reason, your car will stop working and you will be returned to your trip's point of origin. But, for some reason, this is OK with you."

More recently there has been this hoo-haa about the (http://www.news.com/News/Item/0%2C4%2C33246%2C00.html?dd.ne.txt.0303.03">Windows 49.7 day bug. It states that some machines, which run for 49.7 days, may experience problems such as a lockup due to a timer that counts every second and eventually counts higher than the memory allocated for it can handle. The user response has been along the lines of "Whose machine has stayed up long enough to detect this failure?" According to the press item, most Windows users would be happy with a system that stayed up long enough to have the problem. But this level of inexplicable tolerance does not generally spill over from desktops to servers. Or does it?

Window's frailties might encourage businesses to try OS/2 but they have to contend with IBM's ambivalence towards the product. If the company selling sends a message that they don't want people to buy it, any sales qualify as demonstration of miraculous faith and indomitable courage. Or just a damn good product. We've all see the comments by IBM execs in the trade press, and comments about not wanting to "grow the market", misplaced pride in stating which markets IBM chooses to serve. And my fear that IBM NCSD is about do this again by backing away from an "Aurora client". IBM is mayor of Mixed Message City.

As IBM Personal Systems Group was posting their one billion dollar loss, International Data Corp (IDC) was releasing a study showing that shipments for Intel server sales jumped 15% in 4Q98. And this happened despite a 4% drop in overall server revenues. Message: more and more folks are moving to Intel servers and this growth of Intel based servers favors NT because this space has been largely ceded to NT, even by IBM. Here I'm referring to IBM PC servers company and the IBM Software Group, including Lotus, which has demonstrated more support for Windows NT Server than for OS/2 Warp Server. IBM NCSD (formerly PSP) takes Warp Server's opportunity seriously. But if a tree falls in the forest ...

This same IDC study said NT was doing well because of ease of use and familiarity with WindowsNT .. the fact that NT is very available from vendors, and the application support .. they could have added device support. They may have, I don't have access to the entire study. But the study goes on to say that this success continues despite the need to overcome *-"what some call the inherent unreliability of NT, which many users claim results in 20% downtime."-* I just don't understand how a business can expect to survive if the servers are this unreliable, no mater how inexpensive the hardware is, no matter how available the applications may be.

What's sauce for Linux should be gravy for Warp Server:

Several months ago I crawled out on a limb and said that Windows NT had hit the high water mark. It will be down hill from here. This was the end of the year. I was recently validated, to a limited extent, by industry figures about Linux. Linux had out paced NT Server in new installs in 1998 according to IDC. 1Q99 Linux installs should be very high, perhaps equal to all of 1998. Of course, IBM is quickly zigging over to Linux as The Next Big Thing. Some wags say that it was IBM's software business plan to make NT "strategic" which put the jinx on the product. If so, the same fate will befall Java and Linux. I don't think so, though I think it's a good joke.

The problem with NT, which people are beginning to understand, is that it is brutally oversold. It simply can't get all the jobs done. It suffers, in many environments, from reliability and performance issues ... and it is mighty expensive. Some folks talk about running web servers on NT and spending $75,000 for all the software and hardware. That's a lot to spend and then find you have Y2K, security, and reliability issues. Severe issues of deploying software, changes, upgrades, service packs, fixes, and so forth. And users are told that Windows2000, mother of all software, will fix that. As Count Floyd would say, "Chilly scary theater, children".

Part of the irony here is *The Tale of Two Servers*. On the one hand, you have NT. A reasonable product which would appear designed and best suited to replace Novell servers and "small" Unix boxes. But NT gets positioned as the all everything system. Oversold and placed in environments that are beyond its current capabilities. But, it is MS's only server today. And when the only thing you have is a hammer, everything looks like a nail.

IBM has a full tool set of servers, and seemed to be ready to market this way. But recanted. Now, I can't really tell you what IBM's server story is. IBM has a full range of excellent servers, hardware and software, from OS/2 Entry to water cooled monsters. But you would think they are selling NT ... and soon, Linux. Microsoft oversells it's one product. Then IBM comes along and oversells Microsoft's one product. *Clue for IBM!* For the rapidly growing Intel server space, there isn't a better, more capable, more reliable, price performer "out-of-the box" (as opposed to Linux) server than Warp Server SMP.

The widespread use of NT can raise awareness and appreciation of Unix, Linux, and, I hope, OS/2. I recently spoke with a representative of a national services and consulting firm who told me that they are moving folks off OS/2 and on to WindowsNT. He didn't like doing it, but "It's what the customer wants." But my hat is off to the consultant in Texas who said, "When they ask me to put them on NT, I tell them I'm not Dr. Kevorkian".

Stay with, or move with all due haste to, Warp Server:

Forgive my obscure references, but when Steve Martin was really, really big .. he made a movie called "The Jerk". In that movie, as he sets off from home to find his place in the world, his father takes him to the side of the farmhouse and points down at something on the ground. He says a four letter word. Then he points to a small can of shoe polish in his hand and says, "Shinola". He repeats this important message, pointing to the ground, then to his hand, hoping the ability to tell the difference will assure his son's success.

Well, seeing folks leap like lemmings off OS/2 Warp Server makes me think many fathers did not impart that wisdom to their children. There is no good reason I can think of to move off OS/2 Warp Server. At a relatively recent training session, held by IBM in Austin, some personnel from an large airplane manufacturer in the northwest told this story: There are forms on doors which require someone to sign and date the form each time the door is unlocked. There was a door which, based on information on the form, had not been opened for several years. No one could recall what was in the room. So, they unlocked the door and there was a machine running LAN Server ... still running, still part of the network, supporting users in an uninterrupted fashion for years. Reliability. Availability.

One large Lotus Notes user has reported to IBM that Notes Servers on NT are providing 75% availability. The Notes Servers on OS/2 Warp Server are 99+% available. What could be causing this? Is the Notes code for Windows so inferior to the Notes code for OS/2? I'll be kind and say, that's unlikely ... certainly would not be intentional. Lotus, like most parts of IBM writing software for the Intel space, is consumed by a desire to run on NT. Could OS/2 Warp Server be that superior to NT Server in a Notes environment? I'm thinking "yes" but it would probably kill Lotus to admit that, and maybe I'm wrong. I'll be generous and say "I have no idea".

I remember the excellent work that Austin PSP did on Lotus Notes performance benchmarks. Sam Emrick and his team ran the benchmarks and made suggestions for performance and tuning. I recall Sam supporting the workload of one thousand Notes users on one Compaq server. Imagine the effect 75% availability would have in that situation. How many more NT Servers would you need to equal the load carried by the Warp Server systems?

Last month I spoke with an IT technician with a world wide insurance firm, working out of the Atlanta site. They are in the second year of a one year migration from Warp Server to NT. They have found they need to replace each Warp Server with two NT servers, which costs three to four times as much ... but, for some reason, this is OK with them. Same story from a consultant in Raleigh. Second year of a one year migration and they are over budget and only 40% complete. But what choice to they have?

I think we have identified a trend here. Folks seem to be banging their head and saying "It hurts when I do this." When we respond: "Stop doing that!" they tell us they have no choice. But there actually is a choice. OS/2 Warp Server offers a choice. And I think some companies may be at the point of realizing that they don't have to settle for NT. IBM's launch campaign for Aurora ought to be "Now, you have a choice." But there really is no need to wait for Aurora. OS/2 Warp Server has been here for years.

OK, so there's reliability, availability, and performance. Anything else?:

Of course! But shouldn't that be enough? Isn't that the point and the value of the server? Well, OK. OK. There is also *-support for the network-*. Let's take a moment to consider what Warp Server provides:

* Well, there's client support for DOS, Apple, Windows3.1, Win95, Win98, WinNT, and don't forget the recent JavaVM benchmarks ... OS/2's JVM is the best in the industry.

* Remember "a better DOS than DOS, a better Windows than Windows"? Well, now we can consider a better Win32 Application Server than NT. How about a better file and print server for Win32 clients than NT? And this isn't just a matter of reliability and availability. It's also the superior performance in these areas.

* Then there is the server support. OS/2 Warp Server can support the NT and Novell servers, and AIX, *IX, and Linux. How about the ability to be a gateway to a Novell LAN. NFS server and client.

* How comfortable would you be with an NT server running a DOS app as opposed to Warp Server running DOS app. It may not happen everyday, maybe it does, but when it does happen ... which system is likely to provide the better support while executing other functions ... and just staying up and running.

* Scalability ... well, this is touched on just a bit when we talk about performance. But some other things should be considered here. One is that Warp Server achieves all this performance on pretty modest hardware compared to NT. Some of this can be attributed to OS/2's memory management ... OS/2 has excellent plumbing. The current Warp Server scales well, and this is about to get a whole lot better when Aurora arrives.

And something else which is not immediately apparent. Support for Warp Server. Despite the "everything, including the kitchen sink" approach to Windows2000, Warp Server is an extremely complete NOS and deserves some recognition. This is something else that get's better with Aurora, but even today's product offers excellent features and benefits from some superior industry support which builds on Warp Server:

* Very effective systems management, including Netfinity Manager. It doesn't get a lot of credit for this but Warp Server has such good systems and network management that you don't see a lot of industry packages for it. And the system is so reliable, it doesn't need a lot of additional products to help it. Of course, there are good packages including LAN Intensive Care Utilities by Lieberman and Associates, and WiseManager, which really for the OS/2 clients, but it's a shameless plug.

* Strong back up and recovery with Personally Safe and Sound by IBM. An excellent package for many users. But if that doesn't meet the needs, there is CDS Inc.'s BackAgain/2. This is a *total* back up strategy, software and hardware.

Back up isn't sexy and it isn't fun, so imagine the delight of having such a complete system for restoring your system. And that really is the point ... not the back up part ... the restore part. Because, if you can't restore .. you can't expect to see your family anytime soon.

* Warp Server provides secure Internet access and supports high-speed connections across the web.

* Advanced Print Functionality is available if folks require it.

* Concurrent support for NetBIOS, IPX, TCP/IP, and 802.2

* And in line with the Internet, Warp Server is extremely strong in the network areas, including a full set of remote connectivity facilities. The ability to manage Warp Server remotely is very important to many users and vendors, including my employer (Serenity Systems).

* Another thing which, like back up, isn't sexy and is so subtle that it just isn't mentioned often ... *time management*! The time management strategy is essential and important, but I've never even heard it mentioned at executive levels. A great time management system is designed to do what the name implies, -time-- an awareness and tracking events taking place, one after another, -management-, the act of controlling: -time management- SHOULD be the act of controlling events on the LAN. And if you can't do this, you simply can't control the LAN, it will control you. And I imagine that's a very familiar scenario.

OS/2 Warp, the desktop client, gets slammed a lot over issues of applications. This is less of an issue when servers are discussed. But it's less true for device support. Even servers need to stay current when it comes to device support and that costs money. IBM has not shown an inclination to invest much in Warp. But even given the fact that the selections may be limited, I believe the overall value proposition on Warp Server is still superior. How does device support help a server that can't stay up?

I have often listened to analogies, similes of Warp and comparisons with Windows. Warp as the Checker Cab, a specialized and industrial solution designed to do the best job, low maintenance, high reliability. Just well designed and effective, if not pretty. With Windows we get the VHS - BetaMax story. Not a bad one.

Most folks at home don't bother with beta ... but when you go to the video department of a media house, or TV studio ... it's all Beta. And that may be what pulls OS/2 back from the brink. The requirement for something that is industrial strength and works. The fact that is less expensive hardly seems to be factor ... which I've never understood.

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

Into Java, Part I  - Simon Gronlund

Summary: If our introductions to Rexx have whet your appitite any, you may now be interested in moving up to another easy-to-learn language: Java.

I doubt anyone has missed the Java wave, but maybe you are still wondering about what Java could do for you. If you'd like to find out, this new regular column will guide you into object oriented developing, try some useful algorithms and show how easy it could be to build graphical interfaces. Java makes all of the above easy, since most of the hard stuff has already been done and either comes with Java or is easy to obtain. In other words, Java gives you what you want, without the headache.

Soon we'll know more about Java inner parts, opportunities and user interaction, as well as basic modeling and design. I won't assume you have any knowledge about any particular programming technique, but I will assume you have some basic coding coding experience, no matter which language. In the future I'll be dividing future columns into a theory lesson and some practical lab work. But today we start with a little of Java's history.

The history lesson:

Once upon a time, while working for Sun Microcomputers, a computer scientist named (http://java.sun.com/people/jag/bio.html)James Gosling gave birth to a new object oriented language that he named Oak. That was eight years back in 1991 when people were still using OS/2 version 1.30 and cheered when Rexx made it into the Standard Edition. Oh, those were the days ...

Oak was primarily developed for use in embedded electronic equipment, such as VCRs, telephones and cable TV boxes. That never surfaced at the time, but it was important to the language because it set the basic characteristic of what we have today in Java. Two of those important qualities are size and reliability.

Embedded systems aren't equipped with huge amounts of memory, therefore the size is important. But even more important is the reliability. Imagine an automatic telephone switchboard running out of memory, or taking a sudden power-failure. You'd quickly learn to appreciate reliability if you lived in that area.

Fortunately, while consumer electronics were still far off, the World Wide Web gave Java a new purpose, since Java really met the needs of the client/server systems inherent to the Internet. The pro's were: the small size suited limited bandwidths, it was an interpreted language with the potential of being supported by any operating system, and it had a security manager. These made Java the perfect tool for applets and soon it was giving many web pages everything from animation to online shopping carts.

What IBM saw in Java is still a mystery, since they already had Smalltalk, a language still widely used in the community of computer science and which still has a number of features Java doesn't have. In spite of that, March 1996 saw IBM gave us a prerelease of Java for OS/2, and six months later we received Warp 4 with Java 1.02. Today, we consider 1.02 useless, but back then it gave us a Java enabled Netscape and a token presence on the Java landscape. However, since then Java has matured from good to better to best on OS/2. If you've forgotten, why not look at (http://www.infoworld.com/cgi-bin/displayTC.pl?/980914analysis.htm)Infoworld's review of Java Virtual Machines again and see how OS/2 ranks compared to the others.

Today Java seems to be one of the hottest languages ever, broadly hyped-up by computer media and everyone except Microsoft. Nevertheless, learning Java could never be wrong, it gives you a deep insight in Object Oriented developing and you could always switch to C++ later on (given that the two languages are remarkably similar).

Java basics:

As with REXX, Java is an interpreted language. This means that each instruction is translated into native machine code -as it runs- and your computer will need a Java interpreter to understand how to read each instruction.

But you ask, "Don't you compile the Java code?" Yes, you do, but you're not compiling to machine code as you would with a traditional compiled language. A computer understands machine code as you understand your native tongue, fast, fluently and faultless. Machine code speaks right to the computers heart, it's CPU. Only the operating system lays in between to control the actions, supporting the app with memory, creating windows on demand, and other basic tasks. But Java is compiled to a device-independent, operating system-independent, -bytecode-.

Bytecode (so-called because it is mostly made up by combinations of instructions of one or two bytes long) is kind of a pseudo-machine-language, understood by an interpreter, a Java Virtual Machine. The JVM reads the Java bytecode and executes it, byte by byte. The JVM *is*, on the contrary, 100% dependent upon the actual operating system.

Compared to C this takes time and so Java has been belittled as sluggish. Alas, if you're planning to write yourself a new database managing the telephone numbers of New York city, you'd better pick another language. But, you could easily use Java to build your user-interface to this huge database as well as every module around it.

Further, Java can either be used to create a stand-alone application, or browser-dependent applets. The main difference is that you have to embed an applet in a HTML web page and run it in another framework, like your Netscape browser, or the OS/2 appletviewer. An application has no need of a framework,
except the Java Virtual Machine that's installed on your computer. There are differences between apps and applets, but we'll not bother with these for the moment.

Your Java developing environment:

If you haven't already set up an environment for developing Java, there's only a few short steps you need to create one.

*First*. See to it you have at least one HPFS partition. When Java was developed, the designers thought it was about time to finally give up the old 8.3 filename limit, meaning that it's almost impossible to do any Java development on FAT formatted drives.

*Second*. Make yourself a new folder to use for your work (Figure 1). We'll use several examples and a lot of the stuff will be reused, as it should in object oriented developing.

Although there are a number of visual developing tools available, you are in no need of them now. They serve their purpose, but I want you to get the basic feeling of Java inner parts. Frankly, you got the first tool already, E.EXE, which comes with OS/2. Or you could use EPM, or any tool you find yourself comfortable with. The advantages with developing tools are, you'll get colored key words, automatic indentation and other nifty features.

*Third*. Go get the software needed. To install Java you are in need of a few items. Follow these steps:

* Get up an early Saturday morning, when every other web surfer is asleep. Bring your biggest coffee thermos, a virtual shopping bag and plan for a *long* download (unless you've got a T1 line). Point your browser to (http://service.software.ibm.com/asd-bin/doc/)OS/2 Software Choice and choose your language.

* If you haven't got the freshest version of Netscape, get it now, you'll need it later on.

* Put "OS/2 Feature Install Version 1.2.3" in your bag. (And don't ask me why IBM want us to do it this way).

* Then grab Java 1.1.7. Get the "Java Runtime Package" (and if International languages aren't your priority, get the one *without* the Unicode font, since it's 12 megabytes more), and the "Developer Package".

* After you've downloaded that, and shattered your stomach with way too much coffee, you have to install the stuff. Do it in the same order you downloaded the files:

1 If you had to get Netscape Communicator, execute the self extracting file in a temporary folder and follow the instructions (mainly, run <tt>install</tt>, then reboot).

2 Now for Feature Install, which you unzip it into another temporary folder and then run <tt>FISETUP.EXE</tt>. This adds a plugin to Netscape for use by the HTML-based Java install program.

3 Now unzip the *two* Java files into one temporary folder, and then run <tt>INSTALL.EXE</tt>. Follow the instructions you'll get. After install is finished, shut down your computer and reboot. At last, delete the contents of the temporary directories.

* Now point your browser to ftp://ftp.hursley.ibm.com/pub/java/fixes/os2/11/117/ to get the latest fixes for Java. Three files. Yes, they are big, but they are worth it. As of writing this, the latest version is "JDK 1.1.7A IBM build o117-19990218".

* Copy these files to the root on the drive where you have the JAVA11 folder, not in that folder but in the root, such as C:\. Execute them, starting with RUNTIME.EXE, then TOOLKIT.EXE and SAMPLES.EXE. These are self-extracting files that had their directory structures kept intact, making them unpack their files to where you should have installed Java.

Say Hello World:

We will conclude this first part of our column with the most oft written application ever: "Hello World." Open up an OS/2 window alongside your text or programming editor of choice (in our case, MED), then follow me.

Our "Hello World" example is shown here in this screenshot, (http://www.os2ezine.com/v4n5/java1.gif) that's deliberately replacing normal text so you can't cheat by using cut and paste ;-) Remember that Java is sensitive to the type of parentheses or bracket you use, with there being three kinds: { } [ ] ( ). They are *always* in pairs.

Be sure you save the file with exactly this name in your HelloWorld folder that you made before: HelloWorld.java. Java is very sensitive with upper and lower case names, including file names.

After you've written the code and saved it, you're off to execute the built in Java compiler. And after that we will test the OS/2 JVM (Figure 3).

The first command line (javac HelloWorld.java) starts the Java compiler. The result will be a new file called HelloWorld.class.

The second command line java HelloWorld is actually starting the OS/2 JVM, executing the file HelloWorld.class. The extension 'class' is always omitted.

Now you could go tell your friends you've spent this time making a Java application ;-)

Did I hear someone mention "useful"? Ahem, could we save some of the goodies to the future? So you will be back. See you next month!

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

The companies that made this issue possible

The following are the companies that made this issue possible.

(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.crosstec.net/">CrossTec
NetOp - A cross-platform solution to remote-controlling any PC from anywhere in the world.

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

(http://www.vacentral.com/">Prominic Technologies, Inc.
On-line sales &amp; 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.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.

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

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.

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

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

Or, use BMT's Secure Order Form (https://secure.falcon-net.net/BMT/order0261.html).  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.

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



