Pebblesoft


<Photograph of pebbles near a fountain>

Welcome!

Here you'll find some free cross-platform computer programs.

In the fun department, there are a couple of online games (some thinking required) and an application that determines the best way to distribute gifts in a gift exchange.

In the useful department, there's an application that music therapists and other musicians can use to organize songs by category; there's an application for archiving revisions of a file; there's an online tool for formatting text; and there's a tool for technical writers that hides specified conditional content in DOCX and ODT files.

Finally, there are a number of useful classes for Java programmers; and for JavaScript programmers, there are toolkits (including useful modules) that you can use to create desktop or command-line applications written in pure JavaScript.

All software is offered as is, with no liability assumed by Pebblesoft or the author of the application.

Online Applications

Pebbles is a puzzle‑like game with three levels of difficulty.

Here's the link to Pebbles:

Pebbles

WordRecall is a matching game that uses words. You can be creative in thinking of associations to help you remember which words are where.

Here's the link to WordRecall:

WordRecall

PebbleWrap is a very useful tool for wrapping (or unwrapping and then rewrapping) lines of text, attractively indenting paragraphs and lists, and making great-looking tables from delimited text.

Here's the link to PebbleWrap:

PebbleWrap

Downloadable Applications

These are free Java-based applications that have been tested on Linux, Mac OS X 10.7, and Windows 7 (and they probably run fine on other platforms as well). They require only that Java be installed on your system. (The minimum required Java version is 1.7, also known as "Java 7".)

To use any of these free applications, just unpack the appropriate zip file to a convenient location. An "application bundle" is provided for Mac OS X users. On Linux and Windows systems with Java installed, you can run the application by double-clicking the JAR file (for example, cage.jar), or you can create a shortcut to that file.

Computer-Aided Gift Exchange calculates which distribution of gifts, out of all the possible arrangements, maximizes the joy of the group overall without requiring too great a sacrifice from any individual participant. The application takes as input each participant's rankings for the gifts and then determines how best to distribute the gifts among the participants.

To download Computer-Aided Gift Exchange (CAGE), click the appropriate link:

CAGE for Linux

CAGE for Mac OS X

CAGE for Windows

Song Indexer is a desktop application that enables you to manage one or more collections of songs organized in categories. Each song can be in more than one category. For a given collection ("song index"), the application generates a document on demand that lists all the songs both alphabetically and by category.

Song Indexer is particularly suitable for music therapists, individual musicians, and groups who perform or present different types of songs depending on the client, audience, or occasion.

To download Song Indexer, click the appropriate link:

Song Indexer for Linux and Windows

Song Indexer for Mac OS X

SimpleRevisionArchiver is a desktop application that enables you to archive the original version and subsequent revisions of a file. You can also view a file's history, which includes a check-in comment and timestamp for each revision.

To download SimpleRevisionArchiver, click the appropriate link:

SimpleRevisionArchiver for Linux and Windows

SimpleRevisionArchiver for Mac OS X

HideConditionalContent is a desktop application that removes specified conditional content from .docx and .odt files so that you can make different print or PDF versions of a document for different audiences.

To download HideConditionalContent, click the appropriate link:

HideConditionalContent for Linux and Windows

HideConditionalContent for Mac OS X

Java Libraries

(for Java programmers)

The following classes were built for Java version 1.7 ("Java 7") or later.

DesktopUi (in the bfitch.gui package) renders and manages the GUI forms for a Java desktop application, where the forms are described by XML files.

Json (in the bfitch package) provides methods for parsing, generating, and formatting JSON text strings.

XsvReader, XsvWriter, and XsvConfiguration in the bfitch.xsv package provide complete facilities for reading and writing data in CSV and related formats.

TwoLevelDictionary (in the bfitch._2ld package) encapsulates the data stored in a 2LD file, which is similar to an INI file except that the order of sections, and the order of keys within sections, is always preserved.

CalendarDay (in the bfitch package) represents a calendar day as a plain date with no associated time or time-zone information.

ProgramDir (in the bfitch package) is an abstract class designed to be inherited by a static member class such as ThisProgramDir nested within the main class of an application. The class provides a single method, getPath(), that returns the full path to the directory containing the running program (even if the program is running from a JAR file).

Zipper (in the bfitch.zip package) provides static methods for zipping a file, zipping a directory, zipping the contents of a directory, and extracting zipped directories and files.

You can download the bfitch, bfitch.gui, bfitch.xsv, bfitch._2ld, and bfitch.zip packages within a single zip file:

Java Packages

The zip file contains source files as well as generated documentation and class files.

JavaScript Development

(for JavaScript programmers)

DeskRhino is a toolkit for creating desktop applications using the JavaScript programming language. The toolkit targets the Rhino JavaScript interpreter (version 1.7R4 or later). Rhino is easy to bundle with deployed applications and requires only that Java be installed on the end user's system. The DeskRhino toolkit requires Java version 1.7 ("Java 7") or later.

While Rhino gives you the option of using any part of the Java standard library in your Rhino scripts, the DeskRhino modules provide essential desktop and command-line application functionality and more through pure-JavaScript interfaces so that familiarity with Java is not required.

You can download DeskRhino here:

DeskRhino.zip

DeskNodeToolkit enables you to use the JavaScript programming language to create command-line applications that can be run by users on workstations, or called by desktop applications that can benefit from the speed of the V8 JavaScript engine underlying Node.js.

You can download DeskNodeToolkit here:

DeskNodeToolkit.zip


Enjoy the software!

Comments can be sent to blernflerkl@yahoo.com.