[WebP Vol.032] Q&A式 CGI入門:アクセスカウンターを作ろう! ~ファイルロック編~

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
【 Webプログラミング Code Sample 】                          Since2001/11/23

             Code032: Q&A式 CGI入門:アクセスカウンターを作ろう!
                            〜ファイルロック編〜

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                                                    Produced by ichikoro.com

           ▼毎週月曜日と金曜日に配信しています。
           ▼等幅フォントでご覧いただくとキレイに見えます。
           ▼登録・解除はこちらから可能です。
               < http://www.ichikoro.com/webp/ >
                  ※バックナンバーへのリンクもあります。
                  ※お友達にもぜひお勧めください(^^)/


─【Contents】───────────────────────────────
    01.Tips ................. Q&A式 CGI入門(Perl編)
    02.News ................. ネット業界の一週間
    03.From Editor .......... 編集後記


                   【 Webプログラミングは毎週2本立て! 】

             ・月曜日版はWebの実際の活用方法などを特集します。
             ・金曜日版はHTMLやCGIなど一つの分野について最初から
              解説する講座になっています。現在はC言語入門です。


こんにちは、編集者の勝部です。

大方の予想通り、水曜日にフラッと倒れてそのまま寝込んでいました(笑)
笑い事ではなかったりするのですが(^^; 毎年一年に2、3回こういう目にあっており、
病院に行っても「分かりません」といわれるのが関の山なのでいいかげん慣れてきま
した。<ソレモドウヨ

ただ、いつも突然やってくるのですが、今回に限って日曜日くらいから前フリのよう
に体調が激悪だったこともあり、心の準備と期限付きの仕事を片付けることが出来て
助かりました(誤)

その余波を受け、金曜日の配信もそのままお休みしてしまいました。
すみません( ^.^)( -.-)( _ _)

今のところ原因としてコユイのは「無理」と「栄養失調」です。
「無理して尚且つ栄養失調」かもしれませんが(笑)

ではでは、今週も行ってみましょう!


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  01.Tips  「ちょっとがんばれば分かる FAQ式CGI入門 Perl編」
──────────────────────────────────────

今回は、ちょっと長いです。
というのも、段々プログラムの方が長くなってきたからですが(^^;
実際にはたいしたことやってないんですがねぇ(ーー;)

というわけで、今回の目的はアクセスカウンターを【頑丈】にすることです。
せっかく積み上げたカウントが、ある日突然ゼロになったら悲しいですもんね。


──────────────────────────────────────
■前回のプログラム
──────────────────────────────────────

    前回は、ついに画像を使ったカウンターの骨組みが完成しました!
        http://www.ichikoro.com/webp/back_list/?cd=00030


            ▼必要なもの
                (1)gifcat.pl ............ CGIと同じディレクトリにUP
                (2)0 〜 9 のGIF画像 ..... 同じ高さでアニメGIFでない物を。
                                          名前をそれぞれ 0〜9 とし、拡張子(.gif)
                                          もいりません。CGIと同じディレクトリにUP
                (3)count_value.dat ...... 0とだけ記述したファイル。
                                          CGIと同じディレクトリにUP

            ▼ここからがCGIです。

                #!/usr/bin/perl

                require "gifcat.pl";                      #gifcat.plの機能を取り込む

                #-------------------------------------#
                #           前回の値を取得            #
                #-------------------------------------#
                open(DAT, "count_value.dat");
                $count = <DAT>;
                close(DAT);

                #-------------------------------------#
                #        前回の値に+1して保存         #
                #-------------------------------------#
                $count = $count + 1;                      #取得した値に+1する
                open(DAT, ">count_value.dat");
                print DAT $count;
                close(DAT);

                #-------------------------------------#
                #     数字を“一文字”ずつに分割する  #
                #-------------------------------------#
                @split_suuji = split("", $count);

                #-------------------------------------#
                #               合体!                #
                #-------------------------------------#
                $join_image = gifcat::gifcat( @split_suuji ); #配列は自動的に以下の
                                                              #ように展開されます。
                                                              #  $split_suuji[0],
                                                              #  $split_suuji[1],
                                                              #         :
                                                              #         :
                                                              #  $split_suuji[n]

                #-------------------------------------#
                #              画像を表示             #
                #-------------------------------------#
                print "Content-type: image/gif\n\n";
                print $join_image;

                exit(0);


    ところが、このカウンターには問題があります。

        (1)桁数がバラバラ
        (2)同時にアクセスされると、ファイルが真っ白になってしまう。

    今回は、これを解決することにしましょう!


──────────────────────────────────────
■桁数をそろえよう!
──────────────────────────────────────

    [Q]. いやー、久しぶりですね(怖いくらいの穏やかな笑顔)
    [A]. .....あは、あははは(汗)
         まぁ、何はともあれ今週も行ってみましょう!


    [Q]. まずは「桁」をそろえる方法を教えてください。
    [A]. Perlには「桁そろえ」をしてくれる機能(関数)が、あらかじめ用意されて
         います。まずはこれを使ったサンプルを実行してみましょう。

        #!/usr/bin/perl

        #-------------------------------------#
        #            変数に数値を設定         #
        #-------------------------------------#
        $suuji = 15;

        #-------------------------------------#
        #               桁をそろえる          #
        #-------------------------------------#
        $print_suuji = sprintf("%05d", $suuji);

        #-------------------------------------#
        #                表 示                #
        #-------------------------------------#
        print "Content-type: text/html\n\n";
        print $print_suuji;

        exit(0);

    [Q]. ポイントはsprintfですね?
    [A]. その通り。sprintfの書式は以下のようになります。

             [値]を[書式]に変換 = sprintf("書式", 値)

         つまり%05dというのが、「5桁にしろ」という書式なわけです。

    [Q]. じゃぁ8桁にそろえるにはどうすればいいんですか?
    [A]. 以下のサンプルを実行してみましょう。

        #!/usr/bin/perl

        #-------------------------------------#
        #            変数に数値を設定         #
        #-------------------------------------#
        $suuji = 15;

        #-------------------------------------#
        #               桁をそろえる          #
        #-------------------------------------#
        $print_suuji = sprintf("%08d", $suuji);

        #-------------------------------------#
        #                表 示                #
        #-------------------------------------#
        print "Content-type: text/html\n\n";
        print $print_suuji;

        exit(0);


    [Q]. なるほど! %の後の数字がそのまま桁数になるのですね?
    [A]. その通りです。

    [Q]. ではこれをカウンターに組み込むにはどうすればいいんですか?
    [A]. 数字をバラバラに分割する直前に一行追加してみましょう。

        #!/usr/bin/perl

        require "gifcat.pl";                      #gifcat.plの機能を取り込む

        #-------------------------------------#
        #           前回の値を取得            #
        #-------------------------------------#
        open(DAT, "count_value.dat");
        $count = <DAT>;
        close(DAT);

        #-------------------------------------#
        #        前回の値に+1して保存         #
        #-------------------------------------#
        $count = $count + 1;                      #取得した値に+1する
        open(DAT, ">count_value.dat");
        print DAT $count;
        close(DAT);

        #-------------------------------------#
        #               桁をあわせる          #
        #-------------------------------------#
        $count = sprintf("%05d", $count);

        #-------------------------------------#
        #     数字を“一文字”ずつに分割する  #
        #-------------------------------------#
        @split_suuji = split("", $count);

        #-------------------------------------#
        #               合体!                #
        #-------------------------------------#
        $join_image = gifcat::gifcat( @split_suuji ); #配列は自動的に以下の
                                                      #ように展開されます。
                                                      #  $split_suuji[0],
                                                      #  $split_suuji[1],
                                                      #         :
                                                      #         :
                                                      #  $split_suuji[n]

        #-------------------------------------#
        #              画像を表示             #
        #-------------------------------------#
        print "Content-type: image/gif\n\n";
        print $join_image;

        exit(0);

-----------------------------------------------------------------[PR]---
■■      「春です!、まもなくゴールデンウィーク」    ■■
           ゴルフの予約はお済みですか?
         まだの方は、急いでGORAにアクセス!!
          ↓  ↓  ↓  ↓  ↓
http://dt.magclick.com/.C/HLT0m04cq4GWRG6mRnu4t57gQdXdidkU
------------------------------------------------------------------------

──────────────────────────────────────
■どうやってファイルが壊れるの?
──────────────────────────────────────
    [Q]. 「同時にアクセスされると、ファイルが真っ白になってしまう」
          って、具体的にどういうことなんですか?
    [A]. まずは以下の処理に注目してください。

            open(DAT, ">count_value.dat");
            print DAT $count;
            close(DAT);

        この中で、次の行が実行されたとたん、ファイルは真っ白になってしまいます。

            open(DAT, ">count_value.dat");

        で、その真っ白になったファイルに対して

            print DAT $count;

        と、前回の値を書き込んでいます。


        では、「ほぼ」同時に2人(AさんとBさん)がこのカウンターへアクセスしたと
        しましょう。

            ・最初にAさんがアクセスします。
              前回の値を取得するこに無事成功。
              今度は、+1した値を書き込もうとファイルを真っ白な状態で開きます。

            ・そこへ運悪く(?)Bさんがアクセスします。
              前回の値を取得しようとファイルを開くと、【ファイルは真っ白】でした。

        何てことになってしまうのです。


    [Q]. なるほど。ではこれを回避するにはどうしたらいいのですか?
    [A]. その前に何が問題なのか整理してみると

            ・Aさんの処理が終わっていないのに、
              Bさんがファイルを開けることが出来る(B can open a file.)

        これに加え、

            ・いきなり真っ白な状態で開く

        というのも問題でしょう。


──────────────────────────────────────
■壊れてからでは遅いのです!ちゃんと対策をとりましょう。
──────────────────────────────────────

    [Q]. 早速解決策を教えてください!
    [A]. 次のように修正してみましょう。

            open(DAT, ">>count_value.dat");   #追加書き込みモードでオープン
            flock(DAT, 2);        #ファイルをロック!
            truncate(DAT, 0);     #ここで初めてファイルを真っ白にする
            print DAT $count;     #ファイルに書き込み
            close(DAT);           #ファイルを閉じるとロックも自動的に解除される


    [Q]. おお、何だか難しそう(^^;
    [A]. では、一つずつ見て行きましょう。


    [Q]. ファイルの開き方も変わっていますね。

            open(DAT, ">>count_value.dat");   #追加書き込みモードでオープン

    [A]. ファイルを開くのには、いくつかのモードが用意されています。
         これは、ファイル名の前に何をつけるかによってモードが変わります。

            (1)読み取り専用モード
                記述例:
                    open(DAT, "count_value.dat");
                    open(DAT, "<count_value.dat");

                解説:
                    何もつけないか、ファイル名の前に "<" をつけると読み込み
                    専用モードで開くことができます。その名の通り書き込みはで
                    きません。
                    指定したファイルが存在しない場合は致命的なエラーとなり、
                    強制終了となります。

            (2)新規書き込みモード
                記述例:
                    open(DAT, ">count_value.dat");

                解説:
                    ファイル名の前に ">" をつけると、ファイルを真っ白にして
                    開き、書き込みを行うことができます。
                    指定したファイルが存在しない場合は、新たにその名前のファ
                    イルが作成されます。

            (3)追加書き込みモード
                記述例:
                    open(DAT, ">>count_value.dat");

                解説:
                    ファイル名の前に ">>" をつけると、開いたファイルの終端に
                    書き込みを行うことが出来るようになります。
                    指定したファイルが存在しない場合は、新たにその名前のファ
                    イルが作成されます。


    [Q]. つまり、3番の「追加書き込みモード」で開くことによって、いきなり
         真っ白な状態にならないワケですね?
    [A]. はい、その通りです。
         この状態を維持しつつ、ファイルを「ロック」するのです!


    [Q]. ロックするのは次の行ですよね?

            flock(DAT, 2);        #ファイルをロック!

    [A]. はい。ただこのflockの機能はWindowsにはありませんので注意が必要です。
         とは言えNT系は対応済みですし、Windows9X系を本格的なWebサーバで使うこ
         とは考えにくいので、実質使っても問題ありません。
            ※ローカルでテストする時には注意してくださいね。


    [Q]. 次の行は何ですか?

            truncate(DAT, 0);     #ここで初めてファイルを真っ白にする

    [A]. ここでは本来、新規書き込みモードで開いていました。
         そこで、ファイルを真っ白にするために上の行が必要なのです。
         さぁ、ではこれを反映したCGIを見てみましょう。

        #!/usr/bin/perl

        require "gifcat.pl";                      #gifcat.plの機能を取り込む

        #-------------------------------------#
        #           前回の値を取得            #
        #-------------------------------------#
        open(DAT, "count_value.dat");
        $count = <DAT>;
        close(DAT);

        #-------------------------------------#
        #        前回の値に+1して保存         #
        #-------------------------------------#
        $count = $count + 1;                      #取得した値に+1する

        #-- 書き込む --#
        open(DAT, ">>count_value.dat");
        flock(DAT, 2);                     #ファイルロック!
        truncate(DAT, 0);                  #0byteにする
        print DAT $count;
        close(DAT);

        #-------------------------------------#
        #               桁をあわせる          #
        #-------------------------------------#
        $count = sprintf("%05d", $count);

        #-------------------------------------#
        #     数字を“一文字”ずつに分割する  #
        #-------------------------------------#
        @split_suuji = split("", $count);

        #-------------------------------------#
        #               合体!                #
        #-------------------------------------#
        $join_image = gifcat::gifcat( @split_suuji ); #配列は自動的に以下の
                                                      #ように展開されます。
                                                      #  $split_suuji[0],
                                                      #  $split_suuji[1],
                                                      #         :
                                                      #         :
                                                      #  $split_suuji[n]

        #-------------------------------------#
        #              画像を表示             #
        #-------------------------------------#
        print "Content-type: image/gif\n\n";
        print $join_image;

        exit(0);



──────────────────────────────────────
■さらなる問題
──────────────────────────────────────

    [Q]. まだ何かあるのですか!?
    [A]. カウンターも意外に奥が深いのです(^^ゞ
         よーく考えると分かると思いますが、上のCGIだと「整合性」が取れない
         場合があります。

    [Q]. それはどんな時なのですか?
    [A]. これも、複数の人がほぼ同時にアクセスしたときに起こります。

            ・最初にAさんがアクセスします。
              前回の値を取得するこに無事成功。
              +1した値を書き込もうとした瞬間!
                  ※まだ書き込んでません。

            ・そこへ又もやBさんがアクセスします。
              前回の値を取得することに無事成功します...が!
              よくよく考えると、ここで取得した値は、
             【Aさんが取得した値と同じ】だったのです。


    [Q]. おのれBめーって感じですね!
    [A]. あはは(^^;
         理論上は、とどまることなく大量の人がいい感じのタイミングで訪れ続け
         れば、永久にカウントアップしません(笑)
             ※その前にたぶんサーバが落ちるでしょうけど(^^;


    [Q]. ところでこれは何が原因なのですか?
    [A]. 書き込む時と全く一緒なのですが、

>          Aさんの処理が終わっていないのに、
>          Bさんがファイルを開けることが出来る(B can open a file.)

         なのです。


    [Q]. うーん、じゃぁ下のようにすれば解決します??

        #-------------------------------------#
        #           前回の値を取得            #
        #-------------------------------------#
        open(DAT, "count_value.dat");
        flock(DAT, 1);                  #1にすると読み込むをブロックします
        $count = <DAT>;
        close(DAT);

    [A]. 着眼点は悪くありませんが、問題視しないと行けないのは

            ・「読み込む処理」と「書き込む処理」を通じたロックがされていない。

        ことなのです。


    [Q]. 難しい話になりそうだ(ーー;)
    [A]. Non、Non。全くシンプルです。

            (1) ロックする! ← すでにロックされていれば、
                       ちょっと待ってから再チャレンジ

                (2) 前回の値を取得する
                (3) +1した値を記録する

            (4) ロックを解除する

            (5) 画像を表示する



──────────────────────────────────────
■詳しいことは「♪まーた来週〜」
──────────────────────────────────────

    [Q]. あ!逃げに入ってるな!!
    [A]. あは。
         とりあえずCGIは掲載しておきますので、詳しい解説はまた次回に!

            #!/usr/bin/perl

            require "gifcat.pl";                      #gifcat.plの機能を取り込む

            #-------------------------------------#
            #           まずはロックする          #
            #-------------------------------------#
            lockOn("lock.dir", 5);         #ロックする。
                                           #   "lock.dir" という名前のディ
                                           #   レクトリ(ロック用)を作成。
                                           #   すでに存在(ロックされている)
                                           #   場合は最大で5秒間チャレンジ。

                #-------------------------------------#
                #           前回の値を取得            #
                #-------------------------------------#
                open(DAT, "count_value.dat");
                $count = <DAT>;
                close(DAT);

                #-------------------------------------#
                #        前回の値に+1して保存         #
                #-------------------------------------#
                $count = $count + 1;              #取得した値に+1する
                open(DAT, ">>count_value.dat");
                flock(DAT, 2);                    #ファイルロックする
                truncate(DAT, 0);                 #ファイルサイズをゼロにする
                print DAT $count;
                close(DAT);


            #-------------------------------------#
            #             ロック解除!             #
            #-------------------------------------#
            lockOff("lock.dir");         #ロックを解除する
                                         #    "lock.dir" という名前のディ
                                         #    レクトリ(ロック用)を削除する。

            #-------------------------------------#
            #             桁をあわせる            #
            #-------------------------------------#
            $count = sprintf("%05d", $count);

            #-------------------------------------#
            #     数字を“一文字”ずつに分割する  #
            #-------------------------------------#
            @split_suuji = split("", $count);

            #-------------------------------------#
            #               合体!                #
            #-------------------------------------#
            $join_image = gifcat::gifcat( @split_suuji ); #配列は自動的に以下の
                                                          #ように展開されます。
                                                          #  $split_suuji[0],
                                                          #  $split_suuji[1],
                                                          #         :
                                                          #         :
                                                          #  $split_suuji[n]

            #-------------------------------------#
            #              画像を表示             #
            #-------------------------------------#
            print "Content-type: image/gif\n\n";
            print $join_image;

            exit(0);


            #===============================================================#
            #            lockOn と lockOff は独自に作った機能です。         #
            #                                                               #
            #           ▼ その中身はここから下に記述してあります ▼        #


            #--------------------------------------------------------------#
            #■ロックディレクトリ作成                                      #
            #     目的:ロックディレクトリを作成する                       #
            #           既にロックディレクトリが存在する場合は             #
            #           作れるまで待つ                                     #
            #              ※ただし指定秒数か、3分を超えた場合は作成しない #
            #                                                              #
            #     引数:ロックディレクトリ名                               #
            #           最大で待てる秒数                                   #
            #                                                              #
            #   戻り値:成功:1                                            #
            #           失敗:0                                            #
            #--------------------------------------------------------------#
            sub lockOn
            {
                my $lock_name = shift;        #ロックディレクトリ名
                my $limit     = shift;        #MAX待ち時間
                my $count_sec;

                #------------------------------------------------#
                #          ディレクトリが作れない間ループ        #
                #------------------------------------------------#
                $count_sec = 0;
                while( !mkdir($lock_name, 0755) ){
                    #--------------------------------#
                    #            一秒待つ            #
                    #--------------------------------#
                    sleep(1);

                    #--------------------------------#
                    #   待つのにもう限界かチェック   #
                    #--------------------------------#
                    if( ($count_sec > $limit)
                                        or ($count_sec > 60*3) ){ #指定値か、3分を
                                                                  #超えるかチェック
                                                                  #(異常loop回避のため)

                        #-- 限界であればサブルーチンを抜ける --#
                        return(0);
                    }

                    $count_sec++;
                }

                return(1);
            }


            #--------------------------------------------------------------#
            #■ロックディレクトリ削除                                      #
            #     目的:ロックディレクトリを削除する                       #
            #     引数:ロックディレクトリ名                               #
            #                                                              #
            #   戻り値:成功:1                                            #
            #           失敗:0                                            #
            #--------------------------------------------------------------#
            sub lockOff
            {
                my $lock_name = shift;        #ロックディレクトリ名

                #-- 削除後、結果をそのまま返す --#
                return( rmdir($lock_name) );
            }


            #                      ▲ ここまでです ▲                       #
            #                                                               #
            #===============================================================#



気になって調べたのですが、「ノンノ」の由来はアイヌ語で「花」の意味だそう
で、「Non、Non」ではないようです(笑)

    ・non-no / s-woman.net
      http://non-no.shueisha.co.jp/


    【今回参考にしたサイト】
       ・とほほのWWW入門
         http://tohoho.wakusei.ne.jp/www.htm

           →ファイルのロックに関する基礎知識
             http://tohoho.wakusei.ne.jp/wwwcgi8.htm


                            ★   後 編 に 続 く ★


                 ***** この号は二回に分割して配信しました *****


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
【 Webプログラミング Code Sample 】                          Since2001/11/23

           Code032: 気になるニュース インターネット業界の一週間

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                                                    Produced by ichikoro.com


会社のパソコンの壁紙をRX-7(マツダが発売しているスポーツカー)にしていたのです
が、それを見た上司が

     上司:「ん?(ジー)、 かつべ、似合わないぞ」
    かつべ:「クハッ!(擬音)
         っていうか買うとしたらRX-7だ!って思ってたんですよー」
     上司:「えー、そんな柄じゃないよー」
    かつべ:「じゃぁ、じゃぁ、ロードスターだったら?」
     上司:「ぶんぶん(首を横に振る音)」
    かつべ:「ほ、ほら若いうちしかこういうクルマ乗れないじゃないですか」
     上司:「だってオレ乗ってるよ」
    かつべ:「グハァッ(擬音)」

夕日がまぶしかったです(泣)
(ビルの谷間に窓があるから見えないんですけどね<夕日)

 ・噂の壁紙
    http://www.m-wm.com/present/
      ちなみに今はここにあるロードスターの壁紙を使ってます
      一番下にある「ウェブメンバーズ壁紙」というの。横浜の夜景がバック。
      クオリティー高し!ナイスだマツダ。

 ・RX-7
    http://www.rx-7.mazda.co.jp/
      排ガス規制の影響で、新車はもうすぐ生産中止です。
      最終“スピリットRシリーズ”がたまらなくいいです。

  ・ロードスター
    http://www.roadster.mazda.co.jp/
      誰に影響されたわけではなく以前から好きです。<ホントに(^^;
      というか周りにロードスター人口が多すぎて口に出せないのが本当の所。
        ※今の型じゃなくて、ライトがパカパカしてた頃が好きです。
          http://www.isize.com/carlife/cpg_dir/maker/MA/MA_50/smodel/MA_50_2.html

うーん、メッチャ趣味からのスタートですね(^^;
申し訳ない。


                   それでは後編もお楽しみください(^-^)/


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  02(1).News  「先々週の気になるニュース
                インターネット業界の一週間」
──────────────────────────────────────

最近NTTがまたLモードのCMがんばってますね。
誰か止めるヤツはいないのか(ーー;)

ちなみに我が家の電話はLモード対応だったりするのですが、NTTの対応がいまいち
だったこともありLモード契約はしていません(^^; ポイント使ってタダでもらった
物なのであんまり悔しさは感じませんでしたが、新しいサービスを使わない悔しさ
もなかったなぁ。

うーん、それを言うとフレッツISDNで何となく満足してしまってたりもしますから
ねぇ。ADSLになるのはいつのことか。何となく一念発起しないんですよねぇ。
こう、熱くさせてくれる物はないのか>Web業界<お前もダロ


───────
  4月8日(月)
───────
・総務省もワールドカップをバックアップ〜関連プロジェクト発表
  http://www.watch.impress.co.jp/internet/www/article/2002/0408/itp.htm

・国民の3人に2人は“IT”を使っている〜内閣府調査
  http://www.watch.impress.co.jp/internet/www/article/2002/0408/it.htm

・米国サーチエンジン上位は Yahoo!、MSN Search、Google 〜滞在時間ではGoogle
  http://www.watch.impress.co.jp/internet/www/article/2002/0408/nn.htm

・MSの“反UNIXサイト”にパロディ続々
  http://www.zdnet.co.jp/news/bursts/0204/08/01.html
    実はUNIXとApache(Webサーバの一種。無論MSのライバルソフト)が使われていたと
    言うもの。うーん(^^;


───────
  4月9日(火)
───────
・Webサーバーの定番「Apache2.0」がリリース
  〜利用者にアップグレードを促す
  http://www.watch.impress.co.jp/internet/www/article/2002/0409/apache.htm

・「ポップアップ・ダウンロード」に気を付けて
  http://www.zdnet.co.jp/news/0204/09/e_download.html

・『ウィンドウズ・メディア・プレーヤー』強化で
  映画配給への参入をねらうマイクロソフト
  http://www.hotwired.co.jp/news/news/business/story/20020409102.html

・携帯メールを快適に
  http://japan.internet.com/ecnews/20020409/5.html
    これ便利そうなんですよねー。
    ここから派生するところで、「一生変わらないメールアドレス」って欲しい
    ですよね。とりあえず独自ドメインか?


───────
  4月10日(水)
───────
・平成電電、月額1,200円でADSL事業に参入
  http://www.watch.impress.co.jp/internet/www/article/2002/0410/hdd.htm

・絵文字メールがiモードやJ-フォンに送信可能に
  ──EZweb向けにサービス開始
  http://www.zdnet.co.jp/mobile/0204/10/n_emoji.html

・BIGLOBEの語る「未来のISP」と5社連合構想
  http://www.zdnet.co.jp/broadband/0204/10/biglobe.html

・IT戦略本部、e-Japan重点計画の見直しを発表
  http://japan.internet.com/public/news/20020410/4.html
    抽象的で「だから何をするんですか?」というところが不明確な感じが
    します。これから、でしょうか。

・「役立たず」WAP、汚名返上なるか
  http://www.hotwired.co.jp/news/news/technology/story/20020410301.html
    ご存知の方も多いと思いますが、Ezが採用しているのは正式はWAPではありません。

・ヤフー、電話サポートサービスの有料化を検討
  http://cnet.sphere.ne.jp/News/2002/Item/020410-4.html
    ヤフー、どうなっちゃうんでしょうね。


───────
  4月11日(木)
───────
・「P2Pは、1、2年以内に限界を迎える」
  〜「ファイルローグ」の日本MMO代表 松田道人氏
  http://www.watch.impress.co.jp/internet/www/article/2002/0411/p2pc1.htm

・P2Pがもたらす収益機会の可能性〜川崎裕一Jnutella.org代表
  http://www.watch.impress.co.jp/internet/www/article/2002/0411/p2pc2.htm

・不安はあれど・・・。
  オンライン決済、約4割が主に「クレジットカード」を利用
  http://japan.internet.com/research/20020411/1.html


───────
  4月12日(金)
───────
・米GoogleがWebサービスに〜「Google Web API」を公開
  http://www.watch.impress.co.jp/internet/www/article/2002/0412/googapi.htm
    もうこれがスゴク刺激的で、仕事の合間にいじくっていました。
    どう活用できるか、興味深いですよね。

・新セキュリティ仕様に,Webサービス普及促進の期待
  http://www.zdnet.co.jp/news/0204/12/e_security.html

・「ユニクロのトマト」のライバルはドットコム企業?
  http://www.zdnet.co.jp/news/0204/12/oisix.html

・ホワイネット、秋元康・柴門ふみらが恋愛相談に応じる恋愛相談サイト開設
  http://www.venturenow.tv/venturenews/vn20020412-08d.html


-----------------------------------------------------------------[PR]---
 試してみないと分からないことって多いですよね
私たちは技術に自信があるから試して頂きたいのです!
【増毛試してコース】はあなたの為にご用意しました
 ◆◇アートネイチャー 髪2323.com◇◆
http://dt.magclick.com/.C/HLT0m04cq4GAK26mRnu4t57gQdXdiaew
------------------------------------------------------------------------

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  02(2).News  「先週の気になるニュース
                インターネット業界の一週間」
──────────────────────────────────────

CMで最近知ったのですが(お恥ずかしい)、クロネコヤマトがすでに行っている、
「宅急便メール通知サービス」がすごく便利そうです。特に一人暮らしのあなた!
注目ですよ。

このサービス、簡単に言うと

    ・荷物が届く前に、送り先の人の携帯などにメールが届く

という物。
これだけだなら「なーんだ」という感じですが、

    ・届いたメールから「配達予定日・時間帯の変更」

が、その場で行えるのです!
無論PHONE TO(電話番号をクリックし通話をする機能)になっているのではなく、Web
ページから行えます(笑)

ただ、このサービスの欠点は「送り主」がクロネコヤマトのホームページにアクセ
スし会員登録(もしくはログイン)をして、面倒くさいフォームに情報を記入した後
submitボタンを押さないといけない部分。うちの親には無理です(^^;
っていうか、私も家に帰ったら忘れてそうです。

ここがもっと簡便化できたら普及するだろうになぁ。
もしくはB2Cなサービスで企業側が対応してくれるとか。
 ※アマゾンとか楽天とか。

  ・宅急便メール通知サービス
    http://www.kuronekoyamato.co.jp/mailtuuchi/mail_guide.html


───────
  4月15日(月)
───────

・匿名掲示板の書き込みにも著作権はある
  http://www.watch.impress.co.jp/internet/www/article/2002/0415/hotel.htm

・東京都、インターネットを活用した通信制高校の設置を検討
  http://japan.internet.com/public/news/20020415/5.html

・キャッシュレスで清涼飲料を購入できる 自動販売機があなたの町にやってくる
  http://japan.internet.com/ecnews/20020415/3.html
    ところで、【120円玉】欲しくありません?(笑)


───────
  4月16日(火)
───────
・書籍情報検索サイト「Books.or.jp」がネット書店6社と連携
  http://www.watch.impress.co.jp/internet/www/article/2002/0416/books.htm
    航空業界がはじめた 国内線.com < http://www.kokunaisen.com/ > ぶりの衝撃
    でしょうか。ただ、実際のサービスはというと、これといってというか全く便利
    さを感じません。

    以前ISIZE BOOK(サービスはすでに終了しています)が行っていたのは、料金比較
    や在庫の有無が確認でき、そこからどの会社に注文するかが選択できたので大変
    メリットあったのですが、これだったら最初から馴染みのサイトで検索した方が
    明らかに手っ取り早く、使いやすいですね。
        ※注文してでも欲しいものがあまり無いせいもあるのでしょうが(^^;
         無ければ古本屋(ブックオフ)行きますしね。

    しかし、何で書籍業界というか出版業界って、価格競争がないんでしょうね。
    あるのか?あるとしてもそうは見えないぞ?(私が不勉強な部分もあると思うので
    お馬鹿なことを言っていたらごめんなさい)

    どこにいっても同じ値段だし、どの出版社も似たような値段でしか出さないよう
    に見えるのですが、どうなってるんでしょう?それでブックオフに客を取られたと
    憤慨しているのであれば、怒りの方向性間違っていますよね。

    だってamazon.comやamazon.co.jpでも洋書は、ディスカウントしてますもんね。
    何が違うんでしょうね。
    誰か説明してくれー。

・マイクロソフト、セキュリティーについての取り組みを発表
  〜セキュリティーを強化しないと、マイクロソフトには先が無い
  http://www.watch.impress.co.jp/internet/www/article/2002/0416/micro.htm


───────
  4月17日(水)
───────
・個人情報保護規格「P3P 1.0」がW3C勧告として公開
  http://www.watch.impress.co.jp/internet/www/article/2002/0417/p3p.htm
    勧告前にML作っていました(笑)
    興味のある方はご参加ください。そして発言してください。

        →P3Pメーリングリスト
          http://ichikoro.com/p3p/ml/

・“無料音楽”の急増により世界の音楽商品売上が5%減〜IFPI調査
  http://www.watch.impress.co.jp/internet/www/article/2002/0417/ifpi.htm
    それを防ごうとするのではなく、そういう流れをどう活用するか、という
    考え方が大事だと思います。何でも反対して潰そうとするのはナンセンス
    だなぁと思います。


───────
  4月18日(木)
───────
・IEに新たなセキュリティーホール:「戻る」ボタンで攻撃開始?
  http://www.hotwired.co.jp/news/news/technology/story/20020418301.html

・米国版iモード型サービス『mモード』、本格始動へ
  http://www.hotwired.co.jp/news/news/business/story/20020418103.html

・フランスでも『iモード』サービス開始へ
  http://www.hotwired.co.jp/news/news/business/story/20020418104.html


───────
  4月19日(金)
───────

・有料人力検索サービス「Google Answers」ベータテストを開始
  http://www.watch.impress.co.jp/internet/www/article/2002/0419/googles.htm
    以前、日本オラクルが「知恵の輪.com」だったかな?を展開していたのですが、
    どう見ても流行っているようには思えませんでした(^^;

    PC相談室(こっちは無料)ももう少しでクローズしますし、同様のサービスを
    展開していたアメリカのモデルも成功していません。技術力は高いのですが、
    ことビジネス的な点ではまだその真価を見せていないGoogle。眠れる虎か、そ
    れとも.....。今後の動向に注目です。

・NTTグループ、2004年度までの経営3ヵ年計画を発表
  〜原則固定電話網への投資を停止・ISPの統合など
  http://www.watch.impress.co.jp/internet/www/article/2002/0419/ntt.htm

・Xboxが足を引っ張った,Microsoftの四半期決算
  http://www.zdnet.co.jp/news/0204/19/e_ms.html
    以下引用ですが、

>    Xboxの北米での販売台数は,発売から2001年末までの6週間では
>    150万台だったのに対し,1〜3月期は推定わずか30万台だとの見
>    方を示している。同氏はまた,日本での同ゲーム機の販売台数
>    は,2月下旬の発売以来,たったの18万台(1週間当たり4000台)
>    と予測している。

    (予測ではありますが)「やっぱり」という一言につきます。
    DVDに傷がつくのを「仕様」と言っちゃぁ、よっぽどやりたいソフトがある以外は、
    少なくとも日本では買う人いないですよ。ソフトのラインナップも日本受けしそ
    うなのは数えるほどですし...。価格の引き下げも、ドリームキャストを連想させ
    ます。MSに光は見えているのでしょうか?

・「Mozilla 1.0 RC1」発表〜1.0発表まで一歩前進
  http://www.watch.impress.co.jp/internet/www/article/2002/0419/mozi.htm

・「ブランコの揺らし方」で特許
  http://www.zdnet.co.jp/news/reuters/020419/e_kidspatent.html

・セガ,アメリカンのケータイに進出
  http://www.zdnet.co.jp/news/0204/19/e_sega.html

・“Sun抜きで”盛り上がるWebサービスコンソシアム
  http://www.zdnet.co.jp/news/0204/19/e_wsi.html


-----------------------------------------------------------------[PR]---
■■      「春です!、まもなくゴールデンウィーク」    ■■
           ゴルフの予約はお済みですか?
         まだの方は、急いでGORAにアクセス!!
          ↓  ↓  ↓  ↓  ↓
http://dt.magclick.com/.C/HLT0m04cq4GApW6mRnu4t57gQdXdiafY
------------------------------------------------------------------------

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
                           編    集    後    記
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

せっかく二つに分けたのでコラムでもつけたかったのですが、間に合わなかったので
また今度。ちなみにタイトルだけは決まっています。その名は「インターネットで気
持ちは伝わるか」。ネットに限らず距離を越えたコミュニケーションが、私の一番し
たいことだったりします。その途中経過を。


さて、詳しいことは月曜日(ちょうど配信日ですね)に、前半期のミッション(業務内
容)が決まりそうです。以前は技術的な所に特化してましたが、それに「加え」アラ
イアンス(業務提携)系と、主に個人(C)に直接働きかけるプロモーション及びそれに
付随するコンテンツの担当です。
    ※って書くと何か複雑そうや(^^;

特にC向けのプロモ担当になったのは大満足です。
日本ではインターネットの世界において、尚且つ特定の分野に絞った場合、
企業よりも個人の方に発言力があるんじゃないかと常々考えていました。

というのはどっちかというとお金を出してもらうための口実で、それよりも個人サイ
トのみなさんと一緒に「作り上げていく感」を共有できるかもしれないということが、
一番うれしく、エキサイティングに感じます。またそんなアプローチをこれからかけ
て行こうと思っていまから、いきなり大量のSPAMメールを送りつけるような非常識な
ことはしませんのでご安心くださいませ(笑)


会社といえば先週、雑談がてら(というか雑談)とあるコスト計算をしていたのですが、
一案件片付けるのにざっくり見積もって、だいたい7000万円かかることになってしま
うことが判明。無論、雑談なので実際にやるわけではありませんが、

    「個人では絶対無理だよねぇ、この額じゃ」

                間

    「きっと、そのために会社があるんですよね」
    「そうだねぇ」

本当はやりたいことをやるために会社が生まれたハズなのに、いつの間にか手段の法
が優先されちゃってるような気がします。世の中的に。


ではでは、また金曜日にお会いしましょう(^.^)/~~~


■Information
 「Webプログラミングからのお知らせ」

    【相互広告募集のお知らせ】
      読者数を増やしたいメルマガ発行者さんを募集しています。お互いに一定期間(1〜
      3回程度)広告を掲載し合いませんか?詳細はご相談ください(無料)

         お問い合わせ: mm-webp@ichikoro.com

    【コラム募集のお知らせ】
      Webプログラミングでは、寄稿していただけるコラムやプログラムなどを募集して
      います。たくさんの読者の方にあなたをアピールする場にもなります。ぜひ有意義
      な情報やご意見をお送りください。

         お問い合わせ: mm-webp@ichikoro.com



■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

                   【 Webプログラミング Code Sample 】

                    発  行 : ichikoro.com
                発行責任者 : 勝部 麻季人
                              < katsube@ichikoro.com >
                  発行部数 : 1927部(前回)
                 Webサイト : < http://www.ichikoro.com/webp/ >
            お問い合わせ先 : < mm-webp@ichikoro.com >

                            Powerd by まぐまぐ
    All Right Reserved, CopyRight(C) 2001 Webプログラミング Code Sample
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■