待望のArcのバージョンアップ来た

http://www.ycombinator.com/arc/arc3.tar

なんか怒られたっぽい

適当にコミットしてたら、コメントついてて焦った...

http://github.com/nex3/arc/commit/b016e96943b4ef2a29fcefb97a047c52f7fd6f22

「その変更はすべきじゃないね」ってことだと思うけど、shouldが強調されてるっぽいのはどうゆうこと?なんか怖ぇ。

とりあえず、言われた通り(ぼくなりに解釈した)に変更してコミットしてみた...けど、大丈夫なのか?

http://github.com/nex3/arc/commit/c31e0ef1f41546663a71d0f0c8f6953865ebb9ad

うわー、ほんと英語できるようになりたい。ちゃんとコミュニケーション取りたい。もし日本人として恥をばらまいてたらすまん。

Arc-users.jpはじめました

日本のArcユーザのためのハブサイト「Arc-users.jp」をはじめた。

Arc-users.jp - 日本の Arc ユーザのためのハブサイト

もともと、日本語でのArc Forumを立ち上げようと思って、こっそり準備してたんだけど、最近の、*-users.jpブームに乗っかって、今しかないと思い、見切り発車ながらスタートを切った。例によってノープラン。というか、既にブームに乗り遅れてる感も...

本家のArc Forumも、最近は特にネタもなく落ち着いちゃった気がするし、ぼくから提供できるネタってのもあまり無いかもしれないけど、それでも、日本語でArcについて語り合う場所だけでも、提供できればと思う。

第2回gauche.nightでShiroさんは「Arcについてまだ何か言うのは早いかなぁ」と言ったそうだけど、そんなの関係ねぇ。Arcはもっと評価されるべき。むしろ、ぼくたちがよりいいものにしていくだ。だって、Paulはハッカーのためにハッカーのための言語を作ってるんだよ。

みんな「ハッカーと画家」読んだよね?Paul Graham好きだよね?だったら、Arcやろうぜ。

ネタにはしってるサイトも多々あるけど、arc-users.jpはガチ。

news.arcのローカライズ

http://github.com/ryuji/arc/tree/master

勢いだけで、news.arcを中心にArcのローカライズに着手してたりする。英語もろくにわからないクセにね。あと、そういう経験もないので完全に手探り状態。

とりあえず、ハードコーディングされてる文字列を抜き出して適当に翻訳して、誰か英語ができる人に添削してもらうって流れでいこうかな。

というか、すでに飽きてきた...

Arcを制御するrc-script

Gentoo LinuxでArcを動かす人向けっていうニッチなネタだけども。

たとえば、news.arcの起動を制御したい場合、まず、nsvを起動するファイルを作成する。とりあえず、ロードして起動するだけの簡単なスクリプト。

rc-news.arc

(load "news.arc")
(nsv)

次に、rc-scriptだけど、Anarkiのas.scmはパラメータでファイルを渡せる拡張が入ってるのでそれを利用する。あと、start-stop-daemonが便利すぎるので、デーモン化とかそういう難しそうなことは、こいつに任せる。

/etc/init.d/news

#!/sbin/runscript

depend() {
  use net
  before lighttpd
}

MZSCHEME="/usr/local/bin/mzscheme" # path to mzscheme
ARC_HOME="/usr/local/arc"          # path to arc directory

start() {
  ebegin "Starting News"
  start-stop-daemon --start --quiet --background --make-pidfile \
                    --pidfile /var/run/news.pid --exec "$MZSCHEME" \
                    -- --no-init-file --mute-banner --load-cd \
                       "$ARC_HOME/as.scm" "$ARC_HOME/rc-news.arc"
  eend $? "Failed to start News"
}

stop() {
  ebegin "Stopping News"
  start-stop-daemon --stop --quiet --pidfile /var/run/news.pid 
  eend $? "Failed to stop News"
}

これで、

# /etc/init.d/news start
# /etc/init.d/news restart
# /etc/init.d/news stop

って感じで、起動停止の制御が可能。OSブート時に一緒に起動したいなら、

# rc-update add news default

とでもしておけばok。

Yahoo!にはみごにされるので、HEADリクエストに対応した

Yahoo!のクローラに嫌われてるみたいなので調べてみたら、ArcのHTTPサーバであるsrv.arcはHEADリクエストに対して、決め打ちで404 Not Foundを返してる。というか、HEADメソッドをサポートしてない。ちなみに、Googlebotくんは、HEADに失敗したらGETでリトライしてくれる働き者のかわいい奴。Microsoftのはまだ来ない。

うーむ。HTTPサーバってHEADメソッドをサポートする必要なかったっけ?愚痴ってるヒマあったらコード書けってことだな。で、RFC2616のHEADの仕様をざっくり把握したところ、メッセージボディは返しちゃダメで、ヘッダーだけGETと同じのを返せばいいってことらしいので、適当にでっちあげて、Anarkiにpushしてみた。ドッキドキ。

だけども、Arcで動いてるHacker NewsとかArc ForumにHEADリクエスト投げたら、ちゃんとステータス200で応答するんだよな(メッセージボディも返ってくるけど)。どうやらAnarkiバージョンでエラーコードに対応したみたい。オリジナルのsrv.arcはどんなリクエストに対してもエラーコードを返さないし、HEADメソッドをサポートしてないことには変わりないので、それはそれで問題だね。

そんなことより、500行足らずでHTTPサーバを実装して、それでサイト運営しちゃうPaul Grahamのハッカーぶりには、とても追いつけそうにない。

« Older Entries