その日あった事ダス第199週
◇ ううむ。この調子だとまた月に数回しか日記更新しなさそうなだ(汗;
◇ 日曜日に自転車の点検をしてもらいまひた。6ヶ月の無料点検。ついでに亀裂が入ってたグリップを交換して、ズボンのすその巻き込み防止グッズを取り付けてもらったり。満足。
◇
更に RAID 調査。
なんつーか、IDE RAID + Linux という選択肢の時点ですげー狭いね。サーバで使うなら SCSI 買えということなんだろうな^^; とりあえず調べた結果一覧。この前とかなりかぶるが^^;
んー、こうやって比べると、HotSwap は無視した方がよさそうだ。ケースの選択の幅も増えるし^^; となると AMI が一番の候補かなぁ。
◇ と思って PlatHome に問い合わせようと思ったら業務時間過ぎてた。明日問い合わせることにするか。
◇ あと、スラッシュドットJ見て静音PCに興味を持ったがあそこまで手はかけれないし、効果薄そうだ。
◇ 久々に早めに家に帰って居間でテレビを見てたら母親がやってきて「これ見た?」と目の前に封筒を置いた。なんだろうと封筒も確かめずに中の紙を取り出し見てみる。終期の情報処理技術者試験の午前免除のお知らせだった…ってええ!?
◇ 全然ダメだと思ってたんで思いっきり忘れてたんだが、いや実際信じられずに母親の前にノートパソコン持ってきて(無線万歳!)合格番号調べてみたりして。あ、昨日発表だったの? あ、ホントに番号あるや。
◇ でも良く見たら私が秋に受けようかと思ってた試験の午前免除じゃないことが分かってがっくり。
◇ まあこれで今日は幸せに寝れるな^^;
◇ う、いつの間にか来週で200週目やん(汗;
◇ そういやふと思ったんだが、66MHzPCI と 64bitPCI はどういう関係なんだろう? 32bit でも 66MHz ってあるんかな。微妙に混乱中。
◇ ぷらっとに問い合わせてみたが無反応。問い合わせ先を間違ったか? ううむ。
◇ 今日は ruby 日記^^;
◇ 今日のお題。Ruby: Arrayにフィールドをひとつ加えたクラス。
◇ とりあえずさくっと組んでみたのはこんな感じ。
class Foo < Array attr_accessor :meta Array::new.methods.each do |m| if Array::new.respond_to?(m+"!") then eval("def #{m}(*arg,&block); s = self.clone; s.#{m}!(*arg,&block); s; end") end end end
なんとなく危険な気もする。ちなみに、Array::new(1,1).map は動くが、Foo::new(1,1).map は動かない。理由は Array#map がブロックチェックをしているから。
◇ しかしなんで↑のようなことをしないとだめなのかなぁとソースを読んでみたり。とりあえず sort をチェック。
VALUE rb_ary_sort(ary) VALUE ary; { ary = rb_obj_dup(ary); rb_ary_sort_bang(ary); return ary; }
む? rb_obj_clone() じゃなくて rb_obj_dup()? もしかしてと思ってサンプル作成。
class Foo attr_accessr :bar end a = Foo::new a.bar = "bar" p a.clone.bar # => "bar" p a.dup.bar # => nil
うげげ、dup じゃインスタンス変数はコピーしてくれんのか。残念ながら直接 rb_obj_dup() を呼んでいるので、Foo#dup を再定義してもダメ。
◇ ちなみに Foo::new.map.class が Array になるのは別の理由。サンプル。
class Foo < Array end a = Foo::new p a.map.class # => Array p a.collect.class # => Foo
原因は map!,collect,collect! は Array の中で再定義されているのに、map だけそのままだから。Enumerable では両方同じなんだけどなぁ。バグ? 仕様?
◇ ぷらっとオンラインから返事。問い合わせてくれたんかな? 購入することに。送料込みで約13k。
◇
親の携帯にどんどんメールがくると苦情。ドコモじゃないし、最初は「どうせ関係ないメールしかこないんだからほっとけ」と言っておいたのだが、結構頻繁にくるようなので対処することに。
…って暗証番号分からんぞ。変な番号を付けた覚えないんだけど、と契約書を引っ張り出してきて見てその番号を入力するもダメ。…なんでだ?
とりあえず明日J-PHONEショップに行くか。なんとかなるだろ。
◇ www.rubycolor.org かー。おお、これはなかなか面白そうな。普段は全然読んでない ruby-talk の情報も載ってるし。高橋さん一人でやるのは大変だろうなぁ。自分の日記がままならないほど忙しくなければお手伝いしたいのだけど。ruby 関係だし。
◇
昨日の話を元にいくつか ruby-list に質問投げたのだが、やっぱ過去ログに似た話があったのね(苦笑 dup とインスタンス変数で検索していたので見つけられらなかった。まあ、詳細は ML を読んでくだち(ぉ
昨日のアレも大筋ではだいたい合ってた模様。正確には clone を使わずに dup を使って、更に Foo#dup を def dup; s = super; s.meta = @meta; s; end てな感じで再定義すればよかった模様。
◇ ↑関係&とあるバグを自分なりに調査していたおかげで dup でインスタンス変数が複製される/されないクラスの区別がつくようになった。rb_type() して T_OBJECT,T_CLASS,T_MODULE になるオブジェクトは内部にインスタンス変数のテーブルを持ってるけど、それ以外はグローバル領域(?)にまとめて持ってるのね。その辺の絡みなんだろうな、とは思うが残念ながらそれ以上は追いかけられなかった。
◇ どうしようかなぁ。明日も日本橋に行くかなぁ…。給料日もボーナス支給日も来週だからお金ないんだけど^^;
◇ そういや広畑局も 7/11 から ADSL の受付開始。yahooBB はなんか怖かったので結局フレッツにしたのだが、はてさていつ頃開通するかなぁ。準備しとかないと。
このページは基本的にリンクフリーです。