Randal's Magazine Columns
Over the years, Randal has written over 250 columns for various technical magazines, focusing primarily on Perl programming, system administration, and web engineering. Browse or search the complete archive below.
Linux MagazineJun 99
Using things from the CPAN (Jun 99)
Linux MagazineJul 99
Tieing up loose ends (Jul 99)
Linux MagazineAug 99
Scripting your Apache server with Perl (Aug 99)
Linux MagazineSep 99
Random sentence generator (Sep 99)
Linux MagazineOct 99
Many ways to launch processes (Oct 99)
Linux MagazineNov 99
No News is not Good News (Nov 99)
Linux MagazineDec 99
Watching your web server (Dec 99)
Linux MagazineJan 00
Getting better references (Jan 00)
Linux MagazineFeb 00
Subroutine references (Feb 00)
Linux MagazineMar 00
Filehandle references (Mar 00)
Linux MagazineApr 00
Intro to objects, part 1 (Apr 00)
Linux MagazineMay 00
Intro to objects, part 2 (May 00)
Linux MagazineJun 00
Moving your news service (Jun 00)
Linux MagazineJul 00
Capturing CGI Errors as Email (Jul 00)
Linux MagazineAug 00
Getting your kids to do the work (Aug 00)
Linux MagazineSep 00
Forking parallel link checker (Sep 00)
Linux MagazineOct 00
Throttling your web server (Oct 00)
Linux MagazineNov 00
Discovering incomprehensible docs (Nov 00)
Linux MagazineDec 00
Chaining Babelfish for silly translations (Dec 00)
Linux MagazineJan 01
Caching in your chips (Jan 01)
Linux MagazineFeb 01
Getting some directory assistance (Feb 01)
Linux MagazineMar 01
Headlines in the news (Mar 01)
Linux MagazineApr 01
Authenticated remote updates (Apr 01)
Linux MagazineMay 01
Processing footnotes (May 01)
Linux MagazineJun 01
Simple online quiz technique [part 1] (Jun 01)
Linux MagazineJul 01
Simple online quiz technique [part 2] (Jul 01)
Linux MagazineAug 01
Understanding regular expressions (Aug 01)
Linux MagazineSep 01
Cleaning out a logging database (Sep 01)
Linux MagazineOct 01
Safe undumping (Oct 01)
Linux MagazineNov 01
Finding files incrementally (Nov 01)
Linux MagazineDec 01
Word of the day for PostgresSQL (Dec 01)
Linux MagazineJan 02
Smoke and mirrors (Jan 02)
Linux MagazineFeb 2002
Who\
Linux MagazineMar 02
Caching those database accesses (Mar 02)
Linux MagazineApr 02
Serving up a piece of tar (Apr 02)
Linux MagazineMay 02
Filling a pipe - web traffic analysis (May 02)
Linux MagazineJun 02
Looking for lossage (Jun 02)
Linux MagazineJul 02
Template-driven file management (Jul 02)
Linux MagazineAug 02
Watching long processes through CGI (Aug 02)
Linux MagazineSep 02
Handling partially-filled query forms (Sep 02)
Linux MagazineOct 02
Doing many things at once (Oct 02)
Linux MagazineNov 02
Mirroring your own mini-CPAN (Nov 02)
Linux MagazineDec 02
Browsing a local CPAN mirror (Dec 02)
Linux MagazineJan 03
What Perl got right (Jan 03)
Linux MagazineFeb 03
Finding things (Feb 03)
Linux MagazineMar 03
Finding things by rule (Mar 03)
Linux MagazineApr 03
Web scraping with WWW::Mechanize (Apr 03)
Linux MagazineMay 03
Persistent storage for data (May 03)
Linux MagazineJun 03
The Wrong Parser for the Right Reasons (Jun 03)
Linux MagazineAug 03
Finding Similar Images (Aug 03)
Linux MagazineSep 03
The Basics of Hashes (Sep 03)
Linux MagazineOct 03
Checking links with Class::DBI (Oct 03)
Linux MagazineNov 03
Checking website health [part 1] (Nov 03)
Linux MagazineDec 03
Checking website health [part 2] (Dec 03)
Linux MagazineJan 04
Using xsh to scrape web pages (Jan 04)
Linux MagazineFeb 04
Prototype Programming for Classless Classes (Feb 04)
Linux MagazineMar 04
Creating an Inline language (Mar 04)
Linux MagazineApr 04
List Manipulation (Apr 04)
Linux MagazineMay 04
Using Perl/Tk for Simple Graphing (May 04)
Linux MagazineJun 04
Introduction to Template Toolkit - Part 1 (Jun 04)
Linux MagazineJul 04
Introduction to Template Toolkit - Part 2 (Jul 04)
Linux MagazineAug 04
Introduction to Template Toolkit - Part 3 (Aug 04)
Linux MagazineSep 04
Template Toolkit for Proxy Server Management (Sep 04)
Linux MagazineOct 04
Introduction to mod_perl (part 1) (Oct 04)
Linux MagazineNov 04
Introduction to mod_perl (part 2) (Nov 04)
Linux MagazineJan 05
Introduction to mod_perl (part 3) (Jan 05)
Linux MagazineFeb 05
Creating Class::DBI relationships automatically (Feb 05)
Linux MagazineMar 05
Fit to be tied (part 1) (Mar 05)
Linux MagazineApr 05
Fit to be tied (part 2) (Apr 05)
Linux MagazineMay 05
Introduction to CGI::Prototype (part 1) (May 05)
Linux MagazineJun 05
Introduction to CGI::Prototype (part 2) (Jun 05)
Linux MagazineJul 05
Introduction to CGI::Prototype (part 3) (Jul 05)
Linux MagazineAug 05
File::Finder: finding files easier (Aug 05)
Linux MagazineSep 05
Babysitting an interactive CPAN update (Sep 05)
Linux MagazineNov 05
Profiling in Template Toolkit via overriding (Nov 05)
Linux MagazineDec 05
Debugging Web Applications (Dec 05)
Linux MagazineJan 06
Using a database for a web server log (part 1) (Jan 06)
Linux MagazineFeb 06
Using a database for a web server log (part 2) (Feb 06)
Linux MagazineMar 06
Building a static website with Template Toolkit (Mar 06)
Linux MagazineApr 06
Adapting CGI::Prototype for Apache Action Scripts (Apr 06)
Linux MagazineMay 06
Packing it in (May 06)
Linux MagazineJun 06
Web 2.0 meets Usenet 1.0 (Jun 06)
Linux MagazineJul 06
Progress Bars for Download (Jul 06)
Linux MagazineAug 06
Pluggable Behavior with a twist (Aug 06)
Linux MagazineSep 06
Searching my columns with POE and IRC (Sep 06)
Linux MagazineOct 06
Wrap your database rows with Rose (Oct 06)
Linux MagazineNov 06
Setting up Rose::DB::Object Metadata (Nov 06)
Linux MagazineDec 06
Using Rose::DB::Object (Dec 06)
Linux MagazineJan 2007
Rose::DB::Object\
Linux MagazineFeb 07
The Big Modules in the Mini-CPAN (Feb 07)
Linux MagazineMar 07
Sanity-checking your Perl code (Mar 07)
Linux MagazineApr 07
HTML Scraping with XPath (Apr 07)
Linux MagazineMay 07
Fingering myself with Twitter (May 07)
Linux MagazineJun 07
The Moose is Flying (part 1) (Jun 07)
Linux MagazineJul 07
The Moose is Flying (part 2) (Jul 07)
Linux MagazineAug 07
Always wear your utility belt (part 1) (Aug 07)
Linux MagazineSep 07
Always wear your utility belt (part 2) (Sep 07)
Linux MagazineOct 07
Many happy returns with Contextual::Return (Oct 07)
The Perl JournalMay 03
Watching log files (May 03)
The Perl JournalJun 03
Cleaning up your HTML (part 1) (Jun 03)
The Perl JournalJul 03
Cleaning up your HTML (part 2) (Jul 03)
The Perl JournalAug 03
Understanding object destructors (Aug 03)
The Perl JournalOct 03
Safe CGI Death (Oct 03)
The Perl JournalNov 03
Free as in Music (Nov 03)
The Perl JournalDec 03
Blocking Spam with Postfix and Amavis (Dec 03)
The Perl JournalJan 04
Evaluating short-circuited boolean Expressions (Jan 04)
The Perl JournalFeb 04
Watching a logfile in an IRC channel (Feb 04)
The Perl JournalMar 04
A better Data::Dumper (Mar 04)
The Perl JournalApr 04
Graphical interaction with POE and Tk (Apr 04)
The Perl JournalMay 04
Eight Million Ways to die (May 04)
The Perl JournalJun 04
Hey use guys! Import this! (Jun 04)
The Perl JournalJul 04
Cleaning up a symlink mess (Jul 04)
Unix Reviewmar 95
Basic Parsing (mar 95)
Unix Reviewmay 95
Word Counts (may 95)
Unix Reviewjul 95
Regular Expressions (jul 95)
Unix Reviewsep 95
Tiny Database (sep 95)
Unix Reviewnov 95
Subroutines (nov 95)
Unix Reviewjan 96
Sorting (jan 96)
Unix Reviewmar 96
Simple References (mar 96)
Unix Reviewmay 96
Subroutine References (may 96)
Unix Reviewjul 96
Text-grep (jul 96)
Unix Reviewsep 96
Wrappers (sep 96)
Unix Reviewnov 96
List manipulation (nov 96)
Unix Reviewjan 97
Here documents (jan 97)
Unix Reviewmar 97
Intro to objects (mar 97)
Unix Reviewmay 97
More about objects (may 97)
Unix Reviewjul 97
Logfile analysis (jul 97)
Unix Reviewsep 97
Recursive directory tasks (sep 97)
Unix Reviewnov 97
Finding shadowed executables (nov 97)
Unix Reviewjan 98
Bit operations (jan 98)
Unix Reviewmar 98
Include files (mar 98)
Unix Reviewjun 98
Expressions in text (jun 98)
Unix Reviewaug 98
Making choices for choices (aug 98)
Unix Reviewoct 98
Using the CPAN effectively (oct 98)
Unix Reviewdec 98
Editing files in-place (dec 98)
Unix Reviewfeb 99
Persistent data (feb 99)
Unix Reviewapr 99
Getting a date with Perl (apr 99)
Unix Reviewjun 99
Computing primes (jun 99)
Unix Reviewaug 99
Expanding symbolic links (aug 99)
Unix Reviewoct 99
Compiling regular expressions (oct 99)
Unix Reviewdec 99
Figuring phone-y words (dec 99)
Unix Reviewfeb 00
Deep copy and recursion (feb 00)
Unix Reviewapr 00
Rainy Day Templating Fun (apr 00)
Unix Reviewjun 00
Simple tricks with printf (jun 00)
Unix Reviewaug 00
Taint checking made simple (aug 00)
Unix Reviewoct 00
Little acts of magic (oct 00)
Unix ReviewDec 2000
So what\
Unix Reviewfeb 01
What is that, anyway? (feb 01)
Unix Reviewapr 01
A MIME is a terrible thing to waste (apr 01)
Unix Reviewaug 01
Developing a Perl routine (aug 01)
Unix Reviewdec 01
Parsing interesting things (dec 01)
Unix Reviewmay 02
Doing many things, like pings (may 02)
Unix Reviewjul 02
Parsing and summarizing a logfile (jul 02)
Unix Reviewsep 02
Finding old things (sep 02)
Unix Reviewnov 02
Automatically extending your data (nov 02)
Unix ReviewJan 03
The duct tape of the internet (Jan 03)
Unix ReviewMay 03
Variables and Scoping (May 03)
Unix ReviewJul 03
The Simplicity of Sockets (Jul 03)
Unix ReviewSep 03
Computing Securely (Sep 03)
Unix ReviewNov 03
Speeding up your Perl programs (Nov 03)
Unix ReviewJan 04
Sharing Open Source code through the CPAN (Jan 04)
Unix ReviewMar 2004
Monitoring Net Traffic with OpenBSD\
Unix ReviewMay 04
Constructing Objects (May 04)
Unix ReviewJul 04
Lightweight Persistent Data (Jul 04)
Unix ReviewSep 04
Strictly speaking about use strict (Sep 04)
Unix ReviewNov 04
Commonly used parsing techniques (Nov 04)
Unix ReviewJan 05
Checking your bookmarks (Jan 05)
Unix ReviewMar 05
Understanding the Command Line (Mar 05)
Unix ReviewMay 05
Avoiding SQL Injection Attacks (May 05)
Unix ReviewJul 05
Nicer Configuration Files (Jul 05)
Unix ReviewSep 05
How to match common things (Sep 05)
Unix ReviewNov 05
Common network procotols (Nov 05)
Unix ReviewJan 06
Generating object accessors (Jan 06)
Unix ReviewMar 06
Inside-out Objects (Mar 06)
Unix ReviewMay 06
Sorting with the Schwartzian Transform (May 06)
Unix ReviewJul 06
Practicing Best Perl (Jul 06)
Unix ReviewSep 06
Perl 6 is coming! (Sep 06)
Unix ReviewNov 06
Formatting reports with Template Toolkit (Nov 06)
Unix ReviewJan 07
Show me your references (Jan 07)
Unix ReviewMar 07
The Replacements (Mar 07)
Unix ReviewMay 07
Export behavior, not data (May 07)
Unix ReviewJul 07
Updating a public calendar automatically (Jul 07)
Web TechniquesMar 01
Simplified Voting - Am I Hot or Not? [magazine version] (Mar 01)
Web TechniquesApr 96
CPAN, NNTP, Clarinet Comics (Apr 96)
Web TechniquesMay 1996
Giving \
Web TechniquesJune 1996
Getting \
Web TechniquesJul 96
flocking, recent visitors (Jul 96)
Web TechniquesAug 96
tiny database, htaccess (Aug 96)
Web TechniquesSeptember 1996
what\
Web TechniquesOct 96
bad links (Oct 96)
Web TechniquesNov 96
browser dependence (Nov 96)
Web TechniquesDec 96
random thoughts (Dec 96)
Web TechniquesJan 97
tracking bad hits (Jan 97)
Web TechniquesFeb 97
anonymous proxy server (Feb 97)
Web TechniquesApr 97
searchable web pages (Apr 97)
Web TechniquesMay 97
non-visitor counter (May 97)
Web TechniquesJun 97
better bad links (Jun 97)
Web TechniquesJul 97
back issues of Dilbert (Jul 97)
Web TechniquesAug 97
web chats (Aug 97)
Web TechniquesSep 97
two-pass image serving (Sep 97)
Web TechniquesOct 97
front door, please! (Oct 97)
Web TechniquesNov 97
Watch that picture change (Nov 97)
Web TechniquesDec 97
search in progress page (Dec 97)
Web TechniquesJan 98
Slow down the download! (Jan 98)
Web TechniquesFebruary 1998
Tar\
Web TechniquesMar 98
Doctor is IN (part I) (Mar 98)
Web TechniquesApr 98
Doctor is IN (part II) (Apr 98)
Web TechniquesMay 98
Where did they go? (May 98)
Web TechniquesJun 98
How did they get here? (Jun 98)
Web TechniquesJul 98
Parallel bad links! (Jul 98)
Web TechniquesAug 98
Parallel stress tester (Aug 98)
Web TechniquesSep 98
Thumbnails with PBMTOOLS (Sep 98)
Web TechniquesOct 98
Converting HTML to CGI.pm (Oct 98)
Web TechniquesNov 98
Special purpose mirrors (Nov 98)
Web TechniquesDec 98
A remote cookie jar (Dec 98)
Web TechniquesJan 99
Handling hundreds of pictures (Jan 99)
Web TechniquesFeb 99
Prefork-Compressed Proxy Server (Feb 99)
Web TechniquesMar 99
Incremental link verifier (Mar 99)
Web TechniquesApr 99
Add image size to links (Apr 99)
Web TechniquesMay 99
Perl jobs and GIFgraph (May 99)
Web TechniquesJun 99
Processing forms remotely (Jun 99)
Web TechniquesJul 99
Countdown to Y2K (Jul 99)
Web TechniquesAug 99
Handling multipage forms (Aug 99)
Web TechniquesSep 99
mod_perl-enabled picture server (Sep 99)
Web TechniquesOct 99
Meta-keywords index generation (Oct 99)
Web TechniquesNov 99
Automatically testing a form (Nov 99)
Web TechniquesDec 99
Search This Site (Dec 99)
Web TechniquesJan 2000
What\
Web TechniquesFeb 00
Uploading files, sending MIME (Feb 00)
Web TechniquesMar 00
Building an icon factory (Mar 00)
Web TechniquesApr 00
Web access logs with DBI (Apr 00)
Web TechniquesMay 00
Self-registering password protection (part 1) (May 00)
Web TechniquesJun 00
Self-registering password protection (part 2) (Jun 00)
Web TechniquesJul 00
Simple queries with XML and DBD::RAM (Jul 00)
Web TechniquesAug 00
Making .tar.gz files on the fly (Aug 00)
Web TechniquesSep 00
Getting image colors to text (Sep 00)
Web TechniquesOct 00
Highlander: one instance at a time (Oct 00)
Web TechniquesNov 2000
Poor man\
Web TechniquesDec 2000
Poor man\
Web TechniquesJan 01
Leveraging with Open Source (Jan 01)
Web TechniquesFeb 01
Visualizing your traffic flow (Feb 01)
Web TechniquesMar 01
Simplified Voting - Am I Hot or Not? (Mar 01)
Web TechniquesApr 01
Embedding a dynamic image in CGI (Apr 01)
Web TechniquesMay 01
Basic cookie management (May 01)
Web TechniquesJun 01
Hooking up with the news (Jun 01)
Web TechniquesJul 01
Calculating download time (Jul 01)
Web TechniquesAug 01
Getting One-Click Processing (Aug 01)
Web TechniquesSep 01
Simple Table-Output Spanning and Sorting (Sep 01)
Web TechniquesOct 01
Rendering a calendar to HTML (Oct 01)
Web TechniquesNov 01
Customer Surveys and Writing XML (Nov 01)
Web TechniquesDec 01
Keeping robots from stuffing your forms (Dec 01)
Web TechniquesJan 02
Generating clickable graphs (Jan 02)
Web TechniquesFeb 02
Retiring at 70 (Feb 02)