トップ «前の日(02-07) 最新 次の日(02-09)»

PC関係のメモ


1日あたり何ステップ? / [水泳]昨日1000m、今日は600m泳いだ

1日あたり何ステップ?

最近調子良くコーディングしていたんだけど、今日はあまり進まない。原因は多分、エラー処理等のあまり面白くない(けど大事な)ところに入ってきたからだ。

では、進まないとき進むときに書くコードの量というのはどのくらいなのか、と気になって今日書いた行数をdiffって数えてみた。

結果、目で数えて半日時点で150行くらい(コメントは除いて、変更箇所も含んでいる)。この業界で言うところの150ステップ。

今度調子の良い時にも数えてみよう。とはいえ、ステップ数なんて開発時期(初期なら多いだろうし、終盤には少ないだろう)でも違うだろうし、処理(GUIとか無駄に多い)によっても違うのであてにはならないんだけど。まして人となんて比べる意味がないと思う。

昨日1000m、今日は600m泳いだ

連続だし、まだ週中なので今日は少なめ。

Tags: 水泳
最終更新時刻: 2008年09月06日

error_logを分割するスクリプト / アクセスログに残る奇妙なGETリクエスト

error_logを分割するスクリプト

error_log を分割するスクリプトをちょっとバージョンアップ。

#!/usr/bin/perl
# divlog.pl
#  : apache の error_log を分割する
$filename = shift(@ARGV);
print $filename . "\n";

%name2num = ("Jan" => "01",
             "Feb" => "02",
             "Mar" => "03",
             "Apr" => "04",
             "May" => "05",
             "Jun" => "06",
             "Jul" => "07",
             "Aug" => "08",
             "Sep" => "09",
             "Oct" => "10",
             "Nov" => "11",
             "Dec" => "12");

open(FILE, "<$filename") or die("file not found");
while(<FILE>) {
    $line = $_;
    if($line =~ /^\[\w{3} (\w{3}) (\d{2}) [^]]+(\d{4})\]/)  {
        $num = $name2num{$1};
        open(OUT, ">>$filename.$3$num$2");
        print OUT $line;
    }
}

結果はこんな感じ。

-rw-r--r--   1 root root    238787  2月  8 18:01 error_log.20070918
-rw-r--r--   1 root root    248720  2月  8 18:01 error_log.20070919
-rw-r--r--   1 root root    169194  2月  8 18:01 error_log.20070920
-rw-r--r--   1 root root    185087  2月  8 18:01 error_log.20070921
-rw-r--r--   1 root root    593624  2月  8 18:01 error_log.20070922
-rw-r--r--   1 root root    163200  2月  8 18:01 error_log.20070923
-rw-r--r--   1 root root    159878  2月  8 18:02 error_log.20070924

先日、「error_logを分割するスクリプトないかなー」とググって見つけたのが自分のブログだったという罠。正直、perlのハッシュの使い方とか忘れてたのでBlack Bookで再学習しますた。

アクセスログに残る奇妙なGETリクエスト

Apacheのアクセスログを眺めていたら変なGETリクエストが記録されていた。

access_logより抜粋
***.***.***.*** - - [18/Jan/2008:04:02:35 +0900] "GET http://www.yahoo.co.jp/ HTTP/1.1" 200 ...(以降省略)

このサーバはもちろんwww.yahoo.co.jpのサーバではない。

このログを再現するのは簡単で、たとえばこんな感じで再現できる。

$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
GET http://www.yahoo.co.jp/ HTTP/1.1
Host: www.example.com

HTTP/1.1 200 OK
...以下省略...

自身でホストしていないドメイン名に対するアクセスにも関わらず、ステータスコードは200(正常)となってしまう。

原因は下記を読むとわかる。対策としてはVirtualHostの設定で弾くことはできる。が、この方法だとHost:ヘッダがないアクセスでもはじいてしまう。もっといい方法はないものだろうか。

要調査。

最終更新時刻: 2008年11月03日

IaaSの読み方

native speakerの方々は略さないらしい。これからはそうしよっと。

nativeの方々に聞いてみましたが、彼らに共通の答えは「アイ・エィ・エィ・エス」で略さないぜ(キリッ という回答でした。

via http://giolog.iij.ad.jp/2012/01/12/5334/

最終更新時刻: 2012年02月07日