〜2004年2月下旬〜
ありがとうございます。 いえいえちゃんと Bloglinesに登録して見てます。
% ruby -rrss/1.0 -e 'print RSS::RDF.new'
で空のRSSが作れることは番長(誰)からの助言でわかったんですが、 中身をどうやって埋めればいいか調べるのが面倒でそのまま忘れてました。
早速と言いたいところだけど、この日記はawkで変換してるからなあ。 そこをなんとかしないと。
titleとlinkぐらいあればよさげだな。 dc:dateはちょっと困る。 作った日のタイムスタンプだと、 過去5日分のタイムスタンプをどこかに覚えておかないといけないし。
いや、5日分作るとか考えずに、rssはその日の分だけにすればいいのか。 どうせ1日1回しか更新しないんだし。
だとすると出来上がったhtmlをrubyでparseしたほうが楽だな。 descriptionも何も考えずにhtmlのまま入れると、 勝手にescapeしてくれるようだし。
というわけで、ad hocな index.rdfをでっちあげてみる。ad hocすぎていやになるくらい。
というわけで、こちらもタイムスタンプを入れた。
ぐぐってみるとdescriptionに全文入れちゃうのは邪道だという意見もある。 まあ、当然だ。全部入れたらsummaryじゃないし、 しかもHTMLとして入れちゃってるんだから、 もう邪道どころか邪悪かもしれない。 やめる気はさらさらないんだけど。
というか、要約するほど書いてないのであった。 一日一回なんだからそのくらいの富豪を大目に見てもらおう。
でも、ちょっと弱気にcontent:encodedを使ってみる( jard.rb)。
1日分だけじゃ物足りないので、前回吐き出したindex.rdfを読んでparseしようと思う。 RSS::Parser.parseを使えばokだけど、 どうも内部的にはutf-8で処理しているらしく、 後から追加する場合はutf-8に変換したほうがよさげだ。
あとは5日分だけ残して要らないitemを消す。 rss.items, channel.items.Seq.lisの各配列を直接いじればできそう。 dc:dateでソートするか。 でも、別々にいじるのはちょっと面倒だな。 それは5日たまってから考えよう。
cygwin-announce MLでOpenSSH 3.8p1が出たことを知る( OpenSSH 3.8p1 )。てゆか、 Cygwinは用意するの早過ぎ 。 それはそれとしてkeep-aliveが使えるようになったのがうれしい。 http://marc.theaimsgroup.com/?l=openssh-unix-dev&m=107764058601617&w=2
* ssh(1) now supports sending application layer keep-alive messages to the server. See ServerAliveInterval in ssh(1) for more information.
会社で試したときになぜかうまくいかなかったんだけど、 そうか、ServerAliveIntervalだったのか。
ServerAliveInterval Sets a timeout interval in seconds after which if no data has been received from the server, ssh will send a message through the encrypted channel to request a response from the server. The default is 0, indicating that these messages will not be sent to the server. This option applies to protocol version 2 only.
この0が原因のようだ。明日試そう。
TCPKeepAliveはdefaultでyesだから、てっきりそれだけでkeep-aliveになると思うよね、普通。でもServerAliveIntervalのdefaultは0だからサーバには何も送られない。これは盲点だ。
というわけで適当にServerAliveIntervalに60(秒)とか0以外の数値を指定してやる必要がある。
なひさんが不用意な摩擦を願ってるらしい(嘘)ので、xmlscanを使ってみよう。 xmlscanをインストールすればRSS Parserは、 勝手にxmlscan使う(優先順位が高い)ようになるので、 RSSを吐くところでわかる。kouさんも
内部的にはutf-8で処理しているのはXMLパーサとしてREXMLを 使っているからでしょう.ちなみに,RSS::RDF#encodingで内部 エンコーディングがわかります.
と おっしゃっているので、確認。
% ruby -rrss/1.0 -e 'p RSS::Parser.parse($<.read).encoding' index.rdf "euc-jp"
なるほど。
しまった。最近ruby-bugsへのspamが通ってるなあ。家のbogofliterでは完全にブロックしてるから気づかなかった。学習させとこ。
めでたく1/4517039に選ばれた。昨日来た「最終通告」のハガキもこれが原因か?タイミングがよすぎ。住所がその当時のものだし。 今度住所を書くときは番地の後にAとかBとか、 どこで書いたものかわかるように追加しとこう。
金券500円ねえ。3ヶ月無料ぐらいかと思ってたんだけど。
この99.97%というのはすごいな。早速 CRM114から試してみよう。 と思ったけどCRM114_Mailfilter_HOWTO.txtを読んで、インストールして終了。 設定はまた明日にしよう。
すっかり忘れていたが、index.rdfにはすでに5日分たまっている。 rss.itemsとchannel.items.Seq.lisを時刻でsortして古いものを削除すればいい。 itemは1日1個とは限らないので、ちょっと面倒だな。 というかsortするまでもなく古い順に並んでいるのであった。
でも考えてみると1日1個のitemにしても全然問題ない。 1日1回の更新なんだから6個になったらshiftするだけで済むじゃん。うーむ。
CRM114_Mailfilter_HOWTO.txtに従って.CSSファイルを作る。 CSSとはCRM114 Sparse Spectraという意味らしい。 まずは空の.CSSファイルを作る。
% mkdir ~/crm; cd ~/crm % cssutil -b -r spam.css % cssutil -b -r nonspam.css % ls -l total 24616 -rw-r--r-- 1 watanabe ruby 12582924 Feb 29 21:44 nonspam.css -rw-r--r-- 1 watanabe ruby 12582924 Feb 29 21:44 spam.css
いきなりでかいね。
and you will have created _empty_ spam.css and nonspam.css files in your current directory (that is, the files are full-size, but contain no information. They'll be full of binary zeroes).
という話なので、これ以上は大きくならないらしい。
Method C - Build And Preload .CSS Files From Fresh Spam and Nonspam If you really feel you must start by preloading some sample spam, copy your most recent 100Kbytes or so of your freshest spam and nonspam into two files in the current directory. These files MUST be named "spamtext.txt" and "nonspamtext.txt" They should NOT contain any base64 encodes or "spammus interruptus", straight ASCII text is preferred. If they do contain such encodes, decode them by hand before you execute this procedure.
この条件を満すファイルを用意するのが結構面倒だなあ。 とりあえず、Method BのPre-LEARNedなファイルで、 ruby-talkの2月分を試してみるとやっぱ散々な結果に。 スクリプトが含まれているとどうしてもspamと認識されやすい。
結論としては学習次第ということで(それは当たり前だ)。