2006-05-17 [長年日記]

_ [debian] 入門 Debian パッケージ

やっとこさポチッとな。

_ [ruby] Symbol#[] の出番ですよ。

現実逃避のお供に。 ワンライナーじゃないすけど。

class Symbol
  def to_proc
    Proc.new do |*args|
      args.shift.__send__(self, *args)
    end
  end

  def [](*args)
    args.inject do |car, cdr|
      car.__send__(self, cdr)
    end
  end
end

l = "a	b	c	d	e	f	foo1	foo2	foo3	foo4	foo5	bar1	bar2	bar3	bar4	bar5	baz1	baz2	baz3	baz4	baz5	j	k	l	m	n	o	p"

ary = l.chomp.split(/\t/, -1)
table = [6, 5, 5, 5, 7].map do |i|
  ary.slice!(0, i)
end
head = table.shift
tail = table.pop
:zip[*table].map(&:flatten).each do |r|
  puts((head + r + tail).join("\t"))
end

[追記] .map(&:flatten) が要らねぇ。Array#join.thanks!

_ [rails][javascript] prototype.js

Version: '1.5.0_rc0' なやつ。

     /* Force "Connection: close" for Mozilla browsers to work around
      * a bug where XMLHttpReqeuest sends an incorrect Content-length
      * header. See Mozilla Bugzilla #246651.
      */
     if (this.transport.overrideMimeType)
       requestHeaders.push('Connection', 'close');

これ、Bugzilla#246651 はもう閉じちゃってるような気がするんだけど、 まだ Keep-Alive: に出来ないのかな。periodically_call_remote で頻繁にサーバのご機嫌を伺わないとダメなんだけど、 CLOSE_WAIT なソケットが一杯出来て、あんまりうれしくないなぁ。試しに下 2 行をコメントアウトしてみても、 ちゃんと動いてるようには見える。と言っても、渡すデータによって計算を間違えたりするのかなぁ。改行だけって書いてある?よなぁ。

それよりも、prototype.js ベースでは、サーバ側で何か起こった時に、 クライアントに何かを通知って出来ないかな。:frequency を長くして、:complete なり :success/:failure なりで再接続、 サーバ側は、何か起こるまで Controller#action 内で待機、とか。 ActiveRecord::Observer とかで出来ないかなー。

[]

«前の日記(2006-04-30) 最新 次の日記(2006-06-01)»