You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-cvs@tcl.apache.org by da...@apache.org on 2003/05/28 11:17:27 UTC

cvs commit: tcl-site/sources index.rvt index.ttml

davidw      2003/05/28 02:17:27

  Modified:    .        common.tcl comparison.rvt contributing.rvt
                        index.rvt newnav.html style.css
               mod_dtcl documentation.html navbar.html
               mod_dtcl/documentation documentation.html
               neowebscript navbar.html
               presentations/apache-tcl .htaccess common.tcl
                        rivetexample1.rvt
               presentations/dtcl .htaccess common.tcl
               presentations/tcl .htaccess common.tcl
  Added:       mod_dtcl contact.html contributing.html credits.html
                        download.html examples.html index.html news.html
               neowebscript about.html index.html
               presentations index.rvt
               presentations/apache-tcl anotherphoto.rvt apache1.rvt
                        apache2.rvt apache_tcl.rvt apachec.rvt asf.rvt
                        bored.rvt conclusion.rvt current_products.rvt
                        end.rvt examples.rvt goodlanguage.rvt index.rvt
                        initialization.rvt integration.rvt integration2.rvt
                        intro.rvt list.rvt mod_dtcl.rvt mod_tcl.rvt
                        moreexamples.rvt neowebscript.rvt otherproducts.rvt
                        ousterhout.rvt outputproc.rvt rivet.rvt
                        rivetexample2.rvt servingpages.rvt strategies.rvt
                        survey.rvt survey2.rvt systems.rvt tcl1.rvt
                        tclchannels.rvt tclcoverview.rvt tclexample1.rvt
                        tclfeatures.rvt tcloverview.rvt tclweb.rvt
                        tclweb1.rvt tclweb2.rvt tclweb3.rvt tclweb4.rvt
                        tclwebhistory.rvt template.rvt websh.rvt
               presentations/dtcl advantages.rvt cacheing.rvt cgi.rvt
                        channel.rvt comparisons.rvt conclusion.rvt
                        example1.rvt example2.rvt future.rvt how.rvt
                        htmltcl.rvt index.rvt interpreter.rvt java.rvt
                        mod_perl.rvt mod_tcl.rvt other.rvt php.rvt
                        results.rvt rivet.rvt smalllight.rvt template.rvt
                        what.rvt zope.rvt
               presentations/tcl ccommand.rvt comanche.rvt commercial.rvt
                        contact.rvt easy.rvt embeddable.rvt example1.rvt
                        extensible.rvt flexibility.rvt history.rvt
                        index.rvt lightweight.rvt motivation.rvt
                        multiplatform.rvt powerful.rvt tcloverview.rvt
                        template.rvt timeline.rvt tk.rvt tkintro.rvt
                        tksimple.rvt webserver.rvt
               sources  index.rvt
  Removed:     mod_dtcl contact.ttml contributing.ttml credits.ttml
                        documentation.ttml download.ttml examples.ttml
                        index.ttml news.ttml
               neowebscript about.ttml index.ttml
               presentations/apache-tcl anotherphoto.ttml apache1.ttml
                        apache2.ttml apache_tcl.ttml apachec.ttml asf.ttml
                        bored.ttml conclusion.ttml current_products.ttml
                        end.ttml examples.ttml goodlanguage.ttml index.ttml
                        initialization.ttml integration.ttml
                        integration2.ttml intro.ttml list.ttml
                        mod_dtcl.ttml mod_tcl.ttml moreexamples.ttml
                        neowebscript.ttml otherproducts.ttml
                        ousterhout.ttml outputproc.ttml rivet.ttml
                        rivetexample1.ttml rivetexample2.ttml
                        servingpages.ttml strategies.ttml survey.ttml
                        survey2.ttml systems.ttml tcl1.ttml
                        tclchannels.ttml tclcoverview.ttml tclexample1.ttml
                        tclfeatures.ttml tcloverview.ttml tclweb.ttml
                        tclweb1.ttml tclweb2.ttml tclweb3.ttml tclweb4.ttml
                        tclwebhistory.ttml template.ttml websh.ttml
               presentations/dtcl advantages.ttml cacheing.ttml cgi.ttml
                        channel.ttml comparisons.ttml conclusion.ttml
                        example1.ttml example2.ttml future.ttml how.ttml
                        htmltcl.ttml index.ttml interpreter.ttml java.ttml
                        mod_perl.ttml mod_tcl.ttml other.ttml php.ttml
                        results.ttml rivet.ttml smalllight.ttml
                        template.ttml what.ttml zope.ttml
               presentations/tcl ccommand.ttml comanche.ttml
                        commercial.ttml contact.ttml easy.ttml
                        embeddable.ttml example1.ttml extensible.ttml
                        flexibility.ttml history.ttml index.ttml
                        lightweight.ttml motivation.ttml multiplatform.ttml
                        powerful.ttml tcloverview.ttml template.ttml
                        timeline.ttml tk.ttml tkintro.ttml tksimple.ttml
                        webserver.ttml
               sources  index.ttml
  Log:
  Switched to Rivet from mod_dtcl.  Made the mod_dtcl pages static.
  
  Updated site look and feel.
  
  Revision  Changes    Path
  1.8       +2 -29     tcl-site/common.tcl
  
  Index: common.tcl
  ===================================================================
  RCS file: /home/cvs/tcl-site/common.tcl,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- common.tcl	17 Jan 2003 20:16:29 -0000	1.7
  +++ common.tcl	28 May 2003 09:17:21 -0000	1.8
  @@ -5,38 +5,11 @@
   }
   
   proc title { {txt "Apache Tcl Project"} } {
  -    puts {
  -	<table align="center" width="63%" border="0">
  -	<tr>
  -	<td align="center" valign="top">
  -	<h1 style="padding: .3em;">
  -    }
  -    puts "$txt"
  -    puts {
  -	</h1>
  -	</td>
  -	</tr>
  -	</table>
  -	<hr>
  -    }
  +    puts {<p style="margin: 0; border: 0;" align="center"><img style="margin-bottom: -2.5em; " src="/logos/medium_logo.gif" alt="Apache Tcl"></p>}
   }
   
   proc rivettitle { {txt "Apache Rivet"} } {
  -    puts {
  -	<table align="center" width="100%" border="0">
  -	<tr>
  -	<td align="left"><img src="Rivetlogo_small.png"></td>
  -	<td align="center" valign="top" width="100%">
  -	<h1 style="padding: .3em;">
  -    }
  -    puts "$txt"
  -    puts {
  -	</h1>
  -	</td>
  -	</tr>
  -	</table>
  -	<hr>
  -    }
  +    puts {<p align="center"><img src="Rivetlogo_smaller.png" alt="Apache Rivet"></p>}
   }
   
   proc powered { } {
  
  
  
  1.3       +1 -1      tcl-site/comparison.rvt
  
  Index: comparison.rvt
  ===================================================================
  RCS file: /home/cvs/tcl-site/comparison.rvt,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- comparison.rvt	1 Nov 2002 08:49:54 -0000	1.2
  +++ comparison.rvt	28 May 2003 09:17:21 -0000	1.3
  @@ -6,7 +6,7 @@
     </head>
   
     <body>
  -    <? title "Apache Tcl Project Comparison" ?>
  +    <? title ?>
   
       Which project does what?  Which of mod_dtcl, neowebscript or
       mod_tcl is right for your needs?
  
  
  
  1.4       +0 -6      tcl-site/contributing.rvt
  
  Index: contributing.rvt
  ===================================================================
  RCS file: /home/cvs/tcl-site/contributing.rvt,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- contributing.rvt	1 Nov 2002 08:49:54 -0000	1.3
  +++ contributing.rvt	28 May 2003 09:17:21 -0000	1.4
  @@ -19,12 +19,6 @@
   	      to the Apache Tcl group, please see the contacts page.
   	    </p>
   	    <p>
  -	      <b>Apache Tcl needs a logo</b>!  If you feel graphically
  -	      inclined, please see the contacts page and send in your
  -	      work.  We're looking for something that combines the Tcl
  -	      and Apache feathers.
  -	    </p>
  -	    <p>
   	      If you are interested in working on or improving this
   	      website, the code is available from Apache's anonymous
   	      CVS.  You will need mod_dtcl, Apache Rivet, and Websh.
  
  
  
  1.7       +0 -14     tcl-site/index.rvt
  
  Index: index.rvt
  ===================================================================
  RCS file: /home/cvs/tcl-site/index.rvt,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- index.rvt	1 Nov 2002 08:49:54 -0000	1.6
  +++ index.rvt	28 May 2003 09:17:21 -0000	1.7
  @@ -25,20 +25,6 @@
   	    </p>
   
   	    <h3>Current Projects</h3>
  -	    <p>
  -	      <a href="mod_dtcl/">mod_dtcl</a> enables the use of Tcl
  -	      as an HTML-embedded scripting language, similar to PHP,
  -	      as well as executing pure Tcl files. It is fast, light,
  -	      and lets you use the extensive codebase of existing Tcl
  -	      code on the web. For Apache 1.3.
  -	    </p>
  -	    <p>
  -	      <a href="neowebscript/">neowebscript</a> also enables
  -	      the use of Tcl as an HTML-embedded scripting language.
  -	      It uses safe interpreters for security, supports db
  -	      files, can generate graphics on-the-fly, and other
  -	      stuff. For Apache 1.3.
  -	    </p>
               <p>
                 <a href="mod_tcl/">mod_tcl</a>, With mod_tcl
                 it is possible to write Apache modules entirely in TCL
  
  
  
  1.11      +0 -10     tcl-site/newnav.html
  
  Index: newnav.html
  ===================================================================
  RCS file: /home/cvs/tcl-site/newnav.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- newnav.html	18 Nov 2002 23:31:31 -0000	1.10
  +++ newnav.html	28 May 2003 09:17:21 -0000	1.11
  @@ -53,16 +53,6 @@
       </tr>
       <tr>
         <td>
  -	<a href="/mod_dtcl/index.ttml">mod_dtcl</a>
  -      </td>
  -    </tr>
  -    <tr>
  -      <td>
  -	<a href="/neowebscript/">neowebscript</a>
  -      </td>
  -    </tr>
  -    <tr>
  -      <td>
   	<a href="/mod_tcl/">mod_tcl</a>
         </td>
       </tr>
  
  
  
  1.9       +3 -7      tcl-site/style.css
  
  Index: style.css
  ===================================================================
  RCS file: /home/cvs/tcl-site/style.css,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- style.css	4 Nov 2002 19:02:52 -0000	1.8
  +++ style.css	28 May 2003 09:17:21 -0000	1.9
  @@ -22,7 +22,7 @@
   
   h1 {
       font-family: Arial, sans-serif;
  -    background-color: #003399;
  +    background-color: #405871;
       color: #cc3300;
   }
   
  @@ -73,15 +73,11 @@
   }
   
   table.nav {
  -    border-left-width: thick;
  -    border-right-width: 0;
  -    border-top-width: 0;
  -    border-bottom-width: 0;
  -    border-style: solid;
  +
   }
   
   table.nav td {
  -    background-color: #aaaaff;
  +//    background-color: #aaaaff;
       font-weight: bold;
       padding: .3em;
       font-size: smaller;
  
  
  
  1.10      +2 -2      tcl-site/mod_dtcl/documentation.html
  
  Index: documentation.html
  ===================================================================
  RCS file: /home/cvs/tcl-site/mod_dtcl/documentation.html,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- documentation.html	21 Jul 2001 14:39:08 -0000	1.9
  +++ documentation.html	28 May 2003 09:17:21 -0000	1.10
  @@ -390,7 +390,7 @@
   	  </p>
   	  <p>
   	    See the <a
  -		       href="http://tcl.apache.org/mod_dtcl/contact.ttml">Contact</a>
  +		       href="http://tcl.apache.org/mod_dtcl/contact.html">Contact</a>
   		       page for information on sending
   		       mail/subscribing.
   	  </p>
  
  
  
  1.8       +7 -7      tcl-site/mod_dtcl/navbar.html
  
  Index: navbar.html
  ===================================================================
  RCS file: /home/cvs/tcl-site/mod_dtcl/navbar.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- navbar.html	1 Nov 2002 08:49:55 -0000	1.7
  +++ navbar.html	28 May 2003 09:17:21 -0000	1.8
  @@ -5,20 +5,20 @@
         </div><div class="box">
         <hr></hr>
         </div><div class="box">
  -      <a href="index.ttml">mod_dtcl Home</a>
  +      <a href="index.html">mod_dtcl Home</a>
         </div><div class="box">
         <a href="documentation/">mod_dtcl documentation</a>
         </div><div class="box">
  -      <a href="examples.ttml">mod_dtcl examples</a>
  +      <a href="examples.html">mod_dtcl examples</a>
         </div><div class="box">
  -      <a href="download.ttml">Download mod_dtcl</a>
  +      <a href="download.html">Download mod_dtcl</a>
         </div><div class="box">
  -      <a href="news.ttml">News &amp; Status</a>
  +      <a href="news.html">News &amp; Status</a>
         </div><div class="box">
  -      <a href="contributing.ttml">Contributing</a>
  +      <a href="contributing.html">Contributing</a>
         </div><div class="box">
  -      <a href="contact.ttml">Contact/Mailing list</a>
  +      <a href="contact.html">Contact/Mailing list</a>
         </div><div class="box">
  -      <a href="credits.ttml">Credits</a>
  +      <a href="credits.html">Credits</a>
         </div>
     </td>
  
  
  
  1.1                  tcl-site/mod_dtcl/contact.html
  
  Index: contact.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  <html>
    <head>
      <title>Contact information for mod_dtcl</title>
      <link rel="stylesheet" href="../style.css">
    </head>
    <body>
  
      
  	<table align="center" width="63%" border="0">
  	<tr>
  	<td align="center" valign="top">
  	<h1 style="padding: .3em;">
      
  mod_dtcl
  
  	</h1>
  	</td>
  	</tr>
  	</table>
  	<hr>
      
  
  
      <table class="main">
  	<tr>
  	    <td bgcolor="#cccccc" valign="top" align="left">
      <b>
        <div class="box">
        <a href="../">Apache Tcl Home</a>
        </div><div class="box">
        <hr></hr>
        </div><div class="box">
        <a href="index.html">mod_dtcl Home</a>
        </div><div class="box">
        <a href="documentation/">mod_dtcl documentation</a>
        </div><div class="box">
        <a href="examples.html">mod_dtcl examples</a>
        </div><div class="box">
        <a href="download.html">Download mod_dtcl</a>
        </div><div class="box">
        <a href="news.html">News &amp; Status</a>
        </div><div class="box">
        <a href="contributing.html">Contributing</a>
        </div><div class="box">
        <a href="contact.html">Contact/Mailing list</a>
        </div><div class="box">
        <a href="credits.html">Credits</a>
        </div>
    </td>
  
  
  	  <td valign="top">
  	    <h2>Contact information for mod_dtcl</h2>
  	    <p>
  	      All enquiries regarding mod_dtcl (both usage and
  	      development) should be directed towards the mailing list
  	      at <a
  	      href="mailto:mod_dtcl@tcl.apache.org">mod_dtcl@tcl.apache.org</a>.
  	      It is not necessary to be subscribed to the mailing list
  	      to post, although you might want to set a reply-to.
  	    </p>
  	    <p>To subscribe to the mailing list, send an empty email
  	    to <a
  	    href="mailto:mod_dtcl-subscribe@tcl.apache.org">mod_dtcl-subscribe@tcl.apache.org</a>.</p>
  
  	    <p>
  	      The list archives can be found (for now) at <a
  	      href="http://marc.theaimsgroup.com/?l=apache-moddtcl&r=1&w=2">marc.theaimsgroup.com</a>.
  	    </p>
  	  </td>
  	</tr>
      </table>
      
  	<table align="center" width="100%">
  	<tr>
  	<td align="left">
  	<a href="http://www.apache.org/"><img src="/apache_pb.gif"
  	alt="Powered by Apache" border="0"
  	width="259"
  	height="32"></a>
  	</td>
  	<td align="right">
  	<a href="http://www.tcl.tk/"><img src="/tclp.gif"
  	alt="Powered by Tcl" border="0"
  	width="42"
  	height="64"></a>
  	</td>
  	</tr>
  	</table>
      
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/mod_dtcl/contributing.html
  
  Index: contributing.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  
  <html>
    <head>
      <title>Contributing to mod_dtcl</title>
      <link rel="stylesheet" href="../style.css">
    </head>
    <body>
      
  	<table align="center" width="63%" border="0">
  	<tr>
  	<td align="center" valign="top">
  	<h1 style="padding: .3em;">
      
  mod_dtcl
  
  	</h1>
  	</td>
  	</tr>
  	</table>
  	<hr>
      
  
  
      <table class="main">
  	<tr>
  	    <td bgcolor="#cccccc" valign="top" align="left">
      <b>
        <div class="box">
        <a href="../">Apache Tcl Home</a>
        </div><div class="box">
        <hr></hr>
        </div><div class="box">
        <a href="index.html">mod_dtcl Home</a>
        </div><div class="box">
        <a href="documentation/">mod_dtcl documentation</a>
        </div><div class="box">
        <a href="examples.html">mod_dtcl examples</a>
        </div><div class="box">
        <a href="download.html">Download mod_dtcl</a>
        </div><div class="box">
        <a href="news.html">News &amp; Status</a>
        </div><div class="box">
        <a href="contributing.html">Contributing</a>
        </div><div class="box">
        <a href="contact.html">Contact/Mailing list</a>
        </div><div class="box">
        <a href="credits.html">Credits</a>
        </div>
    </td>
  
  
  	  <td valign="top">
  	    <h2>Contributing to mod_dtcl</h2>
  	    <p>
  	      mod_dtcl is in maintenance mode, and new development is
  	      being done on <a href="../rivet/">Apache Rivet</a>.
  	      Anything you may wish to contribute is still welcome,
  	      but any major changes will only be undertaken in Rivet.
  	    </p>
  	  </td>
  	</tr>
      </table>
      
  	<table align="center" width="100%">
  	<tr>
  	<td align="left">
  	<a href="http://www.apache.org/"><img src="/apache_pb.gif"
  	alt="Powered by Apache" border="0"
  	width="259"
  	height="32"></a>
  	</td>
  	<td align="right">
  	<a href="http://www.tcl.tk/"><img src="/tclp.gif"
  	alt="Powered by Tcl" border="0"
  	width="42"
  	height="64"></a>
  	</td>
  	</tr>
  	</table>
      
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/mod_dtcl/credits.html
  
  Index: credits.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  <html>
    <head>
      <title>mod_dtcl Credits</title>
      <link rel="stylesheet" href="../style.css">
    </head>
    <body>
      
  	<table align="center" width="63%" border="0">
  	<tr>
  	<td align="center" valign="top">
  	<h1 style="padding: .3em;">
      
  mod_dtcl
  
  	</h1>
  	</td>
  	</tr>
  	</table>
  	<hr>
      
  
      <table class="main">
  	<tr>
  	    <td bgcolor="#cccccc" valign="top" align="left">
      <b>
        <div class="box">
        <a href="../">Apache Tcl Home</a>
        </div><div class="box">
        <hr></hr>
        </div><div class="box">
        <a href="index.html">mod_dtcl Home</a>
        </div><div class="box">
        <a href="documentation/">mod_dtcl documentation</a>
        </div><div class="box">
        <a href="examples.html">mod_dtcl examples</a>
        </div><div class="box">
        <a href="download.html">Download mod_dtcl</a>
        </div><div class="box">
        <a href="news.html">News &amp; Status</a>
        </div><div class="box">
        <a href="contributing.html">Contributing</a>
        </div><div class="box">
        <a href="contact.html">Contact/Mailing list</a>
        </div><div class="box">
        <a href="credits.html">Credits</a>
        </div>
    </td>
  
  	  <td valign="top">
  	    <h2>Credits for mod_dtcl</h2>
  	    <p>
  	      The following have contributed code, time, ideas and
  	      suggestions:
  	    </p>
  	    <ul>
  	      <li>Rolf Ade</li>
  	      <li>Paolo Brutti</li>
  	      <li><a href="mailto:valerio@most.it">Valerio Gionco</a></li>
  	      <li><a href="mailto:Simon.Greaves@bigfoot.com">Simon Greaves</a></li>
  	      <li>Craig Huckabee</li>
  	      <li>Jorgen Frojk Kjaersgaard</li>
  	      <li><a href=mailto:wojciech@kocjan.org>Wojtek
  	      Kocjan</a></li>
  	      <li>Charles Lecoufle</li>
  	      <li><a href="http://www.perki.org">Pierre-Mikael Legris</a></li>
  	      <li>Rasmus Lerdorf</li>
  	      <li><a href=mailto:cl@us-bo.dk>Claus Bo Nielsen</a></li>
  	      <li>Jan Nijtmans</li>
  	      <li>Daniel Ridruejo</li>
  	      <li><a href=mailto:mi@aldan.algebra.com>Mikhail Teterin</a></li>
  	      <li><a href="http://www.dedasys.com/davidw/">David
  	      Welton</a> (Author and maintainer)</li>
  	    </ul>
  	    <p>
  	      Hosting services and equipment provided by <b><a href="http://www.covalent.net">Covalent Technologies</a></b>.
  	    </p>
  	  </td>
  	</tr>
      </table>
      
  	<table align="center" width="100%">
  	<tr>
  	<td align="left">
  	<a href="http://www.apache.org/"><img src="/apache_pb.gif"
  	alt="Powered by Apache" border="0"
  	width="259"
  	height="32"></a>
  	</td>
  	<td align="right">
  	<a href="http://www.tcl.tk/"><img src="/tclp.gif"
  	alt="Powered by Tcl" border="0"
  	width="42"
  	height="64"></a>
  	</td>
  	</tr>
  	</table>
      
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/mod_dtcl/download.html
  
  Index: download.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  
  <html>
    <head>
      <title>Download mod_dtcl</title>
      <link rel="stylesheet" href="../style.css">
    </head>
    <body>
  
      
  	<table align="center" width="63%" border="0">
  	<tr>
  	<td align="center" valign="top">
  	<h1 style="padding: .3em;">
      
  mod_dtcl
  
  	</h1>
  	</td>
  	</tr>
  	</table>
  	<hr>
      
  
  
      <table class="main">
  	<tr>
  	    <td bgcolor="#cccccc" valign="top" align="left">
      <b>
        <div class="box">
        <a href="../">Apache Tcl Home</a>
        </div><div class="box">
        <hr></hr>
        </div><div class="box">
        <a href="index.html">mod_dtcl Home</a>
        </div><div class="box">
        <a href="documentation/">mod_dtcl documentation</a>
        </div><div class="box">
        <a href="examples.html">mod_dtcl examples</a>
        </div><div class="box">
        <a href="download.html">Download mod_dtcl</a>
        </div><div class="box">
        <a href="news.html">News &amp; Status</a>
        </div><div class="box">
        <a href="contributing.html">Contributing</a>
        </div><div class="box">
        <a href="contact.html">Contact/Mailing list</a>
        </div><div class="box">
        <a href="credits.html">Credits</a>
        </div>
    </td>
  
  
  	  <td valign="top">
  	    <h2>Download mod_dtcl</h2>
  	    <p>
  	      <b>Pre-built packages</b>:
  	    </p>
  	    <ul>
  	      <li>Debian GNU/Linux: <a
  	      href="http://www.debian.org/Packages/unstable/web/libapache-mod-dtcl.html">http://www.debian.org/Packages/unstable/web/libapache-mod-dtcl.html</a>
  	      </li>
  
  
  
  	      <li>Redhat GNU/Linux: <a
  	      href="Error: invalid command name "hputs"
  
  
  
  1.1                  tcl-site/mod_dtcl/examples.html
  
  Index: examples.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
  <html>
  <!-- $Id: examples.html,v 1.1 2003/05/28 09:17:21 davidw Exp $ -->
  <title>mod_dtcl examples</title>
      <link rel="stylesheet" href="../style.css">
  <body bgcolor=white>
  
  <table bgcolor=black width=100%>
  <tr>
  <td align=center>
  <font size=40 color=#ffffff>
  <b>mod_dtcl examples</b>
  </font>
  </td>
  </tr>
  </table>
  
  <p>
  These are some examples, rather limited ones, of what can be done with
  mod_dtcl.  <b>Note:</b> because mod_dtcl is no longer part of the main
  Apache Tcl site (see <a href="../rivet">Rivet</a> instead), this page
  is no longer a live mod_dtcl script.
  
  <p>
  <table>
  <tr><td><hr><b>Hello world</b></td></tr>
  <tr><td bgcolor=gray><pre>
  
  &lt;?
  headers setcookie "foo" "bar" # we have to put this before any 'puts' statements
  
  # once buffering is switched off, it is no longer possible to
  # maninuplate headers
  buffered off
  
  puts "Hello world"
  ?&gt;
  
  </pre>
  	  </td></tr>
  
  <tr><td>
  Produces:
  <p>
  
  hello world
  
  
  <p>
  
  
  </td></tr>
  
  <tr><td><hr>
  <b>Conditionals:</b>
  </td></tr>
  
  <tr><td bgcolor=gray><pre>
  
  &lt;? if { 1 } { ?&gt;
  
  &lt;h2&gt; True &lt;/h2&gt;
  
  &lt;? }  ?&gt;
  
  </td></tr></pre>
  
  <tr><td>
  Produces:
  <p>
  
  
  
  <h2> True </h2>
  
  
  </td></tr>
  
  <tr><td><hr><b>Loops:</b>
  </td></tr>
  
  <tr><td bgcolor=gray><pre>
  
  &lt;? 
  set x 0 
  while { $x &lt; 5 } { 
   puts "\$x = $x&lt;br>"
   incr x
  ?&gt;
  
  LOOP&lt;br>
  
  &lt;? }  ?&gt;
  
  </pre>
  </td></tr>
  
  <tr><td>Produces:<p>
  $x = 0<br>
  
  LOOP<BR>
  $x = 1<br>
  
  LOOP<BR>
  $x = 2<br>
  
  LOOP<BR>
  $x = 3<br>
  
  LOOP<BR>
  $x = 4<br>
  
  LOOP<BR>
  
  </td></tr>
  
  <tr><td><hr><b>Variables (environmental as well as those passed to the script)</b><p>
  </td></tr>
  <tr><td bgcolor=gray><pre>
  
  &lt;? 
   hgetvars
  if { [ array exists VARS ] } {
      puts "&lt; ul>"
      foreach { var val } [ var all ]  {
          puts "&lt;li>(VARS) $var = $val"
      }
      puts "&lt;/ul>"
  }
  
  if { [ array exists ENVS ] } {
      
      puts "&lt;ul>"
      foreach { vr } [ array names ENVS ]  {
          puts "&lt;li>(ENVS) $vr = $ENVS($vr)"
      }
      puts "&lt;/ul>"
  }
  
  if { [ array exists COOKIES ] } {
      
      puts "&lt;ul>"
      foreach { vr } [ array names COOKIES ]  {
          puts "&lt;li>(COOKIES) $vr = $COOKIES($vr)"
      }
      puts "&lt;/ul>"
  }
  
  ?&gt;
  
  </pre>
  </td></tr>
  
  <tr><td>Produces:<p>
  <ul>
  <li>(ENVS) DATE_LOCAL = Saturday, 24-May-2003 18:05:46 CEST
  <li>(ENVS) SERVER_ADDR = 127.0.0.1
  <li>(ENVS) DOCUMENT_ROOT = /var/www/tcl-site/
  <li>(ENVS) GATEWAY_INTERFACE = CGI/1.1
  <li>(ENVS) SERVER_PORT = 80
  <li>(ENVS) HTTP_HOST = tclsite
  <li>(ENVS) DATE_GMT = Saturday, 24-May-2003 16:05:46 GMT
  <li>(ENVS) REMOTE_ADDR = 127.0.0.1
  <li>(ENVS) DOCUMENT_URI = /mod_dtcl/examples.ttml
  <li>(ENVS) SERVER_NAME = tclsite
  <li>(ENVS) HTTP_CONNECTION = keep-alive
  <li>(ENVS) SERVER_SIGNATURE = 
  <li>(ENVS) SERVER_PROTOCOL = HTTP/1.1
  <li>(ENVS) REQUEST_URI = /mod_dtcl/examples.ttml
  <li>(ENVS) REMOTE_PORT = 59939
  <li>(ENVS) HTTP_ACCEPT_CHARSET = ISO-8859-1, utf-8;q=0.66, *;q=0.66
  <li>(ENVS) SERVER_SOFTWARE = Apache/1.3.26 (Unix) Debian GNU/Linux Rivet mod_dtcl
  <li>(ENVS) REQUEST_METHOD = GET
  <li>(ENVS) HTTP_ACCEPT_LANGUAGE = en, it;q=0.50
  <li>(ENVS) UNIQUE_ID = Ps@YWn8AAAEAACiR-24
  <li>(ENVS) QUERY_STRING = 
  <li>(ENVS) HTTP_USER_AGENT = Mozilla/5.0 Galeon/1.2.5 (X11; Linux ppc; U;) Gecko/20020622 Debian/1.2.5-0.woody.1
  <li>(ENVS) HTTP_KEEP_ALIVE = 300
  <li>(ENVS) LAST_MODIFIED = Friday, 25-Oct-2002 07:21:04 CEST
  <li>(ENVS) SCRIPT_NAME = /mod_dtcl/examples.ttml
  <li>(ENVS) SCRIPT_FILENAME = /var/www/tcl-site/mod_dtcl/examples.ttml
  <li>(ENVS) PATH = /bin:/usr/bin:/sbin:/usr/sbin
  <li>(ENVS) HTTP_ACCEPT_ENCODING = gzip, deflate, compress;q=0.9
  <li>(ENVS) DOCUMENT_PATH_INFO = 
  <li>(ENVS) SERVER_ADMIN = webmaster@ashland
  <li>(ENVS) USER_NAME = davidw
  <li>(ENVS) DOCUMENT_NAME = examples.ttml
  <li>(ENVS) HTTP_ACCEPT = text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*/*;q=0.1
  </ul>
  
  </td></tr>
  
  <tr><td><hr><b>Create a table on the fly</b><p>
  </td></tr>
  <tr><td bgcolor=gray><pre>
  
  &lt;?
  set i 1
  puts "&lt;table&gt;\n"
  
  while { $i &lt;= 8 } {
      puts "&lt;tr&gt;\n"
      for {set j 1} {$j &lt;= 8} {incr j} {
  	set num [ expr $i * $j * 4 - 1]
  	puts [ format "&lt;td bgcolor=%2x%2x%2x &gt; $num $num $num &lt;/td&gt;\n" $num $num $num ]
      }
      incr i
      puts "&lt;/tr&gt;\n"
  }
  
  puts "&lt;/table&gt;\n"
  ?&gt;
  </pre>
  </td></tr>
  
  <tr><td>Produces:<p>
  <table>
  
  <tr>
  
  <td bgcolor= 3 3 3 > 3 3 3 </td>
  
  <td bgcolor= 7 7 7 > 7 7 7 </td>
  
  <td bgcolor= b b b > 11 11 11 </td>
  
  <td bgcolor= f f f > 15 15 15 </td>
  
  <td bgcolor=131313 > 19 19 19 </td>
  
  <td bgcolor=171717 > 23 23 23 </td>
  
  <td bgcolor=1b1b1b > 27 27 27 </td>
  
  <td bgcolor=1f1f1f > 31 31 31 </td>
  
  </tr>
  
  <tr>
  
  <td bgcolor= 7 7 7 > 7 7 7 </td>
  
  <td bgcolor= f f f > 15 15 15 </td>
  
  <td bgcolor=171717 > 23 23 23 </td>
  
  <td bgcolor=1f1f1f > 31 31 31 </td>
  
  <td bgcolor=272727 > 39 39 39 </td>
  
  <td bgcolor=2f2f2f > 47 47 47 </td>
  
  <td bgcolor=373737 > 55 55 55 </td>
  
  <td bgcolor=3f3f3f > 63 63 63 </td>
  
  </tr>
  
  <tr>
  
  <td bgcolor= b b b > 11 11 11 </td>
  
  <td bgcolor=171717 > 23 23 23 </td>
  
  <td bgcolor=232323 > 35 35 35 </td>
  
  <td bgcolor=2f2f2f > 47 47 47 </td>
  
  <td bgcolor=3b3b3b > 59 59 59 </td>
  
  <td bgcolor=474747 > 71 71 71 </td>
  
  <td bgcolor=535353 > 83 83 83 </td>
  
  <td bgcolor=5f5f5f > 95 95 95 </td>
  
  </tr>
  
  <tr>
  
  <td bgcolor= f f f > 15 15 15 </td>
  
  <td bgcolor=1f1f1f > 31 31 31 </td>
  
  <td bgcolor=2f2f2f > 47 47 47 </td>
  
  <td bgcolor=3f3f3f > 63 63 63 </td>
  
  <td bgcolor=4f4f4f > 79 79 79 </td>
  
  <td bgcolor=5f5f5f > 95 95 95 </td>
  
  <td bgcolor=6f6f6f > 111 111 111 </td>
  
  <td bgcolor=7f7f7f > 127 127 127 </td>
  
  </tr>
  
  <tr>
  
  <td bgcolor=131313 > 19 19 19 </td>
  
  <td bgcolor=272727 > 39 39 39 </td>
  
  <td bgcolor=3b3b3b > 59 59 59 </td>
  
  <td bgcolor=4f4f4f > 79 79 79 </td>
  
  <td bgcolor=636363 > 99 99 99 </td>
  
  <td bgcolor=777777 > 119 119 119 </td>
  
  <td bgcolor=8b8b8b > 139 139 139 </td>
  
  <td bgcolor=9f9f9f > 159 159 159 </td>
  
  </tr>
  
  <tr>
  
  <td bgcolor=171717 > 23 23 23 </td>
  
  <td bgcolor=2f2f2f > 47 47 47 </td>
  
  <td bgcolor=474747 > 71 71 71 </td>
  
  <td bgcolor=5f5f5f > 95 95 95 </td>
  
  <td bgcolor=777777 > 119 119 119 </td>
  
  <td bgcolor=8f8f8f > 143 143 143 </td>
  
  <td bgcolor=a7a7a7 > 167 167 167 </td>
  
  <td bgcolor=bfbfbf > 191 191 191 </td>
  
  </tr>
  
  <tr>
  
  <td bgcolor=1b1b1b > 27 27 27 </td>
  
  <td bgcolor=373737 > 55 55 55 </td>
  
  <td bgcolor=535353 > 83 83 83 </td>
  
  <td bgcolor=6f6f6f > 111 111 111 </td>
  
  <td bgcolor=8b8b8b > 139 139 139 </td>
  
  <td bgcolor=a7a7a7 > 167 167 167 </td>
  
  <td bgcolor=c3c3c3 > 195 195 195 </td>
  
  <td bgcolor=dfdfdf > 223 223 223 </td>
  
  </tr>
  
  <tr>
  
  <td bgcolor=1f1f1f > 31 31 31 </td>
  
  <td bgcolor=3f3f3f > 63 63 63 </td>
  
  <td bgcolor=5f5f5f > 95 95 95 </td>
  
  <td bgcolor=7f7f7f > 127 127 127 </td>
  
  <td bgcolor=9f9f9f > 159 159 159 </td>
  
  <td bgcolor=bfbfbf > 191 191 191 </td>
  
  <td bgcolor=dfdfdf > 223 223 223 </td>
  
  <td bgcolor=ffffff > 255 255 255 </td>
  
  </tr>
  
  </table>
  
  
  </td></tr>
  
  <tr><td><hr> <b>In addition</b><br> 
  
  There are many, many other things you can do with mod_dtcl.  You can,
  if everything is compiled right, load tcl modules, like libpgtcl.so
  (the Postgresql interface), so that you can interact with a database!
  
  <p>
  
  </td></tr>
  
  </table>
  
  <table border=0 bgcolor=green><tr><td>
  <table border=0 bgcolor="#000000">
  <tr><td align=center bgcolor=blue><font color="#ffffff" size="+2">dtcl_info</font><br></td></tr>
  <tr><td><font color="#ffffff">Free cache size: 9</font><br></td></tr>
  <tr><td><font color="#ffffff">PID: 10385</font><br></td></tr>
  </table>
  </td></tr></table>
  
  
  
  <p>
  <a href="index.ttml">Return to the mod_dtcl homepage</a>
  </p>
  
  </body>
  </html>
  
  
  
  1.1                  tcl-site/mod_dtcl/index.html
  
  Index: index.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  
  <html>
    <head>
      <title>Apache Tcl</title>
      <link rel="stylesheet" href="../style.css">
    </head>
    <body>
      
  	<table align="center" width="63%" border="0">
  	<tr>
  	<td align="center" valign="top">
  	<h1 style="padding: .3em;">
      
  mod_dtcl
  
  	</h1>
  	</td>
  	</tr>
  	</table>
  	<hr>
      
  
  
      <table class="main">
  	<tr>
  	    <td bgcolor="#cccccc" valign="top" align="left">
      <b>
        <div class="box">
        <a href="../">Apache Tcl Home</a>
        </div><div class="box">
        <hr></hr>
        </div><div class="box">
        <a href="index.html">mod_dtcl Home</a>
        </div><div class="box">
        <a href="documentation/">mod_dtcl documentation</a>
        </div><div class="box">
        <a href="examples.html">mod_dtcl examples</a>
        </div><div class="box">
        <a href="download.html">Download mod_dtcl</a>
        </div><div class="box">
        <a href="news.html">News &amp; Status</a>
        </div><div class="box">
        <a href="contributing.html">Contributing</a>
        </div><div class="box">
        <a href="contact.html">Contact/Mailing list</a>
        </div><div class="box">
        <a href="credits.html">Credits</a>
        </div>
    </td>
  
  
  	  <td valign="top">
  
  	    <p>
  	      <b>mod_dtcl</b> is an Open Source implementation of server
  	      parsed Tcl, running under Apache.  It is a flexible
  	      platform that allows you to integrate Tcl and HTML
  	      however you choose; you can tightly interweave them,
  	      in order to write powerful dynamic web pages quickly, or
  	      you can also follow different programming models, such
  	      as the "Model View Controller" framework, should you
  	      wish to create a large, complex web system which
  	      seperates content from code.
  	    </p>
  	    <p>
  	      <a href="http://www.tcl.tk/">Tcl</a> is a very
  	      widely used and available scripting language with many
  	      years of development invested in it. Because Tcl is such
  	      a well known language, there is a large amount of
  	      documentation for it, both on the net and books. There
  	      are also many external Tcl modules that you can load
  	      into mod_dtcl, to create images, access databases, and
  	      so forth.
  	    </p>
  	    <p>
  	      <b>Note:</b> mod_dtcl is still supported, but no longer
  	      under development.  <b>You should use <a
  	      href="/rivet/">Rivet</a></b> if you are starting a new
  	      project.  Otherwise, consider upgrading when it is
  	      convenient.
  	    </p>
  	  </td>
  	</tr>
      </table>
      
  	<table align="center" width="100%">
  	<tr>
  	<td align="left">
  	<a href="http://www.apache.org/"><img src="/apache_pb.gif"
  	alt="Powered by Apache" border="0"
  	width="259"
  	height="32"></a>
  	</td>
  	<td align="right">
  	<a href="http://www.tcl.tk/"><img src="/tclp.gif"
  	alt="Powered by Tcl" border="0"
  	width="42"
  	height="64"></a>
  	</td>
  	</tr>
  	</table>
      
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/mod_dtcl/news.html
  
  Index: news.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  
  <html>
    <head>
      <title>mod_dtcl News & Status</title>
      <link rel="stylesheet" href="../style.css">
    </head>
    <body>
      
  	<table align="center" width="63%" border="0">
  	<tr>
  	<td align="center" valign="top">
  	<h1 style="padding: .3em;">
      
  mod_dtcl
  
  	</h1>
  	</td>
  	</tr>
  	</table>
  	<hr>
      
  
  
      <table class="main">
  	<tr>
  	    <td bgcolor="#cccccc" valign="top" align="left">
      <b>
        <div class="box">
        <a href="../">Apache Tcl Home</a>
        </div><div class="box">
        <hr></hr>
        </div><div class="box">
        <a href="index.html">mod_dtcl Home</a>
        </div><div class="box">
        <a href="documentation/">mod_dtcl documentation</a>
        </div><div class="box">
        <a href="examples.html">mod_dtcl examples</a>
        </div><div class="box">
        <a href="download.html">Download mod_dtcl</a>
        </div><div class="box">
        <a href="news.html">News &amp; Status</a>
        </div><div class="box">
        <a href="contributing.html">Contributing</a>
        </div><div class="box">
        <a href="contact.html">Contact/Mailing list</a>
        </div><div class="box">
        <a href="credits.html">Credits</a>
        </div>
    </td>
  
  
  	  <td valign="top">
  	    <h2>News & Status</h2>
  
  	    <p>
  	      <b>August 13, 2002</b> <a href="../rivet/">Apache
  	      Rivet</a> is now on the Apache Tcl site.  mod_dtcl will
  	      at some point be phased out in favor of Rivet.
  	    </p>
  
  	    <p>
  	      <b>January 29, 2002:</b> The Apache Tcl mailing list
  	      archives are now available from: <a
  	      href="http://www.apachelabs.org">www.apachelabs.org</a>.
  	      Thanks to Justin Erenkrantz!
  	    </p>
  
  	    <p>
  	      <b>December 9, 2001:</b> Added mod_dtcl and tcl <a
  	      href="/presentations/">presentations</a>.
  	    </p>
  
  	    <p>
  	      <b>November 26, 2001:</b> The mailing list archives can
  	      be found at <a
  	      href="http://marc.theaimsgroup.com/?l=apache-moddtcl&r=1&w=2">marc.theaimsgroup.com</a>.
  	      Hopefully the ASF will create a solution for all ASF
  	      project mailing lists.
  	    </p>
  
  	    <p>
  	      <b>Noverber 3, 2001:</b> mod_dtcl 0.11.5 release -
  	      Small content-type bug fixed.
  	    </p>
  
  	    <p>
  	      <b>October 15, 2001:</b> mod_dtcl 0.11.4 release -
  	      Parse bug fixed, windows makefile updates, Debian script updates.
  	    </p>
  
  	    <p>
  	      <b>October 10, 2001:</b> mod_dtcl 0.11.3 release -
  	      updates are mainly relevant to internationalization.
  	    </p>
  
  	    <p>
  	      <b>August 30, 2001:</b> mod_dtcl 0.11.2 has been
  	      released, without any major changes.
  	    </p>
  
  	    <p>
  	      <b>August 4, 2001:</b> New documentation is available on
  	      line - check out the documentation link.  In addition, a
  	      new version of mod_dtcl is out.
  	    </p>
  
  	    <p>
  	      <b>March 18, 2001:</b> mod_dtcl version 0.10.0 has been released!
  	    </p>
  
  	    <p>
  	      <b>December 24, 2000</b> Mailing list archives for
  	      mod_dtcl are available here: <a
  	      href="http://archive.covalent.net/">http://archive.covalent.net/</a>,
  	      at the bottom of the page.
  	    </p>
  
  
  	    <p>
  	      <b>December 8, 2000:</b> The mod_dtcl code in CVS has
  	      file upload capabilities, as well as support for
  	      per-virtual-server Tcl interpreters.
  	    </p>
  
  	    <p>
  	      <b>December 8, 2000:</b> tcl.apache.org is now linked
  	      from the Apache site!
  	    </p>
  
  	    <p>
  	      <b>November 10, 2000:</b> mod_dtcl is released as an official
  	      Apache Software Foundation project under the umbrella of
  	      Apache Tcl.
  	    </p>
  
  	  </td>
  	</tr>
      </table>
      
  	<table align="center" width="100%">
  	<tr>
  	<td align="left">
  	<a href="http://www.apache.org/"><img src="/apache_pb.gif"
  	alt="Powered by Apache" border="0"
  	width="259"
  	height="32"></a>
  	</td>
  	<td align="right">
  	<a href="http://www.tcl.tk/"><img src="/tclp.gif"
  	alt="Powered by Tcl" border="0"
  	width="42"
  	height="64"></a>
  	</td>
  	</tr>
  	</table>
      
  
    </body>
  </html>
  
  
  
  1.3       +2 -2      tcl-site/mod_dtcl/documentation/documentation.html
  
  Index: documentation.html
  ===================================================================
  RCS file: /home/cvs/tcl-site/mod_dtcl/documentation/documentation.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- documentation.html	19 Oct 2001 16:42:21 -0000	1.2
  +++ documentation.html	28 May 2003 09:17:21 -0000	1.3
  @@ -475,7 +475,7 @@
   	</p>
   	<p>
   	  See the <a
  -	    target="_top" href="http://tcl.apache.org/mod_dtcl/contact.ttml">Contact</a>
  +	    target="_top" href="http://tcl.apache.org/mod_dtcl/contact.html">Contact</a>
   	  page for information on sending
   	  mail/subscribing.
   	</p>
  
  
  
  1.3       +2 -2      tcl-site/neowebscript/navbar.html
  
  Index: navbar.html
  ===================================================================
  RCS file: /home/cvs/tcl-site/neowebscript/navbar.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- navbar.html	18 Nov 2002 23:35:44 -0000	1.2
  +++ navbar.html	28 May 2003 09:17:22 -0000	1.3
  @@ -2,8 +2,8 @@
       <b>
         <a href="../">Apache Tcl Home</a><br></br>
         <hr></hr>
  -      <a href="index.ttml">Home</a><br></br>
  -       <a href="about.ttml">About</a><br></br>
  +      <a href="index.html">Home</a><br></br>
  +       <a href="about.html">About</a><br></br>
         <a href="http://nws.sourceforge.net/">Website</a><br></br>
         <a href="http://sourceforge.net/projects/nws/">SF Project</a><br></br>
     </td>
  
  
  
  1.1                  tcl-site/neowebscript/about.html
  
  Index: about.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  
  <html>
    <head>
      <title>NeoWebScript</title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
  
      <table align="center" width="63%" border="0">
  	<tr>
  
  	  <td align="center" valign="top">
  	    <h1 style="padding: .3em;">
  
  	      NeoWebScript
  
  	    </h1>
  	  </td>
  	</tr>
      </table>
      <hr>
  
      <table width="75%" border="0">
  	<tr>
  
  	  <td bgcolor="#cccccc" width="20%" valign="top" align="left">
  	    <b>
  	      <a href="../">Apache Tcl Home</a><br></br>
  	    <hr></hr>
  	    <a href=".">Home</a><br></br>
  	    <a href="about.html">About</a><br></br>
  	    <a href="http://nws.sourceforge.net/">Website</a><br></br>
  	    <a href="http://sourceforge.net/projects/nws/">SF Project</a><br></br>
  	  </td>
  
  	  <td valign="top">
  
  	    <p>
  	      Using NeoWebScript, you can create web applications of enormous power
  	      and flexibility.  You can create interfaces between sophisticated webpages
  	      developed with cutting edge design tools and backend applications,
  	      including Oracle and Postgres, among many others.
  	    </p><p>
  	      NeoWebScript is a plug-in module for the Apache webserver.
  	    </p><p>
  	      Once you install it, the webserver will execute the NeoWebScript code
  	      contained in a webpage each time it is requested.
  	    </p><p>
  	      You can make your webpages customize themselves in response to user input,
  	      database lookups, etc., creating a unique Internet experience.
  	    </p><p>
  	      As such, it can be used on any of the tens of millions of Apache servers
  	      on the Internet.
  	    </p><p>
  	      NeoWebScript uses the Tool command language (Tcl) as its programming
  	      language, allowing you to leverage hundreds of third party Tcl extensions.
  	    </p><p>
  	      NeoWebScript-enabled pages run with much less overhead than CGI programs.
  	      Also, since NeoWebScript scripts are embedded into webpages, the static
  	      content of the webpage can be designed and created with webpage creation
  	      tools, rather than having to be output by the program like CGI does.
  	    </p><p>
  	      Web hosters and ISPs love NeoWebScript, because its default security settings
  	      allow their customers to write programs without giving them full shell access,
  	      the ability to run arbitrary programs and inspect arbitrary files on the system.
  	    </p>
  
  	    <p align="center">
  	      <a href="http://www.apache.org/"><img src="../apache_pb.gif"
  		  alt="Powered by Apache" border="0"
  		  width="259"
  		  height="32"></a>
  	    </p>
  	    
  	  </td>
  	</tr>
      </table>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/neowebscript/index.html
  
  Index: index.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  
  <html>
    <head>
      <title>NeoWebScript</title>
      <link rel="stylesheet" href="style.css">
    </head>
    <body>
      
  	<table align="center" width="63%" border="0">
  	<tr>
  	<td align="center" valign="top">
  	<h1 style="padding: .3em;">
      
  NeoWebScript
  
  	</h1>
  	</td>
  	</tr>
  	</table>
  	<hr>
      
  
      <table width="75%" border="0">
  	<tr>
  	    <td bgcolor="#cccccc" width="20%" valign="top" align="left">
      <b>
        <a href="../">Apache Tcl Home</a><br></br>
        <hr></hr>
        <a href=".">Home</a><br></br>
         <a href="about.html">About</a><br></br>
        <a href="http://nws.sourceforge.net/">Website</a><br></br>
        <a href="http://sourceforge.net/projects/nws/">SF Project</a><br></br>
    </td>
    <td width="5%">	</td>
  
  
  
  
  	  <td valign="top">
  
  	    <p>
  	      NeoWebScript is an open source scripting module for the Apache webserver.
  	      Based on the Tcl programming language, it has a number of powerful features,
  	      including the ability to embed Tcl code into HTML pages, access and manipulate
  	      databases, and generate graphics on-the-fly, among many others.
  	    </p>
  	    <p>
  	      NeoWebScript is currently hosted at SourceForge.
  	    </p>
  
  	    <p align="center">
  	      <a href="http://www.apache.org/"><img src="../apache_pb.gif"
  						  alt="Powered by Apache" border="0"
  						  width="259"
  						  height="32"></a>
  	    </p>
  
  	  </td>
  	</tr>
      </table>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/index.rvt
  
  Index: index.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  <html>
    <head>
      <title>Apache Tcl Presentations</title>
      <link rel="stylesheet" href="../style.css">
    </head>
    <body>
      <? title ?>
  
      <table>
  	<tr>
  	  <? include [file join .. newnav.html] ?>
  
  	  <td valign="top">
  	    <p>
  	      Tcl presentations on line.  These presentations are made
  	      with HTML, style sheets, and mod_dtcl.  This means they
  	      are very portable (although a modern browser that
  	      handles style sheets is necessary), and you can use them
  	      from a networked computer, with just a browser!
  	    </p>
  	    <p>
  	      The presentations are released under the Apache Software
  	      License, which means you need to give credit if you use
  	      these - but please feel free to take them, modify,
  	      redistribute, or otherwise do as you wish.
  	    </p>
  	    <ul>
  	      <li>Tcl Presentation: <a href="tcl/">(live)</a> <a
  	      href="tcl.tgz">(tarball)</a><br>
  		Presentation on the Tcl programming language and the Tk toolkit.
  	      </li>
  	      <li>mod_dtcl Presentation: <a href="dtcl/">(live)</a> <a
  	      href="dtcl.tgz">(tarball)</a><br>
  		mod_dtcl presentation.
  	      </li>
  	      <li>
  		Apache Tcl Presentation: <a
  		  href="apache-tcl/">(live)</a><br>
  
  		The present and future of Apache Tcl, and why Tcl is
  		such a logical fit for doing web content.
  	      </li>
  	    </ul>
  	  </td>
  	</tr>
      </table>
      <? powered ?>
    </body>
  </html>
  
  
  
  1.2       +1 -1      tcl-site/presentations/apache-tcl/.htaccess
  
  Index: .htaccess
  ===================================================================
  RCS file: /home/cvs/tcl-site/presentations/apache-tcl/.htaccess,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- .htaccess	11 Oct 2002 15:37:24 -0000	1.1
  +++ .htaccess	28 May 2003 09:17:22 -0000	1.2
  @@ -1,3 +1,3 @@
  -Dtcl_Script BeforeScript "source [file join [pwd] common.tcl]"
  +RivetUserConf BeforeScript "source [file join [pwd] common.tcl]"
   
   
  
  
  
  1.4       +4 -5      tcl-site/presentations/apache-tcl/common.tcl
  
  Index: common.tcl
  ===================================================================
  RCS file: /home/cvs/tcl-site/presentations/apache-tcl/common.tcl,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- common.tcl	15 Oct 2002 15:24:18 -0000	1.3
  +++ common.tcl	28 May 2003 09:17:22 -0000	1.4
  @@ -15,7 +15,7 @@
       proc ::makeindex {} {
   	puts "<ul>"
   	foreach fl [getorder] {
  -	    set flttml "$fl.ttml"
  +	    set flttml "$fl.rvt"
   	    puts [subst {
   		<li style="font-size:small ; list-style-type:square ; list-style-image: none"><a href="$flttml">$fl</a></li>
   	    }]
  @@ -24,15 +24,14 @@
       }
   
       proc ::nexturl { } {
  -	return "[lindex $::urls $::next].ttml?index=$::next"
  +	return "[lindex $::urls $::next].rvt?index=$::next"
       }
   
       proc ::prevurl { } {
  -	return "[lindex $::urls $::prev].ttml?index=$::prev"
  +	return "[lindex $::urls $::prev].rvt?index=$::prev"
       }
   
       proc ::prevnext { title } {
  -	hgetvars
   	set ::urls [getorder]
   	if { [var exists index] } {
   	    set ::index [var get index]
  @@ -70,7 +69,7 @@
       proc ::footer {} {
   	puts {
   	    <p align="center" style="font-size:small">
  -	    <a href="list.ttml">INDEX</a>
  +	    <a href="list.rvt">INDEX</a>
   	    </p>
   	}
       }
  
  
  
  1.2       +39 -5     tcl-site/presentations/apache-tcl/rivetexample1.rvt
  
  Index: rivetexample1.rvt
  ===================================================================
  RCS file: /home/cvs/tcl-site/presentations/apache-tcl/rivetexample1.rvt,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- rivetexample1.rvt	11 Oct 2002 07:17:06 -0000	1.1
  +++ rivetexample1.rvt	28 May 2003 09:17:22 -0000	1.2
  @@ -1,11 +1,45 @@
  -<? puts "<table>\n"
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  +<html>
  +  <head>
  +    <title>Rivet Example</title>
  +    <link rel="stylesheet" href="style.css">
  +  </head>
  +
  +  <body>
  +    <? prevnext "<h1>Rivet Example</h1>" ?>
  +
  +<pre>
  +&lt;? puts "&lt;table&gt;\n"
  +
  +for {set i 1} { $i &lt;= 8 } {incr i} {
  +    puts "&lt;tr&gt;\n"
  +    for {set j 1} {$j &lt;= 8} {incr j} {
  +	set num [ expr $i * $j * 4 - 1]
  +	puts [ format "&lt;td bgcolor=%2x%2x%2x &gt; $num $num $num &lt;/td&gt;\n" \
  +      $num $num $num ]
  +    }
  +    puts "&lt;/tr&gt;\n"
  +}
  +
  +puts "&lt;/table&gt;\n" ?&gt;
  +</pre>
  +
  +<?
  +puts {<table align="center" style="font-size:20%">}
  +
   for {set i 1} { $i <= 8 } {incr i} {
       puts "<tr>\n"
       for {set j 1} {$j <= 8} {incr j} {
  -        set num [ expr $i * $j * 4 - 1]
  -        puts [ format "<td bgcolor=%2x%2x%2x > $num $num $num </td>\n" \
  -      $num $num $num ]
  +	set num [ expr {$i * $j * 4 - 1} ]
  +	puts [ format "<td bgcolor=%2x%2x%2x > $num $num $num </td>\n" $num $num $num ]
       }
       puts "</tr>\n"
   }
  -puts "</table>\n" ?>
  +
  +puts "</table>\n"
  +?>
  +</div>
  +
  +    <?footer?>
  +  </body>
  +</html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/anotherphoto.rvt
  
  Index: anotherphoto.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Chipmunk</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Almost there...</h1>" ?>
  
      <p align="center">
        <img src="chipmunk2.jpg" alt="Chipmunk in Oregon Cascades" align="middle">
      </p>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/apache1.rvt
  
  Index: apache1.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>The Apache Web Server</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>The Apache Web Server</h1>" ?>
  
      <ul>
        <li>The world's most popular web server!</li>
  
        <li>According to <a href="http://www.netcraft.com">netcraft</a>,
  	Apache accounts for around 60% of the web server market, putting
  	it ahead of all other contenders combined.</li>
  
        <li>
  	Apache is:
  	<ul>
  	  <li>flexible - can be configured to perform a variety of
  	  tasks in disparate environments.</li>
  	  <li>fast - quite competetive with other systems.</li>
  	  <li>correct - standards compliant, part of standards committees.</li>
  	  <li>secure - well tested, well known code.</li>
  	</ul>
        </li>
      </ul>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/apache2.rvt
  
  Index: apache2.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>About Apache</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>About Apache</h1>" ?>
      <p>
        The Apache web server was first created by a group of sysadmins
        who were using the NCSA server and had created patches to enhance
        and improve it.  Thus, "A Patchy" web server.
      </p>
      <p>
        The Apache Software Foundation now encompasses a large variety
        of diverse projects in addition to Tcl: the web server, XML,
        Java, Perl, PHP, APR, Python, and is a non-profit corporation
        registered in the U.S., with members throughout the world.
      </p>
      <p>
        The ASF consists of 60-some members, and hundreds of
        "committers" - those who have the rights to make changes to
        different projects' code.
      </p>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/apache_tcl.rvt
  
  Index: apache_tcl.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Apache Tcl</h1>" ?>
  
      <p>
        Our projects aren't just related by the fact that we all use Tcl
        - the Apache Tcl projects share a common philosophy that "simple
        things should be easy, and hard things should be possible" (to
        borrow a quote - it works well for them!).  We all arrived at
        Tcl not because it's the only tool in our box, but because for
        us it is the right tool.
      </p>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/apachec.rvt
  
  Index: apachec.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache C Highlights</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Apache C Highlights</h1>" ?>
  
      <p>
        Apache's C API is quite extensive, and merits one or more talks
        of its own, but here are a few things we have found particularly
        useful.  A big thanks to all the httpd developers!
      </p>
  
      <ul>
        <li>pools
  	<ul>
  	  <li>A memory management system that simplifies life a
  	  lot for the module author!</li>
  	</ul>
        </li>
        <li>apreq
  	<ul>
  	  <li>good system for dealing with user-supplied data -
  	  cookies, GET and POST variables, etc...</li>
  	</ul>
        </li>
        <li>apxs
  	<ul>
  	  <li>Useful for building extensions - gives you the compile
  	  options you need to find and use the same build environment
  	  as Apache.</li>
  	</ul>
        </li>
      </ul>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/asf.rvt
  
  Index: asf.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Apache Tcl</h1>" ?>
  
      <ul>
        <li>Apache Tcl was officially launched early in 2001, as an Apache
  	Software Foundation project, with David Welton as the "Vice
  	President".  It now includes 5 different projects and 7
  	developers.</li>
  
        <li>All the projects are run as "Free Software" or "Open Source"
  	projects - they are a meritocracy.  Anyone is welcome to help out,
  	and efforts of all kinds are appreciated.
        </li>
  
        <li>
  	How does one get involved? It's easy - read the mailing lists,
  	learn about what needs doing, and then start working.  When
  	you are recognized as having made significant contributions,
  	you get write access in the CVS repository.  After sustained
  	and important contributions, you may then become a member of
  	the ASF.
        </li>
      </ul>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/bored.rvt
  
  Index: bored.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Bored Yet?</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Bored Yet?</h1>" ?>
  
      <p align="center">
        <img src="clouds1.jpg" alt="Clouds in Padova" align="middle">
      </p>
      <p align="center" style="font-size:smaller">
        Piazza delle Erbe, Padova, Italia
      </p>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/conclusion.rvt
  
  Index: conclusion.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Conclusion</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Conclusion</h1>" ?>
  
      <p>Thanks for listening!</p>
  
      <p>More information is available here:
      </p>
      <ul>
        <li><a href="http://tcl.apache.org">http://tcl.apache.org</a></li>
        <li><a href="http://www.tcl.tk">http://www.tcl.tk</a></li>
      </ul>
      <p>I can be reached at <a
  	href="mailto:davidw@dedasys.com">davidw@dedasys.com</a> -
  	please feel free to write.</p>
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/current_products.rvt
  
  Index: current_products.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title></title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Current Offerings</h1>" ?>
  
      The "Apache Tcl Project" is currently comprised of 5 individual
      projects, and is moving towards having 3, or less, in the future.
  
      <p align="center">
        <img src="future.gif" alt="">
      </p>
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/end.rvt
  
  Index: end.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>The End</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>The End</h1>" ?>
  
      <p align="center">
        <img src="colli_e_campi.jpg" alt="Colli e Campi">
      </p>
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/examples.rvt
  
  Index: examples.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Example Tcl Code</title>
      <link rel="stylesheet" href="style.css">
      <script language="javascript" type="text/javascript">
        function MouseOn(el) {
        el.OldBG = el.style.getPropertyValue("background-color");
        el.OldColor = el.style.getPropertyValue("color");
        el.style.setProperty("background-color", '#ffffff', "");
        el.style.setProperty("color", '#000000', "");
        }
        function MouseOff(el) {
        el.style.setProperty("color", el.OldColor, "");
        el.style.setProperty("background-color", el.OldBG, "");
        }
      </script>
    </head>
  
    <body>
      <? prevnext "<h1>Example Tcl Code</h1>" ?>
  
  <?
  
  proc dospan {txt} {
      return [format {<span onmouseover="MouseOn(this)" onmouseout="MouseOff(this)">%s</span>} $txt]
  }
  
  proc pdospan {txt} {
      puts -nonewline [dospan $txt]
  }
  
  set Code {
  if { [var exists customerid] } {
      array set customer [get_customer_info $customerid]
      puts "Welcome, Mr. $customer(Surname)"
  } else {
      puts "Hi, would you like to register a new account?"
  }
  }
  
  puts "<hr>"
  foreach el $Code {
      if {[llength $el] > 1} {
  	set el [string map {\n <br> " " &nbsp;} $el]
  	puts [dospan "{ $el }"]
      } else {
  	puts "[dospan $el]"
      }
  }
  puts "<hr>"
  
  ?>
  
  
      So, Dave, show us the code...
  
  <b>
  
  <pre>
  <? pdospan {if { [var exists customerid] }} ?> {
      array set customer <? pdospan {[get_customer_info $customerid]} ?>
      puts "Welcome, Mr. <? pdospan {$customer(Surname)} ?>"
  } else {
      puts "Hi, would you like to register a new account?"
  }
  </pre>
  </b>
  
  Simple enough!
  
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/goodlanguage.rvt
  
  Index: goodlanguage.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title></title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Good Languages...</h1>" ?>
  
      <p>
        Tcl handles complexity just fine.  The standard Tcl library,
        tcllib has code to let you create and manage, easily, a variety
        of data structures.  Tcl is so flexible, that object orientation
        comes from a loadable package!
      </p>
  
      <p>
        There are Tcl extensions to do the things that you need to do to
        get your job done.
      </p>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/index.rvt
  
  Index: index.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body class="splash">
      <? prevnext {<h1 align="center" class="splash">Apache Tcl</h1>} ?>
  
      <h2 align="center" class="splash">David N. Welton</h2>
      <p align="center">
        <a href="mailto:davidw@apache.org">davidw@apache.org</a>
      </p>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/initialization.rvt
  
  Index: initialization.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Initialization</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Initialization</h1>" ?>
  
      <ul>
        <li>Apache configuration directives.<br>
  	Rivet provides a variety of Apache configuration directives to
  	enable the user to run code at a variety of points in Apache's
  	life cycle.
  	<ul>
  	  <li>Global Init and Exit</li>
  	  <li>Child Init and Exit</li>
  
  	  <li>"Before" and "After" scripts to run before and after
  	  pages</li>
  	</ul>
        </li>
        <li>Multiple interpreters for different virtual hosts.</li>
        <li>File upload control</li>
      </ul>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/integration.rvt
  
  Index: integration.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Integrating Apache and Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Integrating Apache and Tcl</h1>" ?>
  
      <p>
        Both Apache and Tcl have C API's that provide the programmer
        with low-level access to a large amount of the two systems'
        functionality.  They are both a pleasure to work with, and
        linking them up has been a lot of fun!  Specific examples from
        Rivet follow.
      </p>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/integration2.rvt
  
  Index: integration2.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Integration Information</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Integration Information</h1>" ?>
  
      <p>
        With all of these API's to work with, uniting them has been both
        very pleasant, and not all that difficult.  In all the Rivet .c
        and .h files, there are around 5500 lines, total.  Not bad,
        considering Tcl is 150K lines, and Apache 1.3 is around 120K!
      </p>
  
      <p>
        The ability to leverage so much power - linking together two
        different, flexible, multipurpose systems - is a testament to
        the strength and adaptability of both Tcl and Apache.
      </p>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/intro.rvt
  
  Index: intro.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Introduction</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Apache Tcl Introduction</h1>" ?>
  
      Apache Tcl is, of course, the name for the projects which have the
      Apache web server and Tcl language in common, but more than that, we
      have all arrived at this junction between Apache and Tcl because we
      have found it to be the optimal solution.
  
      <p align="center"><img src="prato.jpg" alt="Prato della Valle"></p>
  
      <? footer ?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/list.rvt
  
  Index: list.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body class="splash">
      <? prevnext {<h1 align="center" class="splash">Apache Tcl</h1>} ?>
  
      <? makeindex ?>
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/mod_dtcl.rvt
  
  Index: mod_dtcl.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>mod_dtcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>mod_dtcl</h1>" ?>
  
      <ul>
        <li>Created in 1998 - one of the first open source Tcl/Web
        products.</li>
        <li>Apache Tcl created in late 2000.</li>
        <li>To be replaced by Rivet</li>
        <li>
  	Design goals:
  	<ul>
  	  <li>Fast</li>
  	  <li>Light</li>
  	  <li>Simple</li>
  	  <li>Incorporate the good ideas of PHP</li>
  	</ul>
        </li>
      </ul>
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/mod_tcl.rvt
  
  Index: mod_tcl.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>mod_tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>mod_tcl</h1>" ?>
  
      mod_tcl was created by Michael Link, for Apache 2.0, with the goal
      of exposing the Apache API in Tcl, in order to make it possible to
      write Apache modules in Tcl.
  
      <ul>
        <li>
  	Design goals:
  	<ul>
  	  <li>Complete Tcl and Apache integration</li>
  	  <li>Apache 2.0</li>
  	</ul>
        </li>
  
        <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/moreexamples.rvt
  
  Index: moreexamples.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Another Example</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Another Example</h1>" ?>
  
  <PRE>
  <B><FONT COLOR="#A020F0">proc</FONT></B> <B><FONT COLOR="#0000FF">greeting</FONT></B> {<FONT COLOR="#B8860B"></FONT>} {
      <B><FONT COLOR="#A020F0">switch</FONT></B> $<FONT COLOR="#B8860B">HTTP_ACCEPT_LANGUAGE</FONT> {
  	en {
  	    <B><FONT COLOR="#A020F0">return</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Hello, how is it going?&quot;</FONT></B>
  	}
  	it {
  	    <B><FONT COLOR="#A020F0">return</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Buon giorno, come va?&quot;</FONT></B>
  	}
  	fr {
  	    <B><FONT COLOR="#A020F0">return</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Bonjour, comment &ccedil;a va?&quot;</FONT></B>
  	}
  	de {
  	    <B><FONT COLOR="#A020F0">return</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Guten Tag, wie geht's?&quot;</FONT></B>
  	}
  	zt {
  	    <B><FONT COLOR="#A020F0">return</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;Gr&uuml;ezi, wi gaat's?&quot;</FONT></B>
  	}
      }
  }
  
  <B><FONT COLOR="#A020F0">puts</FONT></B> [greeting]</PRE>
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/neowebscript.rvt
  
  Index: neowebscript.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>NeoWebScript</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>NeoWebScript</h1>" ?>
  
      NeoWebScript was created by Karl Lehenbauer.  NeoWebScript is
      maintained by Damon Courtney.  NWS, as it's known, became part of
      the Apache Tcl project in early 2001, after having been released
      as Free Software.
  
      <ul>
        <li>
  	Design goals:
  	<ul>
  	  <li>Sandbox environment - good for multi-user
  	    environments</li>
  
  	  <li>Simple</li>
  
  	  <li>Extensions built in</li>
  	</ul>
        </li>
  
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/otherproducts.rvt
  
  Index: otherproducts.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Other Tcl/Web Products</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Other Tcl/Web Products</h1>" ?>
  
      <ul>
        <li>Vignette Storyserver - created by CNET, drives a lot of
        high-profile sites.  Non-Free.</li>
  
        <li>tclhttpd - small, light server written completely in Tcl.
        Extensible, portable, very flexible.</li>
  
        <li>AOLserver - Complete, integrated, system.  Now Free
  	Software!
        </li>
  
      </ul>
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/ousterhout.rvt
  
  Index: ousterhout.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>The Reasoning Behind Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>The Reasoning Behind Tcl</h1>" ?>
      <p>
        The original idea behind Tcl is still very valid today: powerful
        applications can be made much more so by letting the user access
        parts of them programmatically.  One-off languages are best
        replaced by a more general solution.  The answer: a reusable
        library that provides a scripting language.
      </p>
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/outputproc.rvt
  
  Index: outputproc.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Channel output proc</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Channel output proc</h1>" ?>
  
      <p>A small example of the junction where Tcl and Apache meet.</p>
  
      <pre>
  static int
  outputproc(ClientData instancedata, char *buf,
             int toWrite, int *errorCodePtr)
  {
      rivet_server_conf *rsc = (rivet_server_conf *)instancedata;
      rivet_interp_globals *globals =
  	Tcl_GetAssocData(rsc->server_interp, "rivet", NULL);
  
      TclWeb_PrintHeaders(globals->req);
      if (globals->req->content_sent == 0)
      {
  	ap_rwrite(buf, toWrite, globals->r);
  	ap_rflush(globals->r);
      }
      return toWrite;
  }
      </pre>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/rivet.rvt
  
  Index: rivet.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache Rivet</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Apache Rivet</h1>" ?>
  
      The most recent of the Apache Tcl projects, Rivet is the evolution
      of mod_dtcl and NeoWebScript, together, being worked on by David
      Welton and Damon Courtney.
  
      <ul>
        <li>
  	Design goals:
  	<ul>
  	  <li>Fast</li>
  	  <li>Light</li>
  	  <li>Simple</li>
  	  <li>Powerful</li>
  	  <li>Extensions available</li>
  	  <li>Take advantage of Tcl and Apache features</li>
  	</ul>
        </li>
  
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/rivetexample2.rvt
  
  Index: rivetexample2.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Rivet Example 2</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Rivet Example 2</h1>" ?>
  
      <p>
        An example where the HTML serves to define the look and feel of
        the page, and the content is controlled via Tcl tags.
      </p>
      <table style="width:100%" frame="box" rules="all" align="left">
        <tbody>
  	<tr>
  	  <td align="left">
  	    <pre>
  &lt;table style="font-size:30%"&gt;
    &lt;tbody&gt;
      &lt;tr&gt;
        &lt;? top "Header" ?&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td style="width:30%"&gt;
  	&lt;? navbar ?&gt;
        &lt;/td&gt;
        &lt;td&gt;
  	&lt;? login ?&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/table&gt;
  	    </pre>
  	  </td>
  
  	  <td align="center">
  	    <table style="font-size:30%">
  	      <tbody>
  		<tr>
  		  <td style="background-color:#ffaaaa" colspan="2" align="center">Header</td>
  		</tr>
  		<tr>
  		  <td style="width:30% ; background-color:#aaaaff">
  		    <p>nav1</p>
  		    <p>nav2</p>
  		    <p>nav3</p>
  		    <p>nav4</p>
  		  </td>
  		  <td style="background-color:#aaaaaa">
  		    <form action="">
  		      Login: <input size="10"><br>
  		      Password: <input size="7">
  		    </form>
  		  </td>
  		</tr>
  	      </tbody>
  	    </table>
  	  </td>
  
  	</tr>
        </tbody>
      </table>
  
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/servingpages.rvt
  
  Index: servingpages.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>How Rivet Serves Pages</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>How Rivet Serves Pages</h1>" ?>
      <ul>
        <li>Reentrant parser
  	<ul>
  	  <li>Transforms HTML chunks into <b><tt>puts</tt></b>
  	  statements, and leaves Tcl code alone.</li>
  	  <li>Can be called from scripts to load other pages.</li>
  	</ul>
        </li>
        <li>Cacheing system
  	<ul>
  	  <li>Configurable</li>
  	  <li>Stores byte-compiled pages</li>
  	</ul>
        </li>
      </ul>
  
      <p align="center">
        <img src="requestflow.gif" alt="">
      </p>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/strategies.rvt
  
  Index: strategies.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Strategies</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Strategies</h1>" ?>
  
      <ul>
        <li>Quick and Dirty<br>
  	Not good, but sometimes you just need to get it done.
        </li>
        <li>Seperate content from presentation <br> Make simple
  	procedures to include in HTML, and keep complex logic
  	elsewhere.  Make 'dispatch' pages that call other pages.
        </li>
      </ul>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/survey.rvt
  
  Index: survey.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Do you use Tcl?</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Do you use Tcl?</h1>" ?>
  
      <form action="survey2.rvt">
        <input type="hidden" name="index" value=<? puts $::index ?>>
        <table>
  	<tbody>
  	  <tr>
  	    <td>How many people use Tcl?</td>
  	    <td><input type="text" name="TclUsers"></td>
  	  </tr>
  	  <tr>
  	    <td>How many people are there?</td>
  	    <td><input type="text" name="Total"></td>
  	  </tr>
  	</tbody>
        </table>
  
        <p align="center">
  	<input type="submit" name="Submit">
        </p>
  
      </form>
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/survey2.rvt
  
  Index: survey2.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl Users</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <?
  prevnext "<h1>Tcl Users</h1>"
  
  if { [var exists TclUsers] } {
      set TclUsers [var get TclUsers]
  } else {
      set TclUsers 1
  }
  
  if { [var exists Total] } {
      set Total [var get Total]
  } else {
      set Total 1
  }
  
  if { $TclUsers > $Total } {
      set Total $TclUsers
  }
  
  puts "There are $TclUsers Tcl users and $Total
      people in attendance, give or take a few."
  
      ?>
  
      <p></p>
  
      <table width="%100" border="0" cellspacing="0">
        <tbody>
  	<tr>
  <?
  
  set i 0
  while { $i < $TclUsers } {
      puts {<td bgcolor="red">&nbsp;</td>}
      incr i
  }
  while {$i < $Total } {
      puts {<td bgcolor="blue">&nbsp;</td>}
      incr i
  }
  
  ?>
  	</tr>
        </tbody>
      </table>
  
      <table width="%100">
        <tbody>
  	<tr>
  	  <td align="left">%0</td>
  	  <td align="right">%100</td>
  	</tr>
        </tbody>
      </table>
  
  <!--      <img src="graph.tcl?TclUsers=<? puts -nonewline $TclUsers ?>&Total=<? puts -nonewline $Total ?>" alt="Pie Chart"> -->
  
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/systems.rvt
  
  Index: systems.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache Tcl Products</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Apache Tcl Products</h1>" ?>
  
      <ul>
        <li>mod_dtcl</li>
        <li>mod_tcl</li>
        <li>NeoWebScript</li>
        <li>WebSH</li>
        <li>Apache Rivet</li>
      </ul>
  
      All free software covered by the Apache Software Foundation license.
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tcl1.rvt
  
  Index: tcl1.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl</h1>" ?>
  
      <p>
        Tcl stands for "Tool Command Language".  It was created in the
        late 80'ies, by John Ousterhout, then a professor at the
        University of California at Berkeley, as a replacement for the
        many small extension languages he was writing for his
        applications.  From the very beginning, Tcl was engineered to be
        combined with other systems.
      </p>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclchannels.rvt
  
  Index: tclchannels.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl Channels</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl Channels</h1>" ?>
  
      <p>
        This feature is especially interesting.  Tcl channels let us use
        regular Tcl 'stdout' channel from scripts, instead of using a
        special command!  Channels support Close, Input, Output, Seek,
        Set and Get Option, GetHandle, Block, Flush, and EventHandler
        functions.
      </p>
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclcoverview.rvt
  
  Index: tclcoverview.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Overview of Tcl C Features</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Overview of Tcl C Features</h1>" ?>
  
      <table style="font-size: 40%;">
        <tbody>
  	<tr valign="top">
  	  <td>
  	    <ul>
  	      <li>Variables
  		<ul>
  		  <li>From C</li>
  		  <li>To C</li>
  		  <li>Tie Tcl variable to C variable</li>
  		  <li>Trace variables</li>
  		</ul>
  	      </li>
  	    </ul>
  
  	    <ul><li>Interpreters
  		<ul>
  		  <li>Seperate interpreters</li>
  		  <li>Slave interpreters/shared resources</li></ul>
  	      </li></ul>
  
  	    <ul><li>Threads
  		<ul>
  		  <li>Create/Destroy</li>
  		  <li>Associate data</li></ul>
  	      </li></ul>
  
  
  	  </td>
  	  <td>
  	    <ul><li>IO/Channels
  		<ul>
  		  <li>Create new channel types</li>
  		  <li>Stacked channels</li>
  		  <li>Buffering</li>
  		  <li>Asyncronous</li></ul>
  	      </li>
  	    </ul>
  
  	    <ul><li>Event Loop
  		<ul>
  		  <li>Associate events with actions</li>
  		  <li>Idle events</li></ul>
  	      </li></ul>
  
  	    <ul><li>Operating System Interaction
  		<ul>
  		  <li>Filesystem</li>
  		  <li>Processes</li></ul>
  	      </li></ul>
  
  	  </td>
  
  	  <td>
  	    <ul><li>Timers
  		<ul>
  		  <li>Schedule events</li></ul>
  	      </li></ul>
  	    <ul><li>Commands
  		<ul>
  		  <li>Create commands</li></ul>
  	      </li></ul>
  	    <ul><li>Hash Tables
  		<ul>
  		  <li>Create and use hash tables at the C level</li></ul>
  	      </li></ul>
  	    <ul>
  	      <li>Internationalization
  		<ul>
  		  <li>Translate to/from different character sets</li>
  		</ul>
  	      </li>
  	    </ul>
  	  </td>
  	</tr>
        </tbody>
      </table>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclexample1.rvt
  
  Index: tclexample1.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Examples</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Examples</h1>" ?>
  
      <pre>
  set seconds [clock seconds]
  puts "The time is [clock format $seconds]"
  
  proc greeting {lang} {
      switch $lang {
  	en {
  	    return "Hello, how is it going?"
  	}
  	it {
  	    return "Buon giorno, come va?"
  	}
  	fr {
  	    return "Bonjour, .......?"
  	}
  	de {
  	    return "Guten Tag, wie gehts?"
  	}
  	zt {
  	    return "Gr&uuml;ezi, wi gaat's?"
  	}
      }
  }
      </pre>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclfeatures.rvt
  
  Index: tclfeatures.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl Overview</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl Overview</h1>" ?>
  
      <ul>
        <li>Easy, Flexible
  	<ul>
  	  <li>Tcl is easy to learn, it has a very simple syntax.  It's
  	  also very flexible, allowing you to mold it to your needs.
  	  </li>
  	</ul>
        </li>
        <li>Extensible, Embeddable
  	<ul>
  	  <li>
  	    You can extend Tcl in many ways, both in Tcl and in C, or
  	    embed it directly in your applications.
  	  </li>
  	</ul>
        </li>
        <li>Powerful, Lightweight
  	<ul>
  	  <li>Tcl does many things, easily, and has a small core.</li>
  	</ul>
        </li>
        <li>Multiplatform, Free
  	<ul>
  	  <li>Tcl runs on UNIX, Windows and Mac OS. Tcl is distributed under a BSD license.</li>
  	</ul>
        </li>
        <li>Tk toolkit
  	<ul>
  	  <li>Seperate from Tcl, althought it was also developed by
  	  Ousterhout, and very well integrated with Tcl.</li>
  	</ul>
        </li>
      </ul>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tcloverview.rvt
  
  Index: tcloverview.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl Overview</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl Overview</h1>" ?>
  
      <ul>
        <li>Easy, Flexible
  	<ul>
  	  <li>Tcl is easy to learn, it has a very simple syntax.  It's
  	  also very flexible, allowing you to mold it to your needs.
  	  </li>
  	</ul>
        </li>
        <li>Extensible, Embeddable
  	<ul>
  	  <li>
  	    You can extend Tcl in many ways, both in Tcl and in C, or
  	    embed it directly in your applications.
  	  </li>
  	</ul>
        </li>
        <li>Powerful, Lightweight
  	<ul>
  	  <li>Tcl does many things, easily, and has a small core.</li>
  	</ul>
        </li>
        <li>Multiplatform, Free
  	<ul>
  	  <li>Tcl runs on UNIX, Windows and Mac OS. Tcl is distributed under a BSD license.</li>
  	</ul>
        </li>
      </ul>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclweb.rvt
  
  Index: tclweb.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl and the Web</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl and the Web</h1>" ?>
  
      <p>
        The web (and XML, for that matter) is primarily text oriented,
        so a language that's good at dealing with text is well suited to
        the web, and much, much faster to develop with than a low-level
        language like C.
      </p>
  
      <p>
        There are a lot of people out there who just want to create
        simple dynamic web pages.  A good language should accomodate
        them, as well as more experienced programmers.
      </p>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclweb1.rvt
  
  Index: tclweb1.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl and the Web</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl and the Web</h1>" ?>
      <p align="center">
        Question: why should I use Tcl on the web?
      </p>
      <p align="center">
      Answer #1: the web is text.
      </p>
      <ul>
        <li>Everything that goes into a web page is text.</li>
        <li>Almost everything that comes out is text.</li>
        <li>So it would make sense to use a language that's good with
        text.</li>
        <li>Scripting languages are good at text processing.</li>
      </ul>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclweb2.rvt
  
  Index: tclweb2.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl and the Web</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl and the Web</h1>" ?>
      <p>
        I don't just want to do simple things!  Don't I need a "real"
        language?
      </p>
      <p>
        No - Tcl handles complexity well.
      </p>
      <ul>
        <li>Data structures - graphs, trees, queues, stacks...</li>
        <li>Object oriented programming.  The most common OO system is
        [incr Tcl]</li>
        <li>Support for different programming styles, and
        abstraction.</li>
        <li>Easy to combine with C.</li>
      </ul>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclweb3.rvt
  
  Index: tclweb3.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl and the Web</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl and the Web</h1>" ?>
  
      <p>
        Tcl is easy to learn, yet quite powerful.
      </p>
  
      <p>
        If you just want to make a simple site, or if you have
        inexperienced programmers working, ease of use is a very
        positive aspect of Tcl.  New users can get up to speed quickly,
        and be doing useful work in no time.
      </p>
      <p>
        If you have a very complex, database driven site, Tcl is able to
        handle it with no problems.  Remember - it's not just a language
        for web sites, so it's generic and modular enough to work for
        large, complex programs.
      </p>
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclweb4.rvt
  
  Index: tclweb4.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl Libraries and Extensions</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl Libraries and Extensions</h1>" ?>
  
      <p>A good language is important, but if you are trying to do
      something in a hurry, you need good libraries (any Scheme fans
      here?).</p>
  
      <p>
        Tcl has a lot of code available!  And what's more, you can use
        it with your web-based programs (XML, database access, image
        libraries), but you can then take the same code, and use it
        elsewhere.
      </p>
  
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/tclwebhistory.rvt
  
  Index: tclwebhistory.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Since the Beginning</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Since the Beginning</h1>" ?>
  
      <p>
        Tcl has been used for advanced web content systems since 1995!
        AOLserver (now Free Software) and Vignette's Storyserver were
        created "back in the day".  Both were (and are) a mixture of C
        and Tcl code, as opposed to the simple CGI systems that were
        common at the time.
      </p>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/template.rvt
  
  Index: template.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title></title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1></h1>" ?>
  
      <?footer?>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/apache-tcl/websh.rvt
  
  Index: websh.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>WebSH</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>WebSH</h1>" ?>
  
      WebSH was born in 1995 as a C++ library incorporating a Tcl
      interpreter, and gradually migrated to being a Tcl extension.  It
      became Free Software in 2000, and was contributed to the ASF in
      2001.  Andrej Vckovski was the original author, with major work
      done by Ronnie Brunner (WebSH 2) and Simon Hefti (WebSH 3).
  
      <ul>
        <li>Design Goals:
  	<ul>
  	  <li>Rapid Application Development using Tcl</li>
  	  <li>Provide complete Web Application Environment</li>
  	  <li>Independant of Apache (it also works as a CGI)</li>
  	</ul>
        </li>
      </ul>
  
    <?footer?>
  </body>
  </html>
  
  
  
  1.2       +1 -1      tcl-site/presentations/dtcl/.htaccess
  
  Index: .htaccess
  ===================================================================
  RCS file: /home/cvs/tcl-site/presentations/dtcl/.htaccess,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- .htaccess	9 Dec 2001 16:02:34 -0000	1.1
  +++ .htaccess	28 May 2003 09:17:24 -0000	1.2
  @@ -1,3 +1,3 @@
  -Dtcl_Script BeforeScript "source [file join [pwd] common.tcl]"
  +RivetUserConf BeforeScript "source [file join [pwd] common.tcl]"
   
   
  
  
  
  1.3       +4 -5      tcl-site/presentations/dtcl/common.tcl
  
  Index: common.tcl
  ===================================================================
  RCS file: /home/cvs/tcl-site/presentations/dtcl/common.tcl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- common.tcl	9 Dec 2001 16:13:53 -0000	1.2
  +++ common.tcl	28 May 2003 09:17:24 -0000	1.3
  @@ -8,27 +8,26 @@
   	foreach ln $data {
   	    lappend ret [string trim $ln]
   	}
  -	
  +
   	return $ret
       }
   
       proc ::nexturl { } {
  -	return "[lindex $::urls $::next].ttml?index=$::next"
  +	return "[lindex $::urls $::next].rvt?index=$::next"
       }
   
       proc ::prevurl { } {
  -	return "[lindex $::urls $::prev].ttml?index=$::prev"
  +	return "[lindex $::urls $::prev].rvt?index=$::prev"
       }
   
       proc ::prevnext { title } {
  -	hgetvars
   	set ::urls [getorder]
   	if { [var exists index] } {
   	    set ::index [var get index]
   	} else {
   	    set ::index 0
   	}
  -	
  +
   	set ::next [expr $::index + 1]
   	set ::prev [expr $::index - 1]
   	if { $::next >= [llength $::urls] } {
  
  
  
  1.1                  tcl-site/presentations/dtcl/advantages.rvt
  
  Index: advantages.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Advantages</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Advantages</h1>" ?>
  
      <ul>
        <li>Avoid reinventing the wheel!</li>
        <li>Lots of existing Tcl code.</li>
        <li>Use code both for web projects, and elsewhere.</li>
        <li>Lightweight.</li>
        <li>Easy to use.</li>
        <li>Fast!</li>
      </ul>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/cacheing.rvt
  
  Index: cacheing.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Cacheing</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Cacheing</h1>" ?>
  
      When a .ttml page is first loaded, the byte-compiled Tcl code is
      inserted into a cache, so that the next time the page is hit, it
      is not necessary to recompile the code, or even open the file
      again.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/cgi.rvt
  
  Index: cgi.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>CGI</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>CGI</h1>" ?>
  
      CGI is a bit dated, and is inefficient, unless the process being
      run is so heavy as to make the overhead of running it seem
      insignificant.  Should it be your only option, it should be noted
      that Don Libes' <code>cgi.tcl</code> is a great CGI package for
      Tcl.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/channel.rvt
  
  Index: channel.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Apache IO Channel</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Apache IO Channel</h1>" ?>
  
      When creating mod_dtcl, it was considered desirable to be able to
      run normal Tcl scripts with as little modifications as possible.
      In order to deal with standard output, mod_dtcl uses an in-memory
      file channel that then uses Apache's output functions.  'puts
      "foobar"' works in mod_dtcl.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/comparisons.rvt
  
  Index: comparisons.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Comparisons with other systems</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Comparisons with other systems</h1>" ?>
  
      Flame war!
  
      <ul>
        <LI>CGI</LI>
        <LI>PHP</LI>
        <li>mod_perl</li>
        <Li>Zope</Li>
        <Li>Java</Li>
        <li>Other Tcl solutions</li>
      </ul>
      
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/conclusion.rvt
  
  Index: conclusion.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Conclusion</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Conclusion</h1>" ?>
  
      Tcl is an excellent language for the web.  As a generalized,
      embeddable "command language", it is a natural for the web, giving
      the user a powerful language with years of history and many
      capabilities, in an environment tuned for use with the web.
  
      <h2 align="center">Links</h2>
  
      <table align="center" width="80%">
        <tbody>
  	<tr>
  	  <th align="left">mod_dtcl:</th>
  	  <td align="right"><a href="http://tcl.apache.org/mod_dtcl/">http://tcl.apache.org/mod_dtcl/</a></td>
  	</tr>
  	<tr>
  	  <th align="left">Apache Tcl:</th>
  	  <td align="right"><a href="http://tcl.apache.org/">http://tcl.apache.org/</a></td>
  	</tr>
  	<tr>
  	  <th align="left">Tcl Web Site:</th>
  	  <td align="right"><a href="http://www.tcl.tk/">http://www.tcl.tk/</a></td>
  	</tr>
  	<tr>
  	  <th align="left">Presentation:</th>
  	  <td align="right"><a href="http://tcl.apache.org/presentations/tcl/">http://tcl.apache.org/presentations/dtcl/</a></td>
  	</tr>
  	<tr>
  	  <th align="left">David N. Welton:</th>
  	  <td align="right"><a href="mailto:davidw@dedasys.com">davidw@dedasys.com</a></td>
  	</tr>
        </tbody>
      </table>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/example1.rvt
  
  Index: example1.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Example</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Example</h1>" ?>
  
  <PRE>
    
    <B><FONT COLOR="#A020F0">&lt;h1&gt;</FONT></B>Some HTML<B><FONT COLOR="#A020F0">&lt;/h1&gt;</FONT></B>
    <B><FONT COLOR="#A020F0">&lt;?
    hputs </FONT></B><B><FONT COLOR="#BC8F8F">&quot;hello world&quot;</FONT></B><B><FONT COLOR="#A020F0">
    ?&gt;</FONT></B>
    
    <B><FONT COLOR="#A020F0">&lt;? if { $foo == 1 } { ?&gt;</FONT></B>
    More Html
    ...
    <B><FONT COLOR="#A020F0">&lt;? } ?&gt;</FONT></B>
    ...
  </PRE>
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/example2.rvt
  
  Index: example2.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Another Example</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Another Example</h1>" ?>
  
  <PRE>
    &lt;?
    <B><FONT COLOR="#A020F0">set</FONT></B> i 1
    puts <B><FONT COLOR="#BC8F8F">&quot;&lt;table&gt;&quot;</FONT></B>
    
    <B><FONT COLOR="#A020F0">while</FONT></B> { $<FONT COLOR="#B8860B">i</FONT> &lt;= 8 } {
        puts <B><FONT COLOR="#BC8F8F">&quot;&lt;tr&gt;&quot;</FONT></B>
        <B><FONT COLOR="#A020F0">for</FONT></B> {<B><FONT COLOR="#A020F0">set</FONT></B> j 1} {$<FONT COLOR="#B8860B">j</FONT> &lt;= 8} {<B><FONT COLOR="#A020F0">incr</FONT></B> j} {
            <B><FONT COLOR="#A020F0">set</FONT></B> num [ <B><FONT COLOR="#A020F0">expr</FONT></B> {$<FONT COLOR="#B8860B">i</FONT> * $<FONT COLOR="#B8860B">j</FONT> * 4 - 1} ]
            puts [ <B><FONT COLOR="#A020F0">format</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;&lt;td bgcolor=%2x%2x%2x &gt; $num $num $num &lt;/td&gt;&quot;</FONT></B> \
                            $<FONT COLOR="#B8860B">num</FONT> $<FONT COLOR="#B8860B">num</FONT> $<FONT COLOR="#B8860B">num</FONT> ]
        }
        <B><FONT COLOR="#A020F0">incr</FONT></B> i
        puts <B><FONT COLOR="#BC8F8F">&quot;&lt;/tr&gt;&quot;</FONT></B>
    }
  
    puts <B><FONT COLOR="#BC8F8F">&quot;&lt;/table&gt;&quot;</FONT></B>
    ?&gt;
  </PRE>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/future.rvt
  
  Index: future.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>The Future</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>The Future</h1>" ?>
  
      <ul>
        <li>mod_tcl
  	<ul>
  	  <li>
  	    mod_tcl is the Tcl equivalent of mod_perl - it gives us
  	    access to the Apache API through Tcl.  It is currently
  	    available for Apache 2.0.
  	  </li>
  	</ul>
        </li>
        <li>Apache Rivet
  	<ul>
  	  <li>Apache Rivet is a descendant of mod_dtcl and
  	  NeoWebscript, and an attempt to combine the best of both,
  	  and leave behind some extra baggage.</li>
  	</ul>
        </li>
      </ul>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/how.rvt
  
  Index: how.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>How does it work?</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>How does it work?</h1>" ?>
  
      <ul>
        <li>Embedded Tcl interpreter.</li>
        <li>Pages run in separate namespaces.</li>
        <li>Cached byte-compiled scripts.</li>
        <li>Memory IO channel / cached output.</li>
        <li>HTML/Tcl integration.</li>
      </ul>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/htmltcl.rvt
  
  Index: htmltcl.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Mixing HTML and Tcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>HTML and Tcl</h1>" ?>
  
      Tcl and HTML can be mixed as much as is necessary.  The mod_dtcl
      parser replaces sections of HTML as "hputs" statements.  This lets
      you put bits of HTML in the middle of loops, in conditional
      statements, and so on.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/index.rvt
  
  Index: index.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>mod_dtcl</title>
      <link rel="stylesheet" href="style.css">
    </head>
    
    <body class="splash">
      <? prevnext {<h1 align="center" class="splash">Programming for the Web with Tcl</h1>} ?>
      
      <h2 align="center" class="splash">David N. Welton</h2>
      <p align="center">
        <a href="mailto:davidw@dedasys.com">davidw@dedasys.com</a>
      </p>
      
  
      <a></a>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/interpreter.rvt
  
  Index: interpreter.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl Interpreter</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl Interpreter</h1>" ?>
  
      One Tcl interpreter runs in each Apache process, and each .ttml
      file is run within a separate Tcl namespace.  This lets .ttml
      files share variables, if necessary, but makes it difficult for
      pages to interfere with one another.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/java.rvt
  
  Index: java.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Java</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Java</h1>" ?>
  
      Buzzwords galore!  
  
      Java isn't a higher level language.  Strings are what "goes into"
      and "comes out of" web pages, so why not use a language adept at
      dealing with them?  Java is harder to use, set up, and you may
      have licensing issues.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/mod_perl.rvt
  
  Index: mod_perl.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>mod_perl</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>mod_perl</h1>" ?>
  
      mod_perl takes a different approach - it lets you access all the
      functionality of Apache with Perl.  This makes it rather large,
      and at times difficult to install and use for simple things, like
      templates.  It is very powerful, but with this power comes a lot
      of complexity, and responsibility...
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/mod_tcl.rvt
  
  Index: mod_tcl.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title></title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1></h1>" ?>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/other.rvt
  
  Index: other.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Other</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Other Tcl Web Platforms</h1>" ?>
  
      AOLserver is a very nice package which demonstrates the power of
      Tcl.  It is impressive to think that it (along with the
      proprietary StoryServer) were created in 1995, when most people
      were using Perl CGI's.  It is a complete server from the ground
      up, and so doesn't ride on Apache.  NeoWebScript, by Karl
      Lehenbauer, is similar to mod_dtcl, but does a few things
      differently, and in the future will be merged with mod_dtcl as
      'Apache Rivet'.  WebSH is another web Tcl platform that deserves
      mention, as it has been used in commercial environments for some
      time.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/php.rvt
  
  Index: php.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>PHP</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>PHP</h1>" ?>
  
      PHP is the example that mod_dtcl follows, but has a big
      limitation: it only runs on the web!  It has a number of good
      features - it is small, light, reasonably fast, and is easy for
      non programmers to use.  However, it has the disadvantage of being
      originally created for one and only one use, making it difficult
      to use elsewhere.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/results.rvt
  
  Index: results.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Produces</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Produces...</h1>" ?>
  
      <?
  set i 1
  puts "<table>"
  
  while { $i <= 8 } {
      puts "<tr>"
      for {set j 1} {$j <= 8} {incr j} {
  	set num [ expr {$i * $j * 4 - 1} ]
  	puts [ format "<td bgcolor=%2x%2x%2x > $num $num $num </td>" \
  		$num $num $num ]
      }
      incr i
      puts "</tr>"
  }
  
  puts "</table>"
      ?>
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/rivet.rvt
  
  Index: rivet.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title></title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1></h1>" ?>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/smalllight.rvt
  
  Index: smalllight.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Small and light</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Small and light</h1>" ?>
  
      <ul>
        <li><code>ls -l mod_dtcl.so</code> is about 45K on a Linux PPC system.</li>
        <li><code>wc -l *.[ch]</code> is 3010 lines.</li>
        <li>Runtime Apache processes grow by about a meg with mod_dtcl, on a PPC Linux system.</li>
      </ul>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/template.rvt
  
  Index: template.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title></title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1></h1>" ?>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/what.rvt
  
  Index: what.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>What is it?</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>What is it?</h1>" ?>
  
      mod_dtcl integrates the Tcl scripting language with the Apache web
      server, so that it is possible to use Tcl for server-side web
      scripting.  It is similar to PHP, in functionality.
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/dtcl/zope.rvt
  
  Index: zope.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Zope</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Zope</h1>" ?>
  
      Zope is another large, and somewhat complex system.  It may work
      well for larger sites that need some of the order and structure it
      imposes, but it is difficult to compare to mod_dtcl, which is
      aimed at a different target.  It must be said, though, that Python
      is a nice language.
  
    </body>
  </html>
  
  
  
  1.2       +1 -1      tcl-site/presentations/tcl/.htaccess
  
  Index: .htaccess
  ===================================================================
  RCS file: /home/cvs/tcl-site/presentations/tcl/.htaccess,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- .htaccess	6 Dec 2001 11:30:50 -0000	1.1
  +++ .htaccess	28 May 2003 09:17:26 -0000	1.2
  @@ -1,3 +1,3 @@
  -Dtcl_Script BeforeScript "source [file join [pwd] common.tcl]"
  +RivetUserConf BeforeScript "source [file join [pwd] common.tcl]"
   
   
  
  
  
  1.3       +2 -3      tcl-site/presentations/tcl/common.tcl
  
  Index: common.tcl
  ===================================================================
  RCS file: /home/cvs/tcl-site/presentations/tcl/common.tcl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- common.tcl	9 Dec 2001 16:13:53 -0000	1.2
  +++ common.tcl	28 May 2003 09:17:26 -0000	1.3
  @@ -13,15 +13,14 @@
       }
   
       proc ::nexturl { } {
  -	return "[lindex $::urls $::next].ttml?index=$::next"
  +	return "[lindex $::urls $::next].rvt?index=$::next"
       }
   
       proc ::prevurl { } {
  -	return "[lindex $::urls $::prev].ttml?index=$::prev"
  +	return "[lindex $::urls $::prev].rvt?index=$::prev"
       }
   
       proc ::prevnext { title } {
  -	hgetvars
   	set ::urls [getorder]
   	if { [var exists index] } {
   	    set ::index [var get index]
  
  
  
  1.1                  tcl-site/presentations/tcl/ccommand.rvt
  
  Index: ccommand.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>C Tcl Command</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl Command in C</h1>" ?>
  
  <pre>
  <B><FONT COLOR="#228B22">int</FONT></B>
  <B><FONT COLOR="#0000FF">GetPW</FONT></B>(ClientData clientData, Tcl_Interp *interp,
  	     <B><FONT COLOR="#228B22">int</FONT></B> objc, Tcl_Obj *CONST objv[])
  {
      <B><FONT COLOR="#228B22">struct</FONT></B> passwd *passwd;
      passwd = getpwuid(getuid());
      Tcl_SetVar2(interp, passwd-&gt;pw_name, <B><FONT COLOR="#BC8F8F">&quot;passwd&quot;</FONT></B>, passwd-&gt;pw_passwd, 0);
      Tcl_SetVar2(interp, passwd-&gt;pw_name, <B><FONT COLOR="#BC8F8F">&quot;name&quot;</FONT></B>, passwd-&gt;pw_gecos, 0);
      Tcl_SetVar2(interp, passwd-&gt;pw_name, <B><FONT COLOR="#BC8F8F">&quot;home&quot;</FONT></B>, passwd-&gt;pw_dir, 0);
      Tcl_SetVar2(interp, passwd-&gt;pw_name, <B><FONT COLOR="#BC8F8F">&quot;shell&quot;</FONT></B>, passwd-&gt;pw_shell, 0);
      Tcl_SetResult(interp, passwd-&gt;pw_name, NULL);
      <B><FONT COLOR="#A020F0">return</FONT></B> TCL_OK;
  }
  </pre>
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/comanche.rvt
  
  Index: comanche.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Comanche</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Comanche</h1>" ?>
  
      <p>
        <img src="console-apache.png" alt="Comanche configurator">
      </p>
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/commercial.rvt
  
  Index: commercial.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Free, Commercial</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Free and Commercial</h1>" ?>
      
      Tcl is distributed under a BSD-style license, meaning you are
      truly free to do pretty much anything you want with it, as long as
      you give credit.
  
      Because of this, and it's high quality, Tcl is used by a variety
      of corporations and organizations, including Oracle, Sybase,
      Cisco, AOL, NASA, CNET, Cygnus (Redhat) and many more...
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/contact.rvt
  
  Index: contact.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>References</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>References</h1>" ?>
  
      <table align="center" width="75%">
        <tbody>
  	<tr>
  	  <th>Web Site:</th>
  	  <td><a href="http://www.tcl.tk/">http://www.tcl.tk/</a></td>
  	</tr>
  	<tr>
  	  <th>Presentation:</th>
  	  <td><a href="http://tcl.apache.org/presentations/tcl/">http://tcl.apache.org/presentations/tcl/</a></td>
  	</tr>
  	<tr>
  	  <th>David N. Welton:</th>
  	  <td><a href="mailto:davidw@dedasys.com">davidw@dedasys.com</a></td>
  	</tr>
        </tbody>
      </table>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/easy.rvt
  
  Index: easy.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Easy!</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl is Easy</h1>" ?>
  
      Tcl is easy to learn.  It has a very simple, yet powerful syntax:
  
      <ul>
        <li><code>cmd arg arg arg </code></li>
        <li><code>$foo</code></li>
        <li><code>[clock seconds]</code></li>
        <li><code>"some stuff as a string"</code></li>
        <li><code>{group of things}</code></li>
        <li><code>\</code></li>
      </ul>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/embeddable.rvt
  
  Index: embeddable.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Embeddable</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Embeddable</h1>" ?>
  
      This is a bit more complicated, and requires some knowledge of C,
      but it's very powerful - trust me!
      <p>
      Let's create a Tcl command:
  
  <pre>
  <B><FONT COLOR="#228B22">int</FONT></B> <B><FONT COLOR="#0000FF">Getpw_Init</FONT></B>(Tcl_Interp *interp)
  {
      Tcl_CreateObjCommand(interp,
  			 <B><FONT COLOR="#BC8F8F">&quot;getpw&quot;</FONT></B>,
  			 GetPW,
  			 NULL,
  			 (Tcl_CmdDeleteProc *)NULL);
      <B><FONT COLOR="#A020F0">return</FONT></B> TCL_OK;
  }
  </PRE>
  </pre>
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/example1.rvt
  
  Index: example1.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Example 1</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Example 1</h1>" ?>
  
      <p></p>
      <table align=center>
        <tbody>
  	<tr>
  	  <td>
  
  <PRE>
  <B><FONT COLOR="#A020F0">proc</FONT></B> <B><FONT COLOR="#0000FF">fac</FONT></B> {<FONT COLOR="#B8860B">x</FONT>} {
      <B><FONT COLOR="#A020F0">if</FONT></B> { $<FONT COLOR="#B8860B">x</FONT> &lt;= 1 } { <B><FONT COLOR="#A020F0">return</FONT></B> 1 }
      <B><FONT COLOR="#A020F0">expr</FONT></B> { $<FONT COLOR="#B8860B">x</FONT> * [fac [<B><FONT COLOR="#A020F0">expr</FONT></B> $<FONT COLOR="#B8860B">x</FONT> - 1]] }
  }
  </PRE>
  	  </td>
  	</tr>
        </tbody>
      </table>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/extensible.rvt
  
  Index: extensible.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Extensible</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Extensible</h1>" ?>
  
      Tcl is easy to extend in C, and extremely powerful - you get
      access to lots of things:
  
      <table style="font-size: 38%;">
        <tbody>
  	<tr valign="top">
  	  <td>
  	    <ul>
  	      <li>Variables
  		<ul>
  		  <li>From C</li>
  		  <li>To C</li>
  		  <li>Tie Tcl variable to C variable</li>
  		  <li>Trace variables</li>
  		</ul>
  	      </li>
  	    </ul>
  
  	    <ul><li>Interpreters
  		<ul>
  		  <li>Seperate interpreters</li>
  		  <li>Slave interpreters/shared resources</li></ul>
  	      </li></ul>
  
  	    <ul><li>Threads
  		<ul>
  		  <li>Create/Destroy</li>
  		  <li>Associate data</li></ul>
  	      </li></ul>
  
  
  	  </td>
  	  <td>
  	    <ul><li>IO/Channels
  		<ul>
  		  <li>Create new channel types</li>
  		  <li>Stacked channels</li>
  		  <li>Buffering</li>
  		  <li>Asyncronous</li></ul>
  	      </li>
  	    </ul>
  
  	    <ul><li>Event Loop
  		<ul>
  		  <li>Associate events with actions</li>
  		  <li>Idle events</li></ul>
  	      </li></ul>
  
  	    <ul><li>Operating System Interaction
  		<ul>
  		  <li>Filesystem</li>
  		  <li>Processes</li></ul>
  	      </li></ul>
  
  	  </td>
  
  	  <td>
  	    <ul><li>Timers
  		<ul>
  		  <li>Schedule events</li></ul>
  	      </li></ul>
  	    <ul><li>Commands
  		<ul>
  		  <li>Create commands</li></ul>
  	      </li></ul>
  	    <ul><li>Hash Tables
  		<ul>
  		  <li>Create and use hash tables at the C level</li></ul>
  	      </li></ul>
  	    <ul>
  	      <li>Internationalization
  		<ul>
  		  <li>Translate to/from different character sets</li>
  		</ul>
  	      </li>
  	    </ul>
  	  </td>
  	</tr>
        </tbody>
      </table>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/flexibility.rvt
  
  Index: flexibility.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Flexible</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Flexible</h1>" ?>
  
      Tcl is an extremely flexible language.  It has to be, to work as
      an embedded language in the variety of environments in which it's
      deployed.
      <p></p>
      <table align=center>
        <tbody>
  	<tr>
  	  <td>
  <PRE>
  <B><FONT COLOR="#A020F0">proc</FONT></B> <B><FONT COLOR="#0000FF">decr</FONT></B> {<FONT COLOR="#B8860B">varname</FONT>} {
      <B><FONT COLOR="#A020F0">uplevel</FONT></B> [<B><FONT COLOR="#A020F0">list</FONT></B> <B><FONT COLOR="#A020F0">incr</FONT></B> $<FONT COLOR="#B8860B">varname</FONT> -1]
  }
  <B><FONT COLOR="#A020F0">set</FONT></B> a 5
  decr a
  <B><FONT COLOR="#A020F0">puts</FONT></B> $<FONT COLOR="#B8860B">a</FONT></PRE>
  	  </td>
  	</tr>
        </tbody>
      </table>
  
  </p>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/history.rvt
  
  Index: history.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>History</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>History</h1>" ?>
  
  John Ousterhout, then a professor at the University of California,
  Berkeley, created the Tcl programming language to embed in
  applications he was writing.  He realized that it made more sense to
  create one good control language, and package it is a library, than to
  create individual languages for each of his programs.  These origins
  explain a lot about Tcl, as we will see...
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/index.rvt
  
  Index: index.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl, Un Grande Piccolo Linguaggio</title>
      <link rel="stylesheet" href="style.css">
    </head>
    
    <body class="splash">
      <? prevnext {<h1 align="center" class="splash">Tcl, Un Grande Piccolo Linguaggio</h1>} ?>
      
      <h2 align="center" class="splash">David N. Welton</h2>
      <p align="center">
        <a href="mailto:davidw@dedasys.com">davidw@dedasys.com</a>
      </p>
      
  
      <a></a>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/lightweight.rvt
  
  Index: lightweight.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Lightweight</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Lightweight</h1>" ?>
  	Tcl is relatively easy on system resources:
      <p>
        ls:<br>
        <code>
  	1036724 /usr/lib/libperl.so.5.6.1<br>
  	790044&nbsp;&nbsp;/usr/lib/libpython2.1.so.0.0<br>
  	648648&nbsp;&nbsp;/usr/lib/libtcl8.3.so.1<br>
        </code>
      </p>
      <p>
        ps:<br>
        <code>
  	VSZ&nbsp;&nbsp;RSS<br>
  	3856 1860 python<br>
  	3476 1200 perl<br>
  	2916 1252 tclsh<br>
        </code>
      </p>      
      It has to be, if it's going to be embedded in your program!
        
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/motivation.rvt
  
  Index: motivation.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Ousterhout's Motivation</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Ousterhout's Motivation</h1>" ?>
  
  Notes from Ousterhout.
  
  
      <ul>
        <li>Interactive programs need command languages:
  	<ul>
  	  <li>Typically redone for each application.</li>
  	  <li>Result: weak, quirky.</li>
  	  <li>emacs and csh powerful, but can't reuse.</li>
  	</ul>
        </li>
  
        <li>Solution: reusable scripting language.
  
  	<ul>
  	  <li>Interpreter is a C library.</li>
  	  <li>Provides basic features: variables, procedures, etc.</li>
  	  <li>Applications extend with additional features.</li>
  	</ul>
        </li>
      </ul>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/multiplatform.rvt
  
  Index: multiplatform.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Multiplatform, Multilingual</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Multiplatform, Multilingual</h1>" ?>
  
      <table>
        <tbody>
  	<tr>
  	  <td>
  	    Tcl is very adaptable - that's one of its goals - to be
  	    able to run anywhere.  Sure, we've heard that before,
  	    somewhere, but Tcl really does:
  
  	    <ul>
  	      <li>Unix</li>
  	      <li>Windows</li>
  	      <li>MacOS</li>
  	      <li>Others:
  		<ul>
  		  <li>VMS</li>
  		  <li>DOS</li>
  		  <li>Amiga</li>
  		  <li>QNX</li>
  		  <li>VxWorks</li>
  		</ul>
  	      </li>
  	    </ul>
  
  	  </td>
  
  	  <td valign="bottom">Tcl also does very well in multilingual
  	    environments.  A great deal of effort has been put into
  	    internationalization.  Tcl uses and deals well with a
  	    large variety of character sets, including, of course,
  	    unicode.</td>
  	</tr>
        </tbody>
      </table>
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/powerful.rvt
  
  Index: powerful.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Powerful</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl is Powerful</h1>" ?>
  
      Tcl's power lies in its extensibility and flexibility.
      <p>
        The core language gives you a lot - and extensions give you the rest.
      <p>
      <ul>      
        <li>Object oriented programming: [incr Tcl]</li>
        <li>Web: mod_dtcl, AOLServer, tclhttpd</li>
        <li>Database: postgresql, oracle, mysql, etc...</li>
        <li>Data structures: graphs, trees</li>
        <li>Testing: tcltest</li>
        <li>System Administration: expect, scotty (SNMP)</li>
        <li>Unix facilities: TclX</li>
      </ul>
  
      Tcl is fast - it's byte compiled at run time, like Python.  It
      also has a lot of high level things that you would expect in a
      scripting language - lists, hash tables, easy to use socket
      commands, etc...
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/tcloverview.rvt
  
  Index: tcloverview.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl: Tool Command Language</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tcl: Tool Command Language</h1>" ?>
      <ul>
        <li>Easy, Flexible
  	<ul>
  	  <li>Tcl is easy to learn, it has a very simple syntax.  It's
  	  also very flexible, allowing you to mold it to your needs.
  	  </li>
  	</ul>
        </li>
        <li>Extensible, Embeddable
  	<ul>
  	  <li>
  	    You can extend Tcl in many ways, both in Tcl and in C, or
  	    embed it directly in your applications.
  	  </li>
  	</ul>
        </li>
  
        <li>Powerful, Lightweight
  	<ul>
  	  <li>Tcl does many things, easily, and has a small core.</li>
  	</ul>
        </li>
  
        <li>Multiplatform, Free
  	<ul>
  	  <li>Tcl runs on UNIX, Windows and Mac OS. Tcl is distributed under a BSD license.</li>
  	</ul>
        </li>
      </ul>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/template.rvt
  
  Index: template.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title></title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1></h1>" ?>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/timeline.rvt
  
  Index: timeline.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Timeline</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Timeline</h1>" ?>
  
      <ul>
        <li>1988 Tcl created</li>
        <li>1990
  		Tk toolkit usable.  Ousterhout presents Tcl at the Usenix conference.</li>
        <li>1994
  		Ousterhout heads a Tcl/Tk research team ("SunScript")
        at Sun Microsystems.</li>
        <li>1998 ACM Software System Award, USENIX Software Tools User Group (STUG) Award</li>
        <li>1998
  		Scriptics Inc. formed by Ousterhout.</li>
        <li>2000
  		Scriptics becomes Ajuba Solutions, which is sold to Interwoven.</li>
        <li>2000
  		Tcl team heads north, to ActiveState.</li>
  
      </ul>
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/tk.rvt
  
  Index: tk.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tk!</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tk!</h1>" ?>
  
      But that's only the beginning... now we look at the Tk toolkit.
  <p>
  Ousterhout realized that some of the same scripting concepts that
  applied to Tcl applied to graphical toolkits as well - you can make
  the pieces in a low level language like C, and then fit them together
  with a scripting language.  This makes it very quick to develop
  graphical applications.  And thus was born the Tk toolkit for the Tcl
  scripting language...
  
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/tkintro.rvt
  
  Index: tkintro.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tk Intro</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Tk Introduction</h1>" ?>
  
  Tk was (and still is) a revolutionary concept - it allows you to
  quickly and easily create graphical tools, in a semi object oriented
  fashion.
  
  <PRE>
  <B><FONT COLOR="#A020F0">label</FONT></B> .result -textvariable Result -anchor e
  <B><FONT COLOR="#A020F0">entry</FONT></B> .input -textvariable Input
  
  <B><FONT COLOR="#A020F0">pack</FONT></B> .result -fill both -expand 1
  <B><FONT COLOR="#A020F0">pack</FONT></B> .input -fill both -expand 1
  
  <B><FONT COLOR="#A020F0">bind</FONT></B> .input &lt;Return&gt; {
      <B><FONT COLOR="#A020F0">if</FONT></B> { [<B><FONT COLOR="#A020F0">catch</FONT></B> {
  	<B><FONT COLOR="#A020F0">set</FONT></B> Result [<B><FONT COLOR="#A020F0">expr</FONT></B> $<FONT COLOR="#B8860B">Input</FONT>]
      } err] } {
  	<B><FONT COLOR="#A020F0">set</FONT></B> Result $<FONT COLOR="#B8860B">err</FONT>
      }
  }</PRE>
  
  <p align="center">
      <img src="calc.png" alt="very simple calculator">
  </p>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/tksimple.rvt
  
  Index: tksimple.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tk is Simple</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Simple, eh?</h1>" ?>
  
  That's the point!  But there are a lot more complicated things you can
  do.  A good example of the power of Tcl may be found in Comanche, a
  graphical user interface that makes use of [incr Tcl] and XML to
  configure Apache, as well as other programs, like Samba.  It runs out
  of the box on both Linux and Windows!
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/presentations/tcl/webserver.rvt
  
  Index: webserver.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Simple Web Server</title>
      <link rel="stylesheet" href="style.css">
    </head>
  
    <body>
      <? prevnext "<h1>Example: Mini Web Server</h1>" ?>
  
  
  <PRE>
  <B><FONT COLOR="#A020F0">proc</FONT></B> <B><FONT COLOR="#0000FF">Serve</FONT></B> {<FONT COLOR="#B8860B">chan addr port</FONT>} {
      <B><FONT COLOR="#A020F0">fconfigure</FONT></B> $<FONT COLOR="#B8860B">chan</FONT> -translation {auto binary}
      <B><FONT COLOR="#A020F0">set</FONT></B> line [<B><FONT COLOR="#A020F0">gets</FONT></B> $<FONT COLOR="#B8860B">chan</FONT>]
      <B><FONT COLOR="#A020F0">if</FONT></B> { [<B><FONT COLOR="#A020F0">catch</FONT></B> { <B><FONT COLOR="#A020F0">set</FONT></B> fl [<B><FONT COLOR="#A020F0">open</FONT></B> <B><FONT COLOR="#BC8F8F">&quot;.[lindex $line 1]&quot;</FONT></B> r] } err] } {
          <B><FONT COLOR="#A020F0">puts</FONT></B> $<FONT COLOR="#B8860B">chan</FONT> <B><FONT COLOR="#BC8F8F">&quot;HTTP/1.0 404 Not Found\r\n&quot;</FONT></B>
      } else {
          <B><FONT COLOR="#A020F0">puts</FONT></B> $<FONT COLOR="#B8860B">chan</FONT> <B><FONT COLOR="#BC8F8F">&quot;HTTP/1.0 200 OK\r
  Content-Type: text/html\r\n\r\n[read $fl]&quot;</FONT></B>
      }
      close $<FONT COLOR="#B8860B">chan</FONT>
  }
  
  <B><FONT COLOR="#A020F0">set</FONT></B> sk [<B><FONT COLOR="#A020F0">socket</FONT></B> -server Serve 5151]
  <B><FONT COLOR="#A020F0">fconfigure</FONT></B> $<FONT COLOR="#B8860B">sk</FONT> -buffering line
  <B><FONT COLOR="#A020F0">vwait</FONT></B> forever
  </PRE>
  
    </body>
  </html>
  
  
  
  1.1                  tcl-site/sources/index.rvt
  
  Index: index.rvt
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
    <head>
      <title>Tcl Source Code</title>
      <link rel="stylesheet" href="../style.css">
    </head>
  
    <body>
      <? title "Tcl Source Code" ?>
  
      <p>
        This is a collection of HTMLized source code trees.
      </p>
      <p>
        <a href="tcl/">Tcl</a>: The Tcl core itself.
      </p>
      <p>
        <a href="tcl-moddtcl/">mod_dtcl</a>: mod_dtcl - Tcl for Apache 1.3.
      </p>
      <p>
        <a href="tcl-modtcl/">mod_tcl</a>: mod_tcl - Tcl for Apache 2.0.
      </p>
      <p>
        <a href="tcl-rivet/">Rivet</a>: Rivet - the next generation of
        mod_dtcl + NeoWebScript.
      </p>
      <p>
        <a href="tcl-websh/">WebSH</a>: WebSH.
      </p>
  
      <p>Return to the <a href="/">Apache Tcl site</a>.</p>
  
      <? powered ?>
    </body>
  </html>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: site-cvs-unsubscribe@tcl.apache.org
For additional commands, e-mail: site-cvs-help@tcl.apache.org