あらまぁ、あなたも2月なの?

2001年2月
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

28日 水曜

「こんなに2月なのって初めてですっ!」は森博嗣氏のサイトとかぶってるらしいので、「あらまぁ、あなたも2月なの?」に変えた。これは来月使おうと思ってたんだけどね。それにしても、最近氏のサイトは見てなかったので全然気が付かなかったよ。(指摘ありがと > ケシゴム)

Ruby/Gimp

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

件のcxpwwwをダウンロードして試したが、このサイトのファイルを表示しようとすると、固まってしまって、あまりテストできなかった。

27日 火曜

Ruby/Gimp

26日 月曜

慶應の総合政策学部に受かってたっす。いぇー! これでもう一年浪人しないですむぜー はっはっはー (←阿呆)

25日 日曜

横国の工学部の試験を受けてきた。センタ試験の受験票を忘れてかなり焦った。

Ruby/Gimp

24日 土曜

Ruby/Gimp

22日 木曜 晴

12時起床。今日はだいぶ温かかった。

http://www.xfree86.org/pipermail/i18n/2001-February/001182.html

非UCS4なwchar_tはinsaneですか。まったく嫌な時代になったもんだ。

ところで、自分が彼らだったら、次のターゲット(笑)は何と言ってもgccだね。XFree86は堕ちたし、あとgccさえ堕とせばCitrusも殺せるんじゃないの? すごい嫌な想像ではあるけどさ。(余談: C++だとwchar_tはライブラリじゃなくてコンパイラ側が提供する型)

Ruby/Gimp

Fu用のダイアログをやっとでっちあげた。だいぶ手間取ってしまった。

21日 水曜

11:30起床。今日はのんびりくつろごう。

Ruby/Gimp

実行時に配列などからva_listを組み立てて関数に渡す…というのはどうやら不可能らしい。gimp_dialog_*をそのままRubyから使えるようにするのは無理か。「Gtk+はQtと違ってC++以外の言語でも使える…」ってのは結局建前でしかないのね。

20日 火曜

慶應の環境情報学部の受験に日吉キャンパスまで行ってきた。小論文で「〜 ビジネスを企画しなさい」ってのは驚きだよ。一体何学部なんだか… なんか、萎えた。帰りは横須賀線でぼけーとしてたら保土ヶ谷駅で4:00頃、緊急停車信号を受信したとの放送が車内に流れた。どうやら、人身事故があったらしい。保土ヶ谷駅から東戸塚駅の方へ600m程の踏切で、2人載ったバイクが東海道線下りの特急と衝突したとのこと。4:30には復旧の見通しと放送があったが、結局復旧したのは4:50だった。待っている間に、THE GHOSTのChapter 1を読み終えた。それにしても、「人身事故」って面白い言葉だ。

イラク空爆

19日 月曜

慶應の総合政策学部の受験に日吉キャンパスまで行ってきた。これまで受けた中では比較的うまく言った気がする。とはいえ倍率は12倍だもんな〜 こんな謎な学部を受験する奴がそんなにいたとは驚きだよ。明日は環境情報学部。

17日 土曜

Parted 1.4.9

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            

HSV ⇔ RGB 変換

GIMP共同掲示板に書き込んだついでにこっちにもメモしておこう。PDBのレベルでは変換機能は提供されていないので、Script-fuで使いたい場合は自分で計算するしかないかも…

以前何かからメモしたんですが、6角錐カラーモデルによる簡単な(?)変換だと、R,G,B,S,Vの値域を[0,1]、Hの値域を[0, 2π]として、以下のような手順になります。

HSV変換

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πを加える

HSV逆変換

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

URLメモ

Ruby/Gimp

PDBとCで別のものに同じ名前を割り当てていて嫌らしい。たとえば、gimp_quitとかね。gimp_quitはPDBでは、gimpを終了する機能に割り当てられているけど、libgimpだとプラグインを終了する機能になってる。kill引数の有無で判断するのは嫌だし、どっちかの名前を変えるしかないな。

16日 金曜

今日は早稲田の入試に行ってきた。家を6:30頃出て、親父の会社が新宿なので、新宿まで一緒に行った。横須賀線の線路脇に気温が表示されている企業の看板があって面白かった。高田の馬場駅からは都営バス。往復300円の臨時乗車券ってのがあって、「合格祈願 2001年 WASEDA」とか書いてあった。試験自体は、取れたはずの問題をだいぶ落としてしまった。時間配分の失敗やら、ちょっとしたミスとか、こだわりすぎとか…一言で言えば、試験慣れしてないって事なんだろうな。英語だけは問題なかったけどね。帰りは高田馬場駅まで歩いた。駅構内の混雑は凄かったが、電車はそれほど混んではいなかった。久しぶりに乗物酔いしてかなり辛かった。戸塚で降りて一休みしてから帰った。

Parted 1.4.9

新しいja.poとUSER.jpが入ってます。

12日 月曜

熱が下がった。まだ少しだるい。

Ruby/Gimp

method_missing方式ではなくて、PDBから引き出した情報を元にeval等を使ってメソッドを定義する方法もあると気が付く。試しにちょっと書いてみたが、なかなら楽しい。;-)

でも、gimp_main以前ではPDBとのインターフェースが初期化されていないので、PDBから定義する場合は、必然的にPLUG_IN_INFOに登録した関数の内で処理を行う事になるので、ちょっと気持ち悪い。ついでに、PDBから定義する場合は、メソッドを定義した時点でのPDBの状態に依存しすぎる。プロシジャが追加/削除された時の事はあえて考えたくない。もっとも、名前が"gimp_"で始まるプロシジャが実行時に追加/削除されるなんて事はないだろうが。

というわけでやはりmethod_missing方式か? そういえば、win32ole拡張モジュールみたいに引数をハッシュで指定ってもやってみたい。

10日 土曜

感冒というのはなかなか的を得た表現だなと感心する。先人は賢いものだね。

Ruby/Gimp

ヤケになってコーディング。基本的な部分は実装できたはず。オブジェクトの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!」として解決。

9日 金曜

風邪ひきました。

8日 木曜

1/27の雪の写真の現像が終ってるはずなのでスリーエフに取りに行った。…が、最悪すぎだ。28以降に取った数枚の写真を除いて、フィルムがマッサラですよ? 一体どういうことですかね? さらに、CD-R書き込みサービスも同じで、しかも解像度1536x1024しかないし、ノイズがてんこ盛りでだ。しかも、CD内を見たらJPEGになってんじゃん。FlashPixじゃなかったのか? 一体どういうことなのか誰か僕に説明しておくれでないかい?

goo.co.jp

ポップコーンの肩を持ちたくはないけどさ、NTT-Xって間抜けだな。しかも、後から難癖を付けるあたりダメすぎ。

XML

BookmarkをXBEL化して、HTML版とVRML版をそれから自動生成したいんだけど、XSLTプロセッサには何を使えば良いのだろう? Xalan? XT? それとも、Rubyとかで直接変換するかね?

7日 水曜

何か切なくて、16時頃まで寝てた。

根拠レス為替予想 (笑)

米国のITバブルもはじけたし、FRBは予想されていた通り0.5%の利下げをした。先行きの不透明感からもうしばらくは円安が進むが、長期的には資金は日本に流入して、円高の方に進むはず。ただ、ブッシュ政権の減税がどれだけ成果を上げるか、また日銀がどういった政策を取るかにはだいぶ依存するはず。一応、ドルを売って円を買おうかな。

6日 火曜

BGSOUNDエレメント 2

4日に書いたのへの追記。やっぱ、スタイルシートかな。「body { background-music: url("BWV578.mid"); }」。

「うんこ」

うむ。良いコメントだ。うしし。

linux-2.4.1

富田様のlinux98-2.4.0-20010127-diffs.bz2を当ててコンパイル/インストール。ReiserFSが取り込まれてて、良い感じ。ところで、ReiserFSやext3をマージする前にジャーナリングのためのフレームワークを作るって話はどうなったんだろう?

OpenVRML

いまさらって感じだが、VRMLをいじってみたかったので一式インストールした。ぐりぐり動いて楽しいが、コンテンツを作るのは大変そうだよな〜

ディスクスペース

とうとう残り1MBを切りました。(@niftyの基本料金で使える10MBのうち、9.1MBほど既に使ってます) カタストロフは近いです。(笑)

FlashPIX

ImageMagicはFpxlib.dllというDLLを使ってFlashPIX形式をサポートするようだ。DLLか〜(嘆息) またlibwineを噛ませるラッパーを作るか、それとも… とは言え、Compound Document ベースだからな〜

autoconf

へえ〜、こういうマクロがあるんだ。

5日 月曜

む。最近、HTMLネタが多いな。

datetime.rb

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の書ける人が羨ましい。

下手糞 -篁阿論的書簽

要するに下手糞プログラムが集めてあるんだけど…爆笑

Aurora

スクリーンショットは素敵だけど、インストールと設定が面倒そうだ。ディトリビューション(Kondara)が対応してくれると嬉しいなり。一応、AVLTree-develとWsLibをインストールして…

IF YOU SKREW EVERYTHING UP

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 /".

4日 日曜 晴

東京理科大の神楽坂キャンパスまで受験しに行ってきた。帰りに、混んでたせいで「お茶の水」で乗り換えに失敗、秋葉原駅まで行ってしまった。つかれた。

BGSOUNDエレメント

阿呆すぎ。せめてもうちょっとマトモな設計を考えられないのかな〜 同じ非標準の拡張なら、<link rel="BGM" href="BWV578.mid" type="audio/midi" title="Fuge g-moll BWV578">みたいな書き方の方が100倍はましでしょ。(OBJECTエレメントでも良いんだけど、OBJECTエレメントにはrelアトリビュートがない)

3日 土曜 晴

rev="made"

<link rev="made" href="mailto:〜">と書くのが普通だが、何で % LinkTypes にmadeは含まれていないんだ? あと、このURIにmailto以外のschemeを指定する事は妥当? メールアドレスが変わったときに全てのファイルを書き換えるのは嫌なので、<link rev="made" href="mailto.html">のように書いておいて、mailto.htmlにメールアドレスとメールを送るときの注意などを書きたい。[追記]フォームメールなんか置くのも良いね

2日 金曜 晴

新しい日記が上に来るようにしてみる。

やっと、国公立の願書が出せた。疲れた。それにしても願書ってのは学校によってフォーマットが違うし、学校毎に同じことを何度も書かなくちゃいけなくて、かったるすぎ。eJapanとか言うくらいなら、これくらいネットで出来るようにしろよな〜

Guash

1月28日に送ったパッチを送りましたが、マージしてもらえました。わーい。ですが、次のバージョンはまだ先のようです。

w3mと、全角文字間のASCIIの扱い

w3mは、全角文字間にASCIIのスペースがあっても無視する。これにはちょっと混乱したが、全く正しい振舞のはずだ。a sequence of white spacesinter-word spacing として扱われるし、日本語(漢字仮名混じりスクリプト)は普通わかち書きしないから、inter-word spacing は無視すべき。

世の中、いたるところに人間の知恵と意志が潜んでいるものだな、と思い感心した。(笑)

1日 木曜 雨

某高校に調査書を受け取りに行った。英語の事をすっかり忘れてて、サボってしまった。

PhotoCD

こないだの土日に撮った写真はPhotoCDにしようと思ってたんだけど、近くのスリーFで「CD-R書き込みサービス」ってのがあったので、それにした。FlashPix形式らしいけど、GIMPってFlashPix形式に対応してたかな…