history

青木日記 RSS

<前の日 | この月 | 次の日>

2004-05-02

Rubyレシピブック

昨日も明日も楽しい打ち合わせです。 午前も午後も打ち合わせです。 昨日も (なぜか) たくさんのネタが開拓されました。

(その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)

AlphaServer ES40

http://page6.auctions.yahoo.co.jp/jp/auction/f19524674

21264 の 4 発機がありえない値段で出ている。

(20:18)

Solaris door

ファイルが 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)

キャベツ

知っていたか!

半分に切ったキャベツでさえ、長く放っておくと成長することを……

(01:49)

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS