2008-02-21 [長年日記]

_ [debian][debianjp][ddn] DeveloperNews #4

少し前ですが出てました。今回は急にヘビーなのが飛び込んできて、 悪戦苦闘する前の段階のを投げっぱなすという、コーディネータ泣かせな感じで。 コメントに返事しようと思いつつ、サクッとリリースされてしまったという。

_ [ruby][ruby-kansai] 第23回 Ruby/Rails勉強会@関西

全力でサボってしまった。いや、lingr だけチラ見したけど。 okkez 先生がダウンしてるので(お大事に)、演習課題の詳細が分からないんだけど、 空気を読むとこんな感じかな?

f="%3d"
r=1..9
puts"   |"+r.map{|x|f%x}*"","---+"+"-"*27,r.map{|y|f%y+"|"+r.map{|x|f%(x*y)}*""}

読み違えたか。1B縮んだ♪

f="%3d"
r=1..9
puts"  |"+r.map{|x|f%x}*"","--+"+"-"*27,r.map{|y|" #{y}|"+r.map{|x|f%(x*y)}*""}

_ [ruby] tail

-n だけでいいので、Perlメモを参考にして。

BUFSIZE = 4096
LINES = /[^\x0D\x0A]*\x0D?\x0A?/

def tail(file_name, nlines)
  tails = []
  tmp = ""
  File.open(file_name, "rb") do |file|
    blocks = file.stat.size / BUFSIZE
    buf = ""
    blocks.downto(0) do |pos|
      file.seek(BUFSIZE * pos, IO::SEEK_SET)
      file.read(BUFSIZE, buf)
      buf << tmp
      tmp, *lines = buf.scan(LINES)
      lines.pop
      tails.unshift(*lines)
      break if tails.size >= nlines
    end
  end
  tails.unshift(tmp).last(nlines)
end

ここで、buf = "" を buf = "x" * (BUFSIZE + 256) とした方がいいのでは? という指摘を受けたのですが、メモリ確保とか考えるとそういうもんなんでしょうか?あと、なぜか 1.9 だと tail(__FILE__, 1) とかで落ちるんだけど。

縮めて報告だけしておく

本日のツッコミ(全6件) [ツッコミを入れる]
_ noritada (2008-02-21 17:34)

そうですねぇ。結構濃い内容の記事もあるので、ぼくもできるだけ査読とコメントを早めにして翻訳者の反応を待ちたいと思いつつ、今回は (今回も?) なるべくリリースを遅らせないようにするのが精一杯でした。:-( <br> <br>でも、リリース後でも必要な修正や改良はあって然るべきだと思うので、必要なコメントはいつでもいいですよ。:-)

_ あゆ (2008-02-22 09:10)

まんたんと、nov さんならめっさ短いコードかくんだろうなーとかいいつつ演習してました。やはり…(笑)

_ nov (2008-02-22 12:55)

コメントといっても、「箇条書きの前後に文がまたがるのは分かりにくいと思っていたので、すっきりしました。」ぐらいですけどね。 <br>certain とか ensuring とか訳しにくいですよねぇ。

_ nov (2008-02-22 12:56)

いないときにも話題にあがって、うれしい限りです〜。 <br>

_ okkez (2008-02-22 15:46)

ごほごほ。 <br>ご迷惑をおかけしております。 <br>配布資料と問題だけは今日帰ったらアップします。 <br># 次回からは配布資料とスライドは事前にアップしよう

_ nov (2008-02-22 18:02)

迷惑だなんて、そんなことないですよ。無理なさらずに。 <br>

[]