Jochen's Software
Software

Software presented here

inheritanCe is a tool for browsing the class inheritance tree in OO programming languages
comfigure, a comfortable wrapper for running configure scripts
MaDiCal the Map Distance Calculator
cfbot, a bot for the multi-user online game crossfire
gtut, a GNOME application for managing student's exercises scores
All software offered on this page is distributed under the GNU General Public License.

inheritanCe

Description

inheritanCe uses the tags file written by exuberant ctags to build an inheritance tree for a project's classes. Since all source code parsing is done by ctags, the same languages are supported. inheritanCe is written in Perl.

Operation

inheritanCe is interactive, providing a simple shell interface. Thus it's sufficient to read the (possibly large) tags file only once at startup. Original help output:
Command line options:
     -h  show this help
     -v  show version
     -f  override default tags file name
     -V  parameter for the 'goto' editor call, substituted for <vimserver>

Available commands are:

          parents [<levels>=1] <class name>+
          children [<levels>=1] <class name>+
            In the output, a '=' in the tree means the relation is one-to-one.
            A '?' means that no tag entry could be found for this class.

          find <class> children [<child class pattern>=.]
          find <class> parents [<parent class pattern>=.]

          grep <class pattern>
            show all classes matching /pattern/

          suppress <class name>+
            Suppressed classes will not be shown in the trees produced by
            'parents' and 'children' commands
          unsuppress <class pattern>+
            all suppressed classes matching this pattern will not be suppressed
            any more. The pattern '.' matches everything.
          suppress
            without a parameter, this will show the classes currently suppressed

          goto <class name>
            sends your editor to the class tag

          help
          version
          quit
		 
Note: For the class inheritance information to be stored in the tags file, ctags must be started with the '--fields=+i' option.

inheritanCe saved me plenty of time finding my way through hundreds of mozilla's classes. Sample output:
          > children 9 nsIDOMDocument
          +=>+ nsIDOMDocument
          |  +=>+ nsIDOMXMLDocument
          |  |  +->+ nsDocument
          |  |  |  +=>- MyDocument
          |  |  |  +=>+ nsMarkupDocument
          |  |  |  |  +->+ nsHTMLDocument
          |  |  |  |  |  +=>- nsImageDocument
          |  |  |  |  +->+ nsXMLDocument
          |  |  |  |  |  +->- nsSVGDocument
          |  |  |  +=>- BasicTest
          |  +=>+ nsIDOMXULDocument
          |  |  +->- nsXULDocument
          |  +=>+ nsIDOMHTMLDocument
          |  |  +->+ nsHTMLDocument
          |  |  |  +=>- nsImageDocument
          
          > find nsIDocument children XMLDoc
           -> nsDocument -> nsMarkupDocument -> nsXMLDocument
          >
			 

Installation

Since inheritanCe is a small Perl script, there is no installation necessary if Perl is present. It's recommended to install the Term::ReadLine::Gnu module which provides a command history and nice command line editing features. inheritance works fine without it though. No changes to inheritanCe are necessary one way or the other.

If the perl binary is not located in '/usr/bin/' you have to adjust its path in the first line of inheritanCe.

Download

comfigure

Description

comfigure makes the task of configuring many packages comfortable. It remembers the 'configure' options for each package and uses them automatically if called without options. comfigure recognizes the package name and version automatically from the directory from which it was called. If the stored version is not equal to the current one, an MD5 digest sum is calculated over the output of './configure --help' to determine if the available options have changed. Eventually the user will be asked what shall be done.

Operation

'comfigure help' shows the available commands:
new
force new entry, even if no options are given
interactive
ask each time before using stored options (this is the default if the version has changed)
add
add more options to the stored options
use_old
use old options without asking even if the stored version is older and there are new configure options (only applies if no configure options are given)
show
show configuration for the current directory or for all named programs and exit
showall
show all known programs with version and date of configuration and exit
forget
forget configuration for the current directory or for all named programs and exit
exec
take the following argument as executable instead of './configure'
help
display this help and exit
--help
invokes './configure --help' and exits
If no command is given, supplied configure options will be stored. If no command and no configure options are given, the last used options will be used if possible.

Installation

comfigure is a Perl script. For using it you need:
  • a running Perl installation
  • the Digest::MD5 Perl module installed
Just copy the comfigure script to a directory of your choice that's in your $PATH. If your perl executable is not located in /usr/bin/perl, you have to put the correct path into the first line of comfigure.

Happy comfiguring!

Download

MaDiCal

Description

I wrote MaDiCal because I couldn't find a free tool to measure the tracks I'm running or cycling.

This Map Distance Calculator is a Perl/Tk script that reads a map as a GIF image and calculates the distance of the tracks you draw on it. MaDiCal can save and load tracks and shows a menu of all tracks defined on a map together with their length.
You get maps from several online sources, or scan paper maps and save the image as GIF.

Requirements

MaDiCal runs on any operating system with

Installation

This is not an issue. Simply unpack the archive, change into the new madical directory, then type "make" and "make install" and be happy.

The user guide is included in the distribution.

Screenshots

Version 1.2 (97kB)
MaDiCal screenshot 1

Download

cfbot

Description

cfbot is a perl script that logs into a crossfire game server and logs kills and other statistical information that the other players can query.
The cfbot understands a simple scripting language (described here) for walking around, talking, picking up and dropping items.

Download

2004-03-11, Release 0.9.8: cfbot
(See the changelog at the top of the script.)
The cfbot scripting language.

gtut

Description

When I worked as a tutor at university, I wrote gtut to keep track of the students' scores in the exercises. gtut is written in C++ and uses GNOME libraries, but can be run from any desktop. The data can be exported to PostScript (using LaTeX) for printing.
The program is in German only, though a translation to English should not be difficult, and there are not that many relevant strings.
gtut is finished and working.

Screenshot

gtut screenshot

Download

Binary tar.gz (compiled 2002-02-04 on Mandrake 8.1): gtut-1.2-3.bin.tar.gz (78kB)
(That binary package contains just one file; no need to build an RPM for that.)
Software