Entries

スポンサーサイト

【ruby】Dir.foreach

カレントのファイルをリストする様なとき、Dir.foreachを使うのだが、毎回、毎回パスが".."または"."だったら次へ飛ばす処理を書くのにあきたので、Dir.foreachをoverrideしてみた。class Dir class...

【ruby】class CGI

rubyのclass CGIで違和感を感じるところがある。cgi=CGI.new()で作ったオブジェクトcgiは[]にクエリーのキーを与えると値を返してくれるのだが、クエリーにそのキーがなかった時は、''を返してくところだ。nilを返してくれた方が好み。なので、書き換えてみた。require 'cgi'class CGI module QueryExtension alias :bracket_org :[] def [](key) return nil unless self.has_key?(key) bracket_org(key) end ...

Apache `write': Invalid argument (Errno::EINVAL)

#!/usr/local/bin/rubyrequire 'cgi'STDOUT.binmodefile='xxx.divx' #xxx.divxは、約400Mbyteのファイルで、#実行した環境だと読み込みに数十秒かかる。f=open(file,'rb')buf=f.readf.closecgi=CGI.new()cgi.out('status'=>'OK', 'pragma'=>'no-cache', 'cache-control'=>'no-cache,must-revalidate', 'type'=>'video/divx'){buf}上記実行すると、apacheは以下、ERRを吐いて処理を中断してしまった。C:/Ruby/...

2038年問題 cookieのexpire

昨日書いたスクリプトで、現在時刻から一年後をクッキーの有効期限として設定するところがあったが、'cookie'=>CGI::Cookie::new({'name'=> 'move', 'value'=> 'move', 'expires'=> Time.now + (cgi['flg']=='false' ? year : year*-1)})これ、2037年以降は、動かないのではと思い、簡単な検証スクリプトを書いてみた。#!/usr/local/bin/rubyn=Time.nowzero=n-n.to_imax=2**...

ruby flock

マルチプロセスで一つのファイルに対して書き込みを実行すると、タイミングによっては、問題が発生する。例えば、プロセスAで、以下を実行し、f=open('./hoge.txt','w')f.puts 'aaa'; f.flushf.puts 'aaa'; f.flushf.closeプロセスBで以下を実行したとする。f=open('./hoge.txt','w')f.puts 'bbb'; f.flushf.close時系列的な各行の実行が以下に示す???の順番だった場合、?f=open('./hoge.txt','w') #@プロセスA?f.puts 'aaa';...

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。