2006年 01月 17日

CGI FastCGI, ruby

既存のスクリプトを修正せず、そのまま fcgi 化したい。

Web Server 側の設定の変更だけでいきたい。

fastcgi.server             = ( ".rb" =>
( "localhost" =>
(
"socket" => "/tmp/fcgi-ruby.socket",
"bin-path" => "/usr/local/bin/ruby-fcgi.rb"
)
))

とか書くとして (仮定)、ruby-fcgi.rb を考えたい。しかしながら FastCGI の仕組みがいまいちわかってないのでとりあえず保留。

UNIX ソケットであらかじめ起動してある CGI 実行プロセスと通信する?みたいなのはわかるんだけど、実際のとこ、この bin-path に指定したプログラムと、実際にリクエストされたファイルの関係がわからない。普通の CGI は引数にリクエストされたファイルを渡すけど、FastCGI はどうなるんだろう。というところで、試そうと思うんだけど、ちょっと環境構築に手間取っている。

というか、できるなら既にそういう方法が発見できるはずなんだけど、ないってことはやっぱないんだろうか。Ruby に環境を保存しておく機能がないんだっけ。callcc ?

UNIX ソケットで、とは限らないようだ。TCP/IP でもできる (すなわち、別のサーバにもおける) みたい。

普通の CGI は引数にリクエストされたファイルを渡すけど って嘘つきすぎ(w

CGI はただたんにリクエストされたファイルを起動してるだけだ。shebang を混同してる。

うーん。よくわからん。FastCGI を使ったアプリケーションを作るたびに、HTTPD の設定ファイルも書き換えないといけないんだろうか。

ENV を書き換える方法がないから無理だなこれ。

2ch ヘッドフォン娘スレ

Meta*Headphone-Girls晒された。結構キャッチされるまで時間がかかったなぁ……

さいきん up 関係の絵が多くてリンクを貼れない。貼ってもすぐ消えちゃうから。ヘッドフォン娘関連では mixi 関連で辿って片っ端から絵サイトを見まくるのをときどきやりつつ、メールで送られてくる編集ログを眺める日々です。しかしどうやって纏めるか悩む。もうちょいいい方法ないかな。

ちなみに一日のユニークホストはここ一週間平均20ぐらい。

2006年 01月 16日

新スタイル - 指輪

前にだしたやつ を気が向いたので CSS 化。魔術というか卑怯というか、キモい技を使ってますが結構微妙ですね。

手の画像は Spindly by salt fork です。

「なんかよくわからないけど」読みにくい感じがする。回りのぐにゅぐにゅのせいかな? ちょっとしたら元に戻すかもしれない。

戻した。指輪は alternate にしといた。

ubuntu + lighttpd + ruby-xslt

メモ。lighttpd + FastCGI は mod_perl + Apache1.3 より1割ほど高速 :: Drk7jp これを見つつ。とりあえず、Perl も PHP もいらんのでそのへんごちゃり。

cd ~/src
wget http://www.fastcgi.com/dist/fcgi.tar.gz
tar xvfz fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
make check
sudo make install
cd ~/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-6.4.tar.gz
tar xvfz pcre-6.4.tar.gz
cd pcre-6.4
./configure
make
sudo make install
cd ~/src
wget http://www.lighttpd.net/download/lighttpd-1.4.9.tar.gz
tar xvfz lighttpd-1.4.9.tar.gz
cd lighttpd-1.4.9
./configure
make
sudo make install
sudo ln -s /usr/local/sbin/lighttpd /usr/sbin/lighttpd
sudo cp doc/rc.lighttpd /etc/init.d/lighttpd
sudo cp doc/lighttpd.conf /etc/lighttpd/
#sudo update-rc.d lighttpd defaults 30 # まだ

あと ruby-xslt をインスコして、IRC Log 関連を ubuntu に移すことにした。tiarra も最新版にして conf だけ転送。

sudo apt-get install libxml-ruby1.8 libxslt1-dev
cd
cd src
wget http://gregoire.lejeune.free.fr/ruby-xslt_0.9.2.tar.gz
tar xzvf ruby-xslt_0.9.2.tar.gz
cd ruby-xslt
lm
ruby extconf.rb
make
lm
sudo make install

Rhythmbox now playing

更新できずにいた now playing をどうにかする。

Rhythmbox にしてから now playing が更新できなかったんだけど、rbscrobbler を適当にハックして情報投げるようにしてみた。全く難しいことをやっていないんだけど、Python がまったくわからんおかげで、invalid syntax で何度も怒られた。

rbscrobbler.patch

UTF-8 で送られてくるので、CGI 側では特に変換をしないように変更。ていうかこの CGI 古いなぁ。クラスメソッド使うときは :: 使ってたころだ。

Brainfuck on Ruby

Brainfuck インタプリタ。

arr = []
ptr = 0
soc = ARGF.read
pos = 0
while soc.size > pos
print soc[pos].chr if $DEBUG
p arr if $DEBUG
arr[ptr] ||= 0
case soc[pos]
when ?>
ptr += 1
when ?<
ptr -= 1
when ?+
arr[ptr] += 1
when ?-
arr[ptr] -= 1
when ?.
print arr[ptr].chr
when ?,
arr[ptr] = $stdin.getc
when ?[
if arr[ptr].zero?
n = 1
while n.nonzero?
pos += 1
case soc[pos]
when ?[
n += 1
when ?]
n -= 1
end
end
end
when ?]
n = -1
while n.nonzero?
pos -= 1
case soc[pos]
when ?[
n += 1
when ?]
n -= 1
end
end
pos -= 1
end
pos += 1
end
puts

mailto:>++++++++++[<++++++++++>-]<-. +++++. +++++++. >++++++[<---------->-]<+. +. >++[<+++++>-]<+. >++++[<++++++++++>-]<++++. +++. ++++++++. -----. -------------. ----. +++++++++++. >++++++[<---------->-]<--. >++++++[<++++++++++>-]<++++. ---------. +++++++++++++++. 途中式 もっと短くしろよとかね。知らないよ。1パターンしか使ってないしね。いやでも別にね。ね。

bfi.rb Brainfuck の Ruby 実装 ってのを見つけた。変数名以外殆ど同じ(w. 最後に puts つけてるのまで同じだ。おもろいなぁ。ちなみに最後の puts は zsh 対策です。

The Ruby BrainFuck Interpreter クラス使ってる

アルゴリズム自体は Brainf*ck で頭にいれ、テストもそのページで紹介されているプログラムを使った。

2006年 01月 15日

レポート書けって

微妙に勘違いしていたのだけれど、未だに1ページも書いてない例のレポートは実は合計 17 ページ以上ということに今気づく。あーあーあーあーあーあーあー

とりあえず昨日はやりたくなさすぎて 20 時から寝始めたのだけれど、結局今さっき起きてしまうっていう。しかも夢も最近まったくいいのを見ない。夢の中ぐらい楽しい思いをしたいってば。

4ページ終了

4ページ書いたらまたやる気がなくなった。ていうか明日提出だからね。しかも1限だからね。印刷さえ学校でできないからね。

7ページ終了

12ページ終了

17ページ終了

微妙に足りないっぽい部分もあるけど、だるいからこれで提出する。

洗濯機から女の子が 100

洗濯機から女の子 (mixi) が 100 人に。まぁ増えたり減ったりするからなんともいえない。

CSS for IE

個人サイトでは IE を無視して楽しい CSS ライフを とかいう記事を読んで

おおむね同意というか、タイトルは同意なんだけど中身はそんなにアレだなぁとかなんとか。個人サイトでやらないことを仕事にしてできるかとか謎い。IE を無視して CSS を書くのは気が楽だけどねぇ。IE ユーザー・IE ユーザーサポーターは、私よりもウェブ・ウェブ制作を楽しめていないと言える。 ってのは、ねぇ。どうなんだろうねぇ。そうは思わないと俺は思うんだけど。

というか、CSS を書くこと自体に喜びを覚えるわけじゃなくて、CSS を使って、デザインした結果に対して、ないし、デザインした結果を誰かに見てもらうことで喜びを覚えるから、IE をサポートしないというのは、めぐりめぐって自分の喜びを殺しかねないなぁと (あくまで個人的な話)。もちろんそれでもめんどうくさいときは IE をサポートしないんだけど (喜びとめんどくささの天秤) ね。今だって積極的に対応しているわけじゃない(笑)パっと見普通に見えるけど、アンカーホバーでがっくんがっくんですし、知っててめんどくせーからいいやーと放置してますし。ダメじゃん。

宇宙から くるのさ ヴぃヴぃっど! 極彩色☆ ♪

Zopeジャンキー日記 :群集がいつも賢いとは限らない 「Wisdom of Crowds」の成立条件 を見ていて、向井秀徳 (NUMBER GIRL, ZAZEN BOYS のフロントマン) の自分が自分であることに疑問を持とう を思い出した。

今言ったことが、自分の考えた意見なのか、はたまた他人の意見なのかをよく考える必要がある。ただ、おもいっきり突き詰めて考えると、誰も自分の考えた意見など持っていない。成長過程で環境 (人間を含めた自然) からの影響をうけ、自分を構築するため、実際には自分が自分だと思っている部分でさえ、誰かに作られたものだから。もちろん、こういうことを言い出すと切りがないのだけれど、俺は正直、全ては最初に決まっていたような (正確にいえば、全ての事項に原因があるのだから、突き詰めて考えれば世界が生まれたその瞬間に元凶があり、誰も次の一瞬を変えることはできず、ただ確率的に世界が進んでいる。こうマルコフ連鎖のイメージ) 感じを持っている。個人が「俺は未来を変えるんだ」と考えているのは別にいいのだけれど、そうやって考えることも、彼の成長過程で、何かの影響をうけ (原因があり)、なるべくしてなった結果 (過程) だろう。俺が今こうやって書いているのも、どこかで間違ったとか、そういうことではなく、なるべくしてなったことで、誰にも責任はない。

誰もが、人間ごっこをやらされて、誰でもない何かに踊らされている。

とかいう話はまぁ建設的ではないわけで、とりあえずある程度希望的な話をするとすれば、っていう出だしで書こうと思ったのだけれど、思いつかないのでやっぱいいや。

pukiwiki が空ページを

pukiwiki が空ページを吐くようになった。10920e10mMeta*Headphone-Girls が完全にまっしろ。エラーさえ吐かない。もちろん心当たりはない。FTP で覗くとファイルは存在するので、なんかバグっているんだろうけど、原因不明。死ね PHP

XREA SUPPORT BOARD - View Single Post - メンテナンス情報:サーバーソフトウェア これのせいかなぁ……なんでバージョンアップ、しかもマイナーで非互換性に当たるんですか。

なんとなく (暗黙知) ページのエンコードが怪しいとにらんで、DATA_DIR で grep, file.php function get_filename($page)var_dump をしてみると、末尾に余計な 0 がつく。null ね。encode が怪しいので、grep して func.php を以下のように書き換え

// return ($key == '') ? '' : strtoupper(join('', unpack('H*0', $key))); // original
return ($key == '') ? '' : substr(strtoupper(join('', unpack('H*', $key))), 0, -1);

0 が効いてないっぽい。うざいなぁ。