TidBITS#525/03-Apr-00

Guilty! A federal judge has found Microsoft seriously violated U.S. anti-trust laws, right on the heels of the company's release of its latest Macintosh Internet software. Also this week, Matt Neuburg looks at the powerful macro utility OneClick 2.0, which let you customize and automate your Mac. In the news, we note new sponsor digital.forest, examine results from last week's Web browser poll, and apologize for tricking so many of you on April Fool's Day.

April Fools Gotchas -- The mail has been thick over the weekend in response to our traditional April Fools issue (TidBITS-524), and all we can say is, "No mas!" That, and we'd like to apologize to all the people who were suckered by the articles in that issue, especially the one reporting on the internal Microsoft memo that outlined a plan to sell the company's Macintosh business unit to Apple as a concession to the Justice Department (special thanks to Omar Shahine, the Microsoft Outlook Express program manager, for providing the quotes that lent that extra touch of verisimilitude to the article). Fewer people fell for our discussion of the proposed MRML standard (Mind Reading Markup Language), but Geoff Duncan's tongue-in-cheek suggestion for how software companies could encourage more users to upgrade - documents that wear out as you use them - has unfortunately been well-received by some larger Macintosh software developers who shall remain nameless. [ACE]

Microsoft Violated Anti-Trust Laws -- U.S. District Court Judge Thomas Penfield Jackson has ruled that Microsoft Corporation violated the Sherman Anti-Trust Act by using its position in the Web browser market to "the detriment of competitors." The judge also found that Microsoft could be liable under state anti-competition laws. Judge Jackson must now schedule hearings later this year to consider remedies for Microsoft's actions, which could include structural changes to the company, business restrictions, or an actual breakup of the company. The only major point on which Judge Jackson disagreed with the government's case was that Microsoft's marketing arrangements with other companies did not ultimately exclude Netscape's browser software from the worldwide browser market. Microsoft has repeatedly said it would appeal any ruling against it; experts estimate the case could easily drag out to the year 2002. Microsoft stock was down nearly 15 percent in anticipation of Judge Jackson's announcement, dragging the NASDAQ index down 7.63 percent in its largest single-day point decline in history. [GD]

digital.forest Sponsoring TidBITS -- We're happy to welcome our latest long-term sponsor, the Macintosh-savvy Internet hosting company digital.forest. Located in the Seattle area, digital.forest has been in business since 1994 providing Mac-based Web hosting, FileMaker Pro database hosting, and server co-location services to companies around the world. We've known the folks at digital.forest for years, and when it came time to move our servers from their home at POPCO, digital.forest was our first choice because we wanted to work with people that used and understood Macs rather than just Unix or Windows. Plus, digital.forest's data center is a tour de force - an ever-increasing number of Macs of all sorts securely housed on earthquake-proof racks, Ethernet cabling neatly tied into tracks, tape changers performing daily backups via Retrospect, and the constant drone of the environmental systems. Equally important are the invisible aspects of the setup - the multiple high-speed Internet connections, constant network monitoring (with automatic rebooting capabilities for crashed servers), backup power, 24-hour tech support, and more. If you're tired of monitoring your own servers or just need a high bandwidth place to park a Web-enabled FileMaker Pro database, I'd encourage you to check out digital.forest's services. [ACE]

Poll Preview: System Shiftin' -- Many people expect Apple to release a minor update to Mac OS 9.0 in the near future, which provides all the excuse we need to ask a simple question basic to all Macintosh owners: What version of the Mac OS do you use on your primary Macintosh? If you're among the folks not running the Mac OS on your main Mac, you'll have to sit this one out, and if you have several Macs that you consider "primary" (a desktop Mac and a PowerBook, for instance) you'll need to choose one as more "primary" than the others. So come one, come all, and tell us which version of the Mac OS you're using by voting on our home page. [ACE]

Outlook Express 5.0.2 Correction -- Last week we briefly noted the changes in Outlook Express 5.0.2 along with the review of Internet Explorer 5.0. Unfortunately, our information came from pages on Microsoft's Web site that, it turns out, were just plain wrong with regard to the progress window. The real deal is that, along with numerous bug fixes, performance enhancements and stability improvements, Outlook Express 5.0.2 now supports SMTP AUTH, a method of authenticating yourself to your SMTP server when sending mail. SMTP AUTH is useful because the SMTP server can reject attempts to send it mail from anyone who isn't authenticated, and that in turn prevents spammers from using the SMTP server. Our apologies for any confusion. [ACE]

Our polls, like many others on the Web and in the real world, are unscientific because we don't identify the population of people we want survey, randomly survey a sufficiently large subset of that population, or use a polling method that's designed to eliminate bias. With last week's poll, however, we had an unusual chance to compare what people said when responding to the poll to how they acted. We asked a simple question: "Which Macintosh Web browsers do you use on a regular basis?"

Here's how the results broke down for the four browser versions in common use. Note that the poll enabled people to submit multiple responses if they regularly use more than one browser, so this table shows the percent of people who voted for each answer, not the percentage of votes for each answer.

Our poll received 2,196 responses from 1,419 people, which could mean roughly half the respondents indicated they use more than one browser. However, it could also mean 1,200-odd people only use one browser, while 200 or so use four or more. There's no way to know.

Let's compare those results with the actual browsers used to view the main TidBITS Web site last week - even though this is spurious from a statistical point of view. I ran our log file through Active Concepts' FunnelWeb log analysis program, which is one of the few Macintosh log analysis programs that let me easily separate out hits attributable to Macintosh Web browsers and provided the results by visitor, rather than page views or overall file hits.

At first glance, although the numbers for Internet Explorer match fairly closely between the poll and the log, it would seem that more people claimed they use Netscape and iCab than actually used those browsers when they visited our site. This is borne out in terms of the percentage of requests made on our Web site last week by Macintosh browsers: 53 percent came from versions of Internet Explorer, whereas Netscape accounted for only 39 percent.

These results imply iCab was more likely reported as an additional response rather than as a solitary answer to our poll - which is hardly surprising, given iCab's pre-release status. It's surprising that the numbers could also imply the same is true for Netscape, although to a much lesser degree. Poll respondents were fairly likely to say they used a Netscape browser regularly, but site visitors were less likely to be using a Netscape browser.

Another possibility is the "PBS answer" - when people are asked to report on their television viewing habits, they often claim to watch educational shows on PBS instead of network sitcoms. Simply put, it's reasonable to assume at least some people treated the poll as a chance to vote against Microsoft in a popularity contest - particularly with the release of Internet Explorer 5 and the pending anti-trust announcements.

No matter what the reason for these discrepancies, it's fascinating to have a chance to see how the results of a poll compare to numbers we can actually measure, even indirectly.

Last week's article on Internet Explorer spawned numerous discussions in TidBITS Talk that explored different aspects of the new release and the future of the Web browser market in general.

Many people wrote in with their experiences with Internet Explorer 5.0, expressing different opinions about the new look of the interface and commenting on the changes they liked or disliked. Although long, this discussion highlights aspects of Internet Explorer that we weren't able to cover in the review and garnered responses from Microsoft employees.

Another hot topic, given the emphasis Microsoft placed on its Tasman rendering engine, were pages that Internet Explorer 5.0 failed to render properly. Some were quick to accuse Microsoft, but in at least several cases, it turned out that the pages suffered from mangled HTML. That discussion in turn encourage some members of TidBITS Talk to take a clean-up pass on their own pages, something we should all do on occasion.

Finally, it became clear that although Internet Explorer 5.0 supports XML, it is not a complete XML 1.0 browser, which can lead to problems working with XML documents. Still, the fact that XML is supported at all is a step forward for many users.

A number of other smaller discussions covered topics like text size issues, window management, Internet Explorer's approach to text clippings, and the current status of the Mozilla open source project. If you're interested in the world of Web browsers, take a look at these TidBITS Talk hot topics.

In the struggle to return control of the computer to the user, macro utilities are indispensable. Such a utility acts as a ghostly simulacrum of a live user, choosing from menus, typing keys, and clicking the mouse; an assemblage of such actions can essentially script the unscriptable, driving any application to customize or automate frequent or repetitive tasks. From my earliest days with the Macintosh, QuicKeys was my constant companion; I've also looked at KeyQuencer. But if I had to use just one macro utility, forsaking all others, my choice, despite its faults, would be OneClick, from WestCode Software.

Refined Palettes -- OneClick creates floating windows (palettes), each of which can be either global or associated with a specific application. A palette contains buttons; every button has a script, a sequence of actions which you create and edit as text in an easy programming language appropriately named EasyScript. A script can contain various subroutines, called handlers. Handlers are the code that actually gets triggered, and in forming a mental picture of OneClick, it helps to know how this occurs. (Bear in mind that an application-specific palette cannot be visible, nor can its scripts run, unless the application is frontmost.) Here are the triggers:

You click and release the button. This triggers the button's MouseUp handler.

You click the button and hold down. This triggers the button's MouseDown handler. Such a handler can construct a menu and make it pop up from the button, and then proceed in response to the user's menu choice. Since pop-up menus require that the mouse button be down, this would make no sense in a MouseUp handler. If a button has both a MouseDown handler and a MouseUp handler, the latter will never be automatically triggered; they are mutually exclusive.

You type the button's keyboard shortcut. This triggers the button's MouseDown handler if there is one, otherwise its MouseUp handler. A palette does not have to be visible for its keyboard shortcut to work, and buttons on palettes belonging to different applications can use the same keyboard shortcut. Thus, OneClick actions can be triggered purely from the keyboard, as with QuicKeys; this should satisfy those who, like several members of the TidBITS staff, dislike most palettes.

You drop something on the button. This triggers the button's DragAndDrop handler. You can drag text (from an application that can initiate true text drag & drop), or Finder items; the script receives the text or the pathnames, respectively, and can respond as desired.

Something causes the button to be redrawn - for example, the palette becomes visible, or the button changes its appearance through being pressed by the user or commanded by a script. This triggers the button's DrawButton handler.

The palette's associated application (or, for a global palette, the computer) starts up. This triggers the button's Startup handler. For example, if a badly behaved application requires a click from the user to dismiss its opening splash screen, OneClick can perform the click.

A certain time period elapses, or a system event occurs. This triggers the button's Scheduled handler. You configure what time period(s) or event(s) will act as triggers, which you typically do in the Startup handler. Common events to which OneClick can respond are: an application starts up or quits, a new window comes to the front, or a OneClick palette is shown or hidden. Suppose you wanted a certain palette to appear in response to the mouse moving over a "hot spot" such as the lower left corner of the monitor. You could configure a Scheduled handler to be called every second, polling the mouse's position and showing the palette if the mouse is at the hot spot.

Another handler calls the one in question by name. The calling handler need not be in the same button, nor even in the same palette. In fact, a handler can be called from an AppleScript running anywhere; thus, HyperCard or QuicKeys or even Microsoft Word could trigger a OneClick script.

Clearly there is great power and flexibility in this capacity of button scripts to be triggered in so many different ways. And OneClick's buttons are also customizable: they can contain text or icons, they can be drawn in various ways, in any size or color, and so forth. Thus, a OneClick palette can be made to look just right for its application. Nonetheless, it isn't its system of buttons and palettes which makes OneClick the place I'd prefer to be when writing a macro script - it's the nature of the scripts themselves.

It's the Scriptability, Stupid -- OneClick scripts are text, written in a real programming language with real programming features such as variables, looping and branching constructs, arithmetic calculation and string manipulation, and even a pleasant object-based syntax. And OneClick provides oodles of built-in functions for letting this language do powerful things.

Naturally, you can perform all the ghostly user-like actions you'd expect from a macro utility. You can click the mouse at given coordinates, possibly with modifier keys or dragging. You can type. You can examine menu items, and choose one. You can inspect a button's state, and push it. You can select, scroll, resize, reposition, zoom, or collapse a window; you can even read its text.

You can perform various system- and Finder-level activities. You can manipulate the clipboard; show, hide, and reorder running processes; obtain screen resolutions, sizes, and positions; create, copy, open, and delete files and folders; read or change a file's text or Finder information; and mount or obtain information about a volume.

You can interact with the user. You can put up a dialog, give it customized buttons, let the user type some text into it, let the user choose an item from a list, and show the standard File Open or Save dialog or even the Color Picker dialog. You can supply help text that will appear when the user holds Shift-Option with the mouse over a button. You can change the cursor. You can play sounds, or have the Speech Manager speak some text. You can poll the mouse button or the keyboard; so, by learning what modifiers the user is holding, you can give a button multiple functionalities. You can allow a button to receive something using drag & drop; you can also permit text to be dragged from a button. You can cause various sorts of pop-up menu to appear for the user to choose from: a menu that you construct from scratch, a hierarchical menu of files and folders on disk, a menu showing all the characters of any font, or even an entire palette behaving like a pop-up menu.

You can run an AppleScript script, thus scripting the scriptable as well as the unscriptable. This can be a compiled script file created in Apple's Script Editor, but in most cases it can simply appear inline within a button script.

Finally, everything about OneClick's own buttons and palettes can be controlled from scripts. You can change a button's text or appearance, make a button display a thermometer or pie-chart as feedback, dictate conditions under which the user can reposition a button or palette by dragging, even create a palette and populate it with buttons "on the fly." Thus, palettes themselves become powerful interface tools, where the buttons combine to form some complex live functionality, such as a calendar.

With such power and flexibility, it's little wonder that OneClick is put to a great variety of ingenious uses - some sense of which may be gleaned from WestCode's page of user-contributed palettes. In fact, WestCode sells a number of its own palettes extracted from the full OneClick distribution separately, along with a runtime version of the OneClick engine.

Compared to this, my own use of OneClick is rather tame, mostly because I'm conservative about using buttons scripted by others. Still, a survey of my own habits yields a taste of OneClick's possibilities. On my computer are palettes, buttons, and keyboard shortcuts that do the following.

Show the font, size, and styles of the currently selected text in Nisus Writer (because otherwise you have to peep into half a dozen different menus to learn this information).

Position and size the frontmost Acrobat Reader window nicely, and to zoom it to Fit Width.

Fix capitalization and remove extra spaces in clipboard text (to make up for ViaVoice's mistakes).

Connect to or disconnect from the Internet, by driving the Remote Access control panel.

Implement multiple simultaneous clipboards.

Toggle the collapsed setting of the frontmost window or of all other windows.

Interfere with the Help key, which I often strike accidentally.

Supply PageUp, PageDown, Home, End, Forward Delete, and Help keys, which are missing from my PowerBook.

Hide the frontmost application or all others, or bring the Finder to the front.

Use the pathname on the clipboard to open a file or folder.

Speak the selected text.

Toggle the visibility of the Application Switcher.

Choose among my various TCP/IP configurations.

Plus, I use some buttons supplied by WestCode to manage text clippings, change speaker volume, open various system folders, manipulate windows and processes, and navigate the Finder hierarchy. Much of the above are functionalities I was previously achieving in some other way; OneClick all by itself makes many other extensions and utilities superfluous.

Yet though I love OneClick and wouldn't want to be without it, using it can be unpleasant and risky. Next topic: the downsides of OneClick.

Cold Shower -- The script editing environment, despite its nice online help and compile-time syntax checking, is crude. OneClick lacks a Find command, a built-in debugger, and notification of runtime errors. So OneClick becomes what I call "guessware": constructing, debugging, or just understanding a script can range from painful to well-nigh impossible. One can develop workaround tools and techniques, but one shouldn't have to, and besides, this will be hardest for the beginners who most need them. The trouble is compounded by hidden traps in the EasyScript language; for example, "for x = 1 to n" will execute its loop even if n is zero, and complex nested function evaluations often don't work - you have to evaluate all the pieces as separate variables first.

If you're not prepared to crash now and then, or for things to go mysteriously wrong, OneClick isn't for you. At various times, such as when I was writing my first book, I had to stop using OneClick altogether, because I couldn't afford such frequent crashes and corrupted data. Even in just the few days writing this review, I crashed trying to open a script for editing, again trying to save a script, and again trying to import a saved button; numerous attempts to load a saved palette failed without notification. Users have reported finding scripts replaced with nonsense, or unaccountable automated actions suddenly taking over their computer; in the past few days I myself have seen weird unsummoned windows flash on the screen, Finder items spontaneously duplicated, and other unexplained phenomena. Palette corruption is a constant danger. Some of these problems may relate to Scheduled handlers: when they fire, they give no indication of what is happening; they can interrupt one another; and there is no way to learn what schedules are pending. This is one reason I am chary of buttons I didn't write myself.

Even OneClick's most basic level of functionality, which presumably involves interfering with the user's mouse-clicks and generating its own to press buttons and choose menu items, is not completely reliable. Sometimes OneClick is just unaccountably slow: I've seen it take well over a second to bring a window to the front in Acrobat Reader; in REALbasic, buttons can be so unresponsive as to be useless; in DiskTop, it's far worse. In Eudora, activating a window through OneClick sometimes activates the wrong one. I've seen arithmetically calculated values occasionally come out the negative of what they should have been. Users report that typing in the script editor window sometimes "falls through" to the application behind.

Nor does WestCode Software's record of commitment to the survival and support of its product inspire confidence. In late 1996, WestCode cautioned me not to review OneClick 1.03, because 1.5 was about to appear; the next actual upgrade turned out to be 2.0, three years later. The 2.0 beta development process was heartening, but progress was glacial, and WestCode often seemed more inclined to fend off the bug reports than to fix the bugs. Many glitches have been left in this release: there is script window corruption when you make a syntax error, keyboard shortcuts involving "a" don't work, and despite claims of Mac OS 9 compatibility, OneClick doesn't work properly with some Appearance Manager or Navigation Services dialogs. Potential users must judge for themselves whether this sort of laxity is venial or suggestive of possible deeper trouble.

The manuals are quite good, but rather out of synch with how OneClick actually works; for example, installation doesn't work the way the manual describes it, some screen shots don't match reality, some documented features (such as the ability of control strip modules to be OneClick buttons) don't actually work, and some important and potentially confusing features, such as the ability to "lock" a button (so that it can be pressed while you're editing a script), are completely undocumented. Also, there are two manuals, one for EasyScript, one for everything else, because WestCode wants to convey that OneClick can be useful even if you don't do any of your own scripting; and some 70 pages of material is repeated in both, which is cumbersome and confusing.

Bottom Line -- For me, OneClick's scriptability, power, flexibility, and downright usefulness outweigh all the negatives I've outlined; and the price is extremely competitive. I do wish that OneClick worked a bit more cleanly, and that I felt more encouraged about its future. Nonetheless, whether you want to take advantage of the many powerful palettes available online, want to clean up and rationalize your computer's interface, or want to tinker, customize, and automate with code of your own, OneClick is a superb macro program with a wonderful interface that deserves your serious consideration.

OneClick typically occupies less than 500K of RAM, and is about a 7 MB installation. OneClick costs $60 for the downloadable version with two PDF manuals, or $80 on CD with one printed manual; the printed scripting manual is $20 more. OneClick requires System 7 and a 68020 processor or later.

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.