TidBITS#398/22-Sep-97

Now that you've installed Mac OS 8, are you taking advantage of its new features? This week we put contextual menus in context. In the news department we note the upcoming first issue of NetBITS, Steve Jobs's new post, and details on the Mac OS Up-to-Date Program covering clone purchasers. We also have more Virtual PC information, news of the spam-fighting EIMS 2.0b2, and the second installment of Rick Holzgrafe's Successful Shareware piece.

And Now, NetBITS! Watch your email this coming Friday for a sample issue of our neat new publication, NetBITS. Complete details will be forthcoming both in the first issue of NetBITS and the next issue of TidBITS (and the password protection will come off the Web site Thursday night; NetBITS uses a .net top-level domain). Suffice to say for now that TidBITS readers will receive only the first two issues of NetBITS automatically and after that you'll have to subscribe (for free, of course) to receive more. You can subscribe to the text version by sending email to <netbits-on@netbits.net> and to the HTML version (make sure your email program can interpret HTML mail!) by sending a message to <netbits-html-on@netbits.net>. If you're a member of the press and would like a sneak preview, drop me a note and I'll send some additional information. More soon! [ACE]

Mac OS Up-To-Date Program Expanded -- Apple last week reversed its Mac OS Up-To-Date program, under which Macintosh purchasers who received Mac OS 7.6 can upgrade to Mac OS 8 for $9.95 plus tax. Apple had previously changed the program to benefit only people who bought Macs from Apple, but now those who purchased a qualifying Mac from Power Computing or UMAX on or after 22-Jun-97 can upgrade to Mac OS 8 as well. Orders from Power Computing and UMAX customers must be postmarked by 15-Oct-97; after that date UMAX and Power Computing expect to be shipping Mac OS 8. Previously submitted orders from Power Computing or UMAX customers will be honored and need not be resubmitted. Apple said it is continuing to work with other Mac OS licensees to make the Mac OS Up-To-Date program available. We're pleased to see Apple doing the right thing for these Mac users; however, Apple could have avoided an incredible amount of ill will had it not flip-flopped on its original promise to provide the Mac OS Up-To-Date program to clone purchasers. [ACE]

Jobs Named "Interim CEO" -- After serving as a "special advisor" to Apple's board of directors and executive management team for several months, Steve Jobs has been officially named interim CEO until Apple's board can tap a new CEO, likely before year's end. The new title changes little, but is interesting because Jobs may now be forced to take responsibility for his actions along with any credit that would be due. Previously, it would have been easy for Jobs to take credit for successes at Apple while ducking responsibility for problems his actions caused. Jobs's motivations remain a mystery - he has refused the post of CEO and even now only stands to be interim CEO for several months, but his recent actions are those of someone trying to remake a company in his own image. [ACE]

EIMS 2.0 Public Beta -- Qualcomm has released version 2.0b2 of Eudora Internet Mail Server (EIMS), formerly known as Apple Internet Mail Server. When released, EIMS 2.0 will be $199; EIMS 1.2 will remain freeware. We switched to the beta because it can prevent spammers from relaying mail through your mail server, which had just happened to us. The EIMS 2.0 Installer can upgrade an EIMS 1.2 installation without destroying 1.2's settings (in case you want to revert to 1.2). Other notable changes include remote administration, multiple domain support, mail groups, auto-replies, and Ph support. In our testing, the time-expiring betas of EIMS 2.0 have been stable and functional, and the 8-character limit on password sizes in 2.0b1 has increased to 31 characters in 2.0b2. EIMS 2.0 requires at least a 68030-based Mac, System 7.1, Open Transport 1.1.2, and access to DNS. [ACE]

Virtual PC Followup -- In response to Glenn Fleishman's review of Virtual PC in TidBITS-397, Julie Bernstein <julie_bernstein@ls.berkeley.edu> commented that Connectix provides a program called HD Utility (in Virtual PC's Extras folder) that enables you to alter the size of hard disk images after creating them. HD Utility also converts disk images from SoftWindows and Apple PC Compatibility Card formats into Virtual PC format. Also, we forgot to mention that you can copy and paste from the Mac to Windows in Virtual PC, but not from Windows to the Mac. Information transfer in that direction must take place within files or email.

Finally, Glenn and I both discovered that with two methods of Ethernet (two cards, or a PC Card and built-in) on the same machine, Virtual PC can become confused; we alluded to this in the article. Global Village and Apple have both released updates to the Ethernet methods Glenn uses on his 3400 and with the Global Village PC Card that immediately fixed his problems. Apple's is an unsupported release candidate. [ACE]

If you're among the 1.2 million-plus people who have upgraded to Mac OS 8 and you're anything like me, it's taking time to take advantage of its new features. One such feature, contextual menus (CM), is easy to miss but worthwhile. Apple intended CM to decrease mouse travel and help users access commands directly given the current context of what they're doing. Contextual menus pop out of icons, windows, and other items when you Control-click them, providing quick access to appropriate commands.

Mac OS 8's built-in contextual menus work in the Finder and contain a few basic commands. For instance, you can trash, label, or make an alias of a file. Or, if you Control-click the Trash, a command appears for emptying it. You can add more capabilities to Mac OS 8's built-in contextual menus by installing plug-ins into the Contextual Menu Items folder, located in the System Folder, and restarting your Mac. Unfortunately, at this time, these plug-ins only work with PowerPC-based Macs; if you have a 68040-based machine, the rest of this article will be more a tease than a help.

Some programs have had features similar to contextual menus for some time, but those efforts are independent from Mac OS 8's contextual menus. Bare Bones Software's BBEdit 4.5 was perhaps the first application to ship with support for Mac OS 8 contextual menus, and it comes with a smattering of built-in commands, plus it can use appropriate plug-ins installed the Contextual Menus Items folder.

Quick Compression -- The first CM commands I added were from Chris DeSalvo's $5 Compression Plug-In 1.0, a slim 13K download that makes it possible to stuff and unstuff files and folders from a contextual menu by way of Aladdin's StuffIt Expander and DropStuff utilities. At first, the Compression Plug-in didn't work; however, the new version 1.0.1 fixed my problem by looking for StuffIt Expander and DropStuff on volumes besides the startup disk.

Internet Address Detectors -- The next additions to my Contextual Menus Items folder came free from Apple in the form of Apple's Internet Address Detectors (IAD). IAD parses a Control-clicked text selection in almost any application and offers possible actions relating to URLs and email addresses in the selection, such as opening a URL or saving it as a bookmark. IAD works with Internet Config, Netscape Navigator, AOL, Internet Explorer, Anarchie, Fetch, Cyberdog, and more, and it comes with an Apple Data Detectors control panel where you can configure it to offer only commands that make sense for Internet software you use. (Note you can expand the control panel's window to see more controls at once.) If IAD doesn't find the correct version of an application, you may be able to fix the problem by rebuilding your desktop.

You also get a new extension, the Contextual Menu Enabler, which adds Mac OS 8 contextual menu capabilities to applications that don't otherwise support them. As you might guess, there are problems with some applications that use the Control key for other purposes. Apple has released a bland tech note that mentions problems in FileMaker and Excel and points the finger squarely at these applications, saying "Apple advised developers not to use the Control key because it was reserved for future use." We users end up in the middle; with luck, either Apple will release a version that accepts custom keyboard shortcuts or software developers will update applications so they are CM savvy.

Web Publishing Helpers -- I've used Acme CMM Widgets for only a few days, but two of the items may end up in my stable of HTML tools. Written by Acme Technologies, this free package includes three tools in a 39K download: Copy Image Size, ColorFinder CMM, and Clipboard to Clipping. Copy Image Size works in the Finder on any GIF's icon and puts into the clipboard an image tag with height and width attributes for the GIF (JPEG support is planned for a future version). You can then paste the tag into an HTML document. ColorFinder CMM offers an eye dropper tool; with the eye dropper, click any pixel on your screen and ColorFinder CMM puts the HTML or RGB notation for the pixel's color into the clipboard. You can choose from several different tags and notation types. The Clipboard to Clipping tool seems less useful - it creates a text clipping file on the desktop of text in the clipboard.

If you've already downloaded CMM Widgets, Image Tags used to swap the height and width attribute values. The version posted on 17-Sep-97 corrects this problem.

Finder Manipulations -- Trygve's CMM Plug-ins 2.1 include a dozen plug-ins, all written by Trygve Isaacson and available as a $10 shareware package in a 248K download. The plug-ins that interest me the most include: Touch (sets a file or folder's last modified date to now), Simple Strip HTML (removes all HTML tags from a selected HTML file), and Open With (opens selected files with a chosen application). Programmers who want to create their own CM plug-ins might also check out Trygve's CMM Framework, which comes with samples and a template.

More Finder Manipulations -- Finally, there's Stephen Marshall's $10 shareware MacOS8 CMM Expansion Pack 1.0. It downloads in an 84K package that contains two plug-ins: Finder Info and Set Custom Icon. I recommend that most people use Finder Info only with the help of a friend or reference that explains its capabilities; those who are more experienced may enjoy its ability to change Finder information such as invisible and Custom Icon bits. Set Custom Icon is a time saver to those who like to customize their computing experience by assigning custom icons to files and folders.

No Hands -- Due to a piece of software that I'm beta testing, my nervous system expects that a prolonged click will open a CM, instead of a two-handed Control-click. Apparently, I'm not the only one desiring this feature; the folks at Tools & Toys last week released Look Mom, No Hands! a $9 shareware extension that lets you open Contextual Menus by just holding down the mouse button. It's an 80K download, and consumes a mere 10K of RAM when installed. I installed this treasure earlier today, and I'm happily in puppy love. Look Mom, No Hands! only works with icons in the Finder.

Observations -- Contextual menus are changing my computing habits, and I'm liking them more and more. Like a professional waiter, they stay out of the way when I don't want them and pop up quickly when I do. Perhaps the hardest part of working with CM is setting it up - I'd encourage those who write CM plug-ins to give the plug-ins unique names that perhaps include a company name, or perhaps provide extra information in the Get Info window for the plug-in. I already have a few items installed that I can't track back to the makers and that makes it tough to pay the shareware fee.

I've by no means covered all the great contextual menu software out there. Those who wish to explore further or stay up-to-date on new developments might check out CM Central, a site that acts as a download arena, pep rally, and news source for contextual menu tools.

In part one of this article (see TidBITS-395), I introduced my list of seven "Ps" that shareware authors must consider when creating and marketing their products, and talked about the first two: Product and Patience. This week's installment covers the extremely important third P, Polish. Next installment I'll hit the last four Ps: Pay Up, Propagation, Promotion, and Politics.

The Third P: Polish -- "The first 90 percent of the job takes 90 percent of the time, and the last 10 percent takes the other 90 percent." It's true - when the programming's done and all the features work flawlessly, you're not nearly done preparing your product for release.

Another great quote is "Sweat the details." Tiny details matter more than many programmers think. Your potential customers want to have confidence in your product. The more flaws they perceive, the less likely they'll be willing to pay, even if the product performs perfectly. That may not be rational, but it's true.

So what kind of details are we talking about?

Make It Pretty -- People are more willing to buy a product that looks good. Prettiness is not a substitute for robustness or functionality, but the better looking your product is, the more copies you will sell.

If you are not artistically inclined, then find someone who is. Talk a friend into doing your graphics for free, or hire someone you can afford. A tasteful splash screen, a spiffy logo, cool icons, and button labels go a long way toward a good impression. Every time I've improved the appearance of Solitaire Till Dawn I've had a big jump in sales, and I don't think it's a coincidence. Pretty pays!

Human Interface Guidelines -- Every platform - Mac, Windows, Unix, you name it - has a "style." The Mac especially has a reputation for a completely consistent user experience, due to Apple's early publication of its Macintosh Human Interface Guidelines. These guidelines specify in detail where icons and buttons should be placed, how large these elements should be, how much white space should surround them, the proper use of color, sound, and much more. This is why, in every application, you find the commands such as Quit, Print, and Open in the same place, with the same names and the same keyboard shortcuts. Most Mac developers have learned not to mess with these commands, because Mac users turn their noses up at applications that get the Human Interface Guidelines (HIG) wrong. But there's much more to good human interface design than those obvious points.

HIG: Lay Out Dialogs and Alerts Carefully -- Many programs have cluttered, crowded windows. Users prefer windows with only a few controls and plenty of white space. Controls and displays should be carefully organized: related controls should be together, perhaps grouped and separated from unrelated controls. Align checkboxes and buttons so your layout doesn't look sloppy. Place common elements consistently - the OK and Cancel buttons should be in the same place in all dialogs.

If you have too many controls, consider using swappable panels or some way for the user to select a category of controls so that the window displays only those controls and hides the rest. This technique lets you cram many controls into a small window without crowding. Look at Netscape Navigator or Eudora for examples.

HIG: Avoid Dialogs -- The fewer modal dialog boxes you present, the better. They interfere with the user's workflow (or "playflow"). Often they report error conditions of various sorts, so a good way to eliminate them is to reduce the number of possible errors that must be reported to a user.

A good example of bad dialog use is a solitaire game I once saw. To move a card, you first had to click it. Then you had to click the place you wanted to move it. If you clicked on an illegal destination, you saw an alert dialog, telling you that you couldn't make that move. Worse, if you clicked a card you wanted to move, then changed your mind, there was no easy way to cancel the move. You had to click someplace illegal, suffer the alert, and dismiss it before you could try to move a different card.

A better interface is to have the user drag & drop the card over the intended destination. When you release the button, the card drops. If the card is not dropped over a legal destination, the card quietly zips back to its starting point, and the user can try to move something else immediately. An improvement would be to have legal destinations highlight as the card is dragged over them.

If you can design your interface so the user can't make mistakes, you'll eliminate a whole class of user annoyances and avoid writing lots of boring dialogs.

HIG: Too Many Options Are Bad -- Whenever you have to decide whether a feature should work this way or that way, the temptation is to make it work both ways and give the user the choice. Sometimes this is the right thing to do, but too many options frighten users. Most people want programs that are simple to understand and use. Anything that looks too complicated will be tossed in the trash.

So how do you minimize options? One way is to ask yourself how many people will need the choice. If 90 percent of your users want the feature to work the same way, you might be better off hard-coding it that way and letting the other 10 percent be frustrated.

Sometimes options can be hidden. Peter Lewis's FTP client Anarchie puts up a progress window during file uploads and downloads. The window shows progress in a variety of ways, including a numeric estimate of how much longer the operation will take. Some people, however, prefer to know how long it's taken so far; others want to know what time it will be done ("5:35 PM" instead of "twelve minutes from now"). Peter could have put all those indicators in the window, but that would have made a huge, cluttered, unreadable display. He could have put the options in a Preferences window, but that would have resulted in a complicated interface. His solution was simple and effective. When the user clicks the numeric readout, it switches to an alternate form. Click again, and see a third form. Click again, and you return to the first. Power users learn about this by reading the documentation or the online Tips, but users who don't care may never realize that the feature exists.

Sometimes, options are the wrong solution to a problem. A utility of mine, The Tilery, lets you switch among open applications by clicking tiles. When you click a tile, The Tilery comes to the front, as all applications do when their windows are clicked; it then immediately tells the operating system to bring forward the selected program instead. The Tilery winds up as the second-to-frontmost application, right behind the one whose tile was clicked. This is fine until the user decides to quit from several applications at once by pressing Command-Q repeatedly. When the frontmost application quits, the next in line - The Tilery - floats to the front. But because The Tilery doesn't look like a normal program, users tended to forget that it is, so when they press Command-Q again, they quit The Tilery (which in most cases isn't what they intended). Very annoying, and I used to get a lot of mail about it.

My first solution to the problem was to provide an option to have The Tilery ignore Command-Q (so you had to choose Quit with the mouse). That solved the problem, but in the wrong way: The Tilery would still quit unexpectedly unless you set that option. You had to read documentation to find out what the option was for, and the menu item that controlled it contributed to the apparent complexity of what should be a simple utility. Also, the basic problem still existed: The Tilery wound up frontmost at unexpected times.

The real solution was to keep The Tilery in the background until and unless it is deliberately brought forward. It took me a while to figure out how to do this, but the result is a great improvement. (Confession time: the old Ignore Command-Q option is still in there, because it was an established part of the user interface by then. The new feature brought options of its own, so the options interface is now even more cluttered. But at least the right problem is being solved now!)

HIG: Organize Menus Carefully and Sensibly -- Users shouldn't have to hunt through a maze of menus and sub-menus to find a command. Menus should be organized in a sensible, intuitive fashion. Examine each command's function - does it belong under File or Edit? If it's a command with a host of sub-commands, consider making it a new menu instead of creating hierarchical menus. This isn't always as easy as it sounds, but "sweat the details" and try to design a set of menus that is clean, simple, and elegant in its layout and wording.

The list of human interface details to attend to can seem endless. One source of good feedback is your beta team; after you ship, users are another. They'll tell you what works and what doesn't - not just bugs, but interface subtleties, too. Your job is to listen when they talk.

Spell Stuff Rite -- Good spelling and grammar are vital. All text that you display to your users, whether it's in the manual or an alert box or a menu, should be properly spelled and grammatically correct. It's part of the overall impression your software makes on every potential customer: the fewer flaws they see, the more confidence they'll have in your product.

If you're not good at spelling and grammar, find someone who is and beg or hire them to review and correct your work. Use spelling checkers if you like, but remember that a spelling checker won't tell you that you should have written "lose" instead of "loose" or that "its" should not have an apostrophe when it's a possessive. You may not think these fine points are important if you don't notice them yourself, but plenty of your users will, including reviewers. [We editor types cringe when we see these basic mistakes, and believe me, they happen even in big commercial products. -Adam]

Documentation -- A well-designed application may not need much documentation; it may be obvious how it should be used. Users never bother to read manuals anyway, so why waste time writing them, right? In fact, many users do read manuals, and I presume you at least want them to read enough to know how to send you their payment!

Knowing how to write a good manual is a career in itself; plenty of people make their livings doing it, and I can't teach you the art in a few paragraphs. But I can give you a few useful tips.

Unless your product is dirt-simple, you should ship it with both a short ReadMe file and a separate, comprehensive manual. The ReadMe should be a text document that briefly covers the following points:

Nearly everybody who might care about your product will want that information, including users, reviewers, and people who want to put your product on their Web site or CD-ROM. They'll be frustrated if it's missing, scattered, or hard to find. Put it all into the ReadMe file, and keep it short and to the point. See Tonya's article on ReadMe files in TidBITS-330 for a good discussion of this subject.

Before you begin writing your manual, think about how users will want to use it. Few will read it front to back before trying your product. Most will refer to it later, when they encounter something they don't understand, or can't figure out how to do something. To help these people, organize your manual in those terms. Instead of documenting every menu command in order, have a chapter labeled "How to..." Include a "Troubleshooting" chapter organized so that readers can look up problems and find solutions easily. After you've released a few upgrades, you'll know the most common problems. In your first release you'll have to guess.

The first chapter should explain the rest of the manual and mention what each chapter covers, so users can quickly find what they need. Use diagrams and pictures, which work better than text for explaining visual concepts.

Use any medium you like for your manual, as long as every user can read it. Don't ship your manual in Microsoft Word format, for example: far too many users won't have Word. A variety of ways exist to create stand-alone documents that can be displayed and printed on any Mac. If nothing else, save it as a text file.

Also consider online help. There are a bunch of ways to do it, but again, the key is organization: the way you see your product is different from the way the user sees it. The user will be wanting answers to questions such as "How can I..." and "Why can't I...", and your online help, like your manual, should be arranged so that users can find answers quickly.

[In the next installment, Rick will discuss the final keys to shareware success.]

[Rick Holzgrafe has programmed for a number of well-known Silicon Valley firms when he's not crafting shareware products.]

Non-profit, non-commercial publications and Web sites may reprint or link to articles if full credit is given. Others please contact us. We do not guarantee accuracy of articles. Caveat lector. Publication, product, and company names may be registered trademarks of their companies. TidBITS ISSN 1090-7017.