2004-05-01 (Sat) [長年日記]
_ 帰省
いつものように、車で帰省。 普通の人とは逆方向(島根→愛知)なので比較的スムーズに 帰れるのだが、子供が二人になって休憩に時間がかかるようになって、9時間近くもかかってしまった。
2004-05-05 (Wed) [長年日記]
_ 初節句
二人目の初節句のお祝いで食事。松江はこういう時に行く店は結構多い。普通の店(わりとひどい)に比べればサービスもそれなり。サービス料もばっちり取られるけど。
_ 生姜紅茶
のどが直らないので、紅茶に生姜の絞り汁を入れたものを飲んだ。 砂糖を入れない方がいいらしいので入れなかったのだが、恐ろしくまずかった。 生姜コーラの飲みやすさを期待していたら大違い。 でもちょっと楽になったかもしれない。
2004-05-06 (Thu) [長年日記]
_ 休み
風邪がひどくなったので今日はお休み。 しかし、子供が一緒だとぜんぜん休めない罠。
_ Net::IMAPの修正
Net::IMAPで、
* 368 FETCH (BODYSTRUCTURE (("TEXT" "PLAIN" ("CHARSET" "iso-8859-1") NIL NIL "7BIT" 808 26 NIL ("INLINE" NIL) NIL)("MESSAGE" "DELIVERY-STATUS" NIL NIL "Delivery error report" "7BIT" 332 NIL ("INLINE" NIL) NIL)("TEXT" "RFC822-HEADERS" ("CHARSET" "US-ASCII") NIL "Undelivered-message headers" "7BIT" 263 9 NIL ("INLINE" NIL) NIL) "REPORT" ("REPORT-TYPE" "delivery-status" "BOUNDARY" "----------=_1083748960-9343-3") NIL NIL))
のようなレスポンスの解析に失敗していたので修正。 しかし、body-fieldsを省略するってのは反則じゃないだろうか。
_ RDのverbatimの先頭の"*"
RDのverbatimの先頭に"*"を使いたい時って、全角の空白とかで逃げるしかないんだっけ。 まつもとさん版は、行頭にタブを使うと次に何が来てもverbatimになった気がするんだけど。
_ covertecのケース
いつの間にか売ってた。 でも、もう2回も落してるしなあ。あ、ケースで傷を隠すという手があるか。
2004-05-07 (Fri) [長年日記]
_ ナショナリズム
CNNのアーロンブラウンが「もし米国だったら、この行為の是非はおいておいて、まず皆が黄色のリボンを玄関に付けて無事帰還を祈るところですがね」というようなことを言ってたのが非常に強く印象に残りました。
[Matzにっき(2004-05-02)のコメントより引用]
ナショナリズムって、国民主義と訳すか、国家主義と訳すか、(あるいは国粋主義と訳すか)で、 ぜんぜん印象が違うよな。 英語のnationalはnativeな人にとってはどういう語感なんだろう。
_ Mono Beta 1
やっとBeta 1リリースがされた模様:)
個人的には、
- Preview C# 2.0 compiler with generics support (gmcs).
- Generics-enabled virtual machine.
このへんがうれしいけど、"MONO EXCLUSIVE!"というマークが気になる。 MicrosoftのVMと互換性がないってこと?
2004-05-10 (Mon) [長年日記]
_ orkut
やまださんにinviteしてもらったのをspamだと思って放置していたっきり、 joinするのを忘れていた。 とりあえず、joinはしてみたけど…。
_ Windows again
再びWindows上での作業。
なぜかWinCVSが使えなくなっていた (起動してもすぐに勝手に終了する)ので、 TortoiseCVS を使ってみることに。 エクスプローラのコンテクストメニューから簡単に使えるのは便利だ。
スペルを覚えにくいのが難点だな。
_ 「+150ml」 vs 「+150g」
会社の自販機でコーラとアクエリアスが増量中なのだが、なぜかコーラは 「+150ml」なのに対し、アクエリアスは「+150g」だ。そもそも内容量の表示から 単位が違うらしい。
2004-05-12 (Wed) [長年日記]
2004-05-13 (Thu) [長年日記]
_ mod_ruby 1.2.0
リリースしました。
_ IBMからEclipseベースの新しいクライアント・フレームワーク
やっぱりそうなるのね。
_ libapache2-mod-ruby.deb
荒木さんにパッケージングしていただいたものをベースに、Apache2に対応した mod_rubyのdebをようやくuploadできた。 すべて荒木さんのおかげです。多謝。
ちなみに、以下のapt-lineでも試せます。
deb http://shugo.net/debian ./
2004-05-14 (Fri) [長年日記]
_ mod_ruby-1.2.0の変更点
NEWS 的な内容か、せめて ChangeLog をウェブから見ることができたら嬉しいのだけれど
[ふぇみにん日記より引用]
とりあえず、1.0.7からの主な変更点を更新情報に追加しました。 1.2.1からは、直前のバージョンからの変更点を記述して行こうと思います。
というか、私が手伝えばいいのかな。:)
[ふぇみにん日記より引用]
ドキュメンテーションは苦手なので、手伝っていただけるなら大歓迎です:)
_ spam
会社の後輩は一日に数通しかspamを受け取ってないらしいので、 もっとコミュニティにコミットしないと、とお説教をしておいた。
_ ウィルキンソン ドライ ジンジャエール
My Human Gets Me Blues で知って買ってみたけど、おいしいけどそんなに生姜の味が強いかなあ、と思ってよく見るとドライの方だった。 *1 無念。
*1 なぜかドライの方が辛くないらしい。知ってて間違えてれば世話ないですね。
2004-05-15 (Sat) [長年日記]
_ ipw2100-0.44
ndiswrapperから移行。 WEPもちゃんと使えるようになったようだ。
hotplugは使ってないので、Makefileで
# CONFIG_IPW2100_LEGACY_FW_LOAD=y
とコメントになっている部分を有効にして、hotplugを使わずにfirmwareをロードするように した。
2004-05-16 (Sun) [長年日記]
_ Linux 2.6.6
CONFIG_INPUT_PCSPKRがnになっていてビープ音が鳴らなくなったりして少しハマったけど、 わりとあっさり動いた。 Software SuspendもOK。 VMwareも普通に動いた。
2004-05-17 (Mon) [長年日記]
_ ウィルキンソン ジンジャエール
やっぱりドライじゃないほうだよねえ。
[AD-HOCKERY DIARYより引用]
というわけで買ってみました。
辛い。うまい。やっぱりドライとはぜんぜん違いますね。
これだけ生姜がキツかったら咽にもいいんだろうか。
2004-05-18 (Tue) [長年日記]
_ C MAGAZINE 2001年12月号「第8回 mod_ruby(2)」
雑誌に書いた記事にC MAGAZINEの連載の最終回への リンクが抜けていたので今更ながら追加した。 連載の最終回というのはそもそもさみしいものだが、今まで誰にもWebへの掲載を 催促されなかったというのもさみしい話である。 きっと、みんな買ってくれてたんだよね。そうだよね。
この回の書き出しで、
私事で恐縮ですが、去る10月1日に初の子が産まれました。(電磁波の影響かどうかはわかりませんが女の子でした。) 出産にも立ち合ったのですが、女の人というのはすごいものですね。以前、建築は男にとっての出産の代償行為である、というような話を物の本で読んだことがありますが、われわれプログラマにとってはプログラミングがそれにあたるのかもしれません。いつかはぜひRubyのようなすばらしいプログラムを生み出したいものです。私の場合、その前に一度水子供養をしないといけませんけれども。
[C MAGAZINE 2001年12月号「第8回 mod_ruby(2)」より引用]
などという面白くもない不適切なジョークを書いてしまったせいで、 まつもとさんの奥さんにご心配をおかけした(本当に私に水子がいると思われたらしい)のも、 今となってはなつかしい思い出だ。
ちなみに、「Rubyのようなすばらしいプログラム」はまだ書けていないけど、子供は二人に なりました。
_ Visual Studio .NET をEmacsキーバインドにする方法
試そうと思ったが、EmacsKeyBinding.vbを使う以前にマクロエクスプローラの 操作で落ちてしまった。 VS.NETを再インストールしてもだめ。
納期も近いし、あきらめるか。
2004-05-19 (Wed) [長年日記]
_ NotSupportedException クラス
.NET Frameworkを使っていると、ちょくちょくこの例外にお目にかかる。
たとえば、Stream.Length プロパティとか。
NotSupportedException Stream から派生したクラスがシークをサポートしていません。
[Stream.Length プロパティより引用]
つまり、StreamのサブクラスでもLengthが実装されてないかもしれないということだ。 こんな設計にされたら、せっかくの静的な型チェックも意味がない。
LengthをStreamから他のクラスに移さないのには何か深遠な理由があるのだろうか。
_ WhiteRabbit [こんにちは。C#のヘジルスバーグはDelphiの設計者でもあったので、VCLのTStreamに似てるのではないでしょ..]
_ shugo [なるほど。 でもどうしてTStreamはそういう設計だったんでしょうね。 弱い型の言語のライブラリを参考にしたからと..]
_ WhiteRabbit [うーん、わかりません。ただ、最初の頃は TStream の継承クラスはシークできるものばかりだったので(TFileS..]
_ 菊池 [んー、OSその物がそうなので、という事では。 Socketを ReadFile / WriteFile でアクセスで..]
_ shudo [JXTA (のJava実装) でも、同じようなフラストレーションを味わったなあ>NotSupportedExcept..]
_ shugo [んー、下のレイヤーに不都合があっても、できるだけそれを隠蔽するのがよいライブラリなんじゃないでしょうか。 CanSe..]
_ shugo [> 同感。 やっぱそうですよねえ。 ちなみにshudoさんは私とは別人です。まぎらわしくてすみません。]
_ 菊池 [>んー、下のレイヤーに不都合があっても、できるだけそれを隠蔽するのがよいライブラリなんじゃないでしょうか。 良..]
_ shugo [菊池さんがそういう(クラスが細分化された)ライブラリをお好きでないというのは理解できる部分もあるのですが(Rubyの..]
2004-05-21 (Fri) [長年日記]
_ レシーバとパラメータの評価順序
今回の投票(Ruby: recv.m(a1, a2, ..., &block) の評価順序が a1, a2, ..., recv, block という順序になって許せるか?)は、左から右へ、の原則が嫌だ、というわけではもちろん無くて、「仕様を無視してでも高速化のためには妥協しても仕方がない」部分かそうでないか、ということだと思っております。で、どっちとも取れなくて悩む。
1+2 で 2,1 と評価されるのは気持ち悪いし、やっぱり recv は先にくるべきかなぁ、と揺れ動く今日この頃。
[だいありーより引用]
まつもとさんと話したら、自分の処理系では評価順序を保証したいけど、言語仕様としては 処理系依存でも許せるかなあ、とおっしゃってました。 あと、メソッド探索に失敗した場合に、引数は評価されるべきかどうかも処理系依存で いいんじゃないかとか。
今の処理系で評価順序を保証しているのは、Satherの影響らしい。
ちなみに、Satherではx < y
はx.is_lt(y)
の糖衣構文で、x > y
は
y.is_lt(x)
のようにオペランドを入れ換えることになっている
*1
のだが、その場合でも評価順序はx -> y
でなければならないと
規定されている。
.NETにはswap命令がないので、babelでは
x: BOOL := 2 > 1;
は、
IL_0000: ldc.i4 2 IL_0005: stloc.1 IL_0006: ldc.i4 1 IL_000b: ldloc.1 IL_000c: call bool class [bscore]'Babel.Base.INT'::'is_lt'(int32, int32) IL_0011: stloc.0
のようになってしまう。 せつない。
*1 したがって、is_ltだけ定義しておけば、is_gtを定義しなくてもよい
2004-05-23 (Sun) [長年日記]
_ 子供の椅子(2)
正解は、右がSTOKKE社製の高い方でした。
ちなみに今回買った安い方の椅子は愛知県犬山市産らしい。 もちろん、近くで見ればぜんぜん製品としての質は違うのだが、価格差を考えると よく出来ていると思う。
_ ムカデ忌避剤
子供が小さいことを考えて、木炭の成分をベースにしたものを通風孔まわりなどに設置。 30日持つらしいけど、梅雨を持ちこたえてくれるかなあ。
2004-05-27 (Thu) [長年日記]
_ 一区切り
とりあえず、最初のベータ版をリリース。 まあ、こんなものだろう、という程度には仕上がったと思う。
今回はペアプログラミングじゃないので、単純なコーディング速度はとても早かった。 もっとも規模がとても小さいせいもあるけど。
_ Rubyレシピブック
まつもとさんに見せてもらった。
へー、高橋さんはModule#attr_accessorが好きなんだ。実は、attr_accessorの導入には 私も一役買ってたり([ruby-list:3970])して。 今このメールを見て、ふと、aliasでattr_なしのreader/writer/accessorがあっても よいんじゃないかなと思った。 クラス・モジュール定義のスコープだったらあまり名前がぶつからない気もする。 どうなんだろう。
で、あおきさんはString#sliceで、ゆうぞうさんはEnumerable#injectか、ふむふむ。 どっちも使ったことないかも。
自分は何だろう。Module#includeかなあ。 しょっちゅうきれいにmixinを使えているかというとそうでもないんですが。
ちなみにまつもとさんはevalだそうです。うーん、evalかあ。
2004-05-28 (Fri) [長年日記]
_ lily 0.1.5 on mod_ruby
ふと思い立って、lily 0.1.5をmod_rubyで動かしてみた。 やはりそのままでは動かなかったので、色々試行錯誤。
基本的に、以下のような変更で動いたようだ。
- へッダの出力にCGI#headerを使用。
- mod_rubyでは$SAFE == 1なのでとにかくuntaint。 (httpd.confに`RubySafeLevel 0'と書くという手もあるけど、modruby.netで使いたい のでなるべく正攻法で対処。)
- mod_rubyでは既存クラスの変更はできない(ほんとはできるけど)ので、 String#to_eucなどをNKF.nkfを直接使用するように変更。 (というか、呼び出し側ではstr.toeucだったりするので現状でも機能してないような)
あと、プラグインはinstance_evalで評価されるようなので、mod_rubyとの相性も 良さそう(Lilyのインスタンス毎に名前空間が独立になるから)なのだが、プラグインで 例外が発生したバックトレースが見にくいので、ちょっといじってみた。
結局、パッチ(diff -u --ignore-all-space --strip-trailing-cr)はこんな感じ。
<URL:/tmp/lilyset-mod_ruby.diff>
CGIでも同じコードで動作するので、できればマージしていただけるとうれしいです (とかいう報告はTrackbackでいいんでしょうか)。
_ helium.ruby-lang.orgがクラックされました
というわけです。ごめんなさい。
_ yoko [東山公園はよく遊びに行ったのですが、 パンダは来たことが無いとおもいます。 めずらしい生き物としてはコアラなんかが有..]
_ shugo [やっぱりそうですか。残念。 コアラは顔がよく見えなくて、子供は何かわかってなかったようです。]