then, these messaging apps were doing something extraordinary: They could render, transmit, and, to a limited extent, compose HTML.
In version 3 of both Navigator and Microsoft Internet Explorer (MSIE), the messaging apps became slightly more HTML-aware. In version 4, they are dramatically more so. You can easily construct a mail message that uses rich text, tables, images, and hyperlinks. And yet when I show people how I use these capabilities to collaborate with my team, with the whole BYTE staff, and with participants in our public conferences, they're invariably surprised.
Why? The context in which NNTP discussion and HTML messaging become compellingly useful isn't yet apparent to many people. So let's spell it out.
An NNTP Server Is a Read/Write Web Server
Thanks to the Web, millions of people have become consumers of hy
pertext. Relatively few produce it, though, because the Web is primarily read-only. The writable equivalent of the Web is the Usenet, where millions of people exchange billions of words every day. But while the latest newsreaders can compose and view HTML, the Usenet's vast ocean of text will for some time retain its plain-ASCII look. Post an HTML message to rec.crafts.rubberstamping, and you'll likely get flamed. Usenet credo demands universal access to content. True, messages can contain both plain text and HTML. But legacy newsreaders display these hybrid messages awkwardly, naysayers complain, and the extra bulk saps bandwidth.
I'm all for universal access. As it is currently constituted, the Usenet quite properly takes a conservative stance toward HTML messaging. But there's terrible irony in the bandwidth argument. The inside-out architecture of the Usenet, whereby tens of thousands of newsgroups replicate to tens of thousands of servers every day, is a far more egregious abuse of bandwidth.
Discussion data no longer needs to propagate around the world by way of replication. It's 1997, not 1977. News servers, like Web servers, are now directly accessible from all points on the Internet. News clients can hop instantly from server to server, just as Web clients can. News servers, like Web servers, can house deep, richly structured, densely interwoven, searchable collections of documents. And everyone -- not just designated producers of content -- can help build those collections.
This scenario may or may not ultimately prevail on the Usenet. Either way, you can create an alternative public or private version of the Usenet using a stand-alone news server. When I started doing this 18 months ago, I had to climb the admittedly steep learning curve associated with INND, the server app that powers most of the Usenet.
Today it's much easier. In addition to INND, I'm running the latest news servers from Netscape (Collabora Server 3.0) and Microsoft (Internet News Server). Both vastly simplify
the process of setting up and using NNTP conferences. Both, in conjunction with the new generation of HTML-aware newsreaders, propel NNTP technology into the space formerly owned by proprietary groupware platforms, such as Lotus Notes.
NNTP Newsgroups Are Simple Document Databases
A newsgroup is really just a directory with a bunch of text files in it. Each file starts with headers (Newsgroup:, Subject:, Date:, and Sender:) and continues with the stream of ASCII text that is the message.
Newsreaders can order your view of a newsgroup by the primary headers: subject, date, and sender. But that's not too useful if you're pointing your newsreader at alt.rec.rubberstamping. Why order by date, for example, when there's nothing newer than last night's feed?
In a private newsgroup, though, these ordered views become very useful. When I finish the first draft of this column, for example, I'll post it to an internal news server. Weeks later, when the final proof reaches my desk, I may want
to refer back to the original copy. No problem. I'll select the newsgroup, order by date, scan for mid-June, and look for postings from me.
With a bit of group discipline, you can make these views of shared data even more useful. Here's a simple but powerful idea: Treat the subject header as a row in a database. For example, we use several newsgroups as simple contact managers. I invite staffers to post subject headers to this group in the following form:
Davidson,John|NetworkTelesystems|TCP/IP,VPN
The idea here is that records in this contact database are categorized in three ways: by name, by company, and by keyword. Order the newsgroup by its Subject: headers, and you've ordered the database by name. Yes, I realize this isn't perfect. You can't order by company or by keyword, as you would with the equivalent Lotus Notes database. But here are some points to consider.
Full-text search.
There isn't yet an NNTP standard for the
full-text search
of n
ewsgroups, but Netscape implemented one in its new Collabra server and client.
The body of the message is a white paper on virtual private networking that John Davidson sent me by way of e-mail. I know I'll be able to find that document three months hence by searching our newsgroup for the term
vpn
. What's more, I know that any other BYTE staffer looking for contacts or material on that subject will also be able to find it.
Direct e-mail integration.
To enter this record into our contacts database, I forwarded John's e-mail message into the newsgroup, rewriting the Subject: header as I've shown. Data entry doesn't get any easier than this.
I've built and used a few multiuser contact databases over the years. Data entry is always the bottleneck. Like all so-called knowledge workers, I process a flood of information at top speed all day long. If I have to fire up a data-entry screen and fill out a set of fields to log each event, I just won't, nor will my colleagues, and it's no
use pretending otherwise.
The data-entry threshold has to be very low, and now it is. A lot of information comes to me by way of e-mail that will matter to me or my team, but not today or next week. It takes literally 2 seconds to tag these messages and forward them to a shared-document database where they will be seen once and can be found later.
Optional value-added Web integration.
Suppose you wanted to construct views of this database by company and keyword, as well as by name. It's straightforward. I've written before about transformers (MHonArc and Hypermail) that convert mail or news archives into Web archives. Given such a Web archive, you need only scan for Subject: headers, parse out the implied fields, sort them, and emit one or more Web pages that serve as indexes on those fields.
NNTP newsgroups are rich file systems.
Following the headers, a news message can contain just a simple message body or a set of message parts, each encapsulated between MIME boundary-marke
rs. These attachments can be MIME-encoded binaries, such as images, executable programs, PDF files, and spreadsheets. They can also be HTML files. Listed below are some of the consequences that flow from creative use of the text/HTMLMIME type.
No external viewers are needed.
If posters convert files to HTML, readers won't have to launch external viewers because newsreaders can now render HTML attachments
natively
. Some applications already implement "Save as HTML," and many more will.
Content can be full-text-indexed.
If you post a Word document as an attachment, I can search for the text that you write only in the primary part of the message. Convert the attachment to HTML, and I can search that, too. That's just what I did when I received and posted John Davidson's white paper.
Attachments can be live applications.
Everyone gets e-mail like this: "Re: Company picnic: Please choose preferred date [7-18/7-25] and activity [volleyball/softball]. Repl
y to Pat at [phone #/e-mail address]." If we're using HTML-enriched mail tied to a Web-based application, Pat need not collect, tabulate, and disseminate this data. She can package her survey as an HTML message and broadcast it to the staff. An application such as my Polls servlet (see "Java Servlets," June BYTE) doesn't know or care if its HTML client is a Web page or a mail or news message.
Message Threading Creates Document Hierarchy
Suppose that, two months after I enter the John Davidson record in our contacts newsgroup, another BYTE editor interviews John for an article on VPN. Two months after that, a fact-checker calls John to verify some information in the article. The Contacts newsgroup is the obvious place to record these interactions. If the editor and fact-checker add their notes as replies to the original message I posted, they'll create what we normally think of as a conversational thread.
But in this context, the newsreader behaves more like a kind of shared outline proces
sor. When I launch the newsreader, the Contacts newsgroup appears in unexpanded form as a list of names. To explore all our interactions with John Davidson, I can expand that thread.
How well does this work? To be honest, you won't find many examples of this technique in our internal newsgroups today. It's tempting to blame the NNTP tools, which weren't designed for this purpose. You can't, for example, rename or move messages, and if you cancel a message you'll orphan the hierarchy beneath it. What's more, nothing prevents you from posting a top-level message that violates the style (e.g.,
NAME|COMPANY|KEYWORD
) that creates the illusion of a database.
But neither of these limitations is crippling, in my view. The real obstacle, as always with groupware, is cultural. I know people who exploit the rich capabilities of Lotus Notes less effectively than we exploit our relatively primitive NNTP-based tools. Most people, even some who are highly software literate, are not yet attuned to this m
ode of collaboration. We'll all get there, but it's going to take time.
NNTP Messages Are Link Sources and Link Targets
By
link sources
, I mean that NNTP messages can contain live hyperlinks. Since Navigator 2, we've been able to compose hyperlinks merely by spelling URLs correctly. If I type
http://www.byte.com/
in a message, the news (or mail) client will automatically recognize and activate that link.
This primitive form of hypertext authoring can deliver extraordinary benefits. When Usenet posters refer to Web documents, readers can access them with a single click. Using the HTML composers in the version 4 clients, you can refine the appearance of the hyperlink. If you are writing for an audience of HTML-aware newsreaders, you can wrap an ugly URL, such as www.byte.com/art/9706/sec5/art1.htm, in a descriptive phrase such as
my June column
.
By
link targets
, I mean that hyperlinks (on a Web page or in a news message) can lead to news messages. This
hardly matters on the Usenet, because messages there don't survive more than a few days.
But on a private NNTP server, it's a different story. You don't ever have to expire messages; they can be as permanent as Web documents typically are. Suddenly it makes sense to create links to these permanent news messages. As I pointed out in "Dual-Mode Conferencing" (December 1996 BYTE), we've long been able to form such links using message IDs. But it was awkward to do so, and the resulting URLs were nasty-looking strings, such as staffnews.byte.com/3301F45C.482E@byte.com. I'm delighted to report that, with Communicator's Collabra client, which just shipped, you can achieve this result by dragging a message icon into the message-composition window.
Why is linking to news messages a big deal? It means that the number and quality of documents that you've collected in a newsgroup are not the only measures of its value. Density of interconnection becomes another key measure. References can be a concise and el
egant alternative to quoting huge chunks of prior messages.
Even more ambitious, messages with links to messages can summarize discussions and create alternate views of databases. It's true that these meta-messages are still part of the flow of the newsgroup. Like all messages, they'll be seen once and then fade into the archive. But if they're composed in HTML, they can also function as Web pages.
The "discussion highlights" section of our home page, which calls out interesting threads in our public conferences, illustrates this technique. Think of an HTML-based NNTP discussion as a bunch of rough drafts, some of which will merit promotion to the status of finished Web pages.
What's the Catch?
If this NNTP stuff is so handy, why aren't more people using it? Not many folks, other than Internet service providers and network administrators, have ever mastered NNTP servers. The de facto choice, INND, is a mythologically scary beast.
But times change. The latest incarnations of I
NND from Netscape and Microsoft go a long way toward taming the monster. Most would find it straightforward to deploy these GUI-driven news servers for internal use. Next month I'll show how that's done.
TOOLWATCH
Win32::Internet
Aldo Calpini
E-mail:
dada@divinf.it
Internet:
http://www.divinf.it/dada/perl/internet