«前の日記(2006年11月16日) 最新 次の日記(2006年11月18日)» 編集

Matzにっき


2006年11月17日 [長年日記]

_ [原稿] 原稿未承諾

今週の計画だと、今日、もう一本原稿を書いて 「死の原稿ロード」から解放されるはず...だったのだが、 改めて原稿依頼をチェックしてみると、

依頼は受けたが承諾していなかった

フォローアップもなかったし、 これは断ったと見なされてるな。 ま、しょうがない。

一応、編集の人にメールして、 今日は開発の日にしよう。

やった♪

_ [Ruby] class local instance variable

思わず時間に余裕が出来たのと、 今週は全然プログラミングできてなかった抑圧とが 重なって、久々に大物に手をつけてみようという気になる。

今日の料理は「class local instance variable」、 つまり、そのクラスからしか見えないインスタンス変数。 C++のプライベートメンバ変数のようなものだね。

しかし、構造体ベースのC++と違い、 ハッシュベースのRubyでは少々面倒くさい。 Pythonではアンダースコアで始まる属性には クラス名を付加して疑似的にクラスローカルとしているようだが、 それは少々かっこ悪い。

そこで、以下のようにした

  • 名前が_で始まるインスタンス変数(@_fooとか)は クラスローカルインスタンス変数
  • これらはクラス(のアドレス)とシンボルから合成される特殊なシンボル
  • 「:@_foo/Object」で合成したインスタンスが得られる
  • to_sでは「@_foo」が得られる
  • inspectでは「:@_foo/Object」が得られる
  • インスタンス変数として使うと自動的にcbaseからシンボルを合成してアクセスする (ノードが増えた。ささだくんが泣くかな)
  • marshalはこれに対応

ついでに性能向上のため、Symbolをimmediateに戻した。

_ [原稿] WEB+DBマガジン No.36

なんてことを一通り終わった頃、 「やっぱり原稿お願いします」というメールが届く。 えーと、この一日をどう考えればよいのだろうか。

_ なぜ.NETが必要なのか? - @IT

えーと....、.NETの必要性をそうやってひねり出す能力は尊敬する。 正直、羨ましい。いや、妬ましいくらいだ。


«前の日記(2006年11月16日) 最新 次の日記(2006年11月18日)» 編集