2001-08-12 [長年日記]
λ. 朝方の生活に戻したと思ったら、眠れなくて、寝たのが朝の9時ごろ。で、起きたのが夜の7時。だめだこりゃ。明日こそは早起きして「猿の惑星」見るぞ。
λ. NArrayの次元順序
現在のFORTRANスタイルだと、例えばGimpで扱っているようなメモリ形式の画像データで、RGBを次元として扱う場合に、こんな風に書くことになるのか。…微妙。
img = NArray.byte(bpp, width, height) img[0, x, y] # R img[1, x, y] # G img[2, x, y] # B
λ. Gimp-Ruby
libgimpってまずいことがあると内部で勝手にgimp_quit()内でexit(0)しちゃうからRuby側でどう対処すべきか悩んでた。結局、PLUG_IN_INFO.quit_procが、gimp_close時に呼ばれるので、そこでruby_finalizeする事にした。したがって、Gimp::mainは帰って来なくしちゃった。えへっ。なんか不味いような気もするが、exit!の例もあるからまあいっか。というわけで今後は終了処理にはensureぢゃなくてat_exitを使ってくれたまえ。
λ. とか思って安心してたらSegmentation Faultだ。なんじゃこりゃ? gimphelpuiが内部で持ってるtooltipsウィジェットがどっかで既に破壊されてるのか? しかし、一体どこで?
Gtk-WARNING **: invalid cast from `(unknown)' to `GtkObject' /usr/lib/gimp/1.2/plug-ins/sphere.rb:101:in `main': file gtkobject.c: line 236 (gtk_object_destroy): assertion `GTK_IS_OBJECT (object)' failed. (Gtk::Error) from /usr/lib/gimp/1.2/plug-ins/sphere.rb:101 ruby: fatal error: セグメンテーション違反です ruby (pid:1284): [E]xit, [H]alt, show [S]tack trace or [P]roceed: S #0 0x402c5d8c in g_on_error_stack_trace () from /usr/lib/libglib-1.2.so.0 #1 0x402c596f in g_on_error_query () from /usr/lib/libglib-1.2.so.0 #2 0x402a1a69 in gimp_plugin_sigfatal_handler () #3 <signal handler called> #4 0x40790888 in gimp_help_free () from /usr/lib/libgimpui-1.2.so.0 #5 0x4076a172 in _done () #6 0x4004c3a8 in rb_protect () at eval.c:88 #7 0x40056a66 in rb_exec_end_proc () at eval.c:88 #8 0x400443f9 in ruby_finalize () at eval.c:88 #9 0x40044503 in ruby_stop () at eval.c:88 #10 0x40044663 in ruby_run () at eval.c:88 #11 0x080486c2 in main () at eval.c:88 #12 0x4014f1be in __libc_start_main (main=0x8048694 <main>, argc=7,