<Photograph of pebbles near a fountain>

Pebblesoft

Welcome!

Here you'll find some free cross-platform computer programs: two refreshing online games (some thinking required!), an online tool for formatting plain text (and an alternative version that runs on your desktop), a fun program that determines the best way to distribute gifts in a gift exchange, a tool for easily renaming multiple files at once, a tool for generating a report on changes to a CSV or BSV file, a SimulatedAnnealing class for Java programmers, a DesktopUi class for Java programmers that enables you to specify a main window and any number of dialog boxes using an intuitive XML format, and several other useful classes for Java programmers.

Each program is offered as is, with no liability assumed by Pebblesoft or the author of the program.

The online programs are easy and fun to use. For the games (Pebbles and WordRecall), your browser must have JavaScript enabled. It's usually enabled by default.

Computer-Aided Gift Exchange, WrapTools, SJFileRenamer, and CsvChangeReports are Java applications that have been tested on Linux, Mac OS X 10.7, Windows XP, and Windows 7 (and they probably run fine on other platforms as well). They require only that Java (version 1.6 or later) be installed on your system. For each of these free applications, just unpack the Zip file to a convenient location, and then have a look at the readme file.

For Java programmers: To copy the Java packages containing the SimulatedAnnealing, DesktopUi, and other classes to your local system, download and unpack bfitch.zip.


Online Programs

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 Programs

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 program takes as input each participant's rankings for the gifts and then determines how best to distribute the gifts among the participants.

You can download Computer-Aided Gift Exchange (CAGE) here:

CAGE

WrapTools is a desktop version of PebbleWrap (without the plain-text tables feature). You can use WrapTools to wrap or unwrap the text in a file or in the system clipboard.

Download WrapTools here:

WrapTools

SJFileRenamer (Simple Java-Based File Renamer) is a graphical application that you can use to rename multiple files at once within a specified directory or directory tree.

Download SJFileRenamer here:

SJFileRenamer

CsvChangeReports is a desktop application that enables you to specify old and new versions of a CSV or BSV file and then generate a report listing any changes to the fields or records.

Download CsvChangeReports here:

CsvChangeReports


Java Packages

SimulatedAnnealing is a Java class providing a single public method, anneal(), that optimizes a list of numbers according to a specified cost function. The class resides in the bfitch.annealing package.

DesktopUi is a Java class that renders and manages the GUI forms for a Java desktop application, where the forms are described by XML files.

BsvFileReader, BsvListReader, and BsvWriter are Java classes for reading and writing BSV (bar-separated values) and CSV (comma-, semicolon-, or tab-separated values) data.

IniSettings encapsulates the settings stored in an INI file. The class provides methods for storing data to and retrieving data from the INI file passed to the constructor.

CalendarDay represents a calendar day as a plain date with no associated time or time-zone information.

ProgramDir 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).

You can download the bfitch, bfitch.annealing, bfitch.bsv, bfitch.ini, and bfitch.gui packages here:

Java Packages

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


Enjoy the programs!

Comments can be sent to blernflerkl@yahoo.com.