Common Lispで使えるHTTPクライアントって何がいいんだろう

http://ja.doukaku.org/comment/685/

Common Lispにはdrakmaという高機能なHTTPクライアントがあるけど…。

(require :drakma)
(drakma:http-request "http://ja.doukaku.org/feeds/comments/" :force-binary nil)

drakman:http-requestは7つの多値を返す。内容、ステータスコード、ヘッダ、URI(リダイレクトでオリジナルとは違うこともある)、ストリーム、t、ステータスの意味("OK"とか)。
内容が文字列だったり整数のvectorだったりするし…。
application/rss+xmlってdrakmaにバイナリデータとみなされてる。

iconv発見

Common Lispnkfみたいなのはないのかと思ったらiconv発見。
(asdf-install:install "iconv")
しても404だったのでweb archiveからとってくる。

http://web.archive.org/http://www.swj.co.jp/~tahara/lisp/lib/iconv_0.2.tar.gz

~/.sbcl/site/以下に展開し、
ln -sf ~/.sbcl/site/iconv/iconv.asd ~/.sbcl/systems/iconv.asd
しておく。

使い方がわからんのでテストを見ると…

(with-tests ()
  (test
   (list #(164 162 164 164 164 166) #())
   (iconv:iconv "UTF-8" "EUC-JP"
                (coerce #(227 129 130 227 129 132 227 129 134)
                        '(vector (unsigned-byte 8))))
   :test #'equalp
   :multiple-values t)

  (test
   (list #(0 63 63 164 164 164 166) #())
   (iconv:iconv "UTF-8" "EUC-JP"
                (coerce #(0 129 130 227 129 132 227 129 134)
                        '(vector (unsigned-byte 8))))
   :test #'equalp
   :multiple-values t)
)

んー、vectorvectorの関数なのかぁ…使いづらそう。
文字列→文字列で文字コード変換できるやつないのかな。

まだまだ実用化への道は通そうだ…

ダウンロード禁止法案逝ってよし

わざとダウンロードさせて違法コピーで逮捕する企業が現れた! コマンド?:らばQ
やっぱりそういうことやる企業が出てくると思った。
日本もダウンロード禁止法ができてしまったら最後、同じことが起こり得る。最悪インターネットが死ぬことになる。利権ヤクザのカスラックならやりかねない。
だから俺もダウンロード禁止法案には断固反対する。