Information

日記

G-ZONEのメインコンテンツとは関係のない日々を綴ったX-Virusの日記です。メインコンテンツが更新されていない時、X-Virus が何をしているか、ここを読んでもらえれば分かるように・・・というより、自分が何をしようと目論んでいるかといった備忘録として使う予定です。

< 2007 / 8 >



1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最近の日記

Short Read: wanted 9999, got 0 2007-08-29

開発メモとして日記に記しておく。

このエラーは有名なPerlのCGI用ライブラリ「cgi-lib.pl」が表示しているもので、「9999バイトを得ようとしたけれど0バイトしか取れなかった」時にプラウザに送信するメッセージ。もう少し詳しく書くと、ブラウザは9999バイトをボディに記録し送信し、そのことを示すためにHTTPヘッダに「Content-length: 9999」と記述したが、サーバ側でcgi-lib.plの「ReadParse」で取り出す時に、このHTTPヘッダに記述されているはずのボディ部分を取得できなかったことを示している。

原因は単純。

テストのためにCGI.pmを併用したためだった。ReadParseを呼び出す前に「$q = new CGI;」と記述したために、ボディがクリアされてしまった。ReadParseを呼び出した時には、ボディが無くなってしまっていたのだ。ではこうする↓とどうだろうか。

&ReadParse;
$q = new CGI;

こんどはCGI.pm側でボディが取れない。つまり共存できないということだ。今までのルーチンと共存したい、言い換えるなら簡単にcgi-lib.plからCGI.pmに乗り換えるなら、ReadParseは使わずにこう↓記述すれば良い。

use CGI;
$q = new CGI;
%in = $q->Vars;

痛い時に痛いものが重なる 2007-08-27

前のブログとも関係するが、新システムへの移行を行った。その結果、メモリの消費量が格段に少なくなった。

一方で一度にたくさんの問題を抱えてしまった。前のシステムに戻る作業量を考えると、新システムを修正した方が良いだろうと判断。ずっと対応を続けていた。

運用しながら直すのは良くない。がヒューマンリソースが足りない上に、問題の原因もはっきりしていたので簡単に直せると判断した。しかし、この判断そのものは間違いだった。直ったと思ったら別の問題が発生というお粗末な事態を招いてしまった。なかなか思うように行かない。対応の間、苦情のメールが怒濤のごとくきた。一旦クローズにして修正するべきだった。

細かい問題の積み重なりが、色々な所に問題を発生させたので、1つづつ説明するときりがない状況。例えば、ライブラリの一部で違う画像が表示されていた。著作権の問題と関わる問題で、このクレームはかなりやばい状態だった。プログラムを修正して対応してテストのために、書きかけの記事を慌ててアップした。おかげでライブラリに新しい作品を紹介できた。

BBSの問題の方も著作権と関わる重大な問題だった。削除しても表示されるコメントが、なぜか重大なものに発生。G-ZONEだけでなく、同じシステムは別のサイトでも使用しているので、そちらでも発生していた。

別サイトの小説投稿システムにも問題が起きた。こちらも、先ほどプログラムの書き換えで修正を終えた。

ようやく終結したと思うが油断ならない状況

金持ちプログラミング 2007-08-24

これまでのBBSは酷かった。通ってくださった方に申し訳ないくらい遅かった。ようやく使い物になる速度になった。

プログラムの見やすさやメンテナンス性を優先したリッチプログラミングでいこうと心に決めたものの、SQLの技術が無かったため、無駄な操作を大量に行っていた結果、BBSの表示が滅茶苦茶遅かったというお粗末なことになっていた。たぶん自分の書いたSQLに問題がありそうだな〜と思いつつ、SQLのスキルが足らなかったために、どこをどうすれば良いのか判らなかった。ようやくSQLの改善点が判ったので、早速改良。サクサクっと動作するようになった。

もっと精進しなければ・・・

手引きとなる本を探すのに、ちょっと乱暴な手段を使った。暑いさなかに本屋に行くのは面倒なので、これは!と思う本をAmazonから大量に購入。なんと!1冊だけ手元に残して返品するという、ふてぶてしさで立ち読み&本の探索の手間を省いてしまった。電車で都心に出向くより効率的で安上がりだった。

リッチプログラミングの姿勢は崩さないつもりだが、現実は貧乏性なのである。

Yahooのカテゴリ 2007-08-22

Yahooに登録されたことは前のBlogで報告済みだが、登録されたカテゴリが実体にそぐわないような気がしたので見直しをお願いした。お願いしてまもなく、登録カテゴリが変わった。こんどは↓ここだ

トップ > エンターテインメント > SF、ファンタジー、ホラー


今度は納得。しかもYahooの対応が、意外に早いので驚いた。

サーバの緊急メンテナンス 2007-08-17

去る8月13日、突然サーバが停止した。停止後に自動で電源が入り起動を開始、しかし起動中に電源が切れ、再度電源が・・・というような動作を繰り返していた。

格安で本格的なRAID装置を手に入れたのは3年ほど前。今回、この装置の警報音が部屋に鳴り響いたことで事態に気がついた。

当初何が起きているのかが理解できなかった。サーバを自前にしてから年を重ねて色々な装置がサーバの周辺に備わっている。UPSやRAIDはもちろん、サーバがハングアップした時には、Kick-offという数分後にハードウェア的に再起動する装置がついている。Kick-offは、Macintoshでサーバを行う時に良く取り付ける装置だが、Linuxでの運用は珍しいかもしれない。実際、Macintoshで運用実績は良く耳にするが、Linuxで使っている話は聞いたことが無い。もしやKick-offが誤動作しているのではと最初に疑った。

しかしKick-offの無実は、直ぐに証明された。Kick-offを外して再起動したが、状況は変わらなかった。

起動時のメッセージとにらめっこした結果、どうやらNIC(ネットワークカード)を起動しようとした直後に電源が切れているようだ。どうやらNICに問題があって、マザーボードの保護のために電源が切れたようだ。マザーボードにNICが装着されているタイプなので、どうしようかと思ったが、助言を頂いたこともありBIOSでNICをDisable(OFF)に設定。無事に起動した。

ということで犯人はNICだった。とりあえず新しいNICを買ってきて取り付ければ直るメドが立った所で夜中。果報は寝て待てという引用は間違っているが、ゆっくり寝て、翌日カードを買ってきて取り付けた。せっかくなので1000Tだ。

助言していただいた方に感謝!