1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<!-- $Id: readme.html,v 1.14.2.2 2000/03/03 15:20:10 davidw Exp $ -->
<html>
<head>
<title>Mod_dtcl</title>
</head>
<body bgcolor=#ffffff>
<p>
<center>
<table>
<tr>
<td>
<font size="+5"><b>Mod_dtcl</b></font>
</td>
<td width="50%"><hr></td>
<td><img src="dtcl.gif" align="center"></td>
</tr>
</table>
</center>
</p>
<b>WHAT IS mod_dtcl ?:</b>
<ul>
<li> mod_dtcl is a free/open source implementation of server
parsed <a href="http://www.scriptics.com">Tcl</a>, under <a
href="http://www.apache.org">Apache</a>, distributed under
the terms of the GNU GPL. It allows you to tightly
integrate html with Tcl, a widely used scripting language
with many years of development invested in it. This is an
ideal combination, allowing you to greatly extend what you
could do with plain html. Because Tcl is such a widely used
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, etc. Apache, is, of course, the world's
most popular web server. If you aren't reading this from
the web pages, they are available at <a
href="http://comanche.com.dtu.dk/dave/">http://comanche.com.dtu.dk/dave/</a>.</li>
</ul>
<p></p>
<a href="INSTALL.html">Install mod_dtcl!</a>
<p></p>
<b>EXAMPLES:</b>
<p></p>
<ul>
<li> The <a href="examples.ttml">examples.ttml</a> file has a
few very limited examples of what is possible with mod_dtcl.
You need to make it accessable to the web server in order to
be able to view it. Put it in your public_html directory or
something. Have a look at my rough <a
href="benchmark.html">benchmarks</a> - although they are
unscientific, the results are interesting.</li>
</ul>
<p>
<b><a href="use.html">USE AND FEATURES:</a></b>
</p>
<p>
How to use mod_dtcl, features available, etc...
</p>
<p>
<b>SUPPORT:</b>
</p>
<p>
There is a mailing list at <a
href="mailto:mod_dtcl@lists.prosa.it">mod_dtcl@lists.prosa.it</a>.
To subscribe, send a message with 'subscribe' in the body to
mod_dtcl-request@lists.prosa.it. Mod_dtcl is currently alpha
software (meaning that it is subject to change), however, due to
the relative simplicity of the design, it is fairly stable, and
performs well. If you have any questions or comments, please
send them to the mailing list.
</p>
<p></p>
<b>WHY:</b>
<p></p>
Why mod_dtcl when there are already so many other server parsed
implementations?
<p></p>
<ul>
<li> Because it was fun to do:-)</li>
<li> Because Tcl is a common and relatively well known
language. <a href="http://www.php.net">PHP</a>, while nice,
is not really used much outside the web. It's easier, and
more practical, to learn a more general language, that can
be used outside of the web, for many other applications.
Also, Tcl has had many more years than PHP to mature, and it
has a large user base.</li>
<li> Because mod_perl is a big heavy chunk of Perl that seems
like overkill for many things. Mod_dtcl aims to be more
lightweight - it doesn't get involved much in the server
config files, for instance.
</li>
<li>
Because, when I began, mine was the only Free server-parsed
Tcl implementation. Subsequently, <a
href="http://www.NeoSoft.com/neowebscript/">neowebscript</a>,
and <a href="http://www.aolserver.com/">AOL Server</a> have
been freed. They are worth a look.
</li>
</ul>
<p></p>
<b>INTERNALS:</b>
<p>
A brief description of how it works. For each page requested,
a new tcl namespace is created within the global
namespace. The module then reads through the page, aggregating
plain HTML into big "hputs" statements, and anything between
the delimiters ( <+ and +> ) as regular tcl. After this is
done, the whole script is eval'ed and sent to the client.
After it is eval'ed, the namespace that it was run in is
destroyed, so as to destroy local variables.
</p>
<p>
As of 0.7.0 there is more code to deal with buffering and
headers. The first 'hputs' has been replaced with
'buffer_add', which stashes the first html to be output into
'output_buffer'. If buffering is turned on, hputs continues
to output to output_buffer, and only prints and flushes at the
very end of processing. This allows you to manipulate headers
at arbitrary points in the file, at the cost of having to wait
for the whole thing to be done before printing anything.
Turning buffering on and off allows you to choose which route
you would prefer.
</p>
<p></p>
<b>VIEW HTMLIZED SOURCE CODE:</b>
<p>
I have HTMLized the <a href="browse-source.html">sources</a> so that they can be browsed on line.
</p>
<p></p>
<b>THANKS:</b>
<p>
I would like to thank Daniel Ridruejo for furnishing me with
the web space, Rolf Ade, and the various people subscribed to
the mod_dtcl mailing list for ideas, comments and suggestions.
Thanks also to <a href="http://www.prosa.it">Prosa SRL</a> for
setting up a mailing list for me.
</p>
<p>
<a href="mailto:davidw@debian.org">Send me mail about
mod_dtcl!</a>. (Or better yet, send it to the mailing list).
</p>
<i>
mod_dtcl is Copyright <a href="http://www.efn.org/~davidw">David Welton</a> 1998<br></br>
$Id: readme.html,v 1.14.2.2 2000/03/03 15:20:10 davidw Exp $
</i>
</body>
</html>
|