The
South AfricanS H A R E W A R E
M a g a z i n e
Volume 6 - Number 1Shareware:
Your Software AlternativeFrom the Editor's Desk
Dear Member,
So, what's new? A lot of new software; refer to the library pages. And if I may say so myself: there is some nice and interesting stuff there! There are also a couple of other changes, too!
There is a new (updated) catalogue out; all of you, our valued members, should receive one alongside with the newsletter. On request, we have now included a title index for those of you who are know the name of a program but not its volume number. Take note of disk number 1: the JSE catalogue on disk as a set of self-executing textfiles. The big advantage is that you can now search the entire catalogue for certain key words (eg function or feature). This is available on 2 floppies or 1 stiffy for R 5,oo with your next order.
Now that most of our members have MS-Windows loaded on their PCs, we have decided to list all our new Windows shareware and freeware under the standard headings, along with the DOS software. But we obviously DO indicate if a programme requires Windows. The old Windows software is still listed separate (no time for re-classification), as are Windows-specific utilities (listed under "Windows" utilities). Is there a need for more OS/2 software out there? Tell us! Otherwise the catalogue is as usual.
From now onwards, we have changed our policy of handling stiffies (3" diskettes). Previously we formatted them to 720K but only copied a 360K volume on to it. The reason for this was that many users got confused when two volumes were copied into two sub-directories of the same disk. On request and after an informal survey, we have decided that from now onwards, we WILL copy two volumes onto one 720K stiffy, under the sub-directories called vol1 and vol2 with vol1/2 being the respective Volume numbers. Since we save on media charges and (some of the) copying time, we can now charge the same per volume i.e. R10 for a 360K floppy (one volume) or R20 for a 720K stiffy (two volumes). For those of you who still prefer the old method (one volume per stiffy), we will be glad to comply - but you'll have to pay the standard R10+R3=R13 per volume/stiffy. If you wish, we can also copy four volumes onto one 1,44 MB stiffy, for R30 (the price of three volumes).
We are also in the process of setting up a bulletin board, for those of you with a modem. In fact, we're just waiting for Telkom to provide us with a line. Depending on demand, we will add lines if and when necessary.
Finally, we will also exhibiting at the Cape Computer Faire '94 during 22-24 September: we're "Stand 204" (tucked away in the side passage, all we could afford, in the "North Mall"). We may have a number of complimentary tickets available. If we only get a few, we will send them to those who request them along with their shareware order.
See you there, and enjoy your reading!
Jean-Paul Van Belle.
Contents
A Short History of the Internet p. 2
Producing your own Shareware Products p. 9
Programming Exercise: an Expression Evaluator p. 13
True Computer Stories & Unix Replies p. 18
DOS 6.2 - What's New? p. 19
New Shareware Reviews p. 22
A Short History of the Internet
By Bruce Sterling or Daniel Davidson
bruces@well.sf.ca.us or davidson@sfsuvax1.sfsu.edu
Some thirty years ago, the RAND Corporation, America's foremost Cold War think-tank, faced a strange strategic problem. How could the US authorities successfully communicate after a nuclear war?
Postnuclear America would need a command-and-control network, linked from city to city, state to state, base to base. But no matter how thoroughly that network was armored or protected, its switches and wiring would always be vulnerable to the impact of atomic bombs. A nuclear attack would reduce any conceivable network to tatters.
And how would the network itself be commanded and controlled? Any central authority, any network central citadel, would be an obvious and immediate target for an enemy missile. The center of the network would be the very first place to go.
RAND mulled over this grim puzzle in deep military secrecy, and arrived at a daring solution. The RAND proposal (the brainchild of RAND staffer Paul Baran) was made public in 1964. In the first place, the network would *have no central authority.* Furthermore, it would be *designed from the beginning to operate while in tatters.*
The principles were simple. The network itself would be assumed to be unreliable at all times. It would be designed from the get-go to transcend its own unreliability. All the nodes in the network would be equal in status to all other nodes, each node with its own authority to originate, pass, and receive messages. The messages themselves would be divided into packets, each packet separately addressed. Each packet would begin at some specified source node, and end at some other specified destination node. Each packet would wind its way through the network on an individual basis.
The particular route that the packet took would be unimportant. Only final results would count. Basically, the packet would be tossed like a hot potato from node to node to node, more or less in the direction of its destination, until it ended up in the proper place. If big pieces of the network had been blown away, that simply wouldn't matter; the packets would still stay airborne, lateralled wildly across the field by whatever nodes happened to survive. This rather haphazard delivery system might be "inefficient" in the usual sense (especially compared to, say, the telephone system) -- but it would be extremely rugged.
During the 60s, this intriguing concept of a decentralized, blastproof, packet-switching network was kicked around by RAND, MIT and UCLA. The National Physical Laboratory in Great Britain set up the first test network on these principles in 1968. Shortly afterward, the Pentagon's Advanced Research Projects Agency decided to fund a larger, more ambitious project in the USA. The nodes of the network were to be high-speed supercomputers (or what passed for supercomputers at the time). These were rare and valuable machines which were in real need of good solid networking, for the sake of national research-and-development projects.
In fall 1969, the first such node was installed in UCLA. By December 1969, there were four nodes on the infant network, which was named ARPANET, after its Pentagon sponsor.
The four computers could transfer data on dedicated high- speed transmission lines. They could even be programmed remotely from the other nodes. Thanks to ARPANET, scientists and researchers could share one another's computer facilities by long-distance. This was a very handy service, for computer-time was precious in the early '70s. In 1971 there were fifteen nodes in ARPANET; by 1972, thirty-seven nodes. And it was good.
By the second year of operation, however, an odd fact became clear. ARPANET's users had warped the computer-sharing network into a dedicated, high-speed, federally subsidized electronic post- office. The main traffic on ARPANET was not long-distance computing. Instead, it was news and personal messages. Researchers were using ARPANET to collaborate on projects, to trade notes on work, and eventually, to downright gossip and schmooze. People had their own personal user accounts on the ARPANET computers, and their own personal addresses for electronic mail. Not only were they using ARPANET for person-to-person communication, but they were very enthusiastic about this particular service -- far more enthusiastic than they were about long-distance computation.
It wasn't long before the invention of the mailing-list, an ARPANET broadcasting technique in which an identical message could be sent automatically to large numbers of network subscribers. Interestingly, one of the first really big mailing-lists was "SF- LOVERS," for science fiction fans. Discussing science fiction on the network was not work-related and was frowned upon by many ARPANET computer administrators, but this didn't stop it from happening.
Throughout the '70s, ARPA's network grew. Its decentralized structure made expansion easy. Unlike standard corporate computer networks, the ARPA network could accommodate many different kinds of machine. As long as individual machines could speak the packet-switching lingua franca of the new, anarchic network, their brand-names, and their content, and even their ownership, were irrelevant.
The ARPA's original standard for communication was known as NCP, "Network Control Protocol," but as time passed and the technique advanced, NCP was superceded by a higher-level, more sophisticated standard known as TCP/IP. TCP, or "Transmission Control Protocol," converts messages into streams of packets at the source, then reassembles them back into messages at the destination. IP, or "Internet Protocol," handles the addressing, seeing to it that packets are routed across multiple nodes and even across multiple networks with multiple standards -- not only ARPA's pioneering NCP standard, but others like Ethernet, FDDI, and X.25.
As early as 1977, TCP/IP was being used by other networks to link to ARPANET. ARPANET itself remained fairly tightly controlled, at least until 1983, when its military segment broke off and became MILNET. But TCP/IP linked them all. And ARPANET itself, though it was growing, became a smaller and smaller neighborhood amid the vastly growing galaxy of other linked machines.
As the '70s and '80s advanced, many very different social groups found themselves in possession of powerful computers. It was fairly easy to link these computers to the growing network-of- networks. As the use of TCP/IP became more common, entire other networks fell into the digital embrace of the Internet, and messily adhered. Since the software called TCP/IP was public-domain, and the basic technology was decentralized and rather anarchic by its very nature, it was difficult to stop people from barging in and linking up somewhere-or-other. In point of fact, nobody *wanted* to stop them from joining this branching complex of networks, which came to be known as the "Internet."
Connecting to the Internet cost the taxpayer little or nothing, since each node was independent, and had to handle its own financing and its own technical requirements. The more, the merrier. Like the phone network, the computer network became steadily more valuable as it embraced larger and larger territories of people and resources.
A fax machine is only valuable if *everybody else* has a fax machine. Until they do, a fax machine is just a curiosity. ARPANET, too, was a curiosity for a while. Then computer-networking became an utter necessity.
In 1984 the National Science Foundation got into the act, through its Office of Advanced Scientific Computing. The new NSFNET set a blistering pace for technical advancement, linking newer, faster, shinier supercomputers, through thicker, faster links, upgraded and expanded, again and again, in 1986, 1988, 1990. And other government agencies leapt in: NASA, the National Institutes of Health, the Department of Energy, each of them maintaining a digital satrapy in the Internet confederation.
The nodes in this growing network-of-networks were divvied up into basic varieties. Foreign computers, and a few American ones, chose to be denoted by their geographical locations. The others were grouped by the six basic Internet "domains": gov, mil, edu, com, org and net. (Graceless abbreviations such as this are a standard feature of the TCP/IP protocols.) Gov, Mil, and Edu denoted governmental, military and educational institutions, which were, of course, the pioneers, since ARPANET had begun as a high-tech research exercise in national security. Com, however, stood for "commercial" institutions, which were soon bursting into the network like rodeo bulls, surrounded by a dust-cloud of eager nonprofit "orgs." (The "net" computers served as gateways between networks.)
ARPANET itself formally expired in 1989, a happy victim of its own overwhelming success. Its users scarcely noticed, for ARPANET's functions not only continued but steadily improved. The use of TCP/IP standards for computer networking is now global. In 1971, a mere twenty-one years ago, there were only four nodes in the ARPANET network. Today there are tens of thousands of nodes in the Internet, scattered over forty-two countries, with more coming on-line every day. Three million, possibly four million people use this gigantic mother-of-all-computer-networks.
The Internet is especially popular among scientists, and is probably the most important scientific instrument of the late twentieth century. The powerful, sophisticated access that it provides to specialized data and personal communication has sped up the pace of scientific research enormously.
The Internet's pace of growth in the early 1990s is spectacular, almost ferocious. It is spreading faster than cellular phones, faster than fax machines. Last year the Internet was growing at a rate of twenty percent a *month.* The number of "host" machines with direct connection to TCP/IP has been doubling every year since 1988. The Internet is moving out of its original base in military and research institutions, into elementary and high schools, as well as into public libraries and the commercial sector.
Why do people want to be "on the Internet?" One of the main reasons is simple freedom. The Internet is a rare example of a true, modern, functional anarchy. There is no "Internet Inc." There are no official censors, no bosses, no board of directors, no stockholders. In principle, any node can speak as a peer to any other node, as long as it obeys the rules of the TCP/IP protocols, which are strictly technical, not social or political. (There has been some struggle over commercial use of the Internet, but that situation is changing as businesses supply their own links).
The Internet is also a bargain. The Internet as a whole, unlike the phone system, doesn't charge for long-distance service. And unlike most commercial computer networks, it doesn't charge for access time, either. In fact the "Internet" itself, which doesn't even officially exist as an entity, never "charges" for anything. Each group of people accessing the Internet is responsible for their own machine and their own section of line.
The Internet's "anarchy" may seem strange or even unnatural, but it makes a certain deep and basic sense. It's rather like the "anarchy" of the English language. Nobody rents English, and nobody owns English. As an English-speaking person, it's up to you to learn how to speak English properly and make whatever use you please of it (though the government provides certain subsidies to help you learn to read and write a bit). Otherwise, everybody just sort of pitches in, and somehow the thing evolves on its own, and somehow turns out workable. And interesting. Fascinating, even. Though a lot of people earn their living from using and exploiting and teaching English, "English" as an institution is public property, a public good. Much the same goes for the Internet. Would English be improved if the "The English Language, Inc." had a board of directors and a chief executive officer, or a President and a Congress? There'd probably be a lot fewer new words in English, and a lot fewer new ideas.
People on the Internet feel much the same way about their own institution. It's an institution that resists institutionalization. The Internet belongs to everyone and no one.
Still, its various interest groups all have a claim. Business people want the Internet put on a sounder financial footing. Government people want the Internet more fully regulated. Academics want it dedicated exclusively to scholarly research. Military people want it spy-proof and secure. And so on and so on.
All these sources of conflict remain in a stumbling balance today, and the Internet, so far, remains in a thrivingly anarchical condition. Once upon a time, the NSFnet's high-speed, high-capacity lines were known as the "Internet Backbone," and their owners could rather lord it over the rest of the Internet; but today there are "backbones" in Canada, Japan, and Europe, and even privately owned commercial Internet backbones specially created for carrying business traffic. Today, even privately owned desktop computers can become Internet nodes. You can carry one under your arm. Soon, perhaps, on your wrist.
But what does one *do* with the Internet? Four things, basically: mail, discussion groups, long-distance computing, and file transfers.
Internet mail is "e-mail," electronic mail, faster by several orders of magnitude than the US Mail, which is scornfully known by Internet regulars as "snailmail." Internet mail is somewhat like fax. It's electronic text. But you don't have to pay for it (at least not directly), and it's global in scope. E-mail can also send software and certain forms of compressed digital imagery. New forms of mail are in the works.
The discussion groups, or "newsgroups," are a world of their own. This world of news, debate and argument is generally known as "USENET. " USENET is, in point of fact, quite different from the Internet. USENET is rather like an enormous billowing crowd of gossipy, news-hungry people, wandering in and through the Internet on their way to various private backyard barbecues. USENET is not so much a physical network as a set of social conventions. In any case, at the moment there are some 2,500 separate newsgroups on USENET, and their discussions generate about 7 million words of typed commentary every single day. Naturally there is a vast amount of talk about computers on USENET, but the variety of subjects discussed is enormous, and it's growing larger all the time. USENET also distributes various free electronic journals and publications.
Both netnews and e-mail are very widely available, even outside the high-speed core of the Internet itself. News and e-mail are easily available over common phone-lines, from Internet fringe- realms like BITnet, UUCP and Fidonet. The last two Internet services, long-distance computing and file transfer, require what is known as "direct Internet access" -- using TCP/IP.
Long-distance computing was an original inspiration for ARPANET and is still a very useful service, at least for some. Programmers can maintain accounts on distant, powerful computers, run programs there or write their own. Scientists can make use of powerful supercomputers a continent away. Libraries offer their electronic card catalogs for free search. Enormous CD-ROM catalogs are increasingly available through this service. And there are fantastic amounts of free software available.
File transfers allow Internet users to access remote machines and retrieve programs or text. Many Internet computers -- some two thousand of them, so far -- allow any person to access them anonymously, and to simply copy their public files, free of charge. This is no small deal, since entire books can be transferred through direct Internet access in a matter of minutes. Today, in 1992, there are over a million such public files available to anyone who asks for them (and many more millions of files are available to people with accounts). Internet file-transfers are becoming a new form of publishing, in which the reader simply electronically copies the work on demand, in any quantity he or she wants, for free. New Internet programs, such as "archie," "gopher," and "WAIS," have been developed to catalog and explore these enormous archives of material.
The headless, anarchic, million-limbed Internet is spreading like bread-mold. Any computer of sufficient power is a potential spore for the Internet, and today such computers sell for less than $2,000 and are in the hands of people all over the world. ARPA's network, designed to assure control of a ravaged society after a nuclear holocaust, has been superceded by its mutant child the Internet, which is thoroughly out of control, and spreading exponentially through the post-Cold War electronic global village. The spread of the Internet in the 90s resembles the spread of personal computing in the 1970s, though it is even faster and perhaps more important. More important, perhaps, because it may give those personal computers a means of cheap, easy storage and access that is truly planetary in scale.
The future of the Internet bids fair to be bigger and exponentially faster. Commercialization of the Internet is a very hot topic today, with every manner of wild new commercial information- service promised. The federal government, pleased with an unsought success, is also still very much in the act. NREN, the National Research and Education Network, was approved by the US Congress in fall 1991, as a five-year, $2 billion project to upgrade the Internet "backbone." NREN will be some fifty times faster than the fastest network available today, allowing the electronic transfer of the entire Encyclopedia Britannica in one hot second. Computer networks worldwide will feature 3-D animated graphics, radio and cellular phone-links to portable computers, as well as fax, voice, and high- definition television. A multimedia global circus!
Or so it's hoped -- and planned. The real Internet of the future may bear very little resemblance to today's plans. Planning has never seemed to have much to do with the seething, fungal development of the Internet. After all, today's Internet bears little resemblance to those original grim plans for RAND's post- holocaust command grid. It's a fine and happy irony.
How does one get access to the Internet? Well -- if you don't have a computer and a modem, get one. Your computer can act as a terminal, and you can use an ordinary telephone line to connect to an Internet-linked machine. These slower and simpler adjuncts to the Internet can provide you with the netnews discussion groups and your own e-mail address. These are services worth having -- though if you only have mail and news, you're not actually "on the Internet" proper.
If you're on a campus, your university may have direct "dedicated access" to high-speed Internet TCP/IP lines. Apply for an Internet account on a dedicated campus machine, and you may be able to get those hot-dog long-distance computing and file-transfer functions. Some cities, such as Cleveland, supply "freenet" community access. Businesses increasingly have Internet access, and are willing to sell it to subscribers. The standard fee is about $40 a month -- about the same as TV cable service.
As the Nineties proceed, finding a link to the Internet will become much cheaper and easier. Its ease of use will also improve, which is fine news, for the savage UNIX interface of TCP/IP leaves plenty of room for advancements in user-friendliness. Learning the Internet now, or at least learning about it, is wise. By the turn of the century, "network literacy," like "computer literacy" before it, will be forcing itself into the very texture of your life.
For Further Reading: The Whole Internet Catalog & User's Guide by Ed Krol. (1992) O'Reilly and Associates, Inc. A clear, non-jargonized introduction to the intimidating business of network literacy. Many computer- documentation manuals attempt to be funny. Mr. Krol's book is *actually* funny.
The Matrix: Computer Networks and Conferencing Systems Worldwide. by John Quarterman. Digital Press: Bedford, MA. (1990) Massive and highly technical compendium detailing the mind-boggling scope and complexity of our newly networked planet.
The Internet Companion by Tracy LaQuey with Jeanne C. Ryer (1992) Addison Wesley. Evangelical etiquette guide to the Internet featuring anecdotal tales of life-changing Internet experiences. Foreword by Senator Al Gore.
Zen and the Art of the Internet: A Beginner's Guide by Brendan P. Kehoe (1992) Prentice Hall. Brief but useful Internet guide with plenty of good advice on useful machines to paw over for data. Mr Kehoe's guide bears the singularly wonderful distinction of being available in electronic form free of charge. I'm doing the same with all my F&SF Science articles, including, of course, this one.
Quotable Quotes
Artificial Intelligence is no match for natural stupidity.
As easy as 3.14159265358979323846264338327950288419716
As I said before, I never repeat myself.
As long as I can remember, I've had amnesia.
ASCII stupid question... get a stupid ANSI!
Ask not for whom the bell tolls; let the machine get it.
Assumption is the mother of all screwups...
Aural Sex produces eargasms.
Back Up My Hard Drive? I Can't Find The Reverse Switch!
Barium: what you do with dead chemists.
Be nice to your enemies, it drives them nuts.
Best file compressor around: DEL *.* (100% compression!)
Beware of programmers who carry screwdrivers.
Black holes really suck...
Black Holes were created when God divided by zero!
Both of his feet are firmly planted in the air.
Break up a relationship - buy a computer!!
BREAKFAST.COM Halted... Cereal Port Not Responding.
But honey, we can afford it, I sold your car!
But I forgot all about the Amnesia Conference!!
Buy a supscription to Playboy and send it to your boss' wife
CONgress (n) - Opposite of PROgress
Constant change is here to stay.
Contentsoftaglinemaysettleduringshipping.
Corrupt REALITY.SYS: Reboot Universe (Y/n)?
How to produce your own shareware
BY Kevin Solway
Ed.: This article was taken from the documentation from "BIGTEXT" (disk # 4319), which allows you to convert ordinary text or wordprocessing files quickly and easily into self-executing, menu-driven and attractive on-screen files. This is also the programme the JSE used for its on-disk catalogue (R 5,00, disk # 1). Most remarks are valid for any type of shareware marketing. Note that for more complex or interactive tutorials, you could also use our "CAI"-like programmes e.g. "Sell your know-how as shareware" (disk # 4107); "TutorialWriter" (disk # 3108); "Extol CAI" (disk # 3487); "PC-CAI" (disk 3486) or any of our hypertext document generators e.g. "Far View" (2957); "Black Magic" (2269/70); "Hyperrez" (2129) etc. (refer under Specialized WordProcessors in the applications reference section of our catalogue.)
Shareware Marketing
Why keep your knowledge confined to yourself, or teach it to only a handful of students? Why toil to write a manuscript only in the hope that you can interest a publisher, and then hope the editor doesn't trim it to pieces? Through shareware, your story WILL be told, and it will be told to a huge audience!
Once you have created your self-displaying text programs you may want to know how to get them to the public. You may also want financial reward for your efforts.
I can tell you from my own experience that shareware marketing definitely does work. However, you should not expect to make millions of dollars too easily, and you will require some patience.
To create a successful shareware product with Bigtext all you need do is to release information or literature that other people need or would enjoy reading.
One marketing technique is to make the first in a series of information programs available for free, and then make the remaining programs available to registered users only. The first program will advertise the remaining programs.
If you release knowledge in a specialized field, your product may be worth more. Special knowledge is valuable. If you can start someone on a new career, or can explain a technique that can save people a lot of money, you have a product that may be worth hundreds of dollars per copy. Hobbyists in any field have been known to spend large sums to get exactly the knowledge they want!
Importantly, many shareware distributors have learned that even very obscure titles sell well, because specialists will seek these titles out! For instance, PET, a shareware disk for veterinarians is a good seller. HYDROFLO, which has something to do with designing pipes and valves for fluids, has always been a good seller.
Getting disks to the public
This is amazingly simple. All you need do is send copies of your disks to shareware distributors.
Shareware distributors are hungry for new products and will be happy to review your disks. If they feel that your material is interesting and reasonably well done (and most shareware distributors will take almost anything that works) they will list it in their catalogs and start sending out copies to buyers.
The distributors don't send you any money, and you don't send them any money. Whatever money you make comes from your advertisements within your shareware disks. You only pay the cost of a few blank disks and the postage to mail them. You can send your disks to just a dozen shareware distributors, or to hundreds. Of course, the more disks you distribute, the sooner you'll start to see an income.
How much, how soon?
Once your product makes its way into a few shareware catalogues, you could probably expect to make, <in the worst case>, $20 o $30 per month.
On the other hand, some shareware authors make $5,000 per month. You may need to put out 10 good products over the course of perhaps three years before reaching an income of $40,000 per year. But there is no ceiling. You can keep improving and writing more!
Regarding time, you can't be in a hurry. It takes a while for a distributor to print new catalogs including your new disk. It takes a while longer to get these catalogs to the public. It takes another while for the people to order your shareware disk, and then even more time before they decide to send you money. Realistically, you shouldn't expect to see much of a result for about eight months.
On the bright side, when your income eventually begins to taper down, it will do so very slowly. You will be receiving registrations for years after you release a good product.
Things that need doing
- How to make money with your home computer!
- Tutorials in playing all musical instruments
- A tutorial in reading sheet music
- Disk-based cook books will be popular
- Car repair manuals
- All aspects of home sewing
- All crafts and hobbies
- Television repair
- Computer repair
- A general course in electronics
- Chemistry? Biology? Anatomy? Herbal medicine?
The following is a very brief summary of the Shareware Author & User Case Study. Copyright 1994, by Daniel Corbier. All rights reserved. Answers are based on survey responses from shareware users, and successful authors. Standard disclaimers against liabilities apply.
Q: What is the average price users pay for shareware programs?
Users pay between $5 and $200 (US) per program. The most popular price is $25, and the average price paid per program is roughly $30.
Q: Which methods of payment are used for registration?
Most shareware registrations are done by check, followed by credit card. Some customers use both, while others indicate a strong preference for one over the other. People also register by money order, Compuserve, online doors, and cash.
Q: How much time does it take users to evaluate shareware programs?
Some register after the first use, while others register after years. How soon a user sends a payment depends on factors such as frequency of use, learning curve, personal cash flow, and more. Users do not always start using programs right after downloading them, neither do they always keep track of how long they evaluate these programs.
Q: What prevents users from registering shareware programs?
"Unreasonable price" represents by far the most common reason for not registering. It's followed by crippling, and then payment difficulties (currency exchange, etc...), nag screens, lack of support, unreachable authors, bugs, bad documentation, lack of money, expiration, laziness, too few reminders or promised features, inadequate upgrade policy, and bad author attitude.
Q: Which factors motivate users to register?
High quality, usefulness and then understanding/appreciation of the shareware concept or honesty are mentioned the most. Affordable price comes next. Other motivating factors include support, full functionality, good interface, free upgrades, extra features, reminder screens, good documentation, positive author attitude, easy methods of payment, printed manual, and limited time offers.
Q: Which incentives are used by authors of programs users register?
Users mention extra features the most, then free upgrades, followed by printed manuals. Other incentives include nag screens, full functionality, support, quality, usefulness, delays, random key press, price specials, source code, and expiration.
Q: What percentage of users register?
A shareware program gets registrations from anywhere between 0% to 80% of its users. Registration rate depends on many factors. A number of successful authors estimate that 5% to 10% or so of their users register.
Q: What kind of people register?
Some programs are mostly registered by businesses & corporations, others mostly by home users, others mainly by sysops, etc... Some are registered by a good variety of users.
Q: When does the first registration come? When does success come?
The first registration usually comes within a few weeks of first release. It takes between 8 months to several years before shareware programs have a chance to become successful.
Q: Do customers usually contact the author before registering?
Most users simply say "no". Some do usually contact the author, however. Others check with the author only if there are problems that need to be resolved or if the program is old.
Q: What are primary sources for obtaining shareware programs?
Most users mention BBSes as a primary source. Authors also mention BBS distribution as a primary source of registrations. The next most popular choice is FTP. Other sources mentioned include CD-ROMs, commercial online services (Compuserve, AOL, BIX, ...), disk vendors, friends, racks, and cover disks.
For an in depth explanation of what makes users register, and what makes some authors successful, obtain a copy of the Shareware Author & User Case Study. On BBSes the file name prefix is SAUCS1.
This brief summary may be distributed separately from the main document, and may be posted on forums, used as a bulletin, or included inside another document, as long as it is used in it's entirety (including this notice), and without any modifications, and as long as it is not sold, or included in a document which is sold.
Programming Exercise: an Expression Evaluator
By Jean-Paul Van Belle
Abstract
Some algorithmic thoughts on and code for a arithmetic expression parser/evaluator and pop-up calculator.
INTRODUCTION
Whilst busy designing a couple of computer-based education modules for developing university students' analytical and mathematical skills, I stumbled across the problem of how to incorporate a pop-up calculator, set general multiple choice ("monkey-puzzle") questions with randomized problems (i.e. always take on different values each time the question is posed) and allow students to answer with a formula instead of having to calculate the answer.
The following situations will illustrate the requirements:
* A student wants to calculate how much an investment will be worth in 5 years' time, given a certain interest rate. She presses a special key (e.g. <F9> Calc ) and a standard calculator appears on the screen ("pops up" on top of information displayed) where the student can calculate at liberty. When exiting, the calculator disappears to display the underlying text and the student continues with her work. A special key will copy the last result into whatever question was posed.
* When testing students on numerical concepts, I want to be able to specify ever changing questions e.g.
What is the break-even point for a company with fixed assets of R [X1] and variable costs amounting to [X2] % of sales?
Anser: [X1] / (1 - [X2]/100) / Possible distractor (if MCQ format): [X1] / ([X2]/100)
Where [X1] is a value between (R) 1000 and 100000 but with only one non-zero digit, and [X2] is a multiple of 5 (%) between 35 and 85 (i.e. the student just sees actual values on the screen.
* The student should (sometimes) be able to anser with a formula instead of an exact value e.g. answer with 3000/0.55 instead of 5455 (or 5454.55 or 5454.545).
Solution: a robust, simple run-time arithmetic expression evaluator. While my code implementation is attached (there are quite a few refinements possible - see comments) this article is more about the algorithmic considerations.
Binary versus "Unary" Operators.
A binary operator works on two numbers e.g. addition: 3+4 adds two numbers and gives one result. A unary operator works on only one number e.g
Ö 4 (the square root of 4) and gives one result. This presents the following challenges:The usual binary operators, + - x
and ^ (the power function) are normally written and typed inbetween the numbers, hence one number must be stored, then the operator must be stored and then the next number is entered. Only when another operator is then press, do we know that the last number is "finished" and can we perform the previous operation. Unless a "higher order" operand is pressed, since exponentiation takes precedence over multiplication & division, which in turn take precedence over addition and negation. All this is handled by pushing all numbers and operators on a "dual stack". Note that "Polish notation" type calculators (e.g. the Hewlett-Packard range) don't have that problem, but my students are unlikely to be familiar with those calculators.The unary operator is normally written in front e.g. ln(4),
Ö 4 (except the factorial function 4! = 1x2x3x4) but calculator tradition has it that the function key should be pressed after the number is entered - this actually makes a programmer's life a bit easier e.g. consider sin(ln(Ö (4))).From the code it is can be seen how unary operands can be programmed fairly easily. Adding a unary operand now becomes a "case" of adding another case statement and a couple of lines of code, since most functions are built-in Basic functions anyway.
Because of the stack requirements and the different priorities of binary operands, that section is slightly more complicated. I basically push everything on stack and then call the "StackCollapse" routine which checks if (and how many) binary operations should be calculated.
The whole issue of brackets 3x(4+5) is also handled easily using the stack (and a dummy zero number).
Two self-imposed complications
Although the unary operators are intrensically easy to implement, I created myself two problems: the multi-key unary and the negative sign.
The multi-key unary operand was introduced with the idea that I will need to round figures to a number of decimal points (the F operand) and that I will need to make use of a number of built-in variables (the # operand).
E.g. 3.123456 F 4 means 3.123456 rounded to 4 digits i.e. 3.1235;
E.g. 34 + #4 means 34 + the value in variable number 4.
I constructed a special test to check the "last key" which was pressed to see if it was one of these special operands. As I am writing this, I can see that it would have been a lot more logical (and more aestethic) to specify them as binary operands and use the stack mechanism instead. The `only' loss would be the current default value of a 0 if no second key is pressed i.e. 3.14 F + 2 is interpreted as 3.14 F 0 + 2.
My other self-imposed complication is allowing a user the option of pressing 2x-3 to mean 2 x (-3). Most calculators use a special sign-reversal key ("+/-", to be pressed after the number has been entered) for this, but the educational argument to do it the "written way" weighted in more heavily.
The Baadkey$ story
Since a number of the students are likely to be computer novices, a standard educational problem crops up. Novices are likely to see the O (capital letter "o") as a synonom for the (digit) 0. It makes sense (and it was in fact one of the motivations for coding the entire calculator routine) to alert the user to the fact that this is not normally acceptable (i.e. a bit of computer education) but the calculator will carry on anyway. The keyboard I (capital letter "i") also looks exactly like the digit "1", but isn't the same for computers. The same goes for the "x" (multiplication sign) which, students have to be aware of, in computerese is supposed to be a "*" (not only in programming but also e.g. spreadsheets or equation editors). The same goes for the South African decimal comma which students have to accept is not valid on internationally inspired software. Dito for 6:3 which becomes 6/3. The same function also allows all types of other synonyms to be used e.g. the various brackets "[ { <" are all converted to "(", a "?" can be used as a substitute for "H" (Help); <Esc> becomes "Q" and <Enter> becomes "=".
Two notes: 1) The "error flagging" is only done for the REALLY bad keys and when in "keyboard" or interactive mode. 2) All other keys i.e. those that are not good nor bad (i.e. not a substitute) are simply ignored. This allows spaces to be used to improve visibility of "string" calls of the routine e.g. one can pass " 1 + 3R ^ -2 * (4 + P) " as an argument instead of "1+3*(4+5)"
Storing the current number
Most calculator have two "current numbers": the one you see on the display and a higher accuracy one used for internal calculation. I have found that this often confounds students, so I opted (also for some other reasons) for the following strategy: my calculator will use only ONE current number i.e. WYSIWYG or all operations are done on the number that is on the display. E.g. when one calculates 1/3*3 - 1, one doesn't get a very small (negative) number appearing out of nowwhere.
All calculations are therefore done on Number$ which is what is on display. The Basic VAL and STR$ functions obviously come in handy, here. Note, however, that stack variables are stored as double precision numbers: they don't feature on the display! The # variables (because they are derived from a display) are strings again.
Guarding against overflow, underflow and division by zero
To avoid the use of the ON ERROR routine (for technical and practical reasons), I prefer check for potential causes BEFORE rather AFTER calling illegal functions. Underflow results in a zero value, overflow in BIG$ (9999999999) as does division by zero. I have probably overlooked a couple of situations - that's what beta-testing is for.
Removing scientific notation
I have tried to avoid scientific notation appearing on screen e.g. 1.234D-03 would normally appear instead of 0.01234, thoroughly confusing some unfortunate student. I did not catch all appearances of 1.1234D+10, though, since my allotted time for the program was over by the time is discovered this!
In the "It never happens to me"-department
And yes, my 3-year old Jonathan pressing the reset button after the first skeleton version of code was typed in (I don't make a paper rough draft), hence my entire afternoons' work went to bit-heaven! I should have used my old faithful Turbo-Basic, which saves automatically every time you run the program
Enhancements
The following should still be done:
* clean up the final display code: some duplication is happening in the "StackCollapse" and the "DisplayNumber" routines. This could be streamlined.
* When the calculator is displayed on-screen display, a copy of the underlying text should be taken. This is simply a matter of copying each character & display attribute into an array (using the SCREEN function or by directly looking into video memory). When exiting, the old text could be display back onto screen. I did not code this since I will need a more generic routine for this (and most probably use a shareware Basic Routines library for this)
* add even more functions - I didn't need any more and only added the log and others for fun (I did not test or debug them and therefore call them `undocumented')
(page reserved for Basic code)
True Computer Stories & Unix Replies
by Michael A. Kline & Victor McCoy.
#1 A person was trying to install a package and reported that no matter what they did, the install would not go claiming it couldn't read the disk. Well, they were new diskettes, a brand new package, so Laurel went down to see what was going on. She got to the person's office and said, "Okay, show me what's happening." The user said, "Right here. I can't get past this point. 'Enter A:setup, put diskette in drive, close door, and press enter.'" Laurel said, "Okay, let's try it." The user looked the diskette over for defects, showed it to Laurel. It looked fine, so Laurel said, "Okay, let's try it again." The user entered "A:setup", put the diskette into the drive, got up, went to her office door, closed it, came back to the PC, pressed enter, and sure enough, the PC reported "Unable to read drive A:" Laurel said it was all she could do to not fall off the chair laughing. The user was so sincere, and just couldn't figure out what was wrong.
#2 Funniest, "can't install" joke came from a guy at a neighboring office who complained that he couldn't install a new program. When the repair - trouble shooting guy arrives, says, "See, I can't get it to read the disk even after I trimmed it down enough to fit in the little door." He'd of course, taken a 5 1/4 disk and trimmed it to 3 1/2 with scisors.
#3 A friend of mine (Bruce) in Dallas runs a PC shop. He said that he had a call from a lady that complained that she could read or write to any of her 5 1/4 floppys. Bruce went to the site to investigate. He could find nothing wrong with the drives, but he did notice how well the labeling on the floppy was. It turns out the lady used her typewriter to type labels (after applying them to the floppies.
These are actual error messages you can receive when typing in the following messages at a UNIX command prompt.
by Jeff Rollosson Halbhuber (jeffrh@MAILPO2.ASYM2PO.ASYMETRIX.COM)
% rm meese-ethics => rm: meese-ethics nonexistent.
% ar m God => ar: God does not exist.
% "How would you rate Reagan's incompetence? => Unmatched ".
% [Where is Jimmy Hoffa? => Missing ].
% ^How did the sex change^ operation go? => Modifier failed.
% If I had a ( for every $ Reagan spent, what would I have? => Too many ('s.
% make love => Make: Don't know how to make love. Stop.
% sleep with me => bad character
% got a light? => No match.
% man: why did you get a divorce? => man:: Too many arguments.
% ^What is saccharine? => Bad substitute.
% %blow => %blow: No such job.
% \(- => (-: Command not found.
% sh =>
$ PATH=pretending! /usr/ucb/which sense => no sense in pretending!
$ drink <bottle; opener=> bottle: cannot open => opener: not found.
$ mkdir matter; cat >matter => matter: cannot create.
% man sex => No manual entry for sex.
DOS 6.2 - What's New? (Part 1)
A BETTER INTERACTIVE BOOT
If you need to troubleshoot your CONFIG.SYS or AUTOEXEC.BAT file, you can use the DOS interactive boot. Reboot your computer. Wait until you see on your screen:
STARTING MS-DOS...
Then press the function key labeled:
<F8>
With DOS 6.2, you can process both your CONFIG.SYS and your AUTOEXEC.BAT file one line at a time. DOS 6.0 would do the CONFIG.SYS one line at a time. Then it would run the entire AUTOEXEC.BAT file. Being able to execute one line at a time in the AUTOEXEC.BAT file is very helpful.
A ONE PASS DISKCOPY
Hallelujah! No more DOS-E-DOE shuffle! Yes, I have made fun of the DOS DISKCOPY command for years. Shucks. Now I'll have to poke fun in other areas. Finally, with DOS 6.2, you can copy a diskette and not have to switch constantly between the source and destination disks! The entire business happens automatically. You won't even have to think about it. DOS now uses a little of your hard drive space to store the information.
However, for making multiple copies of a single disk, the shareware program called COPYQM is still much better. For more on how to use the DISKCOPY command, see pages 70 - 73 in LEARNING DOS FOR THE COMPLETE NOVICE, 2nd Edition. Check out the TIP on page 73 that shows how you may be able to copy a disk that won't DISKCOPY.
HIGHER CAPACITY DEFRAGMENTING
The new DOS 6.2 DEFRAG program can defragment disks with almost twice as many files as the DOS 6.0 DEFRAG program. With DOS 6.2 the limit is about 20,000 files. A drive becomes fragmented with active use. A drive is fragmented when files are not stored in an efficient manner. This tends to slow down the drive and makes tasks take longer than they would if the drive were not fragmented. It should be noted that defragmentation is also called disk optimization. Not until DOS 6.0 did Microsoft provide a defragmentation program. There are probably millions of really sick hard drives operating around the world. You can usually tell if your hard drive is sick by using the DOS CHKDSK command. See pages 56 - 57 in LEARNING DOS FOR THE COMPLETE NOVICE, 2nd Edition. With DOS 6.2 you should use the SCANDISK command to check your hard drive. The DEFRAG program reorganizes files to optimize disk performance. You should defragment your hard drive(s) at least once a month. Defragmenting should be considered routine hard drive maintenance. You should not try to run the DEFRAG program from within Windows or use it on network drives. It should also be noted that defragmenting a large hard drive can take a very long time. For more information about the DOS DEFRAG command at the system prompt, type:
help defrag <ENTER>
NEW HIMEM.SYS FEATURES
The HIMEM.SYS program manages your computers extended memory and the High Memory Area (HMA). With DOS 6.2, they have implemented a new feature for HIMEM.SYS. By default, when you start your computer, HIMEM.SYS tests your computer's memory chips. If it finds a bad one it will let you know.
HIMEM.SYS is found in your CONFIG.SYS file, which resides on the root directory of your start up disk. If you want to turn the memory check feature off, you can modify the HIMEM.SYS line in your CONFIG.SYS file to read:
DEVICE=C:\DOS\HIMEM.SYS/TEST:OFF
However, the few extra seconds that HIMEM.SYS needs to check your memory seems like a small price to pay. My advice is to not mess with your HIMEM.SYS line. Let it go ahead and check your memory. Pretend that it is like a masked rider who's only mission is to do good deeds. HIMEM.SYS and away!
If you want to learn a great deal more about HIMEM.SYS, type:
help himem <ENTER>
THE NUMERIC REFINEMENT OF DOS 6.2
Microsoft really does have a pulse on humanity. They do their research. They have concluded that humans can read numbers more effectively when commas are used (if the numbers are 1,000 or larger)! Now this really is progress.
Finally, with DOS 6.2, CHKDSK, DIR, MEM, and FORMAT, shows numbers greater than 1,000 using commas.
OVERWRITE PROTECTION
Now, with DOS 6.2 when you use COPY, MOVE, or XCOPY, you are prompted before you copy over a file with the same name. This feature is long overdue--it averts many disasters.
SCANDISK
You may have noticed that this SCANDISK section also appears in the DoubleSpace section. It is here, too, because SCANDISK can diagnose and repair errors on both uncompressed and DoubleSpaced drives. SCANDISK is really one of the best new additions to DOS 6.2.
SCANDISK is a new program that for most purposes replaces the CHKDSK and the DOUBLESPACE/CHKDSK commands. However, when you quickly want to see how much space is left on a disk, CHKDSK is the command to use. The old CHKDSK DOS command would not fix cross-linked files. SCANDISK can fix cross-linked files and clusters, and lost clusters automatically. If you are using DoubleSpace and sustain damage to a Compressed Volume File (CVF), SCANDISK can repair the CVF and often recover the data. SCANDISK also does a "surface analysis" on a hard disk. If SCANDISK finds unreliable sectors when doing this surface analysis, it marks them as bad and moves the data to reliable sectors on the hard drive.
To use SCANDISK, change to the drive you want to scan and at the system prompt, type:
scandisk <ENTER>
If you want to just check your C drive, type:
scandisk c: <ENTER>
If you want to check all your drives, issue this command:
scandisk /all <ENTER>
If SCANDISK needs to fix a problem you have the opportunity to create an UNDO floppy disk. DOS will prompt you. To create an UNDO disk, place a blank formatted diskette in drive A or drive B and make the appropriate choice at the prompts. This UNDO disk can be used to undo any changes that SCANDISK may make.
To use the SCANDISK UNDO feature, place the UNDO disk in the A drive, for example, and issue a command like this:
scandisk /undo a: <ENTER>
If you have DOS 6.2 installed, you can get more information on SCANDISK by typing:
help scandisk <ENTER>
SMARTDRIVE OVERHAUL
SMARTDRIVE is a disk cache program that works with computers that have extended memory. A disk cache uses a portion of memory to store information that DOS reads from disk. DOS can read the information from the disk cache much faster than it can read information from a drive. However, with DOS 6.0 Microsoft had their SMARTDRIVE program default to both read caching and write caching. The problem with write caching is that if you turned your computer off immediately after quitting a program, you could potentially lose data. With DOS 6.2 SMARTDRIVE write caching is turned off by default.
ARTICLE TO BE CONTINUED IN THE NEXT NEWSLETTER