ViaVoice
Company: IBM
Estimated Price: $89.95
http://www-4.ibm.com/software/speech/mac
I’m going to start this review by speaking to ViaVoice. If I’m still using it when I’m done, how bad can it be?
After several years without a current dictation product, three different companies have recently promised to release their products for the Mac. IBM is the first one to actually ship a product, as they released ViaVoice Millennium Edition just in time for the holidays. Although it is exciting to have such a product available for the Mac, ViaVoice has enough flaws and quirks to make using it a bit frustrating.
Continue reading »
Well, another expo has come and gone, leaving nothing but postmortems in its wake. A lot of the predicted announcements failed to materialize, an Internet strategy did (though not in any of the expected forms), and a preview of OS X appeared unexpectedly. Once again, a lot of observers have been left guessing: why did they get so many things wrong in the first place, and what does all that was announced mean? What follows is my take on things; since I carefully avoided making any predictions, I could probably claim that my analysis of the Expo has a higher degree of credibility than many, but that doesn’t mean what I’m saying below isn’t just rampant speculation.
What Steve didn’t say may be more important than what he actually said:
Continue reading »
It’s very easy to react with gloating to the recent decision by Judge Thomas Penfield Jackson that Microsoft is a monopoly and that it has abused the power that comes with that position. After all, it confirms what most of us have believed all along–the company’s evil–and now the law agrees with us. Unfortunately, the actual writings of the judge make for a rather depressing read for Mac fans. But how they affect those that compete with Microsoft on the OS front may depend more on the legal wranglings between now and the penalty phase of the trial, than what the eventual penalties are.
Reading the tome
The actual decision, called a “Finding of Fact,” clocks in at over 250 pages. Most of it is a rather dry read, not due to excessively legal language, but rather to excessive technical language. It contains a long analysis of why “middleware” solutions, such as web browsers and Java, pose a threat to Microsoft’s OS dominance, and how MS responded to the threat by crushing Netscape and pressuring computer manufacturers and software developers to adopts its software and standards. It is this analysis that led many technophiles to compliment the judge and his staff of clerks for “getting it,” at least until they noticed his dismissal of their favorite alternative OS. Although very insightful, this section mostly contains the expected, and is interesting largely for the occasional tidbits it contains. For example, an H-P exec is quoted as stating that if his company had any other option for a supplier of Windows, Microsoft would be dropped like a rock. In another section, it refers to software Intel was developing (and got pressured into dropping by MS) as “finding useful ways to consume more microprocessor cycles, thereby stimulating demand for advanced Intel microprocessors.” Such enjoyable asides are spread rather thin, though.
The portions of the decision that directly refer to Apple aren’t that informative, either. They mostly delve into the now widely known stories about how Microsoft pressured Apple to abandon QuickTime for Windows and to accept IE as the Mac’s default web browser. The interesting aspects here are mostly in the details: how MS was willing to incorporate QuickTime code into its ActiveX package, how blatantly it threatened to cancel Office 98, and how Apple isn’t currently allowed to use Navigator in any display or demo. Overall, Apple comes out well–its prowess in multimedia is acknowledged, and it’s recognized as producing the only significant non-server OS other than Windows.
Still, the only analysis of Apple’s place in the OS competition isn’t a pretty read. It comes early in the document, when the judge is describing how MS truly is a monopoly, and why that monopoly is expected to remain stable despite the dynamism of the computing industry. Judge Jackson exhibits an impressive grasp of the technical and market realities here, but they mostly lead him to show why Apple’s unlikely to gain significant ground against MS anytime soon. He points out that most people choose Intel compatible PCs because of their lower average cost, because they use them at work and/or most of their friends use them, and because more software is available for them. He views this last point as creating a self-reinforcing cycle: developers focus efforts on the platform with more consumers, creating more software for the platform, which draws more consumers, and so on. It’s enough to make somebody wonder how Apple’s stayed in business for as long as it has.
But does this change anything?
Perhaps the most depressing realization is that, despite the powerful conclusions here, the document in itself changes nothing. Although they may not compete as viciously, Microsoft will still have the resources to throw hundreds of developers into any area of software they do decide to compete in. Once they announce their next quarter’s profits, their stock will probably regain any losses it incurs now, giving them the leverage to buy out anyone they decide not to compete against. The reasons people were buying Windows PCs won’t change anytime soon, and not a lot of people are likely to change their buying habits just because a corporation has been shown to be not very nice.
In fact, there may be some dangers here. In the United States, there’s a substantial population that views any government intervention as wrong, and thus will support MS. Added to them will be those that view MS as a success story, those who view Bill Gates as a visionary, and those who view Windows’ wide adoption as proof of its quality. Combined, they may cause a more substantial swelling of support for MS. In addition, Microsoft may just get surly, and decide to back out of some of its agreements, such as producing Office for the Mac. So, although the findings are dramatic, I don’t think they will significantly alter consumer’s decisions; rather, the ramifications of this finding will be played out in the legal field.
So, what good is it?
I have no experience in the legal field; in fact, the aspects of the case I’m about to discuss come to me about 4th hand: lawyers interpret the law and talk to columnists, who then write their own interpretations of the case, only to have those views filtered through several editors before it gets to me. I’m then distilling these multiple sources into one document, so take what follows with healthy skepticism.
This document is a finding of fact; after seeing the evidence and testimony, and hearing each side’s interpretations of it, Judge Jackson has determined which witnesses were credible and which interpretations were reasonable. This document simply describes these determinations (it’s purely coincidental that it reads like a summary of the Justice Department’s case). Although other aspects of this case will be subject to review during appeals, this probably won’t be, since the judge is basing it on viewing the witnesses and determining their credibility, something an appeals court won’t be able to do. This finding will be accepted as fact unless Microsoft produces hard evidence that directly contradicts its conclusions.
Normally, findings of fact are released only as part of the final decision; it’s widely believed that the judge separated them in order to make this finding less subject to appeals than the penalty will be. An amusing result is that, as a result of this change, Microsoft will have to submit its suggestions for a penalty with the findings in mind, even though it would like to believe they’re not true. More significantly, unless Microsoft settles between now and the verdict, the findings will become a permanent part of the legal record.
What’s likely to happen next
As mentioned above, both sides have to submit recommendations for the penalties in this case–expect Microsoft’s to be largely removed from reality, and the DOJ’s to go for blood, since they won so completely with the finding of fact. As such, expect the judge to follow the DOJ’s recommendations. This portion of things should move quickly and keep the case in the headlines; the case is expected to be finished by the end of January. But don’t expect it to really end there, for Microsoft is almost certain to appeal any sanctions.
What might those sanctions be? Judge Jackson will be torn between the strong findings of fact and the judicial history of treading lightly in the area of antitrust. The American legal system has developed in such a way that the courts do their best to stay out of commerce unless there is obvious evidence of harm to consumers. This is especially true of antitrust law, where courts have rarely intervened. Still, Microsoft has been judged guilty, and something has to be done. The mildest option would be a consent degree, where MS would sign a document promising to refrain from this sort of behavior in the future. Unfortunately, this has already been tried, and MS engaged in all of this behavior while under the supposed restraint of a consent decree, so that option’s certainly out.
A more severe option would be for the court to appoint an expert(s) to oversee Microsoft’s business dealings and software decisions, leaving coercive contracts and decisions on what to include with Windows subject to review. But, just as the courts have been hesitant to intervene in the marketplace, they’ve been hesitant to impose long term regulation, preferring instead to administer a one-time solution. The solution most frequently suggested of late is based on the breakup of AT&T, where Microsoft would be split up into several smaller companies, to prevent the application-making arms from taking advantage of the OS monopoly. Due to the severity of this solution, appeals to it would be long and would likely limit its impact. In the meantime, MS would continue to rake in the money. Even if MS gets split up, most of the resulting companies would probably do well. People would keep buying Windows PCs for all the same reasons, Office would still enjoy dominance in its market, and Netscape’s already been slowed down and swallowed up. The only division I can see failing is the one that gets saddled with MSN and some of the other weak E-commerce efforts. Neither Apple nor any other software maker is likely to benefit from this in a significant way.
It’s possible that a settlement could be reached in the meantime, but the DOJ knows it’s likely to do well in the courts, and MS knows it’s likely to do well in the market while the appeals drag on. As such, I wouldn’t expect any settlements in the near future. And, in my view, that’s probably going to be the most significant result of all.
Just wait for the next cases, though…
If Microsoft doesn’t settle before this case ends, then the findings of fact will be permanently etched into legal precedent: Microsoft has been found to be a monopoly, and its actions have harmed both other companies and consumers. Some of the reaction to the decision has used the image of this decision being a hammer taken to Microsoft. I tend to view it more as a blueprint for an easily made hammer, published on the web without restrictions on its use. Others will almost certainly take these findings and use them to bludgeon MS.
A lot of people and companies have probably wanted to sue Microsoft, but have been afraid to try because MS’s pockets are deep and its lawyers are good. Any entity suing MS would certainly find their case expensively bogged down in the long process of trying to determine the very things the DOJ has now proven. In any case, the hard part’s been done, and the law now officially views MS as an abusive monopoly. Think of it as trying to get to the top of the Empire State Building; before, each individual case might have to take the stairs. Now, Judge Jackson’s given everybody an elevator ride to the 90th floor.
A lot of companies that have been harmed in the past may try to seek recompense now. Others may just go on a fishing trip for evidence in the courts, knowing what sort of language MS’s internal emails are likely to contain. These facts will be looming over anyone who negotiates on behalf of MS’s behalf, making them a less ferocious competitor. In addition, there’re the consumers that have been harmed. Don’t expect enterprising lawyers to wait before starting to look for such consumers to represent. In the end, I think that even if the DOJ loses on appeal, they’re likely to have opened the floodgates for other suits that will either win or severely hamper Microsoft. Eventually, the mounting legal fees may actually have an impact on its profits, which will in turn weaken its stock and correspondingly weaken its competitive position, setting up a similar cycle to the one that made it a monopoly in the first place. In the end, Microsoft may die the uniquely American death of a corporation pricked by a thousand lawsuits, some valid, others not. It’s not exactly fair, but then again, they haven’t been exactly fair, either.
Jay Timmer
jtimmer@tuna.net
Websites Mentioned:
http://usvms.gpo.gov
http://www.nytimes.com
Outlook Express 5.0
Company: Microsoft Corp.
Estimated Price: Free
http://www.microsoft.com
Two steps forward and a small step back make for a compelling upgrade
Using email programs has become a frustrating experience. There have been a large number of programs, some of which are no longer produced, available for the Mac in the years I’ve been using email, and I’ve tried a few programs on other platforms. Almost all of them had at least one compelling feature, a capability that I wish I could transfer to whatever program I was using at the time. Although I still haven’t been able to create Frankenstein-mail by combining parts of all the programs I’ve used, Outlook Express 5 (OE5) may have come closest to achieving that ideal. It’s unquestionably the best free email program available for the Mac today.
Installation and Setup:
When Microsoft introduced drag and drop installation and self-repair to its product line, I was skeptical of how well it would work in the long run. The installation of OE5 made some of the limitations of this clear. It includes several updates to the libraries it shares with Internet Explorer in its “self repair” folder; unfortunately, it doesn’t automate merging these with the previous self repair folder, leaving added clutter on the hard drive and lingering doubts as to whether I can safely throw the old one out. Among the shared libraries it replaces is the one that provides 128-bit encryption to IE, requiring a second download of a patch specific for the IE4.5/OE5 combination. Microsoft would do well to recognize these hassles and clean up the installation process a bit.
When first launched, OE5 offers to import mail and address book information from earlier versions or other programs. Although there have been reports of this not working properly, it went smoothly in my case. New users can be walked through setting up accounts, and details can be changed at any time.
Checking the stats:
The my mac mailbox is open, and I’ve chosen to display a message about recent web stats in its own window.
Interface and Performance:
Microsoft’s design approach seems to have been to provide several ways of doing nearly everything, so that anybody could find an approach that they were happy with. Although this may be confusing for beginners (who may wonder which option is the right way to get something done), it works quite well. The program defaults to a multi-paned main window–on the left are the mailboxes and address books, while the right is split between the contents of the selected mailbox and the text of the selected message. Each window comes with a large collection of buttons to perform common actions. Each of these panes in a window is resizeable, and a user can choose to have any combination of them in separate windows. In another example of the program’s flexibility, messages can be moved by either a regular menu command, a contextual menu command, by clicking a button on the message window, or by dragging and dropping them on the preferred mailbox. By providing such options, Microsoft ensures that not only can I work the way I’d like, but that others who prefer to work differently can find their own way of doing things.
One of OE5′s strengths is its ability to simultaneously work with multiple email accounts, including some web-based services. Mail from all accounts is initially brought to the In Box, but can be sorted by hand (email “actions”) into individual boxes. The progress of mail retrieval is not clearly displayed by default, but a separate progress window can be set to show this. One of OE4.5′s greatest weaknesses was its lack of a simple mechanism for managing the messages on the mail servers that received them. By default, it would leave all messages to accumulate on the server until its administrator got annoyed. OE5 takes a step to improve this by including an icon in mailboxes to indicate that a copy of the message is still on the server; clicking on this gives you the option to delete it from the server. Although this is better than nothing, OE5 still can’t automatically delete trashed messages from the server or to delete messages based on how long they’ve been on the server, two features that make Eudora the master of managing POP accounts. Most users of OE5 will still be forced to occasionally connect to the server manually to get rid of old messages.
OE4.5 made setting up filters for incoming mail a snap, and OE5 retains the ease of use and efficiency. Because all mail is kept in a single database file, filters are even speedier and less obtrusive. This also allows the “find” command to execute quickly. A new feature allows OE to automatically junk spam mail; a slider adjusts sensitivity. Like version 4.5, the latest OE integrates with other Microsoft applications, using the HTML rendering abilities of Internet Explorer to display and edit HTML messages, and using the spell checker of Office 98, if that’s available.
Microsoft has a tendency to make a program perform multiple functions, and OE5 is no exception. In addition to providing email address book functions, OE5 aims to provide all contact management functions. The address book contains fields for all major aspects of personal information, and adds the ability to synchronize with a Palm organizer. Without a Palm PDA, I wasn’t able to test this, but the Read Me indicated that its implementation is still incomplete, though improvements through an update are said to be likely. If you don’t intend to use OE5 as your contact manager, the addition of all the excess information makes simply adding a new email address more of a hassle than it needs to be. A “simple address book” option would have been welcome.
Use of Macintosh Technology:
Microsoft claims it now “gets” the Mac, and OE5 gives a great deal of support to that claim, as it seamlessly integrates several Mac technologies. Drag and drop is used extensively and intelligently. For example, when a message is dragged, the program extracts the information relevant to the window it’s dropped on. Similarly, a message is moved when it’s dropped on a different mailbox, while it’s address is brought up in a new contact window when dropped on the address book. There are some limitations, however, as some important settings dialogs are modal, preventing the interaction with other windows that allows drag and drop to work. Well-designed contextual menus are also included throughout. One odd lapse is that OE5 can initiate dial-in sessions when told to check mail, even if this option is prohibited in the Remote Access settings.
AppleScript is also extensively supported, with a wealth of scriptable functions. Scripts can be launched from a built-in “script” menu, or they can be triggered in response to specific actions (when mail is received from a specific sender, for example). Unfortunately, very little of the application allows the script editor to record its actions, meaning scripts will have to be generated by hand. Internet config is used to launch the user’s chosen application for URLs, even if it’s (gasp) Netscape Navigator.
In one case, OE5 goes too far in supporting Mac technology. In previous versions, it allowed multiple users to each have their own password protected accounts. This feature has been dropped in favor of OS 9′s multiple user capabilities. This is unfortunate, as not everyone will upgrade to OS 9, and not all those who do will use its multiple user features. Since I’ve yet to upgrade to OS 9, I haven’t been able to test OE5′s integration features, such as multiple users and file encryption, which may be essential if many users have access to your machine. But kudos to Microsoft for including detailed instructions on how to set up the application to work with multiple users, as many people will eventually want that flexibility. In security terms, it’s worthwhile noting that the previous version’s mailbox format allowed anyone with a text editor to easily open a mailbox file and view its contents. The use of a flat database to store mail now makes the contents of mailboxes much less accessible.
Summary:
My ideal email program has yet to be made, but OE5 comes a lot closer than most. By providing extensive customization and allowing users to choose from several methods of getting things done, OE5 nicely conforms to how I (or most others, I’d imagine) prefer to work. Its ability to handle multiple mail accounts, its improved performance, and its integration with Macintosh technologies also contribute to making it a good program and a desirable upgrade. There are, however, some lingering annoyances. Managing mail on servers has been improved, but still has a way to go. Drag and drop is well implemented, but isn’t accessible from all dialogs. Multiple accounts are readily supported, but the support for multiple users was downgraded. The address book tries too hard to also serve as a contact manager, which distracts from its primary purpose. Overall, however, these are annoyances and not major flaws, so I would readily recommend this program.
Pros: Seamlessly integrates multiple mail accounts, easy filtering, extensive customizability, and improved performance.
Cons: Limited management of mail still on servers, address book tries too hard, some minor annoyances.
MacMice Rating: 4
![]()
REALbasic
Standard version $99.95, (academic $59.95)
Professional $299.95, (academic $179.95)
http://www.realsoftware.com
People considering programming for the Mac will face some significant obstacles. The creation of a user interface (with windows, buttons, text, etc.) requires learning a horde of Macintosh-specific programming commands called the Toolbox. The procedural languages most programmers start with may not be appropriate for the event driven Mac OS. In addition, the code compilers such as CodeWarrior can serve as a major discouragement to a casual programmer.
With the release of REALbasic 2.0.1 (RB, from REALsoftware), these barriers have been reduced: RB is loosely based on the BASIC language, allowing beginners to get a gentle start on its learning curve. It extends BASIC to include Object Oriented Programming (OOP) concepts and event driven programming. It allows the visual editing of the user interface and handles the Toolbox calls necessary for the function of menus, windows, and control. Perhaps most importantly, it brings these features in at a price of about $100. RB is not solely the domain of hobbyists, though. It works well with Microsoft’s VisualBASIC, and a pro-version adds database functionality and compilation for Wintel systems. These features make RB useful for more advanced projects and customized institutional programming.
The Language: This is not high school BASIC
I would imagine that many readers are like me, whose exposure to BASIC came years ago while using an Apple II or some form of pre-Amiga Commodore. With that sort of background, it will not be difficult to create functional code within RB. All the familiar commands are there: For-Next loops, GOTO statements, etc. Many of the easy string manipulation and math commands of BASIC appear, too, such as mid(), mod(), and asc(). Like some versions of BASIC, RB does not require strings to be of predetermined length, allowing a great deal of flexibility.
Where RB shines, however, is in its extension of the BASIC syntax with concepts derived from modern OOP languages, such as Java. A user can create their own objects, which can be either new or based on an existing object (called “subclassing”), including most of RB’s built-in objects. Such custom objects can be moved between projects and reused. Like Java, RB’s runtime engine handles memory management and does automatic garbage collection on unused memory blocks. This eliminates the worst features of memory pointers and helps to prevent the most common cause of crashes and memory leaks. Should things still go wrong, RB allows users to code customized error traps or defaults to letting the program die gracefully with an informative error message.
RB treats a program’s interface as a collection of objects. Its built-in objects include the major interface items common to Macintosh programs: menus, windows, listboxes, text, buttons, graphics, etc. Non-interface objects also exist: timers, TCP/IP sockets, threads, files (resource, binary, and text data are available), and many others. The most appealing feature of RB is that it eliminates the need for a programmer to learn the multitude of Toolbox commands necessary to create, modify, update, and trigger windows and controls. Updating is handled automatically, and the rest of the control’s behavior is controlled by a limited and simplified syntax. Each control respond to user activity by executing specific code; thus, when a button is clicked on, its “action” event is triggered, and any code placed in that event is then executed. If a programmer finds the built-in capabilities too limiting, RB2 now allows direct toolbox calls.
The Interface: Learning to use objects and events
On launch, RB’s interface presents the user with a project window, a tools panel containing all the built-in control objects, the project’s main application window, and a properties palette. The project window allows you to manage all the windows, custom objects, pictures, etc. associated with a project. Double-clicking an object brings up a code-editing window to allow its modification. Double-clicking a window opens it, allowing visual editing of its controls. Controls are added simply by dragging them from the tools palette; they can be removed by selecting them and hitting the ‘delete’ key. Selecting a window or control brings up its attributes in the properties palette, letting you change its name, size, location, initial status, etc. Double-clicking a window or control brings up a code editing window identical to that used for objects.
RB’s Interface: clockwise from upper left, the Tools palette, the project’s lone window, its Properties editor, the project manager, and a code editor, with the popup menu’s “change” event selected.
Perhaps the biggest step in adjusting to RB is simply in learning where to type your code. Those used to using an IDE such as CodeWarrior or a procedural language (such as the original BASIC) may be at a loss for what to do first. RB’s interface practically forces a user to learn to think in an object oriented and event driven manner (don’t worry, that’s a good thing!). In the screenshot shown above, a code editor for Window 1 is open, revealing a list of its controls (currently only one). Each control includes the events associated with it; in the case of a popup menu, there are 7 such events. Each event can have code in it, which will be executed when that event occurs. Events without code are ignored, and no code needs to be executed in order for the program to wait for an event. Windows also have events (such as open and close. Any window or control can also have menu handlers, methods (functions) and properties (variables) associated with it, allowing greater flexibility in organizing information.
The Caveats
With so much going for it, is there a downside to RB? There are several, but their significance may vary according to your needs. In releasing version 2, RealSoftware has had to balance adding new features with enhancing existing ones and squashing bugs. The number of remaining bugs may be too large for some users to tolerate and some existing features may appear limited or quirky, depending on a programmer’s needs (printing in particular seems quite limited). Version 2 has already had one bug fix released and a second is in the works.
The Pro version of RB adds database and Windows compilation to the package, but these capabilities are currently bug-plagued, and do not appear to be ready for extensive use. In addition, RB as a whole lacks some of the features that are required for larger projects. The debugger lacks an object browser that will reveal the status of all objects and their properties during debugging; instead, this information must be dumped to a text file by a coded command. In addition, there is no way to do version control on objects imported into a project, making integrating the work of multiple programmers or updating a reusable code library a significant headache.
Although RB is object oriented, its implementation of OOP features is not complete compared to other languages, and differs from them in significant ways. The same can be said for its event model, and some expected events may be lacking some interface objects (for example, a listbox has no “mouse down” event), and a programmer has no straightforward way of adding them. So, although RB can serve as an introduction to OOP and event driven programming, this experience will not translate directly to other programming languages. Conversely, experienced OOPers may find themselves frustrated by RB’s implementation. RB is also both a compiler and a language (unlike CodeWarrior, which has compilers for several languages). As such, it is a bit of a moving target; practices learned for one version may need to be changed when the next is released.
Finally, RB provides a runtime environment that separates the coder from the Toolbox and handles memory management. The amount of time this saves in creating a functional program requires a sacrifice, which is exacted in terms of performance, customization, and memory. Even the simplest RB programs will require about 1 MB of RAM and disk space on a PPC machine. When doing calculations and string manipulation, the equivalent code written to a text window with C in Code Warrior executes noticeably more quickly than the RB version. Finally, RB gives you ready access to the most common building blocks of current Macintosh programs. If you want to do something uncommon or want extensive control over your program’s behavior, it may not be the best choice.
Summary
RB is a wonderful addition to the Mac platform, but it may not suit everyone’s needs equally well. Because of its relatively simple syntax and ability to separate the user from the toolbox, RB is Highly Recommended for those people new to programming or who don’t have the time to devote to learning Apple’s Toolbox. Its low price and ability to work with Microsoft Visual Basic make it Highly Recommended as an additional tool for those who specialize in small, custom applications. The Pro version is not currently in a state to properly evaluate. When more polished, it would be Recommended for those who need its cross-compilation or database capabilities, though it does not have a complete enough feature set to be used for large development projects.
MacMice Rating: 5
![]()
Jay Timmer
jtimmer@tuna.net
Websites mentioned:
http://www.realsoftware.com
Last time out, I voiced some concerns about how Apple was handling their Open Source initiative. Since then, however, things have moved rapidly, partly due to announcements at the World Wide Developer’s conference. Here’s an update on what’s new as of the end of May.
Another License, Less Griping:
When Apple first released their source code under the Apple Public Source License (APSL), there were several complaints voiced, including some by significant figures and organizations in the Open Source movement. At the time, Apple said that they would listen to the complaints and modify the license if it was appropriate. That’s exactly what has happened. The next time a significant amount of code was released, (more on that below) it was done concurrently with a new APSL, version 1.1, which amended the most frequent targets of complaints, such as the license termination clauses. With version 1.1, the complaints were mostly about how long it was and that the language was a bit too legalish—in other words, there were no significant complaints.
Would you like some Source on top of that?
Apple’s first foray into Open Source was rather limited in scope. When Apple released QuickTime 4 to the public, though, it also released the source code for the streaming server at the same time; since then, even more code’s been opened up. This shows that Apple didn’t just release code once as a publicity generating device but rather is fairly dedicated to the Open Source idea. Significantly for QuickTime in particular, it should allow the Streaming Server to be ported to many server platforms (thus expanding its use) and strengthen its claims to be the only streaming server without a “server tax.”
The code released at the WWDC falls into two categories: an application framework for games, and further release of OS X code. The game framework allows platform portability while programming the networking portion of a multiplayer-capable game. Put simply, instead of writing networking code specific for both the Mac and Windows, you can call network functions in this framework, and they will compile correctly for either platform. If it’s well executed, it can save a lot of effort. Since it’s already been used by Bungie (think Myth), it’s probably well executed.
The newly released OS X code is even more exciting. At the time of their original release, Apple did not include all the code necessary for moving the kernel to other platforms (Intel x86-specific code and the driver kit were among the things missing). The missing pieces have now been cleaned up and released. The previous release had the serious limitation of being incapable of interacting with a user without the interface that comes with the commercial release of OS X, meaning that the only people who could do much with the source code were those that already owned a copy of OS X. The newly released code can now be built into a kernel that will boot directly into a BSD-Unix based command line.
Everybody gets the boot!
Not only can the latest Darwin release be built into a bootable OS, but Apple has done the building. Anyone who agrees to the APSL can download an installer that will take the hard drive of your choosing (provided it’s hooked up to a recent PowerPC machine), wipe it clean, and put a 1 GB Darwin OS on it, leaving the rest as an HFS+ partition. It’s the easiest install of a Unix system I’ve ever seen, though that probably is due to the fact that it offers you no installation options.
I’m not familiar with the BSD utilities and shells, but it appears that many standard Unix utilities are there, and the file system has a traditional Unix directory structure. Still, there are some severe limitations to the system as it now stands. It won’t even let me set the password because it can’t interact with “netinfo”, a Next/OS X specific user configuration tool system. Many of the directories that seemed likely to hold some interesting OS X specific software are effectively empty (oddly, they hold two blank files).
Perhaps most significantly for anyone considering writing code for Darwin, the text editors present are quite primitive. Currently, the best editors on Unix systems are all designed for use with a GUI, instead of the command line, and most programmers work with several editor and command line windows open. This wouldn’t be so bad if Darwin had an easy method of transferring files to other environments (I would happily do my typing elsewhere), but that doesn’t seem to be the case. Although HFS and HFS+ partitions are supported, I can’t seem to get the “mount” command to work with any of those partitions. So, I tried accessing Darwin’s UFS partitions from Linux; although some Linux distributions can access UFS disks, LinuxPPC does not currently support them.
That leaves ethernet-based networking as the only mechanism of moving files into or out of the Darwin environment, an option I don’t have the ability to test at home. As such, I won’t be able to take advantage of the recent deployment of a CVS server for the Darwin project. Don’t worry about what CVS stands for; what it does is allow for version-based FTP access to all the source code. Thus, programmers that connect via the CVS client will have it automatically download only those files that have been updated since their last connections. This helps keep everyone working on a large project up to date and working on the same files and has been critical to the success of many open source projects.
A Need for Someone to do the Windows:
As hinted at above, the 0.2 release of Darwin is hampered by the lack of a windowing system. It keeps its users from taking advantage of the latest software developed for other Unix systems, such as Linux, and limits them to working in a single application at a time. With the full source code available and a growing amount of interest in it, it’s probably only a matter of time before somebody fills this void. A windowing system is almost certainly necessary if interest in Darwin’s going to move outside the development community.
Unfortunately, this also poses a danger for Apple. If people can download a freely available version of OS X, which has a decent windowing system, where most of the free Unix programs work on it, and which functions on multiple platforms, then Apple will almost certainly lose sales of the regular release. In fact, it would have to add some substantial value with its user interface and available applications in order to get anyone to buy their system. It will be interesting to see how this works out.
The Takehome:
At this point in time, Apple seems to be doing all the right things. They’re responding to user feedback and giving people what they want: a useable Operating System with an acceptable licensing agreement. Although there may be some risks in the long term, the recent developments should help generate the interest and excitement needed for Apple to generate a community of developers contributing to Darwin
Jay Timmer
jtimmer@tuna.net
As almost everybody reading this knows, Apple has decided to release some of the source code for OS X Server under an Open Source license, a project code-named “Darwin.” I’m sure a large percentage of the people reading this, however, are wondering if they should care. I’ll try to explain what Open Source is, what Apple hopes to gain from it, and who else might benefit from it.
What is Open Source, Anyway?
Unfortunately, Open Source can depend on who you ask. Even within the Linux community, which is most closely associated with Open Source software, there’s disagreement as to what constitutes true Open Source software (witness the various diatribes and responses to the announcement of Apple’s Open Source effort). In the simplest terms, Open Source is the set of rules under which the writers of software and operating systems release the code for their software. Its conditions govern what other users can do with the code, and how their changes can be used and published. What these conditions are is what tends to cause the controversy.
Perhaps the purest form of Open Source license is the GNU license. In brief, it requires anyone who uses the code for any work, private or commercial, to release any modifications they make to the public under the same license. As a result, anyone with access to the appropriate compiler can build the code into useable software. That’s worked great within the context of freely distributed software (such as Linux), but there are some issues when it comes to its use in commercial software. For example, when Netscape decided to release the code for Navigator to the public, it had to carefully work around code licensed from other companies that hadn’t released their code to the public. As a result, Netscape released their code under their own licensing agreement.
Apple’s situation is even more complicated. Although it’s not clear how much of previous Apple technology is included in OS X, Apple has licensed all sorts of software in the past, and so may face some of the same issues Netscape did. Unlike Netscape, though, it’s trying to sell the product that it’s releasing the code for. Therefore, the release agreement for the source has to include the ability for Apple to use any improvements or bug fixes made by others within software they sell under a strict licensing agreement. Finally, many components of OS X Server, from the kernel to the web server, was originally released as Open Source, and Apple has to work around this license.
What’s Apple Open Source Look Like?
You can read the Apple license for its source code here. In addition to the usual Open Source terms, it requires anyone who makes modifications to Apple’s code to notify Apple of the changes they make, and there’re a few clauses designed to protect Apple from copyright violations. These extra conditions have caused them the most grief; complaints ranged from the concern that Apple might cease to exist and therefore be incapable of being notified, to more realistic concerns about the nature of copyright disputes that would allow Apple to invalidate a user’s rights to the source code.
Also an issue was the limits Apple placed on what code to release. Instead of providing the instructions for the entire operating system, Apple restricted their release to the code for the kernel and some of the UNIX software that was packaged with it (you can look over what’s released here), keeping the code for the user interface out of the public domain. This keeps anybody with the appropriate compiler from building the whole OS, preserving Apple’s revenue and control. It can be argued, though, that Apple’s primary contributions to computing have been in the area of the User Interface, so looking at their code for it could be very informative.
Who Does This Benefit?
Apple. They can benefit in a variety of ways, not the least of which is association in the press with one of the more interesting current trends in software. The other intended benefits, however, will require that a productive community forms from people using the code. The main reason that Linux has become such a significant force in computing is that it has attracted a large, skilled, and dedicated group of programmers, ensuring that bugs are squashed and new features are added with great frequency. Apple has to hope that a collection of dedicated Mac programmers, ex-Nextophiles, hobbyists, and students will coalesce and use their code productively
This is in no way a certain thing. If it does occur, however, Apple may get any number of the following:
• Bugs fixed for free, which will allow system upgrades to focus on adding new features.
• Support for more peripherals, even if their manufacturers have never even seen a Mac.
• Free ports to other processors and/or architectures.
• System code optimized for specific tasks, from serving through desktop publishing.
• System level support for emerging technologies.
• Add your own point here; there are undoubtedly many I haven’t thought of.
Linux Users. The current releases of Linux for the Mac, LinuxPPC and MkLinux, can both benefit from the release of source code. Each time Apple releases updated hardware, the folks at LinuxPPC have to spend time and energy sorting through it and altering the kernel so that it recognizes and works with the new configuration. If Apple releases the entire Mach kernel code, this should include the necessary hardware support information. More directly, MkLinux uses the same mach kernel that the non-server version of OS X will, perhaps allowing for more direct use of what Apple releases.
The benefits do not end there, however. To make their Mach-based system useable by today’s Mac users, Apple’s going to have to overcome two of the most frequent complaints against Linux: its complicated directory structure which makes managing it too difficult for non-gurus, and the primitive user interface of its desktops and programs. A functional UNIX system depends on a strict and complex directory structure; moving a critical file or changing its name will often bring the entire system to its knees. This sort of behavior is antithetical to today’s Mac users, who expect to be able to organize programs and data any way they see fit. If Apple alters their kernel to bring it in line with OS 8′s user customization, the code may allow other flavors of UNIX to be modified in similar ways. Apple is also including many standard UNIX utilities in OS X Server and is releasing their source code. It’s likely that either Apple or an OS X user will then eventually make a decent interface for these (and other) utilities.
You and Me. Although most of us are not likely to muck with the source code, there are definite benefits to the possibility of bug fixes being available immediately, as opposed to waiting for Apple to do a new system release. Many of the Open Source utilities that are or will be ported to OS X have a 20 year history of refinements while running on other forms of UNIX, and will no doubt be helpful to some current Mac OS users. And, in the end, it’s also a good thing to have Apple ahead of the curve on what may be a major trend in computing.
Fine, But Are There Risks?
Would I have brought this up if there weren’t? Apple’s already taken some bad publicity on their licensing terms and the limits on what they’ve open sourced. Depending on how things develop, there may be a continuing stream of bad publicity. There are also dangers to both the success and failure of the program. If it succeeds in generating a community of developers, engineers at Apple may have to waste lots of time poring through poorly coded submissions produced by amateur enthusiasts. If it fails, expect more bad publicity about Apple pursuing-and then dropping-another grandiose operating system strategy.
Overall, these risks are almost certainly worth the potential benefits of this attempt. Still, Apple will have to move aggressively to encourage developers to contribute, help organize them to minimize duplications of effort, and focus people on areas of maximal return. So far, however, nothing’s been posted on the Darwin site to indicate any effort of the sort is in progress. Nothing new has been posted there since mid-March, when the original program was announced.
Looking through Apple’s mailing list archives at the Darwin-develop list gave me cause for both optimism and concern. The concern comes from the fact that: everything feels hastily thrown together; the source does not include device drivers, it can only currently be compiled by people who already own OS X Server; the source as it exists doesn’t provide for a user interface even if it’s successfully compiled; and there seems to be only a couple of Apple employees reading the lists.
Still, as I said, there remains room for optimism. The Apple employees who wrote in were pointing out what other code was likely to be released soon, and which of the suggestions of people writing in were worth considering or adopting. Most significantly, however, it appears that despite all these limitations, people are trying to work with the source code. Several postings even detailed attempts to get the kernel to compile on Intel-based Linux systems. If Apple gives these people just a little more help and some more code to work with, Darwin could really take off.
Jay Timmer
jtimmer@tuna.net
Welcome to the Browser Rumble!
Jay: Will the moderator kick things off?
Jeramey: IE kicks butt because….. Oops, jumped the gun…
Russ: Yes, you did… again! For our readers, Jeramey and Mike are here to defend the honor of Internet Explorer (from hereon referred to as IE), and Jay to defend Netscape’s Navigator/Communicator. Let’s start with some background: Jeramey, how long have you been using IE?
Jeramey: Since 3.0.1, whenever that came out.
Russ: Mike… you?
Mike: I tried 2.1, didn’t like it, switched back to Netscape, but since IE 3.01 came out I’ve been hooked. So, probably about two years.
Russ: Jay, when did you start with Netscape?
Jay: I had been using IE 3 and 4, because Navigator was an unstable slow mess. When 4.5 came out, all that changed. It’s the most stable version since 2.0 and is extremely fast.
Jeramey: Not to butt in, but I’ve been using Netscape since 1.0, so I also use it…
Russ: Jeramey, why don’t you go ahead and explain your devotion to IE.
Jeramey: Feature-set and stability.
Russ: as in…
Jeramey:
Download manager (I can see what I d/l)
History (shows me easily where I’ve been)
Separate email (I love Eudora)
Stable (Netscape used to crash frequently)
AutoFill (I hate filling out forms)
I can use whatever Java Virtual Machine I want
Page Holder (that is a cool feature)… that sums it up at the moment.
Russ: Boy, you’ve been studying…! Jay, your response for Netscape?
Jay: The IE download manager frequently doesn’t finish slow downloads and caches lots of stuff on your hard disk, creating huge files. The interface is better, but actual functionality is worse. Again, history is nice, but it slows down opening the browser and lets other people in a multiuser environment see exactly what you’ve been doing. Navigator certainly lets you use separate email.
I admit, Nav was unstable until 4.5, but that’s the past now. Autofill is nice, but not used all that often. The page holder just saves you from control-clicking on a link to open it in a different window. And shifting the page into the page holder is SSSLLLLLOOOOOWWWW.
Jeramey: Forgot about AutoComplete which Netscape didn’t have until 4.something and is horridly slow compared to IE (IE one char and it completes, Netscape thinks about it)
Jay: Basically, most of the features that are being promoted for IE are nice in theory but the practice is a bit lacking.
Russ: And what about Netscape grabs your attention and devotion, Jay?
Jay: I have no great devotion to either browser–I’ve used both, but Navigator is just faster and better implemented in a lot of ways.
Russ: Mike, your comments?
Mike: Well, I think a lot of Jay’s arguments are fairly subjective… I like the History, because I don’t have to bookmark every single site that I think I might revisit, and I like being able to see where other people have surfed on my computer (like my roommate at college, etc.) AutoFill is a godsend for me, because I fill out a ton of forms on the Net, like shareware registrations and email list signups.
The Page Holder, even though a little slow, is great for me, because with a small PowerBook screen, I don’t have room to open up too many windows at once! And, in contrast to Jeramey, I like the way Outlook Express integrates with IE. I also find it stable and fast.
Russ: What about the size of the browser and memory usage? Jeramey?
Jeramey: Navigator IS faster than IE (definitely notice it on fast connections). As for disk and RAM usage, I think IE still wins when comparing to Nav–IE 4.5 only want 4096K to run (and run decently–my G3 at work has it set to 14000k for a ton of pages and stuff). Otherwise, I never pay much attention to the current difference in RAM and disk usage between them; I expect they both will take up quite a bit.
Russ: Jay?
Jay: Navigator is honest about the memory it uses–it requires more, but it doesn’t increase the system heap in unpredictable ways. And it releases its memory when done. It takes up more room on disk, but with most computers coming with at least a 4GB disk these days, I don’t view that as a major issue.
Mike: I will admit that there is a bug in the way IE uses the system heap–it will balloon on occasion. But I’ve grown immune to bloatware (which is probably a bad thing)–that’s what a 6 GB drive and 64 Megs of RAM will do to you, I guess.
Jay: Isn’t that the truth.
Russ: What about the reports of IE not releasing memory when it determines that the other app(s) would not function properly with the RAM it would release?
Jay: I’m a bit worried about Microsoft determining how well another program will use its RAM…
Mike: I haven’t heard that report, and haven’t had any personal experience with it to my knowledge, so I can’t really comment…
Jeramey: I run AppleShare IP on a number of servers (which does similar things to RAM) as does Retrospect; so I don’t think of that as a major issue, plus on a G3 with 192 I’ve NEVER had that problem. I’ve also not had a memory issue with IE (although I’ve seen what it does) on my 7500 at home w/98meg.
Mike: Even though, playing devil’s advocate, we shouldn’t let the fact that we have enough RAM to handle the bug be a reason for not addressing it.
Jay: I wonder how well we represent the average user.
Jeramey: How ’bout this: what hardware are you using product X on?
Mike: Exactly, Jay–some people might have a problem. PB 1400, 250 MHz G3, 6 GB Hard drive, 64 Megs of RAM, and Ethernet connection to a T1 line.
Jay: I know on my old 6100, the ever increasing RAM heap caused a huge problem.
Russ: Should someone be running either browser with the minimum amount of RAM required? What’s a sufficient amount for either browser, if there is such a figure?
Jay: I’ve got a G3/233, 33.6 modem, 96 MB RAM and a few 2GB RAID partitions on an U/W card.
Jeramey: 7500/200 98 RAM x 10 gig on OS 8.5.1 56k dial up; G3 266 192 RAM x 9 gig Ethernet to T1. I also support a huge variety of machines, but only bigger (200MHz+ boxes with IE or Net 4.5)
Mike: Russ, even though I have lots of RAM, I have IE set to use 8 megs (roughly double its default).
Jay: As I said earlier, Navigator is honest about its memory–it demands more to start up, but works nicely within that.
Jeramey: I’m happy using IE 4.5 with the default of 4 meg; I snoop Java, multiple pages, secure connections, etc., so I think it’s acceptable at that level.
Russ: How about Microsoft’s use of the drag and drop installer for IE? Comments?
Jeramey: That is a killer. My only concern is how it will deploy on 800+ machines when its autoinstall kicks in (not verified that yet).
Jay: Yes and no–again, it’s a nice idea, but it allows the person who created the installer to dictate the contents of your System Folder.
Jeramey: For the average user, the install method for IE is far better than Netscape’s.
Jay: Microsoft made some odd choices with the autoinstall, including some out of date system components. If you try to replace them with the up-to-date versions, it deletes them and brings the old ones back.
Jeramey: Jay, I know either browser will choke if you start throwing the wrong things away, how you can you dictate what Netscape installs/doesn’t compared to IE? In regards to the weird version stuff, I’ve had success in putting the up-to-date versions in place?
Mike: Like the QuickTime plug-in? I’ve successfully replaced it with the most recent version, too.
Jeramey: Yup, and a MS lib file in the Extensions folder
Russ: How do you all feel regarding the ability of IE to “self-repair” itself with the MS Internet First Run app? Good.. Bad…?
Jeramey: In most cases (again for the average user) the auto repair is cool.
Mike: Overall, I’m in favor of the install and auto-repair, too, even though it’s not as big of a deal for me as are IE’s other features.
Jay: The ones I’ve had trouble with are the latest Intel AVI codec and the Text Encodings files. I’m not saying it’s a bad feature, I just think that Microsoft has to be careful and will have to create a new installer on a regular basis.
Russ: How about Communicator’s Smart Browsing feature as compared to AutoComplete for Explorer? Comments? Complaints?
Jeramey: I do NOT like the fact my browsing habits are sent to Netscape. I’ve not completely followed up on what it does entirely, but the premise at least bothers me.
Jay: My understanding is that it’s only done if you attempt to access the menu. With 4.5, the autocomplete features are roughly on par.
Jeramey: The AutoComplete in IE is 80% cool, in that it is usually correct in what I’m trying to do. The AutoComplete in Netscape (on my machines) is much slower than IE.
Mike: Yes. I like AutoComplete in IE, and it integrates Sherlock (with OS 8.5) to find similar sites if you want it to.
Jay: I’ve not used the smart browsing often enough to comment in detail.
Russ: Does IE employ auto-update as its other software does?
Jeramey: Not that I’m aware of
Mike: Same here, Jay. I’m familiar with the premise, but not really experienced. I don’t think so, either.
Jay: Could I throw an issue out for consideration?
Mike: Go for it.
Russ: Of course
Jay: Netscape should be commended for at least recognizing that their programs may be put on a machine with multiple users. I maintain computers in an academic environment where several people share individual machines…
Jeramey: But have you ever tried to use Netscape in a true multiuser environment where multiple people use multiple machines?
Mike: Yes, I agree, a good thought, but in my experience not always well-used. Our campus computers all have Netscape installed, and of course tons of students use the computers…
Jay: The ability to create multiple profiles, the fact that it doesn’t record a history of what sites were visited.
Jeramey: The profile feature of Netscape makes admin of labs actually harder than before as you have more files in more places. We need that history file to see where the students (prove it) have been.
Mike: Having a seperate profile for EVERY student on campus is an impossibility, and most students just use the default, anyway.
Jay: Fair point.
Jeramey: With versions prior you just had the one pref file to toss around, now you have to dig deeper and trick Netscape to always use the one profile.
Jay: I’m in a lab environment, where we’ve got about 60 people and 20 machines.
Mike: For an environment like that, it would probably be easier.
Jeramey: I’m directly supporting 1,700 users and 400 machines; indirectly 10,000 users and 2,500 machines.
Mike: WOW!
Jay: Also, although this is a slightly separate topic, IE is integrated with OE, which overwrites the Internet Config (IC) settings every time the user is changed.
Jeramey: The profile in Netscape definitely makes it more difficult to have the user prefs follow them from machine to machine. We have IC set to be reconfigured every time a user logs in, so that is not an issue. Plus we don’t use Outlook.
Jay: Hmm, I can’t imagine anything would scale well over 2,500 machines…
Jeramey: It actually works quite well.
Jay: We must be giving the moderator/editor nightmares by drifting so badly off topic.
Russ: Not at all… How about bookmark editing in both… ease of use.. problems?
Jeramey: Bookmarks in IE have been much easier to manage, I can’t comment as much on Netscape 4.5
Jay: I don’t see significant differences between the two in this respect.
Russ: How about Sherlock integration for Mac OS 8.5.x users of either browser?
Jeramey: The Sherlock integration with IE hasn’t been much use for me, so I don’t think either browser has a “better” chance on that one.
Jay: Obviously better in IE provided that you’ve left Sherlock in the Apple Menu. Either will work fine when called from within Sherlock.
The one thing I liked about that was to have Sherlock summarize a page to the clipboard. Where “that” = IE’s Sherlock integration.
Russ: Is there an overall winner regarding the browser rumble… or is it just what works best for the user’s needs?
Jeramey: I think if you use a brower extensively then the features that IE has that Netscape doesn’t make it a better browser. That’s why I prefer it.
Jay: I certainly think it’s a matter of taste. Both work well right now (though IE’s unstable on the machines I’m responsible for). If there’s a compelling feature in either of them, you won’t go wrong by chosing that browser. Just want to emphasize that IE has had some stability problems with each release.
Russ: Mike, you back yet? comments?
Jeramey: If you just surf and do some “extra” browser work (multiple windows, etc.) then either can do the job well. Re IE’s problems: they usually get sorted out within a couple of months with a patch.
Jay: And it seems that 4.5 is following that pattern
Jeramey: Ah, but for stability Netscape has always been unstable….
Jay: 4.5 was the first time I can remember that a regular release by Netscape hasn’t been the same.
Mike: I definitely think that if you need/want IE’s feature set, it’s the only way to go. If you don’t need or care about some of those features, Netscape is a good choice, too.
And with that, the preliminary battle of the browsers ended. No clear winner could be crowned this time. Maybe next time…














Comments. Be heard!
Book Review
Book Review
MyMac Podcast #385
MyMac Podcast #384