4月 232010
 

今回は httpd の VirtualHost のお話です。

その昔、僕は日本で初めてバーチャネルホスティングのサービスを開始した会社にいて、当時の社長はアメリカから apache の VirtualHost の文化(この場合”技術”と言うのか)を持ってきた。当初は SunOS 4.1.4(だったかな?)に apache をインストールして IP アドレスをたくさんつけてサービスをしていた。

当時の SunOS は バーチャルホストを実現するために libc を置き換える必要があった(libc.so.2 だったかな?から libc.so.101 とか言うとんでも無いバージョンがついたものができ上がる;-)んだけど、再構築に失敗すると SunOS が起動しなくなったのよ。再インストール。今とは考えられない;-)。

で、最近はめっきりそのような環境(サーバ運用)とは関係のない仕事をしているので「昔取ったなんとか」みたいな感じで、当時の設定(と、その後、ちと学習した情報)の記憶のみで自宅のサーバを運用していたのでありました・・。

はっきり言って、うちのウェブサーバは応答が遅いっ!! どうしてか? とか思い色々と調べるわけです。サーバのハードウェア自体は Athlon X2 4600+、メモリ 4GB なのでそんなに過負荷とは感じないし・・。

で、思ったのが apache の VirtualHost の設定。これがちょっと前までしていた設定。

<VirtualHost 192.168.1.1 [2001:200:161:1400::ffff:1]>
    DocumentRoot /pathto/motsuyaki/
    ServerName   kinmiya.com
    ErrorLog     /pathto/log/error.log
    CustomLog    "| /pathto/rotatelogs /pathto/log/access-%Y%m%d.log 604800 540" combined
</VirtualHost>
<VirtualHost 192.168.1.1 [2001:200:161:1400::ffff:1]> DocumentRoot /pathto/motsuyaki/ ServerName www.kinmiya.com ErrorLog /pathto/log/error.log CustomLog "| /pathto/rotatelogs /pathto/log/access-%Y%m%d.log 604800 540" combined </VirtualHost>

 
以前は rotatelogs を利用していなかったのだけど、利用するようになったら応答速度ががた落ちしたような気がします。でもって motsuyaki.org の場合、ドメインがたくさんあるし、頭に www が付いていたり付いてなかったりするし、IPv4 と IPv6 の設定(以前は IPv4 と IPv6 でも VirtualHost を分けていた。上のような書き方が出来るとは知らなかった(^^;;)があるしでこのような設定をしていると結構応答速度が遅い感じがしてウンザリ・・。

各 VirtualHost の設定で rotatelogs が起動するんだけど、吐き出すログは一つにしているので、実は「良くログファイルがぶっ壊れないなぁ。」と関心していたのでありました(^^;;。

多分、遅いのはログ出力時のロックの問題で遅くなっているんだろう・・。みたいな・・。

で、見直した設定がこれ。これをドメインの数だけ記述します。ドメインはこの他に motsuyaki.org
もつ焼き.jp ホッピー.jp なので計四つか。今までは一個のドメインに付き四つの VirtualHost の設定を書いていたと言うことか・・。orz。

<VirtualHost 192.168.1.251 [2001:200:161:1400::ffff:1]>
    DocumentRoot /pathto/motsuyaki/
    ServerName   www.kinmiya.com
    ServerAlias  kinmiya.com
    ErrorLog     /pathto/log/error.log
    CustomLog    "| /pathto/rotatelogs /pathto/log/access-%Y%m%d.log 604800 540" combined
</VirtualHost>

 
ServerAlias を設定したので一個のドメイン名で www 有り/無し IPv4/IPv6 の全てでアクセスできる設定となりました。他にもドメインがたくさんあって、同一ログファイルに出力しているのですが、rotatelogs が頑張ってくれているみたいでログはつぶれないので多分大丈夫たろう。みたいな感じでいますf(^^;;。

rotatelogs のプロセス数は随分と少なくなりました。でもってアクセスすると、以前よりは早く表示してくれるようになったような気がします。

気がするだけで実際には細かいベンチマークテストとかしてないです。気分的な問題f(^^;;。

後、rotatelogs もいつかはソースコード読んでみたいものだと思っているのですが、複数のプロセスが起動して一個のログファイルに出力するのにどういう制御しているのだろう?とか。

本当はドメインごとにログファイルを分ければ良いとは思うのですが、ログ解析する時には一個にまとまっていてくれると嬉しいなぁ。みたいな・・。

ログの制御とか解析の辺りって、僕が apache の運用している時はあまり重要では無かったしねぇ。確か、SunOS には 200MB のカベがあって、それ以上はログが蓄積されなくなっていて、一週間に一度 httpd を再起動してログを手で名前かえて再起動。なんてしていたし・・。あ。けど、その後に rotatelogs が登場したかな?みたいな・・。

やはり一度 rotatelogs のソース、追ってみないとあかんかいのぉ。

4月 212010
 

emacs-23.1+mew-7.0.50 を利用しているのですが、最近 HTML なメールが多いなぁ。と、随分前から思っていて emacs-w3m を利用しているのであります。

emacs-23.1 の場合には emacs-w3m-1.4.4.tar.gz をダウンロードしてインストールしても動作しないので CVS から取ってきてインストールしようね。ってのは有名な話なのでそれについてはここでは書かないです。

で、mew で emacs-w3m を利用して HTML メールを読む時に “,” と “.” を交互に押すと HTML か、もしくはテキストとして表示するか選択ができるんだけど、 HTML メールを default でテキストとして読む設定がちーとも解らなかった。僕の .mew は以下のように設定されているんだけどねぇ。

; w3m の呼び出し
(require 'mew-w3m)
(setq mew-mime-multipart-alternative-list
'("Text/Html" "Text/Plain" ".*"))
(define-key mew-summary-mode-map "T" 'mew-w3m-view-inline-image) ;(w3m-toggle-inline-images)

 
mew のソースコードの中にある dot.mew にも以下のように書いてある。

;(setq mew-mime-multipart-alternative-list
'("Text/Html" "Text/Plain" "*."))
;(condition-case nil ; (require 'mew-w3m) ; (file-error nil))

 
しかし、この設定では default で HTML をテキストとして表示してくれないのよねぇ。ただ単に HTML が表示されるだけ・・。 “,” と “.” を必ず押さなければならない。変じゃーん。と言うことで色々試した結果、以下のように記述すれば default でテキストとして表示することを発見しました。

(setq mew-mime-multipart-alternative-list
'("Text/Plain" "Text/Html" ".*"))

 
この設定の内 Text/Plain と Text/Html を逆にすることによって default の表示の動作が変わるのですね。そんな風に書いているサイト、どこにも見当たらなかったのだけど、これって常識?もしくは emacs-23.1 で変わったとか。

後、気づいた点としては、最近の Content-Type: multipart/alternative; なメールは Text/Plain が先に付いていて、Text/Html がその後のパートになっているとかで表示が変わるとか変わらないとか・・。

僕自身 elisp はいまいち苦手なのでソースを見てもチンプンカンプンなので(それを人は解らないと言うのだろうか)困ったことなのであります。

まぁ、どっちにしても HTML メールの default 表示がテキストになってくれて良かったです;-)。

4月 032010
 

僕が iPhone3G を購入したのは去年の 4/4 です。なのでちょうど一年使った。と言うことになります。当時、六月に新製品が出ると解っていても、その二ヶ月が我慢できなくて買ってしまったのですが、皆が持ち始める前から使えて良かったなぁ。と言う感じでしょうか;-)。iPhone3G は遅いのですけどねぇ・・。

そんなこんなで今回は iPhone アプリについてちょっと書いてみたいと思います。一個のアプリで一個のネタを書けば良いとは思うのですけどねぇ。まぁ、まとめて書いてしまいます;-)。

まずはこれが一番最初。なんとも「やってらんねーぜ。ケッ。」って感じがするのが N-News。

IMG_0249_n-news.jpg

日経のニュースアプリなのですが、ウェブ版が有料になりました。(http://pr.nikkei.com/index.html) それと同時にこのアプリはニュースの配信が止まりました。

iPhone の株アプリと為替レートアプリで情報を仕入れている時に大きな変動があった場合「なぜだ?」と思うと、この N-News を開いていたのですけどね。それができなくなりました。

日経はこの後 N-News の有料版を出すのだろうなぁ。と容易に想像が付くのであります・・。orz。

二個目のアプリは最近はやりの「サイマル放送」系と言うかインターネットラジオアプリですね。Suono Dolce と言うニッポン放送のアプリ。

最近、http://radiko.jp/ が流行っているみたいですが、Flash アプリでの再生なので聞きませんし、聞く気も特におきないのですが、Suono Dolce と言う iPhone アプリ、なんとバックグラウンドで再生できるんですね。

IMG_0251_suono_dolce.jpg

放送は QuickTime でやっているみたいですね。iPhone アプリの中でも何個かはバックグラウンドで動作するものがある、例えば電話・メールなどですが、Safari ブラウザもバックグラウンドで動作するんですね。なので、ストリーミングを QuickTime で流して、Safari と QuickTime に食わせるとバックグラウンドで動作するようになる。いやぁ。良く考えられていますね。個人的には Flash 使わなくて偉いっ!!などと思ってしまいますが;-)。

後、同じくラジオアプリとしては TokyoFM があるのですが、これは地下鉄の中で聞きましたが、駅に着くと三分位の情報をダウンロードしてキャッシュしておくのでほぼ切れることなく再生できる。ふむ。やるわね。って感じがしたのでした;-)。

もう一個ラジオアプリ。Kikeru Radio ってのがあるのですが、これ、競馬場とか場外馬券売り場でラジオ日経を聞いてみたいものです。ストリーミングなので実際よりは遅れて聞こえると思うんだけど、iPhone アプリが「今、一着でゴールイン。勝ったのはレジェンドテイオーでした。」って言っている時には、実際にはもう随分前に結果が分かっているんでしょー。

などまぁ、ダラダラと書いていけばきりがないのでこの辺りで終わりにしましょうかねぇ;-)。

iPhone アプリにはラジオなヤツがたくさんできてきて嬉しいかぎりです。けど、やはり、ベイFM が聞きたいなぁ。