Advice for Community Network System Designers Frank Hecker hecker@home.com July 14, 1994 (Updated December 8, 1998 with new email address and URL) (Updated March 10, 1999 with new URL) Copyright 1994 by Frank Hecker. You may redistribute this document freely in any form provided only that you retain this copyright notice. This document is available online at the following URL: http://www.hecker.org/writings/advice.txt Recent discussion and debate on the Communet mailing list about system software for community networks has prompted me to post the following "advice;" it is a revised version of some work I did towards a proposed long-term technical strategy for the Washington, D.C., area community network CapAccess (the informal name for, and a service mark of, the National Capital Area Public Access Network, Inc.). I'd like to thank the other members of the CapAccess organization for their comments on early versions of it. However the views I express herein are mine alone and do not necessarily reflect the official position of CapAccess. I agree with Miles Fidelman of the Center for Civic Networking and others arguing for an "Internet-centric" view of community networking, at least as far as technology is concerned. I can in fact see the logic in Jack Rickard's and others' position that BBS technology is more appropriate and ubiquitous and will be the entry point into the internet for most users; however I do not see that as an argument for building community networks on top of BBSs. To the contrary, I think that what will happen is that BBSs will rapidly evolve to incorporate Internet technology and standards; they will then be suitable as access points into an Internet-based community network. So without further ado, here's my advice for community network system designers: * Make use of current readily-available personal computer technology to maximize interactivity and ease of use for typical end users. In the coming years the majority of potential community network users (whether at home, work, school, or public access sites) will have the use of personal computers typical of those sold in the last couple of years, e.g., either 386 or better IBM-compatible PCs running Microsoft Windows or Apple Macintoshes running System 6 or System 7. Design your system to make use of the power of such personal computers, especially their ability to support a graphical "point and click" interface and to mix text and graphics in "WYSIWYG" documents. This allows you to take advantage of modern personal computer interfaces to support a higher level of "point and click" interactivity, to make operations easier to use, and to enable your community network to offer at least a basic level of multimedia support (formatted text and graphics) for the majority of potential users. It will also make possible additional levels of multimedia support (e.g., sound and video) for public access sites and for individual users who have access to the required personal computer hardware and software. * Use TCP/IP and related Internet protocols everywhere you can, to maximize interoperability among community network components and with external networks both public (e.g., the Internet) and private (e.g., institutional LANs and WANs). Use TCP/IP exclusively for all communications among "back-end" community network components such as central computer systems, routers, and terminal servers. Also use TCP/IP for communications between your community network and institutional networks belonging to your partners, and for communications between your community network and the worldwide Internet. (If your partners don't know what TCP/IP is, educate them.) Finally, wherever possible extend the use of TCP/IP all the way to the end user, whether they are on a personal computer at home, work, or school, or on a community network workstation at a public access site. This maximizes interoperability between all the systems concerned. It also allows the introduction of higher-speed networking technologies (e.g., ISDN, "cable Ethernet") where feasible without affecting existing applications and services. When TCP/IP capability is extended to the user it makes possible a wide range of new services far beyond simple terminal emulation; these services can in turn make use of the full power of present and future personal computer technology. * Avoid closed, proprietary software solutions and wherever possible use freely available software developed and maintained by the Internet community (or commercial versions of such software) in order to maximize the interoperability of community network services with standard services already available on the Internet. Build community network services (e.g, electronic mail, online conferencing, etc.) on top of standard Internet services implemented by software packages already widely in use and available with minimal or no restrictions. Avoid proprietary software if it is not based on or does not interoperate easily with standard Internet services and protocols. Avoid internal software development beyond simple customization and integration of existing components. This will give your community network a base level of product capability that has been "field-proven" in the Internet community and is continually being developed and enhanced. This in turn will save you the time, money, and effort necessary for internal software development, making better use of limited funds and technical expertise and reducing the project risks. (It will also reduce the chance that your chosen software will be "orphaned" by its supplier.) Using freely-available packages for software distributed to end users and user sites will save your community network money and avoid software licensing and distribution problems. It will also help promote equity of access by lowering the cost of the necessary software for end users using home personal computers. Finally, using popular existing software maximizes the range of systems on which the software will run, allowing your community network more choice of hardware platforms for both central systems and end-point systems (i.e., what users see), and promoting interoperability with other groups using the same software. * Use a system architecture which distributes functions to multiple systems and can be scaled in order to meet the needs of growth with minimal impact on users of the system. Wherever possible and appropriate use technical mechanisms such as Gopher and the World Wide Web which are inherently distributed in nature, so that you can start with only a few systems and add additional systems as needed without changing the interface to the users. In cases where you need to maintain centralized services (e.g., a central timesharing host) for some functions or classes of user, endeavor to find ways to "internally" distribute such functions so that they can be hosted on multiple systems in the future. * Leverage existing efforts by commercial companies to bring Internet access to individuals and small businesses, in order to expand the connectivity options for individuals and organizations who wish to use community network services, and to help foster the growth of commercial Internet and NII access for the general public. Work to ensure that community network services are available to users who already have partial or full Internet access, using Internet tools and services with which they are already familar. Where appropriate, also encourage the use of commercial Internet public access providers to provide connectivity for community network users (individuals or organizations). This will broaden the reach of community network services by making them available to anyone who has partial or full Internet access, without regard to how they acquired such access. (This would extend also to users of commercial services such as America Online which have implemented or are implementing Internet gateways.) Finally, by making available more information and services of interest to the local commmunity and increasing the accessibility of such information and services via commercial Internet public access providers, your community network will encourage the growth of such commercial providers and thereby help hasten the advent of universally-available low-cost Internet and NII access for the general public. * Add value to existing Internet-related services where you bring unique resources to the task, and thus make best use of the knowledge and expertise of your community network and your partners. Use standard Internet services (e.g., the USENET conferencing system and add community network content to them where you can provide unique value not already present (e.g., custom online conferences for specialized local issues, or area- specific contributions to other online conferences). This allows you to avoid duplicating the efforts of others in cases where usable content or services already exist. You can then leverage these existing resources and spend more time on content and service creation specifically directed to local concerns. Finally, you can use these services to disseminate all types of community network-related information, whether general or originated by your partners. * Assist your partners with the technical skills necessary to become not just community network and Internet users, but community network and Internet information providers, thus helping them to develop the full range of skills that will empower them to use the Internet and emerging NII to serve their clients and the general public. Provide a technical environment that supports your efforts to train your partners to be effective community network content and service providers, and a technical training program that will assist your partners in becoming familiar and productive with new community network and Internet technologies. This training should cover both using your community network and the Internet and also providing content and services on your community network and the Internet. This will enable your partners to begin future independent efforts to provide NII-based information and services, and in turn free your community network to work with additional new partners.