Below is a list of freely available software I've written, along with the terms of use.Table of Contents
- Humble Narrator
- Suite/P Toolkit for Java
- Authorization Toolkit for Java
- MacBinary Toolkit 2 for Java
- Easy Posix Toolkit for Java (Obsolete)
- Notifications for Java
- WeatherEase Toolkit for Java
- Gadget-Kit for Java (includes X-10 Gadgets and Scheduled Actions)
- Convert Javadoc'ed HTML into Nested-Directory Form
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.
- Read the overview document on-line (also included in the download).
- Download complete source, classes, docs, API, etc. in ZIP form. (~170 KB)
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.
- Read overview documents on-line (also included in the download).
- Download complete source, classes, docs, API, etc. in ZIP form. (~290K)
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.
- Read overview documents on-line (also included in the download).
- Download complete source, classes, docs, API, etc. in ZIP form. (~390 KB)
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.
- Read overview documents on-line (also included in the following downloads).
- Download the HTML API docs for any platform in ZIP form. (~500K)
- Download Mac OS classic and X source, demo apps, etc. in MacBinary'ed disk-image form. (~1300K)
- Download platform-neutral source, classes, etc. in ZIP form. (~700K)
- Download the prior toolkit source, classes, etc. in platform-neutral ZIP form, last updated 2002-Jul-16. (~550K)
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.
- Read summary documents on-line (also included in the downloads).
- Download platform-neutral source, JARs, etc. in ZIP form. (~230K)
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.
- Read summary documents on-line (also included in the downloads).
- Download the HTML API docs for any platform in ZIP form. (~102K)
- Download Mac OS source, demo apps, etc. in MacBinary'ed disk-image form. (~290K)
- Download platform-neutral source, JARs, etc. in ZIP form. (~105K)
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.
- Read summary documents on-line (also included in the downloads).
- Read some ideas on how the toolkit might be used.
- Download the HTML API docs for any platform in ZIP form. (~305K)
- Download Mac OS source, demo apps, etc. in MacBinary'ed disk-image form. (~525K)
- Download platform-neutral source, JARs, etc. in ZIP form. (~340K)
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.
- Read the overview and revision-history on-line, including links to Java-comm libraries for serial-port communication
(included in the downloadable bundles).- Download the HTML API docs for any platform in ZIP form. (292K)
- Download Mac OS source, demo-apps, etc. in stuffed MacBinary form. (506K)
- Download platform-neutral source, classes, etc. in ZIP form. (352K)
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