<<

The Developer Business Report June 1996 AppleDirections

CONTENTS APPLE NEWS STRATEGY

IBM Licenses the Mac OS 1 IBM Licenses Why Mac OS 8 Strategy Mosaic: Why Mac OS 8 is Important 1 the Mac OS Is Important Editor’s Note: Too Much News 2 New Mac OS Sublicensees By Gregg Williams, Apple Directions staff IndustryWatch 5 Also Announced New Apple Developer Relations Part 1: Backward Compatibility Charter, Organization 12 and the Mac OS 8 Architecture Taking another large step forward in its Apple Multimedia Program Becomes expanding Mac OS licensing program, Apple Apple Media Program 13 Computer, Inc., recently licensed the Mac OS Mac OS 8 (formerly known by the code name New Release Schedule for Mac OS 8 13 to IBM. As a result of the agreement, Apple and Copland) is a big step in the ongoing evolu- IBM expect to work together to expand Power tion of the Mac OS, even bigger than the tran- New QuickTime VR 1.0 Tools Made PC microprocessor and Mac OS market share sition from to . With Mac Available as Apple Plans Next far beyond what it is today by offering OS 8, Apple Computer, Inc., is stepping away QuickTime VR Release 13 customers additional sources and greater from an designed in the choices for Mac OS–based systems. mid-1980s and moving toward a later version Apple Licenses Sun’s Java 14 According to the agreement, IBM will be that will serve the Mac OS platform well past Technical Support Now Available to able to sublicense the Mac OS with IBM Power the year 2000. Eventually, Mac OS 8 will All Developer Program Members 14 PC microprocessors to any manufacturer of replace System 7.5 as the operating system boards or systems, marking the first time a Mac that ships with every Mac-compatible comput- Increased Power PC Compatibility, OS licensee has been granted such far-reaching er, so you and your products need to be ready All-in-one Design Featured in sublicensing ability. The previously announced for it. New Apple Hardware 15 licensing agreement between Motorola and Apple Directions has written articles about develop Issue 26 16 Apple gives Motorola the ability to sign anyone various Mac OS 8 technologies, but with the it wishes to sublicense the Mac OS, but Motoro- upcoming widespread release of the Mac OS 8 CD Highlights: Reference Library la must supply the logic boards, or complete Developer Release: Compatibility Edition, it’s Edition, June 1996 16 hardware systems, used by the sublicensees. time for Apple to step back from the individ- Both IBM and Motorola are able to sublicense ual technologies and give you a “big picture” Multitasking Under Mac OS 8 17 the Mac OS without prior consent from Apple, look at Mac OS 8 itself and why it is important Human Interface: Addictive Interfaces 18 although Apple will certify all systems sold with to both your and Apple’s continued success. the Mac OS to ensure compatibility. That’s what this two-part article is about. Microsoft Under the Microscope: The agreement puts IBM’s marketing and Mac OS 8 is important to you, the develop- Learning From the Market Leader 25 service prowess behind the Mac OS platform; er, for four reasons: that, and the efforts of IBM sublicensees of the • It provides a high level of backward com- It Shipped! 29 Mac OS, is expected to further expand market patibility with System 7, ensuring that, wher- opportunities for your products. IBM has ever possible, your current System 7 applica- Developer University Schedule 31 already signed sublicensing agreements for tions will continue to run under Mac OS 8. Apple 32 the Mac OS with Datatech Enterprises Co. and • Many of its technologies provide the Tatung Co., both manufacturers of a range of user benefits of increased performance, Next month: computer equipment. increased stability, and greater ease of use. A close look at the Game Sprockets IBM will be able to distribute the Mac OS These features are important to you because development kit. on systems employing the current Apple they provide an environment in which your please turn to page 2 please turn to page 6 2 News AppleDirections Directions Apple Too Much News Volume 4, Number 6 There’s so much news this month—and so newsletter that digests the latest news and Apple Directions, the monthly developer newsletter little space for it—that we’ve decided this points to locations on the Internet and of Apple Computer, Inc., communicates Apple’s strategic, business, and technical directions to deci- month to lend most of the space usually elsewhere for more information. Subscribe sion makers at development companies to help devoted to the Editor’s Note to the news. by sending e-mail—with the string in the subject Apple’s Developer Press. design that accomodates more words per field—to [email protected] page, we can’t fit all the news—this .apple.com. And, please, fill in the survey Editor still Paul Dreyfus (AppleLink: DREYFUS.P) month or any month. We’ll report the on the facing page—we need your input. items here that we think are most impor- The Editor’s Note will return month— Technical Editor Gregg Williams (GREGGW) tant for developers, but if you want to be space permitting. sure you’re getting all the news from Paul Dreyfus Business & Marketing Editor Kris Newby (NEWBY.K) Apple, you need to subscribe to Apple Editor Directions Express, our biweekly Associate Editor Anne Szabla (SZABLA) Production Editor/Graphic Design Lisa Ferdinandsen (LISAFERD) Contributors APPLE NEWS Peter Bickford, Alex Dosher, Tony Francis, Cathy Hams, Caroline Rose and building upon the success of the Power- Manager, Developer Press Dennis Matthews IBM Licenses the Mac OS PC platform. Apple has been our valued part- continued from page 1 ner in defining the PowerPC chip and [Com- Manager, Apple Developer Periodicals Mark Bloomquist mon Hardware Reference Platform], and proprietary Power hardware design today we join forces to enable the industry Production Manager Diane Wilcox as well as on Common Hardware Reference for Mac OS.” Platform–based systems. Common Hardware Since committing to licensing the Mac OS Prep and Print Consolidated Publications, Inc., Sunnyvale, CA Reference Platform is the specification devised in September 1994, Apple has implemented a by Apple, IBM, and Motorola for PowerPC two-phase licensing strategy. In the first phase, © 1996 Apple Computer, Inc., 1 Infinite Loop, Cupertino, processor–based computers that can run a Apple focused its efforts on licensing the Mac CA 95014, 408-996-1010. All rights reserved. Apple, the Apple logo, APDA, AppleLink, AppleScript, Apple- variety of operating systems, including Mac OS with Apple’s proprietary hardware designs Share, AppleTalk, LaserWriter, Mac, Macintosh, Macintosh OS, Windows NT, AIX, and Solaris. to a relatively small number of licensees. With Quadra, MPW, Newton, OpenDoc, Pippin, PlainTalk, PowerBook, “IBM has long been a strategic Apple part- the Motorola and IBM licensing agreements, PowerTalk, QuickTime and WorldScript are trademarks of Apple Computer, Inc., registered in the U.S. and other countries. Balloon ner, and has the global, technical, and market- Apple has moved into the second, far more Help, develop, , and QuickDraw are trademarks of Apple ing strength to propel the Macintosh platform open phase of its licensing strategy, in which Computer, Inc. Adobe and Acrobat are trademarks of Adobe to a new, expanded role and influence,” said licensees will design their own hardware Systems Incorporated or its subsidiaries and may be registered in certain jurisdictions. Java and other Java-based names are trade- Dr. Gilbert Amelio, chairman and chief execu- based on the Common Hardware Reference marks of Sun Microsystems, Inc., and refer to Sun’s Java-based tive officer of Apple Computer. “This much- Platform specification, independently of technologies. Navigator is a trademark of Netscape anticipated agreement instantly opens up Apple. This is expected to bring greater inno- Communications Corporation. PowerPC is a trademark of Interna- tional Business Machines Corporation, used under license there- business opportunities for computer manufac- vation to the PowerPC/Mac OS platform, pro- from. SOM is a licensed trademark of IBM Corporation. is a turers worldwide.” viding customers additional sources of Mac registered trademark of Novell, Inc. in the United States and other “The Mac OS is renowned for its ease of OS–based computers as well as a broader countries, licensed exclusively through X/Open Company, Ltd. All other trademarks are the property of their respective owners. use and consumer appeal,” said Michael J range of feature-set, price, support, and distri- Mention of products in this publication is for informational Atardo, general , IBM Microelectron- bution choices. purposes only and constitutes neither an endorsement nor a ics. “With IBM’s worldwide reach and our The licensing agreement includes Macin- recommendation. All product specifications and descriptions were supplied by the respective vendor or supplier. Apple relationships with systems manufacturers, tosh System 7.5.x, access to the next major assumes no responsibility with regard to the selection, perfor- we’re committed to proliferating the Mac OS please turn to page 12 mance, or use of the products listed in this publication. All understandings, agreements, or warranties take place directly between the vendors and prospective users. Limitation of liability: Apple makes no warranties with respect to the con- tents of products listed in this publication or of the complete- July Apple Directions Online ness or accuracy of this publication. Apple specifically dis- claims all warranties, express or implied, including, but not July’s Apple Directions will be available by June 15 at the following locations: limited to, the implied warranties of merchantability and fitness AppleLink path—Developer Support:Developer Services:Periodicals:Apple Directions for a particular purpose. Internet—http://dev.info.apple.com/appledirections/adtoc.html

JUNE 1996 Start Here About this survey… The Editors Thanks, us giveyouinformationinthewaysthataremostusefultoyou. few momentstoanswerthefollowingquestions;youranswerswillhelp Adobe™ Acrobat™versiononthemonthlyDeveloperCD.Pleasetakea ponents—the Website,theAppleDirectionsExpresslistserver,and newsletter inwhichyoufoundthissurveyaswellitsthreeonlinecom- We’d liketofindoutabouthowyouuse Dear 3) Pleaserankthefourversionsof _ Papernewsletter ___ on: the versionyoumostprefer,a“2”byyoursecondchoice,andso 5) Howmanypeoplereadthecopy ofthe 60minutesormore ___ 30Ð60minutes ___ 15Ð30minutes ___ 0Ð15minutes ___ 4) Howmuchtimedoyouspendreadingeachissueofthe About thepapernewsletter Acrobat ___ ListserverAppleDirectionsExpress ___ Website ___ ❑ ❑ ❑ digest ofthenews.) first? 2) Whichversionofthecomplete *The issueinwhichyoufoundthissurvey Directions Apple Apple DirectionsExpresslistserver Directions Apple Directions Apple 1) Howoftendoyouusethedifferentversionsof Directions Apple General QuestionsAbouttheFourVersionsof _ _ 1Ð5 10ormore ______6Ð10 ___ 1 ___ newsletter senttoyourcompany? Directions Apple Directions Apple Directions Apple Directions Apple Apple Directions (Note: AppleDirectionsExpressisnotincluded,becauseit’sa paper newsletter? Apple Directions Apple Apple Directions Apple in AdobeAcrobatontheDeveloperCD Web site paper newsletter* in AcrobatontheDeveloperCD Web site paper newsletter Apple Apple Directions Apple Reader: on theDeveloperCD Apple Directions Apple Apple Directions, Directions, Apple Apple Directions, Directions otl ekyDaily Weekly Monthly Apple Directions Directions Apple ❑❑❑ ❑❑❑ ❑❑❑ ❑❑❑ Apple Directions Apple do youlookat placing a“1”by the paper Apple paper ? 408-974-9423. Manythanksforyourextraeffort! please affixappropriatepostageandmailittous,orfaxyourreply We needyourinput,too!Whenyou’vecompletedthissurvey, Attention ReadersOutsidetheUnitedStates: _ It’savitaltoolforme. ___ Ifinditveryuseful. ___ Ifindituseful. ___ Ifinditinterestingbutnotuseful. ___ Idon’tneeditatall. ___ newsletter: Apple Directions Apple _ Other.(Pleaseexplain.) ___ Idon’tliketouse theWeb. ___ Idon’tlikeyourWebsite.(Pleasesaywhy.) ___ Ican’tgetontheWeb. ___ Iwasn’tawareofitsexistence. ___ all thatapply.) 9) Ifyoudonotusethe About theWebVersion 8) Pleaseratetheusefulnessof 7) Withthisissue,we’veupdatedtheappearanceof No ___ Yes ___ the AppleDeveloperCatalog? 6) Wereyoupreviouslyawarethatadditionalsubscriptionstothe Please saywhy: Muchworse ___ Slightlyworse ___ Aboutthesame ___ Slightlybetter ___ Muchbetter ___ design incomparisontothepreviousdesign: Directions Directions paper newsletter.Pleaseratehowwellyoulikethenew Survey paper newslettercanbeorderedfor$49/yearfrom Apple Directions Directions Apple Apple Directions Apple Web site,whynot?(Check Please seeotherside paper Apple Apple AppleDirections

10) Please complete the following: I would be more likely to use About You the Apple Directions Web site if ______15) Please indicate the number of people who work at your ______company: ___ 1Ð5 About the Adobe Acrobat Version on the Developer CD ___ 6Ð25 ___ 26Ð100 11) If you do not use Apple Directions in Acrobat on the Devel- ___ 101Ð1,000 oper CD, why not? (Check all that apply.) ___ More than 1,000 ___ I wasn’t aware of its existence. ___ I don’t have a CD drive. 16) In what country is your company located? ___ I don’t like Acrobat. ______I don’t like to use online viewing methods. ___ Other. (Please list.) ______17) Which platforms do you support? (Check all that apply.) ___ Mac OS 12) Please complete the following: I would be more likely to use ___ DOS/Windows Apple Directions in Acrobat on the CD if: ______OS/2 ______UNIX¨ ______Other. (Please specify.) ______

18) Please indicate the position you hold in your company: About Apple Directions Express ___ Executive ___ Manager 13) If you don’t subscribe to Apple Directions Express, why not? ___ Nonmanagement contributor ___ I wasn’t aware of its existence. ___ Sole propietor ___ I don’t have an e-mail address. ___ I don’t like Apple Directions Express. (Please say why.) 19) In which area is your job focused? ______Technical ______Marketing ___ I don’t like to use list servers ___ Both technical and marketing ___ Other. (Please list.) ______Now that you’re done, please fold this survey in thirds along the 14) I would be more likely to subscribe to Apple Directions dotted lines, tape it closed, and drop it in the mail; if you’re in the Express if ______United States, postage is paid. ______If you’re not in the United States, either fax us the survey (408-974- ______9423) or affix appropriate postage. We thank you for your extra Thank You! effort.

FOLD FOLD IN THIRDS AND TAPE SHUT FOLD

NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES

BUSINESS REPLY MAIL FIRST CLASS MAIL PERMIT NO 453 CUPERTINO, CA POSTAGE WILL BE PAID BY ADDRESSEE

Apple Directions Survey Apple Computer, Inc. 1 Infinite Loop, M/S 60-DP Cupertino, CA 95014-9968 AppleDirections News 5 INDUSTRYWATCH Putting SPA 1996 Software Sales Data Into Perspective By now, you’re probably familiar with Soft- software revenues fell 12.8 percent, while growing software market: Unit sales are ware Publishers Association (SPA) data indi- combined DOS/Windows revenues—includ- increasing faster than revenues, meaning that cating that revenues from Mac OS software ing those for software—fell 8. 9 software companies may be selling more prod- decreased in North America last year. What percent. Overall, the industry recorded an 8.8 ucts, but making less money. you might not have read yet is that revenues percent downturn in revenues. (See the chart Here’s what Apple Developer Relations from software for Wintel systems—that is, on this page for more details.) Vice President Heidi Roizen recently wrote software that runs under DOS and Windows— Let’s look only at the six largest-grossing about the situation in a letter to analysts and also began to decline at the end of 1995, just categories tracked by SPA, which together members of the press: “According to SPA esti- after the release of Windows 95. Here’s the account for more than 50 percent of sales, mates, Q4 ushered in a particularly disturbing SPA data, released in late March. according to SPA data; the categories are trend: In North America, software for every For the year, North American software rev- entertainment, home education, word pro- platform suffered negative revenue growth, enues increased 12 percent in 1995 over sales cessing, spreadsheet, finance, and “other pro- while simultaneously, unit sales soared 35 the year before, climbing to $7.5 billion last ductivity.” (The last of these actually shows percent. This means the real problem is mar- year from $6.7 billion in 1994. Macintosh soft- the highest level of revenues.) In these gin erosion—not only for Apple developers, ware sales decreased just under 14 percent in categories combined, Macintosh products are but for the entire independent software ven- 1995, falling to $1.05 billion from $1.2 billion. performing better than their Windows coun- dor (ISV) community. And this occurred dur- Combined DOS/Windows software revenues terparts: Q4 ’95 Macintosh software revenues ing Windows’ most significant operating sys- increased 14 percent over the year before—to from products in the six largest categories tem upgrade cycle this century!” $6.4 billion from the 1994 total of $5.6 billion. combined decreased by 5.6 percent, while SPA also tracks software sales outside (Revenues for Windows-based software DOS/Windows sales fell more than twice that North America, and their data suggests that a increased 27 percent, while DOS software much—14.7 percent—from Q4 ’94. similar phenomenon took place last year in revenues fell nearly 37 percent.) other geographies, as well. The following In the fourth quarter of 1995, or Q4 ’95 Implications/Opinions: It’s hardly cause for comes from SPA data for 1995: (October through December), the Macintosh jubilation to discover that it’s not just Mac OS • In Asian/Pacific markets (including software picture started looking marginally sales, but the entire industry, that took a turn Japan), unit software sales increased 179 per- better, while Wintel software revenues for the worse last year. Digging still deeper into cent, but revenues were up only 57 percent. decreased sharply. Comparing revenues from the SPA data, it appears there’s yet a graver • European unit sales increased 41 per- Q4 ’95 with those from Q4 ’94, Macintosh challenge facing all who depend on a robust, cent while revenues were up 19 percent. • In Latin America, unit sales climbed 52 percent although revenues increased only 11 percent. SPA North American Software Revenue, There may be ways that software firms are Q4 ’94 to Q4 ’95 maintaining their margins. For example, with (All figures in millions of dollars) the increase in units shipped, some of you may be enjoying the economies of scale asso- Q4* ’94 Q4 ’95 Percent ciated with higher volume manufacturing. revenues revenues change And, let’s hope that this is requiring you to Mac OS software $361.3 $306.4 –12.8 % spend less money on a per-unit basis to pub- DOS software $329.1 $212.7 –35.3 % lish your products. However, the differences between unit and revenue increases are so Windows-based software** $1,578.8 $1,524.8 –3.4 % extreme, especially in North America, that it DOS/Windows total $1,907.9 $1,737.5 –8.9 % would take a huge reduction in manufactur- Industry total $2,265.5 $2,066.1 –8.8 % ing costs per unit to eliminate the apparent margin erosion. *October to December There may be a silver lining here, at least **Includes Windows 95 for Mac OS developers: According to the same SPA data, and other research from PCData,

JUNE 1996 6 News AppleDirections average revenues per unit remain higher over- to the association. Many smaller firms prefer to increase margins, whether by expanding all for Mac OS software than for Windows not to pay SPA membership fees, which means the market, lowering costs, or some other applications, making the Mac OS market that SPA data may well be biased toward the step. potentially more profitable than the Wintel larger software publishers. If you want to help Apple is working hard to better the situa- market. Again, from Heidi Roizen: “The Macin- change this, you can join SPA; a registration tion, especially for Apple platform developers. tosh software ‘premium’ holds true for the form is available at the SPA Web site Apple Developer Relations (ADR) is currently U.S. as well as international markets, and is (http://www.spa.org), or you can call SPA at being realigned to better meet the needs of reflected across all but three of the product 202-452-1600 in Washington, D.. or at 33-(1) the development community; among its pri- categories tracked by the SPA. Furthermore, 45-63-02-02 in Paris. mary goals are helping you reduce develop- average wholesale revenues per unit are not All this is meant to help put the SPA data ment costs and the time it takes for your prod- falling as rapidly for Macintosh software as about 1995 Mac OS software sales in an appro- ucts to reach the market, broadening sales and they are for Windows titles.” priate framework to help you evaluate it, but, distribution channels for Mac OS software, and A further point to keep in mind about SPA as we said, it’s certainly nothing to celebrate. If increasing customer awareness of Mac OS data is that it doesn’t encompass the entire the entire industry is facing tough times, we solutions. For more about ADR, see the news industry. SPA collects data only from its mem- have to work together—even with developers story on page 12. ♣ bers, and not every software company belongs working on the Wintel and other platforms—

STRATEGY MOSAIC

Why Mac OS 8 Is Important Compatibility With System 7 tains the API of the System 7 File Manager. Before I can talk about the many reasons why Why? Because if Mac OS 8 didn’t include the continued from page 1 Mac OS 8 is important to you, I need to state older API, System 7 software wouldn’t work! one important underlying fact: Mac OS 8 is Mac OS 8 includes many other System 7 man- application can perform better and give your designed to run the vast majority of System 7 agers—the Event, Printing, and Memory Man- customers a higher-quality experience. applications. agers, for example—for this same reason. • The Mac OS 8 programming model has Apple has learned from experience that However, please note that most of these been streamlined and enhanced to simplify backward compatibility is perhaps the most backward-compatible technologies are not the job of writing software for the Mac OS important factor driving customers’ accep- guaranteed to be in future releases of the Mac platform. In many cases, where System 7 pro- tance of new hardware or software. Apple is OS. (By “future releases of the Mac OS,” I vides several (application programming committed to doing everything it can to pre- mean major revisions to the Mac OS past Mac interfaces) for getting a job done, Mac OS 8 serve customers’ current software and hard- OS 8.) Apple engineers have included them to standardizes—and supports—one. ware investments and to make it as easy as ensure short- to medium-term compatibility • Other Mac OS 8 technologies enable you possible for customers to make the transition with System 7 software, but Apple encourages to add new features to your software—features to Mac OS 8. you to use the more powerful Mac OS 8 equiv- that would be impossible or inconvenient for However, Apple cannot ensure backward alents, which Apple has designed to be the you to add under System 7. This will make it compatibility by itself; the company needs foundation for future releases of the Mac OS. possible for you to create the next generation your active participation. Apple will be making One limitation of Apple’s intent to provide of leading-edge software that will be highly the Mac OS 8 Developer Release: Compatibili- backward compatibility is that Apple is not competitive in the market ahead. ty Edition widely available to developers in committed to supporting code that goes This month, I’ll cover the first two points, mid-1996. This will mark the beginning of the “underneath” the official API of a supported saving the last two points for next month’s period in which Apple and developers must technology—to do so would prevent Apple Strategy Mosaic column. In this month’s col- work together to ensure maximum backward engineers from making significant innovations umn, I’ll also be talking about how the Mac OS compatibility for System 7 applications. Apple in Mac OS 8. So if your code manipulates a 8 program architecture—that is, the way the will do everything it can to work with you to technology’s private data structures or global various parts of programs interact with the achieve maximum compatibility, but your variables, it probably won’t work under Mac operating system itself—differs from that of active participation is necessary to ensure the OS 8. System 7. (I need to do that before I can talk success of Mac OS 8. Backward compatibility is, however, a dou- about what parts of Mac OS 8 deliver its main ble-edged sword. If Apple supplies complete customer benefits.) Backward Compatibility backward compatibility, Apple supplies how By explaining the differences between To save time, I’ll omit the details and make a much it can innovate, it can’t fix some things System 7 and Mac OS 8, I hope I can give blanket statement: If a technology is needed that really need fixing. If the level of backward you a clearer picture of how Mac OS 8 will to ensure that System 7 applications continue compatibility provided is too low, too many change software development for you and to run, Mac OS 8 includes it. So, for example, existing applications don’t work, and cus- how it will give you opportunities to create even though Mac OS 8 includes a simpler and tomers are reluctant to move to the new ver- better software. more powerful , Mac OS 8 main- sion of the operating system.

JUNE 1996 AppleDirections News 7

The cost of some innovations is just too extensions lightly, but they felt that Apple faster and more responsive. Existing applica- high. Apple engineers certainly would have would be compromising Mac OS 8 severely if tions will, in general, show modest perfor- liked, for example, to deliver a new operating they allowed them to continue working. INIT- mance improvements, but applications that system that provides a separate, protected based extensions are a major source of system take advantage of new Mac OS 8 features will memory space for each application, but for instability, and they complicate the program- show the greatest performance increases. technical reasons, they couldn’t deliver that ming model. Mac OS 8 includes new methods This increase in performance comes from and keep backward compatibility with the vast of extending the system that are stabler and two separate sources. The first is the fact that majority of existing software. easier to extend and support in the future. Mac OS 8 is written almost entirely in PowerPC Because of this, Apple decided to innovate processor code (unlike com- in steps—which allows Apple to evolve the puters today, where the operating system—Sys- Mac OS and still keep both itself and you tem 7—contains a significant amount of 680x0 financially healthy. Mac OS 8 is the first such code, which runs slower under emulation). step, and it is an exciting one that will provide Performance, stability, and Of course, the final portions of the Mac OS 8 many benefits to both you and your cus- that are now written in native code run faster. In tomers. In the next major evolutionary step addition, Mac OS 8 also gains speed because the of the Mac OS, an application written to the ease of use are important to slowdown from “ switching” (which Mac OS 8 programming model will—without happens anytime PowerPC processor code calls modification—receive the full benefits of pre- your customers, and you can 680x0 code, or vice versa) occurs much less emptive multitasking, while running in its frequently. own separate address space. The second source of increased perfor- deliver these benefits if you mance comes from the fact that the new tech- Some Exceptions nologies in Mac OS 8 include improved algo- Apple engineers spent a lot of time deciding make sure your software runs rithms that run more efficiently. To get the what parts of System 7 not to support. Here increased performance, however, applications are the major things that Mac OS 8 doesn’t must make use of these new technologies. support, and why: well under Mac OS 8. • Increased stability. Computers running • Device drivers. Under System 7, device Mac OS 8 will be significantly more stable than drivers are too hard to write, and they some- today’s System 7–based computers. times fall prey to stability problems. The Mac OS Mac OS 8 achieves much greater stability by 8 driver architecture is more powerful and sim- being the first version of the Mac OS to make pler to implement; in addition, Mac OS 8 drivers • Desk accessories. They’re dead, D-E-A-D. use of the processor’s supervisor and user are designed to run faster and be more stable. They won’t work under Mac OS 8. Why? modes. (These are modes of instruction exe- For those of you who write device drivers, Because there’s no need for them anymore, cution for the PowerPC processor.) Under it is very important that you work with Apple and Apple wants to move to a simpler pro- System 7, applications and the operating sys- to create Mac OS 8 versions by the time Mac gramming model. Desk accessories were tem run in the same mode (supervisor mode), OS 8 ships. Without new drivers, your driver- designed to provide application-like function- thus making it possible for any code to change based hardware products will suddenly cease ality in a Macintosh computer that had only any memory location. (Because of this, an to work when your customer installs Mac OS 128K of memory, but you had to work around application can inadvertently change data 8—which is something neither you nor Apple various limitations to create one. belonging to the operating system, possibly want to see happen. Apple is tracking the sta- Today, Mac-compatible computers capable causing a system-wide malfunction.) tus of over 1,500 hardware products to ensure of running Mac OS 8 have at least 8 MB of Under Mac OS 8, critical parts of the oper- that customers get the drivers they need memory, and Mac OS 8 virtual memory ating system—including the , I/O simultaneous with the release of Mac OS 8. ensures that simple applications use only a drivers, the networking subsystem, and impor- • INIT-based extensions. A good number small amount of memory. Apple talked about tant parts of the file system—execute in super- of Mac OS products use INIT-based eliminating desk accessories under System 7.0 visor mode, while all non–operating-system extensions, and you will have to redesign and didn’t—but now it’s time to do so. (How- software executes in user mode. Since user- them to work under System 7. (To give you ever, if you want to create a “desk-accessory level code is prevented from changing data sufficient time to make the transition, Apple runner” utility that will allow customers to run belonging to code executing in supervisor told you about this change in 1995, and some them under Mac OS 8, there’ll probably be a mode in Mac OS 8, applications and other user of you have already changed your products. market for it.) software cannot corrupt the data associated Good work!) Many INIT-based extensions with critical operating-system components. make global patches during system startup; Mac OS 8 User Benefits and You For example, if an application running under Mac OS 8 has no global 680x0-style trap dis- To users, Mac OS 8 delivers numerous bene- Mac OS 8 crashes, it cannot harm the file sys- patch table, so you will have to redesign exten- fits, all of which belong to one of three broad tem or its data. sions that depend on this kind of patching. categories: Other parts of Mac OS 8 that execute in Apple engineers did not make the deci- • Increased performance. Users will find user mode—for example, the Mac OS 8 open sion to discontinue support for INIT-based that their Mac OS 8–-based computers will be font architecture—have their data protected

JUNE 1996 8 News AppleDirections

use run in the same address space. (Coopera- tive services is the Mac OS 8 term for code that System 7 Program Architecture has been written in such a way that applications must cooperate with each other to synchronize their access to these services. In System 7, all system code is cooperative. In Mac OS 8, coop- System 7 Mac OS 8 Mac OS 8 erative services include portions of the Human app 1 app 2 app 3 Interface Toolbox and all the code required for backward compatibility with System 7.) The stability of System 7 can be threatened by any code inside the single address space. Since both applications and system software run in the same mode (supervisor mode), any Cooperative services code that malfunctions has the potential to corrupt any code or data in the computer. (If System 7 virtual memory is turned on on a Power Macintosh computer, however, all code Hardware stored in memory is read-only.) The largest improvement that Mac OS 8 Under System 7, all applications and the operating system itself run in the same makes to overall system stability is the use of address space, thus increasing the likelihood that one malfunctioning application supervisor mode to protect critical data. can cause another application or the entire computer to malfunction. Because applications and other non–operat- ing-system code run in user mode, such code cannot change any of the critical operating- from corruption by other programs. Mac OS 8 appledirections/apr96/stratmos. on the system data it accesses. does this by implementing these parts as serv- .) Mac OS 8 adds two new kinds of code. (See er programs, a type of program that I’ll dis- Many Mac OS 8 features deliver improve- the figure on page 9.) The first is the server cuss later in more detail. ments that are important to the user, but what program, which is code that performs its Finally, through a mechanism called guard does that mean to you, the developer? These work offscreen, generally to provide a service pages (also discussed later), Mac OS 8 pro- features, even when they do not affect you to one or more other programs. A server pro- vides some greater stability for existing appli- directly, are important to you because they gram cannot have any code that users interact cations by preventing them from damaging allow you to create software that delivers with or that uses the Mac OS 8 cooperative other applications’ data if they attempt to these user benefits to your customers. In services; instead, it usually contains calcula- write outside the boundaries of their own other words, performance, stability, and ease tion- or I/O-intensive code. stacks and heaps. of use are important to your customers, and Server programs represent another source • Ease of use. Mac OS 8 includes numer- you can deliver these benefits if you make of improved stability. In Mac OS 8, all code in ous features that make it easier to use. Some sure your software runs well under Mac OS 8. memory has read-only status, so corruption features come “for free”—for example, every In addition, you can deliver even larger mea- of code is impossible. However, the code in a application running under Mac OS 8 automati- sures of these benefits if you write additional given address space can (in general) change cally adopts the improved browser portion of code that taps into Mac OS 8 features. data in the same address space. Code in other the Mac OS 8 open/save dialog box. (However, With that introduction in mind, the next step address spaces cannot change the data associ- if you modify your application to use routines is to get an overview of how Mac OS 8 program ated with a given server program; this con- from the new Mac OS 8 Navigation Services architecture differs from that of System 7. Then tributes to overall system stability. Mac OS 8 API, your application will get the full benefit of we can take a look at several Mac OS 8 technolo- implements some of its services as server pro- the new open/save dialog box.) gies and how they benefit users. (One note is in grams, and you can create your own server Other ease-of-use features, such as the Mac order here: My explanation of Mac OS 8 multi- programs as well. OS 8 Tips window (which offers users tips on tasking shares some material with Tony Francis’s The second new kind of code that Mac OS 8 how to use their computer more efficiently), two-part article on Mac OS 8 multitasking in last adds is the reentrant service, which can be require that you modify your application to month’s and this month’s issue. The material in used simultaneously by multiple pieces of code. take advantage of a given feature. Still others— my article is at a slightly higher level and offers a When an application uses a reentrant service, its for example, the find-by-content feature of the different perspective of Mac OS 8 multitasking. I typically gets its own copy of the static data asso- Mac OS 8 Finder—are connected to operating- think you will find it useful.) ciated with the reentrant service, which means system features, not individual applications. that pieces of code can call the same reentrant (For more details, see “Looking Forward to The Program Architectures service and still execute correctly. Reentrant the Copland User Experience,” in the April of System 7 and Mac OS 8 code is extremely important to Mac OS 8 1996 issue of Apple Directions. You can also As shown in the figure on this page, all System because, without it, the operating system could find this article at http://dev.info.apple.com/ 7 applications and the cooperative services they not do preemptive multitasking.

JUNE 1996 AppleDirections News 9

Mac OS 8 also adds a new term, coopera- tive program, for a kind of code that exists in both System 7 and Mac OS 8. A cooperative Mac OS 8 Program Architecture program typically handles the human interface Cooperative program address space and interaction with the user, as well as coor- dinating its work with other cooperative pro- grams to access cooperative services. By defi- System 7 Mac OS 8 Mac OS 8 cooperative nition, every System 7 application is a application cooperative program 2 (a cooperative cooperative program. As you will see, at least program 1 program) Main task part of every Mac OS 8 interactive application (that is, an application that has a human inter- Main task Main task I/O task Calculation face and interacts with the user) must be a task cooperative program. Note the following things about the Mac OS 8 program architecture: • Cooperative programs can use coopera- tive services (but only the main task of a coop- erative program—which might be the only task the program has—that can use cooperative Cooperative Server services). services program • Cooperative programs and server pro- Main task grams can communicate with each other. • All programs have at least one task, called its main task. Any program can have additional tasks associated with it, and these tasks can communicate with each other. Reentrant services • A cooperative program can use multiple server programs. In addition, a server program can serve multiple clients and can continue to Hardware run even when no cooperative program is currently communicating with it. New to Mac OS 8 • Cooperative programs, cooperative ser- Data in separate, protected address space vices, and server programs can all use reen- trant services. • Server programs can call reentrant ser- This figure has been simplified to show one occurrence of each of the three vices but not cooperative services. types of applications that can run under Mac OS 8. In actuality, multiple occurrences of each type of application can be running at the same time. Multitasking in System 7 and Mac OS 8 Under System 7 , indi- vidual applications continue executing until precise, which task) executes, and for how Mac OS 8 divides the processor’s time they “decide” to release control, thus allowing long. between the various tasks, with eligible tasks the background process of another applica- Here is a very important fact about Mac OS at the higher priority levels running first. tion to begin executing. Even though this 8: Mac OS 8 completely makes the transition When a task is no longer eligible for execu- results in a usable form of multitasking, the to preemptive multitasking—there is no coop- tion, then the task at the next highest level operating system itself does not control the erative multitasking. However, the Mac OS 8 runs. (Apple will supply a list of priority levels processor’s scheduling. Even under the best Process Manager includes a cooperative and what kinds of code should run at that of circumstances, an individual System 7 appli- scheduling algorithm that simulates the behav- level. When you create a task, you should cation (which has no way of knowing what ior of System 7 cooperative multitasking. (The assign it an appropriate priority level.) other applications are running or whether next section explains this process in more Because of their need of uninterrupted they have a greater “need” to execute) makes detail.) The Process Manager’s cooperative access to the processor, the highest-priority inefficient use of the processor, which often scheduling algorithm affects applications tasks—for example, real-time and operating- results in the processor idling when it could only—that is, a cooperative program that system tasks—run until they are blocked, even be used for productive work. doesn’t relinquish control as it should will not if other tasks at the same level are waiting. For Mac OS 8 differs from System 7 in that the halt the execution of tasks outside the cooper- all the other priority levels, though, the follow- Mac OS 8 operating system itself retains con- ative environment—for example, the microker- ing happens: When multiple tasks at the same trol of which body of code (or, to be more nel and server programs. priority level are eligible to run, the microker-

JUNE 1996 10 News AppleDirections nel gives each of the tasks a “slice” of the tion and the two Mac OS 8 cooperative pro- tasks may be temporarily blocked; these will processor’s time, then moves on to the next grams all run in the cooperative envi- not be preemptively scheduled until they eligible task with the same priority. If a task of ronment, only one of them gets a “slot” in become unblocked.) higher priority becomes eligible, the microker- the pool of tasks eligible for execution. (As I Note that all the tasks except the main nel suspends the lower-priority task and mentioned earlier, the Process Manager tasks of the cooperative programs automati- begins executing the higher-priority task. works with the cooperative programs to han- cally go into the pool of tasks that can partic- dle this switching.) ipate in preemptive multitasking. In this fig- Inside Mac OS 8 Multitasking In addition to the chosen main task from ure, one of the tasks in the pool is the main The figure on this page shows how the operat- one cooperative program, all other tasks join task of a server program and two are sec- ing system selects which task the processor this task to form a pool of tasks that can par- ondary tasks (I/O and calculation tasks) of a will execute next. Since the System 7 applica- ticipate in preemptive multitasking. (Some cooperative program in the cooperative envi- ronment. As I stated earlier, the microkernel coordinates the running of tasks based on their respective priority levels. Mac OS 8 Preemptive Multitasking Multitasking Alternatives in Mac OS 8 System 7 Mac OS 8 Mac OS 8 In Mac OS 8, there are two ways you can add application cooperative cooperative preemptively scheduled tasks to your applica- program 1 program 2 (a cooperative tion: program) • The first way, which is the easier to Main task Main task Main task implement, is to have your Mac OS 8 applica- tion (which is a cooperative program running in the cooperative environment) run a sepa- rate task that does not have any or call any of the Mac OS 8 cooperative ser- vices. These additional tasks are preemptively Process Manager scheduled and can run at a set priority level. By assigning tasks the appropriate priority level, you can make your application run faster and appear more responsive to users. For example, you should give higher-than-average Server Mac OS 8 Mac OS 8 priority to a task calculating a moving 3D Main task for program cooperative cooperative object for display in real time. You should give single eligible program 2 program 2 cooperative lower-than-average priority to a task that col- program Main task I/O task Calculation lects small amounts of data from a low-priority task laboratory instrument. • The second way to add preemptively scheduled tasks to your Mac OS 8 applica- tion is to create a server program, which Microkernel gains both preemptive scheduling and mem- ory protection for its data. Because of the increased complexity of coordinating com- munication between the cooperative and server programs, you are more likely to use Processor this method only when you are adapting an existing client/server solution to Mac OS 8 or when you need to draw upon the other advantages of server programs. These advan- This figure shows how cooperative multitasking occurs for the main tasks of tages include for the the three cooperative applications shown in the figure on page 9. The Process program’s data, the ability for the server pro- Manager determines which of the main tasks (at top) becomes eligible for pre- gram to be running whenever the computer emptively scheduled execution. From the pool of tasks eligible for preemptive is on, and the ability for the server program scheduling (middle), the microkernel decides, based on the tasks’ priority lev- to be shared by other tasks. Remember, how- els, which task the processor will execute next. ever, that server programs cannot have any user interface or call any of the Mac OS 8 cooperative services.

JUNE 1996 AppleDirections News 11

Preemptively scheduled tasks offer one way sion, forbids other software to either read Mac OS 8 File Manager to increase your application’s performance. from or write to a memory location. The Mac OS 8 File Manager delivers a number Another, different way of doing so has been Fifth, another kind of memory protection, of file-management improvements: brought forward from System 7.5, which used guard pages, enhances system stability by • Increased performance. The Mac OS 8 the Manager to create multiple paths limiting the amount of damage that software File Manager runs faster because it is written of execution within a System 7.5 application. can do if it attempts to read or write outside in PowerPC–processor code. Mac OS 8 supports this same mechanism the memory area it’s entitled to access. When • Support for larger volumes and files. We using the Cooperative Thread Manager and software creates a memory area, it can specify live in a world where the maximum volume refers to these multiple paths of execution that extra memory at both ends of the memo- size for mass-storage devices under System 7, (which can be a part of any task) as coopera- ry area are to be designated as guard pages. If 4 gigabytes, is no longer enough. Mac OS 8 tively scheduled threads. The Cooperative any code—from either the user or supervisor improves the HFS () Thread Manager allows System 7 applications mode—attempts to read from or write to volume format by supporting volumes of up that use the System 7.5 Thread Manager to guard pages, the processor generates an to 2 terabytes. continue to work under Mac OS 8. exception. • Support for multiple volume formats. Under Mac OS 8, launching an application The System 7 File Manager implementation Memory Protection automatically causes its application stack and is tied to the HFS volume format, which Mac OS 8 offers five kinds of memory protec- heap to be surrounded by guard pages. This makes it more difficult for the operating sys- tion, all of which contribute to the increased means that, for example, if an application does tem to support other volume formats. Mac system stability of Mac OS 8. something that causes its stack to overflow, OS 8 corrects this with an extensible archi- First, Mac OS 8 offers protection for all the attempted access to a guard page causes tecture that allows support for arbitrary vol- code. Code is always mapped into read-only an exception and results in the safe termina- ume formats to be added. Initially, the Mac memory areas, so there is no possibility that it tion of the application. This is an OS 8 File Manager will support the HFS, can be corrupted by any malfunctioning code improvement over what often happens in this DOS, AppleTalk Filing Protocol (for access to elsewhere in the system. situation under System 7—namely, that the AppleShare and Personal FileShare volumes), Second, the data associated with code exe- application overwrites memory belonging to and CD-ROM (High Sierra, ISO 9960, audio cuting in supervisor mode—including the another application, resulting in one or more CD, and Photo CD) formats, with support for microkernel, I/O drivers, the networking sub- applications crashing. new volume formats as they become avail- system, and important parts of the file system able. Because of this new architecture, an —is read-only to cooperative programs and Virtual Memory application that uses the Mac OS 8 File Man- other user-level software. This greatly decreas- You probably know what virtual memory is— ager will be able to access whatever mass- es the ability of applications to cause a system- it’s a way of making the computer seem to storage volumes are connected to the com- wide crash. have more physical memory than it actually puter—even volume formats that haven’t Third, the separate address spaces for data has. Code that needs to be executed is loaded been invented yet—without your having to in Mac OS 8 also offers protection. As I point- into physical memory and stored elsewhere— rewrite the application. ed out earlier, if code in a given address space usually on a hard disk—when it is no longer • Improved Standard File dialog boxes. All malfunctions, it cannot corrupt the data in a needed. If an application needs to execute applications will automatically display an different address space. This means that, for code that’s not in physical memory, the oper- enhanced browser in their open/save dialog example, if a server program crashes, it will ating system—automatically, and invisibly to boxes. However, applications that use the new not crash the Mac OS 8 file system. the application—loads the required code into Mac OS 8 Navigation Services API will have Fourth, by assigning access permission lev- physical memory and ensures that it executes open/save dialog boxes that offers users more els, where appropriate, to memory areas that correctly. information about files and offers better ways your application uses, you can reduce the pos- In System 7, virtual memory is optional; to find a desired file. sibility that other software will be able to cor- when it’s on, it relies on a user-determined rupt the data that belongs to your application. amount of disk space. In contrast, Mac OS 8 Improved User Experience This feature is most useful in enhancing the virtual memory is always on, and it allocates its Mac OS 8 does many things to improve the stability of System 7 applications and the coop- disk space dynamically; it is also a more user’s experience, many of which are centered erative-program part of Mac OS 8 applications. sophisticated, more efficient virtual memory around what the desktop looks like and how it Under Mac OS 8, you can assign a memory implementation than is used by System 7. behaves. (For a more detailed description of area (which is loosely defined as a contiguous Virtual memory is another one of the auto- the user-experience elements of Mac OS 8, see range of memory locations within an address matic benefits of having your applications run “Looking Forward to the Copland User Experi- space) one of three levels of access permis- under Mac OS 8. Whether your application ence,” in the April 1996 issue of Apple Direc- sion. One level, read/write, allows other soft- takes specific advantage of Mac OS 8 features tions.) These features will give users an imme- ware in the same address space to read from or not, virtual memory works better than it diate benefit from using Mac OS 8, and or write to memory locations. The second, does under System 7 and allows users to make existing applications that “play by the rules” read-only, allows other software to read from the best possible use of computer memory with the human interface will automatically but not write to such memory locations. The and run more software simultaneously than inherit as much of the new appearance of the third, the “excluded” level of access permis- would otherwise be possible. Mac OS 8 desktop as possible.

JUNE 1996 12 News AppleDirections

In addition, Mac OS 8 includes some user- operating system, so one of the ways Apple is model you have to live with every day, and I’ll assistance technologies that you can add to increasing system stability in the Mac OS 8 is describe the major Mac OS 8 technologies that your application to make it more useful to to integrate key Apple technologies into the allow you to do things that are difficult or your customers. These include help (Balloon operating system itself. Mac OS 8 does this by impossible under System 7. ♣ Help, Apple Guide, and tips), delegation (trig- integrating selected key technologies—includ- gers, notifiers, and scheduled tasks), and ing OpenDoc, QuickDraw GX, WorldScript, Author’s note: I’d like to express my sincere “experts.” Again, see the Apple Directions arti- and Open Transport—into itself. thanks to Tony Francis, author of the upcom- cle mentioned earlier for details. ing book Mac OS 8 Revealed from Addison- Next Month Wesley Longman. Despite his own deadlines, Integration of Key Technologies The Mac OS 8 story is too big to tell in the Tony freely contributed his time to reviewing As the Mac OS evolved, Apple innovated, and space available for this month’s column. Next this article. My understanding of Mac OS 8 added those technologies to the Mac OS month, I’ll go into two major areas that contin- comes almost entirely from reading draft through system extensions. Extensions repre- ue the list of Mac OS 8 advantages: I’ll explain chapters of his book. sent a potential weak link in the stability of the how Mac OS 8 simplifies the programming

APPLE NEWS

• Evangelism will conduct day-to-day man- Apple technologies, as well as for developing IBM Licenses the Mac OS agement of developer accounts and lead relevant business data to share with the Apple continued from page 2 efforts to evangelize Apple technologies and development community. products among you and your developer • International Developer Relations will release of the Mac OS, and access to the 16 colleagues. adapt and deliver ADR programs and oppor- local language versions of the Mac OS that • Developer Marketing will define and tunities for developers worldwide to assure Apple has so far approved for licensing (U.S. promote Apple’s developer proposition. In that Apple provides consistent levels of sup- English, U.K. English, Italian, German, French, this role, it will initiate comarketing and port for developers outside the United Spanish, Portuguese, Swedish, Norwegian, other programs to broaden the “shelf-space” States. Danish, Finnish, Dutch, Traditional Chinese, allocated to solutions for Apple platforms, Simplified Chinese and Japanese.) thereby helping developers reach a larger “Developers are the lifeblood of the Macin- base of customers. Developer Marketing will tosh,” said Dr. Gilbert Amelio, Apple’s chair- also administer Apple’s member-based devel- man and chief executive officer. “Apple must oper programs, including the Partners, Asso- deeply integrate the development community ciates Plus, and Associates programs for both into its global mission, and this new reporting New Apple Developer Newton and Macintosh developers, as well as structure is a logical step in that direction. We the Apple Developer Catalog and Apple’s want to foster an environment where Apple Relations Charter, developer communications and periodicals, Developer Relations can more efficiently and including Apple Directions. effectively work across all functional areas, for Organization • Developer Technology Services will be the mutual benefit of Apple and the vendors responsible for meeting developers’ techni- who support our products.” Apple Developer Relations (ADR) recently cal needs with training, technical services, The group’s expanded responsibilities are reorganized and expanded its operations to and specialized support programs. Included a direct result of developer requests to pro- better provide the comprehensive range of in this group will be Developer Technical vide a fuller complement of marketing, busi- technical and business resources required by Support (DTS), the groups that provide ness development, and relationship manage- developers. The newly defined organization, hardware and software documentation, ment support. “In recent months, we’ve seen which will now report to Apple Chief Adminis- Developer University and other technical a visible improvement in the way Apple trative Officer George Scalise instead of to training services, compatibility/testing labs, regards the developer community,” said Research and Development, includes not only developer bug reporting, resolution and Duane Schulz, president of Now Software. the traditional evangelism and technical sup- management, and specialized engineering “Apple has actively sought our input, and port functions, but also adds a new group to support. these organizational changes show the com- provide business support. • The new Developer Business Develop- pany is serious about integrating developer Under the leadership of Vice President ment group will chiefly identify strategic part- issues into its business strategy.” Heidi Roizen, ADR will consolidate developer nership opportunities in the developer com- Developers in key growth segments have activities from all over Apple into one organi- munity. It will help strategic developers work endorsed the new structure. “We are very zation to coherently and effectively meet the with Apple, driving the process for licensing pleased to see Apple increase its focus on needs of the Apple development community. technology to and from Apple. This group will developers’ business and comarketing needs To do so, ADR will be organized into the fol- also be responsible for recognizing and com- on a worldwide basis,” said Alan Lefkof, pres- lowing five primary units: municating the business implications of new ident and CEO of Farallon. “I expect this will

JUNE 1996 AppleDirections News 13 help Farallon and Apple do great work Web site as well as other content. The Apple Rather than provide a WWDC-specific release together on a variety of compelling Internet Multimedia Information Mailing is also avail- that would not allow you to make any and intranet applications.” able separately from the Apple Developer Cat- progress (and further delay the delivery of a “Our developers face many challenges alog. (For Apple Developer Catalog ordering release that would meet your needs), we are and opportunities in today’s volatile technol- information, see page 36.) focusing all resources on delivering the Com- ogy marketplace,” said Heidi Roizen, ADR If you’d like more information about the patibility Edition as quickly as we can by vice president. “Their support of the Macin- Apple Media Program, check out the new AMP mid-year. tosh platform is dependent upon our ability Web site at http://www.amp.apple.com. We are scrutinizing our plans as you are to provide not only a rich technical opportu- reading this, so we can provide more specific nity, but also a healthy business proposition. release information at the conference togeth- We to deliver on both counts.” er with more information about commercial We’ll include more specifics about the availability, which we expect to now take newly defined ADR organization when they’re New Release Schedule place in mid-1997. Copland remains a high made available. priority for Apple Computer. We are taking for Mac OS 8 steps now to ensure that the product will be aligned with Apple’s corporate strategy. Apple Developer Relations Vice President I realize that you were expecting to receive Heidi Roizen sent an e-mail message to Apple the developer release during the conference Apple Multimedia developers on April 29, 1996, announcing that time frame. I sincerely apologize that we are the first developer release of Mac OS 8 won’t not able to get you this release as soon as we Program Becomes Apple be available until mid-year, and confirming had hoped. However, in the interest of fulfill- that the customer release will ship in mid- ing my personal number-one commitment to Media Program 1997. (Mac OS 8 is the official name of the you, that Apple deals with the developer com- next major release of the Mac OS; it was for- munity “straight up”, I believe that this is the To reflect its broader charter, the Apple Multi- merly referred to by its code name, Copland.) right answer for us all. media Program has changed its name to the Following are excerpts of Heidi Roizen’s We remain committed to your success as Apple Media Program. AMP (yes, it’s still AMP) memo, in case you haven’t seen it yet. We’ll our partners in making the Macintosh plat- will be enhancing its Internet presence to provide further details about the Mac OS 8 form an ongoing success. deliver more information, more often, and to release schedule in Apple Directions and provide significant opportunities for members Apple Directions Express as soon as they’re Best regards, to participate on-line. available. Heidi AMP member services will now be deliv- ered primarily over via the Web. The AMP Web Dear developers, site will be updated regularly with information There is some news that I need to share and tools for developers working with new with you now, as an expression of Apple’s media—including demos, Survival Guides, commitment to open communication: We’ve New QuickTime VR 1.0 white papers, market research reports, multi- stated in the past that it has been our goal to media guidebooks, success stories, discounts, deliver the first widespread developer release Tools Made Available as and on-line chats. The latest information will of Copland—what we are calling the Compat- be available in a members-only area. AMP will ibility Edition—to all attendees at the World- Apple Plans Next Quick- keep new media developers current on wide Developers Conference (WWDC, May Apple’s offerings for authoring and playback 13–17, 1996). After thorough analysis, it has Time VR Release whether it’s for CD-ROM, Internet, or other become apparent to the engineering team delivery mechanisms. and me that we will not be able to achieve Last month Apple Computer, Inc., released The Web site also includes the AMP Mem- this goal. several new, beta-quality tools for creating ber Showcase—an area on the AMP Web Site The Copland developer release strategy is QuickTime VR objects and panoramas and that provides information on member prod- designed to get the operating system into your began to gather developer feedback for the ucts and services as well as a link to their own hands as early as possible. Driver and exten- next release of the virtual reality tool. The new Web site. Other member benefits include co- sion developers need an early start and tools—Make QTVR Object and Make QTVR marketing programs, discounts on a limited application developers need to ensure that Panorama—let creators of Web site, users of amount of Apple hardware, special new media current shipping products can be tested for computer graphics program, and photogra- developer events, and discounts on third-party compatibility. phers more easily create QuickTime VR virtual products and services. The goals of the Compatibility Edition have reality content. The tools are available on the Additionally, members will receive the been specifically designed to meet these QuickTime VR Web site (http://qtvr.quicktime quarterly Apple Multimedia Information Mail- needs. Unfortunately, Apple will not be able .apple.com/). To help assure that QuickTime ing, consisting of a newsletter and a CD con- to deliver a release that is of high enough VR 1.1, the next release of the technology, best taining the information that’s posted to the quality to achieve these goals by WWDC. suits developer needs, Apple also released a

JUNE 1996 14 News AppleDirections preliminary version of the specification for the Authoring Tools Suite 1.0 for creating photo- standard for the creation of platform-indepen- new release. graphic panoramas from multiple photo- dent applications,” said Alan Baratz, president Make QTVR Object is used to create a graphs (“stitching”), for adding clickable “hot of JavaSoft, Sun Microsystems. “As one of the QuickTime VR object movie from photographs spots,” and for creating complete virtual reality leading suppliers, and a or computer-generated images of an object, experiences. The QuickTime VR Authoring household name in consumer-oriented, easy- such as a piece of jewelry, a human figure Tools Suite 1.0 is available from the Apple to-use technology, Apple’s license brings Java modeling clothing, or a car. It converts a Developer Catalog. (See page 36 for ordering to a whole new category of users.” QuickTime movie whose frames consist of information.) If you want to begin working with Java on images of the object into a single QuickTime the Macintosh, a variety of Macintosh Java VR object. The resulting QuickTime VR object development environments have already been can be rotated by the user to see all sides of announced, including the following: the object. Object files generated from a single • Roaster from Natural Intelligence; for row of photographs around an object are typi- Apple Licenses more information, go to the Natural Intelli- cally about 500K in size. gence Web site (http://www.natural.com/ Make QTVR Panorama is used to create a Sun’s Java pages/products/roaster/index.html). QuickTime VR panorama from a panoramic • Caffeine from Symantec, Inc.; for more photograph or a computer-generated image of Apple Computer, Inc., recently announced information, go to the Symantec Web site a scene. Make QTVR Panorama converts a that it has licensed Sun’s Java programming (http://www.symantec.com/lit/dev/mactools panoramic PICT file from a computer graphics environment. Apple plans to use the license to .html). program or a scan of a panoramic photograph make Java an integral part of its operating sys- • Discover Programming with Java from into a QuickTime VR panorama. The user can tems, including the Mac OS, Pippin, and New- Metrowerks; for more information, go to pan and zoom within the resulting QuickTime ton. the Metrowerks Web site (http://www. VR panorama. Panoramas generated from pho- You’ll be able to create applications for metrowerks.com/products/discover/java.html). tographs can be as small as 150K. Apple platforms that take advantage of the Both of these tools create content that can built-in Java technology. A Java-capable word be made part of a Web site, a CD-ROM title, or processor, for example, will enable a student another program, such as a kiosk presenta- writing a term paper to embed a Java applet in tion. This content can be used with the Quick- the electronic document that demonstrates a Technical Support Time VR Authoring Tools Suite or authoring scientific theory through animation. With a programs such as Apple Media Tool, Macrome- Java-enabled spreadsheet, a financial analyst Now Available to All dia Director, or mFactory from mTropolis. could download a graphing applet from the In addition to providing the new tools for Internet, plot data from a ledger, and upload Developer Program QuickTime VR 1.0, Apple is beginning the the resulting graph to a network server. process of creating the next release of Quick- The combination of Java with the Mac OS Members Time VR. Apple has shipped to key developers should further expand the Macintosh comput- and partners the QuickTime VR 1.1 Applica- er’s technical edge for Web graphics and other If you’re a member of the Macintosh Associate tion programming interface (API) specification new Internet media development. According Program, the Newton Associate Program, or for review and comment. Apple will gather to the -based consultant Mirai, 40.9 the Apple Media Program (formerly the Apple feedback on this specification and intends to percent of respondents polled in 1995 already Multimedia Program), you now can take announce the features of, and schedule for, created the graphics for Web sites on a Macin- advantage of programming-level support from QuickTime VR 1.1 at the 1996 Worldwide tosh computer. Apple’s Developer Technical Support (DTS) Developers Conference, held May 13–17 in Apple expects to incorporate Java into its engineers. A new support option, just intro- San Jose. The announcement is expected to media authoring technologies, Internet duced by Apple Developer Relations allows include seeding and final delivery dates for the servers, and client software and in , developers to purchase support on a per-ques- next release of QuickTime VR along with its OpenDoc-based . With Java, tion basis. Members of other programs—Mac- details of its feature set and of the seeding media authors will be able to use one intosh and Newton Partners, and Macintosh program. language for a multitude of solutions that and Newton Associates Plus—can continue to If you sign a nondisclosure agreement with address the needs of individuals as well as make use of DTS support as they have in the Apple, you can receive the QuickTime VR 1.1 organizations. past. API specification. For more information, regis- “This is an important step in Apple’s plan to If you’re a member of one of these pro- tered Apple developers can contact Developer launch cutting-edge Internet products and ser- grams anywhere in the world, you can begin Seeding at dss.software@applelink vices,” said Larry Tesler, Apple’s vice president to take advantage of DTS support immediate- .apple.com. Please provide your name, compa- of Internet platforms. “Licensing Java from Sun ly. Submit your code-level programming ques- ny name, mailing address, and phone number. will enable Apple to make this key Internet stan- tions by e-mail to devsupport@applelink To become a registered Apple developer, call dard widely available in its products.” .apple.com. DTS will respond to all questions the Apple Developer Hotline at 408-974-4897. “With the addition of Apple to the growing within three business days. The charge per You can continue to use the QuickTime VR list of Java licensees, Java truly becomes the question is $50 (U.S.). If your question reveals

JUNE 1996 AppleDirections News 15 a bug in Apple’s software or documention, level-2 cache, the new computer provides up U.S. $1,049 for more expandable Pentium ver- DTS will not charge you (in fact, they’ll thank to a 50-percent performance improvement sion with more level-2 cache)—run virtually all you!). over the Power Macintosh 7200/90 system. Windows, DOS, and Mac OS software, giving Please note that DTS is equipped to handle The Power Macintosh 7200/120 system with 8 customers the greatest level of compatibility of code-level programming questions about MB of memory, a 1.2 GB hard drive, and any mainstream personal computer. Improv- Apple’s application programming interfaces. quadruple-speed CD-ROM drive has a U.S. ing on former cross-platform systems, the Any comments, questions, or feedback about Apple price of $1,899. computer and cards can be connected to a this and other Apple developer programs The Power Macintosh 7600/120 computer variety of networks, including Novell Network should be sent to devfeedback@applelink includes a 120-MHz PowerPC 604 SPX/IPX, TCP/IP and NETBEUI protocols in .apple.com. microprocessor, a 256K level-2 cache, and Windows and DOS environments via a built-in clock speed improvements to provide up to a Ethernet connector and ODI and NDIS 2.0 50-percent performance improvement over drivers. Due to robust multinode support, the the /100 system. A systems, with the appropriate network access, Power Macintosh 7600/120 computer with 16 can support two Internet connections simulta- Increased Power PC MB of memory, a 1.2 GB hard drive, a quadru- neously—from the Mac OS and Windows envi- ple-speed CD-ROM drive, and 256K level-2 ronments. Compatibility, All-in-one cache has a U.S. Apple price of $2,999. These cross-platform products are expect- The PowerPC 604-based Power Macintosh ed to draw new users to the Mac OS platform Design Featured in New 9500/150, /150, and from among the ranks of existing Wintel cus- Power Macintosh 8500/132 systems are higher- tomers. Apple customer research shows that Apple Hardware clock-speed versions of the current Power the previous cross-platform solution, the Macintosh 9500 and Power Macintosh 8500 /66 DOS Compatible In April, Apple Computer, Inc., introduced a models. The new computers both provide up computer, attracted x86-based PC owners to variety of new hardware products, including to a 25 percent performance improvement the Macintosh platform at almost 3 times the the following: over current models. U.S. Apple prices for rate of other Power Macintosh systems. In fact, • four faster Power Macintosh models: these systems range from $3,899 for a Power the majority of Power Macintosh 6100/66 DOS the Power Macintosh 7200/120 computer, the Macintosh 8500/132 with 16 MB of memory, a Compatible customers were not replacing Power Macintosh 7600/120 computer, the 1.2 GB hard drive, a quadruple speed CD- another Macintosh system; instead, they were Power Macintosh 8500/150 and∆8500/132 ROM drive, and 256K level-2 cache to $4,799 either acquiring their first personal computer, computers, and the Power Macintosh for a /150 with the same replacing a x86-based PC, or adding to their 9500/150 computer. All the new Power Macin- configuration in addition to on-board video. installed base of PCs. tosh systems can be upgraded to run at 200 For those wishing to upgrade existing sys- MHz, once faster processors are available; tems, Apple introduced the Power Macintosh Educational Systems additionally, Apple announced several Power- Processor Upgrade Card 132 MHz (U.S. $899) The Power PC 603e-based Power Macintosh PC upgrade options and Power Macintosh Processor Upgrade Card 5260/100 computer (U.S. $1,699) includes a • the Power Macintosh 7200/120 PC Com- 120 MHz (U.S. $599); both can be used with quad-speed CD-ROM drive, 16-bit CD-quality patible computer, which includes a 120 MHz Power Macintosh 7500/100 systems, which stereo speakers, an integrated 3.5 inch 800 MB Power PC 601 chip to run the Mac OS and one include a processor upgrade slot. Additionally, IDE hard drive, built-in 14-inch (viewable area of two PC Compatibility cards—one with a 100 the new PowerPC 604 processor-drive 8500 12.3 inches) monitor, mouse, and MHz 586 processor, the other with a Pentium Logic Board Upgrade (U.S. $1,799) allows Mac- AppleDesign keyboard, and 16 MB of memory 100 MHz processor—to run Windows 3.1, Win- intosh Quadra 800, 840av, (expandable to 64MB). In addition, customers dows 95, and DOS 6.22. Both PC Compatibility and computers to be can add a video input card, a video-out con- cards can also be used with any existing upgraded to the performance of a Power Mac- nector, or a TV tuner. Peripheral Component Interconnect (PCI)- intosh 8500 computer. A 7600 Logic Board The more powerful PCI-based Power Mac- based Power Macintosh system Upgrade (U.S, $1,299) is also available for intosh 5400/120 system (U.S. $2,299) also uses • two all-in-one Power Macintosh systems upgrading a Power Macintosh 7200 to the pro- the Power PC 603e chip. It features 16MB of for educational customers, the Power Macin- cessing power of the PowerPC 604 chip and DRAM (expandable to 136MB), an internal 1.6 tosh 5260/100 computer and the Power Macin- level-2 cache capabilities of the new Power GB hard drive, and built-in Ethernet. The sys- tosh 5400/120 computer Macintosh 7600 computer. tem comes equipped with a video input card Details about the new products follow. and video-out connector, an expansion bay for PC-Compatible Solutions an optional TV tuner, as well as a quad-speed New Power Macintosh Models Apple’s next-generation PC-compatible solu- CD-ROM drive, stereo speakers, a The Power Macintosh 7200/120 computer, tions—the Power Macintosh 7200/120 PC microphone, built-in 15 inch (viewable area driven by a 120 MHz PowerPC 601 processor, Compatible computer (U.S. $2,599 to $2,799, 12.8 inches) color monitor, mouse, and provides clock-speed improvements over the depending on configuration) and a PCI-based AppleDesign keyboard. ♣ current Power Macintosh 7200/90 and Power Power Macintosh using one of the two new PC Macintosh 7200/75 systems. With optional Compatibility cards (U.S. $799 for 586 version,

JUNE 1996 AppleDirections CD Highlights: Reference Library Edition News: develop Issue 26; Mac OS 8, QTC, and SOM Feature: Multitasking Under Mac OS 8 Technology Human Interface: Addictive Interfaces develop Issue CD HIGHLIGHTS 26: Mac OS 8, Reference Library Edition, QTC, and SOM June 1996 Issue 26 of develop, Apple’s award-winning The new and improved version of Apple HTML • high-level and FSSpec-style routines for technical journal, has more great content than Local Search wasn’t quite ready for this Desktop Manager calls ever. In this, our biggest-ever issue, you’ll find month’s disc, so we’ll deliver it, along with • routines for dealing with pathnames articles on Mac OS 8, QuickTime Conferenc- another big pile of technical documentation in ing, SOM™, and more: HTML format, on the July System Software/ See the file !MoreFiles Read Me for a • “Planning for Mac OS 8 Compatibility”— SDK edition. Those of you who tried the March description of fixes and improvements in ver- Mac OS 8 brings changes that may affect your version and haven’t sent in your survey yet— sion 1.4.2. code. This article discusses the compatibility please do! I don’t want to see any gripes about ramifications of Mac OS 8 and gives some Acrobat on the Semper.fi list server from peo- Network Server Developer’s Guide sound advice for how to get your code ready ple who haven’t sent us their feedback about The Developer’s Reference Guide for the now. this possible new direction. . . . Apple Network Server is the source for infor- • “Connecting Users With QuickTime Con- In addition to updates to the Developer mation about developing client/server applica- ferencing”—QuickTime Conferencing allows University schedule, Macintosh Technical users to share time-based data such as video Notes, Macintosh Technical Q&As, and Tool- and sound. Here are the basics. box Assistant, here’s this month’s new and • “OpenDoc Parts and SOM Dynamic revised stuff. Inheritance”—Although you don’t need to know much about SOM to write OpenDoc develop Issue 26 parts, with a little knowledge about this This is the electronic version of develop, the underlying technology you can do some very Apple Technical Journal, Issue 26. For details, useful things. see the article to the left. • “Adding Custom Data to QuickDraw 3D Objects”—By defining your own attribute and MoreFiles 1.4.2 element types, you can attach custom data to MoreFiles is a collection of high-level routines QuickDraw 3D objects. This flexibility opens written over the last couple of years to answer up a world of new possibilities, a few of which File Manager questions developers have sent are explored in this article. to Apple Developer Technical Support (DTS). Reference Library Edition • “64-Bit Integer Math on 680x0 The routines have been tested (but not stress- Machines”—There’s a 64-bit library built into tested), documented, and code-reviewed by tions and writing device drivers for the Apple the Toolbox on the Power Macintosh, and Apple DTS. This release adds new routines Network Server. The guide documents differ- there’s also one built into QuickDraw GX. and fixes several bugs. ences between AIX for the Apple Network Finally, here’s a library that will work on any MoreFiles provides Server and IBM’s AIX. Macintosh, using built-in routines if available. • high-level and FSSpec-style routines for This guide covers hardware and software You’ll also learn about living copacetically parameter-block-only File Manager calls requirements to be considered when develop- with the Display Manager, automating com- • useful utility routines that perform many ing AIX for Apple Network Server device dri- plex editing tasks in MPW, integrating scripts common File Manager–related operations vers or server applications and a Mac OS into your application, and avoiding the • a robust file-copy routine client. Part I covers the development of (revised) top ten printing crimes. We hope • a recursive directory-copy routine client/server applications, including both Mac you’ll judge this to be the best-ever issue of • catalog-searching routines OS and AIX considerations. Part II covers the please turn to page 24 please turn to page 24

JUNE 1996 AppleDirections Technology 17 Multitasking Under Mac OS 8

Part 2: Multithreading user interface task in a cooperative program thread in some other operating systems, such and background processing tasks in a separate as UNIX® and Windows NT. With Mac OS 8, By Tony Francis server program. (Under Mac OS 8, a server the term thread is more abstract because, as program is one that manipulates data within mentioned above, there are three ways to In last month’s issue, Part 1 of this article pro- its own protected address space. Cooperative implement multiple paths of execution in Mac vided a detailed look at multitasking under programs run in the same address space and OS 8. Copland—or Mac OS 8, as it’s now known. It must share access to a library of code called Whereas some operating systems allow you described how Mac OS 8 provides separate the Mac OS 8 cooperative services. See the to create multiple threads within a process in address spaces for data, a cooperative first part of this article for more details.) the way that you can create multiple tasks address space in which most applications • You can arrange operations so that more within a Mac OS 8 process, Mac OS 8 supports execute, and system-wide preemptive multi- than one cooperatively scheduled thread is another level of threading—the creation of tasking that simulates the cooperative multi- performed within a task. cooperatively scheduled threads within a task. tasking needed by System 7 applications. This level of threading was introduced with To conclude our look at Mac OS 8 multi- Key Terms and Concepts the System 7.5 Thread Manager. To avoid con- tasking, Part 2 of this article describes Mac OS Before going any further, it will be helpful fusion, Mac OS 8 terminology refers to the 8 multithreading capabilities, features that for you to understand the following key Mac OS 8 version of the System 7.5 Thread will help your applications use the comput- terms, which will be used frequently in this Manager as the Cooperative Thread Manager. er’s processor more efficiently. This article is discussion: The term cooperatively scheduled threads based on a chapter from the forthcoming A thread is a path of execution for an appli- refers to threads created through the Cooper- Apple Press/Addison-Wesley Longman book, cation. To thread an application is to give it ative Thread Manager. The term task refers to Mac OS 8 Revealed by Tony Francis, to be pub- more than one path of execution. a preemptively scheduled path of execution in lished in the third quarter of this year. A task is the basic unit of program execu- Mac OS 8. • • • tion. Preemptively scheduled and assigned a Just as the operating system makes the most priority by the Mac OS 8 microkernel, every Major Points of Interest efficient use of computer resources through its task has its own stack and set of registers. The You can thread your software to increase sys- multitasking capabilities, a program can make microkernel uses processes to track the tem efficiency and user responsiveness. A mul- the most efficient use of computer resources by resources required by tasks, so that every tithreaded program is structured into parallel incorporating multithreading capabilities. process is associated with at least one task, operations, each of which has access to the Whereas multitasking efficiently interleaves the and several tasks can be associated with a sin- CPU. This feature allows a user to continue execution of multiple programs on a single gle process. working within an application without waiting CPU, multithreading efficiently interleaves mul- A cooperatively scheduled thread is one of for the application to complete lengthy - tiple paths of execution within a single program multiple paths of execution in a task. Within a tions. For example, a scientific simulation or set of programs. For example, one thread of task, these threads cooperate by yielding exe- application could create one thread that han- execution in a program might handle user cution control to one another. Cooperatively dles user interaction and another thread that interactions, another might perform calcula- scheduled threads—which are the same as performs intensive statistical calculations in tions, and a third might perform file I/O. System 7.5 threads—can be scheduled for the background. The user can continue to Multithreading makes an application highly execution only when the task containing them interact with the program even while it’s per- responsive to the user while increasing overall is running. Although the microkernel preemp- forming statistical calculations. system performance. On multiprocessor com- tively schedules all eligible tasks for execution, To the user, it appears that multithreaded puters, where tasks execute simultaneously on programs have execution control over the operations take place simultaneously. Howev- multiple processors, multithreading offers cooperatively scheduled threads they create. er, the microkernel interleaves the execution significant performance gains to applications. From the main task of a cooperative program, of these operations on a single CPU so quickly When you develop for Mac OS 8, you can any cooperatively scheduled thread can call that it looks as if they’re happening simultane- thread products using one or a combination of the Mac OS 8 cooperative services. ously. The microkernel also supports multi- the following three approaches: On a multiprocessor computer, a multi- processor computers, where parallel opera- • You can divide operations so that more threaded program can send its tasks to sepa- tions happen simultaneously. At the initial than one task is performed in a single process; rate processors for simultaneous execution. release of Mac OS 8, the operating system sup- for example, you can incorporate a main task Programs use interprocess communication ports the System 7.5 programming interface and one or more additional tasks in a coopera- to exchange information among tasks within defined by DayStar Digital and Apple Comput- tive program. processes or between tasks in different er for multiprocessor computers; Apple • You can divide operations so that they processes. intends to provide full multiprocessor support are performed by tasks in more than one Note that in Mac OS 8 terminology, the in subsequent releases of Mac OS 8. process; for example, you can incorporate a term task describes the entity referred to as a please turn to page 20

JUNE 1996 18 Technology AppleDirections HUMAN INTERFACE Addictive Interfaces Building Interfaces Your Users successful game. As it turned out, the answer start playing as soon as possible. Keep the Can’t Stop Using was very simple. rules simple, and make sure the overall goal is To make a great game, you need to accom- clear. Instead of making the users read plish three things. instructions, let them start playing immediate- By Peter Bickford 1. Hook your customers by getting them to ly, and then have the game teach them how to lose themselves in The Game. play. Sewer Shark, for instance, uses a gruff To the outside world it was 11 o’clock in the 2. Keep them “in play” as long and as flight instructor to lead the “rookie” (the play- morning, and the sun was shining brightly. I, deeply as possible. er) through the rules of engagement before however, was in a dark, cavern-like building 3. Keep ’em hooked by giving them greater taking off. Of course, experienced players can watching a kid locked in a deadly karate battle challenges and greater rewards. skip these instructions by pressing a button. against a many-armed monstrosity. To the right of me, a child no older than twelve was Step #1: Getting Your Step #2: Keep ’em in Play dropping bombs on a terrorist hideout, while Customers Hooked Once you’ve got your users playing, your behind me a woman sat mesmerized as she Getting users hooked begins with enticing biggest task is to let them enjoy the ride. You turned falling blocks of various shapes so that them into leaving their everyday lives behind want to keep them “in play” as long as possi- they would form orderly rows as they landed. for a moment and entering that unique reality ble without annoying distractions that wrench I was standing in a video arcade, the third known as The Game. them back into reality. I’d visited that morning. I was on a case, sent • Make the game as alluring as possible. • Consider hiding the rest of the comput- by Mark Gavini, Apple’s games evangelist, to The game that grabs the most attention will er. This may be the only time you hear a discover the secrets of building successful be the one that offers players the most awe- human interface person give this advice, but game interfaces. As I looked around the dimly some sensory and mental experience. This is in some cases it’s perfectly OK to hide lit interior, I saw row upon row of machines, where all your technical skills come in, giving nongame windows, the desktop, and even the some with throngs of people waiting to use your players the flashiest and most realistic itself. Gaming is not generally a them, others looking lost and lonely as they graphics: stereophonic (or more) sound and multiapplication task. (“I’ll just copy these tried in vain to pull in an audience with their ; movies; animations; virtual reality. Use cells from my Excel worksheet, then paste gaudy self-running demos. every weapon you can to catch users’ atten- them into my laser rifle’s energy setting . . .” All this time, I was busy asking myself one tion and invite them into The Game. Yeah, right.) When you’re chasing your office question: “Why?” What makes Mortal Kombat Keep in mind that the mental component mates around the alien complex in Marathon draw in the crowds while Street Fighter stands of game playing is every bit as important as II, you don’t want to be worrying about that deserted? What spell does Tetris cast that the sensory part. Even the most sense-shatter- unfinished report lurking in the background makes people seem not to be able to stop ing shoot-em-up becomes boring unless it window. playing it? And why had someone done great somehow captures a user’s imagination. Great So let users focus on playing, but give violence to the Mad Dog McCree game? I games offer the user a sense of challenge, them an easy way to get back to work when wasn’t leaving until either I found some wonder, or accomplishment. Some games, the time comes. If you’ve hidden the menu answers, or I ran out of quarters. such as Tetris, have just enough sound and bar, make sure there’s an easy way to show it And I had brought an awful lot of animation to get by. What really makes it spe- again. Also consider showing it if the user quarters. . . . cial, however, is its sense of absolute mental moves the mouse to the top of the screen, involvement. types lots of wrong keys, or otherwise indi- Secrets of Successful Games • Make it easy to start playing. We’ve all cates confusion. After some time watching and playing the sat down with friends to play a new board • Don’t have them steer the game—put games, I was starting to notice some patterns. game, only to have the evening come to a users in the game. Using commands like “Go I wanted to double-check my information, crushing halt as someone was forced to read North” in computer games was OK when the however, so I knocked on the door marked out loud the game’s six pages of rules and games were being played on teletypes. To “private” and asked to speak to the person regulations. This is usually followed by 20 really lose themselves in the game, however, running the place. As it turned out, the peo- minutes of clarifications and confused mutter- users need to be able to play without con- ple inside were surprisingly eager to cooper- ing. Compare this to the classic game of “Oth- sciously thinking about the controls. Joystick ate. They showed me sales figures, told me ello,” whose rules can be explained in a few control and point-of-view perspectives such as which games were hot and which ones had sentences, but whose strategies can take years those used in Wolfenstein 3-D are ideal for bombed, as well as giving me their own theo- to master. building a sense of involvement. If you have ries about why. Together, we pieced together If you want people to lose themselves in to use keyboard navigation, base the con- the puzzle of what it takes to make a your game, it’s important that they be able to trols more on hand position than on the first

JUNE 1996 AppleDirections Technology 19

letters of the commands (for instance, use been shattered by furious users. For example, are obvious. Computer gamers, however, are the arrow keys or I-J-K-L for directionals, I am convinced that there is a special place in playing on a slightly higher level. rather than N-S-E-W). Make sure you also Hades reserved for game designers who let True, you do need to start by giving your give users an option to choose the keys that players continue for any length of time after gamers good “first quarter” play. Make sure work best for their special needs. In any case, making a move that ensures that they can not that the very first challenges or opponents make sure that you haven’t designed in so possibly win the game. Forcing users to back they face are not insurmountable. Have many key commands that your users are up and start over is about as enjoyable as mercy on players who are just starting out— unable to use them without stumbling making them retype a document they lost some pinball games are even gracious around. when their computer’s power failed. enough to give an extra ball if the player’s • Minimize the user’s memory require- score is below a certain point. ments. Low-end, game-playing computers Step #3: Keep ’em Hooked After that, start making the game more usually have at least a megabyte or two of With most software, it’s enough that cus- difficult by stages so that the player has to free RAM for running your game. Their users, tomers can use it enjoyably, productively, keep working harder and acquiring new however, usually only have about 7 (±2) and without frustration. If you want to build skills in order to advance. So as not to bore bytes of free memory while they’re busy a really great game, you want more: to get more accomplished players, you may also blasting away aliens. Respect this limitation the users so hooked that they can’t help but want to give users a way to skip over the and don’t expect your users to remember come back for more. You don’t just want easier portions of the game—or more devil- things while playing your game. Design any user-friendly games, you want user-addic- ishly—make the early opponents adjust in sort of program help so that it can be sum- tive games. difficulty to match the playing abilities of moned when needed (and forgotten when For inspiration on how to design these, the last gamer. no longer needed). Avoid memory-based you can look to the great behavioral psy- Unlike Skinner’s rats, however, gamers puzzles (“Now, remembering what the little chologist B.F. Skinner. Skinner was studying are capable of seeing the big picture. To elf told you in scene 1, you should be able to “conditioning,” which in his case amounted convince them to keep playing, you need figure out the answer to this final riddle!”). to teaching rats to press little levers in their to give them more than just the same old Users will remember strategy, but forcing cages to get food. Initially, Skinner would payoffs. You need to couple their new chal- them to remember anything else is a sure establish the lever-pressing behavior by lenges with new experiences, new possibili- road to player frustration. giving the rats a food pellet every time the ties, and new rewards. In doing so, you are • User control. Many events in a com- lever was pressed. This seemed like great satisfying players’ mental needs, not just puter game are random, but one of the core fun to the rats for a while, but eventually, their desire for cool-looking explosions. principles of any sort of successful gaming Skinner was left with a cage full of obese Players may get a physical rush out of play- is that users are in control of their own rats who only got around to pushing the ing your game, but it’s the way you fulfill actions. Frustration sets in the moment lever for more food when there was noth- their mental needs that addicts them and users feel they are struggling with the com- ing for them to watch on TV. keeps them coming back for more. puter in order to control their own move- If Skinner had wanted to raise fat rats, he That’s all the time I have for now. Until ments. For users to feel like they’re the could have just given them a feed bag and next time, happy gaming! ones in control, you should start by making dispensed with the levers altogether. But no, —Doc sure the computer responds to any user Skinner wanted to turn his rats into lean, action within .2 seconds. If you can respond mean, lever-pushing machines. So, he started Peter Bickford is a member of Apple Comput- in 200 milliseconds or less, users will feel varying how many times the rats would need er’s Human Interface Design Center. You like they’re controlling the action onscreen. to press the lever in order to receive a food can reach him on AppleLink at THE.DOK- After 200 milliseconds, the computer is pellet. If he made them press the lever too or on the Internet at the.doktor@ seen to be merely echoing their actions. many times before giving them food, the rats applelink.apple.com. You should also try to cut users some eventually gave up trying. On the other hand, slack in responding to their actions. If users if he paid off their lever-pressing too are walking along the ground and want to frequently, they got bored. As it turned out, climb a tree, don’t make them start the climb the way to maximize their lever-pressing was only at the precise pixel position where the to give them a fairly high payoff rate at first, tree trunk begins—allow them to start climb- then lower the rate so that the food pellets ing if they’re within, say, 20 pixels of the tree only dropped occasionally. The rats, having trunk. seen the potential for reward, would keep • Challenge, don’t frustrate. Players love pushing the lever again and again, periodical- new challenges, but they despise pointless ly receiving reassurance that their efforts frustration. Realizing the difference is what were not totally in vain. separates games whose coin inserts get a The parallels between Skinner’s rats and, workout from those whose front glass has say, contestants in lottery scratcher games

JUNE 1996 20 Technology AppleDirections

network I/O for the Web-page server portion program to increase the reliability of that por- Mac OS 8 Multitasking of the application. tion of the application. The operating system continued from page 17 It is often necessary for these two tasks to builds a separate, protected address space for communicate. For example, the server pro- the data of a server program; therefore, errors Threading gram’s task may send network activity infor- in other programs can’t corrupt the data of that In the same way that multitasking makes the mation to the cooperative program’s task, server program. For example, a database server system more efficient, multithreading makes allowing the cooperative program to display that provides critical information could be an application more efficient. A multithreaded implemented as a server program. Thus, even if application has more than one path of execu- other programs on the computer were to crash, tion. For instance, one thread in an applica- Two tasks within the server program could continue serving tion might handle user interactions, another data. You could then implement another thread thread might perform I/O, and yet a third a cooperative program of execution in a cooperative program, allowing might perform background calculations. Even the user to enter, change, and analyze data when this application waits for user interac- Address space maintained by the server program. tion or the completion of I/O operations, it Availability. You might implement a can perform background calculations. thread of execution in a server program Not all programs benefit from being multi- whenever a task should run the entire time a threaded. For instance, an application that computer is on. Whereas users typically handles user interactions and little else would Cooperative launch and quit cooperative programs, server not benefit greatly by having more than one program programs are usually launched automatically User Real-time task. However, if your application presents a interface sound- when the user starts a computer, and they’re task playback user interface while performing time-consum- task usually run until the user shuts the computer ing I/O or processing-intensive operations in off. For example, a task that receives elec- the background, you can provide real user tronic mail messages whenever the computer benefit by threading the application. is on should run as part of a server program. Under Mac OS 8, you can thread your prod- You could then implement another thread of ucts by using one or a combination of three execution in a cooperative program, allowing different approaches. You can divide your pro- the user to read and respond to incoming gram’s operations so that they are performed this information to the user. To share this data messages. • by tasks in more than one process safely, these tasks must synchronize their Client Extensibility. When a single • by more than one task in a single process access to it. For example, the server program thread can be used by more than one other • by more than one cooperatively sched- can place this data in a read-only area of program, that thread can be implemented as a uled thread within a single task shared memory, thereby allowing the cooper- task in a server program. For instance, a server ative program to read but not change it. As program that monitors network activity might Tasks in Different Programs you’ll see later in this article, Mac OS 8 not be useful to a suite of network-management As discussed in Part 1 of this article, under only provides interprocess communication applications, such as an e-mail gateway pro- Mac OS 8 there are two different types of mechanisms for exchanging data between gram, a program for managing Web sites, and programs. The first is called a cooperative tasks, but also offers synchronization mecha- a program that backs up remote disk drives. program, which executes in the cooperative nisms for protecting the data exchanged Other Indirect Interaction Between a Toolbox environment. The second is referred between tasks. Server Program and the User. A task with- to as a server program, which manipulates You might choose to thread an application by in a server program can also interact with the data within its own protected address space. using separate cooperative and server programs user indirectly by calling the Notification Man- For example, an application may consist of a whenever you need one of several tasks to ager, a reentrant service, to send a user notifi- cooperative program that presents a graphi- • have its data protected within its own cation. (A reentrant sevice is code that can be cal user interface and a server program that address space used concurrently by several pieces of code.) performs I/O or calculation-intensive opera- • be available whenever the computer is on A user notification is an audible or visible indi- tions in the background. Thus, a World Wide • extend its services to multiple client cation to the user that a program requires the Web application may consist of a cooperative programs user’s attention. User notifications can take program with which the user creates and such forms as sounds, icons that at the maintains a local Web site and a server pro- You can use a server program to create a top of the screen, and on-screen alert boxes gram that makes Web pages available to task characterized by address space protec- containing short messages. For example, an e- remote users. These two paths of execution tion, availability, and client extensibility. You mail server program can use the Notification make the application multithreaded. The can then use a cooperative program to create Manager to play a sound and display a blinking main task of the cooperative program man- a task that manages user interaction on behalf in the menu bar to notify the user of ages the user interface for the portion of the of the server program. incoming mail. This alerts the user of the need application that manages the Web site. The Address Space Protection. You might to open a cooperative program to read and main task of the server program manages implement a thread of execution in a server respond to incoming mail.

JUNE 1996 AppleDirections Technology 21

Multiple Tasks in the Same Process Cooperatively Scheduled • you want shared data to have more sim- Although threading an application with sepa- Threads in the Same Task plified synchronization rate cooperative and server programs has its Cooperatively scheduled threads are useful • you want your software to gain the advantages, the simplest and most straightfor- when you’d like to provide multiple paths of switching efficiency delivered by cooperatively ward way to thread an application is to create execution within a single task. Cooperatively scheduled threads additional tasks in a cooperative program. scheduled threads, created with the program- Program Control Over Thread Execu- From its main task, a cooperative program can ming interface defined by the Cooperative tion. Unlike preemptively scheduled tasks, start additional tasks to off-load work that which the microkernel can interrupt at any doesn’t involve the user interface. By letting time and cause to execute in any order, coop- the main task manage the program’s user eratively scheduled threads are executed interface and using other tasks to perform A task with cooperatively under the control of the program using them. time-consuming data processing or I/O oper- scheduled threads Within a program, in other words, one cooper- ations in the background, an application can atively scheduled thread cannot interrupt perform more efficiently and offer greater another thread. Instead, cooperatively sched- productivity to the user; by placing multime- User interface uled threads explicitly yield control to each dia operations in a separate real-time task, an task another at points defined by you. application can perform time-critical multi- Simplified Synchronization. Coopera- media operations without interruption. For User Program tively scheduled threads simplify data synchro- example, a multimedia authoring program Input output nization. Whereas multiple tasks sharing data can use the main task to interact with the thread thread must use synchronization mechanisms to user and another task to capture and save access that data safely, you don’t need to video data in real time or to perform real- employ these mechanisms when using coop- time sound playback. The figure on page 20 eratively scheduled threads. Because a task’s illustrates a cooperative program that incor- cooperatively scheduled threads cannot pre- porates two tasks. empt one another, access to the data they Whereas the main task is cooperatively share is automatically serialized. You simply scheduled against the main tasks of all other Thread Manager, are invoked from tasks. need to ensure that each cooperatively sched- cooperative programs in the system, all addi- Cooperatively scheduled threads can be uled thread yields control only after making tional tasks created within a cooperative pro- scheduled for execution only when the task changes to data shared with another coopera- gram are preemptively scheduled with all that created them is running. These types of tively scheduled thread. other eligible tasks in the system. For this rea- threads are said to be cooperative because Efficient Switching. Because coopera- son, time-intensive I/O, computationally inten- they yield control to one another at program- tively scheduled threads are called from a task, sive data processing, and critical real-time matically defined times. This prevents one the microkernel doesn’t perform a context operations make the best use of the CPU cooperatively scheduled thread from being switch whenever a task switches between when they’re placed in tasks other than the preempted by any other thread within the them. A task is therefore slightly more efficient main task. same task. at switching between cooperatively scheduled Because the part editors within an Open- The main task of a cooperative program threads than the microkernel is at switching Doc document handle user interaction, they can call the Mac OS 8 cooperative services between preemptively scheduled tasks. use cooperative services. For an OpenDoc from any of its cooperatively scheduled document, the main task incorporates the threads. As illustrated in the figure on this Multiprocessor Support document’s constituent part editors, and this page, a cooperative program—such as a labo- Mac OS 8 also provides support for multi- main task is cooperatively scheduled like the ratory control application—can use one coop- processor computers. A multiprocessor com- main task for any other cooperative program. eratively scheduled thread to present a win- puter has more than one processor to execute However, you can also create additional tasks dow for user input and another thread to instructions. For example, the Genesis MP from an OpenDoc part and, like any additional present a window for program output. A user computer from DayStar Digital is a Mac tasks created for a cooperative program, these of this program could then instantly view data OS–compatible computer that includes four tasks must use only the reentrant services. returned from laboratory instruments in one PowerPC processors for simultaneously run- It is often necessary for tasks within the window while controlling the instruments ning parallel threads of execution. The Gene- same process to share information. To ensure from another window. sis MP platform is an example of an asymmet- the integrity of this information, tasks should Cooperatively scheduled threads can call ric multiprocessor (AMP) system. On an AMP synchronize their access to it. Compared to cooperative services only from the main task system, one processor—the master proces- data sharing between tasks in separate pro- of a cooperative program. Even when imple- sor—executes all operating-system–related grams, data sharing between tasks in the same mented in background tasks, cooperatively operations, such as making scheduling deci- program requires less overhead. (Mac OS 8 scheduled threads are useful if sions and performing I/O. All other proces- interprocess communication and synchroniza- • you want to gain explicit control over the sors—called slave processors—perform opera- tion mechanisms are discussed later in this time when threads yield execution control to tions allocated to them by the master article.) one another processor. To take advantage of the Genesis

JUNE 1996 22 Technology AppleDirections

MP platform, a program must explicitly call its The microkernel provides various services turn, could return this information to the programming interface to schedule threads that allow tasks to synchronize their opera- home finance application in an . for execution on its slave processors. tions in this way. Different tasks for the same program can (For the Genesis MP platform, DayStar Dig- share information in this manner. ital and Apple collaborated to define a System Apple Events • Synchronization between tasks. A task 7.5 programming interface allowing you to Apple events are the most pervasive form of performing network I/O, for example, might thread your programs. Applications using this interprocess communication in Mac OS 8. An send an Apple event to another task informing programming interface remain compatible Apple event is a data structure used chiefly for it that a file has been successfully sent across a with Mac OS 8.) sending information or instructions to a task. network. The Mac OS 8 microkernel is designed to An Apple event contains a flexible hierarchy of provide symmetric multiprocessor (SMP) additional data structures. This flexible hierar- Mac OS 8 fully supports the programming support as well as AMP support. On an SMP chy allows data to be shared between tasks at interfaces defined by the System 7 Apple Event system, each processor executes its own copy various levels of detail. For example, a meeting Manager. Mac OS 8 supports System 7 high-level of the operating system and communicates proposal can be sent across the network in an events, but only the main tasks of cooperative with the other processors as needed. Apple event targeting a day, hour, or range of programs can send high-level events other than Although the first release of Mac OS 8 doesn’t minutes within a user’s . Apple events. Main tasks for cooperative pro- support an SMP implementation, Apple Apple events were introduced in System 7 grams can also use the PPCBrowser mechanism intends for future versions of the operating so that applications could share services and and the PPC Toolbox functions, but all other system to provide this support. You won’t information with each other. In System 7, tasks can use only the PPC Toolbox functions. need to perform any special programming to only applications could use Apple events; Apple events are faster and more flexible than take advantage of future SMP systems; other types of software, such as device dri- other high-level events or the PPC Toolbox ser- instead, the operating system will automati- vers, could not. In Mac OS 8, all types of soft- vices, which Mac OS 8 supplies only for System cally schedule multiple tasks to execute ware can use Apple events. Communication 7 application compatibility. simultaneously on all available processors. can take place between tasks in the same process or in different processes, in the same Low-Level Interprocess Communication Interprocess Communication and address space or in different address spaces, In addition to Apple events, you can use Data Synchronization on one computer or on connected comput- shared data, shared memory areas, and the In a multitasking environment, it is necessary ers. An OpenDoc part can also use Apple Microkernel Messaging Service (which trans- for tasks to communicate. Tasks cannot move events to communicate with other parts and ports data between tasks) for interprocess between processes. However, tasks using the with tasks in any address space. An Apple communication. Apple events are sort of the interprocess communication mechanisms event contains the identification of its desti- lingua franca of Mac OS 8, permitting the provided by Mac OS 8 can pass information to nation, and the operating system delivers the operating system, programs, and scripts to each other, even across different address Apple event to that destination. communicate with each other locally and spaces. A calendar application, for example, Some of these uses of Apple events in the across networks according to a well- might consist of a cooperative program and a Mac OS 8 platform include the following: established messaging protocol. By compari- server program that share data. The coopera- • Event notification. Apple events are the son, shared data, shared memory areas, and tive program might allow the user to view and chief means by which the operating system the Microkernel Messaging Service require maintain a personal datebook. The server pro- informs programs about user and system activ- you to establish and follow your own conven- gram might handle meeting proposals submit- ity. For example, when the user chooses a tions for using these low-level forms of inter- ted by colleagues at network-connected com- command from an application’s menu, the process communication. puters. When it receives a meeting proposal, operating system sends an Apple event to the Shared Data. Shared data is available to the server program passes this information to application; this Apple event contains all the multiple tasks in the same process. As the cooperative program for display in the information the application needs to begin explained in Part 1 of this article, different user’s datebook. responding to the user action. tasks for the same program share the same Tasks sharing the same set of data must • Scriptable automation. Programs that memory areas for dynamic storage allocation. synchronize changes to the data. When the respond to Apple events can be controlled and Tasks can store shared data in these memory user of the networked calendar application automated by means of scripts created with areas. Two tasks in the same process, for schedules an appointment, for example, a scripting languages such as AppleScript. Using example, can share a single set of global vari- task for the cooperative program must indi- the assistance services of Mac OS 8, for example, ables for communication and synchronization cate that it’s updating the user’s calendar. If a scriptable program can automate complex or purposes. a colleague on the network simultaneously seldom-used operations for the user. Shared Memory Areas. A task can create a schedules an appointment with the user, a • Data sharing between programs and shared memory area to share its data with a task task for the server program must check for within a program. A home finance application in another address space. If programs in different this indication and, upon finding it, block its might use an Apple event to request that a address spaces share a large amount of data, own execution. To resume execution, the communications program obtain current stock especially when that data is continually updated, blocked task needs to know when the other market information from an online service a shared memory area is likely to be a more effi- task is finished updating the user’s calendar. provider. The communications program, in cient mechanism than Apple events for distribut-

JUNE 1996 AppleDirections Technology 23 ing that data among tasks. A shared memory area observe synchronization conventions. For Atomic Operations. An atomic operation can begin at the same address in various address example, if one task holds a lock to particular is a simple routine—such as one that incre- spaces (which is useful if the tasks sharing the data, another task must not modify the data ments or decrements a value, tests and sets a data refer to it by pointers), or it can reside at until it has acquired the lock. (Locks and value, or compares and swaps values—that different addresses. A shared memory area can other synchronization mechanisms are executes to completion; it cannot be inter- have different access permissions in different described below.) rupted. In Mac OS 8, these operations are address spaces; for example, a program might Locks. A lock is a data structure used to implemented using instructions provided by write data into a shared memory area in its own synchronize access to a shared resource such the CPU. address space but make the data read-only to as the contents of memory locations. Only Event Groups. An event group consists of programs in other address spaces, preventing the task holding a lock is allowed to modify bits that can be set individually or in different other programs from corrupting the data. the data associated with the lock. A simple combinations and used to signal client tasks. Microkernel Messaging Service. The lock prevents other tasks from acquiring the You can use atomic operations and event Microkernel Messaging Service provides the lock until the task holding it has released it. A groups to implement your own sychronization underlying structure for Apple events. If for read/write lock allows one or more tasks to mechanisms. The microkernel, for example, some reason you can’t (or prefer not to) use acquire the lock for the purpose of simulta- uses event groups to implement locks. Apple events, the Microkernel Messaging Ser- neously reading data, but this type of lock vice is available for transporting data from one allows no more than one task to modify the Summary task to another, in the same process or in differ- data at a time. A multithreaded application helps the user be ent processes, in the same address space or in Microkernel Queues. A microkernel more productive. For example, by performing different address spaces. The messaging service queue can be used as a synchronization user interface operations in one thread of exe- allows bidirectional data transfer so that data mechanism or a very simple interprocess cution and time-consuming network I/O oper- can be part of a message, and additional data communication mechanism. One or more ations in another thread of execution, a multi- can be returned in the reply. It’s up to you to tasks use a microkernel queue to notify threaded application enables the user to establish your own conventions for interpreting another task of some occurrence—for continue working with the application without the information exchanged with this service. instance, the completion of an asynchronous waiting for lengthy network operations to operation. The task being notified examines complete. Data Synchronization Among Tasks the microkernel queue for the notification; Multithreaded applications use inter- Two or more tasks sharing information must this task may, for example, block until the process communication to share information. synchronize their access to that data. Other- notification appears. A microkernel queue For example, one task for a statistical simula- wise, two tasks independently making can hold multiple notifications. tion program could perform a time-consum- changes to the same data might corrupt its Communication with this mechanism takes ing calculation in the background. When fin- integrity. Mac OS 8 offers synchronization place in one direction only; that is, the tasks ished with this calculation, the task could send mechanisms to protect the data shared writing to a microkernel queue don’t receive its result in an Apple event to the main task of among tasks. replies from the task reading the queue. the program. ♣ Remember that cooperatively scheduled System Notification Service. The Sys- threads don’t need to use these synchroniza- tem Notification Service allows one task to Tony Francis has been a technical writer in tion mechanisms, because one cooperatively broadcast information about a change in the Apple’s Developer Press group for ten years. scheduled thread can’t be preempted by state of the system. Any number of other tasks He has contributed to numerous books in the another thread within the same task. You can subscribe to its notifications. For example, Inside Macintosh series and was lead writer simply need to ensure that each cooperative- the for a display screen can use for Inside Macintosh: Imaging With Quick- ly scheduled thread yields control only after the System Notification Service to announce Draw, Inside Macintosh: Devices, and it makes changes to any data shared by other that the user has changed screen resolutions Advanced Color Imaging on the Mac OS. The threads. or bit depth. Programs relying on the resolu- book Mac OS 8 Revealed, from which this arti- For these synchronization mechanisms to tion or color capabilities of the device can cle was adapted, will be published by Apple safely protect program data, a program must then take action based on the notification. Press and Addison-Wesley Longman in the third quarter of 1996 (352 pages and CD- ROM: ISBN 0-201-47955-9; $34.95). You’ll be Planning a Product for Mac OS 8 able to find it in most good technical book- stores, or you can reserve your copy from You can take the following steps now to prepare your software for multithreading: Addison-Wesley by calling 800-822-6339 (from 1. Consider whether your program consumes very much processing time when it’s not interact- the United States) or by sending a fax to 617- ing with the user. If it does, separate your code into components that perform user interface 942-2829 (from other locations). Mac OS 8 tasks, computations, and I/O operations. You can then implement these components more Revealed © 1996 Apple Computer, Inc. easily as separate threads of execution in a multithreaded program. Reprinted by permission of Addison-Wesley. 2. Make your existing application AppleScript-scriptable. This will prepare your application to use Apple events for interprocess communication.

JUNE 1996 24 Technology AppleDirections Issue 26 Magazines category, develop won not only the print if you’ve subscribed to develop through highest-level award, Distinguished Technical the Apple Developer Catalog. Please let us continued from page 16 Communication, but also Best of Category. It know what you think at [email protected] then went on to win a Merit award in the or AppleLink address DEVELOP; you’re the develop. And speaking of judging, we’re STC’s 1995–96 International Technical Publica- most important judges of all. ♣ pleased to announce that we’ve won top hon- tions Competition. Caroline Rose ors in the 1995 Northern California Technical You can check out develop on this month’s Editor, develop Communications competition held by the Developer CD, at the develop Web site Society for Technical Communication. In the (http//dev.info.apple.com/develop.html), or in

CD HIGHLIGHTS

Reference Library Edition QuickTime VR Tools 1.0b2 Recognition and the API and Tool- continued from page 16 These QuickTime VR tools help you create box it embodies. Input from early adopters of QuickTime VR content. They are beta-level Apple’s speech recognition technology has development of device drivers, including and unsupported by Apple DTS. Source code greatly improved the Speech Recognition Open Firmware requirements. Part III docu- for the tools is available in the folder QTVR Manager API, and version 1.5 contains many ments the AppleTalk API. Part IV provides the Beta-Level Tools Source. features that were not available in version manual pages (“man pages”) for Apple-specific The application Make QTVR Object takes a 1.4.1 or earlier versions of the extension. AIX commands. There is an appendix noting QuickTime movie whose frames are If you find bugs in the extension or prob- the differences between various keyboard photographs or views of an object, and com- lems in the documentation, please use the layouts. bines them into a single QuickTime VR object. Apple Bug Reporter stack. Include the version This guide is to be used in conjunction The application Make QTVR Panorama takes a information in your problem description and with AIX developer guides from IBM. You can PICT file generated by a graphics program or a send it to AppleLink address APPLE.BUGS or find information on how to obtain the IBM scanned wide-angle or panoramic photograph, Internet address apple.bugs@applelink AIX developer guides and tools on IBM’s Web and converts the PICT into a QuickTime VR .apple.com. site (http://www.ibm.com) or by contacting an panorama. IBM representative. For specific information The QuickTime VR tools make it easy for WASTE 1.2a6 on relevant IBM AIX guides, see the beginning users of computer graphics programs to cre- WASTE is a text-editing library for Macintosh of each section of the Developer’s Reference ate QuickTime VR content. The tools also help programmers. Designed to be a viable replace- Guide for the Apple Network Server. photographers convert photographs of an ment for TextEdit, it offers several enhance- Note: This document is to be used as a ref- object into a QuickTime VR object, and to ments, including the ability to handle text files erence when you develop products for AIX for convert wide-angle or panoramic photos into larger than 32K. Like TextEdit, WASTE handles the Apple Network Server. It only describes a QuickTime VR panorama. multistyled text and relies on Script Manager the differences between AIX for the Apple However, the tools do not support stitching services for drawing, measuring, and hit-test- Network Server and IBM’s AIX; it is not intend- of photos, the creation of “hot spots” on ing the text, and for finding word and line ed to fully document AIX. panoramas, or the combination of panoramas, breaks. The built-in support for inline input objects, or both into multiple-node movies. makes WASTE fully compliant with World- QDGX Spooler Patch 1.0.2 Use the QTVR 1.0 Authoring Tools Suite (avail- Script II; however, WASTE does not support The QuickDraw GX Print Spooler Patch fixes a able in the Apple Developer Catalog) for these bidirectional scripts, such as Arabic. problem that occurs when you try to print to purposes. Note: This is not an Apple product. It is AppleShare and Novell NetWare print spool- provided on an “as is” basis. Apple Computer, ers. This patch makes changes to the Quick- Speech Recognition Manager Inc., is not responsible for any problems you Draw GX extension and the LaserWriter GX This folder contains version 1.5 of Apple’s new may encounter in its use. printer driver. You should work with copies of Speech Recognition Manager. Version 1.5 of the GX extension and GX driver, and then the Speech Recognition extension embodies Alex Dosher move the modified files into your system’s the first officially supported developer release Developer CD Leader Extensions folder. of the Speech Recognition Manager. QDGX Spooler Patch 1.0.2 replaces previ- The documentation included with this ous spooler patches and fixes a problem that release is the draft Speech Recognition Man- prevented users from patching certain local- ager, an Adobe™ Acrobat™ file found in the ized versions of QuickDraw GX. SR 1.5 Documentation folder. The documenta- tion describes version 1.5 of the Speech

JUNE 1996 AppleDirections Feature: Former Microsoft marketing manager Cathy Harris tells you about product strategies she learned during her years working on Microsoft’s PowerPoint product. Learn some useful techniques Business from the market leader.

Microsoft Under the Microscope—Learning From the Market Leader

By Cathy Harris, President, Philippe Kahn from Borland, or Ray Norda tant, it benefits our users. Because of this com- A Bit Better Corporation from Novell, or Jim Manzi, the ex-CEO of petition, our users get better products, lower Lotus. One of the ways Microsoft got to the prices, and a wider variety of products to When people think of Microsoft, many things top was by systematically going after each choose from. The key is to use your competi- come to mind—power, Bill, slaves, and arro- competitor in their path, then beating them. tion as a motivator to help your team create gance—and of course there are those compar- But before you buy a Bill Gates dart better products and marketing plans. isons to the Evil Empire and Star Trek’s Borg. board, consider this: This period was not Like it or not, Apple and many Macintosh (It’s with sadness that I note the lack of cre- only good for Microsoft—it was good for cus- developers are playing catch-up today. And ativity in such comparisons; a recent refresh- tomers too. Users of Microsoft Word, Excel, since nobody plays this game better than ing exception compared Microsoft to a refrig- and PowerPoint all benefited enormously Microsoft, let’s check out a few strategies in erator’s crisper drawer: It promises crispy from those products being honed against their play book to see what we can learn. goodies but delivers mushy goo.) But after a extremely fine competitors. More recently, cathartic round of Microsoft bashing, saner Microsoft has found themselves bereft of Lesson #1: Follow the Data folks usually come around to admitting that competition in several key categories, and There’s an old political adage that says the there are a few aspects of the company that many would argue that their recent releases only way to fully understand an opponent’s are downright admirable. After all, Microsoft’s are not the better for it. affiliations and motivation, is to “follow the profitability, market share, marketing prowess, The bottom line is that competition is good money.” Applying this wisdom to software and management team are among the best in for everyone. It brings out the best in develop- development, in order to fully understand the world. ment teams, it challenges us to take more the motive behind a potential customer’s pur- I’ve noticed that many software developers risks, it expands markets, and, most impor- chase decision, you need to “follow the data.” are quick to point out how they’re different from Microsoft. Some even use those differ- ences to fortify enmity against Microsoft. But as the industry matures and consolidates, it’s Some Product Strategies That Work critical for developers to put Microsoft under Here are some product strategies that helped make Microsoft PowerPoint the best-selling graph- the microscope and ask, “What can we learn ics product in the world. from these guys?” • Follow the data. Before you create a product specification, gather hard market data on cus- In this article I share some product strate- tomer demographics, purchasing patterns, usage, and all the factors that drive purchase deci- gies that I used while working on the Power- sions. Don’t discount the importance of Information Systems (IS) groups and external opinions in Point presentation software team at Microsoft. these decisions. I wouldn’t go so far as to say it’s the “gospel • Adopt the dual-platform religion. Having consistent product versions for both the Macintosh according to Microsoft,” but it’s some general and Windows platform is becoming a more important purchasing criterion for medium to large advice that can be effectively used by any soft- businesses. It’s no coincidence that software companies with the highest degree of compatibility ware company to create better, more also bring in the best profits. profitable products. • Dissect the competition. Don’t skimp on competitive evaluation. Get everyone on your prod- uct team involved with hands-on analysis of your competitors. In Praise of Competition • Sacrifice for market share. Make sure your company has a consistent metric for measuring With Microsoft in its current top-dog posi- your product’s success with respect to its competitors. In this maturing software market, increas- tion, it’s easy to forget that the game they ing your market share is key, so do anything you can—including sacrificing short-term profits— play the best is “catch-up.” Ask those who’ve to gain additional share points. seen Microsoft in their rear view mirror—ask

JUNE 1996 26 Business AppleDirections

Classic Microsoft marketing involves a good • How do your customers interact with have heard of several different packages, but amount of customer research, both formal others? chances are, I won’t buy anything until I’ve and informal. Microsoft product marketing • Do they share files? talked to a few key people that are affected people know that they have to understand not • What happens to the files that a person by my decision. Ultimately, I’ll probably only customer demographics, purchasing pat- creates? choose Quicken because that’s the product terns, and usage, but also the factors that drive • Who else uses them? my accountant uses. If I buy Quicken, I can purchase decisions. By assuming you under- • What sources of information do these give electronic files to my accountant, who stand a user’s purchase criteria without back- customers draw from? can then do my taxes more efficiently. Or ing it up with real data, you may lead your maybe I’ll choose it because that’s the same company down the wrong path, creating prod- One useful technique is to create a product that my ad hoc technical support ucts with major deficiencies. chart that details your target customers’ work friend uses. The point is, more often than Start by thoroughly analyzing your users’ environments and diagrams the flow of data your customers consciously realize, they behavior. Let’s say you’re working on a through their work community. This diagram choose products based on factors beyond a stenography product that will help court provides a key starting place for identifying feature list. reporters and legal secretaries work more product compatibility issues. In large corporations, products are often efficiently. But what does knowing your The next phase is to clearly understand purchased through IS or other corporate pur- users’ titles tell you about the purchase deci- who makes the purchase decisions and why. chasing groups. While you may not like this sion? Not very much. To effectively plan your Most users will say that they made the pur- model, it’s foolish to ignore the power and strategy, you need to fully immerse yourself chase decision, while in fact, what they really sales potential of these groups. in the flow of data in and out of your users’ made was the decision to spend the money at Try creating another flow chart, this time lives. Here are some essential questions that a given time. It’s likely that part of the decision charting your users’ work environment and should be answered: of which product to buy was made by some- information flow from the perspective of an IS • What other products do your potential one or something else. person. Include factors such as user product customers use? For the sake of this argument, suppose I training, support, file compatibility, previous • What types of people do they work with? decide to buy a home finance product. I may file migration/translation issues, and so on.

Data Flow Diagram for Legal Secretary

Paper Documents to Clients Creating a data flow chart for your target customers can help you better understand their complex product requirements. In Paralegal this example, you can see how the product Win-based Win 3.1, Word 6 Electronic needs of legal secretaries are heavily influ- Presentations enced by external factors.

Paper Lawyer Docs Win 95, Word 7 to Clients Contracts, Legal Documents: • Revisions Mac-based • Make it look nice Electronic Lawyer • Check spelling Presentations PowerBook Word 5.1 • Add boilerplate • Put in corporate format • Prepare for client signature • File with proper authorities • Notarize Word outlines become presentations. Need Mac & Win versions. Sent via e-mail or server Legal Secretary Mac, Word 5.1 Court Reporter Proprietary raw text for Machine formatting

JUNE 1996 AppleDirections Business 27

By analyzing these two flow charts, you’ll lishing. Microsoft didn’t invent the concept of high value on having a consistent cross-plat- learn a tremendous amount about what types cross-platform compatibility, but they nearly form presentation solution for their respective of compatibility issues will become key pur- perfected this approach with their Excel and companies. After all, employees often need to chase factors. These are the silent factors that PowerPoint products. share slides, even if they own different types don’t show up on anyone’s list of “features we Good dual platform development requires of computers. PowerPoint fulfilled this need. need to have in your product.” Many of us an almost religious drive for consistency and Meanwhile, the Macintosh version of Power- have provided software that meets all the fea- compatibility. Consistent interface design is Point became the Windows-based version’s ture check-off points, only to be knocked out best weapon against PC market leaders, Har- of contention by a factor that wasn’t on the list vard Graphics and Lotus Freelance, since they at all. The factors mentioned above start to had no Macintosh versions. form the most important underlying criteria Commitment to cross-platform consistency behind purchase decisions. These are the fac- Commitment to is very difficult, but it’s mandatory for making tors your user community thinks are so obvi- world-class software. A high percentage of ous that they shouldn’t even have explain shared code is a necessary starting point, but them to you. Unfortunately, these are also cross-platform consistency dual-platform consistency has to extend to factors that often go unnoticed, because prod- every part of the product team: The two ver- uct managers “haven’t heard them come up as sions need to have one product specification, issues.” is very difficult, but it’s one schedule, one development team, one testing team, and one marketing team. All Lesson #2: Adopt the mandatory for making team members should be fluent in both prod- Dual-Platform Religion ucts—team members should have both The goal of the previous data flow analysis is machines and versions on their desks, and to understand where purchase dollars will world-class software. everyone should know both products equally come from, and why. For Macintosh develop- well. ers, the answers to these questions will most If you think this means a heck of a lot of likely lead you to an increased understanding training for people, you’re right. But the only of the role that Windows-based products way that developers will be able to come up have in your users’ lives. You may even find, the cornerstone: Macintosh and Windows with good cross-platform solutions is to as many companies (including Microsoft) versions should look and work the same, with understand the opportunities and limitations have, that the best thing you can do for your the only differences being the standard user of each approach. We all know that develop- Macintosh release is to create a good Windows interface elements of each platform. And ers don’t write good Macintosh applications version. when you’re faced with those laborious dis- until they’ve come to understand and It’s not a coincidence that the best-selling cussions on which keyboard to use, embrace Macintosh technology. Well, the Macintosh software products also have good go for consistency across platforms using the same goes for writing, developing, testing, Windows versions and excellent cross-plat- standard of your largest platform market. This and marketing good dual-platform products. form compatibility. It’s a natural outgrowth makes for hard choices and long emotional These are methods that Microsoft used to of the fact that every Macintosh product’s discussions, but it leads to better sales and ship excellent dual-platform versions of Excel main competitor is a Windows-based prod- more economical development. and PowerPoint. uct. People evaluating software decisions Here’s a case in point: Compare the histo- Another important requirement of good don’t have the luxury of supporting two ries of Microsoft PowerPoint and Aldus Persua- dual-platform development is “sweating the incompatible product standards. If Macin- sion. Persuasion, a more full-featured product details,” and there sure are lots of them. tosh products remain islands of incompati- than PowerPoint, developed a Windows-based Fonts, for example, can cause a world of trou- bility, they’ll be forced into extinction. But if version with a totally different menu structure, ble. What happens to your nicely formatted there are good dual-platform solutions avail- different keystrokes, and radically different file document that uses the “Penguin Bold” font able, then Macintosh communities will be formats than its Macintosh peer. The only sim- when you translate it to a Penguin-free envi- allowed to survive. Then, as IS groups realize ilarities between these versions were the name ronment? Does the system make reasonable the cost-effectiveness of Macintosh adminis- and the feature set. substitutions? Is it easy to globally replace tration, repair, and training, Macintosh instal- PowerPoint, on the other hand, was a prod- fonts? Do you ship a compatible set of fonts lations will expand. uct with fewer features, but there were more across both platforms? Fonts, color specifica- Today, companies like Adobe, Claris, and similarities between the two versions: identical tions, picture translations, file translations, Intuit are the ones scoring the highest com- menus, file formats, keyboard shortcuts, fonts, and version compatibility are the stuff that patibility marks and, not coincidentally, reap- and so on. Macintosh PowerPoint market customer’s nightmares are made of. Make ing greater profits. These companies wisely share grew rapidly, despite Persuasion’s fea- sure that you have a few extremely detail- took a good look at Microsoft’s approach, ture superiority, primarily because PowerPoint oriented people ferreting out these issues which at the time was using cross-platform was the best cross-platform solution in town. and providing you with good solutions to compatibility as the key competitive hammer The IS folks—the people who control the pre- these hard problems. against Lotus, WordPerfect, and Software Pub- sentation software purse strings—placed a

JUNE 1996 28 Business AppleDirections

Lesson #3: Dissect the Competition installation time, how much memory the by the marketing department, you’ll design a By the time you’ve identified the forces that product consumes, and system require- much better product if the entire develop- influence product purchases, you probably ments. Then spend the rest of your time ment team is involved. Don’t be stingy in buy- have a pretty good idea of what your competi- actually using the product to solve a real ing copies of your competitor’s software for tion is. Obvious competitors are those that do problem, all the while watching for good your programmers, testers, or program man- similar things on similar platforms—Microsoft ideas. Every place where the product has agers. Competition is everyone’s business. Works versus ClarisWorks, for example. It’s taken a different approach from that of your Programmers will learn things in their investi- usually pretty easy to identify these prod- product, ask yourself, “Why was it done this gation that the marketing folks won’t, and vice ucts, although sometimes you can fall into way?” Does the product make different versa. The important thing is to understand the trap of denying that you have any com- assumptions about the users than you do? why your competition chose to be different, petition at all, because your product repre- What is valuable about this way of thinking? and what that difference in thinking can mean sents “a new category” of products. Even if Jot down only the things that you think are to you and, most important, to your that’s true, people were using something to valuable. Don’t spend time writing competi- customers. solve this problem before, and that some- tive bullet points just yet. thing is your competition. Next, spend two to three hours with the Lesson #4: Sacrifice for It’s important to look for less obvious minor competitors, again, looking for good Market Share competitors. There are typically products or ideas and differences of opinion. Remember A common weakness that I see in many soft- services that solve the same user problem as that these products all represent the efforts of ware companies is a lack of consistency in your product. Remember the classic mistake a group of intelligent people who thought quantifying their status with respect to their made by railroad companies, who believed about the same problems you did, and—for competition. People determine market leader- that their only competitors were other rail- whatever reasons—came up with different ship in different ways, but Microsoft doesn’t. roads; they forgot that transportation was answers. There are very valuable things to According to Microsoft, leadership is defined their real business, and they were learn from their hard work, and it’s extremely by market share, and market share is more subsequently clobbered by the trucking rare that a product is so bad that it has noth- valuable than anything else, because it’s the industry. These products may provide cus- ing to recommend it. For each product, write definitive voice of the customers. tomers with partial, impractical, or bad solu- down three advantages and disadvantages to Business decisions become simpler with tions, but take a good, hard look at them the product approach. this market share leadership clearly articulated nonetheless. The team, for Then, spend at least two weeks using as the objective. At Microsoft, product success example, should take a good look at Claris- each serious competition product for every- is measured by market share, and anything Works. thing. If it’s a drawing product, use it to do you can do to increase your share is a good Where should you look? First look at prod- drawings, as well as status reports, sched- idea. If you can sacrifice short term profits for ucts on other platforms. Windows is an obvi- ules, memos, and anything else you can market share, then do it. If you have to canni- ous one, but also check out UNIX tools, partic- think of. While these documents may not all balize one of your own products to increase ularly if you’re a producer of high-end represent the types of things the product market share, then do it. graphics tools. Then look to completely differ- was designed to do, the mere exercise of Thorough user research, good dual plat- ent paradigms. For example, will phone com- using the product will expose you to its fea- form execution, and a targeted analysis of your pany services eventually replace your nifty tures and capabilities in a way that a struc- competitors will place you in an excellent mar- new networking product? tured analysis wouldn’t. As you use this prod- ket position, even before your first product Last but not least, it’s important to remem- uct, learn it as you would if you’d just spent goes out the door. And by following this ber that if you have any installed base at all, you $600 out of your own pocket. Learn the advice, you’ll be well on your way to giving are your own competition. This means that your shortcuts. Go to the competitor’s Web site to your competitors a run for their market share. new product has to provide “more user value” find their tips and tricks. Find out all the Next, you’ll need a specific plan of whose mar- than your existing product. Last year the Macin- cool things you can about it. Learn to love it. ket share you want, and how you’re going to tosh community reminded the Microsoft Word After a few weeks, you should have a thor- get it, but that’s a topic for another day. ♣ team that they do indeed have competition in ough understanding of the differences the form of Word 5.1. And, as software between your product and your competi- Cathy Harris ([email protected]) is presi- categories reach maturity (word processing is tors’, so you can create a thorough feature dent of A Bit Better Corporation, makers of an excellent example), it becomes increasingly comparison matrix and advantages/disadvan- Screen Beans clip art characters (http://www difficult to get your user base to upgrade. tages document. Now you’re ready to sort .bitbetter.com). Previously, Harris worked at Once you’ve identified competitors, you the good from the bad ideas. Then think Microsoft for six years as the manager of need to sort them out. Divide them into three about how you can improve upon them. Get product planning for Microsoft’s graphics groups: serious competitors, minor competi- the entire product team together to demon- business unit in California. tors, and insignificant competitors. Now strate all the cool competitor features; this you’re going to dive into some serious com- tactic gets your team’s creative and competi- petitive analysis. tive juices flowing. First, spend at least 30 to 60 minutes try- While many companies feel that this type of ing out each insignificant competitor. Record competitive analysis should be done exclusively

JUNE 1996 Directions Apple Developer University Schedule Apple Internet Page Listings Internet Resources for This Issue

IT SHIPPED!

The following 140 Macintosh products were entered into the It Shipped! computing solutions; it’s also broadcast to key industry publications. For database between March 15 and April 15, 1996. Congratulations to all of more information about the It Shipped! program visit the It Shipped Web you with new shipping products! Approximately 340 have been entered into Page at (http://dev.info.apple.com/itshipped.html). the database since Apple reinstated the program in late 1995. Products To enter your Macintosh product in the database, you can obtain a form developed first for the Mac OS platform are designated with “MAC FIRST” from the site (http://dev.info.apple.com/thirdparty/submission.html). on the far right; products available only for Mac OS systems receive the You must also send a copy of the product to Apple at this address: designation “MAC ONLY.” Apple Computer, 1 Infinite Loop, M/S: 301-1ES, Cupertino, CA 95014, The It Shipped! database is used by Apple employees when they prepare USA. advertising, collateral, and white papers and when they help customers find

Company Product Company Product 4-Sight plc 4-Sight iSDN Manager MAC FIRST Deneba Software Spelling Coach Professional MAC FIRST 4-Sight plc 4-Sight iSDN Manager for Dunaway Products Signalize! RIP MAC FIRST Networks MAC FIRST Dunaway Products SmartPort MAC FIRST ACA Architecture & ARC+ Software for Architecture E-magine ProView Computers Aids Eagle Data Protection MACllock PRO MAC FIRST Active Imaging Snapper Series of Image Capture Boards EduPress Publishing Ultimate ClarisWorks Solutions 4.0 MAC FIRST Adaptec Corp. PowerDomain 2940UW MAC ONLY Enhance Cable Technology SoundJack Sr. and SoundJack Jr. MAC FIRST Adaptec Corp. PowerDomain 3940UW MAC ONLY Farallon Computing Timbuktu Pro for Macintosh 2.0 MAC FIRST AG Group NetMeter MAC ONLY FCR Software FCRppp for Mac OS MAC FIRST AKTIV Software Corp. Duppies Gallery Software DATStudio Pro Attain Corporation IN CONTROL MAC FIRST Griffin Technology 60 Hz Adapter AWOL Software Productions AWOL Utilities Griffin Technology II Series Adapter BDW Software Digital Ditto MAC ONLY Griffin Technology Mac Res Adapter BDW Software Remote Control for Macs MAC ONLY Griffin Technology Mac Sync Adapter C4SI C4SI SD MAC FIRST Griffin Technology Mac/PC Adapter Capilano Computing DesignWorks MAC FIRST Harmonix Limited Primary Rate ISDN PCI Card MAC FIRST Systems Haywood & Sullivan Sullivan’s Scanning Tips & Techniques on CD-ROM Celestin Company Apprentice Highware DiskGuard Chancery Software CSL Curriculum Orchestrator MAC ONLY Highware DiskGuard Remote CheckMark Software CheckMark Payroll MAC FIRST Highware DiskGuard Remote CheckMark Software MultiLedger MAC ONLY Highware FileGuard Chris W. Johnson Chris’ Puzzle Highware MultiHome Color Partnership Color Synergy 1.2 Highware Personal Backup Corporate Solutions FileMaker Pro 3.0, Part 1 MAC FIRST Highware PopupFolder Corporate Solutions Internet Essentials MAC FIRST Intelligent Technologies IntelliBots MAC FIRST Corporate Solutions MacManagement, System 7.5 Interstudio Domus.Cad 9.0 MAC ONLY Cross Culture Limited Qickworks MAC FIRST Iverson Software Collection of 99 XCMDs and XFCNs Cross Culture Limited Stock Keeper MAC FIRST James Renken Software Useless Dantz Development Corp. DiskFit Direct MAC ONLY Jim Henson Products Muppet Math MAC ONLY Dantz Development Corp. DiskFit Pro and Sunburst Deneba Software Deneba artWORKS MAC ONLY Jim Henson Products The Lost Treasures of Zabidonia MAC ONLY Deneba Software The BigThesaurus MAC ONLY and Sunburst Deneba Software UltraPaint MAC ONLY Jones Digital Century Charlton Heston’s Voyage MAC FIRST Deneba Software Canvas MAC FIRST through the Bible - New

JUNE 1996 30 Listings AppleDirections Company Product Company Product Jones Digital Century Charlton Heston’s Voyage MAC FIRST Plastic Thought 3d-Active.com Vol. 1 MAC FIRST through the Bible - Old Ra Data as InfoPress Jones Digital Century Jones Telecommunications MAC FIRST Ray Sauers Associates DragInstall 2.0 and Multimedia Encyclopedia Seapine Software TestTrack Kachi!Soft Corp. KACHI!Project Manager Smith Analytics Safety Engineering Assistant Lari Software LightningDraw GX MAC FIRST Softron Media Services FrameDisplay LifeLong Software, LifeLong Universe MAC FIRST Softron Media Services GPICommander Literate Software Systems Across Lite Softron Media Services OnTheAir Studio MAC ONLY LizardTech Planet Color 1.5.8 Softron Media Services TVScheduler Logitech Cordless MouseMan for Macintosh Sonic Desktop Software SmartSound For Multimedia MAC FIRST Logitech TrackMan Live! for Macintosh SPARROW Corp. Kmax Logitech TrackMan Marble for Macintosh Specular International Specular BackBurner MacinStuff The online MacinStuff Times Spider Island Software TeleFinder v5 MAC FIRST Main Event Scripter, the AppleScript MAC FIRST STAZ Software Publisher Construction Set STAZ Software FutureBASIC II Mark/Space Softworks Communicate Lite Stone House Systems GoChart Mark/Space Softworks Mark/Space PC-ANSI Tool Sunburst Mr. Murphy’s Chowder MAC ONLY Mark/Space Softworks Mark/Space Tool Sunburst Tiger’s Tales MAC ONLY Mark/Space Softworks Mark/Space ZMODEM Tool Symantec Corporation Suitcase MAC ONLY Mark/Space Softworks PageNOW! SYNEX Bar Code Pro MAC FIRST Maui Software TimeTracer SYNEX Label Press MAC ONLY Maui Software Yank SYNEX MacEnvelope MAC ONLY MegaWolf Fenris Multiport PCI System Clinic DTP603 Serial Expansion TeleType Digital Gourmet Deluxe MAC FIRST Micro Dynamics MARS/NT MAC FIRST TeleType Digital Gourmet for Newton FormMaker Software TeleType T-Script Microspot USA, Inc. 3D World TeleType TeleType GPS Misty City Software Grade Machine MAC FIRST Tenon Intersystems XTen MVP Solutions Retrieve It! 2.0 The Henry Starr Co. Font-o-rama! Natural Intelligence Roaster MAC ONLY Toothpick Software 1000Words NetLOCK NetLOCK for Macintosh Toothpick Software ExtraPlugs NetManage XoftWare for Mac OS Tri-millennium Technology GYPSY-2000 SCSI-to NetManage Chameleon for Mac OS Versatec Plotter Adapter with PacerTerm Water’s Edge Software SuperCDEFs NetManage WinSock SDK for Mac OS Water’s Edge Software Tools Plus NetWings NetWings Gateway System (NGS) White Pine Software eXodus 6.0 MAC FIRST Nisseb Dr. Jekel Wisdom Quest Multimedia eLibrary 96 Nisseb softwares SCDialFix XCMD Working Software Spellswell 7 version 2.0 Norman Franke SoundApp WriteWare Stealth Stylus Product Line OceanAtlas Software Power OceanAtlas MAC FIRST Xerox Corp. TextBridge Professional Edition Optima System PageSpinner Yamaha CDR 100 Oracle Corp Oracle Media Objects MAC FIRST Zedd Software Infinity Pilgrim New Media Her Heritage

JUNE 1996 AppleDirections Listings 31 DEVELOPER UNIVERSITY SCHEDULE

Developer University (DU) offers a broad range of Mac OS and Newton pro- gramming instruction through hands-on classes and self-paced training products. Classes are offered in Cupertino, California and through selected third-party trainers.

Advanced C++ Programmer’s Introduction to PowerPC 5 Days/$1000 Online Classroom July 22–26, Cupertino Programmer’s Introduction to RISC and PowerPC Self-Paced, Online Apple Events/AppleScript Programming 5 days/$1,000 Programming with MacApp Classroom, Self-Paced On demand—call DU Registrar for more information August 12–16, Cupertino Programming with QuickDraw GX Creating OpenDoc Parts 4 days/$1200 5 days/$1,500 On demand—call DU Registrar for more information Classroom June 24–28, Cupertino Programming with QuickDraw 3D July 15–19, Cupertino 3 days/$900 August 12–16, Cupertino Classroom September 16–20, Cupertino May 20–22, Cupertino July 22–24, Cupertino Intermediate Programming: 7.5 Topics September 9–11, Cupertino Self Paced

QuickStart Mac OS Programming Introduction to PowerPC 5 days/$1,500 Online Classroom Introduction to PowerTalk June 3–7, Cupertino Online July 8–12, Cupertino August 19–23, Cupertino Introduction to RISC Technology September 30 – October 4, Cupertino Online Scripting with AppleScript Macintosh Debugging Strategies & Techniques 2 days/$600 3 days/$900 Classroom Classroom June 10–11, Cupertino July 8–10, Cupertino July 22–23, Cupertino September 9–10, Cupertino Multimedia Development with QuickTime VR 3 days/$900 Classroom To register for a class or to get a complete course description by fax, call May 21–23, Cupertino the Developer University Registrar at 408-974-4897. June 18–20, Cupertino July 16–18, Cupertino Course descriptions can also be found electronically at the following August 13–15, Cupertino locations: September 17–19, Cupertino AppleLink—Developer Support:Developer Services:Apple Developer Newton Programming: Essentials 2.0 Services:Developer Information:Developer University 5 days/$1,500 Classroom Internet—http://dev.info.apple.com/du.html May 20–24, Cupertino June 17–21, Cupertino America Online—Computing:Computing Forums:Development:Mac Devel- July 22–26, Cupertino opment Q&A:Developer University. September 9–13, Cupertino

JUNE 1996 32 Listings AppleDirections APPLE INTERNET PAGE

This feature is devoted to informing you about where you can go on the Directions Web page (located at http://dev.info.apple.com/appledirections/ Internet for online information about Apple Computer, Inc.; its products, adtoc.html). There, all the names of the locations listed in this article are technologies, and programs; Mac OS and Newton programming; and other linked to the sites themselves; clicking the names will take you directly to subjects that pertain to the business of computer product development. It the relevant Internet locations. We’ll update this feature every month, based includes Internet resources from Apple Computer, as well as from other both on what Apple is doing on the Internet and on your feedback. companies and people. Apple sites are designated by an A ; we can’t guar- Know of a particularly useful Internet resource for Apple platform devel- antee the information in the non-Apple resources, but we think you’ll find opers? Whether it’s a Web page, a list server, an FTP site, or a newsgroup, them useful. The list is alphabetized according to the name of each Web site let us know about it and we’ll consider adding it to this feature next month. or other type of resource; new resources are indicated with this mark: NEW Send your suggestions to [email protected]. You’ll find this feature particularly helpful when you view it at the Apple

Always Apple A Apple Education A http://always.apple.com/ http://www.info.apple.com/education Developed by a group of Apple employees in their copious free time to Use online forms located at this site to request product specifications, give loyal Apple customers a place to congregate on the Web. The site information about the Apple Education Series (bundled products), and focuses on candid customer input, live chats, and good news about Apple. technical support from Apple engineers.

Ambrosia Cafe Apple Europe A http://www.ambrosiasw.com/cafe.html http://www.euro.apple.com/ Another “everything you want to know about the Macintosh” page. The front door for information about Apple activities—including developer services—in Europe. Apple Competitive Information A http://support.info.apple.com/competitive/competitive.html Apple Forever A Information comparing Mac OS computers favorably with (mostly) Win- http://www2.apple.com/appleforever/ dows 3.1–based machines. Regular updates about the company and special communications from Apple executives. Apple Computer A http://www.apple.com/ Apple FTP Sites A The Apple Computer home page. http://dev.info.apple.com/ftpmain.html ftp://ftp.info.euro.apple.com/Apple.Support.Area/Developer_Services Apple Developer Catalog A Go to these sites to download Apple software and documentation; the http://www.devcatalog.apple.com/ second site is a mirror site of the main location, maintained specifically for The Apple Developer Catalog is now online; check it out! It’s a great way to European developers. view and order development tools, technical resources, training products and information if you’re developing applications and solutions for Apple Apple International Developer Services and Products A platforms. http://dev.info.apple.com/intl.html Contains the current list of international Apple Developer Services loca- Apple Developer Services and Products A tions and . http://dev.info.apple.com/ The main page for Apple Computer’s developer services, including back Apple Internet Servers A issues of Apple Directions. http://www.apple.com/documents/otherappleservers.html Includes lists of other Apple Web sites as well as and FTP sites. Apple Developers Listing http://www.amsys.co.uk/applelinks.html Apple List Servers A to the Web pages of hundreds of Apple platform developers. The following are several pertinent Apple Internet mailing lists, and the addresses you can send messages to if you’d like to subscribe. For each Apple Directions Express List Server A one, type “subscribe ” in the body of the message you http://dev.info.apple.com/appledirections/adexpresscurrent.html send. Apple Directions Express is our biweekly e-mail digest of business news and information from Apple, sent to you over the Internet and posted at Apple Information Alley A this Web site. It includes pointers—live links at our Web site—to other [email protected] sources for more detailed information. Subscribe by sending e-mail to A adirections@ thing1.info.apple.com. In the subject field, type the string All Press Releases [email protected] “subscribe ”.

JUNE 1996 AppleDirections Listings 33

Apple List Servers (continued) Cult of Macintosh Software Updates A http://www.utu.fi/~jsirkia/mac/ [email protected] Another “everything Macintosh” compendium of information for Macin- tosh lovers. New Hardware A [email protected] DayStar Digital http://www.daystar.com/DayStarHome2.html Newton Press Releases A Contains information about DayStar’s PowerPC upgrade cards and [email protected] their newly released Mac OS–compatible Genesis MP media-publishing workstation. What’s New on Apple Developer Web Pages A [email protected] Development Tools A http://devtools.apple.com/ Apple Media Program A Listings of Apple and third-party development tools and a variety of techni- http://www.amp.apple.com cal documentation and white papers. Includes information about Apple’s multimedia technologies as well as a searchable database of multimedia developers. Digitool (Macintosh Common Lisp) http://www.digitool.com/ Apple Pacific A Contains information on the Macintosh Common Lisp (MCL) product line. http://www.info.apple.com/pacific/ Contains information about Apple offices and developer support in the Dr. Gilbert F. Amelio Pacific region, including Japan, Australia, and Latin America. http://www.natsemi.com:80/profit/gil.html The Web page of Apple’s new CEO and chairman. Apple Software Licensing A http://dev.info.apple.com/swl/swl.html NEW Electronic Publishing Risks Official information on whether you need a license from Apple and how to http://www.poulton.com/eo-why.htm#why obtain one. Free information about the legal and financial risks of online communica- tion, provided by Poulton Associates, which provides insurance and risk Apple Solution Professionals Network (ASPN) A management services for U.S. clients. http://support.info.apple.com/aboutapple/aspn.html Download the latest directory of consultants who specialize in Macintosh Gradient—DCE for the Macintosh solutions. http://www.gradient.com/ Contains information about Gradient’s Mac-DCE product, an implementa- Apple Tech Info Library A tion of OSF DCE Secure Core functionality for Macintosh clients. http://til.info.apple.com/til/til.html Apple’s official technical support database—updated daily—with over guideWorks 12,000 articles on all aspects of Apple products, past and present. http://www.guideworks.com/ The Apple Guide home-away-from-home page. “Ask Apple” Tech Support FAQs A http://support.info.apple.com/askapple.faqs/askapplehome.html Guy Kawasaki’s EvangeList List Server A Frequently asked questions about Apple systems, and their answers. All the good news about Apple platforms that Guy can find. For informa- tion on how to join, send an e-mail message to macway-request@solu- Brad’s WebSTAR/MacHTTP tions .apple.com for an automatic reply. (Any message will work.) http://www.ape.com/webstar/ A database of all the Macintosh computer-based Web sites that the owner Guy Kawasaki’s Semper.fi List Server A of this site can find—so far nearly 1,000 entries strong. A two-way list server that encourages communication between developers and Apple. We suggest you subscribe to the digest version; to do so, send CI Labs a message to [email protected]. In the body of the message, http://www.cilabs.org/ type “set semper.fi mail digest”. Provides a great deal of OpenDoc content. NEW Happy Puppy’s Macintosh Games Page Complete Conflict Compendium http://happypuppy.com/games/mac/ http://www.islandnet.com/~quill/c3data.html Go to this site to find something to do with all that free time you have (or A listing of all Macintosh computer software conflicts and cures known to to divert you from the work you’re trying to do). the site’s owners.

JUNE 1996 34 Listings AppleDirections Hartsook Letter Macintosh Speech Recognition http://www.hartsook.com http://www.vannevar.com/Mac_SR Excerpts from The Hartsook Letter, written by long-time Macintosh market As described by its owner, “a showcase for Mac speech recognition tips, analyst Pieter Hartsook. tricks, and software.”

It Shipped! A Macintosh Vendor Directory http://dev.info.apple.com/itshipped.html http://rever.nmsu.edu/elharo/faq/vendor.html The home page for the It Shipped! program. A directory of companies with products for the Macintosh computer.

Key Apple Developer Relations Contacts A MacintoshOS.com http://dev.info.apple.com/adrcontacts.html http://www.MacintoshOS.com Intended mostly for use when standard Apple feedback mechanisms aren’t A non-Apple site intended primarily for users, with news, , working. online discussions, and a particularly useful history of Macintosh comput- ers all the way back to the original system. Mac*Chat Newsletter http://www.cts.com/browse/xxltony Mac OS A An online newsletter directed primarily at Macintosh customers to help http://www.info.apple.com/macos/ them make the best use of their Macintosh systems. To subscribe, send e- Go here for the latest information on the Mac OS. mail with the string “SUBSCRIBE MACCHAT” in the body of the message to [email protected]. NEW Mac OS 8 http://www.macos.apple.com/macos8 MacHack Apple Computer’s official source for technical and business information http://www.machack.com/ about Mac OS 8 (formerly code-named Copland), the next major release of Find out about the annual MacHack hackers’ conference. the Macintosh operating system.

Macintosh Advantage A Mac QC Links http://www.apple.com/whymac/ http://www.seapine.com/qclinks.html Dedicated to showing why Mac OS–based systems are better than PCs Information about Macintosh quality-control software and services with running Windows 95. Go to this site for details about Apple’s contest for links to sites where you can find tools for testing and debugging Macin- the top Macintosh-hosted Web sites. tosh software. To submit your product/service for listing or to request a link to your page, send e-mail to [email protected]. Macintosh Application Environment A http://www.mae.apple.com MacTech Magazine Contains a sample of the Macintosh Application Environment (MAE), soft- http://www.mactech.com ware that lets UNIX workstations run Macintosh applications. Contains MacTech Magazine’s list of Internet locations for Mac OS developers. Macintosh Help Wanted http://www.memphisweb.com/mathew/default.html Mac vs. UNIX Web Server Performance http://www.memphisweb.com/nammac/default.html http://www.netdreams.com/net.dreams/papers/theTest.html Need to find programmers and others to work on developing Macintosh Contains a server performance comparison between a Power Macintosh products? Go to these locations for help. computer and a Sun SPARC workstation, both being used as Web servers. Guess which system wins? Macintosh PowerBook and Mobile Computing A http://www.info.apple.com/gomobile/ MacSciTech Complete information about PowerBook computers. http://www.macscitech.org/ The home page of MacSciTech, the association for scientific/engineering/ NEW Macintosh Prices, France and United States technical Macintosh users. http://www.ie2.u-psud.fr/~peirano/mac_us.html Contains lists of French and U.S. Macintosh prices, as well as a brief histo- Metrowerks ry of the Macintosh computer, information on potential future Macintosh http://www.metrowerks.com/ and Mac OS–compatible systems, and performance data about most Mac- Find out about Metrowerks’ CodeWarrior PowerPC development environ- intosh models. ment.

Macintosh Programming Tools Nathan’s Everything Macintosh Page http://www.astro.nwu.edu/lentz/mac/programming/tools.html http://www.cs.brandeis.edu/~xray/mac.html A terrific source for Apple and non-Apple Macintosh programming tools. A virtual treasure trove of Macintosh information, as its name implies.

JUNE 1996 AppleDirections Listings 35

Natural Intelligence QuickDraw GX A http://www.natural.com/ http://www.info.apple.com/gx/gx.html Information about Natural Intelligence’s tools and solutions, including Look here for information on QuickDraw GX as well as links to other non- Roaster and Roaster Professional. Apple sites.

A Newton QuickDraw GX Fan Club http://dev.info.apple.com/newton http://www.ixmedia.com/quickgx/quickgx.html Includes information about Newton 2.0 and Newton Toolkit 1.6. http://www.ixmedia.com/quickgx/subscribe.html The first site includes information designed to encourage the use and Nisus Software development of QuickDraw GX; the second provides addresses of two e- http://www.nisus-soft.com/~nisus/ mail lists for receiving updates about QuickDraw GX. Click on the Trash icon at this site and see where you end up! QuickTime A OpenDoc A http://quicktime.apple.com http://www.opendoc.apple.com/mainpage.html News and technical and marketing information about QuickTime. The place to go for the OpenDoc 1.0 SDK and OpenDoc sample parts. QuickTime Live! A OpenDoc Part Ideas http://live.apple.com http://www.eng.uci.edu/~sroussey/NetVision/software/od_parts/ Apple’s site for showing multimedia broadcasts of live entertainment, A repository of OpenDoc software, as well as ideas for software that could including images, videos, sound, and QuickTime VR. be implemented as OpenDoc components. QuickTime VR A NEW Part Merchant Home Page http://qtvr.quicktime.apple.com http://www.partmerchant.com/ You can find samples of QuickTime VR products here, as well as informa- An OpenDoc part storefront on the Internet, sponsored by Kantara Devel- tion on how Apple’s virtual reality technology works and how you can opment, where you can post your new OpenDoc parts and make them incorporate it into your multimedia products. available for downloading by customers. QuickTime VR–based Web Pages PC Fairy Tales http://www.bmwusa.com/ultimate/roadster/z3downloads.html http://www.icsi.net/~crfrank/newpcTales2.toc.html Take the new BMW Z3 roadster for a QuickTime VR test drive. Information to help debunk common Macintosh myths. http://pathfinder.com/time/special/baseball Pictorius Shows the 1995 World Series in QuickTime VR. http://www.pictorius.com Contains information about Pictorius Prograph CPX and Peregrine, its http://sfasian.apple.com visual application client/server database programming environment. View a QuickTime VR version of an exhibit of Mongolian art.

Pippin A http://www.honda.com/cars/odyssey/ http://support.info.apple.com/pippin/ See QuickTime VR interiors of Honda Motor Company’s new car models. Contains technical information about designing products that will work with Apple’s PowerPC processor–based, low-cost CD playback device. http://www.interart.net/ Real estate tours of actual, for-sale properties. Polymorphic E-zine http://www.webcom.com/icog/polymorphic/index.html Quinn’s Human Interface Subtleties A new online magazine about Macintosh programming, focusing in partic- http://redback.cs.uwa.edu.au/Quinn/WWW/HumanInterfaceSubtleties.html ular on Pascal and C/C++. Lists the many human interface subtleties that continue to make the Mac- intosh user experience richer and easier. Power Macintosh A http://www.info.apple.com/powermac/powermac.html NEW Shareware.com http://www.info.apple.com/ppc/ppchome.html http://www.shareware.com Two useful sites for information about Power Macintosh computers. As its name implies, a site devoted to providing shareware.

PowerTalk A NEW Software Unboxed http://dev.info.apple.com/evangelism/powertalk/ http://www.unboxed.com Resources for PowerTalk programmers. Broadcast Software’s online distribution site for commercial software; you can post a special “locked” version of your software, using technology QuickDraw 3D A provided for free by Broadcast Software. Customers then contact you to http://www.info.apple.com/qd3d/ purchase a “key” to “unlock” and download the software. Everything you need to know about QuickDraw 3D.

JUNE 1996 36 Listings AppleDirections

Technotes A NEW Web Promotion Services http://dev.info.apple.com/technotes/Main.html http://www.computer.net/~owlseye/ Contains all Technotes—new and old—as well as author’s guidelines for An inexpensive service for promoting your Web site to a broad variety of contributing your own technical notes. Web indexes and search engines.

Third-Party Products A Yahoo http://dev.info.apple.com/thirdparty/ http://www.yahoo.com Fill out the form located at this site to add your products to this list. The well-known Internet directory and search engine. Yahoo is currently trying to strengthen its listing of Macintosh-related Web pages; if you run Ultimate Macintosh Page one, or know of one, go to this site and search to see if Yahoo already http://www.freepress.com/myee/ultimate_mac.html includes the page you’d like to list. If not, click the Yahoo category to Contains more Mac OS information and software than you could possibly which your page belongs; then click the “add URL” icon at the top of the imagine exists. screen, and follow the instructions that appear.

User Group Connection http://www.ugconnection.org/vendors/vendors.html Resources and services for marketing your products to Apple’s most influ- ential and enthusiastic users: user groups.

• Symantec site—http://www.symantec.com/lit/dev/mactools.html Internet Resources for This Issue • Metrowerks site—http://www.metrowerks.com/products News /discover/java.html • SPA site—http://www.spa.org Technology • April 1996 Strategy Mosaic—http://dev.info.apple.com/appledirections • develop site—http://dev.info.apple.com/develop.html /apr96/stratmos.html • IBM site—http://www.ibm.com • Apple Media Program site—http://www.amp.apple.com • QuickTime VR site—http://qtvr.quicktime.apple.com/ Business • Natural Intelligence site—http://www.natural.com/pages/products • A Bit Better Corporation site—http://www.bitbetter.com /roaster/index.html

Apple Developer Catalog Order Information To place an Apple Developer Catalog order from within the United States, contact Apple Developer Catalog at 800-282-2732; in Canada, call 800-637- 0029. For those who need to call the U.S. office from abroad, the number is 716-871-6555. You can also reach us by AppleLink at APDA or by e-mail at [email protected]. The Apple Developer Catalog is also available online on the Web at (http://www.devcatalog.apple.com/).

JUNE 1996