I've heard the term "personal Web publishing" a couple of times recently, and it has started me thinking. I first heard it when Chuck "Mr. WebSTAR" Shotton was talking about where he thought the Web would go in the future. Chuck's idea is that whereas Web servers now passively dole out information, in the future they might work in a more active mode, going out on the net and collecting information for you. In this mode, your personal Web server would essentially act as an agent, or "knowbot." It would be aware of your interests, work, and priorities, and automatically seek, select, and present relevant information to you. However, despite great promises, consumer level agent software at this time does little more than basic filtering.
I can't remember when personal Web publishing came up the second time, nor can I remember who mentioned it. However, the context was that Web publishing is something everyone might want to do, and thus it might behoove Apple (or someone else) to provide simple, inexpensive Web server software that was utterly trivial to use. Imagine having a folder whose contents could be made available on the Web by flipping a switch in the Sharing Setup control panel.
The concept of personal Web publishing is powerful, and one which Tonya and I both utilize and promote. In particular, we've started using the Web to share our QuickTake photos with our far-flung set of close friends and relatives. In this way, we can immediately show off our Halloween jack-o-lanterns and Thanksgiving feasts to many more people than we'd ever find the time to send photos. These pages, like pages from a photo album, are not meant for general public consumption, although it's not much of a problem if other people see them. (In fact, I set up a robots.txt file to prevent Web worms from indexing these pages - see the URL below for information on keeping Web indexing programs like WebCrawler and InfoSeek out of your personal pages.)
Along with our personal experience, we've tried to promote personal Web publishing by adding a chapter about basic HTML to the third edition of Internet Starter Kit for Macintosh, and later turning that into Tonya's stand-alone book, Create Your Own Home Page. But preaching about basic HTML and practicing what we preach can only go so far - let's look at some of the problems that Apple or another developer could solve to make personal Web publishing a reality for anyone with a true Internet connection.
First, personal Web server software must have a small footprint and be inexpensive. WebSTAR, as good as it is, likes a significant amount of RAM and isn't cheap. The same goes for InterCon's InterServer Publisher and most of the rest of the commercial Web servers. Peter Lewis's NetPresenz is cheap enough at $10, but in many ways it's still too much tool for the job. I think personal Web server software should require no more than 500K of RAM, preferably less, and cost $25 to $50. The barriers must be low, and if we're aiming at individuals, we have to assume minimal amounts of RAM and a desire for a low price.
Second, personal Web server software must be easy. I love the concept of creating a personal Web server by merely flipping a switch in the Sharing Setup control panel and then dropping files into a Web folder on your desktop. Consider the possibility of automatic translation, perhaps when files go into the folder. Automatic translation would require a technology like XTND and some seriously clever programming, but for basic pages and graphics it should be feasible. Once the pages are converted, a tool like PageMill (but perhaps one that made a better effort to not choose sides in the various HTML arguments) would probably be best for any editing the user wanted to do.
Third, but perhaps most importantly, we can't assume average Macintosh users have direct Internet connections. To make a bad situation worse, modem connections often go through a dynamically addressed account, which means these users' IP numbers change each time they connect. This effectively makes it impossible to connect to their personal Web server unless you know their current IP number. So, we need some way of permanently identifying personal servers whose IP numbers constantly change. One solution, used by Electric Magic's NetPhone software, is to create a centralized location using specialized server software (called NetPub in the NetPhone world) at which a personal server registers its IP number when it comes online. That way, even if there's no way of determining the IP number of the personal server each time, users can go to the NetPub location and check to see if the server you want is currently online.
But let's take this further. What if a centralized NetPub/Web server could act as an intermediary between the personal Web server and the Web browser? Let's use a phone analogy first, since it's easier. Sam checks in at the NetPub to see if Mary's online with NetPhone. She's not, so he leaves a message. When Mary comes online and her NetPhone registers its presence with the NetPub, the NetPub server automatically delivers the message from Sam.
Now, take one step up to Web serving. Say Sam is using a normal Web browser and wants to look at some baby pictures that Mary has put in her personal Web server folder. She's sent him the URL, so he knows where to go (or perhaps the NetPub/Web server knows all the URLs available on a personal Web server, if not the contents of those pages). Since she's not online, her personal Web server can't provide the files. But, just as in the phone message example, the NetPub/Web server would store Sam's URL request, and when Mary comes online with her personal Web server, the NetPub/Web server would request the files and store them for Sam, making them available to him when he checks back in.
Needless to say, this is clumsier than it would be if Sam and Mary had dedicated Internet connections, but most people aren't so lucky. Clumsy or not, the technique is effective and neatly circumvents the problem of non-dedicated connections with varying IP numbers.
To come full circle, if you think about the process I outlined above, you'll realize that my hypothetical NetPub/Web server is acting much like Chuck Shotton's hypothetical personal Web server, pretending to be you when you're not there and later providing you with information it has collected. So perhaps the two ideas about personal Web publishing mentioned above are related and are possible with today's technology. My impression is that the code necessary to create a basic Web server (no CGI support or anything fancy) is minimal - Peter Lewis said it only took him a couple of days to add it to FTPd. Thus, the primary task would be integrating such code into System 7's Personal File Sharing or just making it sufficiently easy as a separate application. The NetPub/Web server would undoubtedly be a trick as well, but since it's similar to a proxy server, it shouldn't be a major development task either.
The point is that as software companies increasingly try to think of the Internet as a simple extension to their operating systems and applications, it only makes sense personal publishing and network services should be integrated as well. Given the inherently cross-platform nature of the Web, products like this could be extremely effective and powerful solutions for a wide variety of people. Also, let's face it, all computer companies are going after the holy grail of the individual consumer, but to turn that individual into a customer when designing Internet products, companies must start to think of what the individual wants, needs, and can realistically afford.