Pa Penguin's Icebox

Wagonmaster and Chief Iceman: Dave "Pa" McClamrock


All right, I admit I'm not really a penguin, and this isn't really an icebox, but "David McClamrock's Linux, IceWM, and Tcl/Tk Web Page" just sounded too bland. It's more accurate, though: I really am David McClamrock, and this page really is about the Linux computer operating system, the IceWm window manager, and the Tcl/Tk programming language.

Latest versions of my programs:

2008 versions of WISH megawidgets for use by Tcl/Tk programmers (included in the packages for all the above-listed programs):

All my programs and megawidgets are distributed under the Maximum License Use for Everyone (MULE, for those who favor silly-sounding, animalistic acronyms)--a little lightweight license I wrote myself to introduce a bit of barely perceptible levity into the lugubrious lore of licensing, while retaining the rudiments of a real open-source software license.


And now for a few words about Linux, IceWM, Tcl/Tk, and my programs:

Linux

Pioneer Penguins on the Prairie

If you're reading this page, you may already know about the Linux operating system. (Linux is a trademark of Linus Torvalds, who created Linux to run on his home PC in Finland in about 1991. I think I'm supposed to mention that, even if you already know.) You may also be more of a computer "geek" than I am. I'm basically an ordinary computer user who started looking into Linux in early 1999 because Windows 3.1 wasn't Y2K compliant and I couldn't look forward eagerly to "upgrading" to a later version of Windows. Before the end of 1999 I had bought a new "white box" computer, installed Linux (Mandrake 6.1) as the only operating system on it, and used it successfully for word processing, e-mail, Web browsing, home finance, graphic image creation, and more. Since then I've never looked back--except that I've been forced to obtain a few used Windows machines so my four kids could use educational (or pseudo-educational) software that isn't available for Linux. (Are there any Linux game programmers reading this? If so, your duty is clear: please write some good, genuinely educational games and related software for Linux so that our family, and thousands of families like ours, can dispense with the inferior, overpriced stuff that's available for Windows!)

Just in case you're a home computer user like me, except that you know little or nothing about Linux, here are a few of many websites with information that you might find interesting, useful, or both.


DesktopLinux.com
DistroWatch.com
The Hungry Penguin
Linux Central
Linux Online
Mandriva Linux
NewsForge: The Online Newspaper for Linux and Open Source
Puppy Linux
SEUL: Simple End User Linux
Sound & MIDI Software For Linux


IceWM

If you know anything about Linux or other Unix-type operating systems, you know that there are many different "window manager" programs you can use on these systems. My favorite is IceWM, "the window manager cool as ice." It runs fast, it looks good, and it's pretty easy to understand, even for an old non-geek like me. You can give IceWM many different looks with different "themes," and it only takes a few seconds to switch to a new theme.

Here's a screenshot showing IceWM with my theme called "sun_sand_sky," in addition to some programs that I didn't write. [See screenshot of IceWM desktop with NoteEdit, TiMidity++, SnackAmp, TextMaker, GIMP] You can get tar.gz archives containing my themes' components by following these links:

IceWM theme: autumnalia
IceWM theme: greenery
IceWM theme: royal_purple
IceWM theme: sun_sand_sky
IceWM theme: winterblue

If you don't like my themes and you want to look at some others, or you just want to know more about IceWM, you can visit the IceWM Home Page.


Tcl/Tk

After I started using Linux, I noticed that some very useful programs, such as FileRunner (a file manager), CBB (Check Book Balancer), and Tk NotePad (a simple text editor like Windows Notepad, only better--the predecessor of WISH Supernotepad) were written in a language called Tcl/Tk (Tool Command Language/Tool Kit, also known as "The Cool Language/That Kicks ..."). Eventually, when I found out more about Tcl/Tk, I thought, "This sounds pretty simple; maybe even I could write computer programs in this language!" Lo and behold, I could.

I call Tcl/Tk "The Ultimate in Open Source" for two reasons:

1. Tcl/Tk is an interpreted language, not a compiled language.

You may already know what that means if you're reading this page--but, just in case you don't, here's what it means.

Human beings can't understand huge collections of "ones" and "zeroes" very well, but computers can't do anything if they don't get some "binary code" written in "machine language," which consists of nothing but ones and zeroes. So, human beings write "source code" in programming languages they can understand; then the source code needs to be translated into binary code for the computer.

The source code for a program can either be "compiled" (translated into binary code ahead of time) or "interpreted" (translated into binary code when the program is run). For a compiled program, the source code may or may not be readily available on your computer. For an interpreted program, the source code has to be readily available on your computer; otherwise the program won't run because it isn't there. For an interpreted program, the source code is the program.

The basic idea of "free" or "open source" software is that you're free to read, modify, and distribute the source code. If you understand an interpreted language, you can always read and modify the source code for a program written in that language, with no delay while you find out where the source code is (or you find out that it isn't available). Also, you can instantly test-run any modified version of the program; you don't have to compile it first and hope nothing goes wrong during the compilation. (So why would anyone use a compiled language? In terms of computer time, compiled programs are faster because the computer doesn't have to translate source code into binary code before the program can run--although the difference in speed isn't nearly as important as it used to be, because computers now are much faster than they used to be. In terms of human time, on the other hand, interpreted languages often enable programmers to get jobs done faster than compiled languages do.)

Interpreted languages also make it easier to distribute open-source software widely and effectively, because they allow you to "write once, run everywhere." You don't have to write a different version of each program for each operating system that you want the program to run on. There just needs to be a different version, for each operating system, of one master program called the "interpreter." Programs written in Tcl/Tk are run by the "WISH Interpreter" (known as the "wish interpreter" to case-sensitive Unix-type geeks). That's logical enough, since Tcl/Tk is a Window-opening, Integrating, Scripting, High-level programming language:

Versions of the WISH Interpreter are available for Unix-type systems (including Linux and Mac OS X), Windows, and older Macintosh systems (see below).

2. Tcl/Tk is (so far as I know) the simplest interpreted language in common use.

The source code for a program won't do you a lot of good if you can't understand it. Many programming languages are designed to do a lot of math and logic, they have different "classes" of data to keep track of, they have complicated "syntax" that you need to keep straight or else your program won't work, and so on. Tcl/Tk has pretty simple syntax, and it has only one class of data: text. It lets you issue understandable, English-like commands to your computer, even if you don't know a lot about math or logic. (You can use Tcl/Tk to do math or logic, but you may have to use a special command to tell the computer, "This is math or logic, not just text.")

In case you'd like to know more, here are links to a few leading Tcl/Tk sites:

ActiveState Tcl programming tools (etc.)
Tcl Developer Xchange
Tcl Newsgroup (comp.lang.tcl)
The Tcler's Wiki
Tcl SourceForge Project
Tclkit

Most Linux distributions come with Tcl and Tk packages. If you're running Puppy Linux (as I am), here are links to .PET packages for Tcl and Tk 8.5.5, derived from the Slackware Linux 12.2 packages:

Download Tcl 8.5.5 .PET package for Puppy Linux
Download Tcl 8.5.5 .PET package for Puppy Linux (alternative download site)

Download Tk 8.5.5 .PET package for Puppy Linux
Download Tk 8.5.5 .PET package for Puppy Linux (alternative download site)

Tcl/Tk is so simple that even I can use it; I did use it to write WISH Checkbook, WISH Superscriptorium, WISH File Rusher, WISH Binary Viewer, WISH Supernotepad, WISH CD-Writer, WISH Command Center, and WISH Mini-Console. If you're interested in any or all of these packages, here's your chance to download them without delay (WISH Color Picker Plus and WISH User Help are included in all of them) . . .

Download WISH Checkbook 2009 "tar.gz" package (approx. 56 KB)
Download WISH Checkbook 2009 .PET package for Puppy Linux (approx. 56 KB)
Download WISH Checkbook 2009 .PET package for Puppy Linux (alternative download site)

Download WISH Supernotepad 2009.1 "tar.gz" package (approx. 78 KB)
Download WISH Supernotepad 2009.1 .PET package for Puppy Linux (approx. 78 KB)
Download WISH Supernotepad 2009 .PET package for Puppy Linux (alternative download site)

Download WISH CD-Writer 2009 "tar.gz" package (approx. 51 KB)
Download WISH CD-Writer 2009 .PET package for Puppy Linux (approx. 51 KB)
Download WISH CD-Writer 2009 .PET package for Puppy Linux (alternative download site)

Download WISH Binary Viewer 2009 "tar.gz" package (approx. 30 KB)
Download WISH Binary Viewer 2009 .PET package for Puppy Linux (approx. 30 KB)
Download WISH Binary Viewer 2009 .PET package for Puppy Linux (alternative download site)

Download WISH Command Center 2009 "tar.gz" package (approx. 48 KB)
Download WISH Command Center 2009 .PET package for Puppy Linux (approx. 48 KB)
Download WISH Command Center 2009 .PET package for Puppy Linux (alternative download site)

Download WISH Superscriptorium 2009 "tar.gz" package (approx. 830 KB--it takes a lot of grammar and vocabulary data to conquer the Latin language)
Download WISH Superscriptorium 2009 .PET package for Puppy Linux (approx. 830 KB)


Download WISH File Rusher 2009 "tar.gz" package (approx. 42 KB)
Download WISH File Rusher 2009 .PET package for Puppy Linux (approx. 42 KB)
Download WISH File Rusher 2009 .PET package for Puppy Linux (alternative download site)

Download WISH Mini-Console 2009 "tar.gz" package (approx. 35 KB)
Download WISH Mini-Console 2009 .PET package for Puppy Linux (approx. 35 KB)
Download WISH Mini-Console 2009 .PET package for Puppy Linux (alternative download site)

. . . and to send me e-mail not containing spam or flames:

mcclamrock@locl.net


Yahoo! GeoCities--Free home pages!