2002-02-01 [長年日記]
λ. 研究会
がんばったけど結局発表には間に合わなかった。とりあえず言い訳を並べておく。本当はamayaとlibthotの構造についてもっと具体的な事を話すつもりだったのだけど、つい忘れてしまった。自分で感じていた以上にあがっていたようだ。
λ. 読書
- 『天使な小生意気 12』
- 西森博之[画]
- 『D・N・ANGEL 6』
- 杉崎ゆきる[画]
- 『鋼鉄天使くるみ 1』
- 『鋼鉄天使くるみ 2』
- 介錯[著]
λ. lispのletみたいな事って出来ないの?
evalされるコードを書くときに、ローカル変数を上書きしそうで心配になったりする今日このごろ。
λ. 才能
「才能は必ずしも報いられるものではない。確かに、私には才能がそなわっている。ただ、十分ではない。いままでずっとそうだった。これからも変わらない。私は自分の限界をわきまえているし、その限界を受け入れることを学んだ。私の志に、私の才能はまるで釣り合っていない。それだけのことさ。」(「Mの日記」/ ローラ・リーズ[著] 池田真紀子[訳])
λ. mswin32版の拡張ライブラリをMinGWで作る
メモメモ。
2002-02-02 [長年日記]
λ. 夢
キングオブファイターズとハンター×ハンターと列火の炎と水戸黄門が混ざったような夢を見た。まったく意味不明だった。
λ. XMLで表現して管理したいもの
誰かつくってくんねえかなぁ。
- 証明図
- MathMLと似たようなものか。 もちろん、NKでもLKでもLHqでも何でもありで。 さらに証明の妥当性の検証とか出来ると吉。
- 将棋の盤面と棋譜
- そういえば、白将棋駒(WHITE SHOGI PIECE)と黒将棋駒(BLACK SHOGI PIECE)って、JIS X 0213 と Unicodeに入ったんでしたっけ?
- ボーリングのスコア
- 以前にも同じことを考えたけど。
λ. GTK+ Object Builder
GOB is a preprocessor for making GTK+ objects with inline C code so that
generated files are not editted. Syntax is inspired by java and yacc or lex.
The implementation is intentionaly kept simple, and no C actual code parsing
is done.
λ. Gimp-Python shell
ふむふむ。Gimp-Rubyでもちゃんと補完できるようにしたいところだなぁ。
λ. DAG
Development Assistance Group よりも Directed Acyclic Graph の方が先に頭に浮かぶ今日この頃。
λ. Amaya
libthotのDisplayJustifiedTextが仕事を抱え込み過ぎてとんでもない状態になっている。ここさえ切り崩せればlibthotは一段落なんだけどなぁ。ディスプレイ上で何度か眺めててもサッパリなので印刷したら7ページなり。長過ぎじゃ!!
2002-02-03 [長年日記]
λ. 웃지않는 수학자
ふと『笑わない数学者』の韓国版を探してみようと思って、「웃지않는 수학자」で検索するも、それらしいサイトは見つからず。ひ〜ん。
λ. 読書
- 『天国に涙はいらない』
- 佐藤ケイ[著] さがのあおい[イラスト]
- 「笑いと涙のシニカル学園コメディ」とある。 面白いと思うのだが、一体どこがシニカルなんだ?
λ. 円安進むと何起きる? 1ドル200円が分岐点
円安それ自体は当然の成り行きだと思うけど、他にもやることはあるでしょうに。
それに、「河野氏は、10%円安が進めば、実質GDPを0.4%、消費者物価指数を0.3%押し上げる、と試算する」とあるけど、その試算に基づくと、1ドル=180円で約1.2%、1ドル=200円でも約1.6%しか消費者物価指数はあがらないんでないの?
まあ、実質GDPが2%も上昇すれば万々歳だろうけど。
λ. 外貨預金
そういえば、外貨預金って預金保険の対象にならないのね。
λ. カルザイ首相が窮地 地方都市で戦闘頻発
まあ、予想されたことではあるわな。
λ. Linuxにはペイントプログラムが欠けている
この記事はGimpは眼中にないようで…… プロのレベルでは確かにそうなんだろうけど、ちょっと哀しい
λ. 節分
節分らしいので豆を食っておく。
2002-02-04 ある集合とその補集合が共に帰納的可算であるならば、その集合は帰納的である [長年日記]
λ. 今日も夕方まで寝てた。夢は覚えてない。
λ. イエス様は、数学の大定理でも証明しておいてくれれば良かったのだ。そしたら、きっと誰もがキリスト教を信じるだろうに。(笑)
λ. pの意味
あ、なるほど。状況依存セレクタを使えば良いのか。
ちょっと補足すると、元の文が書き変わってしまっているので意味が通じにくくなってしまったけど、「pが段落として使われているかといえば、必ずしもそうではないわけで…」というような事が書かれていて、なるほど確かにカレンダーやナビゲーションバーは意味的には「段落」じゃないよなぁと思ったわけです。今、元の文を読み返すと、そこで意図されていたのは、僕が読み取ったのと全く別の話だったようで、お恥ずかしい。
λ. 読書
- 『天国に涙はいらない 2 - 畜生道五十三次』
- 佐藤ケイ[著] さがのあおい[イラスト]
- 悪魔っ娘の次は猫耳娘っすか……
2002-02-05 ふりむく彼女の微笑はあまりに遠い [長年日記]
λ. 今日も夕方まで寝ていた。明日は寝坊したらまずい。
λ. ちょっとした作業のために某サーバのftpアカウントを友人に教えて貰ったのだけど、ange-ftpでアクセスすると挙動がおかしい。どうやら、ls "-al /." 等とすると実際の/が見えてしまうようだ。
使われているのはWU-FTPD 2.6.1なのだが……
λ. 大学生協インターネットサービス
1月24日に注文した書籍がようやく店舗に届いた。まあこんなものか。
λ. CNSのWnnでトラブル。
eggで変換しようとすると以下のように言われて変換できないように突然なってしまってびっくりした。wnn6-jserver-setupでのadd-wnn-fisys-dict, add-wnn-fiusr-dict, add-wnn-dictの呼び出しがエラーになっているようだ。~/Wnn6/hindo/以下のファイルが壊れてしまったようだ。ファイルを消してしまったら、新しくファイルをつくってくれて。とりあえず解決。
ホスト nls02 の Wnn を起動しました Loading /a/fs03/home/sd01a/SOLARIS/26/new/local/share/emacs/site-lisp/eggrc-wnn... 何かのエラーが起こりました。 何かのエラーが起こりました。
λ. 次世代指導者: 小渕優子さんらを選出 世界経済フォーラム
おいおい。まじっすか。うひひ。
2002-02-06 理解しようとする意思だけが重い [長年日記]
λ. 今日こそ早起きするぞっ!!
λ. 間違いだらけの擬似乱数選び
1/22にこの日記でも紹介した講演。
有限体の性質とメルセンヌ数が組み合わさっていて綺麗だなぁと思うと同時に、うまく実装できるように工夫されているのに感心した。
とても面白かったので、調子に乗ってRubyの拡張ライブラリを作ってしまったんだけど、作ってからRandomRの存在を知ってショックなのだ……
そういえば、萩田先生があんな若い方だとは知らなかったデス。
λ. 買った本
- 『狂牛病 - プリオン病因説は間違っている!』
-
1/17に紹介した本。
半分は翻訳で原文も公開されているんだけど、僕の苦手な方面の用語が頻出するこれだけの分量の文章を読むことを考えると翻訳ってホントありがたいなぁと、ふと思った。そもそも翻訳されてこの本が出版されなかったら原文の存在すら知らなかったわけで、2重の意味でか。
国際個人通信社みたいなのを夢想したくもなる。 -
目次 タイトル 原文 著者 訳者 「狂牛病」 プリオン病因説の闇 佐藤雅彦
(Masahiko Satoh)狂牛病 世界中に広められた大破局 Mad Cow Disease: Globalized Disaster ライオネット・J・ダンプル
(Lynette J. Dumble)笹川英資 狂牛病蔓延と農薬産業の陰謀 Mad Cow Disease: The Chemical Industry Plays Dirty ポール・ケイル
(Paul Kail)佐藤雅彦(Masahiko Satoh) 伝染性海綿状脳症(TSE)についての予備的仮説 An Introductory Hypothesis on the causes of the Transmissible Spongiform Encephalopathies ナイジェル・パーディー
(Nigel Purdey)狂牛病はマンガンの過剰と銅・セレニウム・鉄・亜鉛の不足で起きる! Ecosystems supporting clusters of sporadic TSEs demonstrate excesses of the radical-generating divalent cation manganese and deficiencies of antioxidant co factors Cu, Se, Fe, Zn マーク・パーディー
(Mark Purdey)狂牛病関連年表 佐藤雅彦
(Masahiko Satoh)
2002-02-08 [長年日記]
λ. 春学期の復習っぽいことをしている。それから、レポートの恥ずかしい部分を適当に修正して、さりげなく公開したり。
テストとレポートで苦しんだ後の夏休みでは、あえてやろうとは思わなかったけど、今、そういうことをすると何だか落ち着く。
納まるべきところに納めるような感じ。そして忘れる。最後に忘れることで、知識がやっと文脈から解放されて、自分の血肉となったと感じる。
λ. POSIX:2001
.
λ. EXIF and Gimp parasites
EXIFのmetadataをどのように保持するかについての議論が、だいぶ長引いてる模様。全然ついて行けてないけど、とりあえずこの辺。
λ. コメント
以下のようなコメントを貰いました。そう思ってくれる人がいるととても嬉しいです。
dibasのプラグインをダウンロードさせていただきました。例えソースコードが醜くても、プログラムのできない人にとっては『あ、これいいな』といった感覚で作られたものは、とても便利です。今後もがんばってください。
ψ chiko [最後に忘れることで、知識がやっと文脈から解放されて、自分の血肉となったと感じる。 って,いい言葉ですね.ぐっときまし..]
2002-02-10 [長年日記]
λ. だらだらと会社四季報を眺めてみたり。
λ. overflow: scroll;
長い文章を埋め込むのにtextareaエレメントを使っているのを時々見るけどうざい。CSSでoverflow: scroll;
使え。
λ. [Gimp-developer] pluggable tools
Stage 1 of tool plug-ins is complete. That means that loadable modules can be used as tools. An example plug-in (just the color picker hacked to be a plug-in instead of a builtin) is available at
http://students.cs.byu.edu/~rockwlrs/testmodule.tgz
That file should be untarred in your app/tools directory.
λ. 再建計画書
某社の再建計画書を眺める。何で潰れたか全然理解できなかったのだけど、親父にその辺の事情を聞いてようやく理解できた。世の中どこも同じような事してるなぁ。
λ. COM
久しぶりにDelphiのマニュアルを読んだら、3年前くらいは全然わからなかったCOMとかが案外簡単なことに気が付いた。
2002-02-11 [長年日記]
λ. 外部からGimpの機能を利用する
kjanaさんのツッコミにある[ruby-talk 33423]ですが、実際のところ、外部からGimpの機能を利用することは考えてなかったからあまりスマートな方法がないんだよなぁ。(ちなみにGimp-Perlなんかはちゃんとその辺りを考えてあるっぽい)
やるとしたら、Gimp側でdRubyのサーバを起動しておいて、そいつを利用するくらいかなぁ。dRubyのサーバは、メニューの <Toolbox>/Xtns/Ruby-Fu/dRuby Server/Start... から起動できる。自動的に起動するなら、gimp --no-interface --batch '(ruby-fu-druby-server 1 "druby://:7950" "")' とかすれば良い。
それで、あとは以下のようなコードを実行すると。(あ、7950ってポート番号は適当ね。)
require 'gimp/base' require 'drb/drb' DRb.start_service(nil, nil) g = DRbObject.new(nil, 'druby://7950') width = 100 height = 100 old_fg = g.gimp_palette_get_foreground old_bg = g.gimp_palette_get_background img = g.gimp_image_new(width, height, Gimp::RGB) begin img.undo_disable d = g.gimp_layer_new(img, width, height, Gimp::RGBA_IMAGE, "Background", 100, Gimp::NORMAL_MODE) img.add_layer(d, -1) g.gimp_palette_set_background(Gimp::Color.new(255,255,255)) g.gimp_edit_fill(d, Gimp::BG_IMAGE_FILL) d = g.gimp_layer_new(img, width, height, Gimp::RGBA_IMAGE, "BoxLayer", 100, Gimp::NORMAL_MODE) img.add_layer(d, -1) g.gimp_drawable_fill(d, Gimp::TRANS_IMAGE_FILL) g.gimp_rect_select(img, width/4, height/4, width/2, height/2, Gimp::ADD, false, 0) g.gimp_palette_set_foreground(Gimp::Color.new(0,0,255)) g.gimp_bucket_fill(d, Gimp::FG_BUCKET_FILL, Gimp::NORMAL_MODE, 100, 0, false, 0, 0) g.gimp_selection_none(img) g.script_fu_drop_shadow(Gimp::RUN_NONINTERACTIVE, img, d, "8", "8", "5.0", Gimp::Color.new(0,0,0), "70", true) img.active_layer = d g.gimp_palette_set_foreground(Gimp::Color.new(255, 0, 0)) d = g.gimp_text_fontname(img, nil, width/4, height/4, "Ruby!", 0, true, 15, Gimp::PIXELS, "-adobe-utopia-medium-r-normal-*-*-*-*-*-p-*-*") img.flatten filename = '/foo/bar.bmp' g.file_bmp_save(Gimp::RUN_NONINTERACTIVE, img, img.active_drawable, filename, filename) ensure img.delete g.gimp_palette_set_background(old_bg) g.gimp_palette_set_foreground(old_fg) end
λ. drbでのid
で、久しぶりにGimp-Rubyを触っていて、drbのパッチを送るの忘れてた事を思い出した。Gimp-Rubyではidメソッドをオーバーライドしているので、このパッチを当てないと発狂するはず。
咳さんにメールしたら、速攻でCVSにcommitしてくれました。残念ながら次のリリースは未定との事ですが。
diff -urN drb-1.3.4.2.orig/lib/drb/drb.rb drb-1.3.4.2/lib/drb/drb.rb --- drb-1.3.4.2.orig/lib/drb/drb.rb Tue Dec 11 17:23:53 2001 +++ drb-1.3.4.2/lib/drb/drb.rb Mon Feb 11 12:56:37 2002 @@ -24,7 +24,7 @@ end def to_id(obj) - obj.nil? ? nil : obj.id + obj.nil? ? nil : obj.__id__ end end @@ -386,7 +386,7 @@ end def to_id(obj) - return nil if obj.id == front.id + return nil if obj.__id__ == front.__id__ @idconv.to_id(obj) end
λ. SF-ADJUSTMENT
上のコードで、script_fu_drop_shadowを呼び出して初めて気がついたのだけど、SF-ADJUSTMENTはGIMP_PDB_STRINGにマップされてるのね。(gimpのplug-ins/script-fu/script-fu-scripts.c参照) てっきりGIMP_PDB_FLOATだと思っていたぞー。(だから、Ruby-FuでもGIMP_PDB_FLOATにマップしてある) 信じられない!! つーかScript-Fu作った奴は誰だ? いったい何考えてるんだ?
う〜む。Gimp-Ruby側で、GIMP_PDB_STRINGが必要な場所に文字列以外も指定できるようにすべきだろうか? 欝だ。
λ. GIMP 1.3.3
む。
λ. 読書
- 『天国に涙はいらない 4 - 男色一代男』
- 『天国に涙はいらない 5 - 逝き女五枚羽子板』
- 佐藤ケイ[著] さがのあおい[イラスト]
λ. ツッコミメールのMessage-ID
あれ、Message-IDに@mail_headerが入るようになったのか。2002.02.07のtdiary.rb: correct message_id. thanks woods <sodium@da2.so-net.ne.jp>
で仕様が変更になったのかな。Message-IDに使えない文字を@mail_headerが含んでいたので焦った。
λ. 文法の誤解
文法について誤解していたことに気が付いて超ショック。具体的には以下のような記述をしまくっていた。
サブタイトル[改行] 以下のパッチを当ててちょ。[改行] <blockquote><pre>[改行] 〜パッチ〜[改行] </pre></blockquote>[改行]
λ. 直すの面倒だなぁ。上の例で、<blockquote><pre>の前に機械的に改行をもう一つ入れると、以降のセクション番号がずれてしまって、まずい事になるし。となると、「以下のパッチを当ててちょ。」の部分を含めて整形済みにするしかないか……
λ. もし以下のようになっていたらもっと早くに気が付いただろうに。くそぅ。悔しい。
--- tdiary/skel/diary.rhtml~ Thu Jan 24 23:51:29 2002 +++ tdiary/skel/diary.rhtml Mon Feb 11 16:42:38 2002 @@ -9,7 +9,7 @@ if paragraph.subtitle then %> <h3 class="subtitle"><a <% if opt['anchor'] then %>name="p<%= '%02d' % idx %>" <% end %>href="<%= opt['index'] %>?date=<%= @date.strftime( '%Y%m%d' ) %>#p<%= '%02d' % idx %>"><%= opt['paragraph_anchor'] %></a> <% if opt['multi_user'] and paragraph.author then %>[<%= paragraph.author %>]<% end %><%= paragraph.subtitle %></h3><% end - if /^</ =~ paragraph.body then %> + if /\A</ =~ paragraph.body then %> <%= paragraph.body %><% elsif paragraph.subtitle %> <p><%= paragraph.body.collect{|l|l.chomp}.join( "</p>\n<p>" ) %></p><%
λ. 天国に涙はいらない
「天国に涙はいらない」の路線がどこまで続くかは興味のあるところではあるけど、佐藤ケイは別のシリーズを書くつもりはないのかなぁ。
ψ ただただし [うーん、いちおう悩んだ上での仕様なのです……]
ψ さかい [仕様を変更してくれなんて言うつもりはないので御心配無く。(^^;; 今の段落の文法には納得してるっす。]
ψ いっちー [何で GIMP_PDB_FLOAT じゃねーの?って developer-ML に聞いてみては? あ、話しはずれるけ..]
ψ さかい [訊いてみますね。 それから、リスト等のはそもそもScript-Fuから外に持ち出すことが出来ないっす。詳しくはsio..]
ψ いっちー [そーすは読んでもよくわからないけど (LIST がないということ?)、script-fu-grid-system が..]
ψ さかい [ Script-Fuのスクリプトからscript-fu-grid-systemのような関数を呼び出すときに、リストを..]
2002-02-12 [長年日記]
λ. なんか変な夢を見たような気がするが、わすれてしまった。
λ. 読書
- 『少女革命ウテナ 2 - 翠の想い』
- 大河内一楼 [著] ビーパパス・さいとう ちほ [原作] さいとう ちほ[イラスト]
- 『ジャングルはいつもハレのちグゥ 6』
- 金田一蓮十郎[著]
- 『テニスの王子様 12 - 無敵の男』
- 許斐剛[著]
λ. おたく度チェック
というのをやってみた。
(犬死にマグナムトルネードより)
さかいさんお疲れ様でした。あなたの総合おたくパワーは273パワーです! 詳細は次の通りになっています。
結果値
(単位:パワー)マニア度 30パワー 危険度 41パワー 萌え度 35パワー 煩悩度 42パワー さわやか度 66パワー 迷惑度 38パワー 潜在能力 21パワー あなたのマニア度は30パワーです! かなりマニア度は低いですね。何にもこだわらないあなたは、ある意味異常なのかもしれません。この際、色々な物事に関心を持ってみては?
あなたの危険度は41パワー。低い危険度です。人生にはスリルも大事。少し危険なくらいがいいのかも。真面目過ぎるとかえってキケンだったりするのかもしれません。反動っていうのは恐ろしいものですからね。お気を付けを。
あなたの萌え度は35パワー。全然萌えていません。あなたはおそらく「もえるって書いてみて」と言われれば「燃える」と書き、「萌える」なんて言葉は思いつきもしないでしょう。そのような生活をおくっている人にとっては知らない方がいい言葉かもしれません。あなたは十分正常ですから。
あなたのさわやか度は66パワーです。隠れオタクとして十分やっていけるレベルですね。あなたは話さえしなければオタクとバレる事はないでしょう。しかし、下手に話すとボロが出る可能性があります。隠しているのでしたら気を付けましょう。
あなたの迷惑度は38パワー。これは低いですね。あなたは今の所、世間に迷惑をかけるような事はしていませんが他人がどのような事を迷惑だと思うかわかっていません。下手をするとワイドショーや新聞に取り上げられる程の犯罪をおかす可能性すら秘めています。他人の気持ちをきちんと考えて行動しましょうね。
あなたの煩悩度は42パワー。低い煩悩度です。あなたのその無欲の精神は、オタクになるよりも聖人君子になる方がよっぽど向いています。今から方向転換を考えて、歴史の教科書に載る事を目指してみては?
あなたの潜在能力は21パワー。オタクにはなれません。あなたの潜在能力はかなり低い数値です。今はマンガやアニメが好きだったとしても、年を重ねるにしたがって興味は薄れてくるでしょう。それでいいのです。きっと一般社会の方が楽しいですよ。
λ. お昼
みのり邸で広東麺。
λ. GIMP 1.2.3
1.3系と完全に共存出来るようになったらしい。
λ. アドゥレセンス黙示録
少女革命ウテナの劇場版を見た。
そういえば、「ウテナ」の作品群って、ストーリーのディテールは異なっていても、テーマは共通であって、しかもそこで語られている構造は根元的でかなりの普遍性を持っているんだよなぁとふと思った。
それはさておき、他の人も「テメェはサイバーフォーミュラか!!」とかツッコミながら観てたんだろうな。
λ. 文法の誤解
昨日の続き。ほっといてもアレなので、一括して処理してしまう。何故かうまく処理できなかった部分があったので、そこは手作業で。
require './tdiary.rb' def process(paragraph) if /^</ =~ paragraph.body and not /\A</ =~ paragraph.body lines = paragraph.body.split("\n") for i in 0...(lines.length) do break if /\A</ =~ lines[i] lines[i] = '<p>' + lines[i].sub(/\A\s+/, '') + '</p>' end paragraph.instance_eval{ @body = lines.join("\n") } end end TDiary.new(nil, nil).instance_eval{ Dir["#{@data_path}??????"].each{|fname| PStore.new(fname).transaction{|db| db['diary'].each_value{|diary| diary.each_paragraph{|paragraph| process(paragraph) } } } } }
λ. 野蛮な歴史を持つ国
毎日新聞のこの記事、実際の紙面では『さらに、米国が行動を起こす対象は、テロ組織だけでなく「大量破壊兵器を開発したり、野蛮な歴史を持つ国」も含まれると述べ、「これらの国々がテロ組織と結び付けば、自由世界は脅かされる」と警告した。』と続いているのだけど、何でオンライン版ではこの部分が落ちているのだろう。
で、おいおい。大抵の国は「野蛮な歴史」を持っている。特に現在の先進国で「野蛮な歴史」を持たない国など一国も無いと思うぞ。それから、これまで兵器を紛争地帯に散々売りつけて回ってたのは一体どこだと思ってるんだ? 何様のつもりだよ、テメェ。
こんな下らないこと書いてもしょうがないんだろうけど……
2002-02-13 [長年日記]
λ. 表現したい何かがある。でも言葉が見つからない。言葉を探すうちに、表現したかった何かはこぼれ落ちてしまう。
λ. drbはGCを分散化していないはずなので、リモートにまだ参照が残っているオブジェクトがGCされてしまう可能性がある。そういえば、殆んどのオブジェクトはハンドルの整数でしかなくて実体はGimpに管理されているんだよなぁ。で、型チェックとメソッド定義のために別のオブジェクトにラップしてある。こいつらをGCから保護してやるにはどうしたら良いかな。う〜みゅ。重要なのは、ラップした結果のオブジェクトじゃなくて、型とハンドルの整数なので…… そっか、DRbIdConvを差し換えて、それらのオブジェクトを扱う際にはObject#__id__によらない参照にしてしまえば良いのか。Gimp::PDB::Procの場合も名前で参照するようにしてしまうか。
λ. あらかじめURIを決めてgimpを起動しておかなくちゃいけないのもアレだ。解決するには、基本的にはクライアント側でdRubyのサーバを起動しておいて、新しく起動するgimpにURIを渡して向こうから接続させれば良いと思う。常に新規にgimpを起動するとしたらこんな感じか。
module Gimp def start(acl = nil, &block) server = DRb::DRbServer.new(nil, block, acl, GimpDRbIdConv) system('gimp', '--no-interface', '--batch', %Q[(ruby-fu-druby-yield-gimp "#{server.uri}")]) end module_function :start end
λ. 読書
- 『CLAMP学園探偵団 1』
- 『CLAMP学園探偵団 2』
- 『CLAMP学園探偵団 3』
- CLAMP[著]
2002-02-14 [長年日記]
λ. 薔薇を贈る。とりあえず。
λ. スレッドの実装
Ruby Hacking Guide の「スレッド」の項を読んだ。スタックを拡張する部分がちょっと不思議に思っていたのだけど、疑問は氷解。それにしても、どのインタプリタでも大抵こんな実装なのでしょうか?
λ. compile party
いっちーさん主催(?)のコンパイル・パーティ。1.3.3と1.2.3がリリースされたとこだし、これは参加する鹿。
λ. Ruby/DLとGimp-Ruby
rb_dlptr_newという関数があるようなので、Gimp-RubyでGimp::Tile#dataをDL::PtrDataを返すように実装。
rb_dlptr_newにはメモリの解放用の関数を指定できるんだけど、そのコールバック関数にはラップされたメモリへのポインタしかわたされないので、こいつを使ってタイルのリファレンスカウンタを減らしてやる事は出来ない。
一瞬悩んだのだが、PtrDataにTileへの参照を持たせてしまうことにした。こうすれば、PtrDataよりも先にTileが解放される事はなくて、リファレンスカウンタの増減はGimp::Tileの側だけで済ますことが出来る。
λ. 小泉首相: 貸し渋り対策に重点置く考え 財政出動より金融政策
貸し渋り対策ねぇ。
ところで、小泉首相のいうデフレ対策に不良債権の早期処理が含まれているのはどういうことよ? 国民を馬鹿にしてるとしか思えない。
λ. SF-ADJUSTMENT
SF-ADJUSTMENTがGIMP_PDB_STRINGとして扱われている理由だけど、なんとなくわかった気がする。いっちーさんのツッコミにあるように以前はSF-VALUEで扱っていて、SF-VALUEはGIMP_PDB_STRINGとして扱われていた。それでSF-ADJUSTMENTを導入した際に、それまでとの互換性を保つために当面はSF-ADJUSTMENTもGIMP_PDB_STRINGとして扱うことにしたんじゃないのかな。
ψ いっちー [カットアンドペーストのミスって、アナタ...]
2002-02-15 [長年日記]
λ. Gimp-RubyのWin32用バイナリ
ようやく新しい開発環境を手に入れたので、Gimp-RubyのWin32用バイナリを作ってみました。とりあえずα版だと思ってください。以下に感単にインストール方法を書くので、人柱募集中 ♥
- mingw版Rubyのインストール
http://www.ruby-lang.org/~eban/ruby/binaries/mingw/から新しめのrubyのバイナリを持ってきて適当なディレクトリに展開します。Cygwinを使っているなら、Cygwinの/に展開すると良いと思います。 - 設定
まず拡張子.rbをusr\local\bin\rubyw.exeに関連付けします。 次に、gimpが実行ファイルと認識するように環境変数PATHEXTを設定します。 NT系であればコントロールパネルで設定し、 それ以外では起動ドライブのautoexec.batに 「set PATHEXT=.rb」 あるいは 「set PATHEXT=%PATHEXT%;.rb」 という行を追加します。 - Gimp-Rubyのインストール
ruby-gimp-libs-20020215-i386-mingw32.tar.gz をとって来て同じディレクトリに展開します。 - プラグインのインストール
上記のパッケージにはプラグインが含まれていないので、 ruby-gimp-0.6.5.tar.bz2 をとって来て、plug-insディレクトリに含まれる.rbファイルを プラグイン用のディレクトリへコピーしてください。
λ. def文の中の実行文で外部の変数に影響を与えたい (雑記帳 2月14日(木))
確かに参照渡しを利用した値の書き換えが出来ない言語では悩ましいよなぁ。戻り値を使わないなら、後はJavaでやっているようにHolderクラスみたいなのを使うしかなさそうな気がする。確かRinnでの結論は戻り値を使うことだったはず。あと、Ruby/Gtkなんかにも同じ問題があったような……
2002-02-16 [長年日記]
λ. Gimp-Ruby 0.6.6
幾つかバグを見つけたので0.6.6をリリース。バグフィックス以外ではDRbIdConvの差し替えが最も大きな変更のはず。それから、mingw32用のバイナリも用意してあります。
λ. ffcall
news:m38zckodg6.fsf@maedapc.cc.tsukuba.ac.jpを見て、ffcallの事を知った。(ffcall-1.8.tar.gz)
Cでclosureを実現できたり、実行時に返り値の型を決めたり等色々出来るので、rubyのような言語の拡張ライブラリを実装するには何かと便利そうだ。例えばRuby/DLでのコールバック関数の数の制限なんかを無くす事が出来るはず。(もっとも、Ruby/DLはポータビリティを優先しているようなのでffcallのようなものを使うことは無いと思うけどね)
つーか、Bruno Haible って単なるUnicoderだと思ってたけど、他の事もやってたのね。(笑)
そういえば、Delphiにも似たようなのがあったなぁ。MakeObjectInstance()とFreeObjectInstance()だっけ。
2002-02-17 [長年日記]
λ. ffcall
使い方から見て、alloc_trampolineのプロトタイプは「extern __TR_function alloc_trampoline (__TR_function, void*, void*);」ではなくて、「extern __TR_function alloc_trampoline (__TR_function, void**, void*);」であるべきだと思う。
λ. Gimp-Rubyのついでに作っているモジュールがあるので、そいつで試しにtrampolineを使おうとした。でも、trampoline.aをそいつにリンクしようとすると以下のように言われてしまって、リンク結果がスタティック・ライブラリになってしまう。ELFでは、シェアード・ライブラリにスタティック・ライブラリをリンクする事は出来ないのかな……
*** Warning: This library needs some functionality provided by -ltrampoline. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have. *** Warning: libtool could not satisfy all declared inter-library *** dependencies of module librubymod. Therefore, libtool will create *** a static module, that should work as long as the dlopening *** application is linked with the -dlopen flag.
2002-02-18 [長年日記]
λ. 麻雀
某氏らと麻雀。麻雀ははじめてだったけど、わりかし面白い。ただ、役のバリエーションとルールがゴテゴテし過ぎてる気がするなぁ。結局この手のゲームの本質は「確率を信じきれるか」と他のプレイヤーとの駆け引きだけなわけで、複雑なルールはかえって興醒めだと思うのだ。
それから、あんたら濃すぎじゃ。くぁ。
λ. 原発
最近少し事故が多いんじゃない?
ψ けし [なるほど、彼等と麻雀をやったのか(w]
2002-02-19 [長年日記]
λ. 麻雀
今日もほぼ同じメンバーで麻雀。某先生がマージャンゲーム作成を面白がっていたのがわかる気がする。
λ. "Conceptual Mathematics: A First Introduction to Categories" を注文
悩んでいても仕方がないので、とりあえず Conceptual Mathematics: A First Introduction to Categories の方をskysoftで注文。これなら一人で読めそうらしいので。
λ. 高田崇司「公理的集合論による実数論展開」(Takashi Takada, Real Numbers in an Axiomatic Set Theory)
こういうの良いなぁ。
(from 科学哲学ニューズレター No.38 本年度の卒業論文・修士論文特集 from 黒木のなんでも掲示板)
λ. 経済政策は署名運動か?
日経新聞朝刊に「大機小機」というコラム欄があるのだが、そこに「経済政策は署名運動か?」という奇妙なコラムが載っている。インフレターゲッティングを署名運動になぞらえて批判しているが、この批判はむしろ構造改革路線にこそピタリと当てはまる気がするのだ。(皮肉なことに?)
そこで、以下のようなパロディはどうだろう?
平和を実現するためにどうすべきか——。現在においても、この問いへの確実な答えがあるわけではない。しかし、その難題に立ち向かうためには、バランス・オブ・パワーという痛々しい現実を直視する必要がある。好むと好まざるとに関わらず、軍事に精通して戦略を練らなければならない。
戦略の現場においては、「どうあるべきか」という理想像ではなく、「何ができるか」という等身大の実行力が問われる。美しいおとぎ話は足下の国防整備をいたずらに遅滞させて、無益どころか害悪をもたらす場合すらある。
こうしたむき出しの現実論の大局にあるのが平和主義者だ。「平和になる」という願いこそが重要。その志は崇高だ。主流の武器は「戦争反対」という署名運動。確かに世界のすべての人々が平和主義者になれば戦争はなくなるかもしれない。
しかし、歴史は平和主義者の願いを裏切ってきた。平和を切望する欧州諸国の融和政策がナチスの台頭を許したように、祈りだけでは戦争はなくせない。署名運動は啓もう活動としては悪くないが、武器としては威力に欠ける。それが我々の目前にある現実である。
とはいえいつの世にも現実を直視しない人々は多い。例えば我が国の経済学界だ。構造改革主義者がばっこし、それに反論しようものなら「抵抗勢力」といわれる。
そこでその経済学者たちに、構造改革がどうして景気回復につながるのかを聞いてみると、答えられない。軍事戦略なき平和主義者たちのようだ。「どんな手段をつかってもやるしかない」という決意のみが聞こえてくる。
これでは「祈ればかなう」という念力主義でしかない。構造改革でサプライ・サイドが効率化すると需要も増えるそうだ(一体どうして?)。署名運動と大差あるまい。願いは真摯(しんし)でも政策として有効か否かは別問題だろう。
学者であれば自説を説明するのに、きちんと経済学に基づいた理論展開をすべきだ。「構造改革なくして景気回復無し」の根拠を説明してみるがよい。構造改革が目下の問題を悪化させるだけなのをなぜ直視しないのか。日本に関しては不況の原因が本当に構造問題なのか問い直すべきである。
理想像と違うからといって現実から目を背けてはならない。目を背ければ新たなナチスの台頭を許すだけであろう。
2002-02-20 [長年日記]
λ. Gimp-Rubyのembedモジュール
お遊びで作ってるやつ。結局ffcallのtrampolineを使うのは面倒そうなので止めた。代わりに、Ruby/DL方式でコールバック関数をあらかじめ用意しておくことにした。で、サクっと実装。ColorDisplayはdepricatedみたいだし速度的にもRubyじゃきついので、実際に使うとしたらColorSelectorくらいだろう。
インターフェースはまだ固まっていないけど、とりあえず~/.gimp-1.2/ruby/modules/にある.rbファイルをファイル毎に匿名のモジュールでmodule_evelして、それをモジュールとして扱うことにした。例えば、以下のようなファイルを~/.gimp-1.2/ruby/modules/hoge.rbとして置くと、Gimpに標準で入っているカラーセレクターとほぼ同じものになる。う〜む、callbackはダサイな。observer.rbを使うか?
require 'gtk' class TestColorSelection < Gtk::ColorSelection def initialize(r, g, b, callback) super() setcolor(r, g, b) signal_connect('color_changed'){ c = self.get_color callback.call(c[0] * 255, c[1] * 255, c[2] * 255) } end def setcolor(r, g, b, set_current = true) self.set_color([r/255.0, g/255.0, b/255.0]) end end def init @@handle = Gimp::Mod::ColorSelector.register("Gimp-Ruby Test", nil, TestColorSelection) end def unload Gimp::Mod::ColorSelector.unregister(@@handle) if @@handle end module_function :init, :unload
λ. Ruby/GTKのアプリケーションへの組み込み
gtk+のメインループ内でRubyのスレッドを回してあげるために、Ruby/Gtkではg_main_set_poll_func()又はgtk_idle_add()を使ってハンドラーを登録している。
だけど、アプリケーションへの組み込みを考えるならば、Rubyインタプリタが終了したあともgtk+は動き続けている可能性もあるわけで、rb_set_end_proc()を使ってgtk_idle_removes()等を呼ぶ必要がありそうだ。
でも、g_main_set_poll_func()の方を使っている場合はどうしたら良いのだろう?
λ. NFS4 requires UTF-8
いつのまにか、そんな事になってたのね。
λ. 関手の圏
はぅあ。関手(functor)をやっと理解したと思ったら、関手の圏(functor category)なんてのもあるのね。
2002-02-21 [長年日記]
λ. 惰性で徹夜して、それから夕方まで寝てた。最近、こんなのばっか。
λ. 関手の圏 (2)
関手の圏(functor category)を考えると頭がこんがらがって仕方がない。もっと抽象的な考え方を身につける必要があるな。しっかし、数学者の頭の中というのは一体どうなってるんだろうね? ウヒヒ。
それから、充満部分圏(full subcategory)とかもいまいちイメージしにくい。アーベル群の圏は群の充満部分圏(full subcategory)であっても、集合の充満部分圏でないというのもあまりピンとこないなぁ。
3/10前後に勉強の成果を披露しなくてはいけなくなったので、こりゃ遊んでられないか。目標は米田の補題!
λ. 経済政策は署名運動か?
「経済政策は署名運動か?」について一昨日の日記に記述。原文を読んでないと訳分からんと思うけど、ちょっとコメント。
終戦直後の日本のような供給の絶対的な不足が原因のインフレならばともかく、ここで考えられている貨幣的な要因によるインフレは金融政策によって比較的簡単に抑制できる(はず)。金利を上昇させれば良いし、預金準備率の引き上げという強力な手段だってある。
アルゼンチンの問題は、そもそも無理な為替レートの維持と、膨大なドル建ての対外債務が根元にあったわけで、それでペソの切り下げ(予想)にともなってペソ建てでの価格が上昇してるって話でしょ。デフレギャップに苦しんでいる日本経済とは必要な政策が異なって当然。
それから、日本で量的緩和の効果が出てこないってのの理由だけど、インフレターゲッティング論者は「流動性の罠にはまっている」という明瞭な説明を与えているでないの。
λ. 究のドキドキ胸キュン牛丼屋物語
ついに(?)スタート。
2002-02-22 [長年日記]
λ. SF-ADJUSTMENT
いっちーさんが書いているように、どうやらカットアンドペーストのミスが原因だったらしい。おいおい……
λ. 不良債権処理
大手銀行13行の今期の処理額は7兆5000億円前後だそうだ。ところで、デフレが1%進むと不良債権が8兆円くらい増えると何かで見たことがあるんだけど……何で見たかは忘れてしまったので、その辺りの試算とか知ってたら教えてもらえると助かるっす。
ところで、公明党は「不良債権処理を1年で」なんて無責任な事言ってるのね……
2002-02-24 [長年日記]
λ. P=NP問題、本当にP=NPだったらスゲー嫌とか思っている皆さんこんにちは。
λ. お昼
お昼はデニーズ。
λ. あっしゅ♪の徒然日記
わーい。SFCでtDiaryを使っている人が僕の他にもいた。
λ. 借りた本
- 『ゲーテ格言集』
- ゲーテ[著] 高橋健二[編訳]
- 『ブギーポップ・イン・ザ・ミラー - パンドラ』
- 上遠野浩平[著] 緒方剛志[イラスト]
- 『代数学への誘い』
- 佐武一郎[著]
- 群の準同型についてちょっと知りたかったので。
- 『国際金融入門』
- 岩田規久男[著]
- 「日本の経済学者の書いた経済学入門書では岩田の著書が最も読み易かった」という言葉に惹かれて。
- 『アクロイドを殺したのはだれか』
- 原題: Qui a tué Roger Ackroyd?
- ピエール・バイヤール(Pierre Bayard)[著] 大浦康介[訳]
- 小説すばる 2001年12月号
- -
λ. Kali Scheme
Kali Scheme is a distributed implementation of Scheme that permits
efficient transmission of higher-order objects such as closures and
continuations. The integration of distributed communication
facilities within a higher-order programming language engenders a
number of new abstractions and paradigms for distributed computing.
Among these are user-specified load-balancing and migration policies
for threads, incrementally-linked distributed computations, and
parameterized client-server applications.
λ. 夕飯
김치 찌개 (きむち ちげ)
2002-02-25 [長年日記]
λ. 夕方まで起きれませんでした。せっかくボーリングに誘ってもらったのにゴメンね。
λ. ゼータ関数とリーマン予想が酒の肴になるなんて、何と羨ましい。
λ. 君主論
読了。チェーザレ・ボルジアかっちょいー。俺も君主になりてー (違
λ. 『アクロイドを殺したのはだれか』
昨日借りた『アクロイドを殺したのはだれか』に以下のようなくだりがあり苦笑した。ラカンのこの「解決」のどこが論理学的なのだろうか? ラカンが批判されるのも当然である。ラカンやフロイトに傾向した部分を除けばこの本は割と面白かったので、残念だ。
『アクロイド殺害事件』とその読解の中心に見いだされるのは、なるほど、隠された真実ではなくエピメニデスのパラドックスである。これは正式には「クレタ人のエピメニデスは『すべてのクレタ人は嘘つきだ』と言っている」と表現されるものだが、省略して「わたしは嘘をついている」とだけいわれることもある。周知のように、このクレタ人のパラドックスは非常に長いあいだ論理学上の難問とされ、解決不可能なものとみなされてきた。もし私が自分は嘘つきだと言ったとすると、私の言ったことは否定されて、私は真実を言ったことになる。しかし、真実を言ったのなら、私は嘘つきであるはずであり、そうすると私の言ったことは否定され……と議論はかぎりなく循環するのである。
ラカンが示したように*、このパラドックスは解決できないわけではない。そこでの
発話 の主体と発話行為 の主体とを分けて考えればいいのである。「私は嘘をついている」という言葉が発せられるのは、じつは発話と発話行為という二つのレベルにおいてなのであるが、代名詞「私」は二つの主体を凝縮し、一方を他方の背後に押しやってしまう。ところが、この言葉を口にする「私」【発話行為の主体】は「私は嘘をついている」の「私」【発話の主体】とは違うのである。したがって、一方は本当のことを言っているが、もう一方は嘘つきだといいうるのである。しかし、こうしてこのパラドックスが論理学的には解決されたとしても、…(後略)
* このパラドックスについては、拙著 Le Paradoxe du menteur. Sur Laclos, Paris, Minuit, 1993 (『嘘つきのパラドックス——ラクロ編』、パリ、ミニュイ社、一九九三年) を参照のこと。
2002-02-28 [長年日記]
λ. 久しぶりに学校に。
λ. 春休み中の勉強の途中成果?
「春休み中の勉強の途中成果を披露に来てください」と言われてたのに披露できるレベルに達していなかったので、わりと戦々恐々としてたのだけど、結局は雑談。カテゴリ論以外にも、超集合論とか、国語学とチャネル理論とか興味深い話はあったのだけど、印象に残ったのは「General Abstract Nonsense」とか、数学のプラットフォーム争いとかの与太話だったりする。なんか数学のプラットフォーム争いって、どっかの言語戦争とかエディタ戦争に似てる気が……
直和と直積ってカテゴリ論だと双対的なんだね。すごーい。それから、射が写像でない圏というのも順序関係の圏という例でなるほどと思った。カテゴリは幾つかの見方があるみたいだけど、個人的には代数的な面を中心に見ていきたいかな。
竹内君って誰かと思ったら彼か。イメージが違いすぎて気が付かなかった……
λ. 借りた本
- Conceptual Mathematics: A First Introduction to Categories
- F. William Lawvere, Stephen H. Schanuel [著]
- 注文したけどまだ届かないんです、と言ったら貸してくれた
λ. 読書
- 『サクラ大戦 前夜』
- あかほりさとる[著] レッドカンパニー[監修/原案]
λ. Marshalのフォーマットのバージョン
うっかりRuby 1.7のPStoreでファイルを弄ってしまって、そのファイルがRuby 1.6で扱えなくなってしまった。どーしよ。