zt日記

書いているのは Kazuhiro NISHIYAMA a.k.a. ZnZです。
2001|09|10|11|12|
2002|01|02|03|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|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|
2012|04|05|06|09|

この日記にはツッコミを入れられます。 ツッコミを入れたい日付をクリックすると、フォームが現れます。

xreaでtDiaryを使う方法はxrea.com で tDiary を使う方法インストールメモXREA + tDiary + Namazuをどうぞ。


2003年05月04日(Sun)

[ruby] ^http://.*search.msn.*?(&q|MT)=([^&]*).*

.*?\b(q|MT)の方がよさそう。

[web] HTTP_HOST

14.23 Hostによると空の場合もあるらしい。

[ruby] eval

以下のような処理をするコードでInsecure: can't change global variable valueと出てきて悩んでしまった。
obj = Object.new
def obj.sandbox
  @binding = binding
  @binding.taint
end
obj.sandbox
def obj.eval(str)
  Thread.start {
    $SAFE = 4
    Kernel.eval str, @binding
  }.value
end
obj.eval("s = self")
obj.eval("eval('s')")
この再現用のコードを実行すると行番号が出たので原因はすぐわかったけど、evalでKernel.evalではなくself.evalが呼ばれていたから。

copyright © 2001-2013 ZnZ
Key fingerprint = 6E14 2C9C DBD7 874D 8B3C CAA8 9B58 5538 ED7E 1B73