<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://panoptic.com/mediawiki/aolserver/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dossy</id>
	<title>AOLserver Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://panoptic.com/mediawiki/aolserver/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dossy"/>
	<link rel="alternate" type="text/html" href="https://panoptic.com/wiki/aolserver/Special:Contributions/Dossy"/>
	<updated>2026-04-25T16:19:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Nsxmlrpc&amp;diff=15051</id>
		<title>Nsxmlrpc</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Nsxmlrpc&amp;diff=15051"/>
		<updated>2017-04-13T00:45:30Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Update links to code.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A module for XML-RPC is currently under development.&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
* http://panoptic.com/aolserver/nsxmlrpc/xmlrpc.tcl&lt;br /&gt;
* http://panoptic.com/aolserver/nsxmlrpc/xmlrpc.test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''XML-RPC Client'''&lt;br /&gt;
* '''ns_xmlrpc queue''' ''url method ?arg arg ...?''&lt;br /&gt;
&lt;br /&gt;
: Queues an XML-RPC request and returns an ID to the ns_http handle for later '''ns_xmlrpc wait'''.&lt;br /&gt;
* '''ns_xmlrpc wait''' ''id ?timeout?''&lt;br /&gt;
&lt;br /&gt;
: Waits for an XML-RPC request to finish, then parse the XML-RPC response and return a Tcl list containing the results as a Tcl list of key-value pairs.  Optional ''timeout'' (default 1 second) specifies how long to wait for the XML-RPC response.&lt;br /&gt;
* '''ns_xmlrpc call''' ''?-timeout timeout? url method ?arg arg ...?''&lt;br /&gt;
&lt;br /&gt;
: Short-hand that combines '''ns_xmlrpc queue''' and '''ns_xmlrpc wait'''.&lt;br /&gt;
&lt;br /&gt;
'''XML-RPC Server'''&lt;br /&gt;
* '''ns_xmlrpc bind''' ''url method proc''&lt;br /&gt;
&lt;br /&gt;
: Registers a XML-RPC endpoint at ''url'' and binds ''proc'' for ''method''.&lt;br /&gt;
* '''ns_xmlrpc fault''' ''?-indent indent? ?-types types? code string''&lt;br /&gt;
&lt;br /&gt;
: Formats an XML &amp;lt;methodResponse&amp;gt; fault response.  ''code'' is the numeric faultCode, and ''string'' is the faultString.  ''indent'' is either &amp;quot;none&amp;quot; for no whitespace between nodes (default), or 0..N spaces and newlines for pretty-printing.  ''types'' is a boolean which defaults to &amp;quot;yes&amp;quot; whether the child of a &amp;lt;value&amp;gt; node should be a node describing the datatype (string, int, struct, array, etc.) or not.&lt;br /&gt;
* '''ns_xmlrpc format''' ''?-indent indent? ?-types types? ?arg arg ...?''&lt;br /&gt;
&lt;br /&gt;
: Formats an XML &amp;lt;methodResponse&amp;gt; document.  Each ''arg'' represents a &amp;lt;param&amp;gt; node within the &amp;lt;params&amp;gt; node, and must be a Tcl list of two elements: type, and value.  e.g.: '''ns_xmlrpc format {string &amp;quot;hello world&amp;quot;} {i4 42}'''.  See '''ns_xmlrpc fault''' for description of ''indent'' and ''types''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Feature Requests:'''&lt;br /&gt;
&lt;br /&gt;
Nathaniel Haggard asks for HTTPS support for the XML-RPC client side.  Currently the code only supports HTTP using [[ns_http]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category Documentation]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=15049</id>
		<title>AOLserver Wiki</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=15049"/>
		<updated>2014-01-28T15:07:49Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Undo revision 15048 by Dossy (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://www.aolserver.com AOLserver] is a high performance web server with a powerful customization API.  The AOLserver Wiki is a comprehensive resource for all things AOLserver.'''&lt;br /&gt;
&lt;br /&gt;
If you're new to [[wiki]]'s, then [[Welcome, New Visitors]]!  Before you start editing, you may want to read over the [[Formatting Rules]].  To find pages grouped by category, [[Special:Categories|start here]].&lt;br /&gt;
&lt;br /&gt;
== Topics of Conversation ==&lt;br /&gt;
&lt;br /&gt;
* [[What is AOLserver]]?&lt;br /&gt;
* What [[Web Applications for AOLserver]] would you like to see? &lt;br /&gt;
* What [[AOLserver Bugs and Problems]] are you experiencing? &lt;br /&gt;
* What features does AOLserver need? Add them to the [[AOLserver Wishlist]]. &lt;br /&gt;
&lt;br /&gt;
* [[What's new in 4.5]] -- New features in version 4.5 of AOLserver.  This is the current major release of AOLserver.&lt;br /&gt;
&lt;br /&gt;
== AOLserver Resources: ==&lt;br /&gt;
&lt;br /&gt;
* [[Downloads]] -- Access to various AOLserver files and resources.&lt;br /&gt;
* [[Modules]] -- Complete list of '''over 70''' AOLserver extension modules and other [[AOLserver Contributed Software]].&lt;br /&gt;
* [[Toolkits]] -- Everything you need to build a complete website, fast.&lt;br /&gt;
* [[Languages]] -- Build websites in a varierty of different programming languages.&lt;br /&gt;
* [[Documentation]] -- Tcl and C API references, tutorials and guides.&lt;br /&gt;
* [[FAQ]] -- Frequently Asked Questions about AOLserver.&lt;br /&gt;
* [[AOLserver Improvement Proposals]]&lt;br /&gt;
* The [[AOLserver Cookbook]] -- A collection of questions, and code examples to answer them.&lt;br /&gt;
* [[AOLserver Packages]] -- Binary distributions of AOLserver in popular package management formats.&lt;br /&gt;
* [[Useful Links]]&lt;br /&gt;
* [http://panoptic.com/wiki/aolserver/Special:Recentchanges?feed=rss RSS 2.0 syndication] of this wiki's recent changes.&lt;br /&gt;
&lt;br /&gt;
== Developers' Guide (A Work In Progress) ==&lt;br /&gt;
&lt;br /&gt;
* [[AOLserver Developer's Guide]] -- A growing, community generated guide on how to develop, deploy and maintain applications using AOLserver including discussions of internals, troubleshooting, debugging, testing and tuning.&lt;br /&gt;
&lt;br /&gt;
== AOLserver Community ==&lt;br /&gt;
&lt;br /&gt;
* The AOLserver project [[Roadmap]], as well as the planned [[Features]] and changes.&lt;br /&gt;
* The [[People]] who work on and contribute to AOLserver, organized into [[Project Teams]].&lt;br /&gt;
* Come join us in our [http://www.aolserver.com/chat/ online chat], or just read the [http://panoptic.com/aolserver/chat/ chat logs].  You can participate on the chat either via IRC (irc.freenode.net:6667 #aolserver) or via AIM.&lt;br /&gt;
* There's also an [http://www.livejournal.com/community/aolserver/ AOLserver LiveJournal community].&lt;br /&gt;
* [[Sites That Run On AOLserver]]&lt;br /&gt;
* The [[OpenACS]] Project.&lt;br /&gt;
* The [[ProjectOpen]] Project (project management based on [[OpenACS]])&lt;br /&gt;
* [[AOLserver User Groups]]&lt;br /&gt;
* [[AOLserver Jobs]]&lt;br /&gt;
&lt;br /&gt;
== AOLserver Core Developers ==&lt;br /&gt;
&lt;br /&gt;
* [[Vision Statement]]&lt;br /&gt;
* [[CVS Commit Guidelines]]&lt;br /&gt;
* [http://www.aolserver.com/docs/devel/tech/standards.html AOLserver Engineering Standards Manual]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=15048</id>
		<title>AOLserver Wiki</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=15048"/>
		<updated>2014-01-28T15:07:03Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[http://www.aolserver.com AOLserver] is a high performance web server with a powerful customization API.  The AOLserver Wiki is a comprehensive resource for all things AOLserver.'''&lt;br /&gt;
&lt;br /&gt;
If you're new to [[wiki]]'s, then [[Welcome, New Visitors]]!  Before you start editing, you may want to read over the [[Formatting Rules]].  To find pages grouped by category, [[Special:Categories|start here]].&lt;br /&gt;
&lt;br /&gt;
== Topics of Conversation ==&lt;br /&gt;
&lt;br /&gt;
* [[What is AOLserver]]?&lt;br /&gt;
* What [[Web Applications for AOLserver]] would you like to see? &lt;br /&gt;
* What [[AOLserver Bugs and Problems]] are you experiencing? &lt;br /&gt;
* What features does AOLserver need? Add them to the [[AOLserver Wishlist]]. &lt;br /&gt;
&lt;br /&gt;
* [[What's new in 4.5]] -- New features in version 4.5 of AOLserver.  This is the current major release of AOLserver.&lt;br /&gt;
&lt;br /&gt;
== AOLserver Resources: ==&lt;br /&gt;
&lt;br /&gt;
* [[Downloads]] -- Access to various AOLserver files and resources.&lt;br /&gt;
* [[Modules]] -- Complete list of '''over 70''' AOLserver extension modules and other [[AOLserver Contributed Software]].&lt;br /&gt;
* [[Toolkits]] -- Everything you need to build a complete website, fast.&lt;br /&gt;
* [[Languages]] -- Build websites in a varierty of different programming languages.&lt;br /&gt;
* [[Documentation]] -- Tcl and C API references, tutorials and guides.&lt;br /&gt;
* [[FAQ]] -- Frequently Asked Questions about AOLserver.&lt;br /&gt;
* [[AOLserver Improvement Proposals]]&lt;br /&gt;
* The [[AOLserver Cookbook]] -- A collection of questions, and code examples to answer them.&lt;br /&gt;
* [[AOLserver Packages]] -- Binary distributions of AOLserver in popular package management formats.&lt;br /&gt;
* [[Useful Links]]&lt;br /&gt;
* [http://panoptic.com/wiki/aolserver/Special:Recentchanges?feed=rss RSS 2.0 syndication] of this wiki's recent changes.&lt;br /&gt;
&lt;br /&gt;
== Developers' Guide (A Work In Progress) ==&lt;br /&gt;
&lt;br /&gt;
* [[AOLserver Developer's Guide]] -- A growing, community generated guide on how to develop, deploy and maintain applications using AOLserver including discussions of internals, troubleshooting, debugging, testing and tuning.&lt;br /&gt;
&lt;br /&gt;
== AOLserver Community ==&lt;br /&gt;
&lt;br /&gt;
* The AOLserver project [[Roadmap]], as well as the planned [[Features]] and changes.&lt;br /&gt;
* The [[People]] who work on and contribute to AOLserver, organized into [[Project Teams]].&lt;br /&gt;
* Come join us in our [http://www.aolserver.com/chat/ online chat], or just read the [http://panoptic.com/aolserver/chat/ chat logs].  You can participate on the chat either via IRC (irc.freenode.net:6667 #aolserver) or via AIM.&lt;br /&gt;
* There's also an [http://www.livejournal.com/community/aolserver/ AOLserver LiveJournal community].&lt;br /&gt;
* [[Sites That Run On AOLserver]]&lt;br /&gt;
* The [[OpenACS]] Project.&lt;br /&gt;
* The [[ProjectOpen]] Project (project management based on [[OpenACS]])&lt;br /&gt;
* [[AOLserver User Groups]]&lt;br /&gt;
* [[AOLserver Jobs]]&lt;br /&gt;
&lt;br /&gt;
== AOLserver Core Developers ==&lt;br /&gt;
&lt;br /&gt;
* [[Vision Statement]]&lt;br /&gt;
* [[CVS Commit Guidelines]]&lt;br /&gt;
* [http://www.aolserver.com/docs/devel/tech/standards.html AOLserver Engineering Standards Manual]&lt;br /&gt;
&lt;br /&gt;
test&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Michael_Cleverly&amp;diff=15047</id>
		<title>Michael Cleverly</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Michael_Cleverly&amp;diff=15047"/>
		<updated>2014-01-28T15:05:17Z</updated>

		<summary type="html">&lt;p&gt;Dossy: restored&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Homepage: http://michael.cleverly.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''AOLserver [[Modules]]'''&lt;br /&gt;
* [[nstcl]] -- A reimplementation of the AOLserver API in pure Tcl.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category Home Page]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=User:Spam_cleanup_script&amp;diff=14654</id>
		<title>User:Spam cleanup script</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=User:Spam_cleanup_script&amp;diff=14654"/>
		<updated>2012-07-09T17:43:44Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Protected &amp;quot;User:Spam cleanup script&amp;quot; ([edit=sysop] (indefinite) [move=sysop] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cleanup performed by the [https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/SpamBlacklist.git;a=blob;f=cleanup.php;hb=HEAD cleanup.php] script of the [http://www.mediawiki.org/wiki/Extension:SpamBlacklist SpamBlacklist] extension.&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=User:Spam_cleanup_script&amp;diff=14651</id>
		<title>User:Spam cleanup script</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=User:Spam_cleanup_script&amp;diff=14651"/>
		<updated>2012-07-09T17:43:19Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Created page with &amp;quot;Cleanup performed by the [https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/SpamBlacklist.git;a=blob;f=cleanup.php;hb=HEAD cleanup.php] script of the [http://www.me...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cleanup performed by the [https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/SpamBlacklist.git;a=blob;f=cleanup.php;hb=HEAD cleanup.php] script of the [http://www.mediawiki.org/wiki/Extension:SpamBlacklist SpamBlacklist] extension.&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Sites_That_Run_On_AOLserver&amp;diff=5880</id>
		<title>Sites That Run On AOLserver</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Sites_That_Run_On_AOLserver&amp;diff=5880"/>
		<updated>2010-09-21T18:59:27Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Reverted edits by Cargames (Talk) to last revision by Markm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is (a probably incomplete) list of sites that run on AOLserver.  Some you will recognize, some you probably won't.&lt;br /&gt;
&lt;br /&gt;
Note: Please add entries in the following format:&lt;br /&gt;
* Site name | Version | URL | description (optional)&lt;br /&gt;
&lt;br /&gt;
In order to appear on this list, the server '''MUST''' respond with a &amp;quot;Server:&amp;quot; header in the HTTP response which indicates that it is running AOLserver, and what version.&lt;br /&gt;
&lt;br /&gt;
The following is a list of sites running some version of AOLserver at AOL:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;tabulardata&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- class=&amp;quot;header&amp;quot;&lt;br /&gt;
! Site name !! Version !! URL !! Description (optional)&lt;br /&gt;
|-&lt;br /&gt;
| AOL.COM || AOLserver/3.4.2 || http://aol.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Netscape || AOLserver/3.5.5 || http://home.netscape.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Digital City || AOLserver/4.0 || http://home.digitalcity.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| AOL Mail || AOLserver/3.5.9 || http://webmail.aol.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Moviefone || ArtBlast/3.5.4 || http://www.moviefone.com/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are non-AOL sites that also use some version of AOLserver:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;tabulardata&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- class=&amp;quot;header&amp;quot;&lt;br /&gt;
! Site name !! Version !! URL !! Description (optional)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 4.1.x'''&lt;br /&gt;
|-&lt;br /&gt;
| the CodeMill || AOLserver/4.1.0 || http://www.thecodemill.biz || host of the #aolserver IRC logs[http://www.thecodemill.biz/services/aolserver/irc/]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 4.0.x'''&lt;br /&gt;
|-&lt;br /&gt;
| [[Panoptic Computer Network]] || AOLserver/4.0.10a || http://panoptic.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| NS_SHUTDOWN || AOLserver/4.0.10a || http://www.nsshutdown.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Bayt.com || AOLserver/4.0.10 || http://www.bayt.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| CiteULike || AOLserver/4.0.10 || http://www.citeulike.org/ ||&lt;br /&gt;
|-&lt;br /&gt;
| OpenACS || AOLserver/4.0.9 || http://openacs.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons || AOLserver/4.0.8 || http://creativecommons.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Volunteer Solutions || AOLserver/4.0.8 || http://www.volunteersolutions.org/ ||&lt;br /&gt;
|-&lt;br /&gt;
| jongriffin.com || AOLserver/4.0.5 || http://www.jongriffin.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Rate Your Music || AOLserver/4.0.10 || http://rateyourmusic.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Salsa Blanca || AOLserver/4.0.5 || http://www.salsablanca.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Kurup.org || AOLserver/4.0.10 || http://kurup.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Seven Sisters Trading || AOLserver/4.0.3 || http://www.7-sisters.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| AIESEC.net || AOLserver/4.0 || http://www.aiesec.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| Don Baccus Photography || AOLserver/4.0 || http://donb.photo.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| M³ Beratungsgesellschaft || AOLserver/4.0 || http://www.m3-beratung.de/ ||&lt;br /&gt;
|-&lt;br /&gt;
| photo.net || AOLserver/4.0 || http://www.photo.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| Treffpunkt || AOLserver/4.0.10 || http://www.treffpunktsystems.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Uptime || Aolserver/4.0.10 || http://uptime.openacs.org||&lt;br /&gt;
|-&lt;br /&gt;
| Myturl || Aolserver/4.0.10 || http://myturl.com || tinyurl clone&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.5.x'''&lt;br /&gt;
|-&lt;br /&gt;
| OneWeek || AOLserver/3.5.10 || http://oneweek.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Vitamist Spray Vitamins || AOLserver/3.5.6 || http://www.vitamist.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Anchor Baptist Church || AOLserver/3.5.0 || http://www.anchorbaptist.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Blue Ridge Amateur Radio Club || NaviServer/2.0 AOLserver/3.5.0 || http://www.radioclub.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Irish Tribute || AOLserver/3.5.0 || http://www.irishtribute.com/ || IrishAbroad's tribute site for the WTC dead and missing&lt;br /&gt;
|-&lt;br /&gt;
| online.ie || AOLserver/3.5.0 || http://www.online.ie/ || Irish news portal&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.4.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Polska.pl || AOLserver/3.4z4l || http://www.polska.pl/ || &lt;br /&gt;
|-&lt;br /&gt;
| AMTDA || AOLserver/3.4.2 || http://www.amtda.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Away.com || AOLserver 3.4.2 || http://www.away.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Onet.pl || AOLserver/3.4.2 || http://www.onet.pl/ || &lt;br /&gt;
|-&lt;br /&gt;
| Techspex || AOLserver/3.4.2 || http://www.techspex.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| University of Hawaii Athletics || AOLserver/3.4.2 || http://uhathletics.hawaii.edu/ || &lt;br /&gt;
|-&lt;br /&gt;
| Vivtek || AOLserver/3.4.2 || http://www.vivtek.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| unresponsive.net || AOLserver/3.4 || http://www.unresponsive.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| DolphinGames || AOLserver/3.4.2 || http://www.dolphingames.cz/ || &amp;quot;Server:&amp;quot; header renamed to DolphinGames/1.0.0; online wap and sms games; internal run also 4.0.x aol servers&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.3.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Akoor || AOLserver/3.3.1+ad13 || http://www.akoor.com/ || a cultural french quiz site&lt;br /&gt;
|-&lt;br /&gt;
| Bitzi || AOLserver/3.3.1+ad13 || http://bitzi.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Caltech || AOLserver/3.3.1+ad13 || http://www.caltech.edu/ || &lt;br /&gt;
|-&lt;br /&gt;
| Greatest Networker dot.Community || AOLserver/3.3.1+ad13 || http://www.greatestnetworker.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Infogettable.net Backgammon || AOLserver/3.3.1+ad13 || http://backgammon.infogettable.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| thedesignexperience || AOLserver/3.3.1+ad13 || http://www.thedesignexperience.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| ]project-open[  || AOLserver/3.3.1+ad13 || http://projop.dnsalias.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| ]project-consulting[ Demoserver || AOLserver/3.3.1+ad13 || http://pcdemo.dnsalias.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| ]project-translation[ Demoserver || AOLserver/3.3.1+ad13 || http://ptdemo.dnsalias.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.2.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Investsberbank || AOLserver/3.2 || http://www.isb.ru/ || Joint-Stock Bank &amp;quot;Investsberbank&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| MyWorkoutProgram || AOLserver/3.2+ad12 || http://www.myworkoutprogram.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 2.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Asimba Trainer Pro || NaviServer/2.0 AOLserver/2.3.3 || http://www.asimbatrainerpro.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Fitrex.com || NaviServer/2.0 AOLserver/2.3.3 || http://www.fitrex.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| WGCR Radio || NaviServer/2.0 AOLserver/2.3.3 || http://www.wgcr.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| British Cattle Movement Service || NaviServer/2.0 AOLserver/2.3.3 || http://www.bcms.gov.uk/ || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, every website on this list is should be using AOLserver as well: http://openacs.org/community/sites/&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
&lt;br /&gt;
'''Why MUST?''' Some people turn that off as part of their security principles. A known bug in Version 4.x would allow an attacker do simply grep through the following list. Could we please take that into consideration? How many sites would, e.g., introduce .adp pages just to get it on this _huge_ (irony) list?&lt;br /&gt;
&lt;br /&gt;
''If anyone takes &amp;quot;security through obscurity&amp;quot; seriously enough to obfuscate the Server: header that's returned, then they also shouldn't want to be included on this list for the same reasons, so that people don't know they run AOLserver.  Everyone else is free to advertise their sites here to try and ensure they get picked up by web server surveys like Netcraft, et. al.''&lt;br /&gt;
&lt;br /&gt;
Ok, good point. You're perfectly right. Maybe I was just annoyed by being deleted from the list without explanation about the reason (which was added later). But why reject sites that don't expose the Server header for whatever reason? It is very easy to test that a site is running AOLserver (as easy as testing if a bug exists, of course). Why should we insist on detailed versioning?&lt;br /&gt;
&lt;br /&gt;
''It makes maintaining the list easier.  It'd be annoying for folks to add sites to this list and claim they run AOLserver, and then three months later the site switches to Apache.  Who has the time to go poking and prodding to do server detection?  It's easy to automate a script that asks &amp;quot;do I get a Server: AOLserver/xxx in the HTTP response?&amp;quot; and have it automatically keep the list fresh, which is what I currently have and run periodically.  If folks running Apache/IIS want to falsely report AOLserver, that's annoying because the list will be inaccurate, but at least AOLserver will get the credit for the sites.  :-)''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Sites that claim to run AOLserver 3.x, because the person who entered it into this Wiki assured it at that point in time. It may happen that the site runs Apache when you visit it and that may result in immediate pain, suffering or death. You have been warned!'''&lt;br /&gt;
* removed&lt;br /&gt;
&lt;br /&gt;
''The links on the pages look awfully Vignette CURL-like.  Is this site really running AOLserver?  How can you prove it?''&lt;br /&gt;
&lt;br /&gt;
How does a label in the header prove it? But we had this already. I started this rubric ''Sites that claim to run...'' to go around it. But I have absolutely no problem to remove all my sites (including the ones who have the header) from this wiki page in order to satisfy this principle.&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Modules&amp;diff=5879</id>
		<title>Modules</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Modules&amp;diff=5879"/>
		<updated>2010-09-21T18:58:00Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Undo revision 5721 by 3qdesigns123 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also: [[Toolkits]] and [[Languages]]''&lt;br /&gt;
&lt;br /&gt;
''[[Jamie Rasmussen]] maintains a list of AOLserver modules tested against Windows[http://empoweringminds.spd.dcu.ie/openacs/aolserver_modules].  (Not recently updated - JR)''&lt;br /&gt;
&lt;br /&gt;
== Standard Modules ==&lt;br /&gt;
&lt;br /&gt;
AOLserver ships with the following modules:&lt;br /&gt;
&lt;br /&gt;
* [[nscgi]] -- Standard CGI support for running external C programs, perl scripts etc.&lt;br /&gt;
* [[nscp]] -- Admin/debug support via a telnet like interface into a running server.&lt;br /&gt;
* [[nsdb]] -- The database interface, loads database specific drivers (below).&lt;br /&gt;
* [[nsext]] -- Communicates with external database drivers via proxy daemon.&lt;br /&gt;
* [[nslog]] -- Common log format or extended common log format access logging.&lt;br /&gt;
* [[nsperm]] -- Access control lists for groups/users, supports basic auth.&lt;br /&gt;
* [[nsproxy]] -- Execute Tcl scripts in an external process &lt;br /&gt;
* [[nssock]] -- Standard [[socket driver]], used for HTTP requests.&lt;br /&gt;
* [[nsssl]] -- SSL [[socket driver]], links against proprietary RSA BSAFE library (not supplied).&lt;br /&gt;
&lt;br /&gt;
== Database Drivers ==&lt;br /&gt;
&lt;br /&gt;
AOLserver database drivers are either internal or external.  Internal drivers are shared libraries that are loaded in-process with the webserver -- they provide the best performance.  External drivers are shared libraries which are loaded by the AOLserver database proxy daemon [[nsext]], which communicates with the webserver process via sockets.  The advantage of running the database driver external to the webserver is that it isolates buggy, non-threadsafe database access libraries.  These days however this is largely unneccessary, and the external drivers are usually slower due to context switching overhead.&lt;br /&gt;
&lt;br /&gt;
* [[nsfb]] -- Internal '''Firebird|Interbase''' driver.&lt;br /&gt;
* [[dqd_db2]] -- Internal '''IBM DB2''' driver (unmaintained).&lt;br /&gt;
* [[nsberkeleydb]] -- Internal '''BerkeleyDB''' driver.&lt;br /&gt;
* [[nsfreetds]] -- Internal MS '''SQL Server'''/'''Sybase''' driver.&lt;br /&gt;
* [[nsinformix]] -- Internal '''Informix''' driver.&lt;br /&gt;
* [[nsingres]] -- Internal '''Ingres r3''' driver.&lt;br /&gt;
* [[nsibasepd]] -- External '''Interbase''' driver.&lt;br /&gt;
* [[nsmysql]] -- Internal '''MySQL''' driver.&lt;br /&gt;
* [[nsodbc]] -- Internal '''ODBC''' driver.&lt;br /&gt;
* [[nsoracle]] -- Internal '''Oracle''' driver.&lt;br /&gt;
* [[nspostgres]] -- Internal '''PostgreSQL''' driver.&lt;br /&gt;
* [[nssolid]] -- Internal '''Solid''' driver.&lt;br /&gt;
* [[nssqlite2]] -- Internal '''SQLite v2''' driver.&lt;br /&gt;
* [[nssqlite3]] -- Internal '''SQLite v3''' driver.&lt;br /&gt;
* [[nsunixodbc]] -- Internal ODBC driver which uses the '''unixODBC''' driver.&lt;br /&gt;
&lt;br /&gt;
== Encryption / Security ==&lt;br /&gt;
&lt;br /&gt;
* [[nsblowfish]] -- Encrypt Tcl strings with Blowfish cypher and hex encode.&lt;br /&gt;
* [[nsencrypt]] -- Uses OpenSSL to encrypt using the AES, Blowfish, Cast5, IDEA and DES cyphers.&lt;br /&gt;
* [[nsnss]] -- New SSL [[socket driver]], links against Netscape's portable runtime (NSPR) and security services (NSS) libraries.&lt;br /&gt;
* [[nsopenssl]] -- SSL [[socket driver]] links against OpenSSL, and also provides client connection capabilities.&lt;br /&gt;
* [[nspasswd]] -- CRYPT, MD5, SMD5, SHA and SSHA hashing algorithms.&lt;br /&gt;
* [[nssha1]] -- AOLserver module to perform SHA1 hashes.&lt;br /&gt;
* [[nspam]] -- Interface to Pluggable Authentication Modules (PAM).&lt;br /&gt;
* [[nsdigest]] -- Access control lists for groups/users (like [[nsperm]]), supports digest authentication.&lt;br /&gt;
* [[nsmhash]] -- Implementation of mhash library interface to hash, hmac and keygen algorithms (MD5,SHA1, ...). Available shared with nsv_*.&lt;br /&gt;
* [[nsmcrypt]] -- Implementation of mcrypt library interface to crypt,decrypt algorithms (blowfish, des, ...). Available shared with nsv_*.&lt;br /&gt;
&lt;br /&gt;
== Virtual Hosting ==&lt;br /&gt;
&lt;br /&gt;
AOLserver 2.x and 4.x have built-in support for software or name-based [[virtual hosting]], but AOLserver 3.x does not.  Hardware virtual hosting (each server on its own port or IP) is supported across all three versions.&lt;br /&gt;
&lt;br /&gt;
* [[nsvhr]] -- Redirecting proxy, passes virtualy hosted requests back to standalone server.&lt;br /&gt;
* [[nsunix]] -- [[socket driver]] for unix domain sockets, complements '''nsvhr'''.&lt;br /&gt;
* Patches to nsvhr and nsunix by [[Jerry Asher]] [http://web.hollyjerry.org:16080/]&lt;br /&gt;
* [[nssmartvh]] -- C and Tcl based smart virtual hosting module, by [[Zoro]]&lt;br /&gt;
* [[vat]] -- Tcl based Vhost Abstract Template Module, by [[Tom Jackson]]&lt;br /&gt;
* C-based virtual hosting module [http://deadlock.et.tudelft.nl/~daniel/vhost.html]&lt;br /&gt;
* [[nsvirthost]]&lt;br /&gt;
&lt;br /&gt;
== Charting ==&lt;br /&gt;
&lt;br /&gt;
* [[nsgdchart]] -- Generate png/jpg charts using open source gd library.&lt;br /&gt;
* [[nschartdir]] -- Generate charts using proprietary ChartDirector library.&lt;br /&gt;
* [[nsgd]] -- Generate png,jpg,wbmp,gif,... images using open source gd library.&lt;br /&gt;
* [[nsgraph]] -- &lt;br /&gt;
* i-no graphing module using gd library (defunct: [http://www.i-no.com/art/inochart.html])&lt;br /&gt;
&lt;br /&gt;
== XML ==&lt;br /&gt;
&lt;br /&gt;
* [[tDOM]] -- a Tcl extension which provides XML/XSLT functionality.&lt;br /&gt;
* [[nsxml]] -- &lt;br /&gt;
* [[nsexpat]] -- Interface to Expat&lt;br /&gt;
&lt;br /&gt;
== Web Services ==&lt;br /&gt;
&lt;br /&gt;
* [[nssoap]] -- ''unfinnished, unsupported''&lt;br /&gt;
* [[nsxmlrpc]] -- XML-RPC server and client API [http://openacs.org/sdm/one-package.tcl?package_id=12]&lt;br /&gt;
&lt;br /&gt;
== WebDAV ==&lt;br /&gt;
&lt;br /&gt;
* [[nsdav]] -- Port of Apache's WebDAV [http://www.webdav.org/mod_dav/] support for AOLserver.&lt;br /&gt;
* [[nswebdav]] -- &lt;br /&gt;
* [[tDAV]] -- A WebDAV server module that uses [[tDOM]].&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
* [[dqd_log]] -- Makes AOLserver log to a file descriptor.&lt;br /&gt;
* [[dqd_threadpool]] -- Job scheduling system with Tcl interface.&lt;br /&gt;
* [[dqd_utils]] -- collection of half a dozen small utility procs.&lt;br /&gt;
* [[nsadmin]] -- Database admin/log viewing features from v2 ported to v3.&lt;br /&gt;
* [[nsaspell]] -- Aspell Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsbinarysupport]] -- Write 8bit strings to connection without translation.&lt;br /&gt;
* [[nscache]] -- Tcl interface to AOLserver's caching API ([[ns_cache]] is builtin in AOLserver 4.5.1 or newer)&lt;br /&gt;
* [[nsclamav]] -- ClamAV Anti-Virus Interface Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsdci]] -- AOL's Digital City extensions (distributed cache, among other goodies) (http://code.google.com/p/nsdci/)&lt;br /&gt;
* [[nsdns]] -- DNS Server/Proxy Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsdqe]] -- Collection of utilities including caching, page counter, virtual hosting etc.&lt;br /&gt;
* [[nsexample]] -- An example module to help guide new module writers.&lt;br /&gt;
* [[nsfortune]] - Fortune like game module, uses real fortune files&lt;br /&gt;
* [[nsftp]] -- FTP server front end for AOLserver.&lt;br /&gt;
* [[nsfts]] -- Interface to Postgres full text search engine.&lt;br /&gt;
* [[nsimage]] -- returns sizes of various modules, implements [[ns_image]] &amp;amp; [[ns_pngsize]], replaces  [[ns_jpegsize]] &amp;amp; [[ns_gifsize]]&lt;br /&gt;
* [[nsimap]] -- IMAP Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsjabber]] --&lt;br /&gt;
* [[nsjk2]] -- Jakarta connector&lt;br /&gt;
* [[nsldap]] -- LDAP client&lt;br /&gt;
* [[nsmaverix]] -- SMTP Proxy with anti-spam/anti-virus/whitelist/greylist/blacklist capabilities and Web interface [http://www.crystalballinc.com/vlad/software/maverix/]&lt;br /&gt;
* [[nsmsg]] - IPC message module for AOLserver&lt;br /&gt;
* [[ns_pkg]] -- Dynamic Tcl package loading.&lt;br /&gt;
* [[nspool]] -- Pools of sockets, pipes and external processes.&lt;br /&gt;
* [[nsprofile]] -- Time execution of Tcl commands.&lt;br /&gt;
* [[nsreturnz]] -- Gzip content encoding for dynamic requests.&lt;br /&gt;
* [[nsrewrite]] -- &lt;br /&gt;
* [[nsroaming]] -- Netscape Navigator 4 Roaming Profiles.&lt;br /&gt;
* [[nssavi]] -- SOPHOS Anti-Virus Interface Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nssession]] -- Session Management&lt;br /&gt;
* [[nssession (C module)]] -- Sessions implemented as a C module&lt;br /&gt;
* [[nssnmp]] -- SNMP Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nssys]] - Unix system calls, including chmod, ioctl, fsstat, syslog, signal&lt;br /&gt;
* [[nstelemetry]] -- &lt;br /&gt;
* [[nsthreadpool]] -- &lt;br /&gt;
* [[nsuuid]] -- UUID generator module&lt;br /&gt;
* [[nszlib]] -- Zlib Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsperl]] -- Embedded Perl module (not production ready) [http://jam.sessionsnet.org/files/file?file_id=5477]&lt;br /&gt;
&lt;br /&gt;
== Additional Software ==&lt;br /&gt;
&lt;br /&gt;
* [[jk-voting]] -- Example DB based Voting Booth&lt;br /&gt;
* [http://bas.scheffers.net/aolserver/ Cache Tools], by [[Bas Scheffers]] -- I haven't worked with this or tested it in years, would like to hear from users!&lt;br /&gt;
* Tcl AutoLoader for AOLServer by Hal Heisler [http://www.heisler.net/hal]&lt;br /&gt;
* AOLserver 3.x Remote Administration Modules [http://www.scriptkitties.com/]&lt;br /&gt;
* HTTP Cookie Library [http://www.scriptkitties.com/]&lt;br /&gt;
* Simple-Templating System [http://www.oakroad.net/simple-templates/]&lt;br /&gt;
* [[nstest]]&lt;br /&gt;
* [[William Webb]] has a list of some unmaintained AOLserver software he created which may still be useful to you.&lt;br /&gt;
* AM.net[http://aolserver.am.net] maintains a page of AOLserver resources which includes an [[ADP]] pareser module and a module which fetches web pages.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Modules&amp;diff=5878</id>
		<title>Modules</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Modules&amp;diff=5878"/>
		<updated>2010-09-21T18:55:33Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Reverted edits by Poersz (Talk) to last revision by 3qdesigns123&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''See also: [[Toolkits]] and [[Languages]]''&lt;br /&gt;
&lt;br /&gt;
''[[Jamie Rasmussen]] maintains a list of AOLserver modules tested against Windows[http://empoweringminds.spd.dcu.ie/openacs/aolserver_modules].  (Not recently updated - JR)''&lt;br /&gt;
&lt;br /&gt;
== Standard Modules ==&lt;br /&gt;
&lt;br /&gt;
AOLserver ships with the following modules:&lt;br /&gt;
&lt;br /&gt;
* [[nscgi]] -- Standard CGI support for running external C programs, perl scripts etc.&lt;br /&gt;
* [[nscp]] -- Admin/debug support via a telnet like interface into a running server.&lt;br /&gt;
* [[nsdb]] -- The database interface, loads database specific drivers (below).&lt;br /&gt;
* [[nsext]] -- Communicates with external database drivers via proxy daemon.&lt;br /&gt;
* [[nslog]] -- Common log format or extended common log format access logging.&lt;br /&gt;
* [[nsperm]] -- Access control lists for groups/users, supports basic auth.&lt;br /&gt;
* [[nsproxy]] -- Execute Tcl scripts in an external process &lt;br /&gt;
* [[nssock]] -- Standard [[socket driver]], used for HTTP requests.&lt;br /&gt;
* [[nsssl]] -- SSL [[socket driver]], links against proprietary RSA BSAFE library (not supplied).&lt;br /&gt;
&lt;br /&gt;
== Database Drivers ==&lt;br /&gt;
&lt;br /&gt;
AOLserver database drivers are either internal or external.  Internal drivers are shared libraries that are loaded in-process with the webserver -- they provide the best performance.  External drivers are shared libraries which are loaded by the AOLserver database proxy daemon [[nsext]], which communicates with the webserver process via sockets.  The advantage of running the database driver external to the webserver is that it isolates buggy, non-threadsafe database access libraries.  These days however this is largely unneccessary, and the external drivers are usually slower due to context switching overhead.&lt;br /&gt;
&lt;br /&gt;
* [[nsfb]] -- Internal '''Firebird|Interbase''' driver.&lt;br /&gt;
* [[dqd_db2]] -- Internal '''IBM DB2''' driver (unmaintained).&lt;br /&gt;
* [[nsberkeleydb]] -- Internal '''BerkeleyDB''' driver.&lt;br /&gt;
* [[nsfreetds]] -- Internal MS '''SQL Server'''/'''Sybase''' driver.&lt;br /&gt;
* [[nsinformix]] -- Internal '''Informix''' driver.&lt;br /&gt;
* [[nsingres]] -- Internal '''Ingres r3''' driver.&lt;br /&gt;
* [[nsibasepd]] -- External '''Interbase''' driver.&lt;br /&gt;
* [[nsmysql]] -- Internal '''MySQL''' driver.&lt;br /&gt;
* [[nsodbc]] -- Internal '''ODBC''' driver.&lt;br /&gt;
* [[nsoracle]] -- Internal '''Oracle''' driver.&lt;br /&gt;
* [[nspostgres]] -- Internal '''PostgreSQL''' driver.&lt;br /&gt;
* [[nssolid]] -- Internal '''Solid''' driver.&lt;br /&gt;
* [[nssqlite2]] -- Internal '''SQLite v2''' driver.&lt;br /&gt;
* [[nssqlite3]] -- Internal '''SQLite v3''' driver.&lt;br /&gt;
* [[nsunixodbc]] -- Internal ODBC driver which uses the '''unixODBC''' driver.&lt;br /&gt;
&lt;br /&gt;
== Encryption / Security ==&lt;br /&gt;
&lt;br /&gt;
* [[nsblowfish]] -- Encrypt Tcl strings with Blowfish cypher and hex encode.&lt;br /&gt;
* [[nsencrypt]] -- Uses OpenSSL to encrypt using the AES, Blowfish, Cast5, IDEA and DES cyphers.&lt;br /&gt;
* [[nsnss]] -- New SSL [[socket driver]], links against Netscape's portable runtime (NSPR) and security services (NSS) libraries.&lt;br /&gt;
* [[nsopenssl]] -- SSL [[socket driver]] links against OpenSSL, and also provides client connection capabilities.&lt;br /&gt;
* [[nspasswd]] -- CRYPT, MD5, SMD5, SHA and SSHA hashing algorithms.&lt;br /&gt;
* [[nssha1]] -- AOLserver module to perform SHA1 hashes.&lt;br /&gt;
* [[nspam]] -- Interface to Pluggable Authentication Modules (PAM).&lt;br /&gt;
* [[nsdigest]] -- Access control lists for groups/users (like [[nsperm]]), supports digest authentication.&lt;br /&gt;
* [[nsmhash]] -- Implementation of mhash library interface to hash, hmac and keygen algorithms (MD5,SHA1, ...). Available shared with nsv_*.&lt;br /&gt;
* [[nsmcrypt]] -- Implementation of mcrypt library interface to crypt,decrypt algorithms (blowfish, des, ...). Available shared with nsv_*.&lt;br /&gt;
&lt;br /&gt;
== Virtual Hosting ==&lt;br /&gt;
&lt;br /&gt;
AOLserver 2.x and 4.x have built-in support for software or name-based [[virtual hosting]], but AOLserver 3.x does not.  Hardware virtual hosting (each server on its own port or IP) is supported across all three versions.&lt;br /&gt;
&lt;br /&gt;
* [[nsvhr]] -- Redirecting proxy, passes virtualy hosted requests back to standalone server.&lt;br /&gt;
* [[nsunix]] -- [[socket driver]] for unix domain sockets, complements '''nsvhr'''.&lt;br /&gt;
* Patches to nsvhr and nsunix by [[Jerry Asher]] [http://web.hollyjerry.org:16080/]&lt;br /&gt;
* [[nssmartvh]] -- C and Tcl based smart virtual hosting module, by [[Zoro]]&lt;br /&gt;
* [[vat]] -- Tcl based Vhost Abstract Template Module, by [[Tom Jackson]]&lt;br /&gt;
* C-based virtual hosting module [http://deadlock.et.tudelft.nl/~daniel/vhost.html]&lt;br /&gt;
* [[nsvirthost]]&lt;br /&gt;
&lt;br /&gt;
== Charting ==&lt;br /&gt;
&lt;br /&gt;
* [[nsgdchart]] -- Generate png/jpg charts using open source gd library.&lt;br /&gt;
* [[nschartdir]] -- Generate charts using proprietary ChartDirector library.&lt;br /&gt;
* [[nsgd]] -- Generate png,jpg,wbmp,gif,... images using open source gd library.&lt;br /&gt;
* [[nsgraph]] -- &lt;br /&gt;
* i-no graphing module using gd library (defunct: [http://www.i-no.com/art/inochart.html])&lt;br /&gt;
&lt;br /&gt;
== XML ==&lt;br /&gt;
&lt;br /&gt;
* [[tDOM]] -- a Tcl extension which provides XML/XSLT functionality.&lt;br /&gt;
* [[nsxml]] -- &lt;br /&gt;
* [[nsexpat]] -- Interface to Expat&lt;br /&gt;
&lt;br /&gt;
== Web Services ==&lt;br /&gt;
&lt;br /&gt;
* [[nssoap]] -- ''unfinnished, unsupported''&lt;br /&gt;
* [[nsxmlrpc]] -- XML-RPC server and client API [http://openacs.org/sdm/one-package.tcl?package_id=12]&lt;br /&gt;
&lt;br /&gt;
== WebDAV ==&lt;br /&gt;
&lt;br /&gt;
* [[nsdav]] -- Port of Apache's WebDAV [http://www.webdav.org/mod_dav/] support for AOLserver.&lt;br /&gt;
* [[nswebdav]] -- &lt;br /&gt;
* [[tDAV]] -- A WebDAV server module that uses [[tDOM]].&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&lt;br /&gt;
* [[dqd_log]] -- Makes AOLserver log to a file descriptor.&lt;br /&gt;
* [[dqd_threadpool]] -- Job scheduling system with Tcl interface.&lt;br /&gt;
* [[dqd_utils]] -- collection of half a dozen small utility procs.&lt;br /&gt;
* [[nsadmin]] -- Database admin/log viewing features from v2 ported to v3.&lt;br /&gt;
* [[nsaspell]] -- Aspell Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsbinarysupport]] -- Write 8bit strings to connection without translation.&lt;br /&gt;
* [[nscache]] -- Tcl interface to AOLserver's caching API ([[ns_cache]] is builtin in AOLserver 4.5.1 or newer)&lt;br /&gt;
* [[nsclamav]] -- ClamAV Anti-Virus Interface Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsdci]] -- AOL's Digital City extensions (distributed cache, among other goodies) (http://code.google.com/p/nsdci/)&lt;br /&gt;
* [[nsdns]] -- DNS Server/Proxy Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsdqe]] -- Collection of utilities including caching, page counter, virtual hosting etc.&lt;br /&gt;
* [[nsexample]] -- An example module to help guide new module writers.&lt;br /&gt;
* [[nsfortune]] - Fortune like game module, uses real fortune files&lt;br /&gt;
* [[nsftp]] -- FTP server front end for AOLserver.&lt;br /&gt;
* [[nsfts]] -- Interface to Postgres full text search engine.&lt;br /&gt;
* [[nsimage]] -- returns sizes of various modules, implements [[ns_image]] &amp;amp; [[ns_pngsize]], replaces  [[ns_jpegsize]] &amp;amp; [[ns_gifsize]]&lt;br /&gt;
* [[nsimap]] -- IMAP Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsjabber]] --&lt;br /&gt;
* [[nsjk2]] -- Jakarta connector&lt;br /&gt;
* [[nsldap]] -- LDAP client&lt;br /&gt;
* [[nsmaverix]] -- SMTP Proxy with anti-spam/anti-virus/whitelist/greylist/blacklist capabilities and Web interface [http://www.crystalballinc.com/vlad/software/maverix/]&lt;br /&gt;
* [[nsmsg]] - IPC message module for AOLserver&lt;br /&gt;
* [[ns_pkg]] -- Dynamic Tcl package loading.&lt;br /&gt;
* [[nspool]] -- Pools of sockets, pipes and external processes.&lt;br /&gt;
* [[nsprofile]] -- Time execution of Tcl commands.&lt;br /&gt;
* [[nsreturnz]] -- Gzip content encoding for dynamic requests.&lt;br /&gt;
* [[nsrewrite]] -- &lt;br /&gt;
* [[nsroaming]] -- Netscape Navigator 4 Roaming Profiles.&lt;br /&gt;
* [[nssavi]] -- SOPHOS Anti-Virus Interface Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nssession]] -- Session Management&lt;br /&gt;
* [[nssession (C module)]] -- Sessions implemented as a C module&lt;br /&gt;
* [[nssnmp]] -- SNMP Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nssys]] - Unix system calls, including chmod, ioctl, fsstat, syslog, signal&lt;br /&gt;
* [[nstelemetry]] -- &lt;br /&gt;
* [[nsthreadpool]] -- &lt;br /&gt;
* [[nsuuid]] -- UUID [http://portablegeneratorsforsale.net/ portable generators] module&lt;br /&gt;
* [[nszlib]] -- Zlib Module [http://www.crystalballinc.com/vlad/software/]&lt;br /&gt;
* [[nsperl]] -- Embedded Perl module (not production ready) [http://jam.sessionsnet.org/files/file?file_id=5477]&lt;br /&gt;
&lt;br /&gt;
== Additional Software ==&lt;br /&gt;
&lt;br /&gt;
* [[jk-voting]] -- Example DB based Voting Booth&lt;br /&gt;
* [http://bas.scheffers.net/aolserver/ Cache Tools], by [[Bas Scheffers]] -- I haven't worked with this or tested it in years, would like to hear from users!&lt;br /&gt;
* Tcl AutoLoader for AOLServer by Hal Heisler [http://www.heisler.net/hal]&lt;br /&gt;
* AOLserver 3.x Remote Administration Modules [http://www.scriptkitties.com/]&lt;br /&gt;
* HTTP Cookie Library [http://www.scriptkitties.com/]&lt;br /&gt;
* Simple-Templating System [http://www.oakroad.net/simple-templates/]&lt;br /&gt;
* [[nstest]]&lt;br /&gt;
* [[William Webb]] has a list of some unmaintained AOLserver software he created which may still be useful to you.&lt;br /&gt;
* AM.net[http://aolserver.am.net] maintains a page of AOLserver resources which includes an [[ADP]] pareser module and a module which fetches web pages.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Modules]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=5872</id>
		<title>AOLserver Wiki</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=5872"/>
		<updated>2010-09-02T19:50:48Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Protected &amp;quot;AOLserver Wiki&amp;quot; ([edit=sysop] (indefinite) [move=sysop] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=5871</id>
		<title>AOLserver Wiki</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=5871"/>
		<updated>2010-09-02T19:50:03Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Revert a whole bunch of spam edits.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=5870</id>
		<title>AOLserver Wiki</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki&amp;diff=5870"/>
		<updated>2010-09-02T19:49:22Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Revert a whole bunch of spam edits.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5705</id>
		<title>Ns schedule proc</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5705"/>
		<updated>2010-04-10T05:23:51Z</updated>

		<summary type="html">&lt;p&gt;Dossy: remove spam link that snuck by&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Man page: http://aolserver.com/docs/tcl/ns_schedule_proc.html&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: ns_schedule_proc - Schedule a script to run after a certain number of seconds&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_schedule_proc''' ''?-once? ?-thread? interval script''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: This command schedules a script to be run after a certain number of seconds.  Returns the ID of the newly scheduled script.  If ''-once'' is specified, then the script is run once and then unscheduled, otherwise it will continue to run every ''interval'' seconds.  If ''-thread'' is specified, then the script will be run in its own thread, otherwise it will run in the scheduler's thread.  If the script is long-running, this may interfere with the running of other scheduled scripts, so long-running scripts should be run in their own threads.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
    % set id [[ns_schedule_proc -once 60 { ns_log notice &amp;quot;this should run in 60 seconds&amp;quot; }]]&lt;br /&gt;
    123&lt;br /&gt;
&lt;br /&gt;
    % ns_unschedule_proc $id&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[ns_after]], [[ns_info]] scheduled, [[ns_pause]], [[ns_resume]], [[ns_schedule_daily]], [[ns_schedule_weekly]], [[ns_unschedule_proc]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]] - [[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5704</id>
		<title>Ns schedule proc</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5704"/>
		<updated>2010-04-10T05:22:34Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Reverted edits by StacieLott (Talk) to last revision by Dossy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Man page: http://aolserver.com/docs/tcl/ns_schedule_proc.html&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: ns_schedule_proc - Schedule a script to run after a certain number of seconds&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_schedule_proc''' ''?-once? ?-thread? interval script''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: This command schedules a script to be run after a certain number of seconds.  Returns the ID of the newly scheduled script.  If ''-once'' is specified, then the script is run once and then unscheduled, otherwise it will continue to run every ''interval'' seconds.  If ''-thread'' is specified, then the script will be run in its own thread, otherwise it will run in the scheduler's thread.  If the script is long-running, this may interfere with the running of other scheduled scripts, so long-running scripts should be run in their own threads.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
    % set id [[ns_schedule_proc -once 60 { ns_log notice &amp;quot;this should run in 60 seconds&amp;quot; }]]&lt;br /&gt;
    123&lt;br /&gt;
&lt;br /&gt;
    % ns_unschedule_proc $id&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[ns_after]], [[ns_info]] scheduled, [[ns_pause]], [http://www.rushessay.com essay], [[ns_resume]], [[ns_schedule_daily]], [[ns_schedule_weekly]], [[ns_unschedule_proc]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]] - [[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Josephbui&amp;diff=5700</id>
		<title>User talk:Josephbui</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Josephbui&amp;diff=5700"/>
		<updated>2010-03-15T16:36:34Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Joseph: Thanks for your help cleaning up the wiki vandalism.  Would you like Admin privileges to take care of deletes and blocks? -- [[User:Dossy|Dossy]] 14:30, 15 March 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Dossy: Sure, thanks! [[User:Josephbui|Josephbui]] 16:25, 15 March 2010 (UTC)&lt;br /&gt;
* OK, done.  Thanks - would love to hear your thoughts on AOLserver and Tcl at some point ... -- [[User:Dossy|Dossy]] 16:36, 15 March 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Josephbui&amp;diff=5698</id>
		<title>User talk:Josephbui</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Josephbui&amp;diff=5698"/>
		<updated>2010-03-15T14:30:51Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Created page with 'Joseph: Thanks for your help cleaning up the wiki vandalism.  Would you like Admin privileges to take care of deletes and blocks? -- ~~~~'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Joseph: Thanks for your help cleaning up the wiki vandalism.  Would you like Admin privileges to take care of deletes and blocks? -- [[User:Dossy|Dossy]] 14:30, 15 March 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5697</id>
		<title>Ns schedule proc</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5697"/>
		<updated>2010-03-15T14:24:11Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Undo revision 5678 by Patersonmaikl3 (Talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Man page: http://aolserver.com/docs/tcl/ns_schedule_proc.html&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: ns_schedule_proc - Schedule a script to run after a certain number of seconds&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_schedule_proc''' ''?-once? ?-thread? interval script''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: This command schedules a script to be run after a certain number of seconds.  Returns the ID of the newly scheduled script.  If ''-once'' is specified, then the script is run once and then unscheduled, otherwise it will continue to run every ''interval'' seconds.  If ''-thread'' is specified, then the script will be run in its own thread, otherwise it will run in the scheduler's thread.  If the script is long-running, this may interfere with the running of other scheduled scripts, so long-running scripts should be run in their own threads.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
    % set id [[ns_schedule_proc -once 60 { ns_log notice &amp;quot;this should run in 60 seconds&amp;quot; }]]&lt;br /&gt;
    123&lt;br /&gt;
&lt;br /&gt;
    % ns_unschedule_proc $id&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[ns_after]], [[ns_info]] scheduled, [[ns_pause]], [http://www.rushessay.com essay], [[ns_resume]], [[ns_schedule_daily]], [[ns_schedule_weekly]], [[ns_unschedule_proc]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]] - [[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=5696</id>
		<title>Ns register proc</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_register_proc&amp;diff=5696"/>
		<updated>2010-03-15T14:19:30Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Reverted edits by HelenArchibald (Talk) to last revision by Umbrella13&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{manpage|ns_proc}}&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: ns_register_proc - Register a procedure for a method/URL combination&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_register_proc''' ''?-noinherit? method URL myproc ?args?''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_register_proc''' registers the procname to handle the specified method/URL combination.  When the server gets a matching request, it calls procname with the connection id and any arguments specified here.&lt;br /&gt;
&lt;br /&gt;
: If ''-noinherit'' is specified, the requested URL must match the specified URL exactly.  For example, if the URL specified with '''ns_register_proc''' is /foo/bar, procname will not be called unless the requested URL is exactly /foo/bar.&lt;br /&gt;
&lt;br /&gt;
: If ''-noinherit'' is not specified, the requested URL can match the specified URL or any URL below it.  For example, if the URL specified with '''ns_register_proc''' is /foo/bar, procname will be called for /foo/bar, /foo/bar/hmm, and any other URL below /foo/bar, provided there is not already another procedure registered for that exact URL or for an URL with a closer match.&lt;br /&gt;
&lt;br /&gt;
: Note that you must use a glob-style matching character if you want inheritance for file names.  For example, if you want /foo/bar to match /foo/bar.html, you must use: &lt;br /&gt;
&lt;br /&gt;
    ns_register_proc /foo/bar*&lt;br /&gt;
&lt;br /&gt;
: You can register two procedures for any given method/URL combination by calling '''ns_register_proc''' once with the ''-noinherit'' flag set and once without it.  Only one of the procedures will be called for any given request, depending on whether the URL was an exact match or not.  For example:&lt;br /&gt;
&lt;br /&gt;
    ns_register_proc -noinherit GET /foo/bar Aproc&lt;br /&gt;
    ns_register_proc GET /foo/bar Bproc&lt;br /&gt;
    ns_register_proc GET /foo/bar/hmm Cproc&lt;br /&gt;
&lt;br /&gt;
: Aproc will be called when the requested URL is exactly /foo/bar.  Bproc will be called when the requested URL is below /foo/bar, provided there is not already another procedure registered to be called for that exact URL or for an URL with a closer match.  Cproc (not Bproc) will be called when the requested URL is equal to or below /foo/bar/hmm.  Syntax for the registered procedure The conn (connection) argument is optional for procedures registered by '''ns_register_proc''' if the procedure has 0 or 1 arguments (not including conn).  The following [http://www.umbrellaonline.com real estate] examples show the variations that can be used in this case:&lt;br /&gt;
&lt;br /&gt;
    ns_register_proc GET /noargs noargs&lt;br /&gt;
    ns_register_proc GET /context context fnord&lt;br /&gt;
    ns_register_proc GET /conncontext conncontext greeblev&lt;br /&gt;
    &lt;br /&gt;
    proc noargs { } {&lt;br /&gt;
        ns_returnnotice 200 &amp;quot;noargs&amp;quot;&lt;br /&gt;
    } ;# noargs&lt;br /&gt;
    &lt;br /&gt;
    proc context { context } {&lt;br /&gt;
        ns_returnnotice 200 &amp;quot;context is $context&amp;quot;&lt;br /&gt;
    } ;# context&lt;br /&gt;
    &lt;br /&gt;
    proc conncontext { conn context } {&lt;br /&gt;
        ns_returnnotice 200 &amp;quot;conncontext is $context&amp;quot;&lt;br /&gt;
    } ;# conncontext&lt;br /&gt;
&lt;br /&gt;
: The ''conn'' (connection) argument is required for procedures registered by '''ns_register_proc''' if the procedure has 2 or more arguments (not including ''conn'').  The ''conn'' argument will be filled automatically with the connection information.  The first argument following ''conn'' will always take the value supplied by '''ns_register_proc''', if there is one, or an empty value.  All other arguments must supply a default value.  The following examples show the variations that can be used in this case:&lt;br /&gt;
&lt;br /&gt;
    ns_register_proc GET /twoargs twoargs fnord&lt;br /&gt;
    ns_register_proc GET /threeargs threeargs fnord fjord&lt;br /&gt;
    &lt;br /&gt;
    proc twoargs { conn context { greeble bork } } {&lt;br /&gt;
        # Do stuff...&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    proc threeargs { conn context {greeble bork } { hoover quark } {&lt;br /&gt;
        # Do stuff...&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
: When a GET of /twoargs is requested, the conn argument will be filled automatically, the context argument will be assigned &amp;quot;fnord&amp;quot; and the greeble argument will be assigned the default value &amp;quot;bork&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
: When a GET of /threeargs is requested, the conn argument will be filled automatically, the context argument will be assigned &amp;quot;fnord&amp;quot; and the greeble argument will be assigned &amp;quot;fjord&amp;quot;, and the hoover argument will be assigned the default value &amp;quot;quark&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[ns_unregister_proc]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]] [[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5695</id>
		<title>Ns schedule proc</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_schedule_proc&amp;diff=5695"/>
		<updated>2010-03-15T14:17:02Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Reverted edits by Umbrella13 (Talk) to last revision by Patersonmaikl3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Man page: http://aolserver.com/docs/tcl/ns_schedule_proc.html&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: ns_schedule_proc - Schedule a script to run after a certain number of seconds&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_schedule_proc''' ''?-once? ?-thread? interval script''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: This command schedules a script to be run after a certain number of seconds.  Returns the ID of the newly scheduled script.  If ''-once'' is specified, then the script is run once and then unscheduled, otherwise it will continue to run every ''interval'' seconds.  If ''-thread'' is specified, then the script will be run in its own thread, otherwise it will run in the scheduler's thread.  If the script is long-running, this may interfere with the running of other scheduled scripts, so long-running scripts should be run in their own threads.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
    % set id [[ns_schedule_proc -once 60 { ns_log notice &amp;quot;this should run in 60 seconds&amp;quot; }]]&lt;br /&gt;
    123&lt;br /&gt;
&lt;br /&gt;
    % ns_unschedule_proc $id&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[ns_after]], [[ns_info]] scheduled, [[ns_pause]], [http://www.rushessay.com essay], [http://www.standoutessay.com/essay-writers essay writers], [[ns_resume]], [[ns_schedule_daily]], [[ns_schedule_weekly]], [[ns_unschedule_proc]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]] - [[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Caveman&amp;diff=5487</id>
		<title>User talk:Caveman</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Caveman&amp;diff=5487"/>
		<updated>2009-10-20T20:50:35Z</updated>

		<summary type="html">&lt;p&gt;Dossy: New section: Sysop and Bureaucrat rights&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== towards a data and authentication layer ==&lt;br /&gt;
&lt;br /&gt;
It is possible that similar exists elsewhere (non-OpenACS) but I enjoy framework construction anyway. Services provided:&lt;br /&gt;
# authentication (password check)&lt;br /&gt;
# sequences&lt;br /&gt;
# data layer&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Authentication/Authorization config (nsz):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# config: &amp;quot;/security/password/expression&amp;quot;&lt;br /&gt;
# {::sha1::hmac [lindex $args 1] [lindex $args 0]}&lt;br /&gt;
# config: &amp;quot;/security/password/query&amp;quot;&lt;br /&gt;
# {select password, salt from users where name=[ns_dbquotevalue [lindex $args 0]]}&lt;br /&gt;
# config: &amp;quot;/security/salt/length&amp;quot; &amp;quot;64&amp;quot;&lt;br /&gt;
# config: &amp;quot;/security/salt/dictionary&amp;quot; &amp;quot;0123456789abcdefghijkl...&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically the &amp;quot;expression&amp;quot; is used in a function, '''nsz_password''' to format a given clear-text password (varargs &amp;quot;args&amp;quot; to allow additional arguments to the function). The first argument is always the password.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;query&amp;quot; is executed as part of password-based authentication. The form handler reaches '''nsz_auth &amp;quot;myname&amp;quot; &amp;quot;mypassword&amp;quot;''' and the query is executed using the input list &amp;quot;myname&amp;quot;. All row data beyond the first column, which must always be the password, is appended to the input password &amp;quot;mypassword&amp;quot; to produce the hash/salted/hash input &amp;quot;xpassword&amp;quot;. This input &amp;quot;xpassword&amp;quot; is compared with the result of the returned value for the first column from the database query. If there is a match, password authentication succeeds for the user.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nsz_auth &amp;quot;sam&amp;quot; &amp;quot;correctpassword&amp;quot;&lt;br /&gt;
# Query returns &amp;quot;sadf8vcx8vxasd7f7...&amp;quot;,&amp;quot;asduf7z6dfa...&amp;quot;&lt;br /&gt;
# Expression eval for input passes &amp;quot;correctpassword&amp;quot;,&amp;quot;asduf7z6dfa...&amp;quot; and returns &amp;quot;sadf8vcx8vxasd7f7...&amp;quot;&lt;br /&gt;
# Return value matches query&lt;br /&gt;
# nsz_auth returns &amp;quot;sam&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nsz_auth &amp;quot;sam&amp;quot; &amp;quot;badpassword&amp;quot;&lt;br /&gt;
# Query returns &amp;quot;sadf8vcx8vxasd7f7...&amp;quot;,&amp;quot;asduf7z6dfa...&amp;quot;&lt;br /&gt;
# Expression eval for input passes &amp;quot;badpassword&amp;quot;,&amp;quot;asduf7z6dfa...&amp;quot; and returns &amp;quot;yyzkfosd232cx7c...&amp;quot;&lt;br /&gt;
# Return value does not match query&lt;br /&gt;
# nsz_auth raises error &amp;quot;bad password&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Different configurations could use simple clear-text passwords, no salt, etc, simply by changing their configuration:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# config: &amp;quot;nsz/security/password/expression&amp;quot;&lt;br /&gt;
# {lindex $args 0}&lt;br /&gt;
# config: &amp;quot;nsz/security/password/query&amp;quot;&lt;br /&gt;
# {select password from users where name=[ns_dbquotevalue [lindex $args 0]]}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above would be the default configuration. For salt, the default would be size of 8 and dictionary of alphanumerics.&lt;br /&gt;
&lt;br /&gt;
Function '''nsz_salt''' can take 0, 1, or 2 arguments and returns the generated salt. The first argument is the length of the salt, defaults to config value. The second argument is the dictionary for the salt, default to config value.&lt;br /&gt;
&lt;br /&gt;
'''Question:''' How to make &amp;quot;users&amp;quot; table configurable? What about configuring which database pool to use? What about multiple authentication realms?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Sequences configuration should be as simple as specifying the database pool to use (default by default), the name of the sequence table, the size of the sequence chunk to claim when the local cache runs out of sequence numbers, and the number of retries before error during chunk claim. It could however be more complex, to specify the column names for the &amp;quot;name&amp;quot; and &amp;quot;value&amp;quot; of the sequence.&lt;br /&gt;
&lt;br /&gt;
Config:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# config: &amp;quot;nso/sequence/default/poolname&amp;quot; (default by default)&lt;br /&gt;
# config: &amp;quot;nso/sequence/default/size&amp;quot; &amp;quot;100&amp;quot;&lt;br /&gt;
# config: &amp;quot;nso/sequence/default/retry&amp;quot; &amp;quot;5&amp;quot;&lt;br /&gt;
# config: &amp;quot;nso/sequence/default/table&amp;quot; &amp;quot;sequences_table&amp;quot;&lt;br /&gt;
# config: &amp;quot;nso/sequence/default/name&amp;quot; &amp;quot;name_field&amp;quot;&lt;br /&gt;
# config: &amp;quot;nso/sequence/default/value&amp;quot; &amp;quot;value_field&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sequence defaults could be over-written per-sequence in similar fashion.&lt;br /&gt;
&lt;br /&gt;
Example usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set nextId [nso_sequence next &amp;quot;my_seq_name&amp;quot;]&lt;br /&gt;
# returns 53 or error if fail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The function '''nso_sequence''' would thread-safe return the next sequence number it had available in its local nsv data, or if not available, claim the next chunk of 100 sequences numbers from the database:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# select value_field from sequences_table where name_field='my_seq_name'&lt;br /&gt;
# result is 125, attempt to claim 100 values&lt;br /&gt;
# update cave_sequences set value=225 where name_field='my_seq_name' and value_field=125&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This would be retried up to ''5'' times.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Data layer notes:&lt;br /&gt;
&lt;br /&gt;
Config would map names like &amp;quot;users&amp;quot; to database pools and table names. Default would be default database pool and identity table name.&lt;br /&gt;
&lt;br /&gt;
Example usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set nssValues [ns_set create]&lt;br /&gt;
# ns_set update $nssValues &amp;quot;name&amp;quot; &amp;quot;sam&amp;quot;&lt;br /&gt;
# ns_set update $nssValues &amp;quot;password&amp;quot; &amp;quot;mypassword&amp;quot;&lt;br /&gt;
# ns_set put $nssValues &amp;quot;mail&amp;quot; &amp;quot;sam@caveman.org&amp;quot;&lt;br /&gt;
# set nssUserKey [nso_row create &amp;quot;users&amp;quot; $nssValues]&lt;br /&gt;
# set nssNewValues [ns_set create]&lt;br /&gt;
# ns_set put $nssNewValues &amp;quot;mail&amp;quot; &amp;quot;samuelmb@gmail.com&amp;quot;&lt;br /&gt;
# nso_row update &amp;quot;users&amp;quot; $nssUserKey $nssNewValues&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using ns_set instead of a model type-checking &amp;quot;nso_set&amp;quot; at least for now for simplicity and it would be the simple case.&lt;br /&gt;
&lt;br /&gt;
Additional config allows for data transforms:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# multi stage of filters and expressions:&lt;br /&gt;
#&lt;br /&gt;
# stage 0: accept-data-filter&lt;br /&gt;
#   e.g. &amp;quot;require a password is not null&amp;quot;&lt;br /&gt;
#   e.g. &amp;quot;require this integer be above zero&amp;quot;&lt;br /&gt;
#   e.g. &amp;quot;require id not be set&amp;quot;&lt;br /&gt;
#&lt;br /&gt;
# stage 1: transform-data-filter&lt;br /&gt;
# config: expressions to apply to row:&lt;br /&gt;
#   e.g. &amp;quot;generate a salt&amp;quot;&lt;br /&gt;
#     ns_set update $nssData &amp;quot;salt&amp;quot; [nsz_salt]&lt;br /&gt;
#   e.g. &amp;quot;transform the password&amp;quot;&lt;br /&gt;
#     ns_set update $nssData &amp;quot;password&amp;quot; [nsz_password [ns_set get $nssData &amp;quot;password&amp;quot;] [ns_set get $nssData &amp;quot;salt&amp;quot;]]&lt;br /&gt;
#   e.g. &amp;quot;generate the next id from sequence&amp;quot;&lt;br /&gt;
#     ns_set update $nssData &amp;quot;id&amp;quot; [nso_sequence next &amp;quot;my_seq_name&amp;quot;]&lt;br /&gt;
#&lt;br /&gt;
# stage 2: veto-data-filter?&lt;br /&gt;
#&lt;br /&gt;
# allow multiple &amp;quot;inheritance&amp;quot; of data rules? or just defining rules that&lt;br /&gt;
# can be referenced by multiple tables?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''very draft state''&lt;br /&gt;
&lt;br /&gt;
== useful links ==&lt;br /&gt;
[http://philip.greenspun.com/doc/ philip.greenspun.com/doc/]&lt;br /&gt;
&lt;br /&gt;
[http://philip.greenspun.com/doc/data-pipeline data-pipeline]&lt;br /&gt;
&lt;br /&gt;
== AJAX/JSON support in AOLserver ==&lt;br /&gt;
&lt;br /&gt;
# HTTP request hits AOLserver, returns HTML including JavaScript with AJAX (or JSON-RPC, whatever) features.&lt;br /&gt;
# Client interacts with rendered HTML application, resulting in AJAX calls to AOLserver.&lt;br /&gt;
# AOLserver handles the AJAX calls and responds.&lt;br /&gt;
# Client potentially modified by result of AJAX call without reload.&lt;br /&gt;
&lt;br /&gt;
Use cases:&lt;br /&gt;
# Rate something and store the rating without reload of page.&lt;br /&gt;
# Stateful drag and drop of tiles (shopping cart, wish list).&lt;br /&gt;
# Background saving of application state (e.g. word processor, calendar, etc) without page reload.&lt;br /&gt;
# Reload portions of the view (e.g. portlet) without reloading the whole page. E.g. stock tickers, chat windows, log viewers, etc.&lt;br /&gt;
# Add/remove item from cart statefully without reload of page.&lt;br /&gt;
# Recalculate shopping cart prices/totals without reload of page.&lt;br /&gt;
&lt;br /&gt;
Benefits:&lt;br /&gt;
# Allows &amp;quot;Web 2.0&amp;quot; sites such as Digg and Gmail to be run on massively scalable AOLserver platform.&lt;br /&gt;
# It's an itch. We scratch these things.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [http://www.writely.com/ writely -- the web word processor]&lt;br /&gt;
* [http://www.digg.com/spy digg spy -- show console data e.g. log, recent searches, monitoring, stocks, etc]&lt;br /&gt;
* [http://www.kiko.com/ kiko -- online calendar]&lt;br /&gt;
* [http://mail.google.com/ google mail]&lt;br /&gt;
* [http://maps.google.com/ google maps]&lt;br /&gt;
* [http://www.crockford.com/javascript/ javascript link collection]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/AJAX wikipedia article on AJAX]&lt;br /&gt;
* [http://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html 30 second intro to AJAX]&lt;br /&gt;
&lt;br /&gt;
== Sysop and Bureaucrat rights ==&lt;br /&gt;
&lt;br /&gt;
Hi, Sam - I've granted you Sysop and Bureaucrat rights, so you can delete wiki pages and such.  You seem to watch the wiki and police it for spam a lot more than I can these days.  Thanks! -- [[User:Dossy|Dossy]] 16:50, 20 October 2009 (EDT)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=SMLserver&amp;diff=5131</id>
		<title>SMLserver</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=SMLserver&amp;diff=5131"/>
		<updated>2008-04-14T20:39:10Z</updated>

		<summary type="html">&lt;p&gt;Dossy: provide some factual information about SMLserver when it was AOLserver-related&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Early SMLserver releases provided a Stanard ML module for AOLserver (nssml.so).&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* A Functional Approach to Web Publishing ([http://www.itu.dk/~mael/mypapers/smlserver-4.1.0.pdf smlserver-4.1.0.pdf]), by Martin Elsman and Niels Hallenberg.&lt;br /&gt;
* [http://www.springerlink.com/content/vbkf26yab0elru3g/ Web Programming with SMLserver], ISBN 978-3-540-00389-2.&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:Ns_url2file&amp;diff=5106</id>
		<title>Talk:Ns url2file</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:Ns_url2file&amp;diff=5106"/>
		<updated>2007-12-06T14:31:11Z</updated>

		<summary type="html">&lt;p&gt;Dossy: /* What happens to special characters? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What happens to special characters? ==&lt;br /&gt;
&lt;br /&gt;
If the url contains, e.g., the '+' character or the sequence '%20', does ns_url2file unencode it the same as the underlying page finding code does?&lt;br /&gt;
&lt;br /&gt;
In AOLServer 3.4.2, it doesn't look like it does.  Say I request the url '/foo%20bar.html'. If I use a Tcl library function as a &amp;quot;404&amp;quot; handler (using the file-system-as-cache technique), and generate my file via &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set file [open &amp;quot;[ns_url2file $url]&amp;quot; w]&lt;br /&gt;
puts $file $content&lt;br /&gt;
close $file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then the '$url' is still Not Found on the next request.  I'm getting the URL by directly reading the request header (since I'm in a redirection routine, the value of [ns_conn url] is my redirected URL, not the URL originally requested).&lt;br /&gt;
&lt;br /&gt;
Thought I'd ask here since it would be nice if the wiki page got updated with the answer....&lt;br /&gt;
&lt;br /&gt;
: ''Indeed, there's a &amp;quot;bug&amp;quot; in the URL encoding code with respect to &amp;quot;+&amp;quot; and &amp;quot;%20&amp;quot; and whitespace.  At some point, we have to &amp;quot;fix&amp;quot; this--but it'll result in a break in backward compatibility and can cause published URLs that expect the previous behavior to become 404's.  Perhaps if this is clearly documented and made very clear, it'll be okay to make the change ... your thoughts?'' --[[User:Dossy|Dossy]] 09:31, 6 December 2007 (EST)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Sites_That_Run_On_AOLserver&amp;diff=5103</id>
		<title>Sites That Run On AOLserver</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Sites_That_Run_On_AOLserver&amp;diff=5103"/>
		<updated>2007-11-21T13:11:04Z</updated>

		<summary type="html">&lt;p&gt;Dossy: added CiteULike&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following is (a probably incomplete) list of sites that run on AOLserver.  Some you will recognize, some you probably won't.&lt;br /&gt;
&lt;br /&gt;
Note: Please add entries in the following format:&lt;br /&gt;
* Site name | Version | URL | description (optional)&lt;br /&gt;
&lt;br /&gt;
In order to appear on this list, the server '''MUST''' respond with a &amp;quot;Server:&amp;quot; header in the HTTP response which indicates that it is running AOLserver, and what version.&lt;br /&gt;
&lt;br /&gt;
The following is a list of sites running some version of AOLserver at AOL:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;tabulardata&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- class=&amp;quot;header&amp;quot;&lt;br /&gt;
! Site name !! Version !! URL !! Description (optional)&lt;br /&gt;
|-&lt;br /&gt;
| AOL.COM || AOLserver/3.4.2 || http://aol.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Netscape || AOLserver/3.5.5 || http://home.netscape.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Digital City || AOLserver/4.0 || http://home.digitalcity.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| AOL Mail || AOLserver/3.5.9 || http://webmail.aol.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Moviefone || ArtBlast/3.5.4 || http://www.moviefone.com/ ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
These are non-AOL sites that also use some version of AOLserver:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;tabulardata&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- class=&amp;quot;header&amp;quot;&lt;br /&gt;
! Site name !! Version !! URL !! Description (optional)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 4.5.x'''&lt;br /&gt;
|-&lt;br /&gt;
| WhatsThisIP.com || AOLserver/4.5.0 || http://WhatsThisIP.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 4.1.x'''&lt;br /&gt;
|-&lt;br /&gt;
| the CodeMill || AOLserver/4.1.0 || http://www.thecodemill.biz || host of the #aolserver IRC logs[http://www.thecodemill.biz/services/aolserver/irc/]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 4.0.x'''&lt;br /&gt;
|-&lt;br /&gt;
| [[Panoptic Computer Network]] || AOLserver/4.0.10a || http://panoptic.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| NS_SHUTDOWN || AOLserver/4.0.10a || http://www.nsshutdown.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Bayt.com || AOLserver/4.0.10 || http://www.bayt.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| CiteULike || AOLserver/4.0.10 || http://www.citeulike.org/ ||&lt;br /&gt;
|-&lt;br /&gt;
| OpenACS || AOLserver/4.0.9 || http://openacs.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons || AOLserver/4.0.8 || http://creativecommons.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Volunteer Solutions || AOLserver/4.0.8 || http://www.volunteersolutions.org/ ||&lt;br /&gt;
|-&lt;br /&gt;
| jongriffin.com || AOLserver/4.0.5 || http://www.jongriffin.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Rate Your Music || AOLserver/4.0.10 || http://rateyourmusic.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Salsa Blanca || AOLserver/4.0.5 || http://www.salsablanca.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Kurup.org || AOLserver/4.0.10 || http://kurup.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Seven Sisters Trading || AOLserver/4.0.3 || http://www.7-sisters.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| AIESEC.net || AOLserver/4.0 || http://www.aiesec.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| Don Baccus Photography || AOLserver/4.0 || http://donb.photo.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| M³ Beratungsgesellschaft || AOLserver/4.0 || http://www.m3-beratung.de/ ||&lt;br /&gt;
|-&lt;br /&gt;
| photo.net || AOLserver/4.0 || http://www.photo.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| Treffpunkt || AOLserver/4.0.10 || http://www.treffpunktsystems.com/ ||&lt;br /&gt;
|-&lt;br /&gt;
| Uptime || Aolserver/4.0.10 || http://uptime.openacs.org||&lt;br /&gt;
|-&lt;br /&gt;
| Myturl || Aolserver/4.0.10 || http://myturl.com || tinyurl clone&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.5.x'''&lt;br /&gt;
|-&lt;br /&gt;
| OneWeek || AOLserver/3.5.10 || http://oneweek.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Vitamist Spray Vitamins || AOLserver/3.5.6 || http://www.vitamist.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Anchor Baptist Church || AOLserver/3.5.0 || http://www.anchorbaptist.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Blue Ridge Amateur Radio Club || NaviServer/2.0 AOLserver/3.5.0 || http://www.radioclub.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Irish Tribute || AOLserver/3.5.0 || http://www.irishtribute.com/ || IrishAbroad's tribute site for the WTC dead and missing&lt;br /&gt;
|-&lt;br /&gt;
| online.ie || AOLserver/3.5.0 || http://www.online.ie/ || Irish news portal&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.4.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Polska.pl || AOLserver/3.4z4l || http://www.polska.pl/ || &lt;br /&gt;
|-&lt;br /&gt;
| AMTDA || AOLserver/3.4.2 || http://www.amtda.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| Away.com || AOLserver 3.4.2 || http://www.away.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Onet.pl || AOLserver/3.4.2 || http://www.onet.pl/ || &lt;br /&gt;
|-&lt;br /&gt;
| Techspex || AOLserver/3.4.2 || http://www.techspex.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| University of Hawaii Athletics || AOLserver/3.4.2 || http://uhathletics.hawaii.edu/ || &lt;br /&gt;
|-&lt;br /&gt;
| Vivtek || AOLserver/3.4.2 || http://www.vivtek.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| unresponsive.net || AOLserver/3.4 || http://www.unresponsive.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| DolphinGames || AOLserver/3.4.2 || http://www.dolphingames.cz/ || &amp;quot;Server:&amp;quot; header renamed to DolphinGames/1.0.0; online wap and sms games; internal run also 4.0.x aol servers&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.3.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Akoor || AOLserver/3.3.1+ad13 || http://www.akoor.com/ || a cultural french quiz site&lt;br /&gt;
|-&lt;br /&gt;
| Bitzi || AOLserver/3.3.1+ad13 || http://bitzi.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Caltech || AOLserver/3.3.1+ad13 || http://www.caltech.edu/ || &lt;br /&gt;
|-&lt;br /&gt;
| Greatest Networker dot.Community || AOLserver/3.3.1+ad13 || http://www.greatestnetworker.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Infogettable.net Backgammon || AOLserver/3.3.1+ad13 || http://backgammon.infogettable.net/ || &lt;br /&gt;
|-&lt;br /&gt;
| thedesignexperience || AOLserver/3.3.1+ad13 || http://www.thedesignexperience.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| ]project-open[  || AOLserver/3.3.1+ad13 || http://projop.dnsalias.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| ]project-consulting[ Demoserver || AOLserver/3.3.1+ad13 || http://pcdemo.dnsalias.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| ]project-translation[ Demoserver || AOLserver/3.3.1+ad13 || http://ptdemo.dnsalias.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 3.2.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Investsberbank || AOLserver/3.2 || http://www.isb.ru/ || Joint-Stock Bank &amp;quot;Investsberbank&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| MyWorkoutProgram || AOLserver/3.2+ad12 || http://www.myworkoutprogram.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot; | '''AOLserver 2.x'''&lt;br /&gt;
|-&lt;br /&gt;
| Asimba Trainer Pro || NaviServer/2.0 AOLserver/2.3.3 || http://www.asimbatrainerpro.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| Fitrex.com || NaviServer/2.0 AOLserver/2.3.3 || http://www.fitrex.com/ || &lt;br /&gt;
|-&lt;br /&gt;
| WGCR Radio || NaviServer/2.0 AOLserver/2.3.3 || http://www.wgcr.org/ || &lt;br /&gt;
|-&lt;br /&gt;
| British Cattle Movement Service || NaviServer/2.0 AOLserver/2.3.3 || http://www.bcms.gov.uk/ || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Also, every website on this list is should be using AOLserver as well: http://openacs.org/community/sites/&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Discussion:'''&lt;br /&gt;
&lt;br /&gt;
'''Why MUST?''' Some people turn that off as part of their security principles. A known bug in Version 4.x would allow an attacker do simply grep through the following list. Could we please take that into consideration? How many sites would, e.g., introduce .adp pages just to get it on this _huge_ (irony) list?&lt;br /&gt;
&lt;br /&gt;
''If anyone takes &amp;quot;security through obscurity&amp;quot; seriously enough to obfuscate the Server: header that's returned, then they also shouldn't want to be included on this list for the same reasons, so that people don't know they run AOLserver.  Everyone else is free to advertise their sites here to try and ensure they get picked up by web server surveys like Netcraft, et. al.''&lt;br /&gt;
&lt;br /&gt;
Ok, good point. You're perfectly right. Maybe I was just annoyed by being deleted from the list without explanation about the reason (which was added later). But why reject sites that don't expose the Server header for whatever reason? It is very easy to test that a site is running AOLserver (as easy as testing if a bug exists, of course). Why should we insist on detailed versioning?&lt;br /&gt;
&lt;br /&gt;
''It makes maintaining the list easier.  It'd be annoying for folks to add sites to this list and claim they run AOLserver, and then three months later the site switches to Apache.  Who has the time to go poking and prodding to do server detection?  It's easy to automate a script that asks &amp;quot;do I get a Server: AOLserver/xxx in the HTTP response?&amp;quot; and have it automatically keep the list fresh, which is what I currently have and run periodically.  If folks running Apache/IIS want to falsely report AOLserver, that's annoying because the list will be inaccurate, but at least AOLserver will get the credit for the sites.  :-)''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Sites that claim to run AOLserver 3.x, because the person who entered it into this Wiki assured it at that point in time. It may happen that the site runs Apache when you visit it and that may result in immediate pain, suffering or death. You have been warned!'''&lt;br /&gt;
* removed&lt;br /&gt;
&lt;br /&gt;
''The links on the pages look awfully Vignette CURL-like.  Is this site really running AOLserver?  How can you prove it?''&lt;br /&gt;
&lt;br /&gt;
How does a label in the header prove it? But we had this already. I started this rubric ''Sites that claim to run...'' to go around it. But I have absolutely no problem to remove all my sites (including the ones who have the header) from this wiki page in order to satisfy this principle.&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_adp_safeeval&amp;diff=5100</id>
		<title>Ns adp safeeval</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_adp_safeeval&amp;diff=5100"/>
		<updated>2007-09-25T22:14:48Z</updated>

		<summary type="html">&lt;p&gt;Dossy: fixup wiki category links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NAME'''&lt;br /&gt;
&lt;br /&gt;
:  ns_adp_safeeval - Safely evaluate an ADP block&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_adp_safeeval''' ''page ?args ...?''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: This function evaluates the ADP specified by ''page'' just as [[ns_adp_eval]] does, except that it ignores inline scripts &amp;quot;&amp;lt;% ... %&amp;gt;&amp;quot;;  only adp registered tags are executed.  This is useful for providing a limited execution environment for untrusted code (such as user-created templates) without allowing potentially damaging code to run on the server.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[ns_adp_abort]], [[ns_adp_append]], [[ns_adp_argc]], [[ns_adp_argv]], [[ns_adp_bind_args]], [[ns_adp_break]], [[ns_adp_debug]], [[ns_adp_debuginit]], [[ns_adp_dir]], [[ns_adp_dump]], [[ns_adp_exception]], [[ns_adp_include]], [[ns_adp_mime]], [[ns_adp_mimetype]], [[ns_adp_parse]], [[ns_adp_puts]], [[ns_adp_registeradp]], [[ns_adp_registerproc]], [[ns_adp_registertag]], [[ns_adp_return]], [[ns_adp_safeeval]], [[ns_adp_stats]], [[ns_adp_stream]], [[ns_adp_tell]], [[ns_adp_trunc]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Downloads&amp;diff=5076</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Downloads&amp;diff=5076"/>
		<updated>2007-06-16T03:11:29Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Looking to download AOLserver related files and resources?  Here's a list of what's available:&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/project/showfiles.php?group_id=3152 AOLserver Files at SourceForge] &lt;br /&gt;
* Latest 4.0.x release, 4.0.10: [http://aolserver.com/downloads/aolserver-4.0.10-src.tar.gz aolserver-4.0.10-src.tar.gz]&lt;br /&gt;
* Latest 4.5.x release, 4.5.0: [http://aolserver.com/downloads/aolserver-4.5.0-src.tar.gz aolserver-4.5.0-src.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Nightly CVS snapshots, refreshed daily at 01:00 AM US/Pacific time (as long as SourceForge is working):&lt;br /&gt;
&lt;br /&gt;
* AOLserver HEAD: [http://aolserver.com/files/aolserver-HEAD-src.tar.gz aolserver-HEAD-src.tar.gz]&lt;br /&gt;
* AOLserver aolserver_v40_bp branch: [http://aolserver.com/files/aolserver-aolserver_v40_bp-src.tar.gz aolserver-aolserver_v40_bp-src.tar.gz]&lt;br /&gt;
* AOLserver aolserver_v45_bp branch: [http://aolserver.com/files/aolserver-aolserver_v45_bp-src.tar.gz aolserver-aolserver_v45_bp-src.tar.gz]&lt;br /&gt;
* nsopenssl HEAD: [http://aolserver.com/files/nsopenssl-HEAD-src.tar.gz nsopenssl-HEAD-src.tar.gz]&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Batteries Included&amp;quot; binary distributions ==&lt;br /&gt;
&lt;br /&gt;
If a &amp;quot;[[Batteries Included]]&amp;quot; binary distribution of AOLserver were to be made available, downloads for it would be available here.&lt;br /&gt;
&lt;br /&gt;
== AOLserver on Win32 ==&lt;br /&gt;
&lt;br /&gt;
These binary releases are unsupported and considered alpha-quality at best.  Use them at your own risk, but if you do find any issues, please file a [http://sourceforge.net/tracker/?group_id=3152&amp;amp;atid=103152 bug report].  Thanks!&lt;br /&gt;
&lt;br /&gt;
* [http://static.panoptic.com/aolserver/AOLserver-4.0.10-2-Win32-Setup.exe AOLserver-4.0.10-2-Win32-Setup.exe]: AOLserver 4.0.10 (built 20070615) and Tcl 8.4.15 for Win32. [http://dossy.org/archives/000461.html]&lt;br /&gt;
&lt;br /&gt;
* [http://aolserver.com/downloads/aolserver-4.1.0a-win32-20040821.zip AOLserver 4.1.0a (built 20040821) and Tcl 8.4.6 for Win32]&lt;br /&gt;
* [http://aolserver.com/downloads/aolserver-4.0.7-win32.zip AOLserver 4.0.7 and Tcl 8.4.6 for Win32]&lt;br /&gt;
&lt;br /&gt;
If you want to build your own binaries for Win32, you should read [[How to build AOLserver on Win32]].&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_and_Tcl_Crash_Course&amp;diff=5075</id>
		<title>AOLserver and Tcl Crash Course</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_and_Tcl_Crash_Course&amp;diff=5075"/>
		<updated>2007-06-16T03:09:39Z</updated>

		<summary type="html">&lt;p&gt;Dossy: outdent code examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
The following is a working draft in progress for an introductory guide to AOLserver and Tcl.&lt;br /&gt;
&lt;br /&gt;
== ADP Pages ==&lt;br /&gt;
&lt;br /&gt;
Hello &amp;lt;Yourname&amp;gt; - Simple page, user submits form, displays name&lt;br /&gt;
&lt;br /&gt;
=== ADP example ===&lt;br /&gt;
&lt;br /&gt;
hello-world.adp:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;% set name [ns_queryget name &amp;quot;world&amp;quot;] %&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;title&amp;gt;Hello &amp;lt;%= [ns_quotehtml $name] %&amp;gt;!&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Hello &amp;lt;%= [ns_quotehtml $name] %&amp;gt;!&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;form&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Name: &amp;lt;input name=&amp;quot;name&amp;quot; value=&amp;quot;&amp;lt;%= [ns_quotehtml $name] %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Go&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl example ===&lt;br /&gt;
&lt;br /&gt;
hello-world.tcl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set name [ns_queryget name &amp;quot;world&amp;quot;]&lt;br /&gt;
ns_return 200 text/html &amp;quot;&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Hello [ns_quotehtml $name]!&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Hello [ns_quotehtml $name]!&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;form&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;Name: &amp;lt;input name=&amp;quot;name&amp;quot; value=&amp;quot;[ns_quotehtml $name]&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Go&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
  &amp;lt;/html&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tcl Basics ==&lt;br /&gt;
&lt;br /&gt;
** Explain Minimalist Syntax&lt;br /&gt;
*** Commands, Subcommands (Evaluated and Non-Evaluated)&lt;br /&gt;
*** Working with variables set, expr&lt;br /&gt;
** Control Structures&lt;br /&gt;
*** if, while, etc.&lt;br /&gt;
*** procedures&lt;br /&gt;
&lt;br /&gt;
== Fetching GET and POST ==&lt;br /&gt;
&lt;br /&gt;
** Including / Referring to other pages&lt;br /&gt;
** Controlling Output&lt;br /&gt;
** Databases&lt;br /&gt;
*** Defining the connection from as a pool in the config.tcl&lt;br /&gt;
*** Selecting from the pool&lt;br /&gt;
*** Executing Queries, Retrieving Values&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
* Where does ADP excel?&lt;br /&gt;
* What practices should PHP, ASP, JSP developers stop doing?&lt;br /&gt;
* How can one use Tcl to write very concise and readable code?&lt;br /&gt;
* How does one efficiently separate pages into MVC components if the wanted?&lt;br /&gt;
* How and why should one write a domain specific sublanguage?&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Template:TOCright&amp;diff=5074</id>
		<title>Template:TOCright</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Template:TOCright&amp;diff=5074"/>
		<updated>2007-06-16T03:08:06Z</updated>

		<summary type="html">&lt;p&gt;Dossy: some attempt at a Template:TOCright&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;clear: right; margin-bottom: .5em; float: right; padding: .5em 0 .8em 1.4em; background: none; width: auto;&amp;quot;&lt;br /&gt;
| __TOC__&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_and_Tcl_Crash_Course&amp;diff=5073</id>
		<title>AOLserver and Tcl Crash Course</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_and_Tcl_Crash_Course&amp;diff=5073"/>
		<updated>2007-06-16T03:06:16Z</updated>

		<summary type="html">&lt;p&gt;Dossy: fixup wiki markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOCright}}&lt;br /&gt;
&lt;br /&gt;
The following is a working draft in progress for an introductory guide to AOLserver and Tcl.&lt;br /&gt;
&lt;br /&gt;
== ADP Pages ==&lt;br /&gt;
&lt;br /&gt;
Hello &amp;lt;Yourname&amp;gt; - Simple page, user submits form, displays name&lt;br /&gt;
&lt;br /&gt;
=== ADP example ===&lt;br /&gt;
&lt;br /&gt;
hello-world.adp:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;% set name [ns_queryget name &amp;quot;world&amp;quot;] %&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;title&amp;gt;Hello &amp;lt;%= [ns_quotehtml $name] %&amp;gt;!&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;Hello &amp;lt;%= [ns_quotehtml $name] %&amp;gt;!&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;form&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;Name: &amp;lt;input name=&amp;quot;name&amp;quot; value=&amp;quot;&amp;lt;%= [ns_quotehtml $name] %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Go&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/form&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tcl example ===&lt;br /&gt;
&lt;br /&gt;
hello-world.tcl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   set name [ns_queryget name &amp;quot;world&amp;quot;]&lt;br /&gt;
   ns_return 200 text/html &amp;quot;&amp;lt;html&amp;gt;&lt;br /&gt;
       &amp;lt;head&amp;gt;&lt;br /&gt;
         &amp;lt;title&amp;gt;Hello [ns_quotehtml $name]!&amp;lt;/title&amp;gt;&lt;br /&gt;
       &amp;lt;/head&amp;gt;&lt;br /&gt;
       &amp;lt;body&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;Hello [ns_quotehtml $name]!&amp;lt;/p&amp;gt;&lt;br /&gt;
         &amp;lt;form&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;Name: &amp;lt;input name=&amp;quot;name&amp;quot; value=&amp;quot;[ns_quotehtml $name]&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
         &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Go&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
         &amp;lt;/form&amp;gt;&lt;br /&gt;
       &amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;lt;/html&amp;gt;&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tcl Basics ==&lt;br /&gt;
&lt;br /&gt;
** Explain Minimalist Syntax&lt;br /&gt;
*** Commands, Subcommands (Evaluated and Non-Evaluated)&lt;br /&gt;
*** Working with variables set, expr&lt;br /&gt;
** Control Structures&lt;br /&gt;
*** if, while, etc.&lt;br /&gt;
*** procedures&lt;br /&gt;
&lt;br /&gt;
== Fetching GET and POST ==&lt;br /&gt;
&lt;br /&gt;
** Including / Referring to other pages&lt;br /&gt;
** Controlling Output&lt;br /&gt;
** Databases&lt;br /&gt;
*** Defining the connection from as a pool in the config.tcl&lt;br /&gt;
*** Selecting from the pool&lt;br /&gt;
*** Executing Queries, Retrieving Values&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
&lt;br /&gt;
* Where does ADP excel?&lt;br /&gt;
* What practices should PHP, ASP, JSP developers stop doing?&lt;br /&gt;
* How can one use Tcl to write very concise and readable code?&lt;br /&gt;
* How does one efficiently separate pages into MVC components if the wanted?&lt;br /&gt;
* How and why should one write a domain specific sublanguage?&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_and_Tcl_Crash_Course&amp;diff=5072</id>
		<title>AOLserver and Tcl Crash Course</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_and_Tcl_Crash_Course&amp;diff=5072"/>
		<updated>2007-06-16T02:54:58Z</updated>

		<summary type="html">&lt;p&gt;Dossy: added the &amp;quot;hello world&amp;quot; ADP example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Draft Outline ==&lt;br /&gt;
&lt;br /&gt;
* ADP Pages&lt;br /&gt;
** Hello &amp;lt;Yourname&amp;gt; - Simple page, user submits form, displays name&lt;br /&gt;
*** DOSSY: Create this example with very simple Tcl.&lt;br /&gt;
&lt;br /&gt;
   # hello-world.adp&lt;br /&gt;
   &amp;lt;% set name [ns_queryget name &amp;quot;world&amp;quot;] %&amp;gt;&lt;br /&gt;
   &amp;lt;html&amp;gt;&lt;br /&gt;
   &amp;lt;head&amp;gt;&lt;br /&gt;
     &amp;lt;title&amp;gt;Hello &amp;lt;%= [ns_quotehtml $name] %&amp;gt;!&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;/head&amp;gt;&lt;br /&gt;
   &amp;lt;body&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;Hello &amp;lt;%= [ns_quotehtml $name] %&amp;gt;!&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;form&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;Name: &amp;lt;input name=&amp;quot;name&amp;quot; value=&amp;quot;&amp;lt;%= [ns_quotehtml $name] %&amp;gt;&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Go&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/form&amp;gt;&lt;br /&gt;
   &amp;lt;/body&amp;gt;&lt;br /&gt;
   &amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   # hello-world.tcl&lt;br /&gt;
   set form [ns_getform]&lt;br /&gt;
   set name [string trim [ns_set get $form name]]&lt;br /&gt;
   if {$name eq &amp;quot;&amp;quot;} {&lt;br /&gt;
       set name &amp;quot;world&amp;quot;&lt;br /&gt;
   }&lt;br /&gt;
   ns_return 200 text/html &amp;quot;&amp;lt;html&amp;gt;&lt;br /&gt;
       &amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Hello [ns_quotehtml $name]!&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
       &amp;lt;body&amp;gt;&lt;br /&gt;
       Hello [ns_quotehtml $name]!&lt;br /&gt;
       &amp;lt;form action='hello-world.tcl' method='post'&amp;gt;&lt;br /&gt;
       Name: &amp;lt;input name='name' value='[ns_quotehtml $name]'&amp;gt;&lt;br /&gt;
       &amp;lt;input type='submit'&amp;gt;&lt;br /&gt;
       &amp;lt;/form&amp;gt;&lt;br /&gt;
       &amp;lt;/body&amp;gt;&lt;br /&gt;
       &amp;lt;/html&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Tcl Basics&lt;br /&gt;
** Explain Minimalist Syntax&lt;br /&gt;
*** Commands, Subcommands (Evaluated and Non-Evaluated)&lt;br /&gt;
*** Working with variables set, expr&lt;br /&gt;
** Control Structures&lt;br /&gt;
*** if, while, etc.&lt;br /&gt;
*** procedures&lt;br /&gt;
* Fetching GET and POST&lt;br /&gt;
** Including / Referring to other pages&lt;br /&gt;
** Controlling Output&lt;br /&gt;
** Databases&lt;br /&gt;
*** Defining the connection from as a pool in the config.tcl&lt;br /&gt;
*** Selecting from the pool&lt;br /&gt;
*** Executing Queries, Retrieving Values&lt;br /&gt;
&lt;br /&gt;
== Questions ==&lt;br /&gt;
* Where does ADP excel?&lt;br /&gt;
* What practices should PHP, ASP, JSP developers stop doing?&lt;br /&gt;
* How can one use Tcl to write very concise and readable code?&lt;br /&gt;
* How does one efficiently separate pages into MVC components if the wanted?&lt;br /&gt;
* How and why should one write a domain specific sublanguage?&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_dbquery&amp;diff=5069</id>
		<title>Ns dbquery</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_dbquery&amp;diff=5069"/>
		<updated>2007-06-12T14:56:19Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# ns_dbquery --&lt;br /&gt;
#&lt;br /&gt;
#   Execute a SQL query against either a pool or an opened db handle,&lt;br /&gt;
#   and return the resultset as a list of lists.  The first list&lt;br /&gt;
#   contains the column names.&lt;br /&gt;
#&lt;br /&gt;
#   If the statement was a statement which does not return rows, the&lt;br /&gt;
#   result is an empty list.  TODO:  Perhaps return the number of rows&lt;br /&gt;
#   updated?&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
proc ns_dbquery {args} {&lt;br /&gt;
    if {([llength $args] - 1) % 2 != 0} {&lt;br /&gt;
        error &amp;quot;wrong # args: should be \&amp;quot;ns_dbquery ?-pool name\&lt;br /&gt;
            | -handle dbId? ?-timeout secs? sql\&amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    foreach {key value} [lrange $args 0 end-1] {&lt;br /&gt;
        switch -exact -- $key {&lt;br /&gt;
            -pool { set pool $value }&lt;br /&gt;
            -handle { set handle $value }&lt;br /&gt;
            -timeout { set timeout $value }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    if {![info exists timeout]} {&lt;br /&gt;
        set timeout 0&lt;br /&gt;
    }&lt;br /&gt;
    if {[info exists pool]} {&lt;br /&gt;
        set db [ns_db gethandle -timeout $timeout $pool]&lt;br /&gt;
    } elseif {[info exists handle]} {&lt;br /&gt;
        set db $handle&lt;br /&gt;
    } else {&lt;br /&gt;
        # Use default pool, if configured.&lt;br /&gt;
        set db [ns_db gethandle -timeout $timeout]&lt;br /&gt;
    }&lt;br /&gt;
    if {![string length $db]} {&lt;br /&gt;
        error &amp;quot;couldn't get db handle&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    set res [catch {&lt;br /&gt;
        set resultset [list]&lt;br /&gt;
        if {[ns_db exec $db [lindex $args end]] eq &amp;quot;NS_ROWS&amp;quot;} {&lt;br /&gt;
            set row [ns_db bindrow $db]&lt;br /&gt;
            set columns [list]&lt;br /&gt;
            foreach {key value} [ns_set array $row] {&lt;br /&gt;
                lappend columns $key&lt;br /&gt;
            }&lt;br /&gt;
            lappend resultset $columns&lt;br /&gt;
            while {[ns_db getrow $db $row]} {&lt;br /&gt;
                set data [list]&lt;br /&gt;
                foreach {key value} [ns_set array $row] {&lt;br /&gt;
                    lappend data $value&lt;br /&gt;
                }&lt;br /&gt;
                lappend resultset $data&lt;br /&gt;
            }&lt;br /&gt;
            ns_set free $row&lt;br /&gt;
        }&lt;br /&gt;
    } err]&lt;br /&gt;
    if {![info exists handle]} {&lt;br /&gt;
        ns_db releasehandle $db&lt;br /&gt;
    }&lt;br /&gt;
    if {$res} {&lt;br /&gt;
        error $err&lt;br /&gt;
    }&lt;br /&gt;
    return $resultset&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Dossy_Shiobara&amp;diff=5025</id>
		<title>Dossy Shiobara</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Dossy_Shiobara&amp;diff=5025"/>
		<updated>2007-01-03T23:38:30Z</updated>

		<summary type="html">&lt;p&gt;Dossy: /* Articles */ adding Linux Magazine Spain article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: [mailto:dossy@panoptic.com]&lt;br /&gt;
: Location: US, NJ/NY/VA&lt;br /&gt;
&lt;br /&gt;
[[Category:Person|Shiobara, Dossy]]&lt;br /&gt;
&lt;br /&gt;
I run the [[AOLserver Wiki]] at [[Panoptic]].  If there are any problems with it, ''abuse me''.&lt;br /&gt;
&lt;br /&gt;
My blog is at http://dossy.org/ aka [http://dossy.org/ Dossy's Blog] -- I try to post regularly (at least once a day, minimally once a week) and I often try to post about AOLserver-related matters.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
My current AOLserver-related projects are to:&lt;br /&gt;
&lt;br /&gt;
* Ensure we meet all our goals and milestones for the AOLserver Project according to the published 2004 [[Roadmap]].&lt;br /&gt;
* Start formalizing the testing/QA procedures and pre-release checklist that will go into every release: [[How are releases tested]]?&lt;br /&gt;
* [[nssic]] -- the Server Inter-Connect module&lt;br /&gt;
&lt;br /&gt;
The following items are old and need to be updated:&lt;br /&gt;
&lt;br /&gt;
* Stress-test and release version 0.6 of [[nsmysql]] (an internal database driver for MySQL)&lt;br /&gt;
* Write a configuration tool which will manage and generate nsd.tcl files&lt;br /&gt;
* Work on the [[AOLserver Packages]] - Binary distribution of AOLserver in the many popular package mangement formats like RedHat's RPM, Debian's .deb, FreeBSD's ports, Solaris's .pkg&lt;br /&gt;
* Write a server-side session management module, [[nssession]]&lt;br /&gt;
* Clean up version 0.1pre of [[nsfreetds]] (an internal database driver that connects to Microsoft SQL Server or Sybase using FreeTDS 0.51)&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
&lt;br /&gt;
I'm starting to collect articles written about AOLserver that are available on the web.  Eventually, these will move to their own wiki page:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eveandersson.com/arsdigita/asj/aolserver/introduction-1 Introduction to AOLserver, Part 1] by Philip Greenspun (LinuxWorld.com, July 1999)&lt;br /&gt;
* [http://www.linuxgazette.com/issue58/washington.html AOLserver - a web development platform] by Irving Washington (Issue 58, Linux Gazette, October 2000) &lt;br /&gt;
* [http://www.linuxgazette.com/issue63/washington.html XML parsing in AOLserver] by Irving Washington (Issue 63, Linux Gazette, February 2001)&lt;br /&gt;
* [http://www.webdeveloper.pl/aolserver__1,293,1,1,pl.html AOLserver (1)] by [[Wojciech Kocjan]] (WEBdeveloper.pl, February 2002)&lt;br /&gt;
* [http://www.webdeveloper.pl/aolserver__2,294,1,1,pl.html AOLserver (2)] by [[Wojciech Kocjan]] (WEBdeveloper.pl, March 2002)&lt;br /&gt;
* [http://www.linuxjournal.com/article/6164 Introducing AOLserver] by Reuven Lerner (Issue 101, Linux Journal, August/September 2002)&lt;br /&gt;
* [http://www.serverwatch.com/sreviews/article.php/2232651 Does AOLserver Have What It Takes to Stand Out?] by Michael Hall (ServerWatch, July 2003)&lt;br /&gt;
* [http://www.internetnews.com/dev-news/article.php/3462701 AOL Updates Its Open Source Web Server] by Sean Michael Kerner (InternetNews.com, January 2005)&lt;br /&gt;
* [http://www.linux-magazine.es/issue/12/AOLServer.pdf AOLServer: Un servidor web avanzado y abierto] (PDF) by Pietro Zuco (Issue 12, Linux Magazine Spain, November 2005)&lt;br /&gt;
* [https://www.linux-magazine.es/issue/15/AOLServer.pdf AOLServer II - Programación TCL, SQL y ADP] (PDF) by Pietro Zuco (Issue 15, Linux Magazine Spain, February 2006)&lt;br /&gt;
* [http://www.linuxjournal.com/article/8986 Play Ball: Introducing Fungoes] by Mat Kovach (LinuxJournal.com, April 2006)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Just saving a funny joke that's really relevant to the work I do: [[see if it happens again]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
My current scratch pad or whiteboard contents:&lt;br /&gt;
&lt;br /&gt;
Current idiom:&lt;br /&gt;
&lt;br /&gt;
    set lock [ns_mutex create lock]&lt;br /&gt;
    ns_mutex lock $lock&lt;br /&gt;
    catch {&lt;br /&gt;
        # synchronized code here&lt;br /&gt;
    }&lt;br /&gt;
    ns_mutex unlock $lock&lt;br /&gt;
&lt;br /&gt;
Proposed change:&lt;br /&gt;
&lt;br /&gt;
    set lock [ns_mutex create lock]&lt;br /&gt;
    ns_mutex eval $lock $script&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Dossy's Blog ==&lt;br /&gt;
&lt;br /&gt;
Here's the three most recent RSS entries from my blog.  This is just testing out a MediaWiki 1.5 extension I'm working on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;feed limit=&amp;quot;3&amp;quot;&amp;gt;http://dossy.org/index.xml&amp;lt;/feed&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Dossy_Shiobara&amp;diff=5024</id>
		<title>Dossy Shiobara</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Dossy_Shiobara&amp;diff=5024"/>
		<updated>2007-01-03T19:50:47Z</updated>

		<summary type="html">&lt;p&gt;Dossy: /* Articles */ add article from Linux Magazine Spain&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: [mailto:dossy@panoptic.com]&lt;br /&gt;
: Location: US, NJ/NY/VA&lt;br /&gt;
&lt;br /&gt;
[[Category:Person|Shiobara, Dossy]]&lt;br /&gt;
&lt;br /&gt;
I run the [[AOLserver Wiki]] at [[Panoptic]].  If there are any problems with it, ''abuse me''.&lt;br /&gt;
&lt;br /&gt;
My blog is at http://dossy.org/ aka [http://dossy.org/ Dossy's Blog] -- I try to post regularly (at least once a day, minimally once a week) and I often try to post about AOLserver-related matters.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
My current AOLserver-related projects are to:&lt;br /&gt;
&lt;br /&gt;
* Ensure we meet all our goals and milestones for the AOLserver Project according to the published 2004 [[Roadmap]].&lt;br /&gt;
* Start formalizing the testing/QA procedures and pre-release checklist that will go into every release: [[How are releases tested]]?&lt;br /&gt;
* [[nssic]] -- the Server Inter-Connect module&lt;br /&gt;
&lt;br /&gt;
The following items are old and need to be updated:&lt;br /&gt;
&lt;br /&gt;
* Stress-test and release version 0.6 of [[nsmysql]] (an internal database driver for MySQL)&lt;br /&gt;
* Write a configuration tool which will manage and generate nsd.tcl files&lt;br /&gt;
* Work on the [[AOLserver Packages]] - Binary distribution of AOLserver in the many popular package mangement formats like RedHat's RPM, Debian's .deb, FreeBSD's ports, Solaris's .pkg&lt;br /&gt;
* Write a server-side session management module, [[nssession]]&lt;br /&gt;
* Clean up version 0.1pre of [[nsfreetds]] (an internal database driver that connects to Microsoft SQL Server or Sybase using FreeTDS 0.51)&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
&lt;br /&gt;
I'm starting to collect articles written about AOLserver that are available on the web.  Eventually, these will move to their own wiki page:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eveandersson.com/arsdigita/asj/aolserver/introduction-1 Introduction to AOLserver, Part 1] by Philip Greenspun (LinuxWorld.com, July 1999)&lt;br /&gt;
* [http://www.linuxgazette.com/issue58/washington.html AOLserver - a web development platform] by Irving Washington (Issue 58, Linux Gazette, October 2000) &lt;br /&gt;
* [http://www.linuxgazette.com/issue63/washington.html XML parsing in AOLserver] by Irving Washington (Issue 63, Linux Gazette, February 2001)&lt;br /&gt;
* [http://www.webdeveloper.pl/aolserver__1,293,1,1,pl.html AOLserver (1)] by [[Wojciech Kocjan]] (WEBdeveloper.pl, February 2002)&lt;br /&gt;
* [http://www.webdeveloper.pl/aolserver__2,294,1,1,pl.html AOLserver (2)] by [[Wojciech Kocjan]] (WEBdeveloper.pl, March 2002)&lt;br /&gt;
* [http://www.linuxjournal.com/article/6164 Introducing AOLserver] by Reuven Lerner (Issue 101, Linux Journal, August/September 2002)&lt;br /&gt;
* [http://www.serverwatch.com/sreviews/article.php/2232651 Does AOLserver Have What It Takes to Stand Out?] by Michael Hall (ServerWatch, July 2003)&lt;br /&gt;
* [http://www.internetnews.com/dev-news/article.php/3462701 AOL Updates Its Open Source Web Server] by Sean Michael Kerner (InternetNews.com, January 2005)&lt;br /&gt;
* [http://www.linux-magazine.es/issue/12/AOLServer.pdf AOLServer: Un servidor web avanzado y abierto] (PDF) by Pietro Zuco (Issue 12, Linux Magazine Spain, August 2005)&lt;br /&gt;
* [http://www.linuxjournal.com/article/8986 Play Ball: Introducing Fungoes] by Mat Kovach (LinuxJournal.com, April 2006)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Just saving a funny joke that's really relevant to the work I do: [[see if it happens again]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
My current scratch pad or whiteboard contents:&lt;br /&gt;
&lt;br /&gt;
Current idiom:&lt;br /&gt;
&lt;br /&gt;
    set lock [ns_mutex create lock]&lt;br /&gt;
    ns_mutex lock $lock&lt;br /&gt;
    catch {&lt;br /&gt;
        # synchronized code here&lt;br /&gt;
    }&lt;br /&gt;
    ns_mutex unlock $lock&lt;br /&gt;
&lt;br /&gt;
Proposed change:&lt;br /&gt;
&lt;br /&gt;
    set lock [ns_mutex create lock]&lt;br /&gt;
    ns_mutex eval $lock $script&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Dossy's Blog ==&lt;br /&gt;
&lt;br /&gt;
Here's the three most recent RSS entries from my blog.  This is just testing out a MediaWiki 1.5 extension I'm working on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;feed limit=&amp;quot;3&amp;quot;&amp;gt;http://dossy.org/index.xml&amp;lt;/feed&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Juanjose&amp;diff=5021</id>
		<title>User talk:Juanjose</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=User_talk:Juanjose&amp;diff=5021"/>
		<updated>2006-12-18T19:00:44Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am feeling so alone... ;) Please, tell me something! :D&lt;br /&gt;
&lt;br /&gt;
: ''Looks like you're able to get on the wiki now.  :-)'' -- [[User:Dossy|Dossy]] 14:00, 18 December 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Frequently_Asked_Questions&amp;diff=5014</id>
		<title>Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Frequently_Asked_Questions&amp;diff=5014"/>
		<updated>2006-12-15T16:30:24Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
(Please add new questions at the very bottom  of the list.  Thanks.)&lt;br /&gt;
&lt;br /&gt;
== What is AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
AOLserver is America Online's Open Source web server.  AOLserver is the backbone of the largest and busiest production environments in the world.&lt;br /&gt;
&lt;br /&gt;
AOLserver is a multithreaded, Tcl-enabled, massively-scalable and extensible web server tuned for large scale, dynamic web sites. AOLserver also includes complete database integration and a dynamic page scripting language.&lt;br /&gt;
&lt;br /&gt;
== What is the latest version of AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
* The latest stable 3.4.x version is 3.4.2 released 18 September 2001.&lt;br /&gt;
* The latest stable 3.5.x version is 3.5.11 released 17 October 2003.&lt;br /&gt;
* The latest stable 4.0.x version is 4.0.10 released 18 January 2005.&lt;br /&gt;
* The latest stable 4.5.x version is 4.5.0 released 27 June 2006.&lt;br /&gt;
* Current development (CVS HEAD) is 4.5.0.&lt;br /&gt;
&lt;br /&gt;
== Where can I get AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
The AOLserver project is hosted at [http://sourceforge.net/ SourceForge], and file releases are available for [[download]] in the [http://sourceforge.net/project/showfiles.php?group_id=3152 AOLserver Project Filelist].&lt;br /&gt;
&lt;br /&gt;
== What platforms does AOLserver support? ==&lt;br /&gt;
&lt;br /&gt;
'''AOLserver''' is known to compile and run on the following platforms:&lt;br /&gt;
* Linux 2.2 (i386), 2.4 and 2.6&lt;br /&gt;
* Windows 95/98/NT/2K/XP (i386) (partially supported, see #6)&lt;br /&gt;
* FreeBSD 3.4 (i386)&lt;br /&gt;
* OpenBSD 2.5 (i386)&lt;br /&gt;
* UnixWare 7.x (i386)&lt;br /&gt;
* DEC Tru64 &amp;amp; OSF/1 4.0 (alpha)&lt;br /&gt;
* Solaris 2.x (sparc), Solaris 2.10 (x86)&lt;br /&gt;
* HP/UX 10 &amp;amp; 11 (hppa)&lt;br /&gt;
* Irix 6.x (mips)&lt;br /&gt;
* Apple MacOS X 10.3 (ppc), 10.4 (ppc)&lt;br /&gt;
&lt;br /&gt;
== How is AOLserver licensed and distributed? ==&lt;br /&gt;
&lt;br /&gt;
Via the [[AOLserver Public License]], viewable at http://aolserver.com/license/.&lt;br /&gt;
&lt;br /&gt;
== How does AOLserver performance compare to other major servers? ==&lt;br /&gt;
&lt;br /&gt;
[[Brady Wetherington]] says:  On Unix, AOLserver can generate many, many dynamic pages very quickly and reliably. It also has some special code paths designed to speed up processing of static pages (fastpath), though I don't use that very much, personally.  Along with the database connection pools, it's definitely one of the highest-performance web-based database systems I've used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How is it different from Apache HTTP Server? ==&lt;br /&gt;
&lt;br /&gt;
The current Apache HTTP Server&lt;br /&gt;
* is part of / a project of the Apache Software Foundation. The process of development and decision making is working for years and accepted by all participants&lt;br /&gt;
* allows to run applications in a process-pre-forking or multi-threaded environment by design&lt;br /&gt;
* is the leading webserver, so it is widely known, accepted and supported&lt;br /&gt;
* is itself a subproject accompanied by lots of well known other projects and frameworks (like Ant, Jakarta, Struts...)&lt;br /&gt;
&lt;br /&gt;
In contrast AOLserver&lt;br /&gt;
* can do lots of use cases that are done with Apache modules with a few lines of TCL code (via registered filters and procs)&lt;br /&gt;
* is bound to its multi-threaded architecture that has its own disadvantages, depending on what you want to do&lt;br /&gt;
&lt;br /&gt;
== How is it different from &amp;lt;insert other webserver&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
== Where is AOLserver appropriate?  Where is it not? ==&lt;br /&gt;
&lt;br /&gt;
It is not appropriate...&lt;br /&gt;
* when you want to do virtual hosting for multiple customers.  For static content, AOLserver is fine - you're just serving static content.  For dynamic, server-side functionality, to get the level of privilege separation necessary, you'd have to run a separate nsd per customer to ensure that one customer can't access the content/data of another's.  There are apparently some folks out there who have set up AOLserver just this way and are doing just this.&lt;br /&gt;
* when the code you want to use is not thread-safe (and you are not able to change that)&lt;br /&gt;
* when your main application makes heavy use of cgi-tools or other scripting languages like PHP or Phython (in general: where currently no active dedicated maintainer for corresponding modules is known)&lt;br /&gt;
* when you need backup of a large world wide community that uses tools, modules and code you can find and read in every single computer magazine. AOLserver and TCL are niche products, which only means they are not sexy to the broad audience, but are used intensively by a sophisticated, intelligent minority&lt;br /&gt;
* when you know you would need more than one day to convince your customer to use it (in other words: if you use technology the first time don't let your most important customer be the beta tester)&lt;br /&gt;
&lt;br /&gt;
It is appropriate...&lt;br /&gt;
* when you want to make maximum use of your machines hardware ressources: AOLserver is a highly configurable beast that allows you to run big websites&lt;br /&gt;
* when you plan to run a website that makes heavy use of one or more databases (using pooled connections)&lt;br /&gt;
* when you want to cache lots or all of your static files (.html,.gif,.css.,.js ...) in your servers memory (via modules fastpath and nscache)&lt;br /&gt;
* when you like the good feeling of running and coding your apps on a well-tested multi-threaded server architecture. The server never has been a process-forking one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The idea here is if you know your requirements and your scope is fairly stable and you feel comfortable you can predict the future, and if all signs point to the app. remaining small-to-medium in usage/traffic, then pick whatever platform or technology you like the best -- it really won't make a difference.  But, if you think that it's a very real possibility you'll need&lt;br /&gt;
to scale up capacity to meet growing demand/traffic, possibly indefinitely, then yes, the hidden cost of re-architecting or migrating to a different technology can be a killer when you have to use the words &amp;quot;sunk cost&amp;quot; to describe the originally developed system.  In that case, you may be better off starting with implementing with AOLserver, as its performance &amp;quot;ceiling&amp;quot; so to speak is higher than other technologies.  (TODO: Benchmarks demonstrating this empirically?)&lt;br /&gt;
&lt;br /&gt;
== How do I get started with AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;need to link to a newbie guide HOWTO&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I learn more about AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
Start by reading the [[Documentation]], which is still a work-in-progress.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;package require&amp;quot; doesn't work!  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
Here's the relevant portion of a message [[Dossy Shiobara]] sent to the AOLserver mailing list back on 16 June 2000:&lt;br /&gt;
&lt;br /&gt;
  set tcl_library [file join $tcl_pkgPath tcl${tcl_version}]&lt;br /&gt;
  source [file join $tcl_library init.tcl]&lt;br /&gt;
&lt;br /&gt;
  package require works like a charm after that :-)&lt;br /&gt;
&lt;br /&gt;
There you have it.  Perhaps, some day, this won't be a necessary step.  But, in the meantime ...&lt;br /&gt;
&lt;br /&gt;
''As of AOLserver 4.0 and perhaps even a late version of 3.5.x, this step is no longer necessary.''&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;ns_set update [ns_conn outputheaders] Content-Type&amp;quot; results in the server sending two copies of the Content-Type header.  Why? ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ns_set update [ns_conn outputheaders $conn] Content-Type {application/x-tcl}&amp;quot; does not work in .adp files as I wish.  The server always returns two copies of the Content-Type header, one as application/x-tcl, another as text/html and clients(galeon, tcl http package) always use the second.  How do I remove the second Content-Type?'''&lt;br /&gt;
&lt;br /&gt;
Good question -- this is really a bug that needs to be fixed in the server code itself.&lt;br /&gt;
&lt;br /&gt;
== How can I get Tclet scripts served from AOLserver to run inside the Tcl Plugin? ==&lt;br /&gt;
&lt;br /&gt;
Someone asks: ''I have an aolserver for OpenACS.  I installed Tcl Plugin which works well with classic Tclets on Tcl Plugin Home Pages.  But with Aolserver, it doesn't work.... Do you know the answer of this?''&lt;br /&gt;
&lt;br /&gt;
== How can I compile AOLserver on HP-UX, both 10.20 and 11.x? ==&lt;br /&gt;
&lt;br /&gt;
[[Dossy]]: Good question.  If I had easy access to HP-UX machines, I'd try it myself.  AOLserver 4.x should hopefully build on HP-UX without any changes, but I'm only guessing.&lt;br /&gt;
&lt;br /&gt;
HPUX doesn't implement a lot of BSD/POSIX IPC functions, or so I hear.&lt;br /&gt;
&lt;br /&gt;
== I'm getting an error compiling AOLserver about POLLIN, POLLOUT and POLLPRI being redefined.  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
AOLserver requires that the &amp;quot;configure&amp;quot; script be run using the GNU C (gcc) compiler.  Try running the configure script like this:&lt;br /&gt;
&lt;br /&gt;
    $ CC=gcc ./configure --args...&lt;br /&gt;
&lt;br /&gt;
== Does AOLserver support HTTP Keep-Alive?  I'm sending a HTTP/1.1 request via httperf and AOLserver isn't doing Keep-Alive like Apache does!  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
Actually, nothing is wrong. You just need to tell httperf to include the headers that tell AOLserver to expect multiple requests per connection. Add '--add_header &amp;quot;Connection: Keep-Alive\n&amp;quot;' to your httperf request. &lt;br /&gt;
&lt;br /&gt;
The issue is that Apache and AOLserver chose opposite default behaviors when interpretting [http://www.ietf.org/rfc/rfc2068.txt RFC 2068 section 8.1.2.1]:&lt;br /&gt;
&lt;br /&gt;
   An HTTP/1.1 server MAY assume that a HTTP/1.1 client intends to&lt;br /&gt;
   maintain a persistent connection unless a Connection header including&lt;br /&gt;
   the connection-token &amp;quot;close&amp;quot; was sent in the request. If the server&lt;br /&gt;
   chooses to close the connection immediately after sending the&lt;br /&gt;
   response, it SHOULD send a Connection header including the&lt;br /&gt;
   connection-token close.&lt;br /&gt;
&lt;br /&gt;
   An HTTP/1.1 client MAY expect a connection to remain open, but would&lt;br /&gt;
   decide to keep it open based on whether the response from a server&lt;br /&gt;
   contains a Connection header with the connection-token close. In case&lt;br /&gt;
   the client does not want to maintain a connection for more than that&lt;br /&gt;
   request, it SHOULD send a Connection header including the&lt;br /&gt;
   connection-token close.&lt;br /&gt;
&lt;br /&gt;
The key here is &amp;quot;MAY&amp;quot; -- AOLserver (currently, as of 4.0.10) chooses not to assume a Keep-Alive connection unless the client explicitly requests it by sending &amp;quot;Connection: Keep-Alive&amp;quot; in the HTTP request header.  This may change in the future (HTTP/1.1 requests default to Keep-Alive unless the client explicitly sends &amp;quot;Connection: close&amp;quot; -- apparently this is how Apache works).&lt;br /&gt;
&lt;br /&gt;
== AOLserver 4.0.10 is consuming all my memory ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mail-archive.com/aolserver%40listserv.aol.com/msg09104.html Bas Scheffers says]: What version of Tcl did you use? Use 8.4.11 or 8.4.6, but nothing in between as they have a big memory leak.&lt;br /&gt;
&lt;br /&gt;
Note that debian sarge includes tcl 8.4.9 (as of 2006-01-03).&lt;br /&gt;
&lt;br /&gt;
== How do I customize standard HTTP responses? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Internal redirects&lt;br /&gt;
#&lt;br /&gt;
ns_section &amp;quot;ns/server/${servername}/redirects&amp;quot;&lt;br /&gt;
ns_param   404 &amp;quot;/notfound.html&amp;quot;      ;# Not Found error page&lt;br /&gt;
ns_param   500 &amp;quot;/servererror.html&amp;quot;   ;# Server Error page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Frequently_Asked_Questions&amp;diff=5012</id>
		<title>Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Frequently_Asked_Questions&amp;diff=5012"/>
		<updated>2006-12-15T16:30:13Z</updated>

		<summary type="html">&lt;p&gt;Dossy: FAQ moved to Frequently Asked Questions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
(Please add new questions at the very bottom  of the list.  Thanks.)&lt;br /&gt;
&lt;br /&gt;
== What is AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
AOLserver is America Online's Open Source web server.  AOLserver is the backbone of the largest and busiest production environments in the world.&lt;br /&gt;
&lt;br /&gt;
AOLserver is a multithreaded, Tcl-enabled, massively-scalable and extensible web server tuned for large scale, dynamic web sites. AOLserver also includes complete database integration and a dynamic page scripting language.&lt;br /&gt;
&lt;br /&gt;
== What is the latest version of AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
* The latest stable 3.4.x version is 3.4.2 released 18 September 2001.&lt;br /&gt;
* The latest stable 3.5.x version is 3.5.11 released 17 October 2003.&lt;br /&gt;
* The latest stable 4.0.x version is 4.0.10 released 18 January 2005.&lt;br /&gt;
* The latest stable 4.5.x version is 4.5.0 released 27 June 2006.&lt;br /&gt;
* Current development (CVS HEAD) is 4.5.0.&lt;br /&gt;
&lt;br /&gt;
== Where can I get AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
The AOLserver project is hosted at [http://sourceforge.net/ SourceForge], and file releases are available for [[download]] in the [http://sourceforge.net/project/showfiles.php?group_id=3152 AOLserver Project Filelist].&lt;br /&gt;
&lt;br /&gt;
== What platforms does AOLserver support? ==&lt;br /&gt;
&lt;br /&gt;
'''AOLserver''' is known to compile and run on the following platforms:&lt;br /&gt;
* Linux 2.2 (i386), 2.4 and 2.6&lt;br /&gt;
* Windows 95/98/NT/2K/XP (i386) (partially supported, see #6)&lt;br /&gt;
* FreeBSD 3.4 (i386)&lt;br /&gt;
* OpenBSD 2.5 (i386)&lt;br /&gt;
* UnixWare 7.x (i386)&lt;br /&gt;
* DEC Tru64 &amp;amp; OSF/1 4.0 (alpha)&lt;br /&gt;
* Solaris 2.x (sparc), Solaris 2.10 (x86)&lt;br /&gt;
* HP/UX 10 &amp;amp; 11 (hppa)&lt;br /&gt;
* Irix 6.x (mips)&lt;br /&gt;
* Apple MacOS X 10.3 (ppc), 10.4 (ppc)&lt;br /&gt;
&lt;br /&gt;
== How is AOLserver licensed and distributed? ==&lt;br /&gt;
&lt;br /&gt;
Via the [[AOLserver Public License]], viewable at http://aolserver.com/license/.&lt;br /&gt;
&lt;br /&gt;
== How does AOLserver performance compare to other major servers? ==&lt;br /&gt;
&lt;br /&gt;
[[Brady Wetherington]] says:  On Unix, AOLserver can generate many, many dynamic pages very quickly and reliably. It also has some special code paths designed to speed up processing of static pages (fastpath), though I don't use that very much, personally.  Along with the database connection pools, it's definitely one of the highest-performance web-based database systems I've used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How is it different from Apache HTTP Server? ==&lt;br /&gt;
&lt;br /&gt;
The current Apache HTTP Server&lt;br /&gt;
* is part of / a project of the Apache Software Foundation. The process of development and decision making is working for years and accepted by all participants&lt;br /&gt;
* allows to run applications in a process-pre-forking or multi-threaded environment by design&lt;br /&gt;
* is the leading webserver, so it is widely known, accepted and supported&lt;br /&gt;
* is itself a subproject accompanied by lots of well known other projects and frameworks (like Ant, Jakarta, Struts...)&lt;br /&gt;
&lt;br /&gt;
In contrast AOLserver&lt;br /&gt;
* can do lots of use cases that are done with Apache modules with a few lines of TCL code (via registered filters and procs)&lt;br /&gt;
* is bound to its multi-threaded architecture that has its own disadvantages, depending on what you want to do&lt;br /&gt;
&lt;br /&gt;
== How is it different from &amp;lt;insert other webserver&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
== Where is AOLserver appropriate?  Where is it not? ==&lt;br /&gt;
&lt;br /&gt;
It is not appropriate...&lt;br /&gt;
* when you want to do virtual hosting for multiple customers.  For static content, AOLserver is fine - you're just serving static content.  For dynamic, server-side functionality, to get the level of privilege separation necessary, you'd have to run a separate nsd per customer to ensure that one customer can't access the content/data of another's.  There are apparently some folks out there who have set up AOLserver just this way and are doing just this.&lt;br /&gt;
* when the code you want to use is not thread-safe (and you are not able to change that)&lt;br /&gt;
* when your main application makes heavy use of cgi-tools or other scripting languages like PHP or Phython (in general: where currently no active dedicated maintainer for corresponding modules is known)&lt;br /&gt;
* when you need backup of a large world wide community that uses tools, modules and code you can find and read in every single computer magazine. AOLserver and TCL are niche products, which only means they are not sexy to the broad audience, but are used intensively by a sophisticated, intelligent minority&lt;br /&gt;
* when you know you would need more than one day to convince your customer to use it (in other words: if you use technology the first time don't let your most important customer be the beta tester)&lt;br /&gt;
&lt;br /&gt;
It is appropriate...&lt;br /&gt;
* when you want to make maximum use of your machines hardware ressources: AOLserver is a highly configurable beast that allows you to run big websites&lt;br /&gt;
* when you plan to run a website that makes heavy use of one or more databases (using pooled connections)&lt;br /&gt;
* when you want to cache lots or all of your static files (.html,.gif,.css.,.js ...) in your servers memory (via modules fastpath and nscache)&lt;br /&gt;
* when you like the good feeling of running and coding your apps on a well-tested multi-threaded server architecture. The server never has been a process-forking one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The idea here is if you know your requirements and your scope is fairly stable and you feel comfortable you can predict the future, and if all signs point to the app. remaining small-to-medium in usage/traffic, then pick whatever platform or technology you like the best -- it really won't make a difference.  But, if you think that it's a very real possibility you'll need&lt;br /&gt;
to scale up capacity to meet growing demand/traffic, possibly indefinitely, then yes, the hidden cost of re-architecting or migrating to a different technology can be a killer when you have to use the words &amp;quot;sunk cost&amp;quot; to describe the originally developed system.  In that case, you may be better off starting with implementing with AOLserver, as its performance &amp;quot;ceiling&amp;quot; so to speak is higher than other technologies.  (TODO: Benchmarks demonstrating this empirically?)&lt;br /&gt;
&lt;br /&gt;
== How do I get started with AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;need to link to a newbie guide HOWTO&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I learn more about AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
Start by reading the [[Documentation]], which is still a work-in-progress.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;package require&amp;quot; doesn't work!  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
Here's the relevant portion of a message [[Dossy Shiobara]] sent to the AOLserver mailing list back on 16 June 2000:&lt;br /&gt;
&lt;br /&gt;
  set tcl_library [file join $tcl_pkgPath tcl${tcl_version}]&lt;br /&gt;
  source [file join $tcl_library init.tcl]&lt;br /&gt;
&lt;br /&gt;
  package require works like a charm after that :-)&lt;br /&gt;
&lt;br /&gt;
There you have it.  Perhaps, some day, this won't be a necessary step.  But, in the meantime ...&lt;br /&gt;
&lt;br /&gt;
''As of AOLserver 4.0 and perhaps even a late version of 3.5.x, this step is no longer necessary.''&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;ns_set update [ns_conn outputheaders] Content-Type&amp;quot; results in the server sending two copies of the Content-Type header.  Why? ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ns_set update [ns_conn outputheaders $conn] Content-Type {application/x-tcl}&amp;quot; does not work in .adp files as I wish.  The server always returns two copies of the Content-Type header, one as application/x-tcl, another as text/html and clients(galeon, tcl http package) always use the second.  How do I remove the second Content-Type?'''&lt;br /&gt;
&lt;br /&gt;
Good question -- this is really a bug that needs to be fixed in the server code itself.&lt;br /&gt;
&lt;br /&gt;
== How can I get Tclet scripts served from AOLserver to run inside the Tcl Plugin? ==&lt;br /&gt;
&lt;br /&gt;
Someone asks: ''I have an aolserver for OpenACS.  I installed Tcl Plugin which works well with classic Tclets on Tcl Plugin Home Pages.  But with Aolserver, it doesn't work.... Do you know the answer of this?''&lt;br /&gt;
&lt;br /&gt;
== How can I compile AOLserver on HP-UX, both 10.20 and 11.x? ==&lt;br /&gt;
&lt;br /&gt;
[[Dossy]]: Good question.  If I had easy access to HP-UX machines, I'd try it myself.  AOLserver 4.x should hopefully build on HP-UX without any changes, but I'm only guessing.&lt;br /&gt;
&lt;br /&gt;
HPUX doesn't implement a lot of BSD/POSIX IPC functions, or so I hear.&lt;br /&gt;
&lt;br /&gt;
== I'm getting an error compiling AOLserver about POLLIN, POLLOUT and POLLPRI being redefined.  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
AOLserver requires that the &amp;quot;configure&amp;quot; script be run using the GNU C (gcc) compiler.  Try running the configure script like this:&lt;br /&gt;
&lt;br /&gt;
    $ CC=gcc ./configure --args...&lt;br /&gt;
&lt;br /&gt;
== Does AOLserver support HTTP Keep-Alive?  I'm sending a HTTP/1.1 request via httperf and AOLserver isn't doing Keep-Alive like Apache does!  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
Actually, nothing is wrong. You just need to tell httperf to include the headers that tell AOLserver to expect multiple requests per connection. Add '--add_header &amp;quot;Connection: Keep-Alive\n&amp;quot;' to your httperf request. &lt;br /&gt;
&lt;br /&gt;
The issue is that Apache and AOLserver chose opposite default behaviors when interpretting [http://www.ietf.org/rfc/rfc2068.txt RFC 2068 section 8.1.2.1]:&lt;br /&gt;
&lt;br /&gt;
   An HTTP/1.1 server MAY assume that a HTTP/1.1 client intends to&lt;br /&gt;
   maintain a persistent connection unless a Connection header including&lt;br /&gt;
   the connection-token &amp;quot;close&amp;quot; was sent in the request. If the server&lt;br /&gt;
   chooses to close the connection immediately after sending the&lt;br /&gt;
   response, it SHOULD send a Connection header including the&lt;br /&gt;
   connection-token close.&lt;br /&gt;
&lt;br /&gt;
   An HTTP/1.1 client MAY expect a connection to remain open, but would&lt;br /&gt;
   decide to keep it open based on whether the response from a server&lt;br /&gt;
   contains a Connection header with the connection-token close. In case&lt;br /&gt;
   the client does not want to maintain a connection for more than that&lt;br /&gt;
   request, it SHOULD send a Connection header including the&lt;br /&gt;
   connection-token close.&lt;br /&gt;
&lt;br /&gt;
The key here is &amp;quot;MAY&amp;quot; -- AOLserver (currently, as of 4.0.10) chooses not to assume a Keep-Alive connection unless the client explicitly requests it by sending &amp;quot;Connection: Keep-Alive&amp;quot; in the HTTP request header.  This may change in the future (HTTP/1.1 requests default to Keep-Alive unless the client explicitly sends &amp;quot;Connection: close&amp;quot; -- apparently this is how Apache works).&lt;br /&gt;
&lt;br /&gt;
== AOLserver 4.0.10 is consuming all my memory ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mail-archive.com/aolserver%40listserv.aol.com/msg09104.html Bas Scheffers says]: What version of Tcl did you use? Use 8.4.11 or 8.4.6, but nothing in between as they have a big memory leak.&lt;br /&gt;
&lt;br /&gt;
Note that debian sarge includes tcl 8.4.9 (as of 2006-01-03).&lt;br /&gt;
&lt;br /&gt;
== How do I customize standard HTTP responses? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Internal redirects&lt;br /&gt;
#&lt;br /&gt;
ns_section &amp;quot;ns/server/${servername}/redirects&amp;quot;&lt;br /&gt;
ns_param   404 &amp;quot;/notfound.html&amp;quot;      ;# Not Found error page&lt;br /&gt;
ns_param   500 &amp;quot;/servererror.html&amp;quot;   ;# Server Error page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=FAQ&amp;diff=5013</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=FAQ&amp;diff=5013"/>
		<updated>2006-12-15T16:30:13Z</updated>

		<summary type="html">&lt;p&gt;Dossy: FAQ moved to Frequently Asked Questions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#redirect [[Frequently Asked Questions]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Frequently_Asked_Questions&amp;diff=5011</id>
		<title>Frequently Asked Questions</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Frequently_Asked_Questions&amp;diff=5011"/>
		<updated>2006-12-15T16:29:53Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
(Please add new questions at the very bottom  of the list.  Thanks.)&lt;br /&gt;
&lt;br /&gt;
== What is AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
AOLserver is America Online's Open Source web server.  AOLserver is the backbone of the largest and busiest production environments in the world.&lt;br /&gt;
&lt;br /&gt;
AOLserver is a multithreaded, Tcl-enabled, massively-scalable and extensible web server tuned for large scale, dynamic web sites. AOLserver also includes complete database integration and a dynamic page scripting language.&lt;br /&gt;
&lt;br /&gt;
== What is the latest version of AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
* The latest stable 3.4.x version is 3.4.2 released 18 September 2001.&lt;br /&gt;
* The latest stable 3.5.x version is 3.5.11 released 17 October 2003.&lt;br /&gt;
* The latest stable 4.0.x version is 4.0.10 released 18 January 2005.&lt;br /&gt;
* The latest stable 4.5.x version is 4.5.0 released 27 June 2006.&lt;br /&gt;
* Current development (CVS HEAD) is 4.5.0.&lt;br /&gt;
&lt;br /&gt;
== Where can I get AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
The AOLserver project is hosted at [http://sourceforge.net/ SourceForge], and file releases are available for [[download]] in the [http://sourceforge.net/project/showfiles.php?group_id=3152 AOLserver Project Filelist].&lt;br /&gt;
&lt;br /&gt;
== What platforms does AOLserver support? ==&lt;br /&gt;
&lt;br /&gt;
'''AOLserver''' is known to compile and run on the following platforms:&lt;br /&gt;
* Linux 2.2 (i386), 2.4 and 2.6&lt;br /&gt;
* Windows 95/98/NT/2K/XP (i386) (partially supported, see #6)&lt;br /&gt;
* FreeBSD 3.4 (i386)&lt;br /&gt;
* OpenBSD 2.5 (i386)&lt;br /&gt;
* UnixWare 7.x (i386)&lt;br /&gt;
* DEC Tru64 &amp;amp; OSF/1 4.0 (alpha)&lt;br /&gt;
* Solaris 2.x (sparc), Solaris 2.10 (x86)&lt;br /&gt;
* HP/UX 10 &amp;amp; 11 (hppa)&lt;br /&gt;
* Irix 6.x (mips)&lt;br /&gt;
* Apple MacOS X 10.3 (ppc), 10.4 (ppc)&lt;br /&gt;
&lt;br /&gt;
== How is AOLserver licensed and distributed? ==&lt;br /&gt;
&lt;br /&gt;
Via the [[AOLserver Public License]], viewable at http://aolserver.com/license/.&lt;br /&gt;
&lt;br /&gt;
== How does AOLserver performance compare to other major servers? ==&lt;br /&gt;
&lt;br /&gt;
[[Brady Wetherington]] says:  On Unix, AOLserver can generate many, many dynamic pages very quickly and reliably. It also has some special code paths designed to speed up processing of static pages (fastpath), though I don't use that very much, personally.  Along with the database connection pools, it's definitely one of the highest-performance web-based database systems I've used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How is it different from Apache HTTP Server? ==&lt;br /&gt;
&lt;br /&gt;
The current Apache HTTP Server&lt;br /&gt;
* is part of / a project of the Apache Software Foundation. The process of development and decision making is working for years and accepted by all participants&lt;br /&gt;
* allows to run applications in a process-pre-forking or multi-threaded environment by design&lt;br /&gt;
* is the leading webserver, so it is widely known, accepted and supported&lt;br /&gt;
* is itself a subproject accompanied by lots of well known other projects and frameworks (like Ant, Jakarta, Struts...)&lt;br /&gt;
&lt;br /&gt;
In contrast AOLserver&lt;br /&gt;
* can do lots of use cases that are done with Apache modules with a few lines of TCL code (via registered filters and procs)&lt;br /&gt;
* is bound to its multi-threaded architecture that has its own disadvantages, depending on what you want to do&lt;br /&gt;
&lt;br /&gt;
== How is it different from &amp;lt;insert other webserver&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
???&lt;br /&gt;
&lt;br /&gt;
== Where is AOLserver appropriate?  Where is it not? ==&lt;br /&gt;
&lt;br /&gt;
It is not appropriate...&lt;br /&gt;
* when you want to do virtual hosting for multiple customers.  For static content, AOLserver is fine - you're just serving static content.  For dynamic, server-side functionality, to get the level of privilege separation necessary, you'd have to run a separate nsd per customer to ensure that one customer can't access the content/data of another's.  There are apparently some folks out there who have set up AOLserver just this way and are doing just this.&lt;br /&gt;
* when the code you want to use is not thread-safe (and you are not able to change that)&lt;br /&gt;
* when your main application makes heavy use of cgi-tools or other scripting languages like PHP or Phython (in general: where currently no active dedicated maintainer for corresponding modules is known)&lt;br /&gt;
* when you need backup of a large world wide community that uses tools, modules and code you can find and read in every single computer magazine. AOLserver and TCL are niche products, which only means they are not sexy to the broad audience, but are used intensively by a sophisticated, intelligent minority&lt;br /&gt;
* when you know you would need more than one day to convince your customer to use it (in other words: if you use technology the first time don't let your most important customer be the beta tester)&lt;br /&gt;
&lt;br /&gt;
It is appropriate...&lt;br /&gt;
* when you want to make maximum use of your machines hardware ressources: AOLserver is a highly configurable beast that allows you to run big websites&lt;br /&gt;
* when you plan to run a website that makes heavy use of one or more databases (using pooled connections)&lt;br /&gt;
* when you want to cache lots or all of your static files (.html,.gif,.css.,.js ...) in your servers memory (via modules fastpath and nscache)&lt;br /&gt;
* when you like the good feeling of running and coding your apps on a well-tested multi-threaded server architecture. The server never has been a process-forking one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The idea here is if you know your requirements and your scope is fairly stable and you feel comfortable you can predict the future, and if all signs point to the app. remaining small-to-medium in usage/traffic, then pick whatever platform or technology you like the best -- it really won't make a difference.  But, if you think that it's a very real possibility you'll need&lt;br /&gt;
to scale up capacity to meet growing demand/traffic, possibly indefinitely, then yes, the hidden cost of re-architecting or migrating to a different technology can be a killer when you have to use the words &amp;quot;sunk cost&amp;quot; to describe the originally developed system.  In that case, you may be better off starting with implementing with AOLserver, as its performance &amp;quot;ceiling&amp;quot; so to speak is higher than other technologies.  (TODO: Benchmarks demonstrating this empirically?)&lt;br /&gt;
&lt;br /&gt;
== How do I get started with AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;need to link to a newbie guide HOWTO&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I learn more about AOLserver? ==&lt;br /&gt;
&lt;br /&gt;
Start by reading the [[Documentation]], which is still a work-in-progress.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;package require&amp;quot; doesn't work!  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
Here's the relevant portion of a message [[Dossy Shiobara]] sent to the AOLserver mailing list back on 16 June 2000:&lt;br /&gt;
&lt;br /&gt;
  set tcl_library [file join $tcl_pkgPath tcl${tcl_version}]&lt;br /&gt;
  source [file join $tcl_library init.tcl]&lt;br /&gt;
&lt;br /&gt;
  package require works like a charm after that :-)&lt;br /&gt;
&lt;br /&gt;
There you have it.  Perhaps, some day, this won't be a necessary step.  But, in the meantime ...&lt;br /&gt;
&lt;br /&gt;
''As of AOLserver 4.0 and perhaps even a late version of 3.5.x, this step is no longer necessary.''&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;ns_set update [ns_conn outputheaders] Content-Type&amp;quot; results in the server sending two copies of the Content-Type header.  Why? ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;ns_set update [ns_conn outputheaders $conn] Content-Type {application/x-tcl}&amp;quot; does not work in .adp files as I wish.  The server always returns two copies of the Content-Type header, one as application/x-tcl, another as text/html and clients(galeon, tcl http package) always use the second.  How do I remove the second Content-Type?'''&lt;br /&gt;
&lt;br /&gt;
Good question -- this is really a bug that needs to be fixed in the server code itself.&lt;br /&gt;
&lt;br /&gt;
== How can I get Tclet scripts served from AOLserver to run inside the Tcl Plugin? ==&lt;br /&gt;
&lt;br /&gt;
Someone asks: ''I have an aolserver for OpenACS.  I installed Tcl Plugin which works well with classic Tclets on Tcl Plugin Home Pages.  But with Aolserver, it doesn't work.... Do you know the answer of this?''&lt;br /&gt;
&lt;br /&gt;
== How can I compile AOLserver on HP-UX, both 10.20 and 11.x? ==&lt;br /&gt;
&lt;br /&gt;
[[Dossy]]: Good question.  If I had easy access to HP-UX machines, I'd try it myself.  AOLserver 4.x should hopefully build on HP-UX without any changes, but I'm only guessing.&lt;br /&gt;
&lt;br /&gt;
HPUX doesn't implement a lot of BSD/POSIX IPC functions, or so I hear.&lt;br /&gt;
&lt;br /&gt;
== I'm getting an error compiling AOLserver about POLLIN, POLLOUT and POLLPRI being redefined.  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
AOLserver requires that the &amp;quot;configure&amp;quot; script be run using the GNU C (gcc) compiler.  Try running the configure script like this:&lt;br /&gt;
&lt;br /&gt;
    $ CC=gcc ./configure --args...&lt;br /&gt;
&lt;br /&gt;
== Does AOLserver support HTTP Keep-Alive?  I'm sending a HTTP/1.1 request via httperf and AOLserver isn't doing Keep-Alive like Apache does!  What's wrong? ==&lt;br /&gt;
&lt;br /&gt;
Actually, nothing is wrong. You just need to tell httperf to include the headers that tell AOLserver to expect multiple requests per connection. Add '--add_header &amp;quot;Connection: Keep-Alive\n&amp;quot;' to your httperf request. &lt;br /&gt;
&lt;br /&gt;
The issue is that Apache and AOLserver chose opposite default behaviors when interpretting [http://www.ietf.org/rfc/rfc2068.txt RFC 2068 section 8.1.2.1]:&lt;br /&gt;
&lt;br /&gt;
   An HTTP/1.1 server MAY assume that a HTTP/1.1 client intends to&lt;br /&gt;
   maintain a persistent connection unless a Connection header including&lt;br /&gt;
   the connection-token &amp;quot;close&amp;quot; was sent in the request. If the server&lt;br /&gt;
   chooses to close the connection immediately after sending the&lt;br /&gt;
   response, it SHOULD send a Connection header including the&lt;br /&gt;
   connection-token close.&lt;br /&gt;
&lt;br /&gt;
   An HTTP/1.1 client MAY expect a connection to remain open, but would&lt;br /&gt;
   decide to keep it open based on whether the response from a server&lt;br /&gt;
   contains a Connection header with the connection-token close. In case&lt;br /&gt;
   the client does not want to maintain a connection for more than that&lt;br /&gt;
   request, it SHOULD send a Connection header including the&lt;br /&gt;
   connection-token close.&lt;br /&gt;
&lt;br /&gt;
The key here is &amp;quot;MAY&amp;quot; -- AOLserver (currently, as of 4.0.10) chooses not to assume a Keep-Alive connection unless the client explicitly requests it by sending &amp;quot;Connection: Keep-Alive&amp;quot; in the HTTP request header.  This may change in the future (HTTP/1.1 requests default to Keep-Alive unless the client explicitly sends &amp;quot;Connection: close&amp;quot; -- apparently this is how Apache works).&lt;br /&gt;
&lt;br /&gt;
== AOLserver 4.0.10 is consuming all my memory ==&lt;br /&gt;
&lt;br /&gt;
[http://www.mail-archive.com/aolserver%40listserv.aol.com/msg09104.html Bas Scheffers says]: What version of Tcl did you use? Use 8.4.11 or 8.4.6, but nothing in between as they have a big memory leak.&lt;br /&gt;
&lt;br /&gt;
Note that debian sarge includes tcl 8.4.9 (as of 2006-01-03).&lt;br /&gt;
&lt;br /&gt;
== How do I customize standard HTTP responses? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Internal redirects&lt;br /&gt;
#&lt;br /&gt;
ns_section &amp;quot;ns/server/${servername}/redirects&amp;quot;&lt;br /&gt;
ns_param   404 &amp;quot;/notfound.html&amp;quot;      ;# Not Found error page&lt;br /&gt;
ns_param   500 &amp;quot;/servererror.html&amp;quot;   ;# Server Error page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:Ns_stats&amp;diff=4999</id>
		<title>Talk:Ns stats</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:Ns_stats&amp;diff=4999"/>
		<updated>2006-11-07T12:56:30Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The link at the top of the page doesn't point to anything.&lt;br /&gt;
&lt;br /&gt;
The rendering of the example at the bottom is broken; the source appears good, but the rendering is flawed.&lt;br /&gt;
&lt;br /&gt;
: ''Actually, the source formatting was messed up--this was another victim of the WiKit-to-MediaWiki switch.  I've updated the formatting--give it another shot and let me know if it's still wrong.'' -- [[User:Dossy|Dossy]] 07:56, 7 November 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_stats&amp;diff=4998</id>
		<title>Ns stats</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_stats&amp;diff=4998"/>
		<updated>2006-11-07T12:55:26Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Man page: http://aolserver.com/docs/tcl/ns_stats.html&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
ns_stats - Return command stats information&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
'''ns_stats''' ''?option? ?pattern?''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
This command returns proc call stats for procs which match the glob ''pattern''.  Results are sorted based on ''option'' which can be one of the following:&lt;br /&gt;
* '''-count''': results are sorted by count in descending order (default)&lt;br /&gt;
* '''-name''': results are sorted by proc name in ascending order&lt;br /&gt;
&lt;br /&gt;
In order to instruct AOLserver to keep these stats, you must define two settings in your nsd.tcl, in section ns/server/${server_name}/tcl:&lt;br /&gt;
&lt;br /&gt;
  ns_section ns/server/${server_name}/tcl&lt;br /&gt;
  ns_param statlevel x&lt;br /&gt;
  ns_param statmaxbuf y&lt;br /&gt;
&lt;br /&gt;
Stats will be collected if statlevel is greater than 0.  It gets passed to Tcl_CreateTrace() like so:&lt;br /&gt;
&lt;br /&gt;
  Tcl_CreateTrace(interp, nsconf.tcl.statlevel, StatsTrace, NULL);&lt;br /&gt;
&lt;br /&gt;
If statsmaxbuf is less than or equal to zero, there will be no stats buffer and the global table will be updated directly, according to the comment:&lt;br /&gt;
&lt;br /&gt;
    236     /*&lt;br /&gt;
    237      * If buffering is not enabled, update the global table directly&lt;br /&gt;
    238      * (this could be a source of lock contention).  Otherwise, update&lt;br /&gt;
    239      * this thread's table, flushing if the buffer limit is exceeded.&lt;br /&gt;
    240      */&lt;br /&gt;
&lt;br /&gt;
Otherwise, statmaxbuf specifies the number of entries in the stats buffer hash table.&lt;br /&gt;
&lt;br /&gt;
This is all documented from AOLserver 3.4.2, nsd/tclstats.c.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
Here is a sample ns_stats.adp to use to display the output of ns_stats:&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;xmp&amp;gt;&lt;br /&gt;
  &amp;lt;%&lt;br /&gt;
  ns_adp_puts [format &amp;quot;%-60s %s&amp;quot; command {times invoked}]&lt;br /&gt;
  ns_adp_puts &amp;quot;[string repeat = 60] [string repeat = 13]&amp;quot;&lt;br /&gt;
  foreach {key value} [ns_stats] {&lt;br /&gt;
      ns_adp_puts [format &amp;quot;%-60s %lu&amp;quot; $key $value]&lt;br /&gt;
  }&lt;br /&gt;
  %&amp;gt;&lt;br /&gt;
  &amp;lt;/xmp&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_http&amp;diff=4971</id>
		<title>Ns http</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_http&amp;diff=4971"/>
		<updated>2006-09-09T20:10:26Z</updated>

		<summary type="html">&lt;p&gt;Dossy: fix wikitext for code examples&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;manpage&amp;gt;ns_http&amp;lt;/manpage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: ns_http - Simple HTTP client functionality&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''ns_http''' ''option ?arg arg ...?''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: This command provides a simple HTTP client mechanism.&lt;br /&gt;
&lt;br /&gt;
: The legal ''option''s (which may be abbreviated) are:&lt;br /&gt;
:* '''ns_http cancel''' ''id''&lt;br /&gt;
:* '''ns_http cleanup'''&lt;br /&gt;
:* '''ns_http queue''' ''method url ?body? ?headers?''&lt;br /&gt;
&lt;br /&gt;
: ''body'' is the value which will be sent as the HTTP request body.  ''headers'' is the [[ns_set]] ID containing the additional headers to include in the HTTP request.&lt;br /&gt;
:* '''ns_http wait''' ''id resultsVar ?timeout? ?headers? ?-servicetime svcTime?''&lt;br /&gt;
&lt;br /&gt;
: ''resultsVar'' is the name of a variable that should be used to store the HTTP response body.  Default ''timeout'' is &amp;quot;2:0&amp;quot; (2s, 0usec).  ''headers'' is the [[ns_set]] ID which will receive the headers from the HTTP response.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
Valid HTTP GET:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  % set id [ns_http queue GET http://aolserver.com/]&lt;br /&gt;
  http0&lt;br /&gt;
  % set status [ns_http wait $id results]&lt;br /&gt;
  1&lt;br /&gt;
  % string range $results 0 60&lt;br /&gt;
  &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Timed out HTTP GET:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  % set id [ns_http queue GET http://aolserver.com:12345/]&lt;br /&gt;
  http0&lt;br /&gt;
  % set status [ns_http wait $id results 0]&lt;br /&gt;
  0&lt;br /&gt;
  % set results&lt;br /&gt;
  timeout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bogus HTTP GET:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  % catch {ns_http queue GET http://nonexistant.domain/} err&lt;br /&gt;
  1&lt;br /&gt;
  % set err&lt;br /&gt;
  could not connect to : http://nonexistant.domain/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[ns_httpopen]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Downloads&amp;diff=4969</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Downloads&amp;diff=4969"/>
		<updated>2006-09-05T21:10:43Z</updated>

		<summary type="html">&lt;p&gt;Dossy: add aolserver_v45_bp branch tarball snapshot link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Looking to download AOLserver related files and resources?  Here's a list of what's available:&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/project/showfiles.php?group_id=3152 AOLserver Files at SourceForge] &lt;br /&gt;
* Latest 4.0.x release, 4.0.10: [http://aolserver.com/downloads/aolserver-4.0.10-src.tar.gz aolserver-4.0.10-src.tar.gz]&lt;br /&gt;
* Latest 4.5.x release, 4.5.0: [http://aolserver.com/downloads/aolserver-4.5.0-src.tar.gz aolserver-4.5.0-src.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Nightly CVS snapshots, refreshed daily at 01:00 AM US/Pacific time (as long as SourceForge is working):&lt;br /&gt;
&lt;br /&gt;
* AOLserver HEAD: [http://aolserver.com/files/aolserver-HEAD-src.tar.gz aolserver-HEAD-src.tar.gz]&lt;br /&gt;
* AOLserver aolserver_v40_bp branch: [http://aolserver.com/files/aolserver-aolserver_v40_bp-src.tar.gz aolserver-aolserver_v40_bp-src.tar.gz]&lt;br /&gt;
* AOLserver aolserver_v45_bp branch: [http://aolserver.com/files/aolserver-aolserver_v45_bp-src.tar.gz aolserver-aolserver_v45_bp-src.tar.gz]&lt;br /&gt;
* nsopenssl HEAD: [http://aolserver.com/files/nsopenssl-HEAD-src.tar.gz nsopenssl-HEAD-src.tar.gz]&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Batteries Included&amp;quot; binary distributions ==&lt;br /&gt;
&lt;br /&gt;
If a &amp;quot;[[Batteries Included]]&amp;quot; binary distribution of AOLserver were to be made available, downloads for it would be available here.&lt;br /&gt;
&lt;br /&gt;
== AOLserver on Win32 ==&lt;br /&gt;
&lt;br /&gt;
These binary releases are unsupported and considered alpha-quality at best.  Use them at your own risk, but if you do find any issues, please file a [http://sourceforge.net/tracker/?group_id=3152&amp;amp;atid=103152 bug report].  Thanks!&lt;br /&gt;
&lt;br /&gt;
* [http://aolserver.com/downloads/aolserver-4.1.0a-win32-20040821.zip AOLserver 4.1.0a (built 20040821) and Tcl 8.4.6 for Win32]&lt;br /&gt;
* [http://aolserver.com/downloads/aolserver-4.0.7-win32.zip AOLserver 4.0.7 and Tcl 8.4.6 for Win32]&lt;br /&gt;
&lt;br /&gt;
If you want to build your own binaries for Win32, you should read [[How to build AOLserver on Win32]].&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Downloads&amp;diff=4968</id>
		<title>Downloads</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Downloads&amp;diff=4968"/>
		<updated>2006-09-05T21:10:11Z</updated>

		<summary type="html">&lt;p&gt;Dossy: add 4.5.0 download tarball link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Looking to download AOLserver related files and resources?  Here's a list of what's available:&lt;br /&gt;
&lt;br /&gt;
* [http://sourceforge.net/project/showfiles.php?group_id=3152 AOLserver Files at SourceForge] &lt;br /&gt;
* Latest 4.0.x release, 4.0.10: [http://aolserver.com/downloads/aolserver-4.0.10-src.tar.gz aolserver-4.0.10-src.tar.gz]&lt;br /&gt;
* Latest 4.5.x release, 4.5.0: [http://aolserver.com/downloads/aolserver-4.5.0-src.tar.gz aolserver-4.5.0-src.tar.gz]&lt;br /&gt;
&lt;br /&gt;
Nightly CVS snapshots, refreshed daily at 01:00 AM US/Pacific time (as long as SourceForge is working):&lt;br /&gt;
&lt;br /&gt;
* AOLserver HEAD: [http://aolserver.com/files/aolserver-HEAD-src.tar.gz aolserver-HEAD-src.tar.gz]&lt;br /&gt;
* AOLserver aolserver_v40_bp branch: [http://aolserver.com/files/aolserver-aolserver_v40_bp-src.tar.gz aolserver-aolserver_v40_bp-src.tar.gz]&lt;br /&gt;
* nsopenssl HEAD: [http://aolserver.com/files/nsopenssl-HEAD-src.tar.gz nsopenssl-HEAD-src.tar.gz]&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Batteries Included&amp;quot; binary distributions ==&lt;br /&gt;
&lt;br /&gt;
If a &amp;quot;[[Batteries Included]]&amp;quot; binary distribution of AOLserver were to be made available, downloads for it would be available here.&lt;br /&gt;
&lt;br /&gt;
== AOLserver on Win32 ==&lt;br /&gt;
&lt;br /&gt;
These binary releases are unsupported and considered alpha-quality at best.  Use them at your own risk, but if you do find any issues, please file a [http://sourceforge.net/tracker/?group_id=3152&amp;amp;atid=103152 bug report].  Thanks!&lt;br /&gt;
&lt;br /&gt;
* [http://aolserver.com/downloads/aolserver-4.1.0a-win32-20040821.zip AOLserver 4.1.0a (built 20040821) and Tcl 8.4.6 for Win32]&lt;br /&gt;
* [http://aolserver.com/downloads/aolserver-4.0.7-win32.zip AOLserver 4.0.7 and Tcl 8.4.6 for Win32]&lt;br /&gt;
&lt;br /&gt;
If you want to build your own binaries for Win32, you should read [[How to build AOLserver on Win32]].&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Nsv_incr&amp;diff=4959</id>
		<title>Nsv incr</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Nsv_incr&amp;diff=4959"/>
		<updated>2006-06-27T14:44:30Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Man page: http://aolserver.com/docs/tcl/nsv_incr.html&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''NAME'''&lt;br /&gt;
&lt;br /&gt;
: nsv_incr - Increment the value of the element in the nsv array ''arrayName'' specified by ''key''&lt;br /&gt;
&lt;br /&gt;
'''SYNOPSIS'''&lt;br /&gt;
&lt;br /&gt;
: '''nsv_incr''' ''arrayName'' ''key'' ''?increment?''&lt;br /&gt;
&lt;br /&gt;
'''DESCRIPTION'''&lt;br /&gt;
&lt;br /&gt;
: If ''increment'' is supplied then its value (which must be an integer) is added to the value of the element ''key''; otherwise 1 is added to the value of the element ''key''. Unlike the TCL equivalent if ''key'' does not exists it is created. Returns the new value of the element specified by ''key''. Internally interlocked so it is thread safe, no mutex required.&lt;br /&gt;
&lt;br /&gt;
'''EXAMPLES'''&lt;br /&gt;
&lt;br /&gt;
    % nsv_incr shared_array foo&lt;br /&gt;
    1&lt;br /&gt;
    % nsv_incr shared_array foo -1&lt;br /&gt;
    0&lt;br /&gt;
&lt;br /&gt;
Is this a good implementation with behavior similar to using ns_mutex or ns_critsec, except that later threads do not wait for the first thread to exit the script?&lt;br /&gt;
&lt;br /&gt;
: ''What you're looking for is a kind of &amp;quot;ns_mutex trylock&amp;quot; type of functionality, where if the mutex is locked the caller doesn't block/sleep, but if it's unlocked, the caller locks the mutex.  Interesting approach using NSVs, sure!'' -- [[User:Dossy|Dossy]] 10:44, 27 June 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
    # Return value 1 indicates that the call was executed normally&lt;br /&gt;
    # Return value 0 indicates that another thread was executing&lt;br /&gt;
    # the code so this thread was excluded&lt;br /&gt;
    &lt;br /&gt;
    proc write_special_file {data} {&lt;br /&gt;
        if {[nsv_incr one_thread_at_a_time $key] == 1} {&lt;br /&gt;
            set had_error [catch {&lt;br /&gt;
                set handle [open special_file w]&lt;br /&gt;
                puts $handle $data&lt;br /&gt;
                close $handle&lt;br /&gt;
            } message]&lt;br /&gt;
            nsv_set one_thread_at_a_time $key 0&lt;br /&gt;
            if {$had_error} {&lt;br /&gt;
                error $message&lt;br /&gt;
            }&lt;br /&gt;
            return 1&lt;br /&gt;
        } else {&lt;br /&gt;
            return 0&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    proc read_special_file {result_varname} {&lt;br /&gt;
        if {[nsv_incr one_thread_at_a_time $key] == 1} {&lt;br /&gt;
            upvar $result_varname result&lt;br /&gt;
            set had_error [catch {&lt;br /&gt;
                set handle [open special_file r]&lt;br /&gt;
                set result [read $handle]&lt;br /&gt;
                close $handle&lt;br /&gt;
            } message]&lt;br /&gt;
            nsv_set one_thread_at_a_time $key 0&lt;br /&gt;
            if {$had_error} {&lt;br /&gt;
                error $message&lt;br /&gt;
            }&lt;br /&gt;
            return 1&lt;br /&gt;
        } else {&lt;br /&gt;
            return 0&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    proc change_special_file {data result_varname} {&lt;br /&gt;
        if {[nsv_incr one_thread_at_a_time $key] == 1} {&lt;br /&gt;
            upvar $result_varname result&lt;br /&gt;
            # BOTH READ AND WRITE CALLS WILL DO NOTHING&lt;br /&gt;
            read_special_file result&lt;br /&gt;
            write_special_file $data&lt;br /&gt;
            nsv_set one_thread_at_a_time $key 0&lt;br /&gt;
            return 1&lt;br /&gt;
        } else {&lt;br /&gt;
            return 0&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
'''SEE ALSO'''&lt;br /&gt;
&lt;br /&gt;
: [[Thread-shared Variables]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Dossy_Shiobara&amp;diff=4953</id>
		<title>Dossy Shiobara</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Dossy_Shiobara&amp;diff=4953"/>
		<updated>2006-05-24T14:48:59Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;: [mailto:dossy@panoptic.com]&lt;br /&gt;
: Location: US, NJ/NY/VA&lt;br /&gt;
&lt;br /&gt;
[[Category:Person|Shiobara, Dossy]]&lt;br /&gt;
&lt;br /&gt;
I run the [[AOLserver Wiki]] at [[Panoptic]].  If there are any problems with it, ''abuse me''.&lt;br /&gt;
&lt;br /&gt;
My blog is at http://dossy.org/ aka [http://dossy.org/ Dossy's Blog] -- I try to post regularly (at least once a day, minimally once a week) and I often try to post about AOLserver-related matters.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
My current AOLserver-related projects are to:&lt;br /&gt;
&lt;br /&gt;
* Ensure we meet all our goals and milestones for the AOLserver Project according to the published 2004 [[Roadmap]].&lt;br /&gt;
* Start formalizing the testing/QA procedures and pre-release checklist that will go into every release: [[How are releases tested]]?&lt;br /&gt;
* [[nssic]] -- the Server Inter-Connect module&lt;br /&gt;
&lt;br /&gt;
The following items are old and need to be updated:&lt;br /&gt;
&lt;br /&gt;
* Stress-test and release version 0.6 of [[nsmysql]] (an internal database driver for MySQL)&lt;br /&gt;
* Write a configuration tool which will manage and generate nsd.tcl files&lt;br /&gt;
* Work on the [[AOLserver Packages]] - Binary distribution of AOLserver in the many popular package mangement formats like RedHat's RPM, Debian's .deb, FreeBSD's ports, Solaris's .pkg&lt;br /&gt;
* Write a server-side session management module, [[nssession]]&lt;br /&gt;
* Clean up version 0.1pre of [[nsfreetds]] (an internal database driver that connects to Microsoft SQL Server or Sybase using FreeTDS 0.51)&lt;br /&gt;
&lt;br /&gt;
== Articles ==&lt;br /&gt;
&lt;br /&gt;
I'm starting to collect articles written about AOLserver that are available on the web.  Eventually, these will move to their own wiki page:&lt;br /&gt;
&lt;br /&gt;
* [http://www.eveandersson.com/arsdigita/asj/aolserver/introduction-1 Introduction to AOLserver, Part 1] by Philip Greenspun (LinuxWorld.com, July 1999)&lt;br /&gt;
* [http://www.linuxgazette.com/issue58/washington.html AOLserver - a web development platform] by Irving Washington (Issue 58, Linux Gazette, October 2000) &lt;br /&gt;
* [http://www.linuxgazette.com/issue63/washington.html XML parsing in AOLserver] by Irving Washington (Issue 63, Linux Gazette, February 2001)&lt;br /&gt;
* [http://www.webdeveloper.pl/aolserver__1,293,1,1,pl.html AOLserver (1)] by [[Wojciech Kocjan]] (WEBdeveloper.pl, February 2002)&lt;br /&gt;
* [http://www.webdeveloper.pl/aolserver__2,294,1,1,pl.html AOLserver (2)] by [[Wojciech Kocjan]] (WEBdeveloper.pl, March 2002)&lt;br /&gt;
* [http://www.linuxjournal.com/article/6164 Introducing AOLserver] by Reuven Lerner (Issue 101, Linux Journal, August/September 2002)&lt;br /&gt;
* [http://www.serverwatch.com/sreviews/article.php/2232651 Does AOLserver Have What It Takes to Stand Out?] by Michael Hall (ServerWatch, July 2003)&lt;br /&gt;
* [http://www.internetnews.com/dev-news/article.php/3462701 AOL Updates Its Open Source Web Server] by Sean Michael Kerner (InternetNews.com, January 2005)&lt;br /&gt;
* [http://www.linuxjournal.com/article/8986 Play Ball: Introducing Fungoes] by Mat Kovach (LinuxJournal.com, April 2006)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Just saving a funny joke that's really relevant to the work I do: [[see if it happens again]].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
My current scratch pad or whiteboard contents:&lt;br /&gt;
&lt;br /&gt;
Current idiom:&lt;br /&gt;
&lt;br /&gt;
    set lock [ns_mutex create lock]&lt;br /&gt;
    ns_mutex lock $lock&lt;br /&gt;
    catch {&lt;br /&gt;
        # synchronized code here&lt;br /&gt;
    }&lt;br /&gt;
    ns_mutex unlock $lock&lt;br /&gt;
&lt;br /&gt;
Proposed change:&lt;br /&gt;
&lt;br /&gt;
    set lock [ns_mutex create lock]&lt;br /&gt;
    ns_mutex eval $lock $script&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Dossy's Blog ==&lt;br /&gt;
&lt;br /&gt;
Here's the three most recent RSS entries from my blog.  This is just testing out a MediaWiki 1.5 extension I'm working on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;feed limit=&amp;quot;3&amp;quot;&amp;gt;http://dossy.org/index.xml&amp;lt;/feed&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_return&amp;diff=4946</id>
		<title>Ns return</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ns_return&amp;diff=4946"/>
		<updated>2006-04-19T20:20:30Z</updated>

		<summary type="html">&lt;p&gt;Dossy: formatting tweaks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;manpage&amp;gt;ns_return&amp;lt;/manpage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NAME ==&lt;br /&gt;
&lt;br /&gt;
ns_connsendfp, ns_respond, ns_return, ns_returnadminnotice, ns_returnbadrequest, ns_returnerror, ns_returnfile, ns_returnforbidden, ns_returnfp, ns_returnnotfound, ns_returnnotice, ns_returnredirect, ns_returnunauthorized, ns_write - commands&lt;br /&gt;
&lt;br /&gt;
== SYNOPSIS ==&lt;br /&gt;
&lt;br /&gt;
: '''[[ns_connsendfp]]''' ''fp len''&lt;br /&gt;
: '''[[ns_respond]]'''&lt;br /&gt;
: '''ns_return''' ''status type string''&lt;br /&gt;
: '''[[ns_returnadminnotice]]''' ''status msg ?longmsg?''&lt;br /&gt;
: '''[[ns_returnbadrequest]]''' ''reason''&lt;br /&gt;
: '''[[ns_returnerror]]''' ''status msg''&lt;br /&gt;
: '''[[ns_returnfile]]''' ''status type filename''&lt;br /&gt;
: '''[[ns_returnforbidden]]'''&lt;br /&gt;
: '''[[ns_returnfp]]''' ''status type fileid len''&lt;br /&gt;
: '''[[ns_returnnotfound]]'''&lt;br /&gt;
: '''[[ns_returnnotice]]''' ''status msg ?longmsg?''&lt;br /&gt;
: '''[[ns_returnredirect]]''' ''location''&lt;br /&gt;
: '''[[ns_returnunauthorized]]'''&lt;br /&gt;
: '''[[ns_write]]''' ''string''&lt;br /&gt;
&lt;br /&gt;
== DESCRIPTION ==&lt;br /&gt;
&lt;br /&gt;
These procedures provide a simple interface for returning information to the client. They build HTTP/1.0 headers and send the appropriate data out the socket to the client. The script does not end at the time ns_return* is invoked so you can continue processing data after the client has gotten the data and closed the socket.&lt;br /&gt;
&lt;br /&gt;
''type'' should be a MIME type (see [[ns_guesstype]] for a list). ''status'' is a three-digit number fitting the pattern below:&lt;br /&gt;
&lt;br /&gt;
: 1xx Informational - Not used, but reserved for future use.&lt;br /&gt;
: 2xx Success - The action was successfully received, understood, and accepted.&lt;br /&gt;
: 3xx Redirection - Further action must be taken in order to complete the request.&lt;br /&gt;
: 4xx Client Error - The request contains bad syntax or cannot be fulfilled.&lt;br /&gt;
: 5xx Server Error - The server failed to fulfill an apparently valid request.&lt;br /&gt;
&lt;br /&gt;
Some common status values and their meanings are:&lt;br /&gt;
&lt;br /&gt;
: 201 Created&lt;br /&gt;
: 202 Accepted&lt;br /&gt;
: 203 Provisional Information&lt;br /&gt;
: 204 No Content&lt;br /&gt;
: 300 Multiple Choices&lt;br /&gt;
: 301 Moved Permanently&lt;br /&gt;
: 302 Moved Temporarily&lt;br /&gt;
: 303 Method&lt;br /&gt;
: 304 Not Modified&lt;br /&gt;
: 401 Unauthorized&lt;br /&gt;
: 402 Payment Required&lt;br /&gt;
: 403 Forbidden&lt;br /&gt;
: 404 Not Found&lt;br /&gt;
: 405 Method Not Allowed&lt;br /&gt;
: 406 None Acceptable&lt;br /&gt;
: 407 Proxy Authentication Required&lt;br /&gt;
: 408 Request Time-out&lt;br /&gt;
: 409 Conflict&lt;br /&gt;
: 410 Gone&lt;br /&gt;
: 501 Not Implemented&lt;br /&gt;
: 502 Bad Gateway&lt;br /&gt;
: 503 Service Unavailable&lt;br /&gt;
: 504 Gateway Time-out&lt;br /&gt;
&lt;br /&gt;
; ns_connsendfp&lt;br /&gt;
: This function writes len bytes of the specified channel or file to the conn.&lt;br /&gt;
&lt;br /&gt;
; ns_return&lt;br /&gt;
: Sends back both the headers and the string.&lt;br /&gt;
&lt;br /&gt;
; ns_returnadminnotice&lt;br /&gt;
: Wraps the text msg and longmsg in some html, appends a line with a link to &amp;quot;mailto:serveradministrator&amp;quot; based on the virtual server parameter &amp;quot;WebMaster&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; ns_returnbadrequest&lt;br /&gt;
: Returns a 400 status code and a formatted HTML message containing the reason text.&lt;br /&gt;
&lt;br /&gt;
; ns_returnerror&lt;br /&gt;
: Wraps the text msg in some html and returns that to the client.&lt;br /&gt;
&lt;br /&gt;
; ns_returnfile&lt;br /&gt;
: Sends back the headers and the contents of the file.&lt;br /&gt;
&lt;br /&gt;
; ns_returnforbidden&lt;br /&gt;
: Returns a 403 status code.&lt;br /&gt;
&lt;br /&gt;
; ns_returnfp&lt;br /&gt;
: First sends the appropriate headers. Next, it writes out the contents of file from the current file position until the end of the file.&lt;br /&gt;
&lt;br /&gt;
; ns_returnnotfound&lt;br /&gt;
: Returns a 404 status code.&lt;br /&gt;
&lt;br /&gt;
; ns_returnnotice&lt;br /&gt;
: Wraps the text msg and longmsg in some html and returns that to the client.&lt;br /&gt;
&lt;br /&gt;
; ns_returnredirect&lt;br /&gt;
: Returns a redirect to the passed in location&lt;br /&gt;
&lt;br /&gt;
; ns_returnunauthorized&lt;br /&gt;
: Returns a 401 status code&lt;br /&gt;
&lt;br /&gt;
; ns_write&lt;br /&gt;
: Writes the string out the connection. You can use it instead of the ns_return or ns_respond functions to build HTTP responses. AOLserver will not include the usual headers on the output data. The script does not end at the time ns_write* is invoked so you can continue processing data after the client has gotten the data and closed the socket.&lt;br /&gt;
&lt;br /&gt;
== SEE ALSO ==&lt;br /&gt;
&lt;br /&gt;
: [[ns_connsendfp]], [[ns_respond]], [[ns_returnadminnotice]], [[ns_returnbadrequest]], [[ns_returnerror]], [[ns_returnfile]], [[ns_returnforbidden]], [[ns_returnfp]], [[ns_returnnotfound]], [[ns_returnnotice]], [[ns_returnredirect]], [[ns_returnunauthorized]], [[ns_write]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Core Tcl API]]&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:AOLserver_Wiki&amp;diff=4928</id>
		<title>Talk:AOLserver Wiki</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:AOLserver_Wiki&amp;diff=4928"/>
		<updated>2006-03-30T06:14:54Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki:Protected_page&amp;diff=4926</id>
		<title>AOLserver Wiki:Protected page</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki:Protected_page&amp;diff=4926"/>
		<updated>2006-03-28T15:50:11Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Anonymous edits disabled ==&lt;br /&gt;
&lt;br /&gt;
I've gone ahead and disabled anonymous edits due to the high volume of wiki spamming.  I'll be implementing some kind of anti-spam measures (most likely a CAPTCHA) before turning anonymous edits back on.  I hate to do this, but it's starting to get out of control. -- [[User:Dossy|Dossy]] 08:11, 24 March 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
Since I know the spammers can create accounts (I just deleted ~600 of them), I've changed things so that only users who have a confirmed email address can make edits.  You can set your email address via [[Special:Preferences]] then confirm it with [[Special:Confirmemail]]. -- [[User:Dossy|Dossy]] 08:29, 24 March 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
I've now implemented a CAPTCHA in order to log in or create a new account.  This should effectively end the spam.  When I can, I'll add the CAPTCHA to the editing page, so that anonymous edits can be turned back on, but I don't know when I'll have the time to do that. -- [[User:Dossy|Dossy]] 10:50, 28 March 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki:Protected_page&amp;diff=4925</id>
		<title>AOLserver Wiki:Protected page</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=AOLserver_Wiki:Protected_page&amp;diff=4925"/>
		<updated>2006-03-24T13:30:15Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Anonymous edits disabled ==&lt;br /&gt;
&lt;br /&gt;
I've gone ahead and disabled anonymous edits due to the high volume of wiki spamming.  I'll be implementing some kind of anti-spam measures (most likely a CAPTCHA) before turning anonymous edits back on.  I hate to do this, but it's starting to get out of control. -- [[User:Dossy|Dossy]] 08:11, 24 March 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
Since I know the spammers can create accounts (I just deleted ~600 of them), I've changed things so that only users who have a confirmed email address can make edits.  You can set your email address via [[Special:Preferences]] then confirm it with [[Special:Confirmemail]]. -- [[User:Dossy|Dossy]] 08:29, 24 March 2006 (EST)&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:AOLserver_Wiki&amp;diff=4924</id>
		<title>Talk:AOLserver Wiki</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Talk:AOLserver_Wiki&amp;diff=4924"/>
		<updated>2006-03-24T13:29:12Z</updated>

		<summary type="html">&lt;p&gt;Dossy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
	<entry>
		<id>https://panoptic.com/mediawiki/aolserver/index.php?title=Ad13_vs._3.5.1&amp;diff=4923</id>
		<title>Ad13 vs. 3.5.1</title>
		<link rel="alternate" type="text/html" href="https://panoptic.com/mediawiki/aolserver/index.php?title=Ad13_vs._3.5.1&amp;diff=4923"/>
		<updated>2006-03-24T13:17:54Z</updated>

		<summary type="html">&lt;p&gt;Dossy: Reverted edit of 69.31.41.50, changed back to last version by Vkurup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an unfinished comparison between AOLserver 3.5.1 and AOLserver 3.3.1 + ad13 + oacs1. [http://uptime.openacs.org/aolserver-openacs/] It is based on Rob Mayoff's AD13 distribution notes.  SourceForge patch #570072 brought the AD13 internationalization patches to 3.4.2, and would probably be a good starting point for integration.&lt;br /&gt;
&lt;br /&gt;
- Jamie Rasmussen&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
'''+oacs1 patches'''&lt;br /&gt;
&lt;br /&gt;
Vinod's ns_uuencode patch (SourceForge #474259)&lt;br /&gt;
* The oacs1 patch has a major bug as discussed on SourceForge.  I believe my corrected patch works but it hasn't been tested.  This is not crucial because OpenACS tests for the desired behavior and falls back on (slow) TCL-based encoding.&lt;br /&gt;
&lt;br /&gt;
uid/gid from Jon Griffin&lt;br /&gt;
* This is SF Patch #509413.  Jon confirms it has been fixed in 3.5+.&lt;br /&gt;
&lt;br /&gt;
BSD exec patch&lt;br /&gt;
* Is this SF Patch #415475?  It's marked fixed.&lt;br /&gt;
&lt;br /&gt;
Merge some of Vinod's and Mat's changes for nsxml's makefile&lt;br /&gt;
* nsxml has changed since the oacs1 version so I'm not sure if these changes are needed.&lt;br /&gt;
&lt;br /&gt;
----------------------------------------&lt;br /&gt;
'''+ad13 patches'''&lt;br /&gt;
&lt;br /&gt;
Numerous patches to support character encodings including Henry Minsky's patches to translate form data to multiple charsets within a single HTTP request.  Described in encoding-doc.html.  These should be fleshed out here.&lt;br /&gt;
&lt;br /&gt;
There is an additional encoding file, 8bit.enc (ascii, single-byte, 8 bits)&lt;br /&gt;
* Should this be added to TCL?&lt;br /&gt;
&lt;br /&gt;
Set system encoding to ns/server/$server/SystemEncoding (default utf-8) in modules/tcl/init.tcl.&lt;br /&gt;
* This is a 1 line change &lt;br /&gt;
&lt;br /&gt;
form.tcl and http.tcl are different, charsets.tcl needs to be added&lt;br /&gt;
&lt;br /&gt;
Added byte range support in fastpath.c and ns_returnfile.&lt;br /&gt;
* This is a HTTP/1.1 feature.  Patrick Spence asks if this could be made configurable to prevent abuse by download accelerators.&lt;br /&gt;
&lt;br /&gt;
Reset ADP exception before executing an ADP, in case previous ADP called ns_adp_break, etc.&lt;br /&gt;
* One-line changes in adp.c and tclstubs.cpp to reset the exception&lt;br /&gt;
* There are also stack checks throwing ADP_OVERFLOW.  The stack check function was in thread.c of the old threads lib, and is not in AOLserver 3.5.1  ADP_OVERFLOW is still caught in 3.5.1, but it doesn't appear to be thrown.&lt;br /&gt;
&lt;br /&gt;
Ns_QueryToSet will not allow parameters whose names end with &amp;quot;.tmpfile&amp;quot;.&lt;br /&gt;
* Looks like this could be added without much hassle.&lt;br /&gt;
&lt;br /&gt;
Added boolean database parameter &amp;quot;WarnEmpty&amp;quot;.  If this is set, then AOLserver will log a warning when the last handle in a database pool is empty, and when a thread tries to get a handle from an empty pool.  Set this in the ns/db/pool/poolname section.&lt;br /&gt;
* A simple change to dbinit.c  &lt;br /&gt;
&lt;br /&gt;
Added Tcl command &amp;quot;ns_db stats poolname&amp;quot;, which returns a two-element list.  The first element is the maximum number of handles in the pool (equal to the &amp;quot;connections&amp;quot; config parameter).  The second element is the number of handles currently available in the pool.&lt;br /&gt;
* Simple changes to dbinit.c, dbtcl.c, and ns.h&lt;br /&gt;
* It looks like the ad13 patch didn't add the command to the usage message where it should have.&lt;br /&gt;
* This command doesn't appear to be used in OpenACS (CVS HEAD anyway)&lt;br /&gt;
&lt;br /&gt;
Patch to op.c to not crash on bad HTTP request line if nsd.tcl has a 401 redirect.&lt;br /&gt;
* Test to see if this still happens.  A minor change.&lt;br /&gt;
&lt;br /&gt;
Patch to NsHandleSignals to actually exit on Linux if a SIGSEGV is received.&lt;br /&gt;
* Appears to be a straight-forward addition to unix.c&lt;br /&gt;
&lt;br /&gt;
Patch to ns_sourceproc to cache Tcl pages (including bytecodes) if nscache module is installed.&lt;br /&gt;
* Modifications in tcl/file.tcl, tcl/tclcache.tcl added&lt;br /&gt;
&lt;br /&gt;
Declare Ns_ConnWriteRawData in ns.h.&lt;br /&gt;
* This does not actually appear in ns.h.  I believe the notes mean Ns_ConnReturnRawData in ns.h (body in return.c)&lt;br /&gt;
&lt;br /&gt;
Add errorminsize to doc/config.txt.&lt;br /&gt;
* doc/config.txt was removed.  We could add this small documentation change to sample-config.tcl.&lt;br /&gt;
&lt;br /&gt;
Fix channel memory leak in tclIO.c.&lt;br /&gt;
* I'm assuming this memory leak is not in TCL 8.4, but someone should confirm. Not an AOLserver core problem anyway.&lt;br /&gt;
&lt;br /&gt;
Import fix for freeing of Tcl TSD from AOLserver 4.0 tree.&lt;br /&gt;
* I'm not sure what the fix was, but I'm assuming it made it into 3.5.1 as well.&lt;/div&gt;</summary>
		<author><name>Dossy</name></author>
		
	</entry>
</feed>