Free Software by Gregory Guerin

Below is a list of freely available software I've written, along with the terms of use.

Table of Contents


Open Source Software -- Distributed Under the Artistic License

The following software packages are freely available and redistributable under the Artistic License.

Under the Artistic License, you are not required to notify the author (me) of bug-fixes or improvements you make (see provision 3). If you want to tell me about fixes you've made, please use the contact page to ASK FIRST whether you should send them or not.

Another provision in the Artistic License is that if you write your own classes using the Standard Version, but don't modify the Standard Version itself, you can distribute your own classes any way you like. For example, if you wrote an implementation for Palm devices, you could sell your compiled classes without source, as long as the Standard Version was also included (see provision 4 of the Artistic License).

You can read more about the Artistic License and other Open Source licenses at the Open Source Initiative web site.


Humble Narrator

The Humble Narrator is a Facade, a simplifying overlay, for text-to-speech synthesis in Java programs. It is not a speech synthesizer. It only overlays another speech synthesizer, providing a uniform and easy-to-use API.

Written entirely in Java, the Humble Narrator uses no native-code (JNI) libraries. All the basic abstractions are platform-neutral, and can provide a uniform facade over other text-to-speech engines, including JSAPI (Java Speech API) or FreeTTS.

Includes ready-to-use implementations for Mac OS X 10.1 or higher, on PowerPC or Intel processors, using Mac OS X's built-in speech synthesizer.

2006-Jun-06 is the current release version.

Suite/P Toolkit for Java

Provides a suite of Posix-style capabilities for working with user-ID, group-ID, resource limits, environment variables, inter-process signals, and various system parameters. The capabilities are extensible, and additions can integrate with or supersede existing capabilities.

The Suite/P Toolkit has a simpler API than the obsolete Easy Posix Toolkit, and is also easier to reduce or expand in small increments of functionality.

Includes a ready-to-use JNI-based Mac OS X implementation.

03Jun2006 -- New preliminary update (~170 KB)
Download a Universal Binary version, which includes both a compiled jnilib file and a replacement jar. You MUST REPLACE BOTH FILES in order to get the complete auto-sensing endian capability. If you only replace the JNI lib, the earlier Java code will malfunction. Read the included history and source for details.

2004-Mar-17 is the current release version.

Authorization Toolkit for Java

Provides a simple facade over an arbitrary authorization and authentication service. The API allows a Java program to exercise special privileges, such as the ability to run another program with elevated access privileges, i.e. as root.

Includes a ready-to-use JNI-based Mac OS X implementation based on Authorization Services. It provides a system-enforced authentication dialog before running another program, including a Java program, with an effective user-ID of root. Tested on Mac OS 10.1 through 10.2.3, using J2SE 1.3.1 or 1.4.1.

Has example tools that use AuthKit to perform privileged tasks. One tool locks down Mac OS X app-bundles, to improve their tamper-resistance. Another tool runs any task or command as root, after authentication.

08May2006 -- New preliminary update (~6 KB)
Download a Universal Binary jnilib replacement file. Replace the existing jnilib with this one and AuthKit should work on Intel-based Macs. No changes to the jar or source are needed.

2003-Aug-10 is the current release version.

MacBinary Toolkit 2 for Java

Encodes and decodes the MacBinary transfer format. Includes an AWT-based encode/decode example application; command-line encoder, decoder, and alias-resolver tools; and an AWT-based "spy" application for inspecting MacBinary headers in any files.

Provides a general-purpose mechanism to read and write Mac OS resource-forks, file meta-data, and Finder comments under MRJ 2.0 or later. Provides Unix-style access privileges on Mac OS X. Provides limited but extensible platform-neutral classes to do these things on non-Mac platforms.

Includes implementations and demo apps for Mac OS and Mac OS X. Now includes a JNI-based Mac OS X implementation.

30Jul2006 -- New beta-3 update (~700 KB)
Download a Universal Binary public beta update, with other bug-fixes and improvements. Includes all source, pre-compiled jars and Universal Binary JNI-lib files, and revised "history.html" summarizing the changes. DOES NOT include overview and usage docs, pre-built demo apps, extracted API docs, etc.

2003-May-14 is the current release version.

Easy Posix Toolkit for Java

This toolkit is obsolete. Most of its features are available in the Suite/P Toolkit. The files are available mainly for historical purposes.

2002-Apr-10 is the last release version.

Notifications for Java

This is basically Mac OS's Notification Manager done as an abstract class for Java. Currently, only the Mac OS implementations are useful, but it's sufficiently abstract that you can add other imps for other platforms.

The Mac OS Classic imp does markers, small icons, sounds, and alerts. The Mac OS X imp only does markers (bouncing Dock icon) and alerts. Both imps can detect user response to an alert.

Includes a simple AWT demo/test program. The Mac OS download includes double-clickable classic and X apps.

2002-Feb-11 is the current release version.

WeatherEase Toolkit for Java

Defines a software architecture and a class library for easily working with digital weather-report data. The raw data can be retrieved in real time from web-based sources, from archived sources, or from other sources you provide. The data is then decoded and used to build Java objects using classes like Sky, Wind, Temperature, and WeatherReport. Your program then uses those objects in the ways you want, eventually producing whatever results you choose (text, graphics, files, databases, etc.).

Includes a simple but highly configurable AWT-based demo program that retrieves data from web-based sources. The Mac OS download includes double-clickable classic and X apps.

2001-Nov-10 is the current release version.

Gadget-Kit for Java (includes X-10 Gadgets and Scheduled Actions)

Defines a simple extensible framework for representing readable and/or settable Gadgets, each one representing a single device or controllable quantity. Includes Gadgets that represent a cyclic or circular clock with an alarm-time and arbitrary triggered actions -- that is, scheduled automated events. Written entirely in Java, no native code.

Provides settable Gadgets for X-10 modules driven by a CP290 controller connected to a serial-port using the Java-Comm 2.0 API. Supports direct control over dimmable and on/off modules, customized module-lists contained in text-files, customized schedules and actions, and a multi-threaded command queue.

Includes a locale-aware demo AWT program to manually control X-10 modules or define scheduled actions for them in a daily or weekly cycle.

1999-Sep-13 is the current release version.

Convert Javadoc'ed HTML into Nested-Directory Form

Fancy-API2Mac is a Java application for post-processing the HTML files produced by the standard version of the javadoc program from JDK 1.0.2 or 1.1. These files are converted into a set of HTML files nested into sub-folders, compared to the original files at one directory level with very long file names. This nested form is usable on all platforms, but is tailored to the 31-character name-length limit of Mac OS.

The current release works well with the HTML generated by PolarDoc, a far better doc-comment extractor than javadoc, in my opinion.

Fancy-API2Mac has been successfully tested on Mac OS and W95 by the author, and by others on Unix systems. It has been tested with HTML produced by PolarDoc and vanilla javadoc. It may or may not work with javadoc-1.2's HTML.

  • Read the overview and revision-history on-line
    (included in the downloadable bundles).
  • Download Mac OS source, docs, and droplet in stuffed MacBinary form. (80K)
  • Download platform-neutral source, docs, and classes in ZIP form. (61K)

Version 1.2 of 1999-May-14 is the current version. This is the first open source version, earlier ones having been restricted to non-commercial use only.


To Greg's Home Page