Who Should Attend:
Programmers with moderate experience in Perl and CGI/HTML who would like to
learn more about automating a Web site so they can get more done by doing
less work. This is
not a class for non-programmers--we will be doing
a lot of Perl code-reading.
With the proliferation of Web sites, maintenance has become almost
untenable. Every Web site needs a person to update databases, send and
answer mail, handle membership signups (and account expiration), deal with
password protection, and so forth. Or does it? You'll learn, with numerous
real-life examples, how a Web site can be largely automated, leaving the
site maintainer to handle the exceptional cases instead of the routine ones.
Taking a cookbook or wishlist approach, we will look at the following
topics and see how to solve problems using real-life Perl code samples:
- Dynamically creating/expiring user accounts
- Checking for password sharing
- Sending out membership newsletters
- Responding to "remove" requests
- Automatic site updates (images and text)
- Automatic newsgroup posting (e.g., monthly FAQ posting)
- Daily/weekly/monthly reporting
- Referral tracking/reporting
- Link exchanges (and checking for dead links)
- Database synchronization, searching, and updating
We'll use Web-based modules from the CPAN and explain their interfaces. We
will also pay special attention to file locking, synchronization, error
checking, reporting, and recovery, and the special needs of the
asynchronous environment that the Web provides. For each example, we will
present a problem, discuss the conceptual overview, and delve into the code
to solve it. You'll be able to use these examples to easily implement your
own solutions for your own sites. Since some solutions fit well on a site
getting 40,000 raw hits a day, while others are more appropriate for sites
getting 20x or more that many hits, we'll discuss issues of scalability.
The instructor's own real-life experience in sites over the entire spectrum
will give the students the perspective they need to plan for their own
needs and projected growth.