Book Review: Website Automation Toolkit
Author: Paul Helinski
Publisher: John Wiley
Price: $44.99 US
Reviewer: Andrew Johnson
Website Automation Toolkit is a collection of tools, most created by the author's company, which range from allowing simple configuration control over the look and feel of your entire site to remote creation of and updating pages on the site to shopping carts and simple database facilities. It is not a book about running and configuring web servers or teaching the Common Gateway Interface (CGI) protocol.
The introductory preface and first chapter address the motivation behind the book and a few of the benefits of using some form of automation in maintaining your web site. Next are two chapters discussing some of the alternatives (and alternative proprietary software) to the author's CGI-oriented approach to automation.
The majority of the tools provided are, in fact, Perl CGI programs created by the author's company. These tools are officially free. While the license in the book states that you are not allowed to redistribute them without permission, you are allowed to use and install them as many times and for as many clients as you wish. This seemed a bit contradictory, so I asked the author for some clarification. He responded with the following statement (used with permission):
I don't do courts, but the intent of the license is to prevent people from putting our utilities on shareware CD-ROMs without the supporting text. It's more of a support issue than an ownership one. I wrote the book because these things were far too useful to keep to ourselves.
Chapters 4 and 5 mark the transition into the main part of the book by providing a short justification for why Perl is the language of choice, and a brief introductory overview of Perl basics. This overview is not intended as a guide to the Perl programming language, but merely to acquaint the user with some of the essentials so that later sections on configuring and customizing Perl scripts will be less daunting to the inexperienced.
The remaining chapters provide a tool-by-tool installation and instruction manual. There are too many tools to cover them all with any detail, so I will very quickly run through the remaining chapters and follow with my general impressions.
Chapter 6 covers SiteWrapper, a package that wraps your site so that all of your pages are served by a CGI program. Chapter 7 introduces Tickler, a program for soliciting e-mail addresses of visitors and notifying them of content changes. Chapter 8 follows with a discussion of the freely available Majordomo mailing list software for creating and maintaining mailing lists.
Chapter 9 addresses tracking visitors with discussions of the Trakkit tool (requires SiteWrapper) and the freely available Analogue program. Chapter 10 covers a Shopping Cart package (a modified SiteWrapper program) along with some order processing utilities.
Chapter 11 covers WebPost, the utility which, according to the author, sparked the book. This system allows you to create, edit, delete or upload pages to your site and automatically generate or update the cross links among pages.
Chapter 12 provides three search utilities for your site, depending on whether you are using SiteWrapper, WebPost or neither. Chapter 13 covers the AddaLink tool for creating and maintaining a hot list of links. Chapter 14 covers QuickDB, a simple text-based database engine with a browser interface for adding, editing and deleting entries.
Chapter 15 presents a Bulletin Board utility, and also discusses using FrontPage for a Discussion Board. Chapter 16 takes the next step by covering a couple of freely available Chat programs.
Chapter 17 provides a couple of search engine agents, one to submit a URL to a multitude of search engines and two more which report your location on the search engines. The final chapter presents BannerLog and ClickThru, tools which track and log click-throughs and page views of banner ads on your site.
I set up a dummy site on my Linux box for installing and trying out a few of the provided utilities. The installation instructions in each chapter are divided into UNIX and NT sections and are relatively simple to follow. However, some unfortunate problems arose.
There are .zip files for each package, and non-zipped directories for each of the packages on the CD-ROM. A mild inconvenience is that some of the .zip files were created with extraneous path information included, and the individual files in the non-zipped directories are riddled with ^M characters. The author has created a web site where you can find problem reports and corrections, and “cleaner” versions of the source files for downloading. The site is located at http://www.world-media.com/toolkit/.
Another inconvenience is that every Perl script must be checked (and possibly edited) for the proper path to Perl on your system, there is no script provided to automate this task, although writing one would be trivial for any experienced Perl programmer. Note that even if the first script you examine has the proper path, others definitely will not—so you must check and edit those with the incorrect path for your system.
More serious problems arise with the Perl code. None of the open calls for reading and writing files are consistently checked for success or failure. You'll first notice a problem when you install the SiteWrapper package and try to change the color scheme of your site with the included SiteColors program. The installation guide omits mentioning that your server will need write access to the tagfile.dat file where the color scheme is stored. Since the program does not check the return value of the open call, it will fail silently, your color scheme will not be updated and no error will be present in your server's logs. I'd seriously recommend locating all calls to the open function in all .cgi scripts and adding at least a ||die "$!"; statement to those that don't have it.
Other deficiencies with the Perl scripts are that they are not -w clean (for warnings), won't compile with the “strict” pragma, do not use -T for taint checking and use the older cgi.pl library rather than the CGI.pm module for Perl 5.
Even with the above comments and concerns, the packages are, for the most part, easy to install and get working. Installation and configuration of the basic SiteWrapper package took less than an hour, including time spent checking and cleaning the source code and creating simple header and footer files and a couple of dummy pages. When using this system, every page is served from a CGI program, even essentially static pages. This method allows for a great deal of flexibility and a centralized configuration style of management, but could become costly in terms of server load if your site is large or heavily trafficked.
I had a little more trouble getting the WebPost system running properly, mainly because I chose to set it up in a subdirectory of the SiteWrapper directory and a few issues were involved in getting the two packages to play nicely together. Once it was set up, however, it worked as advertised. While I found parts of the interface to be a bit clunky for creating web pages, it is a functional way to create and edit pages remotely using a browser.
Other tools were less problematic to install, Trakkit for example—I was tracking and logging myself within a few minutes of unpacking the package.
On the whole, if you are looking for instant “shrink-wrap” automation software with point-and-click setup and configuration, you'll be disappointed. However, typical Linux users accustomed to file-based configuration should have little trouble with these tools, especially if they already have some experience with Perl programming. The programs are not stellar examples in their present incarnation, but they can provide an inexpensive automation system for budding webmasters willing to get their hands dirty with a little Perl code. Hopefully, many of the concerns mentioned above will be addressed in a future edition.
Andrew Johnson is currently a full-time student working on his Ph.D. in Physical Anthropology and a part-time programmer and technical writer. He resides in Winnipeg, Manitoba with his wife and two sons and enjoys a good dark ale whenever he can. He can be reached by e-mail at email@example.com.
- Machine Learning Everywhere
- Own Your DNS Data
- Bash Shell Script: Building a Better March Madness Bracket
- Understanding OpenStack's Success
- Simple Server Hardening
- Returning Values from Bash Functions
- Understanding Firewalld in Multi-Zone Configurations
- From vs. to + for Microsoft and Linux
- Natalie Rusk's Scratch Coding Cards (No Starch Press)
- Tech Tip: Really Simple HTTP Server with Python