丁稚な日々

Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...

[直前] [最新] [直後] [Top]

May.21,2004 (Fri)

Revision: 1.3 (May.21,2004 12:11)

nadokaさん

_ ところで、先日来SEGV していると言っているスクリプトはnadokaさんだったりします。
たぶん私は世界で最も早く(*1)nadokaさんを常用するようになった人だったりするのですが(ただし現在はまだmadokaちゃんと併用中)、特に問題なく使えてます。問題あったらRubyだから直せるしな!

_ で、coreを吐いてるのはもちろんnadokaさんが悪いんじゃなくてRubyのどっかが悪いのですが、どこなのかなあ。
何しろ数日間動かしておかないと落ちないので困っちゃう。
で、裏を返すと、nadokaさんは数日間動かしっぱなしにしておいてもいちおうけなげに生きているようです。えらいねえ。

CRC16

_ Devlogを見てからふと手元を見ると、いつ書いたか覚えてないがこんなコードがあった。
しかし合ってるのかどうかはよくわからない。

def crc16(data)
  r = 0xFFFF

  data.each_byte do |b|
    r ^= b
    8.times do
      if (r & 1) != 0
        r = ((r >> 1) & 0x7FFF) ^ 0x8408
      else
        r = (r >> 1) & 0x7FFF
      end
    end
  end

  r ^ 0xFFFF
end

付記

(*1) 世界で最も早く
たぶん作者である笹田さんよりも早い :)

May.25,2004 (Tue)

Revision: 1.1 (May.25,2004 20:03)

[mswin32] printf

_ ょゎさんとこの話
mingw32版はmswin32版と同様。bccwin32版は(たぶん)OK。

C:\>type nan.c
#include <math.h>
#include <stdio.h>

main()
{
    printf("%f\n", fmod(0.0, 0.0));
}

C:\>cl nan.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86
Copyright (C) Microsoft Corp 1984-1997. All rights reserved.

nan.c
Microsoft (R) Incremental Linker Version 5.12.8181
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:nan.exe
nan.obj

C:\>nan.exe
-1.#IND00

C:\>

_ というわけなので、自前でsprintf(2)を実装するしかないのです。
誰か頑張れ。

May.27,2004 (Thu)

Revision: 1.1 (May.27,2004 11:57)

[mswin32] NaN

_ 先日の続き。

_ ずっと頭に引っかかっていたのでよくよく考え直してみたら、fmod(x, y)y0だったら、単に定義域エラーであるかもしれない。だからこれは例としてよくない(printfが発狂しているのは事実としても)。
というわけで、絶対にNaNを返す計算式を考えたいんだけど、えーと、何があるかなあ... マクロNANでいいような気もするけど、VC++にはないし。
もっと暇なときに真面目に調べてみよう。

May.30,2004 (Sun)

Revision: 1.4 (May.30,2004 05:18)

クラック

_ CVSの穴を突かれてRubyのサイトが攻撃された、という話。
物理的被害はまだよくわかんない(たいしたことなさげ?)のだけど、対応に割かれる人的資源が本当にもったいない。

_ オープンソース関連が狙われてるところを見ると、意図的にやってるんだろうなあ」って、最近やられてるのはたいていCVSの穴からやられてる(らしい)わけで、そうなると必然的にオープンソース関連のところばかりになるんじゃないでしょうか。

[mswin32] NaN

_ C90でもC99でも、/の第2オペランドが0の場合は未定義、としか書かれていない気がする。うーん。
C90にはNaNあるいは非数という言葉は現れないように見える。見落としていなければ。
C99になると、例えばprintf%fなどでNaNをどう表示するかとか、マクロNANを用意しろとかいう話が出てはくるのだけどね。

_ というわけで、printfが発狂する(というか処理系独自の出力をしている)ことを責めても仕方ないのかもしれない。
0.0で割るとNaNになるだけでも感謝しないといけないのかもなあ。
まあ、結論としては、自前でsprintf相当を実装するしかない、ってのは変わらないんだけど。


被捕捉アンテナ類
[\ay antenna (testing)] [Ant] [Antenna-Julia] [LayserあんてなV2] [nAntenna] [nuance de Antenna] [Rabbit's Antenna] [Read List] [Ruby hotlinks 五月雨版 (るるりん。)] [してたま (私的アンテナ with たまてばこ)] [ただのあんてな] [ちゃらんぽらん] [でこぽんリンク] [なよろアンテナ] [にっきトレーサー] [偽善者あんてな - 2nd season -] [湘南日記放送局(SDB)] [はてなの各アンテナ]