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 ReviewJun 2001

It\

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)