昨日も明日も楽しい打ち合わせです。 午前も午後も打ち合わせです。 昨日も (なぜか) たくさんのネタが開拓されました。
(その1) 「越えられない壁」演算子
2ch でお馴染みの
C,C++ > Java > C# >> Perl > Python >>>>>>>>>>>>>>>(越えられない壁)>>>>>>>>>> Ruby
みたいなやつのこと。 確か、Array#<< の逆の操作を行う「>>」があったらどうなるか、 という話題の途中で登場したんだと思った。 優先順位はこのあたり?
+@ -@ * / % + - << >> & | ^ > >= < <= ← このへん <=> == === != =~ !~ && ||
(その2) 「隙間」理論
0-origin のインデックスは要素の隙間についている番号だという、 それ自体はそれなりに一般的な考えかたのこと。 Ruby の「点三つ範囲」は隙間理論で考えたほうがすっきりする。
ary[2...7] |<----------------->| 0 1 2 3 4 5 6 7 8 9 +---+---+---+---+---+---+---+---+---+ | | | | | | | | | | +---+---+---+---+---+---+---+---+---+
しかし ary[3...5] について 「3番目の隙間から5番目の隙間の間にある要素」 とコメントを書いておいたことから著者間で議論が紛糾し、 「じゃあインデックス 0 は何なんだ」と問われて 「そこには特殊な『論理隙間』があるんだよ!」 と強弁したことから「隙間理論」が成立した。
疲れてたせいか、なんか妙にうけた。
(その3) machine epsilon
特定のアーキテクチャで浮動小数点演算をしたとき、 (1 + e) - 1 が 0 にならない e の最小値が machine epsilon。 それが機械イプシロンと訳されていると椎名林檎っぽい *1 ね、というだけのネタ。
※1 漢字二文字 + カタカナならなんでも椎名林檎ぽいという、 激しくナイーブな論理展開。
(20:14)
http://page6.auctions.yahoo.co.jp/jp/auction/f19524674
21264 の 4 発機がありえない値段で出ている。
(20:18)
ファイルが Solaris door かどうか Ruby で判定するコード
class File::Stat S_IFDOOR = 0xD000 def door? mode() & 0xF000 == S_IFDOOR end end def File.door?(path) stat(path).door? end p File.door?('/etc/sysevent/sysevent_door') #=> true
(22:57)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.