Modules on this page
- dqd_threadpool
 - dqd_utils
 - dqd_log
 - nscache
 - dqd_db2 (needs updating)
 - dqd_tclpages (obsolete)
 - dqd_dirindex (obsolete)
 
Other stuff on this page
Other pages
The source for some of these things can be viewed here.
These are some modules I have written for AOLserver 3.0 and later.
- dqd_threadpool: Thread Pool and Job Queue Management (Browse source)
 - This module manages one or more thread pools and job
            queues. A Tcl program (such as an ADP or a Tcl page) can add
            Tcl scripts to the job queue. The queue has a pool of worker
            threads which execute the jobs asynchronously. The Tcl
	    program can retrieve the results of the jobs after they have
	    finished executing.
	    
Change history:
- 2004/10/15: Release 1.1. Use AOLserver 4.0.8 Makefile.
 - 2000/11/22: Release 1.0.
 
 - dqd_utils: Various Utilities (Browse source)
 - This module adds several Tcl commands to AOLserver:
	    
- dqd_internalredirect - a wrapper around the C API function Ns_ConnRedirect. This lets you send back the contents of a different URL (from the same server) without letting the client know.
 - dqd_md5 - computes MD5 hashes (cryptographic checksums).
 - dqd_nssetToList - extracts an ns_set's values into a Tcl list.
 - unlist - assigns the elements of a Tcl list to individual Tcl variables, efficiently. Yes, I left off the dqd_ prefix on this one.
 - dqd_detachfile and dqd_attachfile - share a Tcl channel across requests/threads/interpreters.
 - dqd_register_proxy - register a proc to handle proxy requests from browsers
 - dqd_rowsToXml - convert database rows to XML
 - dqd_rowsToJavaScript - convert database rows to JavaScript
 
Change history:
- 2006/11/02: Release 1.7. Escape newlines in dqd_rowsToJavaScript.
 - 2005/05/28: Release 1.6. Remove extra commas from dqd_rowsToJavaScript output to make Safari like it better and to make it JSON-compliant.
 - 2005/05/26: Release 1.5. dqd_rowsToXml, dqd_rowsToJavaScript.
 - 2004/10/15: Release 1.4. Drop support for Tcl 7. Use AOLserver 4.0.8 Makefile.
 - 2001/01/04: Release 1.3. dqd_register_proxy.
 - 2000/07/06: Release 1.2. Finally got around to making this compile with AOLserver 3.0 final due to e-mail from Li Chen.
 - 2000/03/08: Release 1.1. dqd_detachfile, dqd_attachfile.
 - 2000/01/20: Release 1.0. Added dqd_md5, dqd_nssetToList, unlist.
 - 1999/10/18: Original unnumbered release.
 
 - dqd_log: External Logging (Browse source)
 - This module allows AOLserver to send access log entries
	    directly to an external program.  I wrote it so that I could
	    manage my access logs with multilog.
	    
Change history:
- 2003/10/16: Release 2.3. Do not crash under AOLserver 4.
 - 2003/10/15: Release 2.2. Use AOLserver 4.0.8 Makefile.
 - 2003/03/06: Release 2.1. Fixed some typos in the documentation.
 - 2001/05/14: Release 2.0. Incompatible change. Now writes to a specified fd instead of running a program.
 - 2001/01/20: Release 1.1. Added AccelAddresses.
 - 2000/09/18: Release 1.0.
 
 - nscache: Tcl commands for using NsCache C API (Browse source)
 - 
	    This is a module that provides Tcl commands for accessing
	    AOLserver 3's NsCache API.  An NsCache is a hash table that
	    automatically manages either its memory usage or the
	    lifetimes of its contents.  I originally wrote this module
	    while at ArsDigita and included it in the ArsDigita
	    AOLserver distribution.  Since the collapse of ArsDigita it
	    seems to be difficult to come by.  Perhaps some kind soul
	    will put it in sourceforge...
	    
This module is sometimes referred to as
ns_cache. I mention that here so search engines will find this page when you search forns_cache. - dqd_db2: DB2 Database Driver (Browse source)
 - This is a database driver that lets AOLserver 3.0 access DB2
	    Universal Database version 6.1 (and maybe other versions).  It
	    includes support for accessing character and binary large objects
	    (CLOBs and BLOBs).
	    
Note: this will not compile out of the box with AOLserver 3.0 final. I wrote this back when AOLserver 3.0 was in beta, and the makefiles were changed since then, so this won't compile out of the box anymore. I don't use DB2 anymore or have it installed, so I haven't bothered fixing it. If you need to get this working and need help, send me e-mail.
Change history:
- 1999/12/22: Release 1.0.1. Fix typo in the sample nsd.tcl contained in README. Thanks to Dave Weis.
 - 1999/10/18: Release 1.0.
 
 - dqd_tclpages: Tcl Pages (obsolete)
 - AOLserver 2.3 allowed you to put .tcl files in your PageRoot.
	    When a visitor requested the file, AOLserver would run the file
	    as a Tcl script. For some reason, they removed this capability
	    from the original release of AOLserver 3.0. This module adds the
	    capability back in to AOLserver 3.0.  Of course then they went and
	    put the feature back in with release 3.0b6, so this module is now
	    obsolete.
	    
Change history:
- 1999/12/15: Release 1.1. Removed AtClose support to fix compile problems with AOLserver 3.0b4.
 - 1999/08/07: Fixed possible memory leak where I forgot to call Ns_DStringFree.
 - 1999/08/06: Fixes for clean Solaris compile. Thanks to markd@arsdigita.com.
 
 - dqd_dirindex: Dynamic Directory Indexing (obsolete)
 - This module allows AOLserver to dynamically generate indexes
	    for directories that don't have index files (e.g. index.html).
	    AOLserver 2.3.3 had this capability but it was removed in
	    the first release of AOLserver 3.0. This module restores the
	    capability.  But then they went and put the feature back in
	    starting with release 3.0b6, so this module is now obsolete.
	    
Change history:
- 2000/01/28: Release 1.0.
 
 - ini2tcl: ini to Tcl config translator (Browse source)
 - This perl script translates AOLserver .ini configuration files
	    into .tcl configuration files, preserving comments and
	    indentation.  It does a significantly better job than the
	    translate-ini script that comes with AOLserver.
	    
Sample usage:
perl ini2tcl < nsd.ini > nsd.tclChange history:
- 2000/03/08: Release 1.0.
 
 - Sample Bug Report for AOLserver (Browse source)
 - This tarball contains the bug report I sent to
	    DCI when I found and fixed a bug in the ADP
	    processor.  I use it as a template for all the bug
	    reports I send.  It contains a self-contained
	    test case (including a complete nsd.tcl), a
	    patch, and an HTML file with a description of
	    the bug and instructions on how to run the test
	    case.