Skip to content
Thoughtful, detailed coverage of everything Apple for 33 years
and the TidBITS Content Network for Apple professionals
Show excerpts


So what the heck is WebObjects and where did it come from? Read on for the first installment of Jonathan Rentzsch’s two-part article explaining just what WebObjects is, where it came from, and how it compares to other ways of creating Web applications. Also this week, Adam gets grumpy about a report about "severe market dominance" on the Internet, and we cover the releases of IPNetSentry 1.1.1, Rewind 1.2, BBEdit Lite 6.1.1 and icWord 1.2.

Jeff Carlson No comments

Rewind Advances to 1.2

Rewind Advances to 1.2 — Power On Software has updated Rewind, its $100 utility for reverting to previous incarnations of files or the system in the event of a crash or mistake (see "Macworld SF 2001 Trend: Cool Utilities" in TidBITS-564). Rewind 1.2 adds the capability to limit the size of the Rewind archive (the catalog of changes made to files as you work on the Mac), improves stability with programs that handle memory in unusual ways, and now correctly handles Virtual PC 4 disk images, among other fixes. Although the upgrade is free, you must enter your serial number to download the full version of Rewind 1.2, including manual (a 7 MB file). Rewind runs under Mac OS versions 8.1 to 9.1 and requires at least 10 percent of your hard disk space to operate. [JLC]



Adam Engst No comments

icWord 1.2 Adds Double-Byte Support

icWord 1.2 Adds Double-Byte Support — The recently released 1.2 update to Panergy’s icWord utility for viewing and printing Microsoft Word documents can now read files created by the Far East version of Microsoft Word, including those in Chinese, Japanese, Korean, and other double-byte languages. Other feature additions include support for sound, display of footnotes as endnotes, and support for Unicode text files. Panergy also improved support for Word’s built-in graphics, table viewing, and paragraph spacing. The update is free and is a 2.0 MB download. [ACE]



Adam Engst No comments

IPNetSentry 1.1.1 Traces Intruders

IPNetSentry 1.1.1 Traces Intruders — Sustainable Softworks has released IPNetSentry 1.1.1, a minor update to the company’s personal firewall software (see "Macworld SF 2001 Trend: Personal Firewalls" in TidBITS-564). This version adds an internal Log window for the last 32K of log entries and the capability to bypass the splash screen by holding down Command while launching the IPNetSentry Companion application. More significant, when IPNetSentry detects an intrusion, it enables the user to perform a trace route on the intruder’s IP address, which can help identify the source of an attack. The actual trace route is done through a separate Sustainable Softworks’ product, IPNetMonitor. Although the update to IPNetSentry is free, IPNetMonitor costs $30, and it’s also included in a variety of bundles with discounted pricing. IPNetSentry 1.1.1 is a 1.2 MB download and requires Mac OS 7.6.1 and Open Transport 1.1 or later running on a PowerPC-based Mac. [ACE]

< overview.html>

< ipmonitor.html>



Adam Engst No comments

BBEdit Lite 6.1.1 Fixes Bugs

BBEdit Lite 6.1.1 Fixes Bugs — Bare Bones Software has released BBEdit Lite 6.1.1, a bug fix update to the company’s free text editor. BBEdit Lite 6.1.1 now remembers changes to the Default Font setting, honors search options in multi-file searches, provides dynamic scrolling under Mac OS 8.1 and earlier, improves Mac OS X clipboard performance, and fixes a crashing bug related to the Hard Wrap command. BBEdit Lite 6.1.1 is a 4.3 MB download and requires a PowerPC-based Mac. [ACE]

< lite.html>


Adam Engst No comments

We Must Retain Control of the Horizontal…

A recent report from Jupiter Media Metrix made the seemingly provocative claim that as of March of 2001, a mere four companies control just over 50 percent of all user minutes spent online in the U.S. (both home and work). That’s down from 11 companies controlling 50 percent of online minutes in March of 1999, two years ago. Even more provocative is that the number of companies controlling 60 percent of online minutes was only 14 in March of 2001, versus 110 in March of 1999.

< doc=pr010604>

The four top companies are AOL Time Warner (32 percent), Microsoft (7.5 percent), Yahoo (7.2 percent), and Napster (3.6 percent). Speaking from a position outside these corporate monoliths, I find this report troubling due to its implicit assumptions, and in the end, it leads me to an understanding diametrically opposed to the report’s conclusion that market dominance on the Internet is possible.

Assumption 1: All User Minutes Are Equal — Jupiter Media Metrix doesn’t reveal methodology in the report’s summary, but in one footnote they do give a hint of the extent to which these numbers aren’t necessarily comparable. AOL Time Warner’s percentage seems wildly high, and that’s in large part due to the fact that two-thirds of the total comes from proprietary communications services such as email and instant messaging. Remove those services and AOL Time Warner remains in first place, but drops to 10.7 percent. None of the other companies (other than second-tier Juno, with its proprietary free email service) exert the kind of control necessary over communications services to include those in this "user minutes" calculation. It’s also unclear if standard Internet email and non-proprietary instant messaging services are included in the user minutes calculation – I know I spend a lot more time in Eudora than any other Internet application.

In fact, once you start thinking about what a "user minute" is, you wonder why Napster is included at all. Combine the large size of MP3 files with the large proportion of the Internet community still using modems, and you can see how all those slow downloads would confer a vast number of user minutes to Napster. It makes some sense to include AOL Time Warner’s communications services in the calculation, since AOL’s use of proprietary software ensures they can flash ads or otherwise affect the user experience for the entire usage time. Most Napster usage, on the other hand, is almost certainly happening in the background, unseen and ignored until completion.

Assumption 2: Users Are Mindless Minute Generators — TidBITS exists primarily to help information flow to and from the individuals who make up the Macintosh Internet community. That involves constantly interacting with our readers, who are intelligent, interesting people who have chosen to spend their time reading and responding to our articles. It’s a constant give and take, and although our approach to publishing would undoubtedly require modification if we had millions of readers, I still find myself cringing whenever I read phrases like "controlling user minutes" or "monetizing the user."

The implication in the report seems to be that users don’t have any choice in what they do, that they’re compelled to use the services provided by the big four. I use Yahoo a fair amount, but that’s because I like Yahoo’s services and design, not because Yahoo has in some way locked me in. In fact, my impression is that Internet users are incredibly fickle, and it wouldn’t take much for any one of the top four to drop fast in the rankings. Napster’s suffering that drop even now, thanks to losing the first rounds in its legal battle with the recording industry, reducing the amount (and accessibility) of popular material previously available through its service. Plus, other services are quickly filling in the vacuum Napster has left behind.


For anyone in the Internet media business, I’d recast the entire situation in terms of needing to earn and retain the loyalty of online users. There are certainly ways of encouraging users to stick within a single company’s services, ranging from AOL’s proprietary interface to Microsoft’s pushing of MSN on the Windows desktop, but in the end, it comes down to providing quality services that offer real value to users.

Assumption 3: The Rest of the Internet Is Uninteresting — What about the 40 percent of user minutes that aren’t "controlled" by these 14 companies? They don’t warrant even a mention in the report, and yet, I’d wager that if you asked people what they remembered about an online session, it would be more likely to be some piece of personal email or an unusual Web page or service, not the bland portal that delivered the day’s weather report. What sets the Internet apart from other mass media vehicles is that it’s incredibly deep. Consider how shallow television, radio, movies, and even books, software, and magazines are. In these other arenas, there are relatively few producers, and the barriers to production remain high. In theory, such a situation lets the market create quality, but as we’ve seen, it means instead that the market enforces only a least common denominator.

This isn’t to imply that independent content is good, because most isn’t. Sturgeon’s Law states that 90 percent of science fiction is crud, but that’s because 90 percent of everything is crud. So if 90 percent of television shows are crud (an optimistic estimate), the remaining 10 percent add up to a small number. But when you apply the same logic to the Internet, if only 10 percent of the Web sites and services out there are any good, you still end up with a vast number of worthwhile spots in the morass of crud.

That’s an important difference, and is an interesting shift in the standard quality versus quantity argument. The sheer quantity of Internet sites almost ensures that quality can’t be lost, as it is so often in situations where the barriers to entry are essentially insurmountable.

Assumption 4: Information Monocultures Are Good — Are there any lessons to be learned from Jupiter Media Metrix’s report? Yes, but not the one the report’s authors expect. They portray it as evidence that severe market dominance is indeed possible on the Internet, despite the infinite number of "channels," as they so quaintly state it. That’s true, but isn’t particularly interesting, for the simple reason that most of the heavily used services on the Internet have been replicated numerous times with little variability. Headline news, stock quotes, telephone number lookups, mapping services, Web-based email, search engines, comparison shopping services – you name it and it’s been done by many different companies at this point. So when you look at Yahoo, MSN, AOL, and Netscape, they’re all offering roughly the same content and functionality, and which one any given person uses is likely due to either to personal preference or to some outside factor. The fact that other companies offering similar services have fallen away or been acquired isn’t much of a revelation or even, frankly, much of a concern.

Diversity is the most important aspect of the Internet, and the kinds of content and services from the largest companies are the information equivalent of cash crop monocultures. Biological monocultures trade off high levels of production against susceptibility to catastrophic disease and environmental damage, and I’d argue there’s a similar trade-off in the world of data, information, knowledge, and thought. One commonly cited biological parallel is the modern computer virus, which thrives in the near-monoculture of Microsoft Windows and Microsoft’s Outlook email client. Another parallel is the concept of the meme, a self-replicating, contagious idea, which has also become well accepted.


Apply that analogy to information and thought in general, and I think it’s clear that the Internet, and more specifically, the bit of the Internet that isn’t generated in a corporate monoculture, is an essential part of our intellectual evolution. Why? Because evolution requires raw materials with which to work. That’s why sexual reproduction has proven so evolutionarily successful – the immense number of possible DNA combinations ensures constant change and experimentation. The information made accessible by the Internet can be seen as the DNA of new ideas, without which we can’t move forward and may even inflict significant damage on ourselves as a species. So do your part for the intellectual future of the human race and venture out to some of the lesser-travelled nodes of the Internet!

Jonathan Rentzsch No comments

WebObjects: WO Is Me, Part 1

AppleScript used to be Apple’s best kept secret. It broke technological ground that is still unmatched by any other platform, but was largely ignored except by a handful of enthusiasts. The situation has improved in the last few years, with the technology even making it into a Steve Jobs keynote (although widespread AppleScript support in Mac OS X remains elusive). One way or another, these days more people know about AppleScript, but now Apple has a new best kept secret: WebObjects.

In NeXT’s waning days, WebObjects was the product that kept the company going. It wasn’t cheap: an unlimited connection license cost $50,000. But even at that price, WebObjects was cost-competitive with other similar products.

At last year’s World Wide Developer Conference (WWDC), Jobs dropped a bombshell: a new, flat price of $700 for WebObjects. Although WebObjects isn’t an attention-getting consumer product like the much-hyped iTools or iDVD, the price drop caused interest to boom. And at this year’s WWDC, Apple released WebObjects 5, written entirely in Java, which promises to be especially interesting for customers running Mac OS X or Mac OS X Server.




Before we talk about WebObjects specifically, though, it helps to gain an understanding about WebObjects’ class of software: application servers. This article provides a brief history of application servers and offers an overview of the various software architectures used by WebObjects and its competitors. The next installment will focus on WebObjects, including its three major tools and sore points.

Application Servers — WebObjects was the original application server – an environment for developing and deploying applications meant to be accessed via a Web browser.

In many ways, application servers are a throwback to the days of the mainframe. Back then, a single big machine would do everything, while multiple inexpensive terminals plugged into the mainframe. The terminals were extremely lightweight computers – they could do little more than display received text and transmit keystrokes back to the mainframe.

The personal computer revolution gave individual users the capability to run their own software, freeing them from the tyranny of the corporate information systems priesthood. But a funny thing happened on the way to the revolution: people wanted to share their information and programs.

Personal and centralized file sharing helped folks share their information, but sharing software was problematic. Programs developed for one platform wouldn’t run on another. Software had to be purchased, installed and maintained for each and every computer, dramatically raising costs and complexity. Programs also had to be specialized to handle different types of data; for example, some shared information should only be accessed through programs which can ensure validity, such as customer databases.

Then the Web happened. The message was HTML and the medium was HTTP. Any computer could retrieve documents from any other computer, diminishing the platform problem. Even more exciting was that the Web enabled folks to set up programs that could be accessed using HTML’s rudimentary support for inputting data.

In short order, the Macs in Graphics and the PCs in Accounting could access the same vacation forms served by the Unix box in Human Resources. What’s more, the capability to communicate between platforms meant that software installation and maintenance could happen on the company’s central server. When a bug was fixed or a feature was added, only the server needed to be updated – all the clients instantly and automatically took advantage of the upgrade the next time they used it.

"Thin clients" – inexpensive computers running lightweight software like a browser or Java interpreter – captured all the buzz. Why spend resources catering to lots of individual computers on a network when you can manage them centrally like the former mainframe system? But to remove weight from the clients, weight had to be added to the servers. The servers held all the program’s logic as well as all of the user’s data. Multiple users across the company (or the world!) would all simultaneously hammer the servers night and day.

Programmers faced tight software development timelines, amazing software complexity, and the requirement that the server almost never go down. NeXT was in a unique position to create and sell tools and services that addressed all these issues.

NeXT was known from the beginning as having some of the finest development tools available. Object-oriented to the core, these tools enabled quick development of complex applications. And NeXT’s software ran on Unix and Windows NT – industrial strength operating systems that could provide the needed uptime requirements of mission-critical servers. NeXT leveraged all this to create WebObjects.

Three Fundamentals — Application servers consist of three parts: the interface, the program’s logic, and the data access.

  • The interface is what we users see and interact with. Typically it’s the HTML we view via our Web browsers, though Java can also provide an interface.

  • The program’s logic is composed of the rules and procedures that run businesses. For example, it’s the program’s logic that won’t let you purchase a book from an online bookseller if the book is no longer in circulation. Applications contain hundreds or thousands of such rules. When to add tax. How much tax to add. How big a box to use for the shipment. Is the credit card valid? Do any ongoing sales apply to the current purchase? And so on.

  • Finally, data access is the portion of the application which interacts with the database to create, view, update and delete information. As I discussed in "Relational Databases and Mac OS X" in TidBITS-580 and TidBITS-581, businesses prefer relational databases for these kinds of tasks.


WebObjects is no longer alone in the application server marketplace. There are now numerous players, and they differ primarily in how they separate the three fundamentals above. It’s instructional to study the different models: you can see a clear evolution of design. What I find most impressive is that all these models are slowly moving towards a common design: the design of WebObjects.

Follow along with this slightly artificial evolution of application servers. For each one, I’ll lay out the background and talk about some of the different packages out there. Some are free, open source. Some cost tens of thousands of dollars per processor. Although these lists are cursory, over-generalized and will be outdated quickly, they should give you the lay of the land.

Stone Age: Logic First, Everything Bound Together — The Stone Age design is typified by a focus on the logic of dynamic page generation. Almost all programming languages can be made to accept Web queries and generate HTML documents based on the query’s results (some commonly used languages are C, Perl, AppleScript, and Java).

These Web applications usually access a data source to answer the incoming query. Some may manually scan a file for the information, others will generate an SQL query based on the client’s query, and fire it off to a database. If the Web application is calculation-focused, then it may not need to access a data source.

I don’t intend to disparage the Logic First design with the Stone Age label. Instead, I’m simply trying to indicate its age (it was the first design) and complexity (not much at all). The Stone Age design is lightweight, and everything lightweight has advantages. It feels natural to programmers, and it is quick and easy to get a dynamic page up because everything is in one place. For calculation-intensive applications, Stone Age design may be the best.

However the Stone Age design is not without disadvantages. The first problem is that data access information is embedded into the logic. Technologies were introduced to help deal with this hard-wired database reliance. C and C++ programmers on Windows (and to a much lesser extent, on the Mac) have Microsoft’s Open Database Connectivity (ODBC), Java programmers have Java Database Connectivity (JDBC), while Perl has its Database Interface (DBI).

It’s important to understand that these technologies only provide a means of finding and connecting to a database. When it comes to moving data in and out of a database, you must still write and embed SQL into your program logic. Since SQL refers to specific table and column names, the onus is on you to keep the embedded queries synchronized with your database.

Another disadvantage is that the logic plus interface plus data design fundamentally ties one page to one chunk of code. If you need to share logic among multiple pages, it’s up to you to work out a code sharing strategy and keep it all up to date.

The final disadvantage of the Stone Age design is that the interface is embedded within the application’s logic. This means only a programmer can change how a page looks, or how it displays its information.

Examples of Stone Age tools include AppleScript, C/C++, Java, JavaScript, Perl, Python, and the Windows-only Visual Basic. You can tell that these tools focus on logic because they’re all programming languages. They’re great at representing logical decisions and operations, but suffer when forced to deal with data access and interface generation. Later models use some of these languages to handle the logical part of a Web application.

Bronze Age: Interface First, Everything Bound Together — After churning out a few hundred dynamic pages, programmers found themselves in an interesting situation. Quite often, their dynamic pages were a thin veneer of logic and data access, containing a huge glob of interface in HTML. Plus, the business folks and graphic artists were always bugging the programmers with appearance change requests.

Programmers, being the lazy clever folks they are, simply flipped the Stone Age design relationship. Instead of embedding interface within logic, they embedded logic within interface. Now you had pages composed predominately of HTML, with custom tags containing the globs of logic. With a sigh of relief, the programmers could give the files to the better Web designers (the kind who work at the raw textual HTML level), tell them to avoid the logic globs, and the Web designers could change the page’s appearance without going through the programmer.

Some programmers even went so far as to write WYSIWYG-style HTML editors which knew about (and hid) the logic globs, so even non-professional Web designers could change a page’s appearance.

Like the Stone Age, the Bronze Age design has the advantages that it’s easy to start and everything is in one place. But while the Bronze Age design somewhat relieved the Stone Age design’s final disadvantage, it didn’t address the first two. Namely, data access is still embedded (either within the page’s interface or logic) and code sharing among pages is still a problem.

Examples of Bronze Age tools include Active Server Pages (ASP), Java Server Pages (JSP), Lasso, and PHP. These tools all embed programming logic inside HTML. ASP typically uses Visual Basic, JSP uses Java, Lasso has its own proprietary tag-based language, and PHP uses its own language as well.

With some fancy footwork, all of these solutions can be moved to the Industrial Age model, but that’s not how they were initially designed. Although both JSP and PHP run fine on Mac OS X, Lasso is uniquely Macintosh friendly, with the capability to run under the Classic Mac OS and offering direct connections to FileMaker Pro and 4D. Future versions of Lasso will also work with Mac OS X.

Industrial Age: Interface First, Separate Interface — As projects got larger, the code duplication of the Bronze Age design became a nightmare.

Whenever a bug was discovered or a feature added, the programmers would have to go through each file and apply the fixes. Programmers had to spend time keeping track of all code copies and variants, or just hope they remembered to update everything. Software quality quickly degraded as everything became an entangled patchwork of slightly different code.

The Industrial Age design solved the code duplication problem by moving logic out of the interface. However, the data access is still embedded within the logic, leading to much of the same synchronization problems as the Bronze Age’s embedded logic model.

Examples of Industrial Age tools include Cold Fusion, WebLogic, WebSphere, and customized Bronze Age tools. For instance, with some up-front work and consistent discipline, you can use the Industrial Age model for projects using Active Server Pages, Java Server Pages, and PHP. Lasso also supports server-side JavaScript in addition to its proprietary tag-based language.

Alas, short of Lasso, none of these tools are offered explicitly for the Mac. Cold Fusion puts most of its logic in separate server-side files containing a proprietary JavaScript-like language called CFScript. WebLogic and WebSphere are implementations of the so-called "Enterprise Java Beans" (EJB) container specification, and they provide Java-based logic and object storage to Java Server pages. Although WebLogic and WebSphere don’t disallow putting logic directly into pages, most folks know enough not to make a habit of it.

Information Age: Everything Balanced and Separated — The Information Age design separates everything from each other. Interface, logic and data access all stand alone and interact via explicit architectural channels.

You can hand a bunch of pages to an outside Web design firm without handing them your business logic. The crazed nerds in the back room can crank code without having to worry about color coordination of Web pages, or which brand of database the company is currently using. The database folks can move and rename databases, tables and columns without fear of breaking the Web application.

Or one developer can work incredibly quickly.

The Information Age design is not without it flaws. Everything is spread out, in different places. Often it’s not immediately obvious how modifying one aspect changes another, and the learning curve tends to be much steeper.

The only two examples of Information Age tools in my mind are customized Lasso and WebObjects. Since Lasso can shield you from SQL and allows separation of your JavaScript-based application logic from its interface, it fits into the Information Age model. It’s the only product that spans the Bronze Age all the way to the Information Age. That’s interesting – you can start off using the fairly easy-to-understand Bronze Age model and work your way up to the Information Age model as necessary. Sure, you’ll throw away a lot of work as you grow, but it’s an option that simply doesn’t exist with other tools.

Although WebObjects has a much steeper learning curve than Lasso, and doesn’t run on the Classic Mac OS, it beats Lasso in terms of maturity and power. In the next installment of this article, I’ll look more closely at exactly what WebObjects provides.

[Jonathan "Wolf" Rentzsch is the embodiment of Red Shed Software, and runs a monthly Mac programmer get-together in Northwest Illinois.]