Version 48 of tkWorld

Updated 2004-03-21 10:32:52

The term tkWorld has a couple of meanings. One is discussed below - a Tk displayer of the world. However, another is :

 What: tkWorld
 Where: Currently Unknown
 Description: Wes's Own Really Lazy Desktop provides a Tk interface to popular
        Unix commands.
        Each application's interface has a command center, toolbar and log
        window.  Currently these applications are developed:
        tkFind, tkGrep, tkMake, as well as chmod, mkdir, ps, and rmdir ,
        as well as built in dir, ls, and cd commands as well as a number of
        other std Unix commands,
        tkLB (a little HTML browser),
        tkREM (a regular expression maker),
        tkSort (a GUI interface to Unix sort),
        tkWinstall (GUI install tool, used to install/deinstall tkWorld)
        Software is released under the GNU General Public License.
        Currently at v1.4.0.
 Updated: 10/1998
 Contact: [Wes Bailey] - address currently unknown

This software was around at one time - people in the community have copies of it. However, the authority location is still being sought.

Does anyone have an interest in the last release of the tkworld desktop software?

See TclWorld for the current version.

See Geographic mapping the Tcl way for more details. RS: I proposed rules there that I myself didn't sctrictly follow ;-) more so in Mapping Colorado than in this midnight project, that was driven by the fact that I finally had coastline data.

Get TkWorld (a zoomable, scrollable world map on a canvas, based on data from ) as Tclkit (39kb) from , or mailto:[email protected] for the 111KB source (single file with all data)

Vince How does one zoom? There are no controls and all the keypresses and clicks I've tried (WinTk 8.4a4) don't do anything.

RS Plus and minus keys on the keyboard (sorry, it was late ;-)

See also the CIA World Fact database at

tkWorld 0.2 (without the data) now available. But it will have to change name - there was a (possibly dead) project of that name and even a package at Debian. Watch this place for updates. RS

rmax offers a list of Tcl'ers with coordinates at , and here's a little scraper (and displayer) for that:

 proc drawTclers w {
    foreach guy [fetchTclers] {
        foreach {name lat lon} $guy { break }
        set lon2 [expr {-$lon-$lon-1.5}]
        set lat2 [expr {-$lat-$lat-1.5}]
        $w create oval $lon2 $lat2 [expr {$lon2+3}] [expr {$lat2+3}]\
            -fill white -tag $name
 proc fetchTclers {} {
    set socket [socket 80]
    puts $socket "GET /~max/TclersLocations"
    puts $socket ""
    flush $socket
    set tclers ""
    while { ![eof $socket] && [gets $socket line] != -1} {
        set line [string trim $line]
        if {
            ![string match $line "#*"] &&
            [info complete $line] &&
            [llength $line] == 3
        } then {
            lappend tclers $line
    close $socket
    set tclers

but here's the list as of 2004-01-28 (feel free to add):

 {Steve Landers}  -32.064 -115.875
 {Reinhard Max}    49.453 -11.078
 {Larry Virden}    39.9677 82.8240
 {Cameron Laird}   29.5 95.2
 {Rolf Ade}        48.8 -9.2
 {Richard Suchenwirth} 47.70 -9.13
 {Dan Kuchler}     44.21 88.42
 {Steven Gibson}   33.967 -118.017
 {Michael Jacobson} 39.245 76.791
 {Kevin Kenny}     42.825 73.888
 {Jean-Claude Wippler} 52.033 -5.167
 {Brett Schwarz}   47.483 -121.783
 {Ulrich Schoebel} 50.683 -6.217
 {David Zolli (kroc)} 46.15 1.15
 {Pat Thoyts}      51.534 2.423
 {Donal Fellows}   53.4679 2.2344
 {Miguel Sofer}   -34.613  58.470
 {Salvatore Sanfilippo} 36.9035 -14.8222
 {Peter Spjuth}    57.6863 -11.9959

To add your data into the master list, send a mail to "max at" with "TclersLocations" in the Subject and an entry like those above in the first line of the body. Please be patient if your entry doesn't show up immediately. It has been processed, but is only visible after the next rsync to the server and they are only done once in a few hours.

How does one (accurately) find out one's geo-location?

With a gazetteer like (MFP).

But that gives me degrees/minutes/seconds... (jcw, mathematician :)

Here's a one line converter. dmstodd 40 26 26 79 59 46 gives me 40.4405555556 79.9961111111, and I would report 40.441 -79.996 since I'm in the western hemisphere (NW quartersphere?) (MFP).

 proc dmstodd {d1 m1 s1 d2 m2 s2} {
     list [expr $d1+($m1+$s1/60.)/60] [expr $d2+($m2+$s2/60.)/60]

Here is a locator that gives both:

DKF - The above code is not at all sensitive to firewalls; even the http package is better. So...

  package require http
  proc fetchTclers {} {
     set tok [http::geturl]
     set tclers {}
     foreach line [split [http::data $tok] \n] {
        set line [string trim $line]
        if {
            ![string match $line "#*"] &&
            [info complete $line] &&
            [llength $line] == 3
        } then {
            lappend tclers $line
     http::cleanup $tok
     return $tclers

TclWorld Gazetteer has lat/lons for ~200 cities and places. See also Defining Tclworld

There's also a nice lookup by IP number, at - look for the "NetGeo IP Lookup".

Category Application