You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs-cvs@perl.apache.org by st...@apache.org on 2002/01/05 20:15:43 UTC

cvs commit: modperl-docs/src/support commercial.html config.cfg index_top.html isps.html jobs.html training.html

stas        02/01/05 11:15:43

  Added:       src/about about.html config.cfg
               src/contribute config.cfg docs.pod maillist.pod
                        share_code.pod
               src/download binaries.pod bundles.html config.cfg
                        distributions.html stable.html
               src/maillist README config.cfg contact.pod data.pl
                        email-etiquette.pod list-advocacy.pod
                        list-announce.pod list-asp.pod list-cvs.pod
                        list-dev.pod list-docs-cvs.pod list-docs-dev.pod
                        list-embperl.pod list-test-cvs.pod
                        list-test-dev.pod list-users.pod maillist.tmpl
                        make.pl
               src/products apache-modlist.html app-server.pod config.cfg
                        products.html
               src/stats config.cfg graph.jpg graph.pl index.html
                        input.data logo-middle.png logo.png netcraft.html
                        pseudo-graph.jpg securityspace.html
               src/stories README adultad.pod adultad.txt
                        allakhazam.com.pod allakhazam.com.txt bsat.pod
                        bsat.txt calmaeth.maths.uwa.edu.au.pod
                        calmaeth.maths.uwa.edu.au.txt chapters.pl
                        colbychem.pod colbychem.txt config.cfg
                        iagore.com.pod iagore.com.txt idl-net.pod
                        idl-net.txt imdb.com.pod imdb.com.txt
                        index_bot.html make.pl openscape.org.pod
                        openscape.org.txt presto.pod presto.txt
                        rent.com.pod rent.com.txt seds.org.pod seds.org.txt
                        singlesheaven.com.pod singlesheaven.com.txt
                        sites.html story.tmpl tamu.pod tamu.txt tgix.pod
                        tgix.txt winamillion.msn.com.pod
                        winamillion.msn.com.txt wmboerse.pod wmboerse.txt
                        www.afp-direct.com.pod www.afp-direct.com.txt
                        www.bivio.com.pod www.bivio.com.txt
                        www.lind-waldock.com.pod www.lind-waldock.com.txt
               src/support commercial.html config.cfg index_top.html
                        isps.html jobs.html training.html
  Log:
  porting the content from the old site
  
  Revision  Changes    Path
  1.1                  modperl-docs/src/about/about.html
  
  Index: about.html
  ===================================================================
    <html>
      <head>
        <title>About</title>
      </head>
      <body bgcolor="white">
  <H1>Apache + Perl = mod_perl</H1>
  
  Simply <A HREF="../download/">install mod_perl</A> and you have a
  world of features at your fingertips:
  
  <ul>
  <li><b>Configure Apache with Perl</b>.  Embed Perl in your
  <i>httpd.conf</i> file to define everything from virtual hosts to
  content handlers.
  
  <ul>
  <li><b>Configure Apache with Perl</b>.  Embed Perl in your
  <i>httpd.conf</i> file to define everything from virtual hosts to
  content handlers.
  
  <li><b>Speed up your CGI scripts</b>.  The Apache::Registry module
  can provide <b>100x speedups</b> for your CGI scripts.
  
  <li><b>Write custom Apache modules</b>.  Write simple Perl code to
  <b>log hits</b>, generate dynamic <b>error pages</b>, <b>track
  users</b>, and more.
  
  <li><b>Templating systems</b> such as HTML::Mason, EmbPerl, or the
  Template Toolkit let you quickly develop structured dynamic web sites.
  
  <li>Third-party modules give you application functionality such as
  <b>sessions</b>, <b>passwords</b>, and <b>database integration</b>.
  
  <li><b>Apache 2.0 support</b> includes the ability to write <b>custom
  protocol handlers</b> in Perl!
  
  </ul>
  
      </body>
    </html>
  
  
  
  1.1                  modperl-docs/src/about/config.cfg
  
  Index: config.cfg
  ===================================================================
  use vars qw(@c);
  @c = (
        id => 'about',
  
        title => "About mod_perl",
  
        abstract => "What happens if you take Apache and Perl and put
                     them together...",
  
        # an ordered list pod files relative to $c{src}
        # the order is important for a correct placing of the chapters
        chapters => [
                     qw(
                        about.html
                       )
        ],
  
        # non-pod/html files or dirs to be copied unmodified
        copy => [
                ],
  );
  
  
  
  1.1                  modperl-docs/src/contribute/config.cfg
  
  Index: config.cfg
  ===================================================================
  use vars qw(@c);
  @c = (
        id => 'contribute',
  
        title => "Contribute",
  
        abstract => "101 ways to contribute to mod_perl community",
  
        chapters => [
            qw(
               maillist.pod
               docs.pod
               share_code.pod
              )
        ],
  
  );
  
  
  
  1.1                  modperl-docs/src/contribute/docs.pod
  
  Index: docs.pod
  ===================================================================
  =head1 NAME
  
  Contribute to the Documentation
  
  =head1 Submit Corrections
  
  There is a lot of mod_perl documentation. And we are sure it includes
  documentation bugs. So if you spot any make sure to report it.
  
  The documentation includes code examples, which sometimes were written
  without testing, so it's possible that they are broken. If some
  example doesn't work for you, please, let us know.
  
  If you notice bad English grammar and speling :), don't hesitate to
  tell us where and what do you think is the best way to fix it.
  
  =head1 Submit New Articles
  
  If you have some mod_perl knowledge that is not documented please
  share it and send us the documentation patch, or a complete new
  article. This can include installation and configuration scenarious,
  performance improving tips, debugging techniques and what not.
  
  Developers using mod_perl constantly work with other technologies
  related to mod_perl. If you have spent some time lurking on the
  mod_perl lists, you have probably discovered that mod_perl developers
  are pros in many other related fields, such as Apache, Perl,
  relational databases, etc. If you think that the mod_perl community
  will find an information about a related technology useful, please
  submit this information for the inclusion in the documentation.
  
  =head1 How to Send Information and Where
  
  The documentation contributions and corrections are to be sent to the
  mod_perl documentation mailing list.
  
  If the correction is minor, please specify the URL you are talking
  about, and preferrably the version number of the document if such is
  available.
  
  If the correction is medium to large, please retrieve the
  documentation source package or use the cvs repository and submit the
  patch against the latest version.
  
  META: links?
  
  =cut
  
  
  
  1.1                  modperl-docs/src/contribute/maillist.pod
  
  Index: maillist.pod
  ===================================================================
  =head1 NAME
  
  Contribute at the Mailing List
  
  =head1 Answering Questions
  
  Since mod_perl is an open source technology, it's main support
  facility is its mailing lists. Therefore it's very essential to
  support users and developers by sharing your mod_perl and related
  knowledge through answering questions and submitting interesting posts
  that enrich community's knowledge in the related topics.
  
  You don't have to be a guru, to be a very valuable person to the
  mod_perl community. Through answering questions you learn a lot by
  yourself, and eventually become a guru yourself.
  
  =head1 Helping Navigating the Documentation
  
  mod_perl is one of the few open source projects that bundled with a
  lot of documentation. The only problem is that it's very hard to read
  all the documentation when someone just starts with
  mod_perl. Therefore helping to find the right document to read when
  someone in trouble is a noble thing to do.
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/contribute/share_code.pod
  
  Index: share_code.pod
  ===================================================================
  =head1 NAME
  
  Contribute by Sharing Code
  
  =head1 mod_perl Patches
  
  If you have modified the mod_perl source code, improved and extended
  it, please submit your modifications back to the mod_perl community so
  others will be able to enjoy your efforts.
  
  If you are trying to extend mod_perl, but don't have enough
  tuits/knowledge to accomplish this by yourself you can ask the
  mod_perl developers to help you. But make sure that you clearly
  explain what you want to do and provide code samples if possible.
  
  =head1 Complete Modules
  
  If you have developed a third-party mod_perl module, consider
  submitting it to CPAN (http://cpan.org/). Other than sharing your
  works, chances are that the code will receive a lot of attention from
  other users. This usually leads to more robust code and interface, as
  it gets reviewed and improved by its users. In some cases new features
  are submitted as patches, so you benefit from others sharing their
  works with you.
  
  Before submitting a new module to CPAN, please discuss it first on the
  mod_perl list. It's important to choose a good intuitive name for your
  module. Also it's possible that a module with a similar functionality
  already exists and most likely that someone will point it out. In
  which case you may want to help developing this existing module
  instead and integrating your features into it.
  
  =head1 Code Snippets
  
  If you have some neat code snippets, please send them to the mailing
  list. If you are kind enough to annotate these, they could probably
  fit into mod_perl documentation. At least they will be archived in the
  mailing list archive, and in the future users will be able to find
  your code and reuse it.
  
  
  
  
  
  =cut
  
  
  
  1.1                  modperl-docs/src/download/binaries.pod
  
  Index: binaries.pod
  ===================================================================
  =head1 NAME
  
  Source and Binary mod_perl distributions
  
  =head1 Description
  
  This page includes links to various source and binary mod_perl
  distributions. If you know about a distribution that isn't listed
  here, please tell us (by announcing it at the mod_perl list).
  
  =head1 Locations
  
  =over
  
  =item *
  
  Master Source distribution - Release http://perl.apache.org/dist, the
  latest CVS snapshot http://cvs.apache.org/snapshots/
  
  =item *
  
  Win32 mod_perl Binaries (made by Randy Kobes) -
  ftp://theoryx5.uwinnipeg.ca/pub/other/. Grab a perl-win32-bin-x.x.exe
  self-extracting file. There's accompanying readme files with more details
  on the particular versions of packages included. These all include Perl
  and some common modules, so are largish.
  
  =item *
  
  Win32 ActivePerl mod_perl ppms - suitable for builds 6xx.  You can install
  this by, within the ppm shell, setting the repository to
  I<http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer> and
  typing C<install mod_perl>. This will also run a post-install script to
  install the required mod_perl.so to your Apache modules/ directory. This
  mod_perl package is built against the current stable Apache release -
  earlier versions are available
  (http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl-legacy/), as are some
  ppms of other Apache modules (http://theoryx5.uwinnipeg.ca/ppmpackages/).
  
  =item *
  
  Static mod_perl and libapreq (Apache::Request) RPMs and SRPMs (made by
  David Harris ) http://www.davideous.com/modperlrpm/distrib/. Mirrored at
  http://perl.apache.org/rpm/.
  
  =item *
  
  i386 RPMs + SRPM (RedHat) of Apache with mod_perl and php3 built
  staticaly. (made by Vladimir Ivaschenko)
  http://www.hazard.maks.net/apache/
  
  =back
  
  =cut
  
  
  
  1.1                  modperl-docs/src/download/bundles.html
  
  Index: bundles.html
  ===================================================================
    <html>
      <head>
        <title>Software Bundles</title>
      </head>
      <body bgcolor="white">
        <p>
          There are several other Perl modules that you might wish to have installed,
          to take full advantage of mod_perl functionality.
          Provided you have Andreas K&ouml;nig's 
          <a href="http://www.perl.com/CPAN/modules/by-module/CPAN/">CPAN.pm</A> 
          module, simply run:
          <pre>  cpan> install Bundle::Apache</pre>
          This will fetch and install mod_perl and related packages for you all at once.
          Otherwise, once you've installed mod_perl see the listing by running 
          <pre>  % perldoc Bundle::Apache</pre>
        </p>
        
      </body>
    </html>
  
  
  
  1.1                  modperl-docs/src/download/config.cfg
  
  Index: config.cfg
  ===================================================================
  use vars qw(@c);
  @c = (
        id => 'download',
  
        title => "Download",
  
        abstract => 'Source and Binary mod_perl distributions can be downloaded',
  
        # an ordered list pod files relative to $c{src}
        # the order is important for a correct placing of the chapters
        chapters => [
                     qw(
                        binaries.pod
                        bundles.html
                        stable.html
                       )
                    ],
  
        # non-pod/html files or dirs to be copied unmodified
        copy => [
                ],
       );
  
  
  
  1.1                  modperl-docs/src/download/distributions.html
  
  Index: distributions.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>mod_perl and libapreq distributions</TITLE>
  </HEAD>
  <BODY bgcolor="white">
  <H1>mod_perl and libapreq distributions</H1>
  
  This page includes links to various source and binary mod_perl
  distributions. If you know about a distribution that isn't listed
  here, please tell us (by announcing it at the mod_perl list).
  
  <UL>
  
  <LI>Master Source distribution - Release
  <A HREF="http://perl.apache.org/dist">
  http://perl.apache.org/dist </A>, the latest CVS snapshot
  <A HREF="http://cvs.apache.org/snapshots/">
  http://cvs.apache.org/snapshots/</A>
  </LI>
  
  <LI> Win32 mod_perl Binaries (made by Randy Kobes) - <A
  href="ftp://theoryx5.uwinnipeg.ca/pub/other/">ftp://theoryx5.uwinnipeg.ca/pub/other/</A>.
  Grab a perl-win32-bin-x.x.exe self-extracting file. There's
  accompanying readme files with more details on the particular versions
  of packages included. These all include Perl and some common modules,
  so are largish.</LI>
  
  <LI>Win32 ActivePerl mod_perl ppms - suitable for builds 6xx.  You can
  install this by, within the ppm shell, setting the repository to
  <VAR>http://theoryx5.uwinnipeg.ca/cgi-bin/ppmserver?urn:/PPMServer</VAR>
  and typing <CODE>install mod_perl</CODE>. This will also run a
  post-install script to install the required mod_perl.so to your Apache
  modules/ directory. This mod_perl package is built against the current
  stable Apache release - earlier versions are <A
  href="http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl-legacy/">
  available</A>, as are some ppms of <A
  href="http://theoryx5.uwinnipeg.ca/ppmpackages/">other Apache
  modules</A>.
  </LI>
  
  <LI>Static mod_perl and libapreq (Apache::Request) RPMs and SRPMs
  (made by David Harris ) <A
  HREF="http://www.davideous.com/modperlrpm/distrib/">
  http://www.davideous.com/modperlrpm/distrib/ </A>.  Mirrored <A
  HREF="http://perl.apache.org/rpm/">here</A>.
  </LI>
  
  <LI>i386 RPMs + SRPM (RedHat) of Apache with mod_perl and php3 built
  staticaly. (made by Vladimir Ivaschenko) <A
  HREF="http://www.hazard.maks.net/apache/">
  http://www.hazard.maks.net/apache/</A> </LI>
  
  </UL>
  
  <HR>
  <ADDRESS>
  maintained by Stas Bekman &lt;stas@stason.org&gt;
  <ADDRESS>
  
  </BODY>
  </HTML>
  
  
  
  
  1.1                  modperl-docs/src/download/stable.html
  
  Index: stable.html
  ===================================================================
    <html>
      <head>
        <title>Stable Release Download</title>
      </head>
      <body bgcolor="white">
        <p>
  	    The latest stable release is available from <a
  	      href="dist/">this site</a>, from <a
  	      href="http://www.cpan.org/modules/by-module/Apache">CPAN</a>
  	      and its mirrors around the world. Be sure to read the
  	      <i>README</i> and <i>INSTALL</i> documents first.
        </p>
      </body>
    </html>
  
  
  
  1.1                  modperl-docs/src/maillist/README
  
  Index: README
  ===================================================================
  WARNING: All the list-*.pod files are autogenerated, do not edit them
  directly!  Instead, to adjust the data -- modify 'data.pl' and to
  modify the look-n-feel -- modify 'maillist.tmpl'.
  
  After applying modifications, make sure to run:
  
    % ./make.pl
  
  
  
  1.1                  modperl-docs/src/maillist/config.cfg
  
  Index: config.cfg
  ===================================================================
  use vars qw(@c);
  @c = (
        id => 'maillist',
  
        title => "Mailing Lists",
  
        abstract => "mod_perl and related projects mailing lists",
  
        # an ordered list pod files relative to $c{src}
        # the order is important for a correct placing of the chapters
        chapters => [
            qw(
               list-users.pod
               list-docs-dev.pod
               list-docs-cvs.pod
               list-dev.pod
               list-cvs.pod
               list-test-dev.pod
               list-test-cvs.pod
               list-announce.pod
               list-advocacy.pod
               list-embperl.pod
               list-asp.pod
               contact.pod
              )
        ],
  
  );
  
  
  
  1.1                  modperl-docs/src/maillist/contact.pod
  
  Index: contact.pod
  ===================================================================
  =head1 NAME
  
  Contact Info
  
  =head1 Contact Info
  
  If you have a comment or question about mod_perl that you
  feel is not appropriate for any of the above public lists,
  you may contact Doug MacEachern E<lt>dougm (at) apache.orgE<gt>.
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/data.pl
  
  Index: data.pl
  ===================================================================
  %data = 
      (
  
       ### 
       users =>
       {
        title => 'mod_perl Users',
        desc  => <<"DESC",
  The B<mod_perl users mailing list> is available for
  mod_perl users and developers to share ideas, solve problems and discuss
  things related to mod_perl and the C<Apache::*> modules.
  DESC
        addr  => {
                  subscribe        => 'modperl-subscribe@apache.org',
                  subscribe_digest => 'modperl-subscribe@apache.org',
                  unsubscribe      => 'modperl-unsubscribe@apache.org',
                  help             => 'modperl-help@apache.org',
                 },
        archives => [
                     {
                      title   => 'Epigone',
                      link    => 'http://mathforum.org/epigone/modperl',
                      comment => '',
                     },
                     {
                      title   => 'msgs.securepoint.com',
                      link    => 'http://msgs.securepoint.com/cgi-bin/get/apache-current.html',
                      comment => '',
                     },
                     {
                      title   => 'groups.yahoo.com',
                      link    => 'http://groups.yahoo.com/group/modperl/',
                      comment => '',
                     },
                     {
                      title   => 'www.geocrawler.com',
                      link    => 'http://www.geocrawler.com/lists/3/web/182/0/',
                      comment => '(throws all modperl lists in one bundle)',
                     },
                     {
                      title   => 'www.mail-archive.com',
                      link    => 'http://www.mail-archive.com/modperl@apache.org/',
                      comment => '',
                     },
                     {
                      title   => 'www.davin.ottawa.on.ca',
                      link    => 'http://www.davin.ottawa.on.ca/archive/modperl/',
                      comment => '',
                     },
                     {
                      title   => 'marc.theaimsgroup.com',
                      link    => 'http://marc.theaimsgroup.com/?l=apache-modperl&r=1&w=2#apache-modperl',
                      comment => '',
                     },
                     {
                      title   => 'www.egroups.com',
                      link    => 'http://www.egroups.com/group/modperl/',
                      comment => '',
                     },
                     {
                      title   => 'Mbox file archive',
                      link    => 'http://perl.apache.org/mail/modperl/',
                      comment => '',
                     },
                    ],
       },
  
       ### 
       'docs-dev' => 
       {
        title => 'Documentation',
        desc  => <<"DESC",
  A mailing list for discussing B<mod_perl documentation>
  DESC
        addr  => {
                  subscribe        => 'docs-dev-subscribe@perl.apache.org',
                  subscribe_digest => 'docs-dev-subscribe-digest@perl.apache.org',
                  unsubscribe      => 'docs-dev-unsubscribe@perl.apache.org',
                  help             => 'docs-dev-help@perl.apache.org',
                 },
        archives => [
                     {
                      title   => 'Mbox file',
                      link    => 'http://perl.apache.org/mail/docs-dev/',
                      comment => '',
                     },
                    ],
       },
  
  
       ### 
       'docs-cvs' => 
       {
        title => 'Documentation CVS',
        desc  => <<"DESC",
  A mailing list where all the B<mod_perl documentation modification
  commits> are sent.
  DESC
        addr  => {
                  subscribe        => 'docs-cvs-subscribe@perl.apache.org',
                  subscribe_digest => 'docs-cvs-subscribe-digest@perl.apache.org',
                  unsubscribe      => 'docs-cvs-unsubscribe@perl.apache.org',
                  help             => 'docs-cvs-help@perl.apache.org',
                 },
        archives => [
                     {
                      title   => 'Mbox file',
                      link    => 'http://perl.apache.org/mail/docs-cvs/',
                      comment => '',
                     },
                    ],
       },
  
  
       ### 
       dev => 
       {
        title => 'mod_perl Development',
        desc  => <<"DESC",
  The B<development> mailing list is for discussions about the
  development of the core mod_perl.
  DESC
        addr  => {
                  subscribe        => 'dev-subscribe@perl.apache.org',
                  subscribe_digest => 'dev-subscribe-digest@perl.apache.org',
                  unsubscribe      => 'dev-unsubscribe@perl.apache.org',
                  help             => 'dev-help@perl.apache.org',
                 },
        archives => [
                     {
                      title   => 'Mbox file',
                      link    => 'http://perl.apache.org/mail/dev/',
                      comment => '',
                     },
                     {
                      title   => 'marc.theaimsgroup.com',
                      link    => 'http://marc.theaimsgroup.com/?l=apache-modperl-dev&r=1&w=2#apache-modperl-dev',
                      comment => '',
                     },
                     {
                      title   => 'www.mail-archive.com',
                      link    => 'http://www.mail-archive.com/dev%40perl.apache.org/',
                      comment => '',
                     },
                     {
                      title   => 'www.geocrawler.com',
                      link    => 'http://www.geocrawler.com/lists/3/web/182/0/',
                      comment => '(it throws all modperl lists in one bundle, not good)',
                     },
  
                    ],
       },
  
  
  
       ### 
       cvs => 
       {
        title => 'Development CVS',
        desc  => <<"DESC",
  The B<modperl-cvs> list is the list where you can watch mod_perl
  getting patched.  No real discussions happen on this list, but if you
  want to know about the latest changes in the mod_perl core before the
  rest of the people, this is a list to be on. Everytime something gets
  committed to the modperl CVS repository a mail is sent here with the
  diff.
  DESC
        addr  => {
                  subscribe        => 'modperl-cvs-subscribe@apache.org',
                  subscribe_digest => 'modperl-cvs-subscribe@apache.org',
                  unsubscribe      => 'modperl-cvs-unsubscribe@apache.org',
                  help             => 'modperl-cvs-help@apache.org',
                 },
        archives => [
                     {
                      title   => 'marc.theaimsgroup.com',
                      link    => 'http://marc.theaimsgroup.com/?l=apache-modperl-cvs&r=1&w=2#apache-modperl-cvs',
                      comment => '',
                     },
                     {
                      title   => 'Mbox file archive',
                      link    => 'http://perl.apache.org/mail/modperl-cvs/',
                      comment => '',
                     },
                    ],
       },
  
  
       ### 
       'test-dev' => 
       {
        title => 'Test Development',
        desc  => <<"DESC",
  The B<test-dev> mailing list is for discussing I<Apache HTTP Test>
  L<http://httpd.apache.org/test/> project. It's linked from here,
  because mod_perl's sub-project C<Apache::Test> is discussed on this
  list.
  DESC
        addr  => {
                  subscribe        => 'test-dev-subscribe@httpd.apache.org',
                  subscribe_digest => 'test-dev-subscribe-digest@httpd.apache.org',
                  unsubscribe      => 'test-dev-unsubscribe@httpd.apache.org',
                  help             => 'test-dev-help@httpd.apache.org',
                 },
        archives => [
                     {
                      title   => 'www.apachelabs.org',
                      link    => 'http://www.apachelabs.org/test-dev/',
                      comment => '',
                     },
                     {
                      title   => 'Mbox file',
                      link    => 'http://httpd.apache.org/mail/test-dev/',
                      comment => '',
                     },
                    ],
       },
  
  
  
       ### 
       'test-cvs' => 
       {
        title => 'Test Development CVS',
        desc  => <<"DESC",
  The B<test-cvs> list is the list where cvs commits for the I<Apache
  HTTP Test> L<http://httpd.apache.org/test/> project are sent,
  including cvs commits of changes for mod_perl's sub-project
  C<Apache::Test>.
  DESC
        addr  => {
                  subscribe        => 'test-dev-subscribe@httpd.apache.org',
                  subscribe_digest => 'test-dev-subscribe-digest@httpd.apache.org',
                  unsubscribe      => 'test-dev-unsubscribe@httpd.apache.org',
                  help             => 'test-dev-help@httpd.apache.org',
                 },
        archives => [
                     {
                      title   => 'Mbox file',
                      link    => 'http://httpd.apache.org/mail/test-cvs/',
                      comment => '',
                     },
                    ],
       },
  
  
  
       ### 
       advocacy => 
       {
        title => 'mod_perl Advocacy',
        desc  => <<"DESC",
  A mailing list for B<mod_perl advocacy issues>,
  discussions about the site, etc. 
  DESC
        addr  => {
                 subscribe        => 'docs-dev-subscribe@perl.apache.org',
                  subscribe_digest => 'docs-dev-subscribe-digest@perl.apache.org',
                  unsubscribe      => 'docs-dev-unsubscribe@perl.apache.org',
                  help             => 'docs-dev-help@perl.apache.org',
                 },
        archives => [
                     {
                      title   => 'www.mail-archive.com',
                      link    => 'http://www.mail-archive.com/advocacy@perl.apache.org/',
                      comment => '',
                     },
                     {
                      title   => 'Mbox file',
                      link    => 'http://perl.apache.org/mail/advocacy/',
                      comment => '',
                     },
                    ],
       },
  
  
  
  
  
  
       ### 
       announce => 
       {
        title => 'Announce',
        desc  => <<"DESC",
  The B<announce> list is for announcing mod_perl and related products
  releases.
  DESC
        addr  => {
                  subscribe        => 'announce-subscribe@perl.apache.org',
                  subscribe_digest => 'announce-subscribe-digest@perl.apache.org',
                  unsubscribe      => 'announce-unsubscribe@perl.apache.org',
                  help             => 'announce-help@perl.apache.org',
                 },
        archives => [
                     {
                      title   => 'Mbox file',
                      link    => 'http://perl.apache.org/mail/announce/',
                      comment => '',
                     },
                    ],
       },
  
  
  
  
       ### 
       embperl => 
       {
        title => 'Embperl',
        desc  => <<"DESC",
  The B<embperl mailing list> is available for I<Embperl>
  L<http://perl.apache.org/embperl/> users and developers to share
  ideas, ask question and solve problems.
  DESC
        addr  => {
                  subscribe        => 'embperl-subscribe@perl.apache.org',
                  subscribe_digest => 'embperl-subscribe-digest@perl.apache.org',
                  unsubscribe      => 'embperl-unsubscribe@perl.apache.org',
                  help             => 'embperl-help@perl.apache.org',
                 },
        archives => [
                     {
                      title   => 'ecos.de',
                      link    => 'http://www.ecos.de/~mailarc/embperl/',
                      comment => '',
                     },
                     {
                      title   => 'geocrawler.com',
                      link    => 'http://www.geocrawler.com/lists/3/Web/187/0/',
                      comment => '',
                     },
                     {
                      title   => 'Mbox file',
                      link    => 'http://perl.apache.org/mail/embperl',
                      comment => '',
                     },
                    ],
       },
  
  
  
  
  
  
       ### 
       asp => 
       {
        title => 'ASP',
        desc  => <<"DESC",
  The B<asp> list is for C<Apache::ASP> discussions.
  DESC
        addr  => {
                  subscribe        => 'asp-subscribe@perl.apache.org',
                  subscribe_digest => 'asp-subscribe-digest@perl.apache.org',
                  unsubscribe      => 'asp-unsubscribe@perl.apache.org',
                  help             => 'asp-help@perl.apache.org',
                 },
        archives => [
                     {
                      title   => 'mail-archive.com',
                      link    => 'http://www.mail-archive.com/asp%40perl.apache.org/',
                      comment => '',
                     },
                     {
                      title   => 'Mbox file',
                      link    => 'http://perl.apache.org/mail/asp/',
                      comment => '',
                     },
                    ],
       },
  
  
      );
  
  1;
  
  
  
  1.1                  modperl-docs/src/maillist/email-etiquette.pod
  
  Index: email-etiquette.pod
  ===================================================================
  =head1 The mod_perl Mailing List Guidelines
  
  =for html <!--
  email-etiquette: This version dated 21 October 2001.
  Please make changes to the .pod source and use pod2html to
  create the .html file, thanks.  ged@jubileegroup.co.uk
  -->
  
  Ninety percent of the questions asked on the List have already been
  asked before, and answers will be found at one of the links below.
  Before you post to the mod_perl List, please read the following.
  Hopefully it will save you (and everyone else) some time.
  
  Except where noted the language of all documents is English.
  
  
  =head1 What is mod_perl?
  
  http://perl.apache.org/guide/intro.html#What_is_mod_perl
  
  
  =head1 What you need to know to be able to use mod_perl
  
  You need to know about Apache, CGI and of course about Perl itself.
  This document explains where to find more information about these and
  related topics.
  
  If you already have Perl on your machine then it's likely that you
  already have all the Perl documentation.  Try typing `perldoc perldoc'
  and `man perl'.
  
  
  =head1 How To Get Help With mod_perl Itself
  
  http://perl.apache.org/ is the mod_perl home, it has links for
  everything related to mod_perl.
  
  
  =head2 Documentation which comes with the distribution
  
  Read the documents which came with mod_perl, particularly the ones
  named INSTALL, README and SUPPORT.  Also read the documents to which
  they refer.  Read all the relevant documentation about your operating
  system, any tools you use such as compilers and databases, and about
  the Apache Web server.
  
  You will get a much better response from the mod_perl List if you can
  show that you have made the effort of reading the documentation.
  
  
  =head2 Other documentation
  
  There are dozens of references to many authoritative resources at
  
  http://perl.apache.org/guide/help.html
  
  
  =head1 How to get on (and off!) the mod_perl mailing list
  
  =head2 To Get On The List
  
  There are two stages to getting on the list.  Firstly you have to send
  a mail message to: modperl-subscribe@apache.org and wait for receiving
  a response from the mail server with instructions to proceed.
  
  Secondly you have to do what it says in the instructions.  After you
  are subscribed you will receive a messsage with lots of useful
  information about the List.  Read it.  Print it, even.  Save a copy of
  it.  You *can* get another copy of it, but then you'll feel silly.
  
  Traffic on the mod_perl list can be high at times, several hundred
  posts per week, so you might want to consider subscribing to the
  mod_perl digest list as an alternative to the mod_perl list. To do so,
  send an email to modperl-digest-subscribe@apache.org instead.
  
  
  =head2 To Get Off The List
  
  Instructions on how to unsubscribe are posted in the headers of every
  message which you receive from the List.  All you have to do is send a
  message to: modperl-unsubscribe@apache.org (or
  modperl-digest-unsubscribe@apache.org if you are on the digest list)
  
  To prevent malicious individuals from unsubscribing other people, the
  mailing list software insists that the message requesting that an
  email address be unsubscribed comes from that same address.  If your
  email address has changed you can still unsubscribe, but you will need
  to read the help document, which can be recieved by sending an empty
  email to: modperl-help@apache.org
  
  
  =head1 To post to the List
  
  I<Posting> to the list is just sending a message to the address which
  you will be given after you subscribe.
  
  Your message will not be accepted unless you have first
  L<subscribed|To Get On The List>.
  
  Do not post to modperl-subscribe@apache.org, except to subscribe to
  the list!  Please do not post to the list itself to attempt to
  unsubscribe from it.
  
  
  =head2 Private Mail
  
  Please do not send private mail to list members unless it is
  invited. Even if they have answered your question on the list, you
  should continue the discussion on the list.
  
  On the other hand, if someone replies to you personally, you shouldn't
  forward the reply to the list unless you have received permission from
  this person.
  
  
  =head2 Other Tips
  
  
  =head3 Read The Documentation
  
  Please read as much of the documentation as you can before posting.
  Please also try to see if your question has been asked recently, there
  are links to searchable archives of the list on the mod_perl home page
  http://perl.apache.org/.
  
  
  =head3 Give Full Information
  
  Don't forget that the people reading the list have no idea even what
  operating system your computer runs unless you tell them.  When
  reporting problems include at least the information requested in the
  document entitled I<SUPPORT> which you will find in the mod_perl
  source distribution.
  
  You can find many excellent examples of posts with good supporting
  information by looking at the mod_perl mailing list archives.  There
  are URLs for several archives (with several different search engines)
  on the mod_perl home page.  Followup posts will show you how easy the
  writer made it for the person who replied to deduce the problem and to
  suggest a way of solving it, or to find some further item information.
  
  If after reading the I<SUPPORT> document you think that more
  information is needed for your particular problem, but you still don't
  know what information to give, ask on the list rather than sending
  long scripts and configuration files which few people will have the
  time to read.
  
  
  =head3 Error Messages
  
  If you include error messages in your post, make sure that they are
  EXACTLY the messages which you saw.  Use a text editor to transfer
  them directly into your message if you can.  Try not to say things
  like "the computer said something about not recognizing a command" but
  instead to say something like this:
  
  "When logged in as root I typed the command:
  
    httpd -X
  
  at the console and on the console I saw the message
  
    Syntax error on line 393 of /etc/httpd/conf/httpd.conf: Invalid
    command 'PerlHandler', perhaps mis-spelled or defined by a module
    not included in the server configuration [FAILED]"
  
  
  =head3 The Subject Line
  
  The I<Subject:> line is B<very> important.  Choose an B<informative>
  I<Subject> line for the mail header.  Busy list members will skip
  messages with unclear I<Subject> lines.
  
  
  =head3 Preserve The Threads
  
  Messages which all have the same I<Subject> line text (possibly
  preceded by the word "Re:" which is automatically added by your
  mailer) are together known as a "thread".  List members and mail
  archive use mail unique-ids and/or the Subject line to sort mail.  Do
  not change the text without a very good reason, because this may break
  the thread.  Breaking the thread makes it difficult to follow the
  discussion and can be very confusing.  It may be better to start a new
  thread than to continue an old one if you change the theme.
  
  
  =head3 Post in PLAIN TEXT
  
  Do not post in HTML.  Microsoft users in particular should take
  careful note of this.  Use either the US-ASCII or ISO-8859-1 (Latin-1)
  character set, do not use other character sets which may be designed
  for those who do not speak English and which may not be displayable on
  many terminals.  If you ignore this advice then the chances are
  greater that your message will not be read.
  
  
  =head3 Time and Bandwidth
  
  Remember that thousands of people may read your messages.  To save
  time and to keep badwidth usage to a minimum, please keep posts
  reasonably short, but please make it clear precisely what you are
  asking.  If you can, send a *small* example of a script or
  configuration which reproduces your problem.  Please do not send long
  scripts which cannot easily be understood.  Please do not send large
  attachments of many kilobytes, if they are needed then put them on the
  Web somewhere or say in your message that you can send them separately
  if they are requested.
  
  
  =head3 Tags
  
  It can be helpful if you use a C<[tag]> in square brackets in the
  I<Subject:> line, as well as the brief description of your post.
  
  Some suggested tags are:
  
    ADMIN		Stuff about running the List.
  
    ADVOCACY	Promoting the use of mod_perl, printing T-shirts, stuff like
  		that.  Please don't start another discussion about whether we
  		should put this on a different list, we've been there before.
  
    ANNOUNCE	Announcements of new software tools, packages and updates.
  
    BENCHMARK	Apache/mod_perl performance issues.
  
    BUG		Report of possible fault in mod_perl or associated software
  		- it's better if you can send a patch instead!
  
    DBI		Stuff generally concerning Apache/mod_perl interaction
  		with databases.
  
    FYI		For information only.
  
    JOB		Any post about mod_perl jobs is welcome as long as it is
  		brief and to the point.  Note: Not "JOBS".
  
    MASON		Jonathan Swartz' implementation of Perl embedded in HTML.
  
    NEWS		Items of news likely to be interesting to mod_perlers.
  
    OT	        Off-topic items, please try to keep traffic low.
  
    PATCH		Suggested fix for fault in mod_perl or associated software.
  
    QUESTION	Questions about mod_perl which is not covered by one of the
  		more specific headings.
  
    RareModules	Occasional reminders about little-used modules on CPAN.
  
    RFC		Requests for comment from the mod_perl community.
  
    SITE		Things about running the Apache/mod_perl servers.
  
    SUMMARY	After investigation and perhaps fixing a fault, and after an
  		extended discussion of a specific topic, it is helpful if
  		someone summarizes the thread.  Don't be shy, everyone will
  		appreciate the effort.
  
  If you can't find a tag which fits your subject, don't worry.  If you
  have a very specific subject to discuss, feel free to choose your own
  tag, for example C<[mod_proxy]> or C<[Perl Sections]> but remember
  that the main reasons for the I<Subject> line are to save people time
  and to improve the response to your posts.  It does not matter whether
  you use C<[UPPER CASE]> or C<[lower case]> or even a C<[Mixture Of
  Both]> in the tag.  Try to keep the tag short.  The tag should be the
  first thing in the I<Subject> line.
  
  
  =head3 If You Don't Get a Reply
  
  Sometimes you will not get a reply.  Try to be patient, but it is OK
  to try again after a few days.  Sometimes the replies you get will be
  very short.  Please do not worry about that.  People are very busy,
  that's all.
  
  Of course if your post is C<[OT]> for the list then you may not get a
  reply, or you may get one telling you to try a different forum.
  
  
  =head3 If You Don't Understand a Reply
  
  Just say so.
  
  
  =head3 General Perl and Apache questions
  
  The mod_perl list is NOT for general questions about Apache and the
  Perl language.  The majority view is tolerant of off-topic posts, but
  it is considered impolite to post general Perl and Apache questions on
  the mod_perl list.  The best you can hope for is a private reply and a
  polite reminder that the question is off-topic for this list.  If you
  catch someone on a bad day, you might not get the best.  There are
  often bad days in software development departments...
  
  If the Perl and Apache documentation has not answered your question
  then you could try looking at http://lists.perl.org/ or one of the
  comp.lang.* newsgroups.  From time to time there are efforts to start a
  dedicated Perl mailing list and these usually result in a message or
  two on the mod_perl list, so it might be worth your while to search
  the archives.
  
  Please note that there are now separate mailing lists for ASP, EmbPerl
  and Mason, but although we keep trying to get a separate list off the
  ground for I<Advocacy> it always seems to end up back on the mod_perl
  list.
  
  
  =head1 Replying to posts
  
  
  =head2 The "Subject:" line
  
  Make sure that you include the exact I<Subject:> from the original
  post, unmodified.  This makes it much easier for people (and for the
  mail software) to deal with the mail.  If you must change the subject
  line then please append the words "was originally" plus the original
  subject line to your new subject line so that folks can see what is
  going on.
  
  
  =head2 Extracts From Other Posts
  
  When replying to a post, please include B<short> excerpts from the
  post to which you are replying so that others can follow the
  conversation without having to wade through reams of superfluous text.
  If you are lazy about this then messages can get very long indeed and
  can become a burden to the other people who might be trying to help.
  Make sure that there is a clear distinction between the text(s) of the
  message(s) to which you are replying and your reply itself.
  
  
  =head2 Unnecessary Duplication
  
  If you know that the intended recipients are subscribed to the List,
  there is no need to send messages both to them and to the list.  They
  will get more than one copy of the message which is wasteful.
  
  
  =head2 Private replies
  
  It is helpful to keep most of your replies on the list, so that others
  see that help is being given and so they do not waste time on problems
  which have already been solved.  Where it is appropriate to take a
  discussion off the list (for example where it veers off-topic, as
  often happens), say so in a message so that everyone is aware of it.
  
  
  =head2 Flames
  
  The readers of the mod_perl List aren't interested in that kind of
  thing.  Don't get involved.
  
  
  =head1 The mod_perl Guide
  
  You absolutely *must* read the mod_perl Guide.
  
  It is a large document, you probably will want to download it and read
  it off-line.  If you get the source (see below, L<Corrections and
  Contributions>) it comes with a build file to turn the .pod (Plain Old
  Documentation) source into HTML, .ps (PostScript) and .pdf (Portable
  Document Format).  You will need at least Perl version 5.005 to build
  it.  If you browse the Guide on-line you can use one of the search
  engines to find things in it.  If you build and browse your own local
  HTML copy of the Guide, some of the links in it will not work unless
  you are connected to the Internet.  Some people prefer to work
  offline, using tools like `grep' or `mc' to search the .pod source
  directly.
  
  
  =head2 Finding the Guide
  
  The URL of the Guide is:
  
  http://perl.apache.org/guide/
  
  The sources are available from CPAN and other mirrors:
  
  http://www.perl.com/CPAN-local/authors/id/S/ST/STAS/
  
  
  =head2 Corrections And Contributions
  
  Corrections and additions to the Guide are welcome.  The original is
  kept in .pod format, and it is converted to other formats by Perl
  code.  The Guide changes rather frequently (the CVS snapshot is
  updated every six hours!) so if you want to make a contribution make
  sure that you get the latest version of the Guide source from
  
  http://stason.org/guide-snapshots
  
  and make your changes to the .pod source only.  In the first instance,
  post your changes to the mod_perl List for comment.
  
  
  =begin html <br><hr><br><!--
  11 Jun 2000  Initial publication for comment
  18 Dec 2000  Minor corrections and additions
  21 Oct 2001  Minor corrections, converted to .POD format
  -->
  
  =end html
  
  email-etiquette: This version dated 17 October 2001.
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-advocacy.pod
  
  Index: list-advocacy.pod
  ===================================================================
  =head1 NAME
  
  mod_perl Advocacy mailing list
  
  =head1 Description
  
  A mailing list for B<mod_perl advocacy issues>,
  discussions about the site, etc. 
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:docs-dev-subscribe@perl.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:docs-dev-subscribe-digest@perl.apache.org
  
  =item * unsubscribe from the list
  
  mailto:docs-dev-unsubscribe@perl.apache.org
  
  =item * get help with the list
  
  mailto:docs-dev-help@perl.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * www.mail-archive.com
  
  http://www.mail-archive.com/advocacy@perl.apache.org/ 
  
  =item * Mbox file
  
  http://perl.apache.org/mail/advocacy/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-announce.pod
  
  Index: list-announce.pod
  ===================================================================
  =head1 NAME
  
  Announce mailing list
  
  =head1 Description
  
  The B<announce> list is for announcing mod_perl and related products
  releases.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:announce-subscribe@perl.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:announce-subscribe-digest@perl.apache.org
  
  =item * unsubscribe from the list
  
  mailto:announce-unsubscribe@perl.apache.org
  
  =item * get help with the list
  
  mailto:announce-help@perl.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * Mbox file
  
  http://perl.apache.org/mail/announce/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-asp.pod
  
  Index: list-asp.pod
  ===================================================================
  =head1 NAME
  
  ASP mailing list
  
  =head1 Description
  
  The B<asp> list is for C<Apache::ASP> discussions.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:asp-subscribe@perl.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:asp-subscribe-digest@perl.apache.org
  
  =item * unsubscribe from the list
  
  mailto:asp-unsubscribe@perl.apache.org
  
  =item * get help with the list
  
  mailto:asp-help@perl.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * mail-archive.com
  
  http://www.mail-archive.com/asp%40perl.apache.org/ 
  
  =item * Mbox file
  
  http://perl.apache.org/mail/asp/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-cvs.pod
  
  Index: list-cvs.pod
  ===================================================================
  =head1 NAME
  
  Development CVS mailing list
  
  =head1 Description
  
  The B<modperl-cvs> list is the list where you can watch mod_perl
  getting patched.  No real discussions happen on this list, but if you
  want to know about the latest changes in the mod_perl core before the
  rest of the people, this is a list to be on. Everytime something gets
  committed to the modperl CVS repository a mail is sent here with the
  diff.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:modperl-cvs-subscribe@apache.org
  
  =item * subscribe to the list's digest
  
  mailto:modperl-cvs-subscribe@apache.org
  
  =item * unsubscribe from the list
  
  mailto:modperl-cvs-unsubscribe@apache.org
  
  =item * get help with the list
  
  mailto:modperl-cvs-help@apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * marc.theaimsgroup.com
  
  http://marc.theaimsgroup.com/?l=apache-modperl-cvs&r=1&w=2#apache-modperl-cvs 
  
  =item * Mbox file archive
  
  http://perl.apache.org/mail/modperl-cvs/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-dev.pod
  
  Index: list-dev.pod
  ===================================================================
  =head1 NAME
  
  mod_perl Development mailing list
  
  =head1 Description
  
  The B<development> mailing list is for discussions about the
  development of the core mod_perl.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:dev-subscribe@perl.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:dev-subscribe-digest@perl.apache.org
  
  =item * unsubscribe from the list
  
  mailto:dev-unsubscribe@perl.apache.org
  
  =item * get help with the list
  
  mailto:dev-help@perl.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * Mbox file
  
  http://perl.apache.org/mail/dev/ 
  
  =item * marc.theaimsgroup.com
  
  http://marc.theaimsgroup.com/?l=apache-modperl-dev&r=1&w=2#apache-modperl-dev 
  
  =item * www.mail-archive.com
  
  http://www.mail-archive.com/dev%40perl.apache.org/ 
  
  =item * www.geocrawler.com
  
  http://www.geocrawler.com/lists/3/web/182/0/ (it throws all modperl lists in one bundle, not good)
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-docs-cvs.pod
  
  Index: list-docs-cvs.pod
  ===================================================================
  =head1 NAME
  
  Documentation CVS mailing list
  
  =head1 Description
  
  A mailing list where all the B<mod_perl documentation modification
  commits> are sent.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:docs-cvs-subscribe@perl.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:docs-cvs-subscribe-digest@perl.apache.org
  
  =item * unsubscribe from the list
  
  mailto:docs-cvs-unsubscribe@perl.apache.org
  
  =item * get help with the list
  
  mailto:docs-cvs-help@perl.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * Mbox file
  
  http://perl.apache.org/mail/docs-cvs/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-docs-dev.pod
  
  Index: list-docs-dev.pod
  ===================================================================
  =head1 NAME
  
  Documentation mailing list
  
  =head1 Description
  
  A mailing list for discussing B<mod_perl documentation>
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:docs-dev-subscribe@perl.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:docs-dev-subscribe-digest@perl.apache.org
  
  =item * unsubscribe from the list
  
  mailto:docs-dev-unsubscribe@perl.apache.org
  
  =item * get help with the list
  
  mailto:docs-dev-help@perl.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * Mbox file
  
  http://perl.apache.org/mail/docs-dev/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-embperl.pod
  
  Index: list-embperl.pod
  ===================================================================
  =head1 NAME
  
  Embperl mailing list
  
  =head1 Description
  
  The B<embperl mailing list> is available for I<Embperl>
  L<http://perl.apache.org/embperl/> users and developers to share
  ideas, ask question and solve problems.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:embperl-subscribe@perl.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:embperl-subscribe-digest@perl.apache.org
  
  =item * unsubscribe from the list
  
  mailto:embperl-unsubscribe@perl.apache.org
  
  =item * get help with the list
  
  mailto:embperl-help@perl.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * ecos.de
  
  http://www.ecos.de/~mailarc/embperl/ 
  
  =item * geocrawler.com
  
  http://www.geocrawler.com/lists/3/Web/187/0/ 
  
  =item * Mbox file
  
  http://perl.apache.org/mail/embperl 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-test-cvs.pod
  
  Index: list-test-cvs.pod
  ===================================================================
  =head1 NAME
  
  Test Development CVS mailing list
  
  =head1 Description
  
  The B<test-cvs> list is the list where cvs commits for the I<Apache
  HTTP Test> L<http://httpd.apache.org/test/> project are sent,
  including cvs commits of changes for mod_perl's sub-project
  C<Apache::Test>.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:test-dev-subscribe@httpd.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:test-dev-subscribe-digest@httpd.apache.org
  
  =item * unsubscribe from the list
  
  mailto:test-dev-unsubscribe@httpd.apache.org
  
  =item * get help with the list
  
  mailto:test-dev-help@httpd.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * Mbox file
  
  http://httpd.apache.org/mail/test-cvs/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-test-dev.pod
  
  Index: list-test-dev.pod
  ===================================================================
  =head1 NAME
  
  Test Development mailing list
  
  =head1 Description
  
  The B<test-dev> mailing list is for discussing I<Apache HTTP Test>
  L<http://httpd.apache.org/test/> project. It's linked from here,
  because mod_perl's sub-project C<Apache::Test> is discussed on this
  list.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:test-dev-subscribe@httpd.apache.org
  
  =item * subscribe to the list's digest
  
  mailto:test-dev-subscribe-digest@httpd.apache.org
  
  =item * unsubscribe from the list
  
  mailto:test-dev-unsubscribe@httpd.apache.org
  
  =item * get help with the list
  
  mailto:test-dev-help@httpd.apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * www.apachelabs.org
  
  http://www.apachelabs.org/test-dev/ 
  
  =item * Mbox file
  
  http://httpd.apache.org/mail/test-dev/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/list-users.pod
  
  Index: list-users.pod
  ===================================================================
  =head1 NAME
  
  mod_perl Users mailing list
  
  =head1 Description
  
  The B<mod_perl users mailing list> is available for
  mod_perl users and developers to share ideas, solve problems and discuss
  things related to mod_perl and the C<Apache::*> modules.
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:modperl-subscribe@apache.org
  
  =item * subscribe to the list's digest
  
  mailto:modperl-subscribe@apache.org
  
  =item * unsubscribe from the list
  
  mailto:modperl-unsubscribe@apache.org
  
  =item * get help with the list
  
  mailto:modperl-help@apache.org
  
  =back
  
  =head1 Searchable Archives
  
  =over
  
  =item * Epigone
  
  http://mathforum.org/epigone/modperl 
  
  =item * msgs.securepoint.com
  
  http://msgs.securepoint.com/cgi-bin/get/apache-current.html 
  
  =item * groups.yahoo.com
  
  http://groups.yahoo.com/group/modperl/ 
  
  =item * www.geocrawler.com
  
  http://www.geocrawler.com/lists/3/web/182/0/ (throws all modperl lists in one bundle)
  
  =item * www.mail-archive.com
  
  http://www.mail-archive.com/modperl@apache.org/ 
  
  =item * www.davin.ottawa.on.ca
  
  http://www.davin.ottawa.on.ca/archive/modperl/ 
  
  =item * marc.theaimsgroup.com
  
  http://marc.theaimsgroup.com/?l=apache-modperl&r=1&w=2#apache-modperl 
  
  =item * www.egroups.com
  
  http://www.egroups.com/group/modperl/ 
  
  =item * Mbox file archive
  
  http://perl.apache.org/mail/modperl/ 
  
  =back
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/maillist.tmpl
  
  Index: maillist.tmpl
  ===================================================================
  =head1 NAME
  
  [% list.title -%] mailing list
  
  =head1 Description
  
  [% list.desc -%]
  
  Please read the mailing list L<Guidelines|email-etiquette> before
  posting.
  
  =head1 Subscription Information
  
  To subscribe or unsubscribe send an empty email to one of the
  following addresses.
  
  =over
  
  =item * subscribe to the list
  
  mailto:[% list.addr.subscribe %]
  
  =item * subscribe to the list's digest
  
  mailto:[% list.addr.subscribe_digest %]
  
  =item * unsubscribe from the list
  
  mailto:[% list.addr.unsubscribe %]
  
  =item * get help with the list
  
  mailto:[% list.addr.help %]
  
  =back
  
  =head1 Searchable Archives
  
  [% IF list.archives.size -%]
  =over
  [% FOREACH arch = list.archives -%]
  [% IF arch -%]
  
  =item * [% arch.title %]
  
  [% arch.link -%] [% arch.comment -%]
  
  [% END -%]
  [% END -%]
  
  =back
  [% END -%]
  
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/maillist/make.pl
  
  Index: make.pl
  ===================================================================
  #!/usr/bin/perl
  
  use strict;
  use warnings;
  
  use Template;
  
  use vars qw(%data);
  require "./data.pl";
  
  my $tmpl_file = "maillist.tmpl";
  my $config = {
                INCLUDE_PATH => ".",
                OUTPUT_PATH  => ".",
               };
  my $template = Template->new($config) or die $Template::ERROR, "\n";
  
  while (my($k,$v) = each %data) {
      generate($k, $v);
  }
  
  sub generate {
      my($node, $data) = @_;
  
      my $filename = "list-$node.pod";
      print "generating $filename\n";
  
      #  use Data::Dumper;
      #  print Dumper \@search_path;
      my $vars = {list => $data};
      $template->process($tmpl_file, $vars, $filename)
          or die "error: ", $template->error(), "\n";
  
  }
  
  
  
  1.1                  modperl-docs/src/products/apache-modlist.html
  
  Index: apache-modlist.html
  ===================================================================
  <html>
  <head>
  <title>The Apache/Perl Module List</title>
  </head>
  <body>
  <h1>The Apache/Perl Module List</h1>
  
  Maintained by <a href="mailto:dougm@pobox.com">Doug MacEachern</a>,
  <br><i> $Revision: 1.1 $ $Date: 2002/01/05 19:15:41 $</i>
  
  <h3>Contents</h3>
  <a href="#intro">Introduction</a><br>
  <a href="#part">Playing Your Part</a><br>
  <a href="#modules">The Apache/Perl Modules</a><br>
  <a href="#where">Where Are The Modules Kept?</a><br>
  <a href="#contacts">Contacts</a><br>
  <a href="#info">More Info</a><br>
  <p>
  <h3><a name="intro">Introduction</a></h3>
  The Apache/Perl module list is here for the same reason as the
  main <a href="http://www.perl.com/CPAN/modules/00modlist.long.html">
  Perl module list</a>, to change duplication of effort into cooperation 
  and help to save the world!  Apache/Perl modules are somewhat different
  from the many others found on CPAN.  Most Perl modules are
  "building blocks", developers use them
  to build applications or even more building blocks.  
  It just so happens
  that Apache/Perl modules are encapsulted inside a namespace and .pm file.  
  However, this does not make them all building blocks, many are just like
  apache modules written in C, you install, edit the server configuration
  files and you're done.   Before you start a new module, consider this:
  Apache/Perl modules are useless outside of mod_perl and Apache.  Do your best
  to design such that your <b>Apache::*</b> module will make good use of the 
  building blocks found on CPAN, putting together new building blocks where
  appropriate and simply glue them together with the Apache
  API, keeping the <b>Apache::*</b> modules very small.
  <p>
  These modules will also serve as good examples, showing you where modules
  can step in during a stage of a request with <b>Perl*Handler</b> callbacks.
  You'll also see how and when to use the Apache API methods.
  
  <h3><a name="part">Playing Your Part</a></h3>
  Apache and Perl are world-wide collaborative efforts, naturally, the 
  Apache/Perl integration project is the same.<br>
  You've started on the right foot simply by reading this document, thanks!<br>
  Please be sure you've read the 
  main <a href="http://www.perl.com/CPAN/modules/00modlist.long.html">
  Perl module list</a>, all that is said there is relevant here!
  <p>
  If you have any additions or changes for the list, please send them to
  the Apache/Perl <a href="mailto:modperl@apache.org"> mailing list </a>
  or to <a href="mailto:dougm@pobox.com">me</a>.  
  <p>
  If you wish to share you module(s) the Perl way, by putting them on CPAN,
  send a request to <a href="mailto:dougm@pobox.com">me</a> or 
  <a href="mailto:modules@perl.org">modules@perl.org</a> to get set up with a
  PAUSE user id and directory.
  <p>
  <b>HINT</b>:  For a nice set of template files try this:
  <pre>
  % h2xs -AX -n Apache::YourPackageName
  </pre>
  
  <h3><a name="modules">The Apache/Perl modules</a></h3>
  <pre>
  Apache::
  
  * PerlHandler's
  AddrMunge	bdpf	Munge email addresses in webpages	MJD
  AutoIndex	Rdcf	Lists directory content			GOZER
  Archive		bdpf	Make linked contents pages of .tar(.gz) JPETERSON
  <a href="http://www.nodeworks.com/asp/">ASP</a>		bdpO	Implement Active Server Pages		CHAMAS
  BBS		cdpO 	BBS like System for Apache		MKOSS
  CallHandler	cdpf	Map filenames to subroutine calls	GKNOPS
  Cachet		i	OutputChain with caching		MERLYN
  Compress	bdpO	Compress content on the fly		KWILLIAM
  Dir		i	OO (subclassable) mod_dir replacement 	DOUGM
  Dispatch        bmpf    Call PerlHandlers as CGI scripts        GEOFF
  <a href="http://perl.apache.org/embperl/">Embperl</a>		Rmcf	Embed Perl in HTML			GRICHTER
  EmbperlChain	bdpO	Feed handler output to Embperl		CHOLET
  ePerl		Rdpr  	Fast emulated Embedded Perl (ePerl)	RSE            
  Filter		RdpO	OutputChain like functionality		KWILLIAM
  Forward		bdpO	OutputChain like functionality		MPB
  FTP		i	Full-fledged FTP proxy			PMKANE
  Gateway		bdpf	A multiplexing gateway			CCWF
  GzipChain	bmpf	Compress files on the fly		ANDK
  iNcom		bdpf	An e-commerce framework			FRAJULAC
  Layer		bdpf	Layer content tree over one or more	SAM
  Magick		bdpf	Image conversion on-the-fly		MPB
  <a href="http://www.masonhq.com">Mason</a>		bdpO	Build sites w/ modular Perl/HTML blocks	JSWARTZ
  ModuleDoc	bdpf	Self documentation for Apache C modules	DOUGM
  NavBar		bdpO	Navigation bar generator		MPB
  NNTPGateway	adpf	A Web based NNTP (usenet) interface	BOUBAKER
  OutputChain     bmpO	Chain output of stacked handlers	JANPAZ
  OWA		bdpf	Runs Oracle PL/SQL Web Toolkit apps	SVINTO
  PageKit         ampO    Application framework w/ HTML::Template TJMATHER
  PassFile	bdpf	Send file via OutputChain		ANDK
  PerlRun		Smpf	Run unaltered CGI scripts		APML
  PrettyPerl      Rdpf    Syntax highlighting for Perl files	RA
  PrettyText	bdpf	Re-format .txt files for client display	CHTHORMAN
  RandomLocation	bdpf	Random image display 			RKOBES
  Registry	Smpf	Run unaltered CGI scripts 		APML
  RobotRules	cdpf	Enforce robot rules (robots.txt)	PARKER
  Sandwich	bmpf	Layered document (sandwich) maker	VKHERA
  ShowRequest	bdpf	Show phases and module participation	DOUGM
  SimpleReplace   ampf    Simple replacement template tool        GEOFF
  SSI		RmpO	Implement server-side includes in Perl	KWILLIAM
  SSIChain	bmpO	SSI on other modules output		JANPAZ
  Stage		Rdpf	Manage a document staging directory	ANDK
  TarGzip		c						ZENIN
  TimedRedirect	bdpf	Redirect urls for a given time period	PETERM 
  UploadSvr	bdpO	A lightweight publishing system		ANDK
  VhostSandwich  cdpf    Virtual host layered document maker     MARKC
  WDB		bdpf	Database query/edit tool using DBI	JROWE
  WebSQL		cdpO	Adaptation of Sybase's WebSQL		GUNTHER
  
  * PerlInitHandler's
  RequestNotes    ampf    Pass cookie & form data around pnotes   GEOFF
  
  * PerlHeaderParserHandler's
  AgentDeny	cdpf	Deny abusive User-Agents		ROBH
  
  * PerlAuthenHandler's
  AuthAny		bdpf	Authenticate with any username/password	MPB
  AuthenCache	bmpf	Cache authentication credentials	JBODNAR
  AuthCookie	RdpO	Authen + Authz via cookies		KWILLIAM
  AuthenDBI	bmpO	Authenticate via Perl's DBI		MERGL
  AuthenGSS	cdpf    Generic Security Service (RFC 2078)	DOUGM
  AuthenIMAP	bdpf	Authentication via an IMAP server	MICB
  AuthenPasswdSrv bdpf	External authentication server		JEFFH
  AuthenPasswd	bdpf	Authenticate against /etc/passwd	DEP
  AuthLDAP	bdpf	LDAP authentication module		CDONLEY
  AuthPerLDAP	bdpf	LDAP authentication module (PerLDAP)	HENRIK
  AuthenNIS	bdpf	NIS authentication			DEP
  AuthNISPlus	bdpF	NIS Plus authentication/authorization	VALERIE
  AuthenRaduis	bdpf	Authentication via a Radius server	DANIEL
  AuthenSmb	bdpf	Authenticate against NT server		PARKER
  AuthenURL	bdpf	Authenticate via another URL		JGROENVEL
  DBILogin	bdpf	Authenticate to backend database 	JGROENVEL
  DCELogin	bdpf	Obtain a DCE login context		DOUGM
  PHLogin		bdpf	Authenticate via a PH database		JGROENVEL
  TicketAccess	bdpO	Ticket based access/authentication	MPB
  
  * PerlAuthzHandler's
  AuthCookie	bdpf	Authen + Authz via cookies		EBARTLEY
  AuthzAge	bmpf	Authorize based on age			APML
  AuthzDCE	cdpf	DFS/DCE ACL based access control	DOUGM
  AuthzDBI	bmpO	Group authorization via Perl's DBI	MERGL
  AuthzGender	bdpf	Authorize based on gender		MPB
  AuthzNIS	bdpf	NIS authorization			DEP
  AuthzPasswd	bdpf	Authorize against /etc/passwd		DEP
  AuthzSSL	bdpf	Authorize based on client cert		MPB
  RoleAuthz	i	Role-based authorization		DOUGM
  
  * PerlAccessHandler's
  AccessLimitNum	bmpf	Limit user access by number of requests	APML
  BlockAgent	bdpf	Block access from certain agents	MPB
  DayLimit	bmpf	Limit access based on day of week	MPB
  IPThrottle	cdpf	Limit bandwith consumption by IP	MERLYN
  RobotLimit	cdpf	Limit access of robots			PARKER
  SpeedLimit	bdpf	Control client request rate		MPB
  
  * PerlTypeHandler's
  AcceptLanguage	cdpf	Send file type based on language pref	ROBH
  MIME		bdcf	Perl implementation of mod_mime		MPB
  MimeDBI		bdpf	Type mapping from a DBI database	MPB
  MimeXML		bdpf	mime encoding sniffer for XML files	MSERGEANT
   
  * PerlTransHandler's    (May also include a PerlHandler)
  AdBlocker	bdpf	Block advertisement images		MPB
  AddHostPath	adpf    Prepends parts of hostname to URI       RJENKS
  AnonProxy	bdpf	Anonymizing proxy			MPB
  Checksum	bdpf	Manage document checksum trees		MPB
  DynaRPC		i	Dynamically translate URIs into RPCs	DOUGM
  LowerCaseGETs	bdpf	Lowercase URI's when needed		PLISTER
  MsqlProxy	bmpf	Translate URI's into mSQL queries	APML
  ProxyPass	bdpf	Perl implementation of ProxyPass	MJS
  ProxyPassThru	bdpO	Skeleton for vanilla proxy		RMANGI
  ProxyCache	i	Caching proxy				DOUGM
  StripSession	bdpf	Strip session info from URI		MPB
  Throttle        bdpf    Speed-based content negotiation         DONS
  TransLDAP	bdpf	Translate URIs to LDAP queries		CDONLEY
  
  * PerlFixupHandler's
  HttpEquiv	bdpf	HTML HTTP-EQUIV tags to HTTP headers	ROBH
  RefererBlock	bdpf	Block based on MIME type + Referer	CHOLET
  Timeit		bmpf	Benchmark PerlHandlers			APML
  Usertrack	bdpf	Perl version of mod_usertrack		ABH
  
  * PerlLogHandler's
  DBILogConfig	bdpf	Custom format logging via DBI		JBODNAR
  DBILogger	bdpf	Logging via DBI				ABH
  DumpHeaders	bdpf	Watch HTTP transaction via headers	DOUGM
  LogMail		bdpf	Log certain requests via email		MPB 
  Traffic		bdpf	Logs bytes transferred, per-user basis 	MAURICE
  WatchDog	c	Look for problematic URIs		DOUGM
  
  * PerlChildInitHandler's
  Resource	Smpf	Limit resources used by httpd children	APML
  
  * Server Configuration
  ConfigLDAP	i	Config via LDAP and &lt;Perl&gt;		MARKK
  ConfigDBI	i	Config via DBI and &lt;Perl&gt;		MARKIM
  ModuleConfig	SmcO	Interface to configuration API		APML
  PerlSections	SmpO	Utilities for &lt;Perl&gt; sections		APML
  httpd_conf	bmpO	Methods to configure and run an httpd	APML
  src		SmpO	Finding and reading bits of source	APML
  
  * Database
  DBI		bmpO	Persistent DBI connection mgmt.		MERGL
  Sybase::DBlib   bmpO    Persistent DBlib connection mgmt.	BMILLET
  Sybase::CTlib	bapO	Persistent CTlib connection mgmt.	MDOWNING
  Mysql		bdpO	Persistent connection mgmt. for Mysql	NJENSEN
  
  * Interfaces and integration with Apache C structures and modules
  Apache		SmcO	Interface to request_rec struct + API	APML
  Backhand	bdcr	Bridge between mod_backhand + mod_perl	DLOWE
  CmdParms	SmcO	Interface to Apache cmd_parms struct	APML
  Command		bmcO	Interface to Apache command_rec struct	APML
  Connection	SmcO	Inteface to Apache conn_rec struct	APML
  Constants	Smcf	Constants defined in httpd.h		APML
  ExtUtils	SmpO	Utils for Apache:C/Perl glue		APML
  File		SmcO	Methods for working with files		APML 
  Handler		bmcO	Interface to Apache handler_rec struct	APML
  Log		SmcO	ap_log_error interface			APML
  LogFile		bmcO	Interface to Apache's piped logs, etc.	APML
  Module		bmcO	Interface to Apache module struct	APML
  Scoreboard      RdcO    Perl interface to Apache's scoreboard.h DOUGM
  Server		SmcO	Interface to Apache server_rec struct	APML
  SubProcess	cmcO	Interface to Apache subprocess API	APML
  Table		SmcO	Interface to Apache table struct + API 	APML
  URI		SmcO	URI component parsing and unparsing	APML
  Util		Smcf	Interface to Apache's util*.c functions	APML
  
  * HTTP Method handlers
  PATCH		bdpf	HTTP PATCH method handler		MPB
  PUT		cdpf	HTTP PUT method handler 		SORTIZ
  Roaming		bdpO	PUT/GET/MOVE/DELETE (Netscape Roaming)	JWEID
  
  * Watchdog and Monitoring tools
  SizeLimit         Smpf    Graceful exit for large children        APML
  GTopLimit	  Rdpn	  Child exit on small shared or large mem STAS
  Status            Smpf    Embedded interpreter runtime status     APML
  VMonitor          Rdpn    Visual System and Processes Monitor     STAS
  Watchdog::RunAway Rdpn    RunAway processes watchdog/terminator   STAS
  
  * Development and Debug tools
  DB		amcO	Hook Perl interactive DB into mod_perl	DOUGM
  Debug		Rmpf	mod_perl debugging utilities		APML
  DebugInfo       ampO    Per-request data logging                GEOFF
  DProf		bmcf	Hook Devel::DProf into mod_perl		DOUGM
  FakeRequest	ampO	Implement Apache methods off-line	APML
  Leak		bmcf	Memory leak tracking routines		APML
  Peek		amcf	Devel::Peek for mod_perl		APML
  SawAmpersand	bmpf	Make sure noone is using $&, $' or $`	APML
  SmallProf	bmpf	Hook Devel::SmallProf into mod_perl	DOUGM
  StatINC		Smpf	Reload require'd files when updated	APML
  Symbol		bmcO	Things for symbol things		APML
  Symdump		bmpf	Symbol table snapshots to disk		APML
  test		Smpf	Handy routines for 'make test' scripts	APML
  
  * Misc
  Byterun		i	Run Perl bytecode modules		DOUGM
  Cookie		amcO	C version of CGI::Cookie		APML
  Icon		bdcO	Access to AddIcon* configuration	DOUGM
  Include		Smpf	mod_include + Apache::Registry handler	APML
  Mmap		bdcf	Share data via Mmap module		FLETCH
  Motd            bmpf    Add Message of the Day functionality    CRAMIREZ
  ParseLog	bdpO	OO interface to Apache log files	AKIRA
  RegistryLoader	SmpO	Apache::Registry startup script loader 	APML
  Request		amcO    CGI.pm functionality using API methods	APML
  Safe		ampO	Adaptation of "safecgiperl"		APML
  Session		bmpO	Maintain client &lt;-&gt; httpd session/state	JBAKER
  Servlet		ampO	Interface to the Java Servlet engine	IKLUFT
  SIG		SmpO	Signal handlers for mod_perl		APML
  State		i	Powerful state engine			RSE
  TempFile	bdpf	Manage temporary files			TOMHUGHES
  Upload		amcO	File upload class			APML
  
  </pre>
  <h3><a name="where">Where Are The Modules Kept?</a></h3>
  Modules listed with the <b>APML</b> as is contact are part of the 
  mod_perl distribution package.  Other modules can be found on CPAN
  the <a href="http://www.perl.com/CPAN/modules/by-module/Apache/">
  modules/by-module/Apache/</A> directory.  If they have not made it 
  to CPAN yet, they might be found in the mod_perl 
  <a href="http://perl.apache.org/src/contrib/">contrib</a>
  directory, which is also tar'd and distributed via CPAN in the 
  <a href="http://www.perl.com/CPAN/modules/by-module/Apache/">
  modules/by-module/Apache/</A> directory.
  Otherwise, feel free to ask the contact author or the list
  how you can go about getting your hands on a copy.
  
  <h3><a name="contacts">Contacts</a></h3>
  <pre>
  ABH  	  Ask Bj�rn Hansen &lt;ask@netcetera.dk&gt;
  AKIRA	  Akira Hangai &lt;akira@discover-net.net&gt;
  ANDK	  Andreas K�nig &lt;a.koenig@franz.ww.TU-Berlin.DE&gt;
  APML	  The Apache/Perl Mailing List &lt;modperl@apache.org&gt;
  BMILLETT  Brian Millett &lt;bpm@techapp.com&gt;
  BOUBAKER  Heddy Boubaker &lt;boubaker@cena.fr&gt;
  CCWF	  Charles C. Fu &amp;lt;ccwf@bacchus.com&amp;gt;
  CDONLEY   Clayton Donley &lt;donley@wwa.com&gt;
  CHAMAS	  Joshua Chamas &lt;chamas@alumni.stanford.org&gt;
  CHOLET	  Eric Cholet &lt;cholet@logilune.com&gt;
  CHTHORMAN Chris Thorman &lt;chris@thorman.com&gt;
  CRAMIREZ  Carlos Ramirez &lt;carlos@quantumfx.com&gt;
  DANIEL	  Daniel &lt;daniel-authenradius@electricrain.com&gt;
  DEP	  Demetrios E. Paneras &lt;dep@media.mit.edu&gt;
  DLOWE	  David Lowe &lt;dlowe@pootpoot.com&gt;
  DONS	  Don Schwarz &lt;don@dons.xnet.com&gt;
  DOUGB     Doug Bagley &lt;doug@dejanews.com&gt;
  DOUGM	  Doug MacEachern &lt;dougm@pobox.com&gt;
  EBARTLEY  Eric Bartley  &lt;bartley@osd.cc.purdue.edu&gt;
  FLETCH    Mike Fletcher &lt;lemur1@mindspring.com&gt;
  FRAJULAC  Francis J. Lacoste &lt;frajulac@insu.com&gt;
  GEOFF     Geoffrey Young &lt;geoff@cpan.org&gt;
  GKNOPS	  Gerd Knops &lt;gerti@BITart.com&gt;
  GOZER	  Philippe M. Chiasson &lt;gozer@ectoplasm.dyndns.com&gt;
  GRICHTER  Gerald Richter &lt;richter@ecos.de&gt;
  GUNTHER   Gunther Birznieks &lt;gunther@nhgri.nih.gov&gt;
  HENRIK	  Henrik Strom &lt;henrik@computer.org&gt;
  HMUELLER  Hanno Mueller &lt;hmueller@mail.kabel.de&gt;
  IKLUFT	  Ian Kluft &lt;ikluft@cisco.com&gt;
  JANPAZ	  Honza Pazdziora &lt;adelton@informatics.muni.cz&gt;
  JBAKER    Jeffrey Baker &lt;jeff@godzilla.tamu.edu&gt;
  JBODNAR	  Jason Bodnar &lt;jbodnar@tivoli.com&gt;
  JGROV	  John D Groenveld &lt;jdg117@elvis.arl.psu.edu&gt;
  JEFFH	  Jeffrey Hulten &lt;jeffh@premier1.net&gt;
  JROWE	  Jeff Rowe &lt;beowulf@lava.net&gt;
  JSWARTZ	  Jonathan Swartz &lt;swartz@transbay.net&gt;
  JWEID	  Jochen Wiedmann &lt;joe@ispsoft.de&gt;
  KWILLIAM  Ken Williams  &lt;ken@mathforum.org&gt;
  LDS	  Lincoln D. Stein &lt;lstein@genome.wi.mit.edu&gt;
  MARKC	  Mark Constable &lt;markc@goldcoast.org&gt;
  MARKIM	  Mark A. Imbriaco &lt;mark@itribe.net&gt;
  MARKK	  Mark Kennedy &lt;mtk@ny.ubs.com&gt;
  MAURICE	  Maurice Aubrey &lt;maurice@hevanet.com&gt
  MDARWIN	  Matthew Darwin &lt;matthew@davin.ottawa.on.ca&gt;
  MDORMAN	  Michael Alan Dorman  &lt;mdorman@calder.med.miami.edu&gt;
  MDOWNING  Mark Downing &lt;mdowning@rdatasys.com&gt;
  MERGL	  Edmund Mergl &lt;E.Mergl@bawue.de&gt;
  MERLYN	  Randal L. Schwartz &lt;merlyn@stonehenge.com&gt;
  MJD	  Mark-Jason Dominus &lt;mjd-perl-pause2@plover.com&gt;
  MJS       Michael Smith &lt;mjs@iii.co.uk&gt;
  MKOSS	  Max Kossatzmax &lt;kossatz@thing.at&gt;
  MICB  	  Malcolm Beattie &lt;mbeattie@sable.ox.ac.uk&gt;
  MPB	  mod_perl book (Doug and Lincoln) &lt;book@modperl.com&gt;
  MSERGEANT Matt Sergeant &lt;matt@sergeant.org&gt;
  RA        Roman Kosenko &lt;ra@amk.lg.ua&gt;
  NJENSEN	  Neil Jensen &lt;njensen@habaneros.com&gt;
  PARKER	  Michael Parker &lt;parker@austx.tandem.com&gt;
  PETERM	  Peter Marshall &lt;peterm@pageactive.com&gt;
  JPETERSON  Jonathan Peterson &lt;jon@amxstudios.com&gt;
  PLISTER   Peter Lister &lt;p.lister@cranfield.ac.uk&gt;
  PMKANE	  Patrick Michael Kane &lt;modus@pr.es.to&gt;
  PTI	  Peter Tillemans &lt;pti@pandora.be&gt;
  RJENKS	  Robert Jenks &lt;rjenks@cvsroot.org&gt;
  RKOBES	  Randy Kobes &lt;randy@theory.uwinnipeg.ca&gt;
  RMANGI    Rick Mangi &lt;rmangi@tgix.com&gt;
  ROBH	  Rob Hartill &lt;robh@imdb.com&gt;
  RSE       Ralf S. Engelschall &lt;rse@engelschall.com&gt;
  SAM	  Simon Matthews &lt;sam@peritas.com&gt;
  SKANE     Stephen E Kane &lt;sek112@elvis.arl.psu.edu&gt;
  SORTIZ	  Salvador Ortiz &lt;sortiz@msg.com.mx&gt;
  STAS      Stas Bekman &lt;stas@stason.org&gt;
  SVINTO	  Svante S�rmark &lt;svinto@ita.chalmers.se&gt;
  TJMATHER  T.J. Mather &lt;tjmather@thoughtstore.com&gt;
  TOMHUGHES Tom Hughes &lt;tom@compton.demon.co.uk&gt;
  VALERIE	  Valerie Delane &lt;valerie@savina.com&gt;
  VKHERA    Vivek Khera &lt;vivek@khera.org&gt;
  ZENIN	  Byron Brummer &lt;zenin@archive.rhps.org&gt;
  </pre>
  
  <h3><a name="info">More Info</a></h3>
  See the Apache/Perl <a href="http://perl.apache.org/">homepage</a>.
  </body>
  </html>
  
  
  
  
  1.1                  modperl-docs/src/products/app-server.pod
  
  Index: app-server.pod
  ===================================================================
  =head1 NAME
  
  Application Servers and Toolkits based on mod_perl.
  
  =head1 Overview
  
  There are several application servers and toolkits available designed
  to run under mod_perl.
  
  =head1 Apache::ASP
  
  C<Apache::ASP> (http://www.apache-asp.org/) provides an Active Server
  Pages port to the Apache Web Server with Perl scripting only, and
  enables developing of dynamic web applications with session management
  and embedded perl code. There are also many powerful extensions,
  including XML taglibs, XSLT rendering, and new events not originally
  part of the ASP API
  
  =head1 Apache::PageKit
  
  C<Apache::PageKit> (http://pagekit.org/) is a web application
  framework that uses C<HTML::Template> and XML to separate the Model,
  View, Content and Controller. Provides elegant solutions to many
  difficult web programming problems, including session management,
  language localization, authentication, form validation, and
  co-branding.
  
  =head1 AxKit
  
  C<AxKit> (http://axkit.org/) is an XML Application Server for
  Apache. It provides on-the-fly conversion from XML to any format, such
  as HTML, WAP or text using either W3C standard techniques, or flexible
  custom code. C<AxKit> also uses a built-in Perl interpreter to provide
  some amazingly powerful techniques for XML transformation.
  
  =head1 Embperl
  
  C<Embperl> (http://perl.apache.org/embperl/) is a system for building
  dynamic websites with Perl.  It gives you the power to embed Perl code
  in your HTML documents and the ability to build your Web site out of
  small reusable objects in an object-oriented style. You can also take
  advantage of all the usual Perl modules, (including C<DBI> for
  database access) use their functionality and easily include their
  output in your web pages.  Embperl has several features which are
  especially useful for creating HTML, including dynamic tables, form
  field processing, URL escaping/unescaping, session handling, and more.
  
  =head1 Mason
  
  C<Mason> (http://www.masonhq.com/) is a powerful Perl-based web site
  development and delivery engine.  With C<Mason> you can embed Perl
  code in your HTML and construct pages from shared, reusable
  components.  C<Mason> solves the common problems of site development:
  caching, debugging, templating, simulating browser conditions,
  maintaining development and production sites, and more
  
  =head1  OpenInteract
  
  C<OpenInteract> (http://www.openinteract.org/) is a web application
  environment written in perl and geared to run on the Apache web server
  using the mod_perl plugin module. The environment is built to be not
  only friendly to people editing and changing a website's content, but
  also for the developers who can write code (or complex templates) and
  create entire applications.
  
  =head1 OpenFrame
  
  C<OpenFrame> (http://openframe.fotango.com/) is an open source
  application framework for distributed media applications. What all
  this buzzword-compliant mumbo-jumbo really means is that with
  OpenFrame you can write a single application for multiple downstream
  clients (ie, Web, WAP, iDTV, Email) and not have to worry about much
  except the presentation.
  
  =head1 The Template Toolkit
  
  The Template Toolkit (http://template-toolkit.org/) is a fast,
  powerful and easily extensible template processing system written in
  Perl. It is ideally suited (but not limited) to the creation of static
  and dynamic web content. The C<Apache::Template> module provides an
  Apache/mod_perl interface to the Template Toolkit, providing a quick
  and simple way to integrate its processing power into your web site.
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/products/config.cfg
  
  Index: config.cfg
  ===================================================================
  use vars qw(@c);
  @c = (
        id => 'products',
  
        title => "Products",
  
        abstract => "mod_perl based software",
  
        chapters => [
            qw(
               apache-modlist.html
               app-server.pod
               products.html
              )
        ],
  );
  
  
  
  1.1                  modperl-docs/src/products/products.html
  
  Index: products.html
  ===================================================================
  <html>
  <head>
  <title>mod_perl Related Software</title>
  <body bgcolor=#ffffff >
  <h3>mod_perl Related Software</h3> 
  <hr>
  <p>
  
  <b>Products based on the mod_perl architecture</b><p>
  <i>Freeware, source code distribution:</i>
  
  <ul>
  
  <li> Ben Sugars' <a href="http://interact.canoe.ca/~bsugars/nsapi_perl.html">
  nsapi_perl</a> (Perl plugin for Netscape)
  
  </ul>
  
  <i>Commercial, binary distribution:</i>
  
  <ul>
  
  <li> ActiveWare's <a href="http://www.ActiveState.com/software/perlEx/default.htm">PerlEx</a> (Perl plugins for O'Reilly WebSite, Netscape and IIS)
  
  <li> The Oracle Web Server 
  <a href="http://www.olab.com/doc/books/perl/perltoc.htm">
  Perl Cartridge</a> (Perl plugin for Oracle Web Application Server)
  
  <li> Binary Evolution's <a href="http://www.binevolve.com/bine/vep/">
  Velocity Engine for Perl</a> (Perl plugins for Netscape and IIS)
  
  </ul>
  
  <hr>
  
  <p>
  <b>Software for use with mod_perl</b> <p>
  
  <i>Freeware:</i>
  
  <ul>
  
  <li> Ian Kluft's <a href="http://www.employees.org/~ikluft/apache/servlet/">
  Apache::Servlet</a>
  
  <li> John Groenveld's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::DBILogin</a>
  
  <li> Andreas Koenig's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::GzipChain</a>
  
  <li> Mike Fletcher's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::Mmap</a>
  
  <li> Jan Pazdziora's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::OutputChain</a>
  
  <li> Doug MacEachern's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::Sandwich</a>
  
  <li> Andreas Koenig's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::Stage</a>
  
  <li> Maurice Aubrey's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::Traffic</a>
  
  <li> Edmund Mergl's <a href="http://www.perl.org/CPAN/modules/by-module/Apache/">Apache::DBI</a> 
  
  <li> Gerald Richter's <a href="http://perl.apache.org/embperl/">HTML::Embperl</a>
  
  <li> Ralf S. Engelschall's <a href="http://www.engelschall.com/sw/eperl/">Apache::ePerl</a> 
  
  </ul>
  
  ... and many more. See the <a href="http://perl.apache.org/src/apache-modlist.html">Apache/Perl module list</a>
  
  </ul>
  
  <hr>
  <p>
  <b>Products shipping with mod_perl</b><p>
  <i>Freeware:</i>
  <ul>
  
  <li> Silicon Graphics'
  <a href="https://www.sgi.com/toolbox/public/apache/">Developer's Toolbox</a>
  
  </ul>
  
  <p>
  <hr>
  <p>
  <b>Compatible products</b> <p>
  
  <i>Freeware:</i>
  
  <ul>
  
  <li> Ralf S. Engelschall's <a href="http://www.modssl.org/">mod_ssl</a>
  
  <li> Ben Laurie's <a href="http://www.apache-ssl.org/">Apache-SSL</a>
  
  </ul>
  
  ... and many more. Most of the <a
  href="http://modules.apache.org/">modules for Apache</a> should be
  able to use more or less integrated with mod_perl.
  
  <p>
  
  <i>Commercial:</i>
  
  <ul>
  
  <li> C2Net's <a href="http://www.c2.net/">Stronghold</a> 
  
  </ul>
  <hr>
  If you know of other mod_perl related software products, please send a
  description to <a href="mailto:dougm@apache.org">me</a>.
  </body>
  </html>
  
  
  
  1.1                  modperl-docs/src/stats/config.cfg
  
  Index: config.cfg
  ===================================================================
  use vars qw(@c);
  @c = (
      id => 'stats',
  
      title => "Statistics",
  
      abstract => "mod_perl deployment statistics",
  
      chapters => [
          qw(
             netcraft.html
             securityspace.html
            )
      ],
  
      copy_glob => [
          qw(
             logo-middle.png
             logo.png
             graph.pl
             input.data
             pseudo-graph.jpg
             graph.jpg
            )
       ],
  
  );
  
  
  
  1.1                  modperl-docs/src/stats/graph.jpg
  
  	<<Binary file>>
  
  
  1.1                  modperl-docs/src/stats/graph.pl
  
  Index: graph.pl
  ===================================================================
  #!/usr/bin/perl
  
  # this script builds 2 graphs from 2 data sets, expects to find a file 
  # with data of name "input.data" in the script's directory, data should be
  # separated with tabs, e.g:
  #May 1999        156458  36976
  #April 1999      134255  32570
  #March 1999      112399  28482
  #
  # first set describes a number Hostnames, 2nd - Unique IP numbers
  #
  # first graph (graph.gif) is a normal one
  #
  # second graph (pseudo-graph.gif) is much smaller and includes points,
  # with no other labels, but y axis. This graph should be linked to a
  # bigger one (graph.gif)
  #
  # Note: you need GD::Graph package to be installed in order to use this
  # script.
  
  # This script is free software; you can
  # redistribute it and/or modify it under the same terms as
  # Perl itself.
  
  # by Stas Bekman <st...@stason.org>
  # Aug, 14 1999
  #
  # updated July, 16 to generate jpegs instead of gifs (since gif support
  # was removed from libgd)
  
  use GD::Graph::linespoints;
  use strict;
  
  print STDERR "Processing data\n";
  
  my @data =  read_data_from_csv("input.data")
          or die "Cannot read data from input.data";
  
  # make the Y axis to be optimally used
  my $max_y = 0;
  foreach (@{$data[1]},@{$data[2]}) {
    $max_y = $_ if $_ >  $max_y ;
  }
  # normalize it
  $max_y  = ( int $max_y / 1000 + 1 ) * 1000; 
  
  normal_graph();
  
  pseudo_graph();
  
  # plot a normal graph of points with all the info as possible
  sub normal_graph{
    my $my_graph = new GD::Graph::linespoints(700,400);
  
    $my_graph->set( 
  		 x_label => 'Months',
  		 y_label => 'Counts',
  		 title => "mod_perl usage survey (numbers are by courtesy of netcraft.com).",
  		 y_max_value => $max_y,
  		 y_label_skip => 1,
  		 x_label_skip => 1,
  		 x_labels_vertical => 1,
  		 x_label_position => 1/2,
  		 markers => [ 1, 7 ],
  		 marker_size => 2,
  		 transparent => 1,
  		 t_margin => 10, 
  		 b_margin => 10, 
  		 l_margin => 10, 
  		 r_margin => 10,
  
  		 two_axes => 1,
  		 logo => 'logo.png',
  		 logo_position => 'LL',
  		);
  
    #$my_graph->set( dclrs => [ qw(green pink blue cyan) ] );
  
    $my_graph->set_x_label_font(GD::gdMediumBoldFont);
    $my_graph->set_y_label_font(GD::gdMediumBoldFont);
    $my_graph->set_x_axis_font(GD::gdMediumBoldFont);
    $my_graph->set_y_axis_font(GD::gdMediumBoldFont);
    $my_graph->set_title_font(GD::gdGiantFont);
  
    $my_graph->set_legend('Hostnames','Unique IP numbers' );
    $my_graph->set_legend_font(GD::gdMediumBoldFont);
  
  
    open IMG, '>graph.jpg' or die $!;
    print IMG $my_graph->plot(\@data)->jpeg(70);
    close IMG;
  #  $my_graph->plot_to_gif( "graph.gif", \@data );
  
  }
  
  # plot a small graph of points with as least info as possible
  sub pseudo_graph{
    my $my_graph = new GD::Graph::linespoints(350,200);
  
      # in this graph we don't want X labels to be printed
    for (0..$#{$data[0]}) {
      $data[0]->[$_] = "";
    }
  
    $my_graph->set( 
  		 y_max_value => $max_y,
  		 y_label_skip => 0,
  		 x_label_skip => 1,
  		 x_labels_vertical => 1,
  		 x_label_position => 1/2,
  		 markers => [ 1, 7 ],
  		 marker_size => 2,
  		 transparent => 1,
  		 t_margin => 10, 
  		 b_margin => 10, 
  		 l_margin => 10, 
  		 r_margin => 10,
  		 two_axes => 0,
  
  		 logo => 'logo-middle.png',
  		 logo_position => 'UL',
  		);
  
    #$my_graph->set( dclrs => [ qw(green pink blue cyan) ] );
  
    $my_graph->set_x_label_font(GD::gdMediumBoldFont);
    $my_graph->set_y_label_font(GD::gdSmallFont);
    $my_graph->set_x_axis_font(GD::gdMediumBoldFont);
    $my_graph->set_y_axis_font(GD::gdSmallFont);
    $my_graph->set_title_font(GD::gdGiantFont);
  
    $my_graph->set_legend('Hostnames','Unique IP numbers' );
    $my_graph->set_legend_font(GD::gdSmallFont);
  
  
    open IMG, '>pseudo-graph.jpg' or die $!;
    print IMG $my_graph->plot(\@data)->jpeg(70);
    close IMG;
    #$my_graph->plot_to_gif( "pseudo-graph.gif", \@data );
  
  
  }
  
  sub read_data_from_csv
  {
          my $fn = shift;
          my @d = ();
  
          open(ZZZ, $fn) || return ();
  
          while (<ZZZ>)
          {
                  chomp;
                  # you might want Text::CSV here
                  my @row = split /\t/;
  
                  for (my $i = 0; $i <= $#row; $i++)
                  {
                          undef $row[$i] if ($row[$i] eq 'undef');
                          unshift @{$d[$i]}, $row[$i];
                  }
          }
  
          close (ZZZ);
  
          return @d;
  }
  
  
  
  
  1.1                  modperl-docs/src/stats/index.html
  
  Index: index.html
  ===================================================================
  <html>
  <head>
  <title>Server survey results</title>
  
  </head>
  <body bgcolor=#ffffff >
  Thanks to Mike Prettejohn &lt;mhp@netcraft.co.uk&gt; for grep'ing 
  mod_perl in the <a href="http://www.netcraft.co.uk/">netcraft</a> survey.
  <p>
  If you're developer behind one of these mod_perl sites, Netcraft has
  <a href="http://www.netcraft.co.uk/jobs/technical.html">development positions</a> available
  which require mod_perl experience.
  <p>
  
  SecuritySpace provides yet 
  <a href="http://www.securityspace.com/s_survey/data/man.200110/apachemods.html">
  another report</a>. Make sure to click on the menu at the left to pick
  the latest month, since the link hardcodes the month. They also
  provide a <a href="http://www.securityspace.com/s_survey/data/man.200110/apachemods.html?mod=cGVybA==">page</a> similar to this one with statistics and a graph based
  on the data collected by <a
  href="http://www.securityspace.com/">www.securityspace.com</a>
  
  <p>
  
  <hr>
  <IMG SRC="graph.jpg"   HEIGHT=400 WIDTH=700 BORDER=0 ALT="Graph">
  <BR>
  <BR>
  The <A HREF="graph.pl"> script </A> that produced this graph and the <A HREF="input.data">
  raw input data </A>
  <BR>
  <p>
  If your site is running mod_perl, feel free
  to <a href="http://www.netcraft.co.uk/cgi-bin/Survey/whats/">tell</a>
  the netcraft survey.
  <p>
  Note that as of October 97, the list of URLs for servers running
  mod_perl has passed Netcraft's limit for publication.  (Actually, we
  passed it in September, but Mike gave it to us anyhow).
  <p>
  
  <!-- reports can be retrieved from
  http://www.netcraft.com/survey/Reports/200106/mod_perl.txt, 
  adjust the year/month if needed -->
  
  <table cellpadding=3 border=1>
  <tr><td>Survey</td><td>hostnames</td><td>unique ip addresses</td></tr>
  <tr><td> October 2001   </td><td>2540267</td><td>293633</td></tr>
  <tr><td> September 2001 </td><td>2899420</td><td>281192</td></tr>
  <tr><td> August 2001    </td><td>2823060</td><td>283180</td></tr>
  <tr><td> July 2001      </td><td>2936558</td><td>281471</td></tr>
  <tr><td> June 2001      </td><td>2802093</td><td>273827</td></tr>
  <tr><td> May 2001       </td><td>2475367</td><td>265466</td></tr>
  <tr><td> April 2001     </td><td>2482288</td><td>256862</td></tr>
  <tr><td> March 2001     </td><td>2298821</td><td>244201</td></tr>
  <tr><td> February 2001  </td><td>2203353</td><td>230502</td></tr>
  <tr><td> January 2001   </td><td>2001011</td><td>225123</td></tr>
  <tr><td> December 2000  </td><td>1811864</td><td>214467</td></tr>
  <tr><td> November 2000  </td><td>1524620</td><td>197931</td></tr>
  <tr><td> October 2000   </td><td>1597399</td><td>183327</td></tr>
  <tr><td> September 2000 </td><td>1508381</td><td>170758</td></tr>
  <tr><td> August 2000    </td><td>1476602</td><td>152073</td></tr>
  <tr><td> July 2000      </td><td>1286714</td><td>132940</td></tr>
  <tr><td> June 2000      </td><td>1080206</td><td>123008</td></tr>
  <tr><td> May 2000       </td><td>852675</td><td>108327</td></tr>
  <tr><td> April 2000     </td><td>736805</td><td>95994</td></tr>
  <tr><td> March 2000     </td><td>612425</td><td>85749</td></tr>
  <tr><td> February 2000  </td><td>478614</td><td>74515</td></tr>
  <tr><td> January 2000   </td><td>418742</td><td>66239</td></tr>
  <tr><td> December 1999  </td><td>411008</td><td>63993</td></tr>
  <tr><td> November 1999  </td><td>384018</td><td>60116</td></tr> 
  <tr><td> October 1999   </td><td>342285</td><td>55688</td></tr>
  <tr><td> September 1999 </td><td>282232</td><td>50334</td></tr>
  <tr><td> August 1999    </td><td>248925</td><td>51413</td></tr>
  <tr><td> July 1999      </td><td>202081</td><td>42183</td></tr>
  <tr><td> June 1999      </td><td>183793</td><td>40484</td></tr>
  <tr><td> May 1999       </td><td>156458</td><td>36976</td></tr>
  <tr><td> April 1999     </td><td>134255</td><td>32570</td></tr>
  <tr><td> March 1999     </td><td>112399</td><td>28482</td></tr>
  <tr><td> February 1999  </td><td>103088</td><td>25854</td></tr>
  <tr><td> January 1999   </td><td>81982</td><td>23742</td></tr>
  <tr><td> December 1998  </td><td>72545</td><td>22598</td></tr>
  <tr><td> November 1998  </td><td>63692</td><td>19239</td></tr>
  <tr><td> October 1998   </td><td>64171</td><td>15055</td></tr>
  <tr><td> September 1998 </td><td>57365</td><td>12540</td></tr>
  <tr><td> August 1998    </td><td>54450</td><td>12438</td></tr>
  <tr><td> July 1998      </td><td>47068</td><td>9904</td></tr>
  <tr><td> June 1998      </td><td>42508</td><td>9237</td></tr>
  <tr><td> May 1998       </td><td>39535</td><td>8682</td></tr>
  <tr><td> April 1998     </td><td>33696</td><td>6980</td></tr>
  <tr><td> March 1998     </td><td>30075</td><td>6439</td></tr>
  <tr><td> February 1998  </td><td>25343</td><td>5607</td></tr>
  <tr><td> January 1998   </td><td>16591</td><td>4343</td></tr>
  <tr><td> December 1997  </td><td>14624</td><td>3814</td></tr>
  <tr><td> November 1997  </td><td>13303</td><td>3431</td></tr>
  <tr><td> October 1997   </td><td>12654</td><td>3045</td></tr>
  <tr><td> <a href="aug97.html">September 1997</a></td><td>7165</td><td>2256</td></tr>
  <tr><td> <a href="july97.html">August 1997</a></td><td>1501</td><td>1228</td></tr>
  <tr><td><a href="june97.html">July 1997</a></td><td>1138</td><td>580</td></tr>
  <tr><td> <a href="may97.html">June 1997</a></td><td>312</td><td>239</td></tr>
  
  </table>
  </body>
  </html>
  
  
  
  1.1                  modperl-docs/src/stats/input.data
  
  Index: input.data
  ===================================================================
  December 2001	2720503	326545
  November 2001	2651419	322595
  October 2001	2540267	293633
  September 2001	2899420	281192
  August 2001	2823060	283180
  July 2001	2936558	281471
  June 2001	2802093	273827
  May 2001	2475367	265466
  April 2001	2482288	256862
  March 2001	2298821	244201
  February 2001	2203353	230502
  January 2001	2001011	225123
  December 2000	1811864	214467
  November 2000	1524620	197931
  October 2000	1597399	183327
  September 2000	1508381	170758
  August 2000	1476602	152073
  July 2000	1286714	132940
  June 2000	1080206	123008
  May 2000	852675	108327
  April 2000	736805	95994
  March 2000	612425	85749
  February 2000	478614	74515
  January 2000	418742	66239
  December 1999	411008	63993
  November 1999	384018	60116
  October 1999	342285	55688
  September 1999	282232	50334
  August 1999	248925	51413
  July 1999	202081	42183
  June 1999	183793	40484 
  May 1999	156458	36976
  April 1999	134255	32570
  March 1999	112399	28482
  February 1999	103088	25854
  January 1999	81982	23742
  December 1998	72545	22598
  November 1998	63692	19239
  October 1998	64171	15055
  September 1998	57365	12540
  August 1998	54450	12438
  July 1998	47068	9904
  June 1998	42508	9237
  May 1998	39535	8682
  April 1998	33696	6980
  March 1998	30075	6439
  February 1998	25343	5607
  January 1998	16591	4343
  December 1997	14624	3814
  November 1997	13303	3431
  October 1997	12654	3045
  September 1997	7165	2256
  August 1997	1501	1228
  July 1997	1138	580
  June 1997	312	239
  
  
  
  
  1.1                  modperl-docs/src/stats/logo-middle.png
  
  	<<Binary file>>
  
  
  1.1                  modperl-docs/src/stats/logo.png
  
  	<<Binary file>>
  
  
  1.1                  modperl-docs/src/stats/netcraft.html
  
  Index: netcraft.html
  ===================================================================
  <html>
  <head>
  <title>Netcraft's mod_perl statistics</title>
  </head>
  <body bgcolor=#ffffff >
  
  <hr>
  <IMG SRC="graph.jpg"   HEIGHT=400 WIDTH=700 BORDER=0 ALT="Graph">
  <BR>
  <BR>
  The <A HREF="graph.pl"> script </A> that produced this graph and the <A HREF="input.data">
  raw input data </A>
  <BR>
  
  <p> If your site is running mod_perl, <a
  href="http://www.netcraft.co.uk/up/graph/">tell</a> the Netcraft
  survey.
  <p>
  
  <!-- monthly reports can be retrieved from
  http://www.netcraft.com/survey/Reports/200106/mod_perl.txt, 
  adjust the year/month if needed -->
  
  <table cellpadding=3 border=1>
  <tr><td>Survey</td><td>hostnames</td><td>unique ip addresses</td></tr>
  <tr><td> December 2001  </td><td>2720503</td><td>326545</td></tr>
  <tr><td> November 2001  </td><td>2651419</td><td>322595</td></tr>
  <tr><td> October 2001   </td><td>2540267</td><td>293633</td></tr>
  <tr><td> September 2001 </td><td>2899420</td><td>281192</td></tr>
  <tr><td> August 2001    </td><td>2823060</td><td>283180</td></tr>
  <tr><td> July 2001      </td><td>2936558</td><td>281471</td></tr>
  <tr><td> June 2001      </td><td>2802093</td><td>273827</td></tr>
  <tr><td> May 2001       </td><td>2475367</td><td>265466</td></tr>
  <tr><td> April 2001     </td><td>2482288</td><td>256862</td></tr>
  <tr><td> March 2001     </td><td>2298821</td><td>244201</td></tr>
  <tr><td> February 2001  </td><td>2203353</td><td>230502</td></tr>
  <tr><td> January 2001   </td><td>2001011</td><td>225123</td></tr>
  <tr><td> December 2000  </td><td>1811864</td><td>214467</td></tr>
  <tr><td> November 2000  </td><td>1524620</td><td>197931</td></tr>
  <tr><td> October 2000   </td><td>1597399</td><td>183327</td></tr>
  <tr><td> September 2000 </td><td>1508381</td><td>170758</td></tr>
  <tr><td> August 2000    </td><td>1476602</td><td>152073</td></tr>
  <tr><td> July 2000      </td><td>1286714</td><td>132940</td></tr>
  <tr><td> June 2000      </td><td>1080206</td><td>123008</td></tr>
  <tr><td> May 2000       </td><td>852675</td><td>108327</td></tr>
  <tr><td> April 2000     </td><td>736805</td><td>95994</td></tr>
  <tr><td> March 2000     </td><td>612425</td><td>85749</td></tr>
  <tr><td> February 2000  </td><td>478614</td><td>74515</td></tr>
  <tr><td> January 2000   </td><td>418742</td><td>66239</td></tr>
  <tr><td> December 1999  </td><td>411008</td><td>63993</td></tr>
  <tr><td> November 1999  </td><td>384018</td><td>60116</td></tr> 
  <tr><td> October 1999   </td><td>342285</td><td>55688</td></tr>
  <tr><td> September 1999 </td><td>282232</td><td>50334</td></tr>
  <tr><td> August 1999    </td><td>248925</td><td>51413</td></tr>
  <tr><td> July 1999      </td><td>202081</td><td>42183</td></tr>
  <tr><td> June 1999      </td><td>183793</td><td>40484</td></tr>
  <tr><td> May 1999       </td><td>156458</td><td>36976</td></tr>
  <tr><td> April 1999     </td><td>134255</td><td>32570</td></tr>
  <tr><td> March 1999     </td><td>112399</td><td>28482</td></tr>
  <tr><td> February 1999  </td><td>103088</td><td>25854</td></tr>
  <tr><td> January 1999   </td><td>81982</td><td>23742</td></tr>
  <tr><td> December 1998  </td><td>72545</td><td>22598</td></tr>
  <tr><td> November 1998  </td><td>63692</td><td>19239</td></tr>
  <tr><td> October 1998   </td><td>64171</td><td>15055</td></tr>
  <tr><td> September 1998 </td><td>57365</td><td>12540</td></tr>
  <tr><td> August 1998    </td><td>54450</td><td>12438</td></tr>
  <tr><td> July 1998      </td><td>47068</td><td>9904</td></tr>
  <tr><td> June 1998      </td><td>42508</td><td>9237</td></tr>
  <tr><td> May 1998       </td><td>39535</td><td>8682</td></tr>
  <tr><td> April 1998     </td><td>33696</td><td>6980</td></tr>
  <tr><td> March 1998     </td><td>30075</td><td>6439</td></tr>
  <tr><td> February 1998  </td><td>25343</td><td>5607</td></tr>
  <tr><td> January 1998   </td><td>16591</td><td>4343</td></tr>
  <tr><td> December 1997  </td><td>14624</td><td>3814</td></tr>
  <tr><td> November 1997  </td><td>13303</td><td>3431</td></tr>
  <tr><td> October 1997   </td><td>12654</td><td>3045</td></tr>
  <tr><td> September 1997 </td><td>7165</td><td>2256</td></tr>
  <tr><td> August 1997    </td><td>1501</td><td>1228</td></tr>
  <tr><td> July 1997      </td><td>1138</td><td>580</td></tr>
  <tr><td> June 1997      </td><td>312</td><td>239</td></tr>
  </table>
  
  
  </body>
  </html>
  
  
  1.1                  modperl-docs/src/stats/pseudo-graph.jpg
  
  	<<Binary file>>
  
  
  1.1                  modperl-docs/src/stats/securityspace.html
  
  Index: securityspace.html
  ===================================================================
  <html>
  <head>
  <title>Security Space's mod_perl statistics</title>
  
  </head>
  <body bgcolor=#ffffff >
  
  SecuritySpace provides
  <a href="http://www.securityspace.com/s_survey/data/man.200112/apachemods.html">
  mod_perl usage report</a>. Make sure to click on the menu at the left
  to pick the latest month, since the link hardcodes the month. They
  also provide a <a
  href="http://www.securityspace.com/s_survey/data/man.200112/apachemods.html?mod=cGVybA==">page</a>
  similar to this one with statistics and a graph based on the data
  collected by <a
  href="http://www.securityspace.com/">www.securityspace.com</a>
  
  </body>
  </html>
  
  
  1.1                  modperl-docs/src/stories/README
  
  Index: README
  ===================================================================
  WARNING: All the *.pod files are autogenerated, do not edit them
  directly!  Instead, adjust the corresponding .txt files.
  
  After applying modifications, make sure to run:
  
    % ./make.pl file.txt file2.txt ...
  
  or to run all files
  
    % ./make.pl
  
  This run will generate .pod files and link them to the main index.
  
  
  1.1                  modperl-docs/src/stories/adultad.pod
  
  Index: adultad.pod
  ===================================================================
  =head1 NAME
  
  Performance raised from 1.5 banner per second to over 20 banners per second, 10 million banners a week without a problem
  
  =head1 Info
  
  =over
  
  =item * Author: Marshall Dudley E<lt>mdudley (at) EXECONN.COME<gt>
  
  =item * Date: Fri, 6 Mar 1998 10:30:10 -0500
  
  =back
  
  =head1 The Story
  
    Lincoln Stein wrote:
    >
    > Hi All,
    >
    > I'm looking for more mod_perl success stories like the one that Jeff
    > posted the other day.  They will be used for vignettes in an
    > introductory chapter of the book that Doug and I are writing.  If you
    > have a story you'd like to share (particularly one in which mod_perl
    > "defeats" one of its competitors) could you mail it to me or post it
    > to the list?  For the vignettes we need some sort of identifying
    > information, either along the lines of "a major Southwestern
    > University" or "Kulturbox company of Berlin, Germany".
    >
    > Jeff, do you mind us using your story and identifying Texas A&M
    > directly?
    >
    > Lincoln
    
    You may not want to touch this one, but adultad.com contracted me to fix
    their adult banner exchange to where it could throw more than 1.5
    banners a second.  I put it under mod_perl, and it now tops out at
    slightly over 20 banners per second.  It is now throwing approximately
    10 Million banners a week solid without a problem.  The banner exchange
    (both banner throwing/logging and click-thru redirection/logging) is
    running 100% under mod_perl.
    
    Marshall
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/adultad.txt
  
  Index: adultad.txt
  ===================================================================
  From:       Marshall Dudley <md...@EXECONN.COM>
  Organization: The Executive Connection, Inc.
  Date:         Fri, 6 Mar 1998 10:30:10 -0500
  Subject:      Performance raised from 1.5 banner per second to over 20 banners per second, 10 million banners a week without a problem
  
  Lincoln Stein wrote:
  >
  > Hi All,
  >
  > I'm looking for more mod_perl success stories like the one that Jeff
  > posted the other day.  They will be used for vignettes in an
  > introductory chapter of the book that Doug and I are writing.  If you
  > have a story you'd like to share (particularly one in which mod_perl
  > "defeats" one of its competitors) could you mail it to me or post it
  > to the list?  For the vignettes we need some sort of identifying
  > information, either along the lines of "a major Southwestern
  > University" or "Kulturbox company of Berlin, Germany".
  >
  > Jeff, do you mind us using your story and identifying Texas A&M
  > directly?
  >
  > Lincoln
  
  You may not want to touch this one, but adultad.com contracted me to fix
  their adult banner exchange to where it could throw more than 1.5
  banners a second.  I put it under mod_perl, and it now tops out at
  slightly over 20 banners per second.  It is now throwing approximately
  10 Million banners a week solid without a problem.  The banner exchange
  (both banner throwing/logging and click-thru redirection/logging) is
  running 100% under mod_perl.
  
  Marshall
  
  
  
  
  1.1                  modperl-docs/src/stories/allakhazam.com.pod
  
  Index: allakhazam.com.pod
  ===================================================================
  =head1 NAME
  
  Allakhazam's Magical Realm
  
  =head1 Info
  
  =over
  
  =item * Author: Andy Sharp E<lt>asharp E<lt>atE<gt> nector.comE<gt> 
  
  =item * Date: Wed Nov 07 21:20:11 2001
  
  =item * Traffic: 1,800,000 Unique Page Loads per day
  
  =item * URL: http://everquest.allakhazam.com, http://camelot.allakhazam.com, http://eqbeastiary.allakhazam.com.
  
  =back
  
  =head1 The Story
  
    Almost everything on the site runs in mod_perl.  We have 4 systems
    running the site, one static server (PIII 450, Linux,
    Apache/mod_proxy).  Two database servers (Dual P800, FreeBSD, Mysql)
    which are replicated, and the one mod_perl server (PIII 800, FreeBSD,
    Apache/mod_perl).  The idea to use the proxy server to intercept any
    requests for text or images which was not dynamic came directly from
    the mod_perl guide (http://perl.apache.org/guide/).
    
    It's been a rough ride sometimes, as I've been in the process of
    learning the guts of Apache and more about perl than I ever thought
    I'd need to know.  Since the site first started, I've migrated from a
    Module based system, to Apache::Registry (I wasn't writing good enough
    perl for the module based system to work well), and more recently have
    been migrating high volume scripts back to the Module/Handler based
    system.
    
    That's been the true benefit of mod_perl in developing this site.
    It's been a learning process as we roll out a new application or area
    of the site, watching our hit load go up and up, and then spending
    hours looking for performance bottlenecks in code which was never
    intended to run as often as it does.
    
    mod_perl gives us an incredibly fast development time.  Sometimes, the
    speed of development does mean than lower quality code creeps into the
    production environment, but it allows us (me) to get things done which
    would take much much longer in another application environment.  Perls
    "there are many ways to do it" extends into mod_perl, meaning that I
    can try something new quickly, and come back later to optimize it.
    
    Amoung the features we have on the site:
    
    Application layer security, based on a custom written Session tracking
    system.  A recursively threaded forum system on every page, this
    system accounts for the bulk of the page views.  It's also real time
    in tems of both comments being added, and ratings to the messages
    propigating through.  User uploaded data through out the site, we
    allow players to track their characters, add meta information to
    database entries.  Detailed web based administration system based on
    the Application security layer.
    
    The speed of development of perl, coupled with the rich resources of
    CPAN, and the incredible power of mod_perl have made this site
    possible.
    
    Running the same site in other technologies would have been possible,
    but would either require more hardware, or more time to develop.
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/allakhazam.com.txt
  
  Index: allakhazam.com.txt
  ===================================================================
  From: Andy Sharp <asharp <at> nector.com> 
  Organization: 
  Date: Wed Nov 07 21:20:11 2001
  Subject: Allakhazam's Magical Realm
  Traffic: 1,800,000 Unique Page Loads per day
  URL: http://everquest.allakhazam.com, http://camelot.allakhazam.com, http://eqbeastiary.allakhazam.com.
  
  Almost everything on the site runs in mod_perl.  We have 4 systems
  running the site, one static server (PIII 450, Linux,
  Apache/mod_proxy).  Two database servers (Dual P800, FreeBSD, Mysql)
  which are replicated, and the one mod_perl server (PIII 800, FreeBSD,
  Apache/mod_perl).  The idea to use the proxy server to intercept any
  requests for text or images which was not dynamic came directly from
  the mod_perl guide (http://perl.apache.org/guide/).
  
  It's been a rough ride sometimes, as I've been in the process of
  learning the guts of Apache and more about perl than I ever thought
  I'd need to know.  Since the site first started, I've migrated from a
  Module based system, to Apache::Registry (I wasn't writing good enough
  perl for the module based system to work well), and more recently have
  been migrating high volume scripts back to the Module/Handler based
  system.
  
  That's been the true benefit of mod_perl in developing this site.
  It's been a learning process as we roll out a new application or area
  of the site, watching our hit load go up and up, and then spending
  hours looking for performance bottlenecks in code which was never
  intended to run as often as it does.
  
  mod_perl gives us an incredibly fast development time.  Sometimes, the
  speed of development does mean than lower quality code creeps into the
  production environment, but it allows us (me) to get things done which
  would take much much longer in another application environment.  Perls
  "there are many ways to do it" extends into mod_perl, meaning that I
  can try something new quickly, and come back later to optimize it.
  
  Amoung the features we have on the site:
  
  Application layer security, based on a custom written Session tracking
  system.  A recursively threaded forum system on every page, this
  system accounts for the bulk of the page views.  It's also real time
  in tems of both comments being added, and ratings to the messages
  propigating through.  User uploaded data through out the site, we
  allow players to track their characters, add meta information to
  database entries.  Detailed web based administration system based on
  the Application security layer.
  
  The speed of development of perl, coupled with the rich resources of
  CPAN, and the incredible power of mod_perl have made this site
  possible.
  
  Running the same site in other technologies would have been possible,
  but would either require more hardware, or more time to develop.
  
  
  
  1.1                  modperl-docs/src/stories/bsat.pod
  
  Index: bsat.pod
  ===================================================================
  =head1 NAME
  
  BSat
  
  =head1 Info
  
  =over
  
  =item * Author: Mike Fletcher E<lt>lemur1 (at) MINDSPRING.COME<gt>
  
  =item * Date: Fri, 6 Mar 1998 13:01:58 -0500
  
  =back
  
  =head1 The Story
  
            At my former employer (Aaaahh . . . Sorry, just feels good
    to say that :), I rewrote a commercial interface to a defect tracking
    system.  The original product was a bunch of Bourne shell scripts
    that all sourced one humoungus configuration script.  It took on the
    order of 10-12 seconds to return some pages (and some of those weren't
    even excuting any queries against the defect database) on a mostly
    idle SS20.  Under mod_perl, that dropped to approximately 2-4 seconds
    for everything but really large queries (i.e. everything in the db).
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/bsat.txt
  
  Index: bsat.txt
  ===================================================================
  Subject:      BSat
  From:       Mike Fletcher <le...@MINDSPRING.COM>
  Date:         Fri, 6 Mar 1998 13:01:58 -0500
  
          At my former employer (Aaaahh . . . Sorry, just feels good
  to say that :), I rewrote a commercial interface to a defect tracking
  system.  The original product was a bunch of Bourne shell scripts
  that all sourced one humoungus configuration script.  It took on the
  order of 10-12 seconds to return some pages (and some of those weren't
  even excuting any queries against the defect database) on a mostly
  idle SS20.  Under mod_perl, that dropped to approximately 2-4 seconds
  for everything but really large queries (i.e. everything in the db).
  
  
  
  1.1                  modperl-docs/src/stories/calmaeth.maths.uwa.edu.au.pod
  
  Index: calmaeth.maths.uwa.edu.au.pod
  ===================================================================
  =head1 NAME
  
  Computer Aided Teaching system at Mathematics Department at the University of Western Australia
  
  =head1 Info
  
  =over
  
  =item * Author: Kevin Judd E<lt>kevin (at) MATHS.UWA.EDU.AUE<gt>
  
  =item * Date: Mon, 9 Mar 1998 09:41:44 +0800
  
  =back
  
  =head1 The Story
  
    At the Mathematics Department at the University of Western Australia I
    have a web-based computer aided teaching system using mod_perl. The
    students have individual weekly assignments in calculus, statistics,
    linear algebra with diagnostics and assessment built in. The system
    relieves academic staff of the burden of assignment marking and provides
    more personal interaction with students. The system requires database
    management and connection to a computer algebra engine. The transfer from
    a slow/unreliable/Macintosh/Hypercard/Mathematica system to a
    fast/reliable/web system took a couple of months and I had never
    programmed in perl before. The whole excersize was amazingly painless and
    it was entirely mod_perl's doing.
    
    http://CalMaeth.maths.uwa.edu.au
    
    
    Kevin
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/calmaeth.maths.uwa.edu.au.txt
  
  Index: calmaeth.maths.uwa.edu.au.txt
  ===================================================================
  Subject:      Computer Aided Teaching system at Mathematics Department at the University of Western Australia
  From:       Kevin Judd <ke...@MATHS.UWA.EDU.AU>
  Date:         Mon, 9 Mar 1998 09:41:44 +0800
  
  At the Mathematics Department at the University of Western Australia I
  have a web-based computer aided teaching system using mod_perl. The
  students have individual weekly assignments in calculus, statistics,
  linear algebra with diagnostics and assessment built in. The system
  relieves academic staff of the burden of assignment marking and provides
  more personal interaction with students. The system requires database
  management and connection to a computer algebra engine. The transfer from
  a slow/unreliable/Macintosh/Hypercard/Mathematica system to a
  fast/reliable/web system took a couple of months and I had never
  programmed in perl before. The whole excersize was amazingly painless and
  it was entirely mod_perl's doing.
  
  http://CalMaeth.maths.uwa.edu.au
  
  
  Kevin
  
  
  
  
  1.1                  modperl-docs/src/stories/chapters.pl
  
  Index: chapters.pl
  ===================================================================
  @chapters = (
                'www.bivio.com.pod'
              );
  
  1;
  
  
  1.1                  modperl-docs/src/stories/colbychem.pod
  
  Index: colbychem.pod
  ===================================================================
  =head1 NAME
  
  ColbyChem: a free web server for ISIS/Host
  
  =head1 Info
  
  =over
  
  =item * Author: jwkuehne (at) colby.edu (John Kuehne)
  
  =item * Date: Wed, 13 May 1998 10:23:31 -0400 (EDT)
  
  =back
  
  =head1 The Story
  
    Dear mod_perl gang,
    
    The following is somewhat late in the "success story" thread of a few months
    ago, but I think there might be some interest for the database crowd. Below is
    a brief summary of a talk that I gave at a meeting in Philadelphia last week.
    Sponsored by Molecular Designs Limited (MDL), the meeting was attended by
    several hundred representatives of industry and government, and was concerned
    with the problems related to large molecular and reaction databases, and their
    use in combinatorial chemistry, drug discovery, etc.  (These are databases
    consisting of molecular structures and their models, and reactions. A database
    user can pose an sql in the language of chemistry - molecular structures
    drawn with ISIS/Draw or ChemDraw - to find data that have substructure
    similarity, conformationally flexible similarity, reaction similarity,
    and much more. The structures, models, and reactions are displayed using
    MDL's chime plugin, itself based on RASMOL, which renders 'live' 3-D drawings
    that can be rotated and displayed in a number of ways from within the web page.)
    
    *******************************************************************************
    
    
    
    Last November, Dr. Shattuck proposed that we build a reaction database of
    reaction mechanisms studied by Dr. Mundy and his colleagues, using MDL's
    reaction database software. Furthermore, it was his idea that we make
    this a web project open to all. Our first idea was to buy a license for MDL's
    ChemScape server, which links NetScape Enterprise server to MDL's database
    library. Unfortunately, the upgrade from our current MDL license to include
    ChemScape server was too expensive, not to mention NetScape Enterprise server.
    
    I started working on a web server based on Apache and mod_perl that would act
    as a gateway to MDL's database software.
    
    Although MDL's database server protocol is not public, they do provide a
    command line interface called hostcli, which has most of the functionality
    of the proprietary server. The use of hostcli is restricted to one machine,
    but within that machine one may run any number of hostcli processes.
    
    ColbyChem, the project that I presented at the meeting, makes use of hostcli
    by opening it on a pseudoterminal for each database user. The novel aspect
    of ColbyChem is its use of the integrated Apache/perl server running in
    single user (-X) mode for each database user.
    
    Because perl is embedded in Apache, dynamic variables are retained between
    calls to the server children. Certain Apache packages use this to open a
    persistent database connection to industry standard databases such as Oracle,
    but this is not an option with proprietary interfaces, such as MDL's.
    
    In order to adapt this to the idea of opening hostcli on a pty for each user,
    I run a dedicated Apache/perl daemon for each user, in single-mode (-X), on a
    separate port.  That way, each Apache daemon caches the perl program and
    retains dynamic variables between calls. In essence, it becomes a new
    application, composed of Apache and perl, running under my program. The
    effect is similar to an X client. The browser is like the X server.
    
    Entrance to ColbyChem is through a dedicated login daemon running on port 9000.
    Upon receiving a valid login name, the daemon forks an Apache/perl daemon on
    a port specified in a password-like file, and transfers the browser to this
    new port. Authentication, which is very important here, is carried out entirely
    on this new daemon. The user supplies a password. ColbyChem encrypts it
    and compares with the encrypted password assigned to the user. If successful,
    ColbyChem forks and execs hostcli on the pty. It then records the IP number
    and sends back a cookie for secondary authentication upon browser reconnect.
    The cookie is different for each session, is not based only on an easily guessed
    system parameters like time or checksums, and does not reveal, to within the
    limitations of crypt(), the original or encrypted password. My solution for
    the cookie is to take the password, which is secret, and permute it using
    rand() seeded by time. The permuted cleartext password is then encrypted and
    sent back as the cookie. Thus, even if one knew the permutation order and
    cookie, it would still be impossible to recover the original password.
    
    ColbyChem presents side-by-side frames. The left frame contains a query
    builder and controls for hit-list logic and display. The right frame displays
    the data indented in the natural hierarchy of the database. Models, structures,
    and reactions are displayed using MDL's chime plugin.
    
    Essentially, ColbyChem is nothing more than a graphical front-end for hostcli,
    written in 1200 lines of perl. The heart of ColbyChem is two routines, each
    a page of code. The first routine, rd2perl, translates an export file from
    hostcli into a perl data structure that has the hierarchy of the original
    database, i.e. it imports the database into perl. The second routine
    recursively descends the branches of this structure until it reaches the
    tips, whereupon it prints out the data indented to reflect the database
    hierarchy.
    
    MDL has just delivered an Oracle interface to its molecular and reaction
    databases. This opens the possibility of using established packages for
    persistent database connnections that offer the flexibility of ChemScape
    server from within Apache/perl, without the novel hack of running dedicated
    daemons on separate ports for each user.
    
    John Kuehne, Ph.D.
    Information Technology Services
    Colby College
    4200 Mayflower Hill Drive
    Waterville ME  04901
    
    jwkuehne@colby.edu
    207-872-3652
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/colbychem.txt
  
  Index: colbychem.txt
  ===================================================================
   Subject: ColbyChem: a free web server for ISIS/Host
      Date: Wed, 13 May 1998 10:23:31 -0400 (EDT)
      From: jwkuehne@colby.edu (John Kuehne)
  Reply-To: modperl@apache.org
        To: modperl@apache.org
  
  Dear mod_perl gang,
  
  The following is somewhat late in the "success story" thread of a few months
  ago, but I think there might be some interest for the database crowd. Below is
  a brief summary of a talk that I gave at a meeting in Philadelphia last week.
  Sponsored by Molecular Designs Limited (MDL), the meeting was attended by
  several hundred representatives of industry and government, and was concerned
  with the problems related to large molecular and reaction databases, and their
  use in combinatorial chemistry, drug discovery, etc.  (These are databases
  consisting of molecular structures and their models, and reactions. A database
  user can pose an sql in the language of chemistry - molecular structures
  drawn with ISIS/Draw or ChemDraw - to find data that have substructure
  similarity, conformationally flexible similarity, reaction similarity,
  and much more. The structures, models, and reactions are displayed using
  MDL's chime plugin, itself based on RASMOL, which renders 'live' 3-D drawings
  that can be rotated and displayed in a number of ways from within the web page.)
  
  *******************************************************************************
  
  
  
  Last November, Dr. Shattuck proposed that we build a reaction database of
  reaction mechanisms studied by Dr. Mundy and his colleagues, using MDL's
  reaction database software. Furthermore, it was his idea that we make
  this a web project open to all. Our first idea was to buy a license for MDL's
  ChemScape server, which links NetScape Enterprise server to MDL's database
  library. Unfortunately, the upgrade from our current MDL license to include
  ChemScape server was too expensive, not to mention NetScape Enterprise server.
  
  I started working on a web server based on Apache and mod_perl that would act
  as a gateway to MDL's database software.
  
  Although MDL's database server protocol is not public, they do provide a
  command line interface called hostcli, which has most of the functionality
  of the proprietary server. The use of hostcli is restricted to one machine,
  but within that machine one may run any number of hostcli processes.
  
  ColbyChem, the project that I presented at the meeting, makes use of hostcli
  by opening it on a pseudoterminal for each database user. The novel aspect
  of ColbyChem is its use of the integrated Apache/perl server running in
  single user (-X) mode for each database user.
  
  Because perl is embedded in Apache, dynamic variables are retained between
  calls to the server children. Certain Apache packages use this to open a
  persistent database connection to industry standard databases such as Oracle,
  but this is not an option with proprietary interfaces, such as MDL's.
  
  In order to adapt this to the idea of opening hostcli on a pty for each user,
  I run a dedicated Apache/perl daemon for each user, in single-mode (-X), on a
  separate port.  That way, each Apache daemon caches the perl program and
  retains dynamic variables between calls. In essence, it becomes a new
  application, composed of Apache and perl, running under my program. The
  effect is similar to an X client. The browser is like the X server.
  
  Entrance to ColbyChem is through a dedicated login daemon running on port 9000.
  Upon receiving a valid login name, the daemon forks an Apache/perl daemon on
  a port specified in a password-like file, and transfers the browser to this
  new port. Authentication, which is very important here, is carried out entirely
  on this new daemon. The user supplies a password. ColbyChem encrypts it
  and compares with the encrypted password assigned to the user. If successful,
  ColbyChem forks and execs hostcli on the pty. It then records the IP number
  and sends back a cookie for secondary authentication upon browser reconnect.
  The cookie is different for each session, is not based only on an easily guessed
  system parameters like time or checksums, and does not reveal, to within the
  limitations of crypt(), the original or encrypted password. My solution for
  the cookie is to take the password, which is secret, and permute it using
  rand() seeded by time. The permuted cleartext password is then encrypted and
  sent back as the cookie. Thus, even if one knew the permutation order and
  cookie, it would still be impossible to recover the original password.
  
  ColbyChem presents side-by-side frames. The left frame contains a query
  builder and controls for hit-list logic and display. The right frame displays
  the data indented in the natural hierarchy of the database. Models, structures,
  and reactions are displayed using MDL's chime plugin.
  
  Essentially, ColbyChem is nothing more than a graphical front-end for hostcli,
  written in 1200 lines of perl. The heart of ColbyChem is two routines, each
  a page of code. The first routine, rd2perl, translates an export file from
  hostcli into a perl data structure that has the hierarchy of the original
  database, i.e. it imports the database into perl. The second routine
  recursively descends the branches of this structure until it reaches the
  tips, whereupon it prints out the data indented to reflect the database
  hierarchy.
  
  MDL has just delivered an Oracle interface to its molecular and reaction
  databases. This opens the possibility of using established packages for
  persistent database connnections that offer the flexibility of ChemScape
  server from within Apache/perl, without the novel hack of running dedicated
  daemons on separate ports for each user.
  
  John Kuehne, Ph.D.
  Information Technology Services
  Colby College
  4200 Mayflower Hill Drive
  Waterville ME  04901
  
  jwkuehne@colby.edu
  207-872-3652
  
  
  
  1.1                  modperl-docs/src/stories/config.cfg
  
  Index: config.cfg
  ===================================================================
  # WARNING: this file is autogenerated, DO NOT EDIT IT
  # edit make.pl instead
  use vars qw(@c);
  @c = (
        id => 'success_stories',
  
        title => "Extraordinaire Technologie",
  
        abstract => "A single picture is worth a thousand words...",
  
        body => {
            bot => 'index_bot.html',
        },
  
        # an ordered list pod files relative to $c{src}
        # the order is important for a correct placing of the chapters
        group => 'Sites Using mod_perl',
        chapters => ['sites.html'],
  
        group => 'Success Stories',
        chapters => [ 'adultad.pod',
                      'allakhazam.com.pod',
                      'bsat.pod',
                      'calmaeth.maths.uwa.edu.au.pod',
                      'colbychem.pod',
                      'iagore.com.pod',
                      'idl-net.pod',
                      'imdb.com.pod',
                      'openscape.org.pod',
                      'presto.pod',
                      'rent.com.pod',
                      'seds.org.pod',
                      'singlesheaven.com.pod',
                      'tamu.pod',
                      'tgix.pod',
                      'winamillion.msn.com.pod',
                      'wmboerse.pod',
                      'www.afp-direct.com.pod',
                      'www.bivio.com.pod',
                      'www.lind-waldock.com.pod' ],
  );
  1;
  
  
  
  1.1                  modperl-docs/src/stories/iagore.com.pod
  
  Index: iagore.com.pod
  ===================================================================
  =head1 NAME
  
  iAgora - Study, Travel, Work Abroad - Connecting Internationals
  
  =head1 Info
  
  =over
  
  =item * Author: Roger Espel Llima E<lt>roger (at) iagora.netE<gt>
  
  =item * Date: Fri, 16 Nov 2001 17:58:05 +0100
  
  =item * Traffic: several million hits / month
  
  =item * URL: http://www.iagora.com/
  
  =back
  
  =head1 The Story
  
    iAgora was started in mid-1998, as a community site for
    internationally minded people.  After investigating the major
    existing web development systems, we chose to go with Linux, Apache
    and mod_perl.  Three years later, we're very happy with this choice.  
    
    At iAgora we are constantly adding features and sections to our
    site, and refining the ones we have.  For us it was very important
    to have a flexible platform, that would give us complete freedom in
    organizing our code, and customizing how the pages are generated.
    
    We have found the combination of Linux, Apache and mod_perl to be:
    
    * cost-effective
    
    There are no software licences to pay, the programs are easy enough
    to install and configure, and many free support and middleware
    modules can be obtained from CPAN.  
    
    * stable
    
    The running servers have had very few crashes, and generally not
    needed much maintenance.  We have also found it very useful to be
    able to administer the servers remotely.
    
    * flexible
    
    Since mod_perl lets perl access low-level hooks within Apache, it is
    possible to have complete control over any aspect of its operation.
    
    For instance, we found it easy and convenient to create virtual
    URLs, where some path elements were matched to database queries
    rather than directories on disk, while still basically serving an
    HTML file.
    
    * adapted for large site creation
    
    Mod_perl gives us complete control over how HTML and perl code
    interface to each other.  By using a templating to the fullest
    extent, we minimize the amount of duplication both in HTML and perl.
    This also lets us have common navigation and design accross the
    whole site, while separately maintaining the various form-based
    applications that make the site.
    
    Contact Person: 
    
    * Technical: Roger Espel Llima <ro...@iagora.net> 
    * Business:  Philippe Negre <ph...@iagora.net>
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/iagore.com.txt
  
  Index: iagore.com.txt
  ===================================================================
  Date: Fri, 16 Nov 2001 17:58:05 +0100
  From: Roger Espel Llima <ro...@iagora.net>
  To: Stas Bekman <st...@stason.org>
  Subject: iAgora - Study, Travel, Work Abroad - Connecting Internationals
  URL: http://www.iagora.com/
  Traffic: several million hits / month
  
  iAgora was started in mid-1998, as a community site for
  internationally minded people.  After investigating the major
  existing web development systems, we chose to go with Linux, Apache
  and mod_perl.  Three years later, we're very happy with this choice.  
  
  At iAgora we are constantly adding features and sections to our
  site, and refining the ones we have.  For us it was very important
  to have a flexible platform, that would give us complete freedom in
  organizing our code, and customizing how the pages are generated.
  
  We have found the combination of Linux, Apache and mod_perl to be:
  
  * cost-effective
  
  There are no software licences to pay, the programs are easy enough
  to install and configure, and many free support and middleware
  modules can be obtained from CPAN.  
  
  * stable
  
  The running servers have had very few crashes, and generally not
  needed much maintenance.  We have also found it very useful to be
  able to administer the servers remotely.
  
  * flexible
  
  Since mod_perl lets perl access low-level hooks within Apache, it is
  possible to have complete control over any aspect of its operation.
  
  For instance, we found it easy and convenient to create virtual
  URLs, where some path elements were matched to database queries
  rather than directories on disk, while still basically serving an
  HTML file.
  
  * adapted for large site creation
  
  Mod_perl gives us complete control over how HTML and perl code
  interface to each other.  By using a templating to the fullest
  extent, we minimize the amount of duplication both in HTML and perl.
  This also lets us have common navigation and design accross the
  whole site, while separately maintaining the various form-based
  applications that make the site.
  
  Contact Person: 
  
  * Technical: Roger Espel Llima <ro...@iagora.net> 
  * Business:  Philippe Negre <ph...@iagora.net>
  
  
  
  
  1.1                  modperl-docs/src/stories/idl-net.pod
  
  Index: idl-net.pod
  ===================================================================
  =head1 NAME
  
  Performance increase of around 1100% compared to ASP
  
  =head1 Info
  
  =over
  
  =item * Author: Abiga�l Duesberg E<lt>abi (at) idl-net.comE<gt>
  
  =item * Date: Tue, 10 Nov 1998 23:16:31 +0100
  
  =back
  
  =head1 The Story
  
    Hi,
    
            I saw that there were requests for success stories, so here is ours.
    We had to create 21 websites that basically had the same textual content
    (but different ads+clickthroughs, different designs, different acces rights,
    etc...), that needed to sometimes remain unseen and act as gateways to other
    sites, and sometimes show up, with changing content and links according to
    user rights. Also, it had to answer search engine bots with different
    content using yet another database of robot user agents, as well as (coupled
    with LWP stuff) try to relate automatic posting to search engine databases
    to bots that came visiting (I know this isn't really good, but then, food is
    sometimes more important, :-( ) and to optimise meta tags, resubmission,
    etc...
    
            It's all done in mod_perl, and in three days time it served a bit
    more than 4 million mod_perl hits, and submitted 180.000 forms to search
    engines. Everything's running on a 300mhz x86, with 128megs of ram. As a
    comparison, the early development tests were done using CGI on the same PC,
    and ASP on a more powerful one running IIS. We also tried using java
    servlets but the results were so desperate that I will not mention them here
    in respect for those people that use them. Given the time it took either for
    the CGI to be finished, or for the ASP to connect to it's SQL Server 6.5 to
    yield the right results or send the right page, we had been planning to buy
    5 other PCs to get the job done with those solutions. Our benchmarks run
    with about 15.000 iterations of a series of calls to the servers that were
    under no other load show that ASP is hardly faster than CGI when database
    access is used (and then you have to take into account the fact that the ASP
    PC was fairly stronger, (I don't remember the CPU but it had 512megs of
    ram), but that mod_perl induces a performance increase of around 1100% !!!
    Also, it seems to be using less ressources (though I haven't tested that
    fully), or using them for so short time lapses that one doesn't even notice.
    
            The mod_perl development of the whole project was done by one person
    in less than three weeks (stress-testing included) , and it is running
    flawlessly.
    
    
    I am looking for something stronger, but all that comes to mind is a deeply
    heart-felt "Thanks !".
    
    
    
    Abiga�l Duesberg
    ASP - Lotus - LiveWire - Perl - Java
    
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/idl-net.txt
  
  Index: idl-net.txt
  ===================================================================
  Date: Tue, 10 Nov 1998 23:16:31 +0100
  From: Abiga�l Duesberg <ab...@idl-net.com>
  To: modperl <mo...@apache.org>
  Subject: Performance increase of around 1100% compared to ASP
  
  
  Hi,
  
          I saw that there were requests for success stories, so here is ours.
  We had to create 21 websites that basically had the same textual content
  (but different ads+clickthroughs, different designs, different acces rights,
  etc...), that needed to sometimes remain unseen and act as gateways to other
  sites, and sometimes show up, with changing content and links according to
  user rights. Also, it had to answer search engine bots with different
  content using yet another database of robot user agents, as well as (coupled
  with LWP stuff) try to relate automatic posting to search engine databases
  to bots that came visiting (I know this isn't really good, but then, food is
  sometimes more important, :-( ) and to optimise meta tags, resubmission,
  etc...
  
          It's all done in mod_perl, and in three days time it served a bit
  more than 4 million mod_perl hits, and submitted 180.000 forms to search
  engines. Everything's running on a 300mhz x86, with 128megs of ram. As a
  comparison, the early development tests were done using CGI on the same PC,
  and ASP on a more powerful one running IIS. We also tried using java
  servlets but the results were so desperate that I will not mention them here
  in respect for those people that use them. Given the time it took either for
  the CGI to be finished, or for the ASP to connect to it's SQL Server 6.5 to
  yield the right results or send the right page, we had been planning to buy
  5 other PCs to get the job done with those solutions. Our benchmarks run
  with about 15.000 iterations of a series of calls to the servers that were
  under no other load show that ASP is hardly faster than CGI when database
  access is used (and then you have to take into account the fact that the ASP
  PC was fairly stronger, (I don't remember the CPU but it had 512megs of
  ram), but that mod_perl induces a performance increase of around 1100% !!!
  Also, it seems to be using less ressources (though I haven't tested that
  fully), or using them for so short time lapses that one doesn't even notice.
  
          The mod_perl development of the whole project was done by one person
  in less than three weeks (stress-testing included) , and it is running
  flawlessly.
  
  
  I am looking for something stronger, but all that comes to mind is a deeply
  heart-felt "Thanks !".
  
  
  
  Abiga�l Duesberg
  ASP - Lotus - LiveWire - Perl - Java
  
  
  
  
  
  1.1                  modperl-docs/src/stories/imdb.com.pod
  
  Index: imdb.com.pod
  ===================================================================
  =head1 NAME
  
  moviesdatabase.com or imdb.com
  
  =head1 Info
  
  =over
  
  =item * Author: Rob Hartill E<lt>robh (at) IMDB.COME<gt>
  
  =item * Date: Fri, 6 Mar 1998 21:35:40 +0000
  
  =back
  
  =head1 The Story
  
    On Fri, 6 Mar 1998, Lincoln Stein wrote:
    
    > Hi All,
    >
    > I'm looking for more mod_perl success stories like the one that Jeff
    > posted the other day.  They will be used for vignettes in an
    > introductory chapter of the book that Doug and I are writing.  If you
    > have a story you'd like to share (particularly one in which mod_perl
    > "defeats" one of its competitors) could you mail it to me or post it
    > to the list?  For the vignettes we need some sort of identifying
    > information, either along the lines of "a major Southwestern
    > University" or "Kulturbox company of Berlin, Germany".
    
    We use mod_perl for just about everything and then some too; serving
    around 1.25 million pageviews per day. All database lookups are handled
    inside Apache via mod_perl. Each request also goes through several
    mod_perl handlers and is then reformated on the fly with mod_perl SSI
    to embed advertising banners and give different views of the site depending
    on the hostname used.
    
    --
    Rob Hartill                              Internet Movie Database (Ltd)
    http://www.moviedatabase.com/   .. a site for sore eyes.
    
    The Internet Movie Database (as we all know, a mod_perl driven site) won a
    1997 Webby as the best Film site on the web.
    
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/imdb.com.txt
  
  Index: imdb.com.txt
  ===================================================================
  Subject: moviesdatabase.com or imdb.com
  From:       Rob Hartill <ro...@IMDB.COM>
  Date:         Fri, 6 Mar 1998 21:35:40 +0000
  
  On Fri, 6 Mar 1998, Lincoln Stein wrote:
  
  > Hi All,
  >
  > I'm looking for more mod_perl success stories like the one that Jeff
  > posted the other day.  They will be used for vignettes in an
  > introductory chapter of the book that Doug and I are writing.  If you
  > have a story you'd like to share (particularly one in which mod_perl
  > "defeats" one of its competitors) could you mail it to me or post it
  > to the list?  For the vignettes we need some sort of identifying
  > information, either along the lines of "a major Southwestern
  > University" or "Kulturbox company of Berlin, Germany".
  
  We use mod_perl for just about everything and then some too; serving
  around 1.25 million pageviews per day. All database lookups are handled
  inside Apache via mod_perl. Each request also goes through several
  mod_perl handlers and is then reformated on the fly with mod_perl SSI
  to embed advertising banners and give different views of the site depending
  on the hostname used.
  
  --
  Rob Hartill                              Internet Movie Database (Ltd)
  http://www.moviedatabase.com/   .. a site for sore eyes.
  
  The Internet Movie Database (as we all know, a mod_perl driven site) won a
  1997 Webby as the best Film site on the web.
  
  
  
  
  
  1.1                  modperl-docs/src/stories/index_bot.html
  
  Index: index_bot.html
  ===================================================================
    <html>
      <head>
        <title>index bottom</title>
      </head>
      <body bgcolor="white">
  If you have a success story to share please submit it to the modperl (at)
  apache.org mailing list. Please include the following information:
  <PRE>
  URL:
  Title:
  Contact Person:
  Traffic: (hits/day/month/whatever)
  Success Story: 
  </PRE>
  
      </body>
    </html>
  
  
  
  1.1                  modperl-docs/src/stories/make.pl
  
  Index: make.pl
  ===================================================================
  #!/usr/bin/perl
  
  use strict;
  use warnings;
  
  use Template;
  use Data::Dumper;
  
  my %valid_headers = map {$_ => 1} qw(From Subject Date URL Traffic);
  
  my $save_config_file = "config.cfg";
  
  my $tmpl_file = "story.tmpl";
  my $config = {
                INCLUDE_PATH => ".",
                OUTPUT_PATH  => ".",
               };
  my $template = Template->new($config) or die $Template::ERROR, "\n";
  
  my %map = (
           '>' => 'E<gt>',
           '<' => 'E<lt>',
           '&' => 'E<amp>',
          );
  
  ###############################################################################
  
  my @files = @ARGV ? @ARGV : <*.txt>;
  
  for my $file (@files) {
      (my $pod_file = $file) =~ s/\.txt$/.pod/;
      my $data = process($file);
      generate($pod_file, $data);
  }
  update_config_file();
  
  
  sub process {
      my $file = shift;
  
      open my $fh, $file or die "cannot open $file: $!";
      local $/ = "";
      my $headers = <$fh>;
      local $/;
      my $body = <$fh>;
      close $fh;
  
      # headers
      my %headers = map {(/(\w+)\s*:\s+(.*)/ && $valid_headers{$1}) ? ($1,$2) : ()} 
          split /\n/, $headers;
  
      my $title = delete $headers{Subject};
      die "error: no Subject: in $file" unless $title;
  
      # antispam
      $headers{Author} = delete $headers{From};
      $headers{Author} =~ s/\@/ (at) /;
  
  #    print Dumper \%headers;
  #    print "headers:\n$headers\n";
  #    print "body:\n$body\n";
  
      my %data = (
                  title   => $title,
                  headers => \%headers,
                 );
  
      # cleanup for pod
      _encode(\%data);
  
      # keep the body as is
      $body =~ s/^/  /mg;
      $data{body} = $body;
  
      return \%data;
  }
  
  sub generate {
      my($filename, $data) = @_;
      print "+++ generating $filename\n";
  
      #  print Dumper \@search_path;
      my $vars = {story => $data};
      $template->process($tmpl_file, $vars, $filename)
          or die "error: ", $template->error(), "\n";
  
  }
  
  # automatically generate the config file maintain the list of
  # available stories, so when new stories are added they will be
  # automatically linked on the next rebuild.
  sub update_config_file {
      my $code = join ",\n" . " " x 20, map {qq('$_')} <*.pod>;
      local $/;
      my $tmpl = <DATA>;
      $tmpl =~ s/\[CHAPTERS\]/$code/;
  
      print "+++ generating $save_config_file\n";
      open my $fh, '>', $save_config_file 
          or die "cannot open $save_config_file:$!";
      print $fh $tmpl;
      close $fh;
  }
  
  sub encode { 
      $_[0] =~ s/([>&<])/$map{$1}/g;
  }
  sub _encode {
      my $ref = ref $_[0];
      if (!$ref) {
          encode($_[0]) if defined $_[0];
      } elsif ($ref eq 'ARRAY') {
          _encode($_) for @{$_[0]};
      } elsif ($ref eq 'HASH') {
          _encode($_[0]->{$_}) for keys %{$_[0]};
      } else {
          # nothing
      }
  }
  
  
  __DATA__
  # WARNING: this file is autogenerated, DO NOT EDIT IT
  # edit make.pl instead
  use vars qw(@c);
  @c = (
        id => 'success_stories',
  
        title => "Extraordinaire Technologie",
  
        abstract => "A single picture is worth a thousand words...",
  
        body => {
            bot => 'index_bot.html',
        },
  
        # an ordered list pod files relative to $c{src}
        # the order is important for a correct placing of the chapters
        group => 'Sites Using mod_perl',
        chapters => ['sites.html'],
  
        group => 'Success Stories',
        chapters => [ [CHAPTERS] ],
  );
  1;
  
  
  
  1.1                  modperl-docs/src/stories/openscape.org.pod
  
  Index: openscape.org.pod
  ===================================================================
  =head1 NAME
  
  Mod_perl Uber Alles
  
  =head1 Info
  
  =over
  
  =item * Author: Christopher A. Thompson E<lt>x4 (at) ROCKETMAIL.COME<gt>
  
  =item * Date: Wed, 15 Apr 1998 09:34:19 -0700
  
  =back
  
  =head1 The Story
  
    I have put up a site that's a true testament to mod perl's power. (He
    said humbly).
    
    http://openscape.org now contains the new site that I've been writing
    over the last 2 weeks.
    
    The site is generated 100% dynamically by my module Obelisk.pm. Apache
    1.2.6 and mod_perl 1.10 are used, and the module is inserted to run on
    <Location />. MySQL and DBD::MySQL provide the back end object store.
    
    I keep all text, news items, and the like in the SQL database. at
    request time, the module takes the following steps.
    
    $method = $r->method;
    $loc = $r->uri;
    
    $loc is then parsed out. Depending on the "page" requested the module
    generates a page based on several SQL calls, and prints the result
    back out. I pass args on to the subrequests this way too, such as
    http://openscape.org/rnews/12  will read news item 12. It's all
    handled in the URL parsing. For the forms handling when you post a
    news item, I use CGI_Lite to grab things off POST. (If $method is
    POST), since Apache:: cant grab POST by default. I plan to implement
    my own POST handler, I just havent gotten around to it.
    
    You can post comments on news items, and those will be generated
    dynamically too. (a-la slashdot.org if you're familiar).
    
    The amazing part of all this is twofold. First, it's all done in 427
    lines of perl and 6 SQL tables. Slashdot is 2500 lines of code.
    Second, while I dont have any definitive numbers, this looks like it's
    going to scale very large. I've thrown a few large parallel requests
    at it (just simple LWP gets, in many parallel processes) and it doesnt
    seem to slow down. This box is just a P5/166 with 64megs RAM and Linux
    2.0.31.
    
    This all occurs with no CGI.pm, no Apache::Registry, no on disk
    content but the Obelisk.pm. I am so spoiled by this method that I dont
    think I can go back. I'm writing a Doc on the process and I'll have it
    up soon. I know I'm not the first person to do this, but the process
    doesnt seem to be exceedingly documented. Oh, and Obelisk will be
    GPL'ed as soon as I gather it into a form that's fit for human
    consumption.
    
    Thanks Doug and crew for mod_perl.
    
    -Chris
    
    
    
    ===
    ------------------------------------------------------------
    Chris Thompson    |I do not wish it to be misconstrued that
    ct@x4.net         |     at no time was I not in total
    ct@cthompson.org  |      Disagreement   --Anonymous
    ------------------------------------------------------------
    
    
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/openscape.org.txt
  
  Index: openscape.org.txt
  ===================================================================
  Subject:      Mod_perl Uber Alles
  From:       Christopher A. Thompson <x4...@ROCKETMAIL.COM>
  Date:         Wed, 15 Apr 1998 09:34:19 -0700
  
  I have put up a site that's a true testament to mod perl's power. (He
  said humbly).
  
  http://openscape.org now contains the new site that I've been writing
  over the last 2 weeks.
  
  The site is generated 100% dynamically by my module Obelisk.pm. Apache
  1.2.6 and mod_perl 1.10 are used, and the module is inserted to run on
  <Location />. MySQL and DBD::MySQL provide the back end object store.
  
  I keep all text, news items, and the like in the SQL database. at
  request time, the module takes the following steps.
  
  $method = $r->method;
  $loc = $r->uri;
  
  $loc is then parsed out. Depending on the "page" requested the module
  generates a page based on several SQL calls, and prints the result
  back out. I pass args on to the subrequests this way too, such as
  http://openscape.org/rnews/12  will read news item 12. It's all
  handled in the URL parsing. For the forms handling when you post a
  news item, I use CGI_Lite to grab things off POST. (If $method is
  POST), since Apache:: cant grab POST by default. I plan to implement
  my own POST handler, I just havent gotten around to it.
  
  You can post comments on news items, and those will be generated
  dynamically too. (a-la slashdot.org if you're familiar).
  
  The amazing part of all this is twofold. First, it's all done in 427
  lines of perl and 6 SQL tables. Slashdot is 2500 lines of code.
  Second, while I dont have any definitive numbers, this looks like it's
  going to scale very large. I've thrown a few large parallel requests
  at it (just simple LWP gets, in many parallel processes) and it doesnt
  seem to slow down. This box is just a P5/166 with 64megs RAM and Linux
  2.0.31.
  
  This all occurs with no CGI.pm, no Apache::Registry, no on disk
  content but the Obelisk.pm. I am so spoiled by this method that I dont
  think I can go back. I'm writing a Doc on the process and I'll have it
  up soon. I know I'm not the first person to do this, but the process
  doesnt seem to be exceedingly documented. Oh, and Obelisk will be
  GPL'ed as soon as I gather it into a form that's fit for human
  consumption.
  
  Thanks Doug and crew for mod_perl.
  
  -Chris
  
  
  
  ===
  ------------------------------------------------------------
  Chris Thompson    |I do not wish it to be misconstrued that
  ct@x4.net         |     at no time was I not in total
  ct@cthompson.org  |      Disagreement   --Anonymous
  ------------------------------------------------------------
  
  
  
  
  
  
  1.1                  modperl-docs/src/stories/presto.pod
  
  Index: presto.pod
  ===================================================================
  =head1 NAME
  
  Forced to improve the quality
  
  =head1 Info
  
  =over
  
  =item * Author: modus (at) PR.ES.TO
  
  =item * Date: Fri, 6 Mar 1998 10:03:41 -0800
  
  =back
  
  =head1 The Story
  
    At the risk of this becoming a giant mod_perl lovefest, I'll second that.
    I've learned more about perl & apache in my dozen months or so of mod_perl
    than in my many years of work with apache & perl.  mod_perl has definately
    forced me to improve the quality of my perl coding manyfold & taught me more
    than I ever thought I wanted to know about Apache.
    
    On Fri, Mar 06, 1998 at 06:53:36PM +0100, Eric Cholet wrote:
    > We've a mod_perl web site that allows subscribers to view news stories and
    > news photographs from a major news agency. All content is received via a
    > satellite link and users can view it in real time, as well as search
    > through a huge archive database.
    >
    > What I like about mod_perl is its "double" reward: not only is it fast and
    > efficient, but it has been an enlightening experience working with such an
    > elegant tool and reading this list.
    >
    > ----
    > Eric CHOLET - LOGILUNE
    > email: cholet@logilune.com
    > I am Pentium of Borg. Division is Futile. You will be approximated.
    
    --
    Patrick Michael Kane
    <mo...@pr.es.to>
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/presto.txt
  
  Index: presto.txt
  ===================================================================
  Subject: Forced to improve the quality
  From:       modus@PR.ES.TO
  Date:         Fri, 6 Mar 1998 10:03:41 -0800
  
  At the risk of this becoming a giant mod_perl lovefest, I'll second that.
  I've learned more about perl & apache in my dozen months or so of mod_perl
  than in my many years of work with apache & perl.  mod_perl has definately
  forced me to improve the quality of my perl coding manyfold & taught me more
  than I ever thought I wanted to know about Apache.
  
  On Fri, Mar 06, 1998 at 06:53:36PM +0100, Eric Cholet wrote:
  > We've a mod_perl web site that allows subscribers to view news stories and
  > news photographs from a major news agency. All content is received via a
  > satellite link and users can view it in real time, as well as search
  > through a huge archive database.
  >
  > What I like about mod_perl is its "double" reward: not only is it fast and
  > efficient, but it has been an enlightening experience working with such an
  > elegant tool and reading this list.
  >
  > ----
  > Eric CHOLET - LOGILUNE
  > email: cholet@logilune.com
  > I am Pentium of Borg. Division is Futile. You will be approximated.
  
  --
  Patrick Michael Kane
  <mo...@pr.es.to>
  
  
  
  
  1.1                  modperl-docs/src/stories/rent.com.pod
  
  Index: rent.com.pod
  ===================================================================
  =head1 NAME
  
  Rent.com runs mod_perl
  
  =head1 Info
  
  =over
  
  =item * Author: Eric Hammond E<lt>ehammond (at) rent.comE<gt>
  
  =item * Date: Fri, 14 Dec 2001 14:27:41 -0800
  
  =back
  
  =head1 The Story
  
    http://www.rent.com/
    
    Rent.com is a dynamic, database driven web site built on mod_perl.
    Initial development took 3 months to replace an NT/IIS/ASP
    implementation.
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/rent.com.txt
  
  Index: rent.com.txt
  ===================================================================
  Date: Fri, 14 Dec 2001 14:27:41 -0800
  From: Eric Hammond <eh...@rent.com>
  Subject: Rent.com runs mod_perl
  
  http://www.rent.com/
  
  Rent.com is a dynamic, database driven web site built on mod_perl.
  Initial development took 3 months to replace an NT/IIS/ASP
  implementation.
  
  
  
  1.1                  modperl-docs/src/stories/seds.org.pod
  
  Index: seds.org.pod
  ===================================================================
  =head1 NAME
  
  Students astronomy site
  
  =head1 Info
  
  =over
  
  =item * Author: Smelly Belly E<lt>smiley (at) SEDS.ORGE<gt>
  
  =item * Date: Fri, 6 Mar 1998 12:07:59 -0700
  
  =back
  
  =head1 The Story
  
    I run a web site for approximately 1200 students of introductory astronomy
    here at the U of Arizona. The server is an old Sun Sparc 1 and we use
    lots of perl CGI's to connect to a database on the backend and create
    custom pages. Before mod_perl, the site was unacceptable slow. Now, with
    the scripts re-written to use mod_perl, the dynamically created pages load
    faster than regular HTML files.
    
    Mr. Guy Smiley
    --
    e-mail:  ( smiley at seds dot org )
    website: ( double u double u double u dot seds dot org slash tilde smiley )
    phone:   ( five two zero three two one one nine six four )
    --
    "I root for a big comet or asteroid as a way of cleansing the planet."
     George Carlin
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/seds.org.txt
  
  Index: seds.org.txt
  ===================================================================
  Subject:      Students astronomy site
  From:       Smelly Belly <sm...@SEDS.ORG>
  Date:         Fri, 6 Mar 1998 12:07:59 -0700
  
  I run a web site for approximately 1200 students of introductory astronomy
  here at the U of Arizona. The server is an old Sun Sparc 1 and we use
  lots of perl CGI's to connect to a database on the backend and create
  custom pages. Before mod_perl, the site was unacceptable slow. Now, with
  the scripts re-written to use mod_perl, the dynamically created pages load
  faster than regular HTML files.
  
  Mr. Guy Smiley
  --
  e-mail:  ( smiley at seds dot org )
  website: ( double u double u double u dot seds dot org slash tilde smiley )
  phone:   ( five two zero three two one one nine six four )
  --
  "I root for a big comet or asteroid as a way of cleansing the planet."
   George Carlin
  
  
  
  
  1.1                  modperl-docs/src/stories/singlesheaven.com.pod
  
  Index: singlesheaven.com.pod
  ===================================================================
  =head1 NAME
  
  Singles Heaven
  
  =head1 Info
  
  =over
  
  =item * Author: Stas Bekman E<lt>stas (at) stason.orgE<gt>
  
  =item * Date: Fri, 14 May 1999 10:06:24 +0200
  
  =back
  
  =head1 The Story
  
    <STRONG>Singles Heaven</STRONG> - http://singlesheaven.com is a
    <STRONG>Match Maker</STRONG> site with 34,000+ members and
    growing. The site is driven by mod_perl, DBI, <CODE>Apache::DBI</CODE>
    (which provides a persistence to DB connections) and mysql. The speed
    is enormous, chatting with mod_perl is a pleasure of experience.
    Every page is being generated by about 10 SQL queries, for it does
    many dynamic checks every time - like checking for new emails,
    watching the users who registered in their watchdog and many more. You
    don't feel these queries are actually happen, the speed is of the
    ``Hello World'' script.
    
    Development path was very short, I have converted plain CGI scripts to
    run under mod_perl (Apache::Registry) almost in no time!!! If you are
    into a database driven service, give mod_perl a try !!!
    
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/singlesheaven.com.txt
  
  Index: singlesheaven.com.txt
  ===================================================================
  From      : Stas Bekman <st...@stason.org>
  Date        : Fri, 14 May 1999 10:06:24 +0200
  Subject     : Singles Heaven
  Organization: Singles Heaven
  
  <STRONG>Singles Heaven</STRONG> - http://singlesheaven.com is a
  <STRONG>Match Maker</STRONG> site with 34,000+ members and
  growing. The site is driven by mod_perl, DBI, <CODE>Apache::DBI</CODE>
  (which provides a persistence to DB connections) and mysql. The speed
  is enormous, chatting with mod_perl is a pleasure of experience.
  Every page is being generated by about 10 SQL queries, for it does
  many dynamic checks every time - like checking for new emails,
  watching the users who registered in their watchdog and many more. You
  don't feel these queries are actually happen, the speed is of the
  ``Hello World'' script.
  
  Development path was very short, I have converted plain CGI scripts to
  run under mod_perl (Apache::Registry) almost in no time!!! If you are
  into a database driven service, give mod_perl a try !!!
  
  
  
  
  
  1.1                  modperl-docs/src/stories/sites.html
  
  Index: sites.html
  ===================================================================
  <html>
  <head>
  <title>Sites Running mod_perl</title>
  </head>
  <body bgcolor=#ffffff >
  <h3>Sites Running mod_perl</h3> 
  <hr>
  This document contains information to give you an idea of where and more
  importantly, <b>how</b> mod_perl is being used.  If you have an interesting
  mod_perl application, let <a href="mailto:modperl-site@apache.org">us</a>
  know about it!  
  <p>
  Of course, the sites described on this page are not the only sites
  running mod_perl.  Since mod_perl has inserted it's name and version
  into Apache's Server header, we are able to see others based on the 
  <a href="netcraft/">netcraft survey</a> results. 
  <hr>
  <p>
  The first public site to run mod_perl and the hand that feeds CPAN
  with it, <a href="http://www.perl.com/CPAN/modules/04pause.html">PAUSE</a>, the Perl Authors Upload SErver.  This was a birthday present given
  to PAUSE by <b>Andreas K&ouml;nig</b> on August 20, 1996.
  <p>
  Andreas and <b>Kulturbox</b> went on to create an exciting site with
  mod_perl that gives you a 
  dynamic tour of Berlin, Germany.
  <a href="http://www.kulturbox.de/perl/berlininfo">BerlinINFO</a>.  The images you see here are generated on the fly, 
  using mod_perl allows the <a href="http://www.perl.com/CPAN/modules/by-module/GD/">GD</a> image objects to be cached in memory
  for an extra performance boost.
  <p>
  Do you like movies?  Then take a look at how <b>Rob Hartill</b> uses mod_perl 
  to help you find out anything and everything there is to know about movies
  at the <a href="http://www.imdb.com/"> Internet Movie Database </a>.
  Besides using mod_perl to speed up the interactive database queries, 
  mod_perl steps in during the first stage of a request, mapping URIs to 
  cached query results if present and mapping based on language preference if
  the user has presented one.
  <p>
  
  <a href="http://www.webpersonals.com/">Webpersonals</a> site uses
  <code>HTML::Embperl</code> over mod_perl to drive this nice match
  making site.
  <p>
  
  
  <a href="http://hn.org">Hammernode Internet</a> a no-cost DNS provider
  serving thousands of zones, uses mod_perl to power both its dynamic
  web site, as well as the server end of its published API interface for
  client programs.  We're very satisfied with mod_perl, and very
  thankful for it.
  
  <p>
  
  The Internet's largest on-line toy store, <a
  href="http://www.etoys.com/">eToys.com</a>, uses mod_perl extensively.
  We use an object-oriented approach built on standard CPAN modules such
  as DBI, BerkeleyDB, and Template Toolkit.  eToys ranked third in
  overall traffic among e-commerce sites during the 1999 Christmas rush,
  right behind Amazon and eBay.  
  <p>
  
  
  
  <b>Patrick Kane</b> uses mod_perl at 
  <a href="http://www.enews.com/">The Electronic Newsstand</a> to maintain
  limited and persistent connections to their Sybase servers where users
  can search and browse through thousands of virtual magazines.  Patrick
  also uses mod_perl's Authentication hook for seamlessly migrating users
  from their old registration system to a new one.
  <p>
  
  <a href="http://www.sol.no/">Scandinavia Online AS</a> uses
  mod_perl for the <a href="http://kvasir.sol.no/">Kvasir search
  engine</a>.  <b>Kvasir</b> is Norway's most popular Internet directory.
  <p>
  
  
  <b>Alvar Freude</b> uses mod_perl on <a
  href="http://www.a-blast.org/">http://www.a-blast.org/</a>.  It is a
  "truly interactive text network", written completely in mod_perl. For
  a quick, non-technical overview have a look on <a
  href="http://www.assoziations-blaster.de/prixars/">http://www.assoziations-blaster.de/prixars/</a>.
  (its in english on our old domain).<br>
  About one year ago, it runs on M$ IIS with ActivePerl and some PHP, in
  the meantime it is completely rewritten as Apache module, using MySQL as
  database. With this, I speed up the execution time from ~3 Seconds to
  ~10 milliseconds for each Blast-Page (OK, OK, the old machine had a very
  worst hardware, now we use only a semi-worst one: Pentium II 350, 320 MB
  RAM with Soft-RAID 0 under Linux).<br>
  
  The blast_engine includes the links into the texts in realtime, also
  the statistics are created in realtime:<br> <a
  href="http://www.a-blast.org/statistics/">http://www.a-blast.org/statistics/</a>,
  <a
  href="http://www.assoziations-blaster.de/statistik">http://www.assoziations-blaster.de/statistik/</a>
  (german, with much more traffic)
  
  The blaster uses the speed benefit of keeping the complete keyword
  list in memory (more then 5 MB for the german version), for the
  non-linear real-time linker I use a ~50 line regexp .-) The HTML-Files
  are compressed on-the-fly with Compress::Zlib, so we keep bandwidth
  (and transmission time to the users) small.
  <p>
  
  <A HREF="http://www.citysearch.com/">CitySearch.com</A> -- is
  providing online city guides for more than 100 cities worldwide,
  citysearch.com helps people find and plan what they want to do and
  then lets them take action, offering local transactions such as buying
  event tickets and making hotel and restaurant reservations online. Its
  traffic exceeds 100,000,000 page views a month. Of course it's running
  under mod_perl.
  
  
  <A HREF="http://perlmonth.com">PerlMonth</A> is a site completely driven  
  by mod_perl/mySQL. Every article is stored in the database. When a user
  makes a request, a module we wrote parses the uri and dynamically creates  
  the html page for the user. It's nothing out of the ordinary but it helps
  maintain the overall site with ease. PerlMonth does about 100K
  Pageviews/month w/o breaking a sweat. The site is written and 
  maintaned by <B>Baiju Thakkar</B>.
  <p>
  
  <A HREF="http://singlesheaven.com">singlesheaven.com</A> is a match
  maker site, that is written completely in Perl and is being driven by
  Apache/mod_perl and mysql. Each request comprises a big number of
  database queries to make the site very interactive, and it's still
  very fast under mod_perl.  The service runs under
  <CODE>Apache::Registry</CODE> module. The site is written and
  maintained by <B>Stas Bekman</B>.
  <p>
  
  <a href="http://www.filepile.com/">filepile.com</a> is an archive of
  over 1.2 million freeware/shareware files.  <b>Michael Mittelstadt</b> explains:
  "After moving to mod_perl, everything is wonderful, everything is
  fast, and the computer (dual P6, linux) is no longer bending under 
  the stress.  mod_perl saved us from having to buy a second webserver."
  
  <p>
  <b>Gerald Richter</b> and <b>ECOS</b> are using mod_perl (with
  Embperl) for a picture database. This contains 
  pictures from touristic information Rheinland-Pfalz. It's intented as press
  information, to reduce the need of sending photographs around. You can view
  and search the picture via the <a
  href="http://bilder.ecos.de">internet</a> or via a 
  direct dial-in. The download is only available for vaild users and via
  direct dial-in. Also it's possible to maintain the database via the web and
  insert new picture and descriptions, change or delete them.
  Software running is Apache 1.3, mod_perl,
  <a href="http://perl.apache.org/embperl/">Embperl</a>, DBI, DBD-Pg, Postgress
  6.21 on an Linux 2.0.34.
  <p>
  <b>Jayme Cox</b> explains: At <b>Broderbund Software</b>, we have a
  site running mod_perl to keep 
  persistant database connections open between our Apache web farm and
  our
  Oracle database server. We have a <a href="http://www.warlords3.com">
  game site </a> that checks our Oracle DB for a customers email address
  and lets them download additional game maps if they have registered
  the software. Using persistant DB connections increased the perceived
  response time by over
  200%. The exact URL is 
  <a href="http://www.warlords3.com/guild/maps">
  http://www.warlords3.com/guild/maps</a>.
  <p>
  <b>Rick Mangi</b> and 
  <a href="http://www.tgix.com/">Thaumaturgix, Inc.</a>
  use mod_perl to provide a method for gathering stats on web
  usage including a logging proxy server module for their customers.
  <p>
  <b>Jason Bodnar</b> at <b>Cox Interactive Media</b>, explains: <br>
  Right now we're using mod_perl for authentication on two sites (soon
  to be a third): 
  <a href="http://www.Austin360.com">http://www.Austin360.com</a> 
  and 
  <a href="http://www.GoBig12.com">http://www.GoBig12.com</a>. 
  We started out using Netscape servers and dbms for authentication. We
  were writing all our demographic info to flat files but that got out
  of hand so we moved the demo info to Informix. This was okay but it
  meant keeping two seperate databases (dbms or Berkely DB with
  username/password and Informix with demographics). Not fun. So when we
  switched to Apache (for performance reasons) I was able to consolidate
  all the info and do authentication out of Informix thanks to mod_perl,
  Apache::DBI, Apache::AuthenDBI and DBD::Informix. It makes life much
  simpler!  We're also eventually going to be running our Eats Database
  (list over 1400 restaurants in Austin) and our movie database with
  mod_perl. I'm sure we'll find alot more uses for it in the future.    
  
  <p>
  
  <A HREF="http://www.magirus.com">Magirus Datentechnik GmbH</A> 
  is a German company of about 200 peoples, (de)located in 
  Germany, Switzerland, Italy, Austria, and needs a powerful 
  Intranet System for it's internal information flows.  We're 
  using mod_perl to do it.  Our mod_perl applications make the 
  link between 5 different database systems (Perl power and 
  mod_perl permanent database connections), allow users to get 
  price-lists, make offers and orders, get the status of a 
  client, etc. The advantage of that kind of configuration is 
  that we just need to install a Web Browser on the user's side. 
  These tools are avaible from both Intranet or secured Internet 
  connection. Without mod_perl, the average response time for 
  the top 5 applications is between 3 till 9 seconds.  This can't 
  be accepted by an end-user.  With mod_perl, the response time 
  seems (for the end-user) to be null (depending of the client's 
  speed).  This is only working on a private-network and so we 
  can't give you an address to try it.  For more information, 
  contact <A HREF="mailto:Philippe.Froidevaux@magirus.com">
  Philippe.Froidevaux@magirus.com</A>.
  <p>
  <b>Tony Bowden</b> developed <a href="http://www.musicdatabase.com/">The
  Music Database</a> which uses mod_perl and MySQL to allow browsing and
  searching a cross-referenced guide to over 80,000 CDs and one million
  songs. (not operational at this stage). 
  <p>
  <b>Randy Ray</b> uses Apache+mod_perl for his Software Configuration Management
  team's site within <b>U S WEST IT</b>. About 1/3 of the data the server sends out is
  CGI-generated. After the conversion to mod_perl, some existing CGI scripts
  running unchanged via Apache::Registry showed measurable speed increases of
  as much as 723%. All of the SCM CGI scripts use the Image::Size library to
  add HEIGHT and WIDTH attributes to &lt;IMG&gt; tags. As Image::Size caches the
  dimensions of each files as it is first read, the persistent dataspace will
  virtually eliminate the step of computing image sizes.
  <p>
  
  <a href="http://www.arttoday.com">ArtToday</a> has a collection of
  over 600,000 keyworded images of all types.  Customers find images
  using keyword and category searches.  They serve about 250,000 raw
  hits daily.
  
  Information about the collection persists in an Oracle 7 database,
  and keyword searches happen via a custom application written using
  a Verity search engine.  All of this is glued together using Perl.
  Our hardware consists of a single Sun Ultra with lots of storage
  (about 150GB) and an unnecessarily large monitor.
  
  We switched to Apache/mod_perl after becoming frustrated with
  Netscape Commerce Server performance.  Although I don't have hard
  numbers, I would estimate a factor of 2-5 times CGI performance.
  Using mod_perl and Apache we've turned our "extremely loaded" server
  into a "comfortably loaded" server, even allowing us room for some
  software development.  Mod_perl saved us from having to buy another
  Ultra!  
  <p>
  mod_perl scripts which search the archives of
  <A HREF="http://theory.uwinnipeg.ca/search/cpan-search.html">CPAN</A>, 
  <A HREF="http://theory.uwinnipeg.ca/search/ctan-search.html">CTAN</A>, 
  <A HREF="http://theory.uwinnipeg.ca/search/linux-search.html">Linux</A>, 
  <A HREF="http://theory.uwinnipeg.ca/search/tetex.html">teTeX</A>
  (a Unix TeX system), and
  MuPAD (a symbolic math program) are available at
  <A HREF="http://theory.uwinnipeg.ca/">theory.uwinnipeg.ca</A>.
  These scripts query an mSQL database via various criteria, and employ 
  the CPAN multiplexer code to choose a nearby mirror of the archive, 
  if available and desired.
  <p>
  <A HREF="http://www.pbs.org/">PBS Online</A> is using mod_perl to
  improve the speed of its heavily loaded servers, having replaced CGI for
  games, navigation control, and commerce. 
  <p>
  <a href='http://www.oreilly.com/'>O'Reilly and Associates</a>
  uses mod_perl to control access to their
  <a href='http://online-books.oreilly.com/books/'>online books site</a>.
  Every request for a document runs through a mod_perl script, which checks
  username and password, and may eventually provide dynamic data.
  <p>
  <a href="http://home.wired.com/">WIRED Digital</a>
  uses mod_perl (on linux and solaris) for several
  applications. On HotBot  mod_perl is used for the <a
  href="http://members.hotbot.com/">HotBot mail and 
  HotBot homepages</a> application, interfacing with a third-party
  application by WhoWhere.  It is also used widely throughout 
  <a href="http://www.hotwired.com/">HotWired</a>,
  <a href="http://www.wired.com/news/">Wired News</a>,
  <a href="http://www.webmonkey.com/"> Webmonkey </a>
  and <a href="http://www.suck.com/">Suck.com </a> as a replacement for
  CGI scripts, 
  and to control the HotWired member pages.  Mod_perl also runs two
  servers that redirect requests for external pages from within WIRED
  sites.  WIRED Digital regards mod_perl as an important and highly
  valuable addition to the server development toolset, and will continue
  to consider mod_perl as a strong candidate for solutions.  
  
  <p>
  <a href="http://www.medimatch.com/">MediMatch</a> uses Apache and
  Stronghold on Solaris, and makes use of mod_perl almost exclusively
  for its medical employment services database.  Originally coded to use
  standard CGI, when we switched over to mod_perl to maintain persistent
  connections to a Sybase database, and for data caching in various
  fashions, we saw a speedup ranging from 25-500% (varying on the type
  and depth of the search queries).  We also use mod_perl to facilitate
  the caching of CGI-parsed HTML pages, which reduced the speed of
  requests to approximately that of ordinary static HTML. 
  <p>
  CMPnet <a href="http://www.cmpnet.com/">www.cmpnet.com</a>, a
  technology information network, uses 
  mod_perl to generate 70% of its pages - over half a million hits a day.
  Our network includes TechWeb <a
  href="http://www.techweb.com/">www.techweb.com</a>, a technology 
  news site, and FileMine 
  <a href="http://www.filemine.com/">www.filemine.com</a>, a shareware
  site. 
  We switched to mod_perl because we couldn't stand writing and
  debugging NSAPI code for Netscape servers anymore. Needless to say the
  productivity improvement was immeasurable. Recently our company
  evaluated several top commercial web publishing platforms (Vignette's
  StoryServer, INSO's DynaBase) for a possible switchover. But in the
  end we stayed with our mod_perl architecture and agreed to standardize
  our company's internet operations on it!
  <p>
  Mark A. Downing tells us:
  I have been running an <a href="http://www.wm7d.net/">Amateur
  Radio</a> callsign database (with 800k records)
  on my web page for nearly two years, originally with WebSQL. But due to the
  lack of portability, I rewrote my scripts using sybperl. Now with mod_perl,
  I have successfully cut the time to complete a lookup from nearly 5 seconds
  to under 1 second (It takes longer to display the data than to do the
  query). This was accomplished by creating persistant database connections
  (to sybase) using mod_perl, and Apache is now able to establish those
  connections upon startup. No longer do I have to wait for my original
  scripts to connect and gather data. 
  <p>
  Rob Malda tells that <a href="http://slashdot.org/">Slashdot.org</a> -
  news for nerd, is a combination of Perl and MySQL. Slashdot runs under
  mod_perl which keeps things nice and speedy.
  
  <p>
  <a href="http://www.mojam.com/">Mojam</a> is a new Internet music
  media company with the goal of attracting the largest audience of
  music listeners and players anywhere.  Mojam is different that
  RollingStone or MTV because it focuses on helping new bands get their
  music out to the listeners by posting thier show dates, music clips,
  and news releases.  mojam.com is 100% Apache mod_perl running Mason to
  dynamically deliver all of it's pages. 
  <p>
  <hr>
  </body>
  </html>
  
  
  
  1.1                  modperl-docs/src/stories/story.tmpl
  
  Index: story.tmpl
  ===================================================================
  =head1 NAME
  
  [% story.title %]
  
  =head1 Info
  
  [% IF story.headers -%]
  =over
  [% FOREACH key = story.headers.keys.sort -%]
  [% IF story.headers.$key -%]
  
  =item * [% key %]: [% story.headers.$key -%]
  
  [% END -%]
  [% END -%]
  
  =back
  [% END -%]
  
  =head1 The Story
  
  [% story.body -%]
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/tamu.pod
  
  Index: tamu.pod
  ===================================================================
  =head1 NAME
  
  Move from ActiveWare PerlScript on IIS4 to Apache and modperl improved performance by factor 60
  
  =head1 Info
  
  =over
  
  =item * Author: Jeff Baker E<lt>jeff (at) GODZILLA.TAMU.EDUE<gt>
  
  =item * Date: Tue, 3 Mar 1998 21:13:06 -0600
  
  =back
  
  =head1 The Story
  
    I'd like to share my recent success story.  Over the last four days,
    students living on campus here at Texas A&M University have had to go
    through what is called "contract renewal," where they indicate whether
    or not they will continue to live on campus in the coming academic
    year.  In the past, this has all been done very tedioulsy with
    scantron forms and human-eye error correction.  This year, the system
    was moved to the web.  The code was user-proofed to prevent the usual
    mistakes, with the addition of some fancy authentication and session
    tracking mechanisms. 
    
    The system was originally written using ActiveWare PerlScript on IIS
    4.0, but when I was done, it was glaringly obvious that it was far too
    slow.  In only 14 days, we ported the code to Apache and mod_perl,
    with the same NT platform underneath.  The performance
    (transactions/sec) was more than 60 times better!!!
    
    The system went online Friday night, and in the course of its 4-day run,
    it served 400,000 documents, the bulk of which were generated on the
    fly. Ten thousand people used the system, and all went without a hitch.
    
    Here's to mod_perl!
    Jeffrey
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/tamu.txt
  
  Index: tamu.txt
  ===================================================================
  From:       Jeff Baker <je...@GODZILLA.TAMU.EDU>
  Date:         Tue, 3 Mar 1998 21:13:06 -0600
  Subject: Move from ActiveWare PerlScript on IIS4 to Apache and modperl improved performance by factor 60
  
  I'd like to share my recent success story.  Over the last four days,
  students living on campus here at Texas A&M University have had to go
  through what is called "contract renewal," where they indicate whether
  or not they will continue to live on campus in the coming academic
  year.  In the past, this has all been done very tedioulsy with
  scantron forms and human-eye error correction.  This year, the system
  was moved to the web.  The code was user-proofed to prevent the usual
  mistakes, with the addition of some fancy authentication and session
  tracking mechanisms. 
  
  The system was originally written using ActiveWare PerlScript on IIS
  4.0, but when I was done, it was glaringly obvious that it was far too
  slow.  In only 14 days, we ported the code to Apache and mod_perl,
  with the same NT platform underneath.  The performance
  (transactions/sec) was more than 60 times better!!!
  
  The system went online Friday night, and in the course of its 4-day run,
  it served 400,000 documents, the bulk of which were generated on the
  fly. Ten thousand people used the system, and all went without a hitch.
  
  Here's to mod_perl!
  Jeffrey
  
  
  
  
  1.1                  modperl-docs/src/stories/tgix.pod
  
  Index: tgix.pod
  ===================================================================
  =head1 NAME
  
  mod_perl contact management system for Fortune-500 pharmaceutical giant
  
  =head1 Info
  
  =over
  
  =item * Author: Rick Mangi E<lt>rmangi (at) TGIX.COME<gt>
  
  =item * Date: Fri, 6 Mar 1998 12:14:49 -0500
  
  =back
  
  =head1 The Story
  
    I have 2 success stories to share:
    
    1. I'm finishing a web-based mod_perl/javascript (client side) contact
    management system with heavy Apache::DBI and Registry use. This system
    is for a "fortune-500 pharmaceudical (sp?) giant". It is replacing an
    unmanageable (their description) Lotus Domino application.
    
    2. It production, a mod_perl server for gathering web traffic statistics
    for an up and coming web traffic reporting company. The mod_perl
    enhanced server gathers data from thousands of client and server based
    proxies around the world. Data is stored in Oracle using Apache::DBI.
    This replaced a poorly designed PHP server (poor choice using php in
    this scenario imho).
    
    
    Rick
    
    
    
    --
    _______________________________________________________________
    
    Rick Mangi                                  Tel: (212) 972-2030
    Thaumaturgix, Inc.                          Fax: (212) 972-2003
    317 Madison Avenue, Suite 1615              rmangi@tgix.com
    New York, NY 10017                          http://www.tgix.com
              thau'ma-tur-gy, n. the working of miracles
      "Perl is a state of mind as much as it is a language grammar"
    _______________________________________________________________
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/tgix.txt
  
  Index: tgix.txt
  ===================================================================
  Subject: mod_perl contact management system for Fortune-500 pharmaceutical giant
  From:       Rick Mangi <rm...@TGIX.COM>
  Organization: Thaumaturgix, Inc.
  Date:         Fri, 6 Mar 1998 12:14:49 -0500
  
  I have 2 success stories to share:
  
  1. I'm finishing a web-based mod_perl/javascript (client side) contact
  management system with heavy Apache::DBI and Registry use. This system
  is for a "fortune-500 pharmaceudical (sp?) giant". It is replacing an
  unmanageable (their description) Lotus Domino application.
  
  2. It production, a mod_perl server for gathering web traffic statistics
  for an up and coming web traffic reporting company. The mod_perl
  enhanced server gathers data from thousands of client and server based
  proxies around the world. Data is stored in Oracle using Apache::DBI.
  This replaced a poorly designed PHP server (poor choice using php in
  this scenario imho).
  
  
  Rick
  
  
  
  --
  _______________________________________________________________
  
  Rick Mangi                                  Tel: (212) 972-2030
  Thaumaturgix, Inc.                          Fax: (212) 972-2003
  317 Madison Avenue, Suite 1615              rmangi@tgix.com
  New York, NY 10017                          http://www.tgix.com
            thau'ma-tur-gy, n. the working of miracles
    "Perl is a state of mind as much as it is a language grammar"
  _______________________________________________________________
  
  
  
  
  1.1                  modperl-docs/src/stories/winamillion.msn.com.pod
  
  Index: winamillion.msn.com.pod
  ===================================================================
  =head1 NAME
  
  Microsoft Network, 1 million hits per week through modperl
  
  =head1 Info
  
  =over
  
  =item * Author: Vivek Khera E<lt>khera (at) KCILINK.COME<gt>
  
  =item * Date: Fri, 6 Mar 1998 10:34:32 -0500
  
  =back
  
  =head1 The Story
  
    >>>>> "LS" == Lincoln Stein <ls...@CSHL.ORG> writes:
    
    LS> I'm looking for more mod_perl success stories like the one that Jeff
    LS> posted the other day.  They will be used for vignettes in an
    
    
    The Microsoft Network promotion running to increase subscribership
    located at http://winamillion.msn.com/ is run on mod_perl.  The
    contest ends at the end of the month, so check it out before then ;-)
    
    Anyhow, the system is currently pounding nearly 10 million hits per
    week to the web pages, of which about 1 million go through mod_perl.
    Each of those accesses runs through on averate 3 SQL queries to a
    MySQL database and 2 references to DB_File databases.
    
    There is no way in heck it would have run without mod_perl.  By the
    way, this is using Squid in accelerator mode, as I described in the
    tuning docs.  Squid handles about 93% of the content (the static and
    mostly static stuff).
    
                                                                    v.
    
    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Vivek Khera, Ph.D.                Khera Communications, Inc.
    Internet: khera@kciLink.com       Rockville, MD       +1-301-258-8292
    PGP/MIME spoken here              http://www.kciLink.com/home/khera/
    
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/winamillion.msn.com.txt
  
  Index: winamillion.msn.com.txt
  ===================================================================
  Subject:      Re: Success stories
  From:       Vivek Khera <kh...@KCILINK.COM>
  Date:         Fri, 6 Mar 1998 10:34:32 -0500
  Subject:		  Microsoft Network, 1 million hits per week through modperl
  
  >>>>> "LS" == Lincoln Stein <ls...@CSHL.ORG> writes:
  
  LS> I'm looking for more mod_perl success stories like the one that Jeff
  LS> posted the other day.  They will be used for vignettes in an
  
  
  The Microsoft Network promotion running to increase subscribership
  located at http://winamillion.msn.com/ is run on mod_perl.  The
  contest ends at the end of the month, so check it out before then ;-)
  
  Anyhow, the system is currently pounding nearly 10 million hits per
  week to the web pages, of which about 1 million go through mod_perl.
  Each of those accesses runs through on averate 3 SQL queries to a
  MySQL database and 2 references to DB_File databases.
  
  There is no way in heck it would have run without mod_perl.  By the
  way, this is using Squid in accelerator mode, as I described in the
  tuning docs.  Squid handles about 93% of the content (the static and
  mostly static stuff).
  
                                                                  v.
  
  --
  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Vivek Khera, Ph.D.                Khera Communications, Inc.
  Internet: khera@kciLink.com       Rockville, MD       +1-301-258-8292
  PGP/MIME spoken here              http://www.kciLink.com/home/khera/
  
  
  
  
  
  1.1                  modperl-docs/src/stories/wmboerse.pod
  
  Index: wmboerse.pod
  ===================================================================
  =head1 NAME
  
  Large real-time stock exchange game
  
  =head1 Info
  
  =over
  
  =item * Author: Sven Neuhaus E<lt>Sven.Neuhaus (at) de.uu.netE<gt>
  
  =item * Date: Fri, 05 Jun 1998 16:13:18 +0200
  
  =back
  
  =head1 The Story
  
    Hello,
    
    another mod_perl success story:
    
    Have a look at www.wmboerse.de - it's a german real-time 
    stock exchange simulation game for the soccer world championship.
    Participation is free and there are some nice prices to be won.
    
    The technology used is Apache, mod_perl, DBI and DB::Adabas. The
    project is sponsored by Sun Microsystems (they are supplying
    a Sun Ultra Enterprise 450 with 3 CPUs @ 300Mhz and 1GByte RAM at 
    the moment), UUNET Germany (bandwidth) and Software AG 
    (Adabas-D database).
    
    The server is a real beast. It's amazingly fast. The game is running
    since Sunday. At the moment, there are 2344 players, 183 of them
    have been active in the last 10 minutes. We are expecting a large
    increase in players as soon as national television reports about
    the game.
    
    The load is at 0.80, there are 123 processes, still 400MB RAM free
    (we plugged in 512 MB today, previously the box had 512MB).
    We will increase the maximum number of child processes if we get 
    close to the current limit (100).
    
    Here's some data from the Apache status page:
    Server uptime: 4 hours 10 minutes 58 seconds
    Total accesses: 254671 - Total Traffic: 902.9 MB (!)
    CPU Usage: u27.68 s10.98 cu2.03 cs.63 - .274% CPU load
    16.9 requests/sec - 61.4 kB/second - 3717 B/request
    18 requests currently being processed, 14 idle servers 
    
    Anyway, grab a browser and have a look. The project is a great success
    so far, and it couldn't have been done this easily and quickly without 
    mod_perl and the other great free software out there.
    
    Thanks and enjoy!
    
    -Sven Neuhaus
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/wmboerse.txt
  
  Index: wmboerse.txt
  ===================================================================
  To: modperl@apache.org
  Subject: mod_perl at its best.
  Organization: UUNET Deutschland Web Competence Center
  Date: Fri, 05 Jun 1998 16:13:18 +0200
  From: Sven Neuhaus <Sv...@de.uu.net>
  Subject: Large real-time stock exchange game
  
  Hello,
  
  another mod_perl success story:
  
  Have a look at www.wmboerse.de - it's a german real-time 
  stock exchange simulation game for the soccer world championship.
  Participation is free and there are some nice prices to be won.
  
  The technology used is Apache, mod_perl, DBI and DB::Adabas. The
  project is sponsored by Sun Microsystems (they are supplying
  a Sun Ultra Enterprise 450 with 3 CPUs @ 300Mhz and 1GByte RAM at 
  the moment), UUNET Germany (bandwidth) and Software AG 
  (Adabas-D database).
  
  The server is a real beast. It's amazingly fast. The game is running
  since Sunday. At the moment, there are 2344 players, 183 of them
  have been active in the last 10 minutes. We are expecting a large
  increase in players as soon as national television reports about
  the game.
  
  The load is at 0.80, there are 123 processes, still 400MB RAM free
  (we plugged in 512 MB today, previously the box had 512MB).
  We will increase the maximum number of child processes if we get 
  close to the current limit (100).
  
  Here's some data from the Apache status page:
  Server uptime: 4 hours 10 minutes 58 seconds
  Total accesses: 254671 - Total Traffic: 902.9 MB (!)
  CPU Usage: u27.68 s10.98 cu2.03 cs.63 - .274% CPU load
  16.9 requests/sec - 61.4 kB/second - 3717 B/request
  18 requests currently being processed, 14 idle servers 
  
  Anyway, grab a browser and have a look. The project is a great success
  so far, and it couldn't have been done this easily and quickly without 
  mod_perl and the other great free software out there.
  
  Thanks and enjoy!
  
  -Sven Neuhaus
  
  
  
  
  1.1                  modperl-docs/src/stories/www.afp-direct.com.pod
  
  Index: www.afp-direct.com.pod
  ===================================================================
  =head1 NAME
  
  News agency uses mod_perl for their online system with over 3 million stories
  
  =head1 Info
  
  =over
  
  =item * Author: Eric Cholet E<lt>cholet (at) LOGILUNE.COME<gt>
  
  =item * Date: Fri, 14 May 1999 10:06:24 +0200
  
  =back
  
  =head1 The Story
  
    http://www.afp-direct.com hosts the Agence France-Presse's online
    database of news stories and photographs. Agence France-Presse is the
    world's third largest news agency. The online database, available
    through subscription, contains over 3 million stories and photographs
    in a full-text searchable database. The web site makes the most of
    mod_perl and its array of modules such as persistent connections to
    back-end servers and custom authentication.
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/www.afp-direct.com.txt
  
  Index: www.afp-direct.com.txt
  ===================================================================
  From:       Eric Cholet <ch...@LOGILUNE.COM>
  Organization: Logilune
  Date: Fri, 14 May 1999 10:06:24 +0200
  Subject:        News agency uses mod_perl for their online system with over 3 million stories
  
  http://www.afp-direct.com hosts the Agence France-Presse's online
  database of news stories and photographs. Agence France-Presse is the
  world's third largest news agency. The online database, available
  through subscription, contains over 3 million stories and photographs
  in a full-text searchable database. The web site makes the most of
  mod_perl and its array of modules such as persistent connections to
  back-end servers and custom authentication.
  
  
  
  
  1.1                  modperl-docs/src/stories/www.bivio.com.pod
  
  Index: www.bivio.com.pod
  ===================================================================
  =head1 NAME
  
  bivio Investment Club Accounting, Taxes, and more
  
  =head1 Info
  
  =over
  
  =item * Author: Rob Nagler E<lt>info E<lt>atE<gt> bivio.netE<gt>
  
  =item * Date: Wed Nov 07 22:24:48 2001
  
  =item * Traffic: 50,000 pages/day
  
  =item * URL: http://www.bivio.com
  
  =back
  
  =head1 The Story
  
    bivio.com is a web-delivered application written entirely in perl
    which provides complete accounting, tax preparation, automatic
    downloads of broker transactions, message boards, file sharing, email
    aliases, and more.  Apache/mod_perl on Linux has functioned incredibly
    reliably with +99% uptime.
    
    Our declarative MVCF application framework (250 perl classes) is
    available under the Artistic License from http://www.bivio.net
    This includes a demo application http://petshop.bivio.net which
    is a more concise implementation of J2EE's Blueprint Architecture.
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/www.bivio.com.txt
  
  Index: www.bivio.com.txt
  ===================================================================
  From: Rob Nagler <info <at> bivio.net>
  Organization: 
  Date: Wed Nov 07 22:24:48 2001
  Subject: bivio Investment Club Accounting, Taxes, and more
  URL: http://www.bivio.com
  Traffic: 50,000 pages/day
  
  bivio.com is a web-delivered application written entirely in perl
  which provides complete accounting, tax preparation, automatic
  downloads of broker transactions, message boards, file sharing, email
  aliases, and more.  Apache/mod_perl on Linux has functioned incredibly
  reliably with +99% uptime.
  
  Our declarative MVCF application framework (250 perl classes) is
  available under the Artistic License from http://www.bivio.net
  This includes a demo application http://petshop.bivio.net which
  is a more concise implementation of J2EE's Blueprint Architecture.
  
  
  
  1.1                  modperl-docs/src/stories/www.lind-waldock.com.pod
  
  Index: www.lind-waldock.com.pod
  ===================================================================
  =head1 NAME
  
  Modperl at the world's largest discount commodities trading firm. 
  
  =head1 Info
  
  =over
  
  =item * Author: B. W. Fitzpatrick E<lt>fitz (at) onShore.comE<gt>
  
  =item * Date: Fri, 6 Mar 1998 16:58:39 -0600
  
  =back
  
  =head1 The Story
  
    30000 customers looking at live quotes, dynamic charts and news.
    "[...] More importantly, mod_perl allowed us to work the webserver and
    code around our design--not the other way around."
    
    > I'm looking for more mod_perl success stories like the one that Jeff
    > posted the other day.  They will be used for vignettes in an
    > introductory chapter of the book that Doug and I are writing.  If you
    > have a story you'd like to share (particularly one in which mod_perl
    > "defeats" one of its competitors) could you mail it to me or post it
    > to the list?  For the vignettes we need some sort of identifying
    > information, either along the lines of "a major Southwestern
    > University" or "Kulturbox company of Berlin, Germany".
    
    We just completed a website for Lind-Waldock & Co.
    (http://www.lind-waldock.com/), the world's largest discount commodities
    trading firm. The site is to be used by their customers (>30,000) for
    live and delayed quotes, dynamic charts, and news pertaining to the
    futures industry, as well as access to their online order entry
    system. The site will take quite a beating once all of their customers
    transition to it from Lind's previous Windows application--plenty of live and
    delayed data is auto-refreshed.
    
    Scenario: Client needed to develop a website that could authenticate
    off their existing customer database, and many links needed to be
    dynamically generated to reflect the level of service that the
    customer subscribed to (this info also kept in the database). The
    customer area had to be SSL enabled, fast, and support a slew of Perl
    scripts that the quote vendor had already written. And of course, they
    needed the whole thing yesterday.
    
    They already had Netscape Enterprise Server and we investigated some NSAPI
    solutions but were terribly disappointed with what Netscape had to
    offer. We did some tests and decided to run with Stronghold and
    mod_perl. We wrote less than 10 lines of code to get the site
    authenticating off the database using Apache_DBI and just a few more
    to handle the dynamic URL generation.
    
    We began analysis on Dec 1, and delivered the completed site on Mar
    4--with 2 weeks off for Christmas, no less! Two days after release,
    the site is averaging about 3 requests a second--and that is certain
    to grow exponentially as more customers make the switch from the old
    Windows application.
    
    More importantly, mod_perl allowed us to work the webserver and code
    around our design--not the other way around.
    
    -Fitz
    ___________________________________________________________________________
    Brian W. Fitzpatrick        fitz@onShore.com        http://www.onShore.com/
    
  
  =cut
  
  
  
  
  1.1                  modperl-docs/src/stories/www.lind-waldock.com.txt
  
  Index: www.lind-waldock.com.txt
  ===================================================================
  From:       B. W. Fitzpatrick <fi...@onShore.com>
  Date:         Fri, 6 Mar 1998 16:58:39 -0600
  Subject:	Modperl at the world's largest discount commodities trading firm. 
  
  30000 customers looking at live quotes, dynamic charts and news.
  "[...] More importantly, mod_perl allowed us to work the webserver and
  code around our design--not the other way around."
  
  > I'm looking for more mod_perl success stories like the one that Jeff
  > posted the other day.  They will be used for vignettes in an
  > introductory chapter of the book that Doug and I are writing.  If you
  > have a story you'd like to share (particularly one in which mod_perl
  > "defeats" one of its competitors) could you mail it to me or post it
  > to the list?  For the vignettes we need some sort of identifying
  > information, either along the lines of "a major Southwestern
  > University" or "Kulturbox company of Berlin, Germany".
  
  We just completed a website for Lind-Waldock & Co.
  (http://www.lind-waldock.com/), the world's largest discount commodities
  trading firm. The site is to be used by their customers (>30,000) for
  live and delayed quotes, dynamic charts, and news pertaining to the
  futures industry, as well as access to their online order entry
  system. The site will take quite a beating once all of their customers
  transition to it from Lind's previous Windows application--plenty of live and
  delayed data is auto-refreshed.
  
  Scenario: Client needed to develop a website that could authenticate
  off their existing customer database, and many links needed to be
  dynamically generated to reflect the level of service that the
  customer subscribed to (this info also kept in the database). The
  customer area had to be SSL enabled, fast, and support a slew of Perl
  scripts that the quote vendor had already written. And of course, they
  needed the whole thing yesterday.
  
  They already had Netscape Enterprise Server and we investigated some NSAPI
  solutions but were terribly disappointed with what Netscape had to
  offer. We did some tests and decided to run with Stronghold and
  mod_perl. We wrote less than 10 lines of code to get the site
  authenticating off the database using Apache_DBI and just a few more
  to handle the dynamic URL generation.
  
  We began analysis on Dec 1, and delivered the completed site on Mar
  4--with 2 weeks off for Christmas, no less! Two days after release,
  the site is averaging about 3 requests a second--and that is certain
  to grow exponentially as more customers make the switch from the old
  Windows application.
  
  More importantly, mod_perl allowed us to work the webserver and code
  around our design--not the other way around.
  
  -Fitz
  ___________________________________________________________________________
  Brian W. Fitzpatrick        fitz@onShore.com        http://www.onShore.com/
  
  
  
  
  1.1                  modperl-docs/src/support/commercial.html
  
  Index: commercial.html
  ===================================================================
  <html>
    <head>
      <title>Commercial Support</title>
    </head>
    <body bgcolor="white">
  
  <p> 
  If you need a solution the discussion lists cannot provide,
  or simply need quicker turnaround, commercial support for
  mod_perl is available from the following companies:
  </p>
  
  <p> 
  If your company provides commercial mod_perl support and you would
  like to be listed on this page, please send email to <a
  href="../maillist/list-users.html">users</a> mailing list.
  </p>
  
        <ul>
          
          <li>
            <a href="http://www.covalent.net/">Covalent Technologies</a>
          </li>
          
        </ul>
  
    </body>
  </html>
  
  
  1.1                  modperl-docs/src/support/config.cfg
  
  Index: config.cfg
  ===================================================================
  use vars qw(@c);
  @c = (
      id => 'support',
  
      title => 'Support',
  
      abstract => "How to get supported ",
  
      body => {
          top => 'index_top.html',
      },
  
      chapters => [
          qw(
             training.html
             commercial.html
             isps.html
             jobs.html
            )
      ],
  
  );
  
  
  
  1.1                  modperl-docs/src/support/index_top.html
  
  Index: index_top.html
  ===================================================================
  <html>
    <head>
      <title>mod_perl community support</title>
    </head>
    <body bgcolor="white">
  
  <p>
  mod_perl is an open source project and is very successfully supported
  by its users and developers community. Most of the questions are
  answered on the <a href="../maillist/index.html">mailing lists</a>.
  </p>
  
  <p>
  You can learn mod_perl by yourself through reading its <a
  href="../docs/index.html">documentation</a>, by attending the
  technology <a href="../conferences/index.html">conferences</a> or
  inviting a commercial <a href="training.html">training</a>.
  </p>
  
  <p>
  If however you need a commercial level support, the following <a
  href="commercial.html">companies</a> are available for mod_perl
  contracts and support.
  </p>
  
  <p>
  The following <a href="isps.html">ISPs</a> claim to support mod_perl.
  </p>
  
  <p>
  If you are looking for a mod_perl job or someone to do the job for
  you, the <a href="jobs.html">jobs</a> page is for you.
  </p>
  
  <p>
    </body>
  </html>
  
  
  1.1                  modperl-docs/src/support/isps.html
  
  Index: isps.html
  ===================================================================
  <html>
  <head>
  <title>ISPs Supporting mod_perl</title>
  </head>
  <body bgcolor="#ffffff">
  <h3>ISPs Supporting mod_perl</h3> If you'd like to list an ISP
  supporting mod_perl here, please send a name, geographic location,
  url, contact email address and what you specialize in to <a
  href="mailto:ask@apache.org">Ask Bj&oslash;rn Hansen</a>.
  
  <p>
  
  <h3>Australia</h3>
  <a href="http://www.motd.com/">www.motd.com</a> (<a href="mailto:markc@motd.com">markc@motd.com</a>)
  <p><br>
  
  <h3>Belgium</h3>
  
  VirgoPlus (<a href="mailto:contact@virgoplus.com">contact@virgoplus.com</a>) 
  
  <p><br>
  
  <h3>Canada</h3>
  
  <a href="http://modperl-space.com">BareMetal.com</a>
  
  <p><br>
  
  <h3>Denmark</h3>
  <a href="http://www.netcetera.dk/">Netcetera</a>, Copenhagen (<a href="mailto:info@netcetera.dk">info@netcetera.dk</a>)
  <p><br>
  
  <h3>Germany</h3>
  <a href="http://www.ecos.de/">ECOS</a> 
  (<a href="mailto:info@ecos.de">info@ecos.de</a>)
  <br>
  <a href="http://www.iconsult.com/">ICONSULT</a> (<a href="mailto:info@iconsult.com">info@iconsult.com</a>)
  <br>
  <a href="http://hosting.devcon.net/">dev/consulting GmbH</a>
  <br>
  <a href="http://www.bsb-software.com/"> BSB-Software GmbH</a>, 
  Frankfurt
  <p><br>
  
  <h3>Japan</h3>
  <a href="http://www.oneway.net/">OneWay Information Services</a>, Taiwan
  <p><br>
  
  <h3>The Netherlands</h3>
  <a href="http://www.maverik.net/"> Maverik Enterprises</a>
  <p><br>
  
  <h3>Norway</h3>
  <a href="http://www.dataguard.no/">DataGuard</A> (<a
  href="mailto:post@dataguard.no">post@dataguard.no</a>)
  <p><br>
  
  <h3>Switzerland</h3>
  <a href="http://www.dwc.ch/">DWC</a>, Zurich
  (<a href="mailto:info@dwc.ch">info@dwc.ch</a>)
  <p><br>
  
  <h3>UK</h3>
  <a href="http://www.aldigital.co.uk/">A.L. Digital Ltd.</a>
  (<a href="mailto:techinfo@aldigital.co.uk">techinfo@aldigital.co.uk</a>)<br>
  
  <a href="http://www.highpoint.co.uk/hosting.html">Highpoint
  Communications</a>, London, UK based internet company that offers
  amoungst other things, mod_perl intergration for client web sites
  
  <p><br>
  
  <h3>USA</h3>
  
  <a
  href="http://hostpro.com/hosting/shared/unix_products.html">HostPro</a>,
  a few data centers around USA.
  
  <a href="mailto:bryan@bcpub.com">BC Publishing, Inc</a>Columbus, Ohio<br>
  
  <a href="http://www.kattare.com/">Kattare Internet Services</a>, Corvallis, Oregon (<a href="mailto:support@kattare.com">support@kattare.com</a>) - MySQL, PHP, mod_perl based ASP<br>
  
  <a href="http://www.worldserver.com/">The WorldServer</a>, San Francisco, CA<br>
  
  <a href="http://www.speakeasy.org/">The Speakeasy Cafe</a>, Seattle, WA (<a href="mailto:brett@speakeasy.org">brett@speakeasy.org</a>)<br>
  
  <a href="http://www.digiforest.com/">Micro P.C.'s</a>, Eugene, OR<br>
  
  <a href="http://www.2rad.net/">Two Radical Technologies, Inc</A>, Centreville, VA (<a href="mailto:rad@2rad.net">rad@2rad.net</a>)<br>
  
  <a href="http://www.onehost.net/">Onehost, Inc.</a>, Fairfield, IA, (<a href="mailto:support@onehost.net">support@onehost.net</a>)<br>
  
  <a href="http://www.superb.net/">Superb Internet Corp.</a>, (<a href="mailto:info@superb.net">info@superb.net</a>)<br>
  
  <a href="http://www.alaska.net/">Internet Alaska</a>, Anchorage, Alaska, (<a href="mailto:webmaster@alaska.net">webmaster@alaska.net</a>)<br>
  
  <a href="http://www.greatland.net/">Greatland Internet Services, Inc.</a>, Anchorage, Alaska.<br>
  
  <a href="http://www.ainet.com/">AiNET</a>, U.S., Hong Kong, Tokyo and London.<br>
  
  <a href="http://www.adgrafix.com/">Adgrafix, Inc.</a> (<a href="mailto:dhauser@adgrafix.com">dhauser@adgrafix.com</a>)<br>
  
  <a href="http://www.laker.net/">LakerNet</a>, Ft. Lauderdale, Florida (<a href="mailto:admin@laker.net">admin@laker.net</a>)<br>
  
  <a href="http://www.serve.com/">DataRealm Internet Services, LLC</a>,
  Philadelphia, PA<br>
  
  <a href="http://www.avatar-cs.net/">Avatar Internet Solutions</a><br>
  
  <a href="http://www.iconnet.net/">Icon CMT, Corp.</a><br>
  
  <a href="http://www.Minerva.net/">Minerva Network Systems, Inc. </a>,Chantilly, VA (<a href="mailto:info@Minerva.net">info@Minerva.net</a>)<br>
  
  <a href="http://www.psn.net/">Planet Systems Network of America, Inc.</a><br>
  
  <a href="http://www.visionhost.net/">Vision Imaging Communications</a>, Sunnyvale, CA
  
  <p><br>
  
  
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-docs/src/support/jobs.html
  
  Index: jobs.html
  ===================================================================
  <html>
  <head>
  <title>mod_perl jobs</title>
  </head>
  <body bgcolor="#ffffff">
  
  To submit jobs, see more Perl jobs and search the job listings go to
  <a href="http://jobs.perl.org/">The Perl Job site</a>.
  
  <p>
  
  <script language="JavaScript" src="http://jobs.perl.org/rss/mod_perl.js?limit=25">
  </script>
  
  
  <p>
  
  </body>
  </html>
  
  
  
  
  
  
  1.1                  modperl-docs/src/support/training.html
  
  Index: training.html
  ===================================================================
  <html>
    <head>
      <title>mod_perl training</title>
    </head>
    <body bgcolor="white">
  
  <p> 
  If you are interested in hiring someone to do mod_perl training,
  please refer to one of the individuals or companies mentioned on this
  page.
  </p>
  
  <p> 
  If your company provides mod_perl training and you would like to be
  listed on this page, please send email to <a
  href="../maillist/list-users.html">users</a> mailing list.
  </p>
  
        <ul>
          
          <li>
            <a href="http://training.gbdirect.co.uk/courses/linux/customized_and_bespoke.html">GBdirect</a>
          </li>
          
        </ul>
  
  
  
    </body>
  </html>
  
  
  

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