Ruby

2005年05月09日 月曜日

RSS配信開始

連休中いろいろがんばったおかげで、この日記のRSSを配信できるようにしました。多分今日の修正で所望の動作をするはず。広瀬さん作のmkdiary.rbのRSS生成パッケージrss.tar.gzを配布しますので、mkdiary.rbをご利用の方はつかってやってください。一応ruby-1.6系でもruby-1.8系でも動きます。(追加するパッケージはuconvもしくはrbuconvのみです。)
ドキュメントもあらかた書いたので、多分インストールできると思いますが、ようわからん人はご連絡ください。

Google自分の日記の名前で検索

Google自分の日記の名前で検索してみると、意外な方面の意外な記事にリンクが貼られていたりしてなかなか面白い。やっぱりGoogleで飛んでくるのだろうか?

ApacheのMIME型とcharset設定のメモ

忘れないようにメモ。RSSの配信に伴って、RSSのMIME型を text/xml ; charset=UTF-8とすることにした。(本来ならtext/xml+rss ; charset=UTF-8だろうけど) .htacessファイルに以下のように設定する。
AddType “text/xml ; charset=UTF-8” rss
XHTML 1.1でもこの辺の問題はあるので、非常に悩ましい。(text/xml+xhtmlとかtext/xml+rssとか言ったMIME型をちゃんとサポートしているものは少ないのです。)

2005年04月29日 金曜日

今日はサーバのメンテなど

今日はしばらくやろうと思っていてできなかった、サーバのメンテを行うことにした。(ゆうじさんも凄い勢いでソフトのメンテやってるし。)
僕がやったのはrubyのアップデート。しばらく放置していた1.8.1からCVS版の1.8枝から先端のものを貰ってきた。(1.8.2のバグフィックス版と言うことで。)インストールの注意点としては、iconv関係がそのままインストールできないため、ちょっとソースの書き換えを要する。その程度。前回までiconv関係でずいぶん悩んだが、今回はすっきり解決。
あとはゆうじさんが行ったApache 2.0.53への追従、必要としていたグラフィックライブラリ系のインストールなど。

2005年04月27日 水曜日

訃報と…

先日の列車事故で直接の知人が亡くなったという話は僕の場合はないけれど、以前より世話になっていたドキュメントを書かれた方がなくなられたそうだ。Matzにっきによると、今回の尼崎の事故で石井 勝さんがなくなられたそうだ。(Object Clubの追悼 BBSあたりも参照のこと。)
石井さんは凄く早い段階でXP(eXtreame Programming)を取り上げて分かりやすい記事を書かれており、OOP(Object Oriented Programming)やDesign Patternに関する記事にも、非常に創意工夫のある記事があって、良く参照させていただいてました。このような事故で素晴らしい技術的な記事を書かれる方がなくなられるのは、非常に残念でならない。これまでたびたび役に立ってくれた記事を書かれたことに関して深い感謝と、ご冥福をお祈りします。
あと今回の訃報で思ったのはまつもとさんの日記にもあるように、自分と同世代の若い、まだこれから先がある人が亡くなったことを聞くのは凄く切ないし、悲しい。それともうこのような年になって、死がそんなに遠いところにはなくなってしまったと言う気がしてならない。
またこのように多くの人に役立つ文書を書かれている人は本当に少なく得難い存在であるし、またその書かれた文書が電子媒体の場合は、著者の死ととも(もしくはそう遠くない将来に)にそれらの文書が失われてしまう(石井さんのページの場合はNiftyとの契約が切れたところで無くなってしまうかもしれない)ことについて、何とか永続性を持たせてあげられないものかと考えてしまう。その人が生きてきた証をなんとか残してあげられないものか… この辺がネット媒体、電子媒体の情報の脆弱な部分かなと思わずにいられないのである。(良い方法があればいいけど。)

2005年04月26日 火曜日

Alexandria

本棚を管理するソフトで良いものがないかなあと思っていたが、Unix Userの05年02月号を読んでいると、Alexandriaというソフトが紹介されていた。Debianな環境に早速インストールである。apt-getでサクッと入るのは何とも気軽なものだ…
さて使おうと思ってAmazonの設定をして、ISBN検索(ASIN検索)を行ったところ、なぜかamazon.comの方に検索に行くようだ。どうやら_うまくLocaleが認識されない模様_。で、ソースを眺めてみた。alexandria/book_providers/amazon.rbをBug Tracker #1633に乗っていたパッチのように書き直し。さらにASINでURLを返すメソッドの返り値をamazon.jpに置き換え。とりあえず、現在のsidに納められているバージョンがsargeに反映されるまで、これで使うことにしよう。
で、ISBNを入力してみたのだが、なかなか良い感じ。サクサク入力するかぁと思いきや、目の前に広がる本の山。バーコードリーダーを買うしかないのかな。やっぱし…

2005年04月15日 金曜日

mkdiary用のAmazon書影表示のためのスクリプト

うちの日記用にAmazon書影表示のためのスクリプトを表示させるフィルタを書いてみた。ざっくりSOAP4Rの例題通り。
内容は[ASIN:0123456789]というパターンがあると、AmazonのASIN検索を行って、書影イメージと著者名(ある場合のみ)と書名に置き換えてくれるというものです。(フィルタ動作するところまでしか試してないけど。)たとえばこんな感じ。
[asin:4906391702]
という文字列を

<div class="amazon">
  <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4906391702/ref=nosim/XXXXXXXXXX-XX/">
    <img src="http://images-jp.amazon.com/images/P/4906391702.09.MZZZZZZZ.jpg" alt="やさしいEmacs‐Lisp講座" title="やさしいEmacs‐Lisp講座">
  </a><br>
  広瀬 雄二 / <a href="http://www.amazon.co.jp/exec/obidos/ASIN/4906391702/ref=nosim/XXXXXXXXXX-XX">やさしいEmacs‐Lisp講座</a>
</div>

と変換する。絵を右に寄せたり、字を変えたりって言うのはclass指定したのでCSSでなんとかなるかなと思っている。(ソースいじってもいいですけど。)
依存するrubyパッケージは、SOAPを用いて通信を行う(クエリーを出す)のでSOAP4Rパッケージと、通信自身がUTF-8で行われるのでuconvパッケージに依存。1.8.1までKconvでUnicode関連の処理ができないこととこのページを書いているサーバにインストールされているnkfが古いので、こういうことになっています。そのうち書き換えるか…多分ruby-1.8系ならSOAP4RだけインストールすればOK。ruby-1.6系にインストールするのは値と大変。僕はもう使ってないので自分で調べてください。
uconvとkconvを併用している理由は、rubyのiconvパッケージのインストールに失敗していることと、うちの日記はISO 2022-JPであるためuconvとkconvを併用せざる得ないため。(SOAP4Rを使ったやりとりはUTF-8だし)しています。なんか大いなる無駄な気がしますが、nkfのラッパーのkconvとかnkfだとUTF-8が使えないし、uconvはEUC−JPとCP932(WindowsのShift-JIS亜種)とUCS-4とUTF-16とUTF-8しか使えない。微妙にEUC-JPしかかぶらないし…
使用上の注意ですが、これを使うにはAmazonのアソシエイト会員(たぶん必須じゃない)とデベロッパー登録をする必要があるので、注意してください。