CL-HTTP Development Projects

This page describes a set of development projects that you could contribute
to the CL-HTTP community. You will work with an international team of CL-HTTP
developers, and perhaps learn some interesting things about advanced Common
Lisp programming as you win recognition and build your reputation in the Lisp
community.
Please be a good citizen and contribute something, no matter how small,
to improve these tools for yourself and other users. Not only did somebody
else write this server, client, and web walker, they also empowered you with
the source code. Why not invest a little effort in return? In the end, you
will help yourself by showing that the Lisp culture can produce shared
resources.
Before contributing code, you may wish to consult the guidelines and efficiency considerations.
If you are working on some code for CL-HTTP, please send a paragraph (or a
URL) to www-cl@ai.mit.edu (or bug-cl-http@ai.mit.edu if you would
prefer less notice) explaining what you are doing, your time frame, and how to
contact you. That way, people will know what you are doing and can contact you
if they have ideas, suggestions, or want to help out. It can also help avoid
duplicated effort. Have a look at the
WWW-CL archives to see what other people are doing.

- Priority Projects
- Cascading Style Sheets
- VRML 2.0
- CLIM Graphics
- Client HTTP 1.1 Conformance
- Develop a CL-HTTP Tutorial Using Interbook
- Secure Sockets Layer (SSL)
- Server Enhancements
- Protocol Conformance
- Cascading Style Sheets:
Implement style sheet generation tools for integration with HTML 3.2 generation facilities.
- Content Negotiation: Implement the HTTP 1.1 content negotiation specification.
(see: RFC 2068)
- Multiple Languages & Character Sets
- CLIM Enhancements
- Implementation Enhancements
- Escape Characters In Exported Pathnames
- Double-Buffered Asynchronous Transfer
- Fill CLOS Caches On Start-Up Or Save of Binary Images
- Declarative Header Parsing/Generation
- Declarative URL Parsing/Generation
- Factor Into Component Modules
- Portable Dynamic Form Processing
- Secure HTTP
- Proxy Service: Add intelligent caching to proxy
implementation (see the CERN
server). This is pretty important for many companies that operate
through firewalls. It is also very handy for downloading URLs to a
powerbook for disconnected use
- Custom Logging
- Portable Remote CLOS Interface: Develop an object interface
using Inter-Language
Unification (ILU) from Xerox's
Palo Alto Research Center.
Develop interfaces to readily available persistent object stores and
CORBA.
- Performance Tools
- Logfile Replayer
- Metering
- HTML Display of Performance Statistics
- Tracing Tools
- Cruise the source code and look for bugs, incomplete
features, better numerical declarations, inefficiencies and write
patches to fix them.
- Annotation Service
- URN Name Service
- Server Documentation Projects
- Develop a CL-HTTP Tutorial Using Interbook.
Contact Peter Brusilovsky plb@cs.cmu.edu
for further information.
- Extend the online manual or tutorial
by writing one or more sections that explains how to do
something. The manual should be written in HTML and should
explain things with live working examples. We need to target
these audiences:
- Naive users who just want to serve web pages with
minimal fuss.
- Novices who want to Learn Lisp
- Lisp-capable people who want to write their own
response functions and hook up their own systems but
do not want to learn more about CL-HTTP than it takes
to solve their problem.
- Lisp Programmers who want to Learn the Server
- Extend and annotate the example file exports.lisp.
Improve the comments to make this example more of a
live tutorial. Add additional examples
illustrating any previously undocumented
features.
- Improve documentation strings and comments in
source code: Give priorities to those areas people
are most likely to use or find confusing.
- Wizards who want to understand the details of
CL-HTTP and the Web so they can experiment with new
extensions to CL-HTTP and the Web. There may be a
category of wizards who are not lisp hackers and we
should have a way to reach them.
- Overview Server & Architecture
- Interfacing Existing Applications
- Create icons and gifs for use spicing up CL-HTTP generated
pages and advertising the technology.
- Client Projects
- Client HTTP 1.1
Conformance: Identify all the client MUSTs in the http 1.1
specification. Prioritize them. Implement them in the order of
priority.
- Make the client RPC facility faster and more robust
- Web Walker Projects
- Web Site Maintenance: Develop an Web walker application for
finding all the dead urls on a web site.
- Extend the Web Walker for multithreaded and asynchronous operation
- Generate VRML views of Sites
- Develop Facilities for Periodic Site Walking: This involves
developing persistent actions that awake a certain times to execute a
Web Walking operation. The operations and any predicates need to be
store persistent as well. See: server realms (file or OODB storage) and
COMLINK persistent actions.
- Platform Specific Projects
- Lisp Machine Platform
- Concordia Interface: Develop a Web interface that provides
access to the Symbolics document examiner.
- Macintosh Platform
- Binary Application with User Interface: Develop a stand-alone
binary app so people without MCL can run the server. This involves
developing a GUI user interface from which the user can operate and
maintain the server. Among other things, it means an interface to
specifying the configuration file and ensuring that it is loaded on
start up. Have a look at the remote
administration interface for MacHTTP. Alternatively, a forms-based
approach would be portable across multiple platforms and would be safe
once secure http is incorporated.
- Apple CGI Interface: Develop CGI export types
that allow users to run CGI scripts developed for WebSTAR (MacHTTP ). See the tutorial
on CGI Scripts. After this works, a separate export type
can be developed to allow users to run UNIX-style CGI scripts
or Perl code much as they would with a UNIX based server
(e.g., CERN server). The UNIX world has a number of facilities
to which people have now become accustomed.
- Special Application
- Top-Level Loop
- Catch Errors
- Handle Apple Events
- Speed Up File Access
- OpenDoc Interface
- QuickDraw 3D Integration
- Wood DB Interface
- ODBC Interface
- MCL-Based WYSIWYG Web Client In FRED
- UNIX Platforms
- Send-Mail Interface
- PC Platform
- Port to Multithreaded Franz Allegro PC Lisp
- Port to CMU Lisp Contact: bug-cmucl-cl-http@ai.mit.edu
- Port to C Lisp
- Extensions, Add-Ons & Applications
- VRML 2.0 Synthesis:
Implement a VRML 2.0 generation package analogous to the distribution
VRML 1.0 facility. 4.0 browsers
from Netscape and Microsoft implement the standard.
- Integrating CLIM Graphics: Port the SRI CLIM
generation tools to CL-HTTP and portable lisp
- Secure Sockets Layer (SSL) Integrate SSL
support into the Web server and client using foreign function calls
into the freely available reference implementation in C. The C code and
specification distributed by Netscape allows non-commercial use
for free and commerical use for a license fee. A more ambitious effort
would rewrite the C code in Lisp tuned for speed. See also Apache-SSL
- Intelligent Proxy Cache Management
- Java Synthesis
- Java Presentations For Client
- Java Primitives Composable From LISP
- Active-X Synthesis
- Active-X Presentations For Client
- Active-X Primitives Composable From LISP
- Code Sharing and Distribution
- Build Web Collaboration Systems For Sharing Code:
Provide a forms interface that allows people to submit code or
extensions to CL-HTTP and retrieve submissions of others. Incorporate
a peer review system that allows people to rate software along various
dimensions.
- Higher-Level HTML Synthesis
- Cliche & Abstractions
- Lisp To HTML Translator
- Graphics
- Bar Charts
- Graphs
- Tree-Drawing
- Command Processor
- Automatic Generation of Navigational Links
- Graphics For Space Filling (e.g., Backgrounds)
- Emitting Audio
- MacInTalk Source
- Streamed
- Emitting Streamed Video: Implement facilities for emitting streamed video using standard formats.
- Use SMTP And NNTP To Distribute Hyperlinks
- Hyperlink-Based Mail Reader On The Web
- Specification For Collecting & Distributing Site Indices
- Network Traffic Watcher
- Mobile Lisp Code
- Secure Lisp Listener
- Safe Common Lisp Package
- No Side Effects
- Bounded Computation Time & Space
- Bounded Stack Depth
- Fasl Streams To Clients
- Server Trouble Shooter Diagnosis of Server Problems
Based On A Case Library Acquired By Experience
- Server Collaboration Site
- Register Servers
- Register People & Interests & Abilities
- Share Extensions
- Advertise Extensions
- Peer Review Extensions
- Automatic Patch Distribution
- Server Version Management System Enhancements
- Shared Hierarchical Hotlist Facility
- Constraint-Based URL/URN Locator
- Indexing & Search For Web Regions
- Gatherers On The Server
- Brokers For Delivery To Clients

John C. Mallery (jcma@ai.mit.edu) Rainer Joswig (joswig@lavielle.com)
M.I.T. Artificial
Intelligence Laboratory