diといってもdependency injectionとかではない。
Pythonにはid()という関数があって、オブジェクトの固有値(ID)を取り出すことができる。 ちょうどRubyでいうobject_idメソッドに相当する。
で、今回紹介されているこれは、 その逆を行うdiというライブラリ。di(id)とすると元のオブジェクトを取り出すことができる、 というもの。こっちはObjectSpace._id2ref()に相当する。
が、GCのこととかを考えているわけではないし、純粋にアドレスを整数化したidから 元のアドレスを取り出しているだけ(らしい)ので、 たとえばオブジェクトが解放されて、元々のメモリ領域がOSに返されちゃってたり、 あるいはオブジェクト以外のものに再利用されてたりしたら、 当然、面倒なことが起きる。最悪の場合にはSEGVになる。
とはいえ、idからオブジェクトが取り出せたりすると、デバッグ目的などには便利なこともあるかもしれない。作者も主要な目的はデバッグで他の目的には使えないだろうと書いている。
それなのに、コメント欄は荒れている。
「危険だ」、「こんなライブラリリリースするなんて信じられない」、「weakrefを使えばいいじゃないか」など否定的。そんなに目くじら立てなくても。
Rubiniusの最新ベンチマーク。表の見方がいまいちよくわからないんだけど、 どうもRuby1.8に決して負けない、と言ってるらしい。 ものによってはずっと速いぞ、ということだ。
まあ、ベンチマークを実行できる時点で、相当実装レベルが上がってるんだろうね。 今度はYARV(1.9)と対決していただきたい。
1.9に最近追加されたFiberについて。
とはいえ、これもまだ仕様が揺れているのだった。 今からなくなるってことはないだろうけど、 たとえば「Windowsでは本当にFiberを使う」とか、 実装上の変化もあるだろうし、CroutineからSemi-Coroutineになるとか。
あるいは、Enumerator#nextがあれば、素のFiberは要らないかも、 という考えもよぎっているらしい。
SuperFastHashのPaul Hsiehによる文字列ライブラリ。
高速・安全・高機能ということで、 ちょっと中身を読んでみたいソースである。
無人機(UAV or Drone)の設計図をオープンソースにしている人たちの集うニュースグループに 自機をイランの国旗の色で塗り分けたイラン人からのポストがあった。
自分(たち)がオープンソースにしている技術が、 自分の国家(この場合にはアメリカ)と対立している国家(この場合はイラク)の 武装勢力かもしれない人によって利用されているとしたら どうなんだろうか、という問題提起。
ちなみに「オープンソースの定義」的には禁止できない。
結局、このイラン人、Amir Aalipourくんはテヘランに住む17歳の少年であることが 明らかになったのだが、 だからといってこの問題提起が意味がないわけではない。