>ふと
>memcached
> の
>プロトコル
>を調べたが、ちょお簡単だった。 HaskellNet に実装しようかな。でも HaskellNet のカバーする範疇とはちょっと違うかなあ。
>
>簡単なので解説する。 memcached へは TCP でコネクションを張る(コネクションは必要なたびに接続しなおすのではなく、一回つないで使いまわすことを推奨している)。クライアントが使えるコマンドは、set、add、replace、get、delete、incr、decr、stats、version、quit。
>
>set、add、replace はデータを memcached に送り込む命令。 add はキーを新規作成しデータに対応づけるので、すでにキーがあるとエラー。 replace は既存のキーに対応するデータを置き換えるため、キーがないとエラー。 set はなければ作り、あったら置き換えるのでエラーはない。
>
>この3つのコマンドは、まず空白で区切られる4つの値を引数に与え、 crlf を与えてからデータを与え、 crlf を与える。つまり書式は次のような感じ。
>
>cmd key flags expire bytes\r\n
DATA\r\n
>
>key は任意の文字列で、これがキーになる(ただし空白などは含められない?)。 flags は適当な数値を与える。 memcached 側はキーに対応して覚えているだけで意味は斟酌しない。クライアントが適当に意味付けして使ってよい。 expire は期限切れまでの時間で、これを過ぎるとキーに対応するデータは消滅する。 expire は秒単位の数値で指定するが、30日以内の数値であれば「現在時刻から何秒後か」を意味し、それより大きいときには expire する日時の UNIX epoch からの秒数指定であると判断する。 expire に 0 を指定すると、明示的に delete しないかぎり消滅しない。 bytes はデータのバイト数(crlfは含まない)。 DATA は crlf を末尾と判断するため、含んではいけない。crlf が含まれる場合、無効な命令と判断して単に何もしないようである。
>
>get はデータを取り出す命令。引数としてはキーを1つ以上与える(空白で区切る)。サーバからの返答は、
>
>VALUE key flags bytes\r\n
some_data\r\n
>
>の形式を取る。 key、flags、bytes は set などと意味は同じ。 some_data のところが実際のデータになっている。キーに対応するデータがないときには END とだけ返される。
>
>delete はキーに対応するデータを削除する。オプションとして数値を指定できる。この数値の意味は set などの expire と同じで、その時刻までは set などを無視する(deleteされたままにしておく)という期限を設定する。これを指定しないと 0 、つまりすぐに再作成可能状態になる。
>
>stats はサーバステータス情報を返す。 version はバージョン情報を返す。 quit は接続の終了を指示する。ただしクライアントはこのコマンドなしにいきなり接続を切断してよい。
>
>incr と decr は特殊なデータ操作コマンド。キーと数値を与える。そのキーに対応するデータを数値とみなして、引数に与えた数値のぶんだけ増やしたり減らしたりして置き換える。データが数値じゃないときには 0 とみなすようだ。 decr で 0 以下になったときには 0 でストップするが、 incr でオーバフローするときの動作は未定義。ふつうにオーバフローしているようだ。
>
>以上。
>
>
>http://practical-scheme.net/wiliki/wiliki.cgi?cut-sea
>で、
>
>
>それよか、darcsもえらくbuildに時間がかかった。nobsunはすぐだよ!って言ってたけど、なんか個人的にはHaskellに関わるものってどれもbuild時間がかかる印象。
>
>
>わろた。
>
>確かに時間がかかります。 OCaml をちょっと使ったときとか、コンパイル時間のあまりの速さに愕然とするもの。
>
>逆に C++ を使っていてもあんまり違和感を感じないんですがw
>
>ただこれに慣れていると、もっと時間のかかるものとかが Haskell にはいっぱいあるわけで(WASHとかさ。なんであんなに時間かかるのかさっぱりわからん)、 darcs くらいはすぐビルドできちゃうような気がしてしまうのですよね。たぶんきっとそういうことだと思う。
>
>っていうか、すぐだとは思わないけど、そんな時間かかった印象ないんだけどなあ。ふつうじゃない?
>
>ぐえ、試しに darcs のソースツリーを最新に追随したら最終的にリンクするときに no such symbol エラーが。 -package regex-compat しないといけないようだ。 configure にも失敗してる。あーそうか、昔は -package text だったけど 6.6 から regex の仕組みが変わるので(たしか)その影響か……。うへ。
>
>そういえば、そろそろ先月号になりそうなオープンソースマガジン10月号の特集1では FUSE の紹介もされているのですが、 portalfs というのも紹介されていて、これはすごいなあと思いました。
>
>どういうものかというと。
>
># mkdir /p
# mount_portalfs /etc/portal.conf /p
>
>として、
>
># head -1 /p/tcp/mailhost.example.net/25
>
>などとすると mailhost.example.net の25番ポートを読んでくれるという、「それなんて plan9?」みたいなファイルシステムなのです。 tcp だけじゃなくて、 pipe という「特定のコマンドを実行してその結果のファイル」とかも出来る。その辺の設定を /etc/portal.conf に書くというわけ。
>
>で、これを使うと
>
>#!/bin/zsh
exec 3<>/p/tcp/www.example.com/http
echo -n 'GET / HTTP/1.1\r\n\r\n' >&3
cat -u <&3
>
>みたいなシェルスクリプトも書けちゃったり。うはは。楽しすぎる。
>
>で、一番驚いたのはこれが 4.4BSD ですでに入っている機能だということで、ぜんぜん知らなかったのはまさに不覚というしか。
>
>FUSE はいつのまにか FreeBSD でも使えるようになっていて(6.0以降)、これは昨年の Gogle SoC の成果であったらしい。
>
>lambdabot って IRC bot だと思ってたけど、そんな簡単な代物ではなかったらしい。コマンドラインからも起動できるし、ってそれくらいはまあともかく、なんだか GHCi にも(別のツールを使うと)機能を追加できるようになっているらしい。 web インタフェースもあるらしい。
>
>
>Lambdabot is a Haskell development tool, written in Haskell.
>
>
>だそうだ。もはや IRC bot ではないのか……。 IRC は口のひとつって扱いなんですかね。
>
>諸般の事情で lambdabot の IRC 部分を読もうと思ってたんだけど、面白そうだからもう少しいろいろ読んでみようかな。
>
>あ、 brainf*ck インタプリタのコマンドなんてのもあるし。
>
>う、 unlambda インタプリタなんてのもあるし……。
>
>絵のクォリティが低いという噂は耳にしていたけど、実際その噂どおり。動きもよくないし彩色も……な感じの残念な仕上がり。でまあ「やっぱそうでしたか」と思ったんだけど、ところが声がいい。特に主役のケンイチ。
>
>ケンイチの声は関智一でしたが、これはさすがに上手い。上手いというか、ケンイチの主人公っぽい(ヒーローっぽい)ところも出しつつ、姑息で卑屈なところもきちんと出してイキイキと演技しています。実にすばらしい。
>
>達人の方々も、石塚運昇、石丸博也、二又一成に小杉十郎太といったい何年前のアニメを見とるんだという感じで揃っていてイイ感じでした(能登麻美子が若いけど)。
>
>というわけで久しぶりに声だけで「まあちょっとくらいは見てみようかな」と思いましたよ。
>
>タイトルどおり、天保の時代、世に潜む妖怪をひそかに退治する人たちの話。設定はごくありきたりなものではあるけれど、当時の社会情勢や政治の話なんかも絡めようとしているあたりにちょっと期待。まあ、こういうのは割と好きだということもあり、好印象。
>
>ただまあ、ちゃんとした時代考証とかを期待するのはちょっと違うかもだけど。
>
>うーん。なんだろう、 CLAMP のキャラデザインが苦手なのかな。基本的な雰囲気づくりがあんまり好きではない。ナイトメアと称する人型兵器の設定も微妙に浮いている感じがするし。
>
>加えて、なんかアメリカが母体(?)なのに「ブリタニア帝国」とはこれいかに、とか、日本に地下資源?とか、基本的な設定で微妙につまづく点もあって、この辺はちゃんと伏線になっているという展開を所望したい。
>
>という細部の諸々はマイナスなんだけど、トータルでは出だしとしては悪くはないという感じ。
>
>米澤さんの葬儀のお通夜に行ってきた。この強風・大雨のなか、本当に大勢の人がいて、またその行列を取り仕切るやり方が実にコミケらしいスタイルであったので、ちょっと苦笑してしまった。しかし、それもまた「らしい」と言えるのかもしれない。
>
>写真を見て焼香をあげ、はじめて「本当に死んじゃったんだなあ……」と実感した。
>
>
>http://www.freebsd.org/cgi/cvsweb.cgi/ports/lang/yarv/
> ふむ。だいぶ待たされたので、 FreeBSD の何かのポリシに関わる問題があるのか(portupgrade が ruby で書かれてるしね)、それとも自分の書いたことに問題があったのか、と悩んでいたのだが。ああでもいろいろ綺麗な修正が加わっている気がする。自分でここまで書けないのは悲しい。
>
>
>http://slashdot.jp/article.pl?sid=06/10/05/1259251
>、
>http://opentechpress.jp/~sado/journal/395
>
ショック。
>
>やっぱ web からなんでも情報を仕入れられる時代になっちゃったからなあ、という考え方はそれはそれで成り立つんだけどやっぱり違うのではないかなと思っている。というのは、雑誌には編集という過程があるからだ。どういう切り口で物事を紹介するか、どういう記事を集めるか、誰と誰が書くか。書き手にも、それなりの意識を求めているのではないかとも思うし。そういった編集工程のある媒体っていうのはやっぱあった方がいいと思うのですよ。それが紙の雑誌である必然性は、ないのかもしれないけれど。
>
>たとえば、るびまについても、世の中には「ブログにして日々更新の方がいいじゃん」とかいう人がいるみたいなんだけど、個人的にはこの体裁って良いと思うんだよね。しかしこの形態では収益は上がらないわけで、持ち出しでやっているるびまには頭を下げつつ、実際にやるとなるとそのところにジレンマはあるのは確か(ところで rubyist hotlinks ってそろそろ一冊の本にまとまるくらいの分量はないのだろうか)。
>
>OSM みたいな雑誌の場合、ブログとかに比べればきちんとした内容となっているが、「マニュアル」「チュートリアル」類に比べると堅苦しすぎず気軽な内容で、中途半端な立ち位置に見えるのかもしれない。個人的には逆で、きちんと勉強をするほどの気合いを入れなくても良く、しかしそれなりにきちんとした内容であって、重宝していたと思う。
>
>ゆにまがもあんな具合だし、さて、休刊になったらどうしたものかね。
>