i'm new to the list and i'm sure this is old hat, but...

Tk.after appears to leak memory on w2k. use Tkafter instead:

require "tk"
$number = 0
$label = TkLabel.new {text $number; pack()}
def counter
  $number += 1
  $label.configure('text', $number)
  Tk.after(1,proc{counter})
end
counter
Tk.mainloop

....this way leads to disaster

require "tk"
require "tkafter"
$number = 0
$label = TkLabel.new {text $number; pack()}
def counter
  $number += 1
  $label.configure('text', $number)
end
TkAfter.new(1,-1,proc{counter}).start
Tk.mainloop

.... and this to salvation.

incidentally, although the ruby/Tk faq is as yet untranslated, the examples
are all quite readable:
http://www2s.biglobe.ne.jp/~Nori/ruby/ja/tk-ref/

danny
http://www.sofer.com/ruby/