Pythonのイディオム。
List Comprehensionの解説で
results = [(x, y) for x in range(10) for y in range(10) if x + y == 5 if x > y]
という例題がある。そうか、forって複数指定できるんだ。
で、Rubyのメソッドチェーンではこのような複数シーケンスの ネストしたループをストレートに書くことができないことに気がついた。
(1..2).xxxx(1..2)
で、
[1,1],[1,2],[2,1],[2,2]
を返すようなxxxxメソッドがあれば、
(1..10).xxxx(1..10).select{|x,y| x+y == 5}.select{|x,y|x > y}
と書けるんだけど、名前がな。いい名前ないかな。
Rubyのオブジェクトはヒープと呼ばれる複数のメモリ領域のいずれかに所属する。 GCの過程で(保守的なチェックの一環で)ポインタがどのヒープ領域に所属するか をチェックしているところがある。
今までは線形探索をしていたのだが、 ここを二分検索するようにした。 まあ、現時点ではヒープの数はあまり多くならないので メリットはさしてないのだが、今後ひとつひとつのヒープのサイズを小さくすることを 考えているのでそのための下準備として。
ところが、二分検索の基本的なアルゴリズムは理解していたはずなのに なかなかバグが取れない。結構、情けない。
クリスチャン的視点から見たフリーソフトウェア運動。
っていうか、タイトルを見た時にはどういう論理展開するのかと思って読んだのだが、 実は穏当な意見であった。
テレビはダメかもしれん、という話(そのまんま)。
実際、ここ数年テレビを見る時間はぐんぐん減っている。 私の家族も最近はPCを使った情報収集に時間を取られて テレビはあまり見なくなってしまっている。
テレビはもはや時間が余った時に雑学を入力する手段くらいにしかなってなくて、 しかもそれってインターネットで代用可能だったりするんだよね。
やっぱ、2011年にはテレビを捨てることになるのかなあ。
Zed 「ゲットー」 Shawが(CIOに向けて)Rubyの「欠点」について語る。
言語そのものについての欠点の指摘はほとんどないので 言語デザイナーとしては安堵なのだが、欠点のほとんどは私の実装(MRI)の弱点なので そういう意味では涙目である。
やや、根拠が薄いような気もするが(ほんとに遅いのかとか、ほんとにリークするのかとか)、 改善の余地があることについては私も認める。
悔しいので、また手を入れることにする。 一番難しいのはGCだろうか。「保守性によるリーク」や「停止時間」の問題について また考えてみたい。
某雑誌の記事のため写真撮影。 なんか金かけてるよな。
今日はいきつけの本屋さんで立ち読みしているところの撮影だとか。 事前に本屋には許可を取ってあるのだが、 立ち読みしてるところをバシバシとられるのは かなり恥ずかしい。