Leam Hall

What passes for my web site (without any tcl there yet) is:


26 May 01 My 11th anniversary and I'm here. I've started a project, using a game as a tool to develop my programming skills. Miguel MS helped me work out some coordinate issues, and is also patiently explaining problem decomposition.

In the old RPG 'Traveller', [L1 ] you had a mechanism for space-merchanting. You could have your ship, buy stuff on one planet and sell it on another. You had to deal with crew salaries, maintenance, and capitol costs. Not to mention a big monthly payment on your ship.

27 May 01 Thanks to whomever provided the Traveller link--perfect!

Space Game

Another project is to answer the recurring question of "Which Tcl book should I buy?" There are several out there, and most are good. Here are my perceptions of the books I have personal experience with. My comments are very subjective, so let me know if you have any questions.

Informal Tcl Book Reviews

21 Jun 01

While loitering in the Tcl chat area, several people gave me ideas on how to improve the structure of the Space Game idea, so it is a better learing tool. Here are the thoughts so far.

 More explinations for tricky constructs like the foreach {X Y Z}
 Having a newbie to expert programmer conversation, explaining how and why.
 Keeping the code useable and easily readable.
 Reference other Wiki pages, like the man pages and "Beginning Tcl".

23 Mar 02

I've taken up writing a structured set of tutorial links for newcomers. Although there are quite a few resources to learn The Cool Language, it seems as if there is too much for a new person to digest. What I'm doing is building an entry point. I want to take the individual's self-perception and point to resources that most suit their needs. The start of this is Tcl Tutorial Discussions


 # dnsHelper.tcl
 source ./dnsVars

 set lan [ lindex $argv 0 ]
 set allFile [ open $lan r ]

 while {[ gets $allFile line ] >= 0} {

    set input [ split $line ]
    regsub $lan [lindex $input 0] "" host
    set nameList [ lrange [split $line ] 1 end ]

 # clean up list
    foreach item $nameList {
       if [ string length $item ] {
          lappend names $item
          puts $names # works here
    puts $names # fails here 
 #       puts " $host $A $names" # fails herE
 #       puts $names

 close $allFile

Error message: # guido > ./dnsHelper.tcl 143.131.29

 #can't read "names": no such variable
 #  while executing
 #"puts $names"
 #   ("foreach" body line 6)
 #  invoked from within
 #"foreach item $nameList {
 #        if [ string length $item ] {
 #        lappend names $item
 #       puts $names # works here