# Tcl-To-Go

#### Release date: November 22, 1999

An add-on disk for the muLinux system, containing a mix of application programs, all written in Tool Command Language, aka, Tcl (pronounced as tickle.)

Download TCL.tgz now!
You probably need to 'Shift-Click' the link to download it!!.

Note TCL.tgz is compressed using bzip2. The '.tgz' extension is used to fool web servers in sending the file as binary.

### Installation

You'll need a working muLinux system. Beginning with muLinux 7.x, Tcl-To-Go is fully supported. Tcl-To-Go also requires the muLinux X11 add-on disk, as most of the programs on Tcl-To-Go are based on X11.

Tcl-To-Go fits on a single floppy, formatted with 1722 1k blocks. To format such a floppy use the following command in Linux:
`fdformat /dev/fd0H1722`

To complete the installation, simply copy TCL.tgz onto your super-formatted floppy:
`dd if=TCL.tgz of=/dev/fd0H1722 bs=21k`

If you would like to unpack TCL.tgz on your hard disk for inspection, use the muLinux mu script, or simply
`cat TCL.tgz | bzip2 -d | tar xf -`
If your Linux system doesn't include the /dev/fd0H1722 device, try building it with
cd /dev; ./MAKEDEV fd0

### What can you do with Tcl-To-Go?

Here are some sample screenshots, illustrating some of the applications on Tcl-To-Go (click on the snapshot thumbnail image for a full 640x480 screen dump.)

Tcl Development |
Text editing |
Games |
Graphics |
Math |
News and Mail |
Network clients |
Web serving and HTML editing |

Plus many other fine programs and utilities not shown.

### How is it done?

Compress, compress again, then compress some more. Tcl applications and library files are stored as compressed (gzip) files, even after the Tcl-To-Go floppy is loaded into your muLinux system. Tcl-To-Go modifies Tcl run-time libraries to recognize compressed files, and uncompress them on the fly. Tcl-To-Go fits over six megabytes of Tcl code onto a single super-formatted floppy. This of course includes the Tcl/Tk interpreters, tclsh and wish. When the floppy is installed, its filesystem space is less than 3000 1k blocks.

### Grateful Acknowledgements

My thanks goes to all of the folks that created the applications that I'm including on Tcl-To-Go. Please note the authors of each application below.

### Other Notes

The application mix of programs may change from release to release. In particular, the current release has some applications that overlap, e.g., tkpaint and impress, dirc and netplug, etc. Please let me know which applications you find most useful.

Documentation: skimpy at best. I've taken the tack that most applications are either intuitive to use, or can be figured out with a minimum of exploration. Therefore, I've sacrificed documentation in favor of providing additional applications. Still, many applications contain their own help systems. Please refer to the original distributions of each application as a way to get more information.

Support: please use the muLinux mailing list for all questions about Tcl-To-Go. Subscribe to the mailing list by sending an email to: mulinux-subscribe@sunsite.auc.dk

### The Whole Shebang

Here are the current mix of applications on TCL.tgz.
This is the README file included on the Tcl-To-Go disk image:

    Tcl-To-Go

    Tom Poindexter, tpoindex@nyx.net
    1st edition, Nov. 1999

    An add-on floppy for muLinux to add a healthy mix of application programs
    written in Tcl/Tk.  Requires the muLinux X11 add-on, as most Tcl programs
    included are X11 based.

    muLinux resources:
    	home page:     http://sunsite.auc.dk/mulinux
    	mailing list:  mulinux-subscribe@sunsite.auc.dk

    Tcl-To-Go: 	http://home.worldnet.att.net/~tpoindex/

    Documentation:
    Little documentation for each application is included.  Some applications have
    builtin help;  check my 'notes' section for each entry.   Please refer to
    the applications' URL's for additional documentation.

    Preference files/directories:
    Many application also want to save user preferences into various directories
    under $HOME or $USER.  Typically, user files are stored as ".files" or
    ".directories" under "/" or "/root", if running muLinux as a single user.

    If you wish to save the applications' preferences, you should make your own
    arrangements to save and restore these files during muLinux startup and
    shutdown.

    Licenses issues:
    The majority of the applications included have been written by others, and
    are distributed under various license and/or copyrights.
    For GPLed applications, refer to http://www.gnu.org/copyleft/gpl.txt
    For BSD & copyrighted applications, see the license & copyright statement in
    each application.

    Change Log:
    Nov. 1999  create initial TCL addon.  first release.

    Included applications:

    -------------------------------------------------------------------------------
    ---base tcl/tk

    tclsh8.0
    wish8.0
        description: Tcl/Tk, tclsh & wish interpreters
        ver: 8.0.5
        license: BSD style
        author: John Ousterhout, et.al.
        http://www.scriptics.com
        tsp hacks:
    	add proc 'source' to init.tcl: examine file name, if a file
    	matches *.gz, then use gunzip to unpack source file.
    	tk.tcl - make mulinux friendly defaults, background color, fonts

    	gzip all tcl/tk library .tcl files, except init.tcl and tk.tcl

    	most files in ./bin link to STARTUP.SH, which starts wish and
    	causes the real program to be sourced from ../lib/bingz

    	compiled under Redhat 4.2 (libc5)
    	configure --prefix=/usr/tcltk --enable-shared --disable-symbols
    	edit makefile to add '-Wl,-rpath,/usr/tcltk/lib' and
    	'-Wl,-rpath-link,/usr/tcltk/lib' when linking shared libs & executables

    	strip tclsh wish libtcl8.0.5.so libtk8.0.5.so

    -------------------------------------------------------------------------------
    ---editors

    edit
        description: Tcl Text Edit, /w macros, ftp/http get & put, multiple files.
        author: Dennis Ehlin
        ver: http://www.user.tninet.se/~hkc141i
        license: BSD style
        http://www.user.tninet.se/~hkc141i
        tsp hacks:
    	added exec lines; use TCLTEXTEDIT_LIB for library directory;
    	copy lib macro files when making $HOME/.tcltextedit/;
    	use safe interp when evaling command (txt.tcl);
    	for some reason, edit main program doesn't like most lib .tcl files
    	to be compressed (?? !!) instead, put all but cfg.tcl inline in
    	main 'edit' source file.
    	looks like you should be able to open an http:// url on the
    	comand line, but doesn't seem to work.

    tknotepad:
        description: a simple text editor, /w find/replace, hot keys
        author: Joe Acosta <joeja@mindspring.com>
        ver: 0.7.1
        license: Copyright
        http://www.mindspring.com/~joeja/programs.html
        tsp hacks:
    	change exec line to simple 'wish'

    vedit:
        description: a simple text editor, part of tkapps suite
        see: vmail3 (tkapps) under news/mail

    -------------------------------------------------------------------------------
    ---spreadsheet/calculators/math

    tk#
        description: spreadsheet
        author: Martin Vermeer <mv@liisa.pp.fi>
        ver: 0.3
        license: GPL
        http://www.netby.net/Oest/Europa-Alle/vermeer/
        tsp hacks:
    	respository and demo files in /usr/tcltk/lib/tk#

    ksc
        description: RPN-type calculator
        author: Ken St-Cyr <kenstcyr@cs.pdx.edu>
        ver: 0.16
        license: BSD style
        http://www.cs.pdx.edu/%7Ekenstcyr/linux.html
        tsp hacks:
    	change exec line to simple 'wish'
    	change font, avoid bold

    surface
        description: display three dimensional surface based on z = F(x,y)
        author: Eduard Kholyavko <edik@florin.ru>
        ver: 04091999
        license: Copyright
        ftp://ft/florin.ru/pub/edik
        tsp hacks:
    	changed exec line
    	it doesn't fit on VGA X server very well, but too cool not to include!

    -------------------------------------------------------------------------------
    ---network

    fireman
        description: firewall manager, uses ipfwadm to set policy
        author: aRG <labom@internetcom.com.br>
        ver: 2.0
        license: Copyright
        http: http://www.tectrip.net/arg/
        tsp hacks:
    	added exec line; changed aux program paths to env(FIREMAN_LIB); changed
    	[exec date] to use clock command.
    	changed exec /sbin/ipfwadm to just ipfwadm, ipchains
    	changed fonts

    sockspy
        description: examine a TCP conversation, in hex or ascii
        author: Tom Poindexter <tpoindex@nyx.net>
        ver: 1.0
        license: BSD style
        http://www.nyx.net/~tpoindex/tcl.html
        tsp hacks:
    	all of it
        notes:
    	command line options:  sockspy clientPort serverHost serverPort
                     clientPort - port to which clients connect
                     serverHost - machine where real server runs
                     serverPort - port on which real server listens
            e.g. To watch your Telnet session to 'otherhost':
    	$ sockspy 2000 otherhost 23 &
    	$ telnet localhost 2000

    tkftp
        description: graphical FTP client
        author: Pascal Jermini <redoctober@bluewin.ch>
        ver: 1.0.2
        license: GPL
        http://a.trevano.ch/~jermini/tkftp/
        tsp hacks:
    	add exec line; change TKFTP_LIB_DIR to use env(TKFTP_LIB_DIR);
    	reduce sizes of listboxes to shrink overal size

    -------------------------------------------------------------------------------
    ---irc/mud

    dirc
        description: Internet Relay Chat program
        author: Kemal Hadimli <disq@iname.com>
        ver: 1.5
        license: Copyright
        http://metalab.unc.edu/pub/Linux/system/network/chat/irc/
        tsp hacks:
    	make main.tcl the dirc command, with exec lines
    	include all library source inline
    	change logdir to {} to avoid logging
    	change nuke array to empty

    netplug
        description: irc chat, go client, with plugins
        author: Laurant Demailly <L@Demailly.com>
        ver: 0.62
        license: Copyright
        http://www.demailly.com/~dl/netplug.html
        tsp hacks:
    	cause [source script] to read real file
    	use NETPLUG_PLUGINS as dir for zero.dat in irc.pli
    	touch orignal *.pli names so that main prog can find them

    mmucl
        description: Mark's MUd CLient, Mmucl (pronounced muckle)
        author: Mark Patton <mpatton@jhu.edu>
        ver: 1.2.0
        license: GPL
        http://idt.net/~tmtr01/mmucl/
        tsp hacks:
    	remove xterm & console interfaces; use interface/tk.tcl as 'mmucl'
    	main program; replace nice tkinfo help system with ugly xterm (tkinfo
    	is just too big for mulinux/tcl-to-go)

    -------------------------------------------------------------------------------
    ---web

    august
        description: HTML editor
        author: Johan Bengtsson <johanb@lls.se>
        ver: 0.42
        license: GPL
        http://www.lls.se/~johanb/august/
        tsp hacks:
    	changed exec line

    neowebscript-sa
        description: HTTP web server, with Tcl based scripting
        author: George Porter <gporter@neosoft.com>
        ver: 1.1
        license: Copyright
        http: http://www.neosoft.com/neowebscript-sa/
        tsp hacks:
    	added exec line; changed conf/httpd.conf to recognize environment
    	variables to set configuration; changed source location of httpd.conf;
    	changed index.html to reflect new environment vars.
    	remove pid file on exit.
        notes:
    	if the server doesn't start up (socket: can't bind to address), you
    	probably have the muLinux pygmy web server running.  either kill
    	the pygmy server, or start neowebscript-sa with a different port:
    	 	$ HTTP_PORT=8000 neowebscript-sa &
    	then, connect to it with chimera or quark as http://localhost:8000/

    -------------------------------------------------------------------------------
    ---news/mail

    vmail3

        description: tkapps: vmail3 - mail client (/w pop3) & newsreader, vedit,
    	vbiff, fm - file manager
        author: John Willem van Gulik <jvgulik@magi.com>
        ver: 3.2.4 (vmail3 version)
        license: GPL
        http://infoweb.magi.com/~jvgulik
        tsp hacks:
    	change exec lines
    	removed: vvac, vquery, showhtml, vshow, vprog, logview, vfile, vdb, vdir
    	lib/tkapps/lib/config.tk  - set smaller fonts; rename some buttons
    	on mail menu bar to be smaller
    	change .au files in tkapps/sounds to be tiny
    	change system.tk - just use plain 'df', not -k for Linux
    	many hacks to vprocs.tk, news.tk: add pattern matching for list of
    		newsgroups, remove unsubscribed news groups, numerous bug
    		fixes; added check reconnect to newsserver

        notes:
    	use vmail3 for both email and newsreader; to set a POP3 mailbox, use
    	userid@pophost as the mailbox name, where 'userid' is your POP3
    	user id, and 'pophost' is your POP3 host machine.

    	news can be a little cranky, e.g. if you select 'show all messages' with	an open newsgroup, then you must re-open that group to show the effect.

    	John's email & home pages don't seem to be at maji.com any longer :(
    	I haven't been able to contact him.

    -------------------------------------------------------------------------------
    ---games

    mines
        description: mine sweeper, clear all the mines without stepping on one
        author: Neil Johnson <Neil.Johnson@camcon.co.uk>
        ver: 27/10/97
        license: Copyright
        http://members.xoom.com/Neil_Johnson
        tsp hacks:
    	changed exec line

    tetris
        description: tetris, the game of falling blocks
        author: Jeffery Hobbs <jeff.hobbs@acm.org>
        ver: 3.2
        license: Copyright
        http://www.hobbs.wservice.com/tcl/script/
        tsp hacks:
    	none

    hextris
        description: a devilish version of tetris with hexagonal shapes
        author: Jeffery Hobbs <jeff.hobbs@acm.org>
        ver: 1.1
        license: Copyright
        http://www.hobbs.wservice.com/tcl/script/
        tsp hacks:
    	none

    breakout:
        description: classic breakout
        author: Donal K. Fellows <donal.fellows@cs.man.ac.uk>
        ver: 11/1/1996
        license: Copyright
        http://www.cs.man.ac.uk/~fellowsd/tcl/#tclets
        tsp hacks:
    	added exec line
    	adapted from tclet

    hexplode
        description: strategy game
        author: Neil Winton <neil@winton.freeserve.co.uk>
        ver: 1.2
        license: Copyright
        http://www.winton.freeserve.co.uk/tcl/hexplode.html
        tsp hacks:
    	adapted from tclet

    videopoker
        description: video poker
        author: Joseph A. Konstan <konstan@cs.umn.edu>
        ver: 1.0
        license: BSD style
        http://www.cs.umn.edu/Research/GIMME/video-poker.html
        tsp hacks:
    	made window slightly smaller; use default mostly fonts
    	adapted from tclet

    solitaire
        description: classic solitaire
        author: Michael J. McLennan <mmc@cadence.com>
        ver: 1.0
        license: Copyright
        http://www.tcltk.com/training/plugin/solitarie.vet
        tsp hacks:
    	made window slightly smaller
    	Michael contributed the full non-tclet version

    -------------------------------------------------------------------------------
    ---utilities

    incant
        description: Dictionary client
        author: Chris Allen <fastjack@fastjack.turf.org>
        ver: 1.5
        license: GPL
        http://www.turf.org/departments/publishing/incant/
        tps hacks:
    	allow use of DICT_HOST & DICT_PORT environment variables
            instead of default 'dict.org' and '2628'.
    	don't use bold fonts

    stopwatch:
        description: simple stopwatch
        author: Don Libes <libes@nist.gov>
        ver: 1.1
        license: Copyright
        http://www.mel.nist.gov/div826/src/stopwatch/
        tsp hacks:
    	changed exec line

    md5
        description: compute the RFC 1321 MD5 Message Digest of a file or string
        author: Don Libes <libes@nist.gov>
        ver: 1.0
        license: Copyright
        http://expect.nist.gov/md5pure/
        tsp hacks:
    	i made a very simple interface, usage:
    		md5 "some string value"    	# md5 of a command line argument
    		md5 -f filename			# md5 of a file
    		md5				# enter message in text box

    fm
        description: simple file manager, mime aware
        see: vmail3 (tkapps) under news/mail

    maplot
        description: plot the sun's postition on the earth
        author: Matti Koskinen <mjkoskin@sci.fi>
        ver: 1.0
        license: Copyright
        http://www.sci.fi/~mjkoskin/
        tsp hacks:
    	changed exec line
    	adapted from tclet

    starmap
        description: zoomable view of our closest stars
        author: Sarang <sarang@sarangworld.com>
        ver: 1.0
        license: Copyright
        http://www.sarangworld.com/TCL/starmap.html
        tsp hacks:
    	changed exec line; make initial window smaller
    	adapted from tclet

        notes:
    	hold button-1 to drag map around
    	use mouse button-2 to zoom in  (or shift-button-1,      must stop with)
    	use mouse button-3 to zoom out (or control-button-1,     other button!)

    	polaris (the north star) is the topmost star, ursae majoris (the big
    	dipper) should be visible below polaris.

    mmencode
    uuencode
    uudecode
        description:  base64 mmencode, standard and base64 uuencode/uudecode
        author: Steve Ball <steve.ball@zveno.com>
        ver: 1.0
        license: BSD
        http://www.zveno.com
        tsp hacks:
    	taken from Steve's Tcl web browser, Plume. i added argument processing,
    	code to implement '-q' for mmencode, and added in the code for
    	uuencode/uudecode routines.
    	tclsh based, does not link to STARTUP.SH, but does look for $TCLTKLIB
    	to file lib files.
    	for vmail3 support

    uniq
    head
    rmdir
        description: simple implementations of these commands
        author: Tom Poindexter <tpoindex@nyx.net>
        ver: 1.0
        license: Copyright
        http://www.nyx.net/~tpoindex
        tsp hacks:
    	for vmail3 support
    	tclsh based, does not link to STARTUP.SH

    -------------------------------------------------------------------------------
    ---graphics

    impress
        description: object oriented graphics drawing
        author: Christopher Jay Cox <cjcox@acm.org>
        ver: 1.0b
        license: GPL
        http://www.ntlug.org/~ccox/impress/index.html
        tsp hacks:
    	remove many hardcoded fonts, most are not on muLinux
    	change Global(Font)
    	include tkfontsel.tcl from impress_complete

    tkpaint
        description: object oriented graphics drawing
        author: Samy Zafrany <samy@netanya.ac.il>
        ver: 1.5.4
        license: GPL
        http://www.ice.ru/~vitus/misc/tkpaint.html
        tsp hacks:
    	make window geom slightly smaller
    	Victor B. Wagner <vitus@ice.ru> is the Unix port maintainer
    	change font specifications, avoid bold

    ldsdraw
        description:  Logical Data Structure(LDS) modeling software
        author: Alex Safonov <asfonov@cs.umn.edu>
        ver: 5.0a
        license: BSD style
        http://www.cs.umn.edu/~safonov/ldsdraw
        tsp hacks:
    	fix exec line; move extra files to /usr/tcltk/lib/ldsdraw; make initial
    	screen geometry smaller & remove placement; allow showhelp to use
    	gl(home) path; touch ldsobj.tcl lib file to allow startup.

    -------------------------------------------------------------------------------
    ---development

    tkcon
        description: enhanced console for Tcl
        author: Jeffery Hobbs <jeff.hobbs@acm.org>
        ver: 1.6
        license: Copyright
        http://www.hobbs.wservice.com/tcl/script/tkcon/
        tsp hacks:
    	none

    vtcl
        description: visual tcl application development
        author: Stewart Allen <stewart@neuron.com>
        ver: 1.2.0
        license: GPL
        http://www.neuron.com/stewart/vtcl/
        tsp hacks:
    	added exec line;
    	hack vTcl:load_lib to look for .gz lib file;
    	compressed lib files, but had to touch lib_*.tcl files to make things
    	work

    tuba
        description: debugger for tcl applications
        author: John Stump <johnstump@iname.com>
        ver: 2.4p1
        license: Starving Artist Artistic License; see lib/tuba/LICENSE.TXT
        http://members.xoom.com/iliadtools/tuba
        tsp hacks:
    	remove TclparserX.tcl, make link to Tclparser.tcl; remove examples;
    	remove docs;
    	set tubalibdir to $env(TUBA_LIB); make window geom slightly smaller
    	lib/tuba/tuba_lib.tcl doesn't like to be compressed

    -------
    enjoy!
    -------