Ruby言語やLinuxのネタが多いです。
November 17, 2003
■ [Ruby-GNOME2] さっそくバグレポート
ってか、コンパイルエラーが3件。しくしく。
なるべく早いうちに0.8.1出しますんで他にもバグあったらレポートしてください。
GTK+-2.0の環境つぶしちゃったんだけど、また、どっかに用意しないとなー。
■ あー、はやくGTK+-2.0.xとRuby-1.6.x捨ててー。ってかライブラリありすぎ(T_T)。
■ [Ruby-GNOME2] ke-gtk2.rb
#!/usr/bin/env ruby
# http://www.meigaku.ac.jp/~watayan/prog/java/nanisource.html
# の「何もしない Java applet に毛のはえたやつ」をRuby/Tkに移植したもの
# http://znz.s1.xrea.com/t/?date=20031114#p01
# をRuby/GnomeCanvas2に移植したもの
require 'gnomecanvas2'
Gtk.init
c = Gnome::Canvas.new(true)
c.set_size_request(200, 200)
c.set_scroll_region(0, 0, 200, 200)
maxx, maxy = c.width, c.height
num = (ARGV.shift || 100).to_i
interval = (ARGV.shift || 0.5).to_f
num.times do
Thread.start do
x, y = rand(maxx), rand(maxy)
while true
dx = ((rand * 4.0 - 2.0) * 2).to_i
dy = ((rand * 4.0 - 2.0) * 2).to_i
dx = 0 if x + dx < 0 || x + dx > maxx
dy = 0 if y + dy < 0 || y + dy > maxy
Gnome::CanvasLine.new(c.root,
:points => [[x,y],[x+dx, y+dy]],
:fill_color => 'black',
:width_pixels => 1)
x += dx
y += dy
sleep interval
end
end
end
Gtk::Window.new.add(c).show_all
Gtk.main
■ わざとそのままThreadを使ってみたけど大丈夫のようだな。環境によっては再描画されないかも。
■ [Ruby-GNOME2] Ruby/GTK TreeView Tutorial
by Matthew Berg。まだ読んでないんですが複雑なGtk::TreeViewウィジェットの解説というだけあって期待大です。
元ネタのGTK+版を忠実に書き直したものではなく、Ruby版での使いやすさ・簡単さが表現されていると良いなー。
November 17, 2004
> cd ruby-1.8.2
> set RUBYOPT=
> "C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\sdkvars.bat"
> "C:\Program Files\Microsoft SDK\SetEnv.Bat"
> win32\configure.bat
> nmake
(コンパイルはうまくいく)
lib -nologo -machine:x86 -out:msvcrt-ruby18-static.lib array.obj bignum
.obj class.obj compar.obj dir.obj dln.obj enum.obj error.obj eval.obj fi
le.obj gc.obj hash.obj inits.obj io.obj marshal.obj math.obj numeric.obj
object.obj pack.obj parse.obj prec.obj process.obj random.obj range.obj
re.obj regex.obj ruby.obj signal.obj sprintf.obj st.obj string.obj struct
.obj time.obj util.obj variable.obj version.obj acosh.obj crypt.obj erf.obj
win32.obj dmyext.obj
'lib' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'lib' : リターン コード '0x1'
Stop.
ここでlibが無いと言われてしまうのだけど、オレの環境ではlib.exeがC:\Program Files\Microsoft SDK\Bin\Win64\lib.exeしかみつからない。Win64というのが怪しい(オレのマシンはPentium IIIのWindows2000)けど、とりあえず、PATHにこのフォルダを追加して続けてみる。
> set PATH=%PATH%;"C:\Program Files\Microsoft SDK\Bin\Win64"
> nmake
.\miniruby.exe ./win32/mkexports.rb -output=msvcrt-ruby18.def msvcrt-rub
y18-static.lib
./win32/mkexports.rb:6:in `foreach': No such file or directory - dumpbin -symbol
s msvcrt-ruby18-static.lib (Errno::ENOENT)
from ./win32/mkexports.rb:6
NMAKE : fatal error U1077: '.\miniruby.exe' : リターン コード '0x1'
Stop.
で、昨日の事象が再現。
■ ってことはやっぱりlib.exeのところが変なのかなー。それともオレの環境がダメダメ?...その可能性はかなり高いな(^^;)。
■ [Ruby-GNOME2] ruby-gtk2-0.11.0 for One Click Ruby Installer
One Click Installer上で動作するruby-gtk2のバイナリを用意しました。
Ruby/GLib, Ruby/ATK, Ruby/Pango, Ruby/GdkPixbuf, Ruby/GTK, Ruby/GtkGLExt, Ruby/Libglade, Ruby-GetText-Package, Raccが入っています。ぜひお試しください。
■ 最近、One Click InstallerでインストールしたRuby上でMinGWでコンパイルしたruby-gtk2が動作しないと言う現象が起きていました。
で、今回、VCでコンパイルをし直したところ動作するようになった、というものです。
#いいのかな、こんなんで(^^;)。
■ それにしてもVCでコンパイルできるようにするまでかなり大変でした。
結局、Ruby自体のコンパイルはあきらめたのですが(^^;)、ソースに手を入れたりMakefileに手を入れたり環境変数設定したり... 逆に、その辺をしっかりしておけばMinGWでコンパイルしても大丈夫なのかもしれません。型のチェックなんかはVCの方が厳しいみたいですし。
#もちろん、もっと簡単な方法があるのかもしれませんがなにぶんWindowsの開発環境には疎いもので(^^;)。
もう少し簡単にできるようにしないと次が大変だ。うーん。

▲ なかだ [ウィンドウを閉じたときに終了せずに止まってしまいました。> ke Ctrl-C押したらSEGV。 #8 <sig..]
▲ なかだ [書き忘れ。 (gdb) up 14 #14 0x400c85a4 in rbgobj_free (holder=0..]