This page lists various tools and utilities I have available. For code associated with magazine articles, see also the magazine/writing page.

John's Home Page.

Work Backup utility

Status: mature, supported.

This is a Perl program that runs daily to copy my day's work. The concept is to copy files to a spare drive or network location, and be fairly minimal about the files that are copied. The program is configured by listing the backup location and source locations near the top of the file. It support smart rules to know which files to skip because they are unnecessary, and knows to only copy newer files.

The Perl code should be portable enough to run under Unix and other machines. I developed and run it under Windows NT and Windows 2000. An earlier version was known to run without changes under Solaris, but I've not heard from anybody lately.

Under later Win32 systems, use the "Task Scheduler" to make this run every day (or whatever). The surest way to make it work is to enter the full path to the perl.exe program as the scheduled task, and the script name as an argument. When using the Wizard, pick perl.exe as the task, and tell it to go to the Advanced Properties on the last step. There, add the argument C:\blab\blah\work_backup.perl after the program name in the Run blank (after the quotes, within its own quotes). Test by running it now from the Scheduled Tasks control panel.

Since it is normally run when you're not looking, it will write a log to the backup directory. When run directly from the command line, you can use a -verbose switch to display more information.

Perl file: work_backup.perl

PhotoShop File Compressor

PhotoShop is infamous for its massive bloated files, especially when using multiple layers, channels, and masks. Here's what I'm doing about it.

dirms and BuzzSaw — NTFS volume defragmentors

This has its own page:

CPPcpp — C++ color pretty printer

After searching far and wide for a program to produce color printouts of C++ source code, I came up empty. So I wrote my own.

This program is a Perl script which executes a parser written in Precc (an infinite-lookahead compiler compiler for context dependent attributed grammars), decides what to do with each token, and drives Microsoft Word for Windows via Active-X Automation. Change the details by updating the associated Word Template (.DOT) file.



This is a perl script that gives some interesting information about PNG files.

Every "chunk" is noted, and some interesting ones are decoded in more detail. Being Perl, it's simple to add to it as needed. [code]

Example run:

[e:\images\freshly_rendered]pngstat AnotherWorld.bak.png AnotherWorld.png detail_1.png "femsit_test copy 1.png"
=> processing file AnotherWorld.bak.png
Image Header: 1280 x 1024, 16 bits/sample RGB
Gamma: 0.45 (1/2.20)
Bit Depth: 16,16,16
538 IDAT chunks totalling 3951781 bytes.

=> processing file AnotherWorld.png
Image Header: 1280 x 1024, 8 bits/sample RGB
153 IDAT chunks totalling 1250817 bytes.

=> processing file
Image Header: 1792 x 2097, 8 bits/sample RGB
661 IDAT chunks totalling 5410547 bytes.

=> processing file detail_1.png
Image Header: 640 x 480, 8 bits/sample RGB
40 IDAT chunks totalling 326679 bytes.

=> processing file femsit_test copy 1.png
Image Header: 800 x 600, 8 bits/sample RGB
Gamma: 0.23 (1/4.40)
Chunk cHRM, length 32
1 IDAT chunks totalling 460670 bytes.



This is (will be) a program for processing image files. It's an extensible framework for batch processing or interactive command-line processing of large color-deep files. See The Chromatophore Page for details.

The Empty Shell

This is a revolutionary command shell for Win32, and other nuggets that came along as byproducts including ...

See The Empty Shell Page for details.

Page content copyright 2000 by John M. Dlugosz. Home:,