日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 |
「こんなに2月なのって初めてですっ!」は森博嗣氏のサイトとかぶってるらしいので、「あらまぁ、あなたも2月なの?」に変えた。これは来月使おうと思ってたんだけどね。それにしても、最近氏のサイトは見てなかったので全然気が付かなかったよ。(指摘ありがと > ケシゴム)
ruby-ext@ruby-lang.orgと、gimp@lists.hypercore.co.jpにアナウンスした。
出来るバイナリが異様に大きいのに気が付いた。
-r-xr-xr-x 1 root root 824372 Feb 27 18:50 gimp.so -r-xr-xr-x 1 root root 807164 Feb 27 18:50 gimpui.so
まさかと思ってnmしてみると…
000b49b8 d Global_List 0001a6f4 T Init_Array 0001fb34 T Init_Bignum 0009d684 T Init_Comparable 0009ea34 T Init_Dir 00021efc T Init_Enumerable 000230c4 T Init_Exception 0003e248 T Init_File 〜以下略〜
どうやら、librubyがスタティックリンクされているらしい。librubyをダイナミックリンクするようにしたら、妥当なサイズになった。
-rwxr-xr-x 1 susho users 72844 Mar 1 03:02 gimp.so -rwxr-xr-x 1 susho users 52058 Mar 1 03:07 gimpui.so
どう対処すべきかわからなかったけど、一応、こんな感じで応急処置しておこう。
--- /usr/lib/ruby/1.6/i586-linux/rbconfig.rb~ Tue Feb 27 15:42:09 2001 +++ /usr/lib/ruby/1.6/i586-linux/rbconfig.rb Thu Mar 1 03:15:03 2001 @@ -67,7 +67,7 @@ CONFIG["LIBOBJS"] = "" CONFIG["ALLOCA"] = "" CONFIG["XLDFLAGS"] = "" - CONFIG["DLDFLAGS"] = "" + CONFIG["DLDFLAGS"] = "-L/usr/lib" CONFIG["STATIC"] = "" CONFIG["CCDLFLAGS"] = "-fPIC" CONFIG["LDSHARED"] = "gcc -shared"
件のcxpwwwをダウンロードして試したが、このサイトのファイルを表示しようとすると、固まってしまって、あまりテストできなかった。
if ((cc = nstrpbrk( tagdata, "size=", &nn )) == (char *)NULL ) if ((cc = nstrpbrk( tagdata, "SIZE=", &nn )) == (char *)NULL ) if ((cc = nstrpbrk( tagdata, "Size=", &nn )) == (char *)NULL ) return(-1);
慶應の総合政策学部に受かってたっす。いぇー! これでもう一年浪人しないですむぜー はっはっはー (←阿呆)
横国の工学部の試験を受けてきた。センタ試験の受験票を忘れてかなり焦った。
PLUG_IN_INFO.query_proc = lambda { 〜 } PLUG_IN_INFO.run_proc = lambda { |proc_name, *params| 〜 }
class <<PLUG_IN_INFO def query 〜 end def run(proc_name, *params) 〜 end end
12時起床。今日はだいぶ温かかった。
非UCS4なwchar_tはinsane
ですか。まったく嫌な時代になったもんだ。
ところで、自分が彼らだったら、次のターゲット(笑)は何と言ってもgccだね。XFree86は堕ちたし、あとgccさえ堕とせばCitrusも殺せるんじゃないの? すごい嫌な想像ではあるけどさ。(余談: C++だとwchar_tはライブラリじゃなくてコンパイラ側が提供する型)
Fu用のダイアログをやっとでっちあげた。だいぶ手間取ってしまった。
11:30起床。今日はのんびりくつろごう。
実行時に配列などからva_listを組み立てて関数に渡す…というのはどうやら不可能らしい。gimp_dialog_*をそのままRubyから使えるようにするのは無理か。「Gtk+はQtと違ってC++以外の言語でも使える…」ってのは結局建前でしかないのね。
慶應の環境情報学部の受験に日吉キャンパスまで行ってきた。小論文で「〜 ビジネスを企画しなさい」ってのは驚きだよ。一体何学部なんだか… なんか、萎えた。帰りは横須賀線でぼけーとしてたら保土ヶ谷駅で4:00頃、緊急停車信号を受信したとの放送が車内に流れた。どうやら、人身事故があったらしい。保土ヶ谷駅から東戸塚駅の方へ600m程の踏切で、2人載ったバイクが東海道線下りの特急と衝突したとのこと。4:30には復旧の見通しと放送があったが、結局復旧したのは4:50だった。待っている間に、THE GHOSTのChapter 1を読み終えた。それにしても、「人身事故」って面白い言葉だ。
慶應の総合政策学部の受験に日吉キャンパスまで行ってきた。これまで受けた中では比較的うまく言った気がする。とはいえ倍率は12倍だもんな〜 こんな謎な学部を受験する奴がそんなにいたとは驚きだよ。明日は環境情報学部。
ja.poが更新されたのは良いのだが、
#: parted/parted.c:712 msgid "Filesystem " msgstr "ファイルシステム "
となっているために、printで桁がずれてしまう。
(parted) print /dev/hdaの Disk geometry: 0.000-4126.992 メガバイト ディスクラベルの種類: pc98 マイナー 開始 終了 ファイルシステム 名前 フラグ 1 0.066 2047.105 FAT Windows 95 boot 2 2047.105 4094.144 FAT Windows 95 3 4094.145 4126.949 FAT Windows 95
となってしまうが、本来は以下のようになるべきはず。
(parted) print /dev/hdaの Disk geometry: 0.000-4126.992 メガバイト ディスクラベルの種類: pc98 マイナー 開始 終了 Filesystem 名前 フラグ 1 0.066 2047.105 FAT Windows 95 boot 2 2047.105 4094.144 FAT Windows 95 3 4094.145 4126.949 FAT Windows 95
GIMP共同掲示板に書き込んだついでにこっちにもメモしておこう。PDBのレベルでは変換機能は提供されていないので、Script-fuで使いたい場合は自分で計算するしかないかも…
以前何かからメモしたんですが、6角錐カラーモデルによる簡単な(?)変換だと、R,G,B,S,Vの値域を[0,1]、Hの値域を[0, 2π]として、以下のような手順になります。
V = max{R, G, B} i) V = 0 のとき S = 0 H = 不定 ii) V≠0 のとき S = (V - v) / V ただし、v = min{R, G, B} 次にr, g, bを次のように定めて r = (V - R) / (V - v) g = (V - G) / (V - v) b = (V - B) / (V - v) R = Vのとき、H = (π/3)(b - g) G = Vのとき、H = (π/3)(2 + r - b) B = Vのとき、H = (π/3)(4 + g - r) H < 0のときはHに2πを加える
i) S = 0 のとき R = G = B = V ii) S≠0 のとき h = floor(H / (π/3)) ただし、H=2πのときH=0 floor(x)はx以下の最大の整数を与える関数 P = V * (1 - S) Q = V * (1 - S * (H - h)) T = V * (1 - S * (1 - H + h)) h = 0 のとき、R = V, G = T, B = P h = 1 のとき、R = Q, G = V, B = P h = 2 のとき、R = P, G = V, B = T h = 3 のとき、R = P, G = Q, B = V h = 4 のとき、R = T, G = P, B = V h = 5 のとき、R = V, G = P, B = Q
PDBとCで別のものに同じ名前を割り当てていて嫌らしい。たとえば、gimp_quitとかね。gimp_quitはPDBでは、gimpを終了する機能に割り当てられているけど、libgimpだとプラグインを終了する機能になってる。kill引数の有無で判断するのは嫌だし、どっちかの名前を変えるしかないな。
今日は早稲田の入試に行ってきた。家を6:30頃出て、親父の会社が新宿なので、新宿まで一緒に行った。横須賀線の線路脇に気温が表示されている企業の看板があって面白かった。高田の馬場駅からは都営バス。往復300円の臨時乗車券ってのがあって、「合格祈願 2001年 WASEDA」とか書いてあった。試験自体は、取れたはずの問題をだいぶ落としてしまった。時間配分の失敗やら、ちょっとしたミスとか、こだわりすぎとか…一言で言えば、試験慣れしてないって事なんだろうな。英語だけは問題なかったけどね。帰りは高田馬場駅まで歩いた。駅構内の混雑は凄かったが、電車はそれほど混んではいなかった。久しぶりに乗物酔いしてかなり辛かった。戸塚で降りて一休みしてから帰った。
新しいja.poとUSER.jpが入ってます。
熱が下がった。まだ少しだるい。
method_missing方式ではなくて、PDBから引き出した情報を元にeval等を使ってメソッドを定義する方法もあると気が付く。試しにちょっと書いてみたが、なかなら楽しい。;-)
でも、gimp_main以前ではPDBとのインターフェースが初期化されていないので、PDBから定義する場合は、必然的にPLUG_IN_INFOに登録した関数の内で処理を行う事になるので、ちょっと気持ち悪い。ついでに、PDBから定義する場合は、メソッドを定義した時点でのPDBの状態に依存しすぎる。プロシジャが追加/削除された時の事はあえて考えたくない。もっとも、名前が"gimp_"で始まるプロシジャが実行時に追加/削除されるなんて事はないだろうが。
というわけでやはりmethod_missing方式か? そういえば、win32ole拡張モジュールみたいに引数をハッシュで指定ってもやってみたい。
感冒というのはなかなか的を得た表現だなと感心する。先人は賢いものだね。
ヤケになってコーディング。基本的な部分は実装できたはず。オブジェクトのmethod_missingメソッドでそのオブジェクト用のプリフィックスを付けてPDBを呼び出すようになってる。ちょっとアレゲかも。どれどれ何行くらい書いたかな?
[susho@localhost ruby-gimp]% find . \( -type f \) -exec cat {} \; | wc -l 2081
おぉ、2081行なんて。一度にこんなに書いたの初めてだぞー しかし、extconf.rbが動いてくれなくてコンパイル出来ない。(T_T)
[susho@localhost gimp]% ruby extconf.rb checking for gimp_main() in -lgimp... no [susho@localhost gimp]% cat extconf.rb require 'mkmf' if have_library("gimp", "gimp_main") and have_header("libgimp/gimp.h") create_makefile("gimp") end
何がいけないんでしょうかね〜 (睡眠) そうか! PLUG_IN_INFOが無いからリンクに失敗してるんだ! have_libraryを置き換えて解決。今度は、「checking for libgimp/gimp.h... no」と言われてしまうが、これは/usr/lib/glib/include/glibconfig.hの#includeに失敗してるせいだろうと思い「$CFLAGS += ' ' + IO::popen('gimp-config --cflags').read().chomp!」として解決。
風邪ひきました。
1/27の雪の写真の現像が終ってるはずなのでスリーエフに取りに行った。…が、最悪すぎだ。28以降に取った数枚の写真を除いて、フィルムがマッサラですよ? 一体どういうことですかね? さらに、CD-R書き込みサービスも同じで、しかも解像度1536x1024しかないし、ノイズがてんこ盛りでだ。しかも、CD内を見たらJPEGになってんじゃん。FlashPixじゃなかったのか? 一体どういうことなのか誰か僕に説明しておくれでないかい?
ポップコーンの肩を持ちたくはないけどさ、NTT-Xって間抜けだな。しかも、後から難癖を付けるあたりダメすぎ。
BookmarkをXBEL化して、HTML版とVRML版をそれから自動生成したいんだけど、XSLTプロセッサには何を使えば良いのだろう? Xalan? XT? それとも、Rubyとかで直接変換するかね?
何か切なくて、16時頃まで寝てた。
米国のITバブルもはじけたし、FRBは予想されていた通り0.5%の利下げをした。先行きの不透明感からもうしばらくは円安が進むが、長期的には資金は日本に流入して、円高の方に進むはず。ただ、ブッシュ政権の減税がどれだけ成果を上げるか、また日銀がどういった政策を取るかにはだいぶ依存するはず。一応、ドルを売って円を買おうかな。
4日に書いたのへの追記。やっぱ、スタイルシートかな。「body { background-music: url("BWV578.mid"); }」。
うむ。良いコメントだ。うしし。
富田様のlinux98-2.4.0-20010127-diffs.bz2を当ててコンパイル/インストール。ReiserFSが取り込まれてて、良い感じ。ところで、ReiserFSやext3をマージする前にジャーナリングのためのフレームワークを作るって話はどうなったんだろう?
いまさらって感じだが、VRMLをいじってみたかったので一式インストールした。ぐりぐり動いて楽しいが、コンテンツを作るのは大変そうだよな〜
とうとう残り1MBを切りました。(@niftyの基本料金で使える10MBのうち、9.1MBほど既に使ってます) カタストロフは近いです。(笑)
ImageMagicはFpxlib.dllというDLLを使ってFlashPIX形式をサポートするようだ。DLLか〜(嘆息) またlibwineを噛ませるラッパーを作るか、それとも… とは言え、Compound Document ベースだからな〜
へえ〜、こういうマクロがあるんだ。
む。最近、HTMLネタが多いな。
HTMLで%datetimeを頻繁に書くけど、手で書くのは面倒だ。適当に挿入してくれないかな〜 「date "+%Y-%m-%dT%T%z"」だと「2001-02-04T21:02:21+0900」のような文字列になって、タイムゾーン内の「:」が入らない。う〜む。Rubyでこんな感じかな。('%z'ってマニュアルに書いてなかったから環境依存かも。まあ、動くからいいや。) あとは「C-u M-! datetime.rb」。「2001-02-05T20:48:17+09:00」。適当なキーにバインドしとこ。
#!/usr/bin/ruby z = Time.now.strftime('%z') z[3, 0] = ':' print(Time.now.strftime('%Y-%m-%dT%X'), z)
とはいえ、これくらいEmacsの中で完結させたいよな〜 elispの書ける人が羨ましい。
要するに下手糞プログラムが集めてあるんだけど…爆笑。
スクリーンショットは素敵だけど、インストールと設定が面倒そうだ。ディトリビューション(Kondara)が対応してくれると嬉しいなり。一応、AVLTree-develとWsLibをインストールして…
AuroraのREADMEにはこんな事も書いてある。何かあったときのためにここにメモしとこ。
IF YOU SKREW EVERYTHING UP: Do not panic. Reboot your computer. On the boot-command-line, enter the kernel parameter "init=/bin/sh". You will, afterkernel boot, be dumped into a shell with the root mounted read-only. Remount the root read/write with the command "/bin/mount -w -o remount /".
東京理科大の神楽坂キャンパスまで受験しに行ってきた。帰りに、混んでたせいで「お茶の水」で乗り換えに失敗、秋葉原駅まで行ってしまった。つかれた。
阿呆すぎ。せめてもうちょっとマトモな設計を考えられないのかな〜 同じ非標準の拡張なら、<link rel="BGM" href="BWV578.mid" type="audio/midi" title="Fuge g-moll BWV578">みたいな書き方の方が100倍はましでしょ。(OBJECTエレメントでも良いんだけど、OBJECTエレメントにはrelアトリビュートがない)
<link rev="made" href="mailto:〜">と書くのが普通だが、何で % LinkTypes にmadeは含まれていないんだ? あと、このURIにmailto以外のschemeを指定する事は妥当? メールアドレスが変わったときに全てのファイルを書き換えるのは嫌なので、<link rev="made" href="mailto.html">のように書いておいて、mailto.htmlにメールアドレスとメールを送るときの注意などを書きたい。[追記]フォームメールなんか置くのも良いね
新しい日記が上に来るようにしてみる。
やっと、国公立の願書が出せた。疲れた。それにしても願書ってのは学校によってフォーマットが違うし、学校毎に同じことを何度も書かなくちゃいけなくて、かったるすぎ。eJapanとか言うくらいなら、これくらいネットで出来るようにしろよな〜
1月28日に送ったパッチを送りましたが、マージしてもらえました。わーい。ですが、次のバージョンはまだ先のようです。
w3mは、全角文字間にASCIIのスペースがあっても無視する。これにはちょっと混乱したが、全く正しい振舞のはずだ。a sequence of white spaces は inter-word spacing として扱われるし、日本語(漢字仮名混じりスクリプト)は普通わかち書きしないから、inter-word spacing は無視すべき。
世の中、いたるところに人間の知恵と意志が潜んでいるものだな、と思い感心した。(笑)
某高校に調査書を受け取りに行った。英語の事をすっかり忘れてて、サボってしまった。
こないだの土日に撮った写真はPhotoCDにしようと思ってたんだけど、近くのスリーFで「CD-R書き込みサービス」ってのがあったので、それにした。FlashPix形式らしいけど、GIMPってFlashPix形式に対応してたかな…