トップ «前月 最新 翌月» 追記

のろのろのろ雑記


2006年06月01日

_ 思い出し笑い

 おととい駅の構内で薬が落ちてた。

_ 筆跡

 人によって、字のクセや書き方って結構違うものなんだなぁ、と思う今日この頃でした(過去形)。


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月09日 ねこ

_ 行きと帰り、駅出てすぐのスロープで

 それぞれ別の猫が。行きはモノクロがまったりと、帰りは茶と白が仰向けにごろんと。人が近づいても警戒感ゼロで、妙に和みました。


2006年06月11日

_ [P2PQ] CPU 100%とメモリリーク

 クライアントの無限ループ問題は、開発環境で実行させて実際に無限ループに陥るまで様子見。サーバのメモリリークは、再現手順を確認して後回し。


2006年06月12日 地震

_ [地震]広島・愛媛・大分 震度5弱

 兵庫県南東部、震度1の地域でした。最初に斜め方向に弱く"ゆらっ"と来て、しばらくして小さい横揺れが15秒ほど続きました。

 それからNHKラジオを聞くと、既に地震のニュースが始まっていました。「震度4、震度… 地震の情報です」などと慌しくされていましたが、どこかの市役所に電話している時の様子がシュールでした。以下あいまいな記憶。

アナウンサー:そちらに電話などで被害の状況は入っていますでしょうか?

市役所の中の人:さっき電話が掛かってきたけど、取れないんですよ(笑)

 NHK大阪のアナウンサーは読み間違えて、男の人が「うじたわらし」とツッコミを入れる場面もありました。

_ [P2PQ] P2PQ_Clientが無限ループ

 見事に無限ループに陥りました。開発環境のCtrl+Breakは効かず、本体とmsafd.dllスレッドがCPUリソースを食い尽くしました。


2006年06月13日 帰ってきたT10

_ [音楽][故障]帰ってきたT10

 「修理に1ヶ月」と宣告されたiriver T10ですが、半月で帰ってきました。というより、交換されました。

 電池を入れて、スイッチオン。iriverのロゴ、カラフルな再生画面を見て、「ああ、T10だ」などと一安心しました。これからは、下手に触らず大切に扱います。


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月21日

_ 暑い

 ここ最近は暑くてやる気が起きません。HDDの温度も順調に上昇しています。相変わらず阪神9000系は他の車種と比べて冷房が効いてます。

_ [P2PQ]サーバのメモリリーク

 WinXP(SP2)だと問題が起きない。これはもしやOS固有の問題かも…


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月27日 固まりすぎ

_ [P2PQ] サーバーウォッチャー

 サーバのフリーズに気付かないまま1時間経過とか酷すぎです。

 P2P地震情報 サーバ(ソフトウェア)がフリーズしても自動的に復帰するよう、即席ウォッチャーを常駐させました。サーバのCPU使用率が80%以上の状態が10秒以上連続する場合に、サーバを強制終了させ、5秒後に再び起動します。

 それよりサーバそのものを直せよ、という意見はもっともです。ただ、未だに原因が特定出来ないまま… というよりは、プログラムに何ら手を加えておらず、動作環境が変わっただけなので、別のところに要因があるんじゃないかと思っています。


2006年06月28日 熱暴走テスト

_ [P2PQ] 熱暴走テスト

 現在のP2P地震情報サーバにはCPUファンがありません(電源ファンのみ)。以前、季節に関係なく熱暴走し強制的に再起動が掛かる現象が発生していました。

 これはまずいので、サーバとして稼動する前の昨年秋、本体のありとあらゆる部分を掃除し、手前の5インチベイをオープンしたところ、エアフローが改善し熱暴走が収まりました。が、夏に熱暴走しないとは限りません。そこで、30度の室温の中で実験を試みました。

 Prime95でしばらく放置しておくと、ヒートシンク部に置いた温度センサは69.2度を示しましたが、それ以上の上昇はなく熱暴走も発生しませんでした。アイドル時は約42度。これなら、35度を超える日でも(Prime95ほどの高負荷が発生しない限り)大丈夫そうです。

_ 環境の慌しさと「楽しい」レベルの繋がり

 ものすごく暇でネタに飢えている時は、小さなネタ、ちょっとしたネタでも、そのネタを楽しめる。一方、暇がなく慌しい時間を過ごしていると、小さなネタでは楽しめず、大きなネタ(より面白いネタ)を必要とし、それを楽しむ。

 「慌しさ」と「求めるネタのスペック」って比例してそうな感じがします。