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 below, 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.

Easy Posix Toolkit for Java came before Suite/P. It's now obsolete.
2002-Apr-10 was its last release version. These files are mainly for historical purposes.

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.

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.


To Greg's Home Page