Programs and Documentation

by: Keith Fenske
December 2016

Copyright © 2011-2016 by Keith Fenske. All rights reserved. Send e-mail to this address.


Most documentation here is in Adobe Acrobat PDF format. See the Adobe download page for a free copy of Adobe Reader, or this Wikipedia page for a list of alternative PDF software. Many computer systems have their own PDF readers.

Character Maps For Windows (PDF, 244 KB)

Text fonts have more characters than you see on your keyboard: special symbols and accented letters for French, German, Italian, Spanish, etc.

Handling Digital Photo Files (PDF, 50 KB)

General advice for collecting digital photos. Read it or don't. After a few thousand files, you really should do something!

Running Java Programs (PDF, 60 KB)

How to run Java programs on Windows XP/Vista/7. Windows 8 and 10 are similar, once you find the elusive Command Prompt, as are Linux and MacOS in a Terminal window.


The following program icons are for Windows. Each icon has multiple sizes in a single ICO file, which is downloaded inside a ZIP file. The icons themselves are not compressed and should open in any icon editor, including "IconEdit" listed in the next Java section.

Happy Face Icon (ICO in ZIP, 6 KB)

Brighten up the day with this classic "happy face" icon. Available in a range of sizes from 16x16 to 256x256 pixels. Or make your own from the Microsoft "Wingdings" font (in the same character position as the capital letter "J").

Size Test Icon (ICO in ZIP, 13 KB)

Way back when in Windows XP (2001), a big icon was 64x64 pixels. Now you need 256x256 plus 16x16, 32x32, 48x48, and several more depending upon a system's DPI display setting (usually 100% for 96 DPI, 125% for 120 DPI, or 150%). There is no guarantee that Windows will use any given size, even if defined in an icon file. Many will be scaled down from 256x256. Others will sometimes be used and sometimes won't. This test icon has each size labelled with the number of pixels, with sharp edges and an outline so you can see if Windows is resizing from another size. Defined sizes are from 8x8 to 32x32 in steps of 2, from 32x32 to 64x64 in steps of 4, from 64x64 to 128x128 in steps of 8, and from 128x128 to 256x256 in steps of 16.

Java Programs

Softpedia.comJava software on this web site is free and has been released under the GNU General Public License (GPL). The same Java programs will run on Linux, MacOS, Windows, etc. You may need to download the Java "run-time environment" first. All packages are in ZIP format and include brief installation instructions.

Character Map (Java, ZIP, 1099 KB)

CharMap is a Java 5.0 graphical (GUI) application to display Unicode characters or glyphs in text fonts, and copy those characters to the system clipboard. Its major purpose is as a visual accessory for word processors such as Microsoft Word. This Java application can be resized, for text and the program window, which is important in many languages. Features are limited to make the application faster and simpler to use. A single click adds a character to the sample text, and the sample text is automatically copied to the system clipboard on each click.

Compare Folders (Java, ZIP, 292 KB)

CompareFolders is a Java 1.4 application to compare two folders to determine if all files and subfolders are identical. The folders may be on the same computer, on the local network, or they may be represented by checksum files. Files or subfolders that are not the same are reported to the user. Checksum files are used when the original files or folders are not available. You may generate checksums for files and folders, and save those checksums in a text file. You may compare two checksum files. You may compare a checksum file and a folder of files. After you back up files to external media, and later restore them, how will you know they are correct unless you have checksums from the original files?

Drive Speed (Java, ZIP, 210 KB)

DriveSpeed is a Java 1.4 graphical (GUI) application to test the speed of disk drives or flash drives. Large temporary files are written with all zero bytes, then read back. To get accurate results, files must be bigger than the amount of physical memory on your computer (RAM), and should be several times bigger, because your computer uses some of its memory as a "disk cache" to increase the apparent speed of drives.

Erase Disk (Java, ZIP, 231 KB)

EraseDisk is a Java 1.4 graphical (GUI) application to erase and test disk drives or flash drives. Large temporary files are created and filled with zeros, ones, or pseudo-random data. Previously deleted files are overwritten. Existing files are not affected. Don't trust a new drive until you write data, then read to confirm. One complete test is usually enough. (Repeated testing may degrade flash drives.)

File Checksum (Java, ZIP, 215 KB)

FileChecksum is a Java 1.4 application to compute common checksums for files: CRC32, MD5, SHA1, and optional SHA256 or SHA512. Checksums are small hexadecimal "signatures" for testing whether or not files have been copied correctly, such as over a network. One person sends a file along with the checksum computed on the original computer. A second person calculates a similar checksum for the received file, and if the two checksums agree, then the received file is assumed to be correct. Many web sites provide MD5 signatures for their downloads; use this program to verify files that you download. The MD5 for this ZIP file is ba418b8272592bb884b2d06676928e64.

File Redate Rename (Java, ZIP, 225 KB)

FileDateName is a Java 1.4 graphical (GUI) application to rename multiple files or to change their directory dates. The contents of the files are not changed. Folders and subfolders may be searched recursively. Changes may be applied to files only, both files and folders, or only the folders.

Find Duplicate Files (Java, ZIP, 202 KB)

FindDupFiles is a Java 1.4 application to find duplicate files by searching for files that have the same size and the same MD5 checksum. It won't find files that are merely similar, such as two consecutive photos of the same subject, or two MP3 songs encoded at different times. Possible duplicates are reported to the user, who can then verify that the files are identical, either by inspection or by doing a byte-by-byte comparison with the "comp" command on DOS/Windows or the "cmp" command on Linux. What to do with files is the user's choice; the program does nothing except report the duplicates. The probability of two different files having the same size and MD5 checksum is extremely small.

Font Rename (Java, ZIP, 264 KB)

FontRename is a Java 1.4 application to rename OpenType and TrueType font files with their internal "font full name" using only plain text characters (ASCII) plus an extension for the type (OTF, TTC, TTF), or using the full Unicode character set in languages like Arabic, Chinese, Japanese, Korean, and Russian. This gives consistent names to font files, no matter what their source. The contents of the files are not changed, only the names in the file directory. Don't use this program on system folders with installed fonts.

Hex File Viewer (Java, ZIP, 212 KB)

HexView is a Java 1.4 graphical (GUI) application to display the contents of a file in hexadecimal and as plain text (7-bit ASCII). Files may be very large. Editing and searching are not supported.

Icon Editor (Java, ZIP, 261 KB)

IconEdit is a Java 1.4 graphical (GUI) application to edit icon files for Windows. An icon file has several images in sizes like 16x16, 24x24, 32x32, 48x48, and 64x64 pixels. Icons are square from 8x8 to 256x256 pixels. Colors may be 4-bit (16 colors), 8-bit (256 colors), or 24-bit (millions). Pixels may be transparent and let the background show through. Alpha channels and compressed data are not supported.

Plain Text (Java, ZIP, 198 KB)

PlainText is a Java 1.4 graphical (GUI) application to convert Unicode characters to plain text characters, for example, to convert left and right quotation marks into plain quotes for web pages. Since everyone has a different idea about what "plain text" means, the conversion is controlled by a configuration file that can be easily edited. The typical sequence of actions is to copy text from a Unicode-aware application such as Microsoft Word, switch to this Java application, click the "Paste" and "Convert" buttons, then copy the converted text to another application that expects a more limited character set.

GNU General Public License (GPL) programs are free to use, and free to redistribute as-is without changes. Use of these programs is entirely at your own risk. Please read the license (long and boring) or the frequently asked questions (FAQ). You must agree to the GPL if you change a program or its accessory files, or use any part elsewhere. The conditions of the GPL are actually quite generous and ensure that you are equally generous.

Java Utilities

Small Java utility programs, also released under the GNU GPL. If these aren't what you want, edit and recompile. See program comments and/or command-line help for information.

Check Plain Trim (Java, ZIP, 208 KB)

CheckPlainTrim is a Java 1.4 application to check if files are in plain text and do not have trailing spaces or tabs (white space) at the end of lines. How clean are your source, text files, and XML documents?

Echo Args (Java, ZIP, 144 KB)

EchoArgs is a trivial Java 1.4 console application to print all command-line parameters on standard error, when debugging scripts or what MS-DOS calls "batch" files. Invoke this program instead of a real Java application until you are certain that a command file (script) is passing the correct arguments.

Redate Photo File (Java, ZIP, 220 KB)

RedatePhotoFile is a Java 1.4 application to change file names or the "last modified" date in the system file directory for JPEG photo files, using an embedded date and time found within most JPEG files. The oldest date in a JPEG file is usually the original image creation date. A newer date is often from editing.

Trim File (Java, ZIP, 172 KB)

TrimFile is a Java 1.4 console application to remove trailing white space (blanks or tabs) from the end of each line in a plain text file. Extra spaces commonly accumulate while editing source programs in a graphical compiler (IDE). They aren't a problem, but they do waste file space and occasionally affect the appearance of programs. Many character sets (encodings) are supported, and you may convert between character sets or newline styles.

This page was last revised on Saturday, 31 December 2016.
Copyright © 2011-2016 by Keith Fenske. All rights reserved. (2008-2016) (2000-2008) (1999-2000)