Just another Ruby porter,

〜2004年5月上旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2004-05-01 (Sat)

4月のspam

4580通。やはり4月になると毎年spamも増える。 そろそろサーバ側で対処しないとやばいか。 rimは今のところ制限なしだからいいんだけど。

[名前] libibertyとはなんぞや?

-libertyと書けば一目瞭然。って、すでにコメントがついてるや。


2004-05-02 (Sun)

[PC] COMBOドライブ

買って4ヶ月ほど経つPCのCOMBOドライブで、とりあえずバックアップをDVD-Rに焼こうと思い立つ。 1枚95円で買ったメディアが心配ながら、それだけ安けりゃ失敗してもいいやと Burn4Freeで試したら、何度焼き込もうとしてもメディアを入れろと言われる。 なんか変だなとPCのスペックを確認したら、なんとこのCOMBOドライブのDVDは書き込めないことが判明。 ずっと書けると思っていただけに間抜けだ。というか、買ってすぐに試せって。

明日はドライブを探しに行こう。あ、でも、銀行は休みだっけ?


2004-05-03 (Mon)

[PC] comboドライブ

というわけで、8300円のcomboドライブを買った。しかし、遅い。 もうちょっといいやつを買うべきだったか。


2004-05-04 (Tue)

[Movie] 陰陽師2

予想通りの映画だった。続きはもうないな。


2004-05-05 (Wed)

[Movie] KILL BILL

修羅雪姫かと思った。特典を見たらまさにそうだった。

[TV] 登竜門F

嘉陽愛子へのFAXが「ヨーコサイコー!!」はまずいだろう。 それにしても蒼井そらが歌うとday after tomorrowのmisonoと区別がつかない。 「お世話になっております」には笑った。

さくらんぼブービーと千鳥とハローバイバイが面白かった。 でも一番笑ったのは村上ショージだったかもしれない。


2004-05-06 (Thu)

[PC] Diamondcrysta RDT178V

液晶ディスプレイがなんか暗いような気がするので、新しいディスプレイを買ってみた。 なんか勝手に調整されてすごい楽だ。しかもまぶしいぐらいに明るい。 満足。

[PC] comboドライブ

外付けのUSB接続のcomboドライブが9000円で売ってた。そんなに安いのか? 焼くのはたまにだし、外付けで十分だったという気がしてきた。

[MUA] Thunderbird 0.6

さっそくLinux版をダウンロードして試してみたら、libstdc++.so.5とlibgcc_s.so.1を要求された。 やっぱそうくるか。gcc 3.3.3を作りなおそう。 --disable-sharedをやめれば、libstdc++.so.5は自然にできるので問題ないが、 libgcc_s.so.1は$(prefix)/lib/gcc-lib/<target>/3.3.3/にインストールされるから、 LD_LIBRARY_PATHか何かで指定する必要がある。 thuderbird自体shell scriptだから、ここに入れてしまおう。 これで立ち上がることを確認した。あとはIMAPサーバをなんとかするだけだな。


2004-05-07 (Fri)

[GCC] -mcpuと-mtuneオプション

GCC 3.4.0からは-mcpuオプションはdeprecateになったらしい。 MPlayer 1.0pre4をmakeしてたら

`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.

というメッセージだらけになった。 普通は-marchも同時に指定するから単に削除するだけでよさそう。


2004-05-08 (Sat)

[Mail] 1GBの衝撃! Googleの無料Webメールサービス「Gmail」

レビュー記事。しかし、どうすればベータテスターになれるんだ?

[Ruby] lilyをport 10080で動かす

lily.cfgで

url                 http://localhost:10080/cgi-bin/lily.cgi

のように書いておけばいいようだ。ってことは、 w3mのlocal cgiで動かすには

url                 file:///cgi-bin/lily.cgi

と書くだけでよかったわけだ。


2004-05-09 (Sun)

[Ruby] lilyの高速化

2001年から日記を書き続けているので、1日1ファイルとしても1000以上のファイルが存在する。 試しに lilyに食わせてみると8分かかった。 巷でちらほら言われてる症状を確認した形になった。

一番時間がかかるのはlily.cgiのsortの部分。

@storys.sort! {|f1,f2|
  get_post_time(f1) <=> get_post_time(f2)
}

これを

@storys = @storys.sort_by {|f| get_post_time(f)}

とすれば1分になる。でもまだまだ苦しい。

本家blosxomはどんなもんだろう?

[Perl] Blosxomを試す

3.0がそろそろ出そうだが、lilyが参考にした2.0を試そう。

$datadirだけいじる。http serverは

#! /usr/local/bin/ruby

require 'webrick'

httpd = WEBrick::HTTPServer.new(:DocumentRoot=>".", :Port=>10080)
trap(:INT) do
  httpd.shutdown
end
httpd.start

と簡単なもの。用意したデータは

% find . -name '*.txt' |wc -l
   1120

とやはり1000を越えていた。これで

% time wget -q -O /dev/null http://localhost:10080/bloxsom.cgi

としてみると0.4秒だった。そのくらいの時間ならまったく問題ない。

[Ruby] lilyの.entrydateの更新

blosxom.cgiもsortしてるから、lilyが遅いのは.entrydateのせいだろうか? 試しにget_post_time()をFile::stat(file).mtimeだけにしてみると0.15秒になった。 なるほど。.entrydateの更新をなんとかすればいいわけだな。

dbmあたりで書き換えると

require 'dbm'
def get_post_time(file)
  @dbm ||= DBM.open("#{@datadir}/.entry")
  if @dbm[file]
    mtime = Marshal.load @dbm[file]
  else
    mtime = File::stat(file).mtime
    @dbm[file] = Marshal.dump mtime
  end
  return mtime
end

0.2秒ぐらいになった。あ、排他処理も入れないとやばいな。

まとめると、ファイルの数が多くなると遅くなるのは

  1. sort_byではなくsortを使っている
  2. ファイルのopen/closeの繰り返し
  3. ptimesがHashではなくArray

というあたりが原因。

lily-0.1.4-for-ruby-1.9.diff


2004-05-10 (Mon)

[Mail] MSN?からのメール

最近SubjectにMSNという文字列で始まるメールが頻繁にやってくるけど、これって一体なんだろう? HTMLメールは基本的に中身を見ないから、なんだかさっぱりわからん。 エラーメールもあるみたいだしなあ。

とりあえず、~/.procmailrcを

:0
* ^Subject: MSN 
$SPAMDIR/.

としとこう。

[Mail] ご請求

Subjectに「ご請求」と書かれたメールが来た。 また最終通告かと思ったら、本物だった。 そうか、inetd.co.jpも今月いっぱいか。どうしようかな。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!