2006年06月02日 情報収集の方法
_ [Web]情報収集の方法
SleipnirからOperaに乗り換えたのは、使い続けていくうちに細かなところに不満があったのと、Sleipnirに飽き飽きしてきたこと。Operaというブラウザが軽いらしいと聞いて、ただそれだけでOperaをインストールし、現在もOperaを使っています。
それはどうでもいいのです。しばらくして、RSSという見慣れない単語がネット上に出現するようになって、OperaがRSSをサポートしました。「RSSとはなんぞや」と言っていた頃が懐かしく思えます。その時に、様々なWebサイトのRSSを生成している所を見つけて、片っ端からRSSを登録しました。OperaのRSS機能は「メーラー型」で、新しいアイテムは未読として増えていき、読み終えたものを削除していくことが出来ます。たくさんのニュースを、残さず目を通すようになりました。
その後、RSSを提供するWebサイトは一気に増えました。また、特定文字列の間を抽出しRSS化するスクリプトも出現し、ますますRSSの存在感が増してきました。「はてなブックマーク」や「注目URL」といったRSSも登録し、インターネット上で注目されている事柄までもを、RSSで知ることが出来るようになりました。
そして今に至ります。よく考えてみると、毎日巡回する1サイトや2chのスレッド、そして調べ物をする時以外は、全部RSSに依存するようになりました。自動的に増えていくRSSに目を通し、話のネタにする。これまでより圧倒的に小さな労力で、より大きなものを得られるようになりました。
その一方で、自ら面白いネタを探すことがなくなりました。わざわざ探さなくても、RSSで流れてくるからです。もちろん、これは非常に良いことだと思います。ただ、これによって「面白いネタ」を得ることは出来ますが、「面白いネタ『を見つけた』」という事実を得ることは出来なくなりました。
オチはありません。
2006年06月03日 Apacheに乗り換え/tDiaryの静的出力
_ [Web]Apacheに乗り換え
tDiaryを静的生成する方法はないものかと探していると、tmaeda 日記 - 負荷対策:静的 HTML 化を発見。「そうか! mod_rewriteか!」と思ったものの、サーバはAN HTTPD…
この雑記のアクセスが増えることは恐らくないと思いますが、この際にと面白半分でApacheに乗り換えちゃいました。
最新エントリも含めて静的出力するようにして、自己満足です。パフォーマンスも向上しました。
_ [Web]tDiaryを最新エントリまで静的出力する方法
引数なしでindex.rbが呼ばれる状態、いわゆる「トップページ(最新エントリ)」も静的出力する方法です。あまり良い方法とは言えませんが… mod_rewriteと.htaccessを使えることが大前提です。
最初の追加内容
tmaeda 日記 - 負荷対策:静的 HTML 化を参考に、「mod_rewriteの設定」以外をやってしまいます。もちろん、キャッシュの出力先などは必要に応じて変更します(相対パス可)。
index.rbの変更
コメント投稿時にキャッシュを削除する
最初のほうにある、コメント投稿時の処理
if @cgi.valid?( 'comment' ) then
の直後に、次の4行を追加します。
cache = "トップページのファイル名 [例]./index.html" if FileTest.exist?(cache) then File.delete(cache) end
キャッシュを出力する
「負荷対策:静的 HTML 化 - comment が投稿されたら、キャッシュを削除」で追加した、
if @cgi.valid?( 'date' ) then (中略) f.write "#{Time.now} static cache written(#{@cgi['date']}.html).\n" } } end end
の最後の「end」を削除し、次の内容を追加します。
elsif @cgi.valid?( 'category' ) then else File.open("トップページのファイル名 [例]./index.html", "w") {|f| f.write body } end
update.rbの変更
記事投稿時にキャッシュを削除する
「負荷対策:静的 HTML 化 - 記事を更新したらキャッシュを削除」で追加した、
def delete_cache(cgi) date_string = sprintf("%04d%02d%02d", cgi['year'], cgi['month'], cgi['day']) (中略) end end
の「def delete_cache(cgi)」の後に、次の内容を追加します。
cache = "トップページのファイル名 [例]./index.html" if FileTest.exist?(cache) then File.delete(cache) end
.htaccessの設定
mod_rewriteを利用して、キャッシュのあるものはキャッシュへ、そうでないものはindex.rbへ飛ばします。
RewriteEngine on # キャッシュのあるページへは、そのキャッシュを読ませる RewriteCond %{REQUEST_URI} ^\/diary\/([0-9]+\.html$) RewriteCond /WWW/diary/cache/%1 -f RewriteRule .* cache/%1 [L] # キャッシュのないページへは、index.rbで表示させる RewriteRule ^([0-9]+)\.html$ index.rb?date=$1 [L] # コメントの投稿であれば、index.rbに飛ばす RewriteCond %{REQUEST_URI} ^\/diary\/$ RewriteCond %{REQUEST_METHOD} ^POST$ RewriteRule .* index.rb [L] # カテゴリの選択であれば、index.rbに飛ばす RewriteCond %{REQUEST_URI} ^\/diary\/$ RewriteCond %{REQUEST_METHOD} ^GET$ RewriteCond %{QUERY_STRING} ^.+$ RewriteRule .* index.rb [L] # トップのキャッシュがなければ、やはりindex.rbへ RewriteCond %{REQUEST_URI} ^\/diary\/$ RewriteCond %{QUERY_STRING} ^$ RewriteCond /WWW/diary/index.html !-f RewriteRule .* index.rb [L]
これで静的出力はばっちりです。
2006年06月04日 cacti
_ [Web]cactiを導入
p2pquake.ddo.jpは、非常に小規模ではありますが、サーバです。サーバたるもの、稼動状況を監視することはサーバ管理者としてやっておきたいものです。そこで、MRTGを導入しました。
…が、1つのグラフにつき2項目を指定する必要がある等、少々不便なことがあります。そこで、より多彩なグラフ描画機能を持つ「RRDtool」のフロントエンド「cacti」を導入することにしました。
Apache 2へのPHP 4モジュールの組み込みがうまくいかず、php.exeを呼び出すCGI形式を取ったり、MySQLのパスワードハッシュアルゴリズムを古いものに戻してみたり等、少々ややこしくなりましたが、導入は無事完了しました。
ネットワークトラフィック・CPU使用率・メモリの3項目を記録するようにしました。(user:guest pass:guest)でご覧いただけます。グラフ描画には若干時間が掛かりますが、5分ごとに実行されるポーリング(記録)は軽いので許容範囲です。
P2P地震情報の参加ピア数とかも、記録の対象にしてしまえば一括で表示出来て便利かも。
2006年06月12日 地震
_ [地震]広島・愛媛・大分 震度5弱
兵庫県南東部、震度1の地域でした。最初に斜め方向に弱く"ゆらっ"と来て、しばらくして小さい横揺れが15秒ほど続きました。
それからNHKラジオを聞くと、既に地震のニュースが始まっていました。「震度4、震度… 地震の情報です」などと慌しくされていましたが、どこかの市役所に電話している時の様子がシュールでした。以下あいまいな記憶。
アナウンサー:そちらに電話などで被害の状況は入っていますでしょうか?
市役所の中の人:さっき電話が掛かってきたけど、取れないんですよ(笑)
NHK大阪のアナウンサーは読み間違えて、男の人が「うじたわらし」とツッコミを入れる場面もありました。
2006年06月19日
_ しばらくゆっくり出来る時期になりました。やることメモ。
- P2P地震情報 Beta 3リリース
- メモリリーク(サーバ)・無限ループ(ピア)不具合修正
- IRCボットの多機能化(ロギング・自動オペレータ機能装備)
- IRCとWebチャットのゲートウェイ
- 仮想マシン上でVista Beta 2
- サーバの熱暴走チェック・対策
2006年06月20日 HEAD /orz HTTP/1.1
_ [P2PQ] HEADリクエスト
気象庁にはHEADリクエストしてLast-Modifiedを見た方が、無駄な転送も減るし気象庁サーバの負荷も下がるし更新チェックが簡単になるしチェックミスも防げるし、いいとこだらけ。
_ 急ブレーキ
急行(阪神2000系)に乗ってたら、突然非常ブレーキが。踏切に異常があったとか何とかで、しばらく徐行した後はいたって普通でした。車掌が「急停車します。ご注意ください」とすかさず(冷静に)アナウンスしていたのが印象的でした。
2006年06月25日 Apache周辺いぢり
_ [Web] Subversion入れたりmod_perl入れたり
P2P地震情報におかしなバグを紛れ込ませてもすぐ戻せるように、バージョン管理システムSubversionをインストール。が、Apache 2.2系ではモジュール(バイナリ9が動作しないことが分かり、Apache 2.2をアンインストールしてApache 2.0をインストール。無事に動作。
さらに、mod_perl2を入れてみたいと思いppm。が、ActivePerl 5.6系には対応していないことが分かり、ActivePerl 5.6をアンインストールしてActivePerl 5.8をインストール。その後Perlライブラリ云々で少々手間取りましたが、無事に動作。
ついでに、Apache Benchmarkでパフォーマンスを調べてみました。対象はいくらか書き込まれたwifky!。
動作タイプ | 1秒あたりのリクエスト数 |
cgiモード(通常) | 3.71 |
mod_perl2 | 15.06 |
Perlを起動するオーバーヘッドと約40KB(wifky.pl)のスクリプトコンパイル時間が無くなるのは、思った以上に効果があるようです。perlスクリプトあんまり呼ばないけど。
_ eneloop
充電器付きのeneloop(NC-MDR02)買ってきました。iriver T10、付属のアルカリ電池が切れてからニカド電池(700mAh)を使っていたのですが、持ちがよろしくない上に充電器のACプラグが歪んでいて危なっかしいので、気になっていたeneloopを。
「充電済みですぐ使える」「自然放電が少ない」「メモリ効果が小さい」という謳い文句、typical 2000mAhの持ち具合などを確かめてみたいと思います。
2006年06月28日 熱暴走テスト
_ [P2PQ] 熱暴走テスト
現在のP2P地震情報サーバにはCPUファンがありません(電源ファンのみ)。以前、季節に関係なく熱暴走し強制的に再起動が掛かる現象が発生していました。
これはまずいので、サーバとして稼動する前の昨年秋、本体のありとあらゆる部分を掃除し、手前の5インチベイをオープンしたところ、エアフローが改善し熱暴走が収まりました。が、夏に熱暴走しないとは限りません。そこで、30度の室温の中で実験を試みました。
Prime95でしばらく放置しておくと、ヒートシンク部に置いた温度センサは69.2度を示しましたが、それ以上の上昇はなく熱暴走も発生しませんでした。アイドル時は約42度。これなら、35度を超える日でも(Prime95ほどの高負荷が発生しない限り)大丈夫そうです。
_ 環境の慌しさと「楽しい」レベルの繋がり
ものすごく暇でネタに飢えている時は、小さなネタ、ちょっとしたネタでも、そのネタを楽しめる。一方、暇がなく慌しい時間を過ごしていると、小さなネタでは楽しめず、大きなネタ(より面白いネタ)を必要とし、それを楽しむ。
「慌しさ」と「求めるネタのスペック」って比例してそうな感じがします。