MapServer is an open source, map server for web applications. I have written a Tcl interface for Mapscript, MapServer's scripting interface. MapScript/Tcl is now a part of the MapServer 3.4 (beta) release. Get the 'nightly' CVS build from the MapServer pages while 3.4 is still in development.
MapServer Workbench is a suite of cooperative tools to build MapServer applications. The tools are written in Tcl/Tk, and use the Mapscript/Tcl interface.
GRASS (and here too) is an open source, geographical information system. Below are some tools that I have developed for GRASS. All software on this page is offered under the GNU Public License (GPL), the same as the rest of GRASS.
HTMLMAP allows creation of HTML image maps, the kind that let you define clickable regions for images. You use the GRASS display commands d.area and d.text to send information to the driver. For a silly sample, look here (Javascript required).
The HTMLMAP driver is now a part of Grass5.
s.to.poly.sh creates coarse-grained polygons around site data. It allows the site data to 'clump' into several smaller area, rather than trying to totally encompass all data.
Makes importing DEM data into a Lat-Lon database a piece of cake. The tedious part of finding the DEM's boundaries is totally automated.
This simply creates most of the sub-directories used in a mapset.
These three scripts create and manipulate a region stack. Handy when you want to temporarily create or switch to another region definition with g.region, but want to come back to your original one later.