2007-02-09(金) [長年日記]
■
ラブロマ(1) (アフタヌーンKC)(とよ田 みのる)
(たぶん)第5回、かみさんが1巻だけ買ってきたマンガの続きを、おれが全巻買ってしまうシリーズ〜。ぱふぱふ。
って、またか! 全5巻でよかったよ、もー。
「アフタヌーン」を継続的に読むようになったときには連載も終盤で、ポップなものの絵は(アフタヌーンなのに)下手で、女の子は(アフタヌーンなのに)かわいくないし、萌え要素など(アフタヌーンなのに)いっさいなし。さらっと流して最終回、たいして印象には残っていなかったのだが。
でも1巻から読み直して、その第一印象が大間違いだったことに気づいた。クヤシイ。
あけっぴろげで物怖じしない根岸さんと、彼女に惚れて、心に浮かんだことを意識的にすべて口に出すことにした星野くん(ある意味モヒカン族)のカップルをめぐるラブコメ。というか、「言いたくても言えない」という恋愛モノにありがちな葛藤をすべて排除するとどうなるかという、ある意味「実験マンガ」じゃなかろうか。
葛藤がないからジメジメしないし、舞台の雰囲気も'80〜'90あたりの乾いた感じなので、主人公たちの猛烈なダッシュにぐいぐい引っ張られて、それが楽しい。星野くんの発言はとことんストレートなので、とてもかわいいとは思えなかった根岸さんが、読み進めるうちにどんどんかわいく思えてくる。マンガの力ってすごい。
学園モノなのに、夏休み、テスト、クリスマス、バレンタインデーなどの「イベント」がほぼ1回ずつしかないとか、なんか計算ずくなのかわからない割り切りもいいね。卒業式の回もあるけど本人たちのじゃないし(笑)。おかげでスピード感が失われないうちに最終巻までたどりつける。うまい。
どうも最近かみさんは、この流れを狙って1巻だけ買ってきてるような気がするな。なんだか悔しい(?)ので、さっき実装したamazonプラグインの新機能、isbn_detailでアサマシリンクしておこう。さぁ、全部買って読め。
2007-02-08(木) [長年日記]
■ svnnotify
こないだからまじめにRubyForgeを使うようになって、結果的に開発のためにsvnを使うようになったんだけど(個人的なドキュメント管理にはだいぶ前から使っていた。原稿とか)、まずはcommit logをメールで受け取りたいと。
でも、svnのサンプルに付いてるようなショボいのはいやん、と思ったので調べていたら、RubyForgeのFAQにHow do I get diff emails when I commit code?というのがあった。おお、これこれ。
でもこのまま使ってみるとHTMLメールになっちゃって、W-ZERO3で読めなかったりするものだから、もうちょっとシンプルにしようと思ってsvnnotifyを探すも見つからない。ウロウロしてたらCPANにあった。CPANか〜。
で、久々にCPANをセットアップ中。続きはあとで書く。まぁ、ドキュメントだけあればいいんだが。
続き。
「diffを色付けされたHTMLで受け取りつつ、テキストしか読めないメーラーでも読めるようにしたい」というニーズであれば、post-commitを以下のようにするのが吉なようだ:
#!/bin/sh REPOS="$1" REV="$2" PATH=/usr/bin:/bin:/usr/local/bin PROJECT=/var/svn/hatenagraphup svnnotify --repos-path "$REPOS" --revision "$REV" \ --svnlook /usr/local/bin/svnlook \ --to sho@spc.gr.jp --from `whoami`@rubyforge.org \ --with-diff --subject-cx \ --handler Alternative --alternative HTML::ColorDiff
もちろん、SVN::Notifyだけでなく、SVN::Notify::HTML::ColorDiffやSVN::Notify::Alternativeが必要。
でも、よく考えてみたらHTMLメールなんて別に欲しくないし、そういう整形やら色付けされたリソースは、メールよりもむしろfeedして受け取ったほうが嬉しいよなぁと思い、現状はシンプルにこんな感じとなった:
#!/bin/sh REPOS="$1" REV="$2" PATH=/usr/bin:/bin:/usr/local/bin PROJECT=/var/svn/hatenagraphup svnnotify --repos-path "$REPOS" --revision "$REV" \ --svnlook /usr/local/bin/svnlook \ --to sho@spc.gr.jp --from `whoami`@rubyforge.org \ --with-diff --subject-prefix '[hatenagraphup] ' --subject-cx
これで受け取ったメールからfeedを生成するようなツールを書けばいいじゃんね。つーかそれPla
2007-02-07(水) [長年日記]
■ tDiary: 環境変数とproxyでハマる
最近はWebサービスを使うプラグインが増えてきて、必然的にtDiaryの動いているWebサーバからHTTPリクエストを出すことになるんだが、企業内で運用されてたりするとproxyを経由しなくてはいけない。この手のプラグインのさきがけであるamazon.rbが@options['amazon.proxy']というオプションを持っていたため、これを使いまわすプラグインがあり、「あんまりだ」という話になった。
そこで解決策として、新たに@options['proxy']というオプションを設け、これを共有することにした。HTTP以外のproxyなんて考慮しない大胆な設計。これを「HTTP脳」と名付けよう(余談)。
そうなるとさらに楽をしたくなるもので、GETリクエストしか使わない簡便なWebサービスの場合、open-uriを使ってproxy対応も「お任せ」にしたい。open-uriは環境変数を見てくれるので、@options['proxy']の値を環境変数に設定したらいいのではないか、ということで実装してみた。
まずはENV['HTTP_PROXY']に代入してみたところ、この値を見てくれない。調べてみたらruby-dev:22013という大昔の投稿を発見する。なるほど、たしかに危険だ。
じゃあ、ということでENV['CGI_HTTP_PROXY']を設定したら、proxyへのコネクションを開くところでこんどはInsecure operationなる例外が。これも調べてみると、ENVへのプログラム内部からの代入はすべて「汚染済み」扱いされてしまって、おまけにfronzen状態なのでuntaintもできない、と。そりゃそうか。今日は新発見が多いなぁ。何年Rubyやってんだ、おれ。
というわけで、@options['proxy']は採用するけど、それ以上の楽はできない、ということになりました。とほほ。巻き戻さないと(←ENV['HTTP_PROXY']代入版をcommit済みだったりする)。
◆ yoosee [open-uri のソース見ると opt_proxy が String の時はそれを使うっぽいので open(..]
◆ ただただし [現在の実装がそうなっているんです。それを環境変数に頼ることで不要にし、proxyの存在を気にかけない実装者がいても問..]