2007-12-15 [長年日記]

_ DebianDeveloperNews 訳

復帰ポイントが溜まったので、交換すべく……(←違う)

が、レビューがつかないなぁ。久々なので気合入れて仕上げすぎたかな? まぁボチボチと、できることから再開しよう。

Tags: debian ddn

_ Ruby/Rails勉強会@関西-21

行ってきた。会場までたどり着けない自信満々だったので、まんたにさん→あゆさん→てったんという確実な経路を確保……と思ったけど、みんな待ち合わせに脱落しスギで、結局阪急六甲に一番乗り。

受付の準備をして、資料の印刷を手伝って、昼飯食って、受付を手伝って、タイムキーパー。はぁはぁだよ。いやしかし、素晴らしく見晴らしのいい会場だねぇ。 ありがとうございます >> てったん。

まつもとさんはさすがにプレゼンうまいなぁ。時間配分もうまくて、タイムキーパーなんていらない感じ。

Ruby1.9 については、ruby-dev が読んでておもしろいので、できるだけ目を通すようにしてたんだけど、 それでも知らない機能がいっぱいあった。

>> puts open("|cal", "r:UTF-8", &:read)
     12月 2007      
日 月 火 水 木 金 土
                   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 29
30 31               
とか、
>> pr = ->(x){x * x}
=> #<Proc:0xb7c49200@(irb):3 (lambda)>
>> pr.(3)
=> 9
とか。

-> は確かにフォントと傾き具合と催眠術でλに見えるなぁ。

質疑応答でちょっと聞いてみた。以下意訳。

immediate value の freeze は何事もなく self を返すのに、
frozen? が常に false なのはなぜ?

freeze するとインスタンス変数の追加も出来なくなるけど、
immediate value の各値にフリーズの状態を覚えておく余地がない。
freeze がふつうに呼べちゃう方が問題かも?

とのこと(さっそく[ruby-dev:32610]で取り上げてくださっている :-)。何でこんなこと聞いたかというと、

>> CONST1 = ["foo", "bar", "baz"].freeze

みたいなコードを書いて安心しちゃったりするけど、

>> CONST1.first.upcase!

とかは出来ちゃうよ?から始まって、要素もフリーズするには?

>> CONST1.each(&:freeze).all?(&:frozen?)
=> true

よしよし。

>> CONST2 = ["hoge", 1].freeze
>> CONST2.each(&:freeze).all?(&:frozen?)
=> false

なんでー?となったから。しかし、1 とか false とかにインスタンス変数を持てるなんて知らなかったー。

>> class Fixnum; attr_accessor :foo; end
>> 1.foo #=> nil
>> 1.foo = :bar
>> 1.foo #=> :bar
>> 1.instance_variables #=> [:@foo]
>> 2.instance_variables #=> []

へー。ActiveRecord で id に対応する Fixnum に attributes をキャッシュする、とか妄想したり。

(あとで書く)

何か懇親会場までみなさんを引率することになったんだけど、 最初 30 人ぐらいいた人たちが、三の宮の改札では半分以下になってたかも。 もしもはぐれて会場に着くのに苦労した、という人がいたらごめんなさい。 そのままはぐれちゃった人はいなかったよね?

久々の参加でもやっぱり端っこに座ってました。でも今日はみんなで串揚げを食いまくる会だったらしいので、問題なし。

最後は EXCELSIOR CAFFE でお茶してお終い。 okkez さんと、Symbol を作りまくると to_i で Bignum を返すようなものができるのか?を効率悪く確認。

>> s = "a"
>> loop{sym = s.next!.to_sym; break s unless Fixnum === sym.to_i}

みたいな。まぁ Debian は強い子なので、これぐらいではくたばらなかったよ。 途中で止めちゃったけど、Symbol.all_symbols.size で見る(←これまた時間かかりまくり)と、1733nnnn ぐらいまでは作られてた模様。まだまだ Fixnum の範疇だなー。

[]

«前の日記(2007-07-14) 最新 次の日記(2007-12-20)»