2001-12-26(水) 8958歩 [長年日記]
■ tDiary 1.3.2
リリースしました。夕べ出そうと思ってたけど、Ruby 1.6.6が出たのでちょっと動作確認などしておりました。問題なかったけど(たぶん)。今年はおそらくこれで最後。
1.3.1からの変更点は以下の通り(スナップショットでの変更点を含む)。
- プラグインの実装
- プラグインのサンプル提供(misc/plugin)
- 最新表示で月をまたぐ
- ツッコミサマリの表示長を2倍に
- ツッコミサマリは新しい方を優先して表示
- ツッコミフォームを、リンク元表示の上に移動
- セクションを囲む<div class="section">を追加
- symlinkで複数日記を運用する場合の負担軽減
- mod_rubyで動かないバグをFIX
- 更新時に呼ばれるプラグインのテスト実装
詳しくはChangeLogを参照。プラグインに関する文書をmisc/plugin/README.htmlとして書いたのでどうぞよろしく。
■ 最後の「更新時に呼ばれるプラグイン」についてちょっと解説。
通常のプラグインは実装者が好きな名前をつけられるんだけど、それを日記記述者がどこかで明示しなくてはならない。何かのイベントをきっかけに呼ばれるコールバックのような仕組みはこれではダメなので、名前を固定する必要がある(もちろんあらかじめ名前を登録するという方法もあるけど、複雑すぎる気がする)。そこで、updateという固定名称のプラグイン呼び出しをshow.rhtmlに埋め込んだ。
じゃあプラグイン実装者はこのupdateを上書きしちゃえばいいかというとそれでは困る。競合するとどれかひとつしか呼ばれなくなってしまうので。そこで、updateはそのままで、@@update_procというArraryなクラス変数にProcオブジェクトを追加してもらうことにしてみた。例えば、きたさんのrecent_listを外部ファイルに出力したいなんて場合はこう書く:
@@update_proc << Proc::new do
open( 'recent_list.html', 'w' ) do |f|
f.write( recent_list )
end
end
このサンプルのままだとHTML的に完結してないとか問題はあるけど、基本的にはこんな感じ。これを応用すると更新情報をrdfで出したり……なんて真似もできるはず。なお、updateは文字列を返しても意味ないので、空文字列を返すように実装されております。
あと、ツッコミがあった時にはupdateは呼ばれない。ツッコミも引っかけたかったら、@modeが'comment'の場合にだけ動作するプラグインを書いて、@headerか@footerに埋め込めばいいので。じゃあなんて更新時は同じやり方ができないんだ、というと、更新時には@headerや@footerを使わないからなのであった(笑)。
でもなー。なんかスマートじゃないんだよ。もっといい方法が思いついたら、この実装はさくっとやめちゃうかも。
2001-12-25(火) 7347歩 [長年日記]
■ WebCamとか
あ、ライトアップされたので、暗くても見えるようになりました。色合いが妖しいです。ちゃんとポーズも取ってます。って、銃口をこっちに向けるなー(笑)。
WebCamと言えば、これ良すぎ。まるで左利きのために作られたかのようなデザインも好感。SPYZ買ってなければぜったい買ってたなー。くー。
そうそう、ホンダは青山のASIMOをWebCamで公開すべきだよ。ときどき誰も操縦してないのに動いちゃったりするといっそうカワユイと思うぞ(怖いだろ)。
あ、そうだ。例の幻のAsumi、「∀sumi」と呼ぶのはどうか(読めねー)。
■ RuBBS
WindowsでProcess::pidが使えないのは困るなー、と思っていたら$$なら使えるという記述が。なんでやねん。確かにWindowsのPIDが取れてるみたい。じゃあこれ使おう。
てぇことは、Process::pidが使えないのは、mswin32版Rubyのバグなんだろうか……? 仕様的にはバグだな、マニュアルの$$の項には「Process.pidと同じ」って書いてあるもんな。帰ったらruby-devに報告しよう。
■ [追記]あ、よかった。直るんですね。まぁ、とりあえずは$$でいいや。なんでツッコめなかったんだろう……。
あう、あおきさんにもツッコまれてしまった。mswin32な話をすっ飛ばしてるのがバレバレだなー(笑)。……と思ったらruby-bugs-jaか。そっちは見てなかった。
2001-12-24(月) 2531歩 [長年日記]
■ ブーツとレインウェア
セールの案内が来ていたので、近所のRS-TAICHIにライディングブーツ(BMW用)を買いに行く。いまはいてるTAKAIはもう10年選手で、モノはいいんだけどさすがに防水性がダメになりすぎたし、BMWに乗るのに赤白黒のトリコロールつーのもなんなので、買い換えだ。
いい加減、こういうものにケチケチする年齢でもなくなったので、ゴアのインナーのヤツにした。SIDIかアルパインスターがよさげだったんだけど、どーもくるぶしがキツい。イタリア物はたいてい吊るしを着られる体型なのが自慢(?)だっただけに、ちょっとショック。靴だけは違うってか。なんとかアルパインのが入りそうだったのでそれをチョイス。古いブーツは処分してもらって、その場ではいて帰ることに。メットもそうだけど、店で処分してもらうと持ち帰る荷物も少ないし、自宅でゴミがでないので、合理的でよろしい。
ついで(?)に、これもいい加減ガタの来ていたレインウェアも買う。これもゴア。やっぱ、ビーマーはゴアを着なくちゃね。といいつつ、BMW純正ウェアを着る気にはならないんだけど。
■ Asumi
やっとリリース撤回のアナウンスが出たもよう。いっしょにKondara ProjectとDigital Factoryの関係も明確化。
アスキーLinuxの速報でデジファクが明確に「出さない」って答えてなかったから、そんな気がしてたので、まぁ、驚きはしないのだが、それにしては、アナウンスが遅すぎると思う。Kondara Projectとしては別に好きな人がやっていけばいいんだから、評判なんて知ったこっちゃないだろう。でも、Kondaraを基盤にして商売しているデジファクがKondaraの評判を落す行為をしちゃいかんだろ、と思うのだ。企業として致命的。もっと広報活動に力を入れるべきだ。
あと、Kondara Projectはもっと積極的にデジファクを頼ってしまっていいんじゃないか。上の文書でも、独立であるように書きつつも、コードフリーズとリリースの間でデジファクが関わることが明言されているという、いささか矛盾を感じる記述になっている。
でもね、リリースマネージメントというのはオープンソースプロジェクトがもっとも苦手にする分野だし、そういう部分を企業にアウトソーシングすることはちっとも恥ずかしいことではないと思うのだ。だから、無理にに両者を分離するのではなく、コミュニティとして「ノリ」重視で開発をガンガン行うプロジェクトと、リリースマネージメントを発揮して商業的にKondaraを支援するデジファクを、Kondaraの両輪としてとらえてしまった方がいいと思う。
いま、MLなんかでデジファクの人がデジファク社員として発言することは滅多にないけど、「こういうところはうちに任せてくれ」とか「この新しいデバイスはうちで検証中」みたいな発言があってもいいと思うんだよね。今って、Kondara Projectのコアメンバーと裏でやりとりされてるから、なんかうさんくささを漂わせてしまっていてマイナス要因になってるでしょう。そういう話をオープンでやって相補補完していることをアピールした方がいいと思うし、かたくなにコミュニティ開発を守るよりよっぽど自然。
Kondaraが好きだからこそ、こう考えます。
■ ところで、実は「Asumi幻版」がいま手元にあるんだけど、入れるべきだろうか(笑)。
■ tDiaryプラグイン
夕べのリンク忘れ。zoeさんのカウントダウン・プラグインとリンク元ランキング。
■ Paragraph#bodyにアクセスしたいなら、これを参考にしてParagraphクラスをいじってしまえば良いのです。evalできりゃ、なんでもアリっすよ(笑)。
■ タイトルリストを別ファイルにというのを読んで、そんなのtitle_list内でファイルを生成すればいいじゃん、と思ったのだが、毎回ファイルに吐き出していたら効率が悪いので、更新のタイミングでのみトリガされるような仕組みが欲しいな、と思った。ちょっとアイデアを練ろう……。
■ 天皇杯
決勝はセレッソvsフロンターレで決まりやね(笑)。集客力は悪そうだけど、こういうのも面白いよな。
◆ きた [うひー. 完成度向上目指して頑張ります.]