From okabek @ beige.ocn.ne.jp Sun Nov 3 06:02:11 2002 From: okabek @ beige.ocn.ne.jp (OKABE, Keiichi) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= Message-ID: <007401c28330$df6f5700$f488fea9@jib> 岡部です. すいません.ちょっと教えてください. 前に作ったFinance::NikkeiQuoteというモジュールを バージョンアップしたんですが,PAUSEの使い方でちょっと悩んでます. ファイルをアップロードしたあと,PAUSEから > No action is required on your part > Request entered by: DAIBA (DAIBA, Keiichi) > Request entered on: Sun, 03 Nov 2002 11:26:40 GMT > Request completed: Sun, 03 Nov 2002 11:27:05 GMT というメールが来たんですが,これでよいんでしょうか?モジュールを 登録するときにはジャンルとか何か記入したような気がするんですが, バージョンアップの時には何もいらないんでしょうか. PAUSEにアクセスしたのはひさしぶりなんで,何がどこにあったのやら さっぱり思い出せません. (^^; 使い方ってどこにかいてあったでしょうか.ヒントとかありましたら 教えてください. --- okabek@beige.ocn.ne.jp 岡部 恵一 成功出於衆者、先知也、先知者、必取於人、知敵之情者也 孫子 用間篇 第十三 From miyagawa @ edge.co.jp Mon Nov 4 19:18:29 2002 From: miyagawa @ edge.co.jp (Tatsuhiko Miyagawa) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= In-Reply-To: <007401c28330$df6f5700$f488fea9@jib> References: <007401c28330$df6f5700$f488fea9@jib> Message-ID: <86adkoq0ey.wl@mail.edge.co.jp> 宮川です。 At Sun, 3 Nov 2002 21:02:11 +0900, OKABE, Keiichi wrote: > 前に作ったFinance::NikkeiQuoteというモジュールを > バージョンアップしたんですが,PAUSEの使い方でちょっと悩んでます. > ファイルをアップロードしたあと,PAUSEから > > > No action is required on your part > > Request entered by: DAIBA (DAIBA, Keiichi) > > Request entered on: Sun, 03 Nov 2002 11:26:40 GMT > > Request completed: Sun, 03 Nov 2002 11:27:05 GMT > > というメールが来たんですが,これでよいんでしょうか? ほっておいて大丈夫です。 http://search.cpan.org/author/DAIBA/Finance-NikkeiQuote-0.5.1/ ちゃんと更新されてますね。 -- Tatsuhiko Miyagawa From oyama @ cpan.org Mon Nov 4 19:46:46 2002 From: oyama @ cpan.org (Hiroyuki OYAMA) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= In-Reply-To: Your message of "Sun, 03 Nov 2002 21:02:11 JST." <007401c28330$df6f5700$f488fea9@jib> Message-ID: <20021105014647.925B413C004@li.xdsl.ne.jp> クレイフィッシュの小山あらため、小山浩之@Yahoo! JAPANです。 # またですか>俺 On 3 November 2002 at 21:02, "OKABE, Keiichi" wrote: In message <007401c28330$df6f5700$f488fea9@jib>"OKABE, Keiichi" writes >ファイルをアップロードしたあと,PAUSEから > >> No action is required on your part >> Request entered by: DAIBA (DAIBA, Keiichi) >> Request entered on: Sun, 03 Nov 2002 11:26:40 GMT >> Request completed: Sun, 03 Nov 2002 11:27:05 GMT > >というメールが来たんですが,これでよいんでしょうか?モジュールを >登録するときにはジャンルとか何か記入したような気がするんですが, >バージョンアップの時には何もいらないんでしょうか. はい、PAUSE使ってアップロードするだけです。アップロードした 後に送信されるそれらのメールに作業ログを参照できるURLがくっ ついてる筈ですので、そいつを見ると進捗がなんとなくわかります。 # 反映までは半日ぐらい? この辺の「更新するときの手続き」というか「何をするとどーなる か」ってドキュメントは見たことが無いような気がします。 僕は僕でNet::YahooMessengerとかメンテナンス出来ないので、誰か に代わって貰いたいんですがどーしたもんかわかってなかったり(汗) ___ Hiroyuki OYAMA Yahoo! Messenger[JPN]: hiroyuki_oyama From okabek @ beige.ocn.ne.jp Tue Nov 5 08:40:49 2002 From: okabek @ beige.ocn.ne.jp (OKABE, Keiichi) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UmU6IFBBVVNFGyRCJE47SCQkJCskPxsoQg==?= References: <20021105014647.925B413C004@li.xdsl.ne.jp> Message-ID: <005601c284d9$5957c850$f488fea9@jib> 岡部です. 宮川さん,小山さん,どうもありがとうございます. 更新されてますね. (^^) ----- Original Message ----- From: "Hiroyuki OYAMA" Sent: Tuesday, November 05, 2002 10:46 AM Subject: [Tokyo.pm] Re: PAUSEの使いかた > クレイフィッシュの小山あらため、小山浩之@Yahoo! JAPANです。 一度きいて見たかったんですが,ヤッホーって言う人はいないんで しょうか.Yahooができたころ,私はずっとヤッホーと呼んでたんです. (^^; > はい、PAUSE使ってアップロードするだけです。アップロードした > 後に送信されるそれらのメールに作業ログを参照できるURLがくっ > ついてる筈ですので、そいつを見ると進捗がなんとなくわかります。 ありがとうございます. m<(_ _)>m 最近作るスクリプトはネットワーク監視用ばっか. 紫色のスイッチを L3に使った祟りなのかなぁ. # スイッチにtelnetするとハングアップする. (TT) # 操作は手製のsnmpツールで実施中 --- okabek@beige.ocn.ne.jp 岡部 恵一 成功出於衆者、先知也、先知者、必取於人、知敵之情者也 孫子 用間篇 第十三 From hideyo.imazu @ morganstanley.com Wed Nov 6 19:11:53 2002 From: hideyo.imazu @ morganstanley.com (Hideyo Imazu) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= In-Reply-To: <005601c284d9$5957c850$f488fea9@jib> References: <20021105014647.925B413C004@li.xdsl.ne.jp> <005601c284d9$5957c850$f488fea9@jib> Message-ID: <20021107101137.3916.HIDEYO.IMAZU@morganstanley.com> On Tue, 5 Nov 2002 23:40:49 +0900 "OKABE, Keiichi" wrote: > 一度きいて見たかったんですが,ヤッホーって言う人はいないんで > しょうか.Yahooができたころ,私はずっとヤッホーと呼んでたんです. (^^; 私もその回りも「ヤッホー」だと思っていました。 HotJavaがYahooのことを「ヤフー」としゃべるのを聞いて「おお、これは「ヤフー」 と読むんだ」と思い知らされました。 -- 今津 英世(いまづ ひでよ) モルガン・スタンレー証券 情報技術部 From taguti @ secom-sis.co.jp Thu Nov 7 03:21:34 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] HTTP::Winder Message-ID: <200211071821.IGE75990.JUUHBV@secom-sis.co.jp> 久々登場、田口と申します。 「PAUSEの使いかた」は大よそ落着かと思いますが、 この件でメールしたくなりました。一応、スレッドは別で。 HTTP::Proxyってモジュール、CPANに出てるの、知ってます? たまたま私、Proxyに近いことがやりたくてこれを参考に、 というか継承してプログラムを作成しました。 オブジェクト指向のモジュールは作成したことが無かったので 出来ばえのほうは良くわかりません。 作者にメール送ったんですが、Host unknownで返ってきました。 ホームページも繋がらないし。 これって怪しい人なんですかねー。 そう言えば、DAIBAさんっていうのも、ある意味... HTTP::Winderを作成したきっかけは、こうです。 今運営しているサイトを何人かの人にデモする必要が出てきた のですが、このサイトはパスワードがかかっています。 数人にメールでURLを教えたいのですが、パスワードは教えたくない。 現行のシステムを触りたくない。 パスワードを追加するProxyを作成して、そのProxyを 設定して閲覧するようにしてもいいんですが、ブラウザーにProxyを 設定するのはなんか面倒(と言われそう)。 それで関係者には、 "http://hostname:nnnn/hoo/bar.htm" をメールで教えて、 同じサーバーにポートnnnnをリスンし、ユーザーとパスワードを 追加してリクエストを "http://hostname/hoo/bar.htm" に出すものを作成しようと考えました。 本当は別のサーバーにしたかったのですが、それはやり方が良く 判りませんでした。 "TCP tunnel"に似たようなものを作りたかったのですが。 で、こうゆうプログラムのことを何と呼ぶか判りますか? これもProxyでしょうか? 良く判らないので私はWinderとつけました。本当はSidewinderと したかったのですが、それだと長いので。(^_^; ストレートに80番に行くのではなく、別ポートに来たリクエストを 巻きついて(絡み付いて)80番に飛ばすもの、という意味です。 ここのML、添付ファイル禁止ですか。 モジュールとサンプルのスクリプトを掲載します。 ------------------------------------------ SampleWinder.pl #!/usr/bin/perl use HTTP::Winder; use strict; print STDERR "=== Winder :8000 ===\n"; my $winder_cb = sub { my ($req) = shift; $req = $$req; $req->authorization_basic('scott', 'tiger'); }; my $winder = HTTP::Winder->new(verbose=>1, host=>"myServer", callback=>$winder_cb); $winder->start; ------------------------------------------ ------------------------------------------ HTTP::Winder.pm package HTTP::Winder; use base ("HTTP::Proxy"); use HTTP::Daemon; use LWP::UserAgent; use LWP::ConnCache; use Data::Dumper; use POSIX qw(WNOHANG); use Fcntl ':flock'; use Carp; use strict; use vars qw( $VERSION $AUTOLOAD ); $VERSION = 0.01; sub new { my $class = shift; my $self = { agent => undef, daemon => undef, callback => undef, host => 'localhost', maxchild => 16, maxconn => 0, logfh => *STDERR, port => 8000, verbose => 0, @_, }; # non modifiable defaults %$self = ( %$self, conn => 0 ); return bless $self, $class; } sub start { my $self = shift; $self->init; $SIG{CHLD} = sub { do {} while waitpid(-1, WNOHANG) > 0 }; my $daemon = $self->daemon; while ( my $conn = $daemon->accept ) { my $child = fork; if ( !defined $child ) { # This could use a Retry-After: header... $conn->send_error( 503, "IpRedir cannot fork" ); $self->log( 0, "Cannot fork" ); next; } if ($child) { # the parent process $conn->close; # maybe... undef $conn; # maybe... $self->log( 3, "Forked child process $child" ); } else { # the child process handles the connection $self->process($conn); $conn->close; undef $conn; exit; # let's die! } } $self->log( 0, "Done " . $self->conn . " connection(s)" ); return $self->conn; } sub process { my ( $self, $conn ) = @_; while ( my $req = $conn->get_request() ) { unless ( defined $req ) { $self->log( 0, "Getting request failed:", $conn->reason ); return; } my $callback = $self->{callback}; my $reqhost = $req->header('host'); my $requrl = $req->url(); print STDERR "Winder> reqhost=$reqhost, requrl=$requrl\n"; &$callback(\$req) if (defined $callback); $reqhost =~ s/:\d+//; $req->header('host', $reqhost); $req->url('http://' . $reqhost . $requrl); $self->log( 1, "($$) Request: " . $req->uri ); $self->log( 5, "($$) Request: " . $req->headers->as_string ); # handle the Connection: header from the request my $res = $self->agent->simple_request($req); $conn->print( $res->as_string ); $self->log( 1, "($$) Response: " . $res->status_line ); $self->log( 5, "($$) Response: " . $res->headers->as_string ); last; } } 1; ------------------------------------------ Hirosi Taguti taguti@secom-sis.co.jp From dankogai @ dan.co.jp Thu Nov 7 07:20:11 2002 From: dankogai @ dan.co.jp (Dan Kogai) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] HTTP::Winder In-Reply-To: <200211071821.IGE75990.JUUHBV@secom-sis.co.jp> Message-ID: 弾です。執筆中の本もいよいよ追い込みです。 On Thursday, Nov 7, 2002, at 18:21 Asia/Tokyo, taguti wrote: > HTTP::Winderを作成したきっかけは、こうです。 > 今運営しているサイトを何人かの人にデモする必要が出てきた > のですが、このサイトはパスワードがかかっています。 > 数人にメールでURLを教えたいのですが、パスワードは教えたくない。 > 現行のシステムを触りたくない。 > パスワードを追加するProxyを作成して、そのProxyを > 設定して閲覧するようにしてもいいんですが、ブラウザーにProxyを > 設定するのはなんか面倒(と言われそう)。 > それで関係者には、 > "http://hostname:nnnn/hoo/bar.htm" > をメールで教えて、 > 同じサーバーにポートnnnnをリスンし、ユーザーとパスワードを > 追加してリクエストを > "http://hostname/hoo/bar.htm" > に出すものを作成しようと考えました。 こういう目的であれば、スピードにある程度目をつぶればこのように簡単にやってしまう方法があります(mod_perlを使えば結構速くでしょう)。 #!/usr/local/bin/perl -Tw use strict; no warnings qw(uninitialized); use LWP::UserAgent; # Change these my @auth = qw(username password); my $base = q(http://www.dan.co.jp/Echo); # And leave the rest my $uri = $base . $ENV{PATH_INFO}; my $ua = LWP::UserAgent->new; my $req = HTTP::Request->new('GET', $uri); $req->authorization_basic(@auth); my $res = $ua->request($req); print $res->headers->as_string, "\n", $res->content; __END__ これを例えばhttp://server/cgi-bin/rereq/ で呼べるようにしておいて、 http://server/cgi-bin/rereq/path/to/the/object/ に request を送ると、 http://username:password@www.dan.co.jp/Echo/path/to/the/object/ の内容を取ってきて(ヘッダー込みで)横流しするわけです。@auth と $base をカスタマイズすれば使いまわせます。 > 本当は別のサーバーにしたかったのですが、それはやり方が良く > 判りませんでした。 > "TCP tunnel"に似たようなものを作りたかったのですが。 > で、こうゆうプログラムのことを何と呼ぶか判りますか? > これもProxyでしょうか? User Agent と Server の間に入るのですから、立派に Proxy です。 > 良く判らないので私はWinderとつけました。本当はSidewinderと > したかったのですが、それだと長いので。(^_^; > ストレートに80番に行くのではなく、別ポートに来たリクエストを > 巻きついて(絡み付いて)80番に飛ばすもの、という意味です。 ちょっとわかりづらいですね。この程度の目的にわざわざlisten()するというのももったいないとも思います。逆にもっとしっかり派手にやるのであ れば、squidでredirectorを動かすという手もあります。 Dan the Man with Too Many Ways to Do It. From miyagawa @ edge.co.jp Thu Nov 7 07:39:22 2002 From: miyagawa @ edge.co.jp (Tatsuhiko Miyagawa) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] HTTP::Winder In-Reply-To: References: <200211071821.IGE75990.JUUHBV@secom-sis.co.jp> Message-ID: <86n0oljy7p.wl@mail.edge.co.jp> 宮川です。執筆中の本は遅々として進んでいません。 mod_perl でProxy 系はいくつか自分つくってCPANにおいてます。 http://search.cpan.org/author/MIYAGAWA/Apache-ACEProxy-0.04/ 多言語DNS対応プロキシ(プロトコルが古いですが、IDNA::Punycode とあわせ ればIETFで決定したものになります) http://search.cpan.org/author/MIYAGAWA/Apache-No404Proxy-0.05/ URLみつからなかったとき Google のキャッシュにredirectするプロキシ HTTP::Proxy は HTTP::Daemon ベースなのですねー。TMTOWTDI ですから、 CPANにアップロードするのは問題ないと思いますよ。名前はもうすこし generic にしろとかいわれそうですが。 余談ですが modules@perl.org に名前RFCを出すと結構な割合で修正されるの で結構うっとうしくはあります。最近は無視して勝手にアップしてますが。。 # アカウントあればアップするのは許可要らず At Thu, 7 Nov 2002 22:20:11 +0900, Dan Kogai wrote: > 弾です。執筆中の本もいよいよ追い込みです。 > User Agent と Server の間に入るのですから、立派に Proxy です。 > > > 良く判らないので私はWinderとつけました。本当はSidewinderと > > したかったのですが、それだと長いので。(^_^; > > ストレートに80番に行くのではなく、別ポートに来たリクエストを > > 巻きついて(絡み付いて)80番に飛ばすもの、という意味です。 > > ちょっとわかりづらいですね。この程度の目的にわざわざlisten()するというのももったいないとも思います。逆にもっとしっかり派手にやるのであ > れば、squidでredirectorを動かすという手もあります。 -- Tatsuhiko Miyagawa From miyagawa @ edge.co.jp Thu Nov 7 07:43:01 2002 From: miyagawa @ edge.co.jp (Tatsuhiko Miyagawa) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= In-Reply-To: <20021105014647.925B413C004@li.xdsl.ne.jp> References: <007401c28330$df6f5700$f488fea9@jib> <20021105014647.925B413C004@li.xdsl.ne.jp> Message-ID: <86lm45jy1m.wl@mail.edge.co.jp> 宮川です。 At Tue, 05 Nov 2002 10:46:46 +0900, Hiroyuki OYAMA wrote: > > 僕は僕でNet::YahooMessengerとかメンテナンス出来ないので、誰か > に代わって貰いたいんですがどーしたもんかわかってなかったり(汗) pause.perl.org に Login して "Change Permissions" でできるようですよ。 -- Tatsuhiko Miyagawa From oyama @ cpan.org Thu Nov 7 09:19:51 2002 From: oyama @ cpan.org (Hiroyuki OYAMA) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= In-Reply-To: Your message of "Thu, 07 Nov 2002 22:43:01 JST." <86lm45jy1m.wl@mail.edge.co.jp> Message-ID: <200211071521.gA7FLBrT087773@iris.glay.ne.jp> 小山浩之@Yahoo! JAPANです。同じく執筆中の本は遅々として(以下略) # 今日から自宅は東京めたりっく通信からYahoo!BBなり。 On 7 November 2002 at 22:43, Tatsuhiko Miyagawa wrote: >pause.perl.org に Login して "Change Permissions" でできるようですよ。 ごっちゃんです。あとはNet::YahooMessengerをメンテしてくれる 人を見つけるだけですな。って一番大変そう。。。どなたかいかが ですか? (まじで) __ 僕はYahoo!の読み方がわからなかった頃、人前では発声しない事に していました(笑) なんかの雑誌でカタカナで書いてるのを見て知っ たんだっけかな。 ちなみに今、世の中的にホットなのは「CPANをなんと読むか」らし いです。 ___ Hiroyuki OYAMA , Yahoo! Messenger[JPN]: hiroyuki_oyama From taguti @ secom-sis.co.jp Thu Nov 7 20:06:26 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: HTTP::Winder In-Reply-To: References: <200211071821.IGE75990.JUUHBV@secom-sis.co.jp> Message-ID: <200211081106.IEH25810.HUJUBV@secom-sis.co.jp> 田口です。 とても参考になりました。 dankogai> こういう目的であれば、スピードにある程度目をつぶればこのように簡単にやってしまう方法があります(mod_perlを使えば結構速くでしょう)。 細かいこと言うと怒られそうですが、 dankogai> my $req = HTTP::Request->new('GET', $uri); だと常にGETになるように思いますが、POSTもくるし、 もう少し手を加える必要あるんですよね。 dankogai> ちょっとわかりづらいですね。この程度の目的にわざわざlisten()するというのももったいないとも思います。逆にもっとしっかり派手にやるのであ dankogai> れば、squidでredirectorを動かすという手もあります。 自由に使えるWEBサーバーそのものが無かったりするんです。 で、自分でWEBサーバーもどきを作んないと行けない、 というか作りたい。(^_^; たしかにWinderは判りずらいですね。 でも、ブラウザーで指定するProxyとは違うし、なんか的確な言葉が ないのかなー、と思いメールしました。 ま、それより作者に連絡とりたかったのに、メールアドレスがウソっぽい 感じだったので、そのことを指摘したかったのです。 いままで、何人かのCPAN Authorにメール出してますが、Host unKnownは 初めてでした。レスの無い人は一杯いましたが。 #! taguti@secom-sis.co.jp %_ = split undef, join ' ', qw(far holr _z_~ ssjhqlxnaje npoegnttprvdwem csbuuuitdtytke ); print map $_{$_}, sort keys %_; # 965 From maeda @ tokyo.pm.org Thu Nov 7 22:52:09 2002 From: maeda @ tokyo.pm.org (maeda@tokyo.pm.org) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= In-Reply-To: <200211071521.gA7FLBrT087773@iris.glay.ne.jp> References: <86lm45jy1m.wl@mail.edge.co.jp> <200211071521.gA7FLBrT087773@iris.glay.ne.jp> Message-ID: 前田です。 OYAMA> ちなみに今、世の中的にホットなのは「CPANをなんと読むか」らし OYAMA> いです。 TPCでは「シーパン(see-pan)」しか聞いたことないっす。 他の可能性と言ってもシーピーエーエヌしか思いつきません。 「クパン」だとねらいすぎでおかしいしなー。 ちなみにCPANの名前の由来はCTAN(シータン)のもじりってんで合ってますよね? ------------------------------- Avatar Md+ d/=□=\. Md+ 前田 薫 maeda@tokyo.pm.org 75t 170km/h AFC50 O \*oo*/ " LG+ LG+ Tokyo.pm http://tokyo.pm.org HeatSink 15 LRM10 .=X ̄X=. LRM10 ------------------------------- Armor 2164 Md+ _|_ _|_ Md+ From utashiro @ iij.ad.jp Thu Nov 7 23:57:16 2002 From: utashiro @ iij.ad.jp (Kazumasa Utashiro) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?UEFVU0UbJEIkTjtIJCQkKyQ/GyhC?= In-Reply-To: References: <86lm45jy1m.wl@mail.edge.co.jp> <200211071521.gA7FLBrT087773@iris.glay.ne.jp> Message-ID: <20021108.145716.25899570.utashiro@iij.ad.jp> From: Subject: Re: [Tokyo.pm] Re: PAUSEの使いかた Date: Fri, 08 Nov 2002 13:52:09 +0900 > OYAMA> ちなみに今、世の中的にホットなのは「CPANをなんと読むか」らし > OYAMA> いです。 > > TPCでは「シーパン(see-pan)」しか聞いたことないっす。 「シーパン」をどう読むかということかと思いました。 # 会社の近くのパン屋は「(アムール)ヱーパン」(AMOUR A PAN)。 --utashiro From dankogai @ dan.co.jp Fri Nov 8 03:27:08 2002 From: dankogai @ dan.co.jp (Dan Kogai) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] CPAN? See Pan? In-Reply-To: <200211071521.gA7FLBrT087773@iris.glay.ne.jp> Message-ID: <408AE82E-F2FC-11D6-BF0F-0003939A104C@dan.co.jp> On Friday, Nov 8, 2002, at 00:19 Asia/Tokyo, Hiroyuki OYAMA wrote: > 僕はYahoo!の読み方がわからなかった頃、人前では発声しない事に > していました(笑) なんかの雑誌でカタカナで書いてるのを見て知っ > たんだっけかな。 でも「ヤッホー」でも意味的には間違いじゃないんだよね。むしろ「ミャア」とMeowの違いという感じか。 #通な人は「アケボノ」って読んだりして。 #(通でなくてジジイなだけ?) > ちなみに今、世の中的にホットなのは「CPANをなんと読むか」らし > いです。 これに関しては、Larry Wall 本人の発音が "See Pan"なので異論が出ようがないはずなのですが、Linuxの場合のように(僕の知る限り)本人が書いているわけではないので、肉声を聞いた人しかわ からないことでもあります。 問題です。 1. /bin 以下の全てのファイルの読みを答えなさい。 1.1 /bin/[ は? 2. /sbin 以下全て 3. /usr/bin および /usr/sbin 以下全て DTM From utashiro @ iij.ad.jp Fri Nov 8 12:46:19 2002 From: utashiro @ iij.ad.jp (Kazumasa Utashiro) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] CPAN? See Pan? In-Reply-To: <408AE82E-F2FC-11D6-BF0F-0003939A104C@dan.co.jp> References: <200211071521.gA7FLBrT087773@iris.glay.ne.jp> <408AE82E-F2FC-11D6-BF0F-0003939A104C@dan.co.jp> Message-ID: <20021109.034619.106416522.utashiro@iij.ad.jp> From: Dan Kogai Subject: [Tokyo.pm] CPAN? See Pan? Date: Fri, 8 Nov 2002 18:27:08 +0900 > On Friday, Nov 8, 2002, at 00:19 Asia/Tokyo, Hiroyuki OYAMA wrote: > > 僕はYahoo!の読み方がわからなかった頃、人前では発声しない事に > > していました(笑) なんかの雑誌でカタカナで書いてるのを見て知っ > > たんだっけかな。 > > でも「ヤッホー」でも意味的には間違いじゃないんだよね。 どういう意味なんですか? > むしろ「ミャア」とMeowの違いという感じか。 どういう意味なんですか? # じじいじゃない…かな? --utashiro From dankogai @ dan.co.jp Fri Nov 8 13:36:57 2002 From: dankogai @ dan.co.jp (Dan Kogai) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] CPAN? See Pan? In-Reply-To: <20021109.034619.106416522.utashiro@iij.ad.jp> Message-ID: <717AEB92-F351-11D6-805C-0003939A104C@dan.co.jp> On Saturday, Nov 9, 2002, at 03:46 Asia/Tokyo, Kazumasa Utashiro wrote: >> でも「ヤッホー」でも意味的には間違いじゃないんだよね。 > > どういう意味なんですか? 「ヤッホー」って意味です(厳密には意味にも「なりえます」)。ただしこれは"Yoohoo"のなまったもので、実はあえて"Yahoo"と雄叫ぶと野 蛮な感じになります(godに対するgoshのようなもので、あまり辞書には載ってません。もしかして英語でなくてバークレー人民共和国語にすぎなかっ たのかも)。辞書に載っている方の"yahoo"の初出は、実はガリバー旅行記に出てくる野蛮人で、JerryとDavidはむしろそれに引っ掛けて Yahoo!と名付けたようです。 参考URI http://www.dictionary.com/ http://docs.yahoo.com/info/misc/history.html > # じじいじゃない…かな? やっぱし。でも、 http://akebono.stanford.edu/ ってまだちゃんとアクセスできるようにしてありますねえ。なつかしー。でもさらにじじいなことを言うと、sumex-aim.stanford.edu も ucbvax.berkeley.edu ももはや resolve しませんねえ。あ、でも gatekeeper.dec.com は生きてる!会社はなくとも.... Dan the Dirty Old Man From tetryl @ tokyoprogrammer.com Sun Nov 10 06:15:55 2002 From: tetryl @ tokyoprogrammer.com (Shinya Hayakawa) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] CPAN? See Pan? In-Reply-To: <408AE82E-F2FC-11D6-BF0F-0003939A104C@dan.co.jp> References: <200211071521.gA7FLBrT087773@iris.glay.ne.jp> <408AE82E-F2FC-11D6-BF0F-0003939A104C@dan.co.jp> Message-ID: <20021110205925.4583.TETRYL@tokyoprogrammer.com> こんにちは。早川です。 初めて CPAN に出会った時から、ずっとクパンと発音してきました。 何も考えずに "CPAN" という文字を見ながら息を吐くと 自然と声帯がそう振るえませんか。 ところで古いモジュールの倉庫(backPAN)は「バックパン」と読みます? http://history.perl.org/ On Fri, 8 Nov 2002 18:27:08 +0900 Dan Kogai wrote: > > ちなみに今、世の中的にホットなのは「CPANをなんと読むか」らし > > いです。 > > これに関しては、Larry Wall 本人の発音が "See > Pan"なので異論が出ようがないはずなのですが、Linuxの場合のように(僕の知る限り)本人が書いているわけではないので、肉声を聞いた人しかわ > からないことでもあります。 -- SH tetryl@tokyoprogrammer.com From utashiro @ iij.ad.jp Wed Nov 13 12:19:07 2002 From: utashiro @ iij.ad.jp (Kazumasa Utashiro) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] CPAN? See Pan? In-Reply-To: <717AEB92-F351-11D6-805C-0003939A104C@dan.co.jp> References: <20021109.034619.106416522.utashiro@iij.ad.jp> <717AEB92-F351-11D6-805C-0003939A104C@dan.co.jp> Message-ID: <20021114.031907.23209167.utashiro@iij.ad.jp> From: Dan Kogai Subject: Re: [Tokyo.pm] CPAN? See Pan? Date: Sat, 9 Nov 2002 04:36:57 +0900 > On Saturday, Nov 9, 2002, at 03:46 Asia/Tokyo, Kazumasa Utashiro wrote: > >> でも「ヤッホー」でも意味的には間違いじゃないんだよね。 > > > > どういう意味なんですか? > > 「ヤッホー」って意味です(厳密には意味にも「なりえます」)。 いや、「ヤッホー」ってどういう意味なのかなって… > やっぱし。でも、 http://akebono.stanford.edu/ > ってまだちゃんとアクセスできるようにしてありますねえ。なつかしー。でもさらにじじいなことを言うと、sumex-aim.stanford.edu > も ucbvax.berkeley.edu ももはや resolve しませんねえ。あ、でも gatekeeper.dec.com > は生きてる!会社はなくとも.... ucbvax って10年以上前にすでに vangogh の CNAME でしたからねえ。 ん? okeeffe だったっけかな? vangogh.cs.berkeley.edu は、まだあるみたい。 アーッ! まだ僕のアカウントあるっ! でもパスワード忘れたっ!! --utashiro From taguti @ secom-sis.co.jp Sun Nov 17 23:45:28 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVAbKEI=?= =?iso-2022-jp?B?GyRCOD0ycz90GyhC?= Message-ID: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> 田口です。 皆さんのお力添えをお願いしたいのですが...ヒントだけでも。 現在、インターネットアクセスのログ解析をしているのですが、 各文字列の出現回数を調べたいと思います。 各文字列とは、URLに現われる単語(\b\w+\b)の事です。 (スクリプトを見てもらったほうが早いかと思いますが) URL内の各単語を数えてから、その単語で各URLを正規表現マッチ 掛けた時に何行ヒットするかを知りたいのです。 grep yahoo access.log |wc -l とすると、www.yahoo.comもwww.yahooBB.comもヒットする。 そのヒット件数を知りたい。 URI.txtは1日分のアクセスログで300万件あります。 単語は5文字以上を対象としました。 下の実行ログでは、先頭600単語まで出てますが、 ここまでで約1時間かかってます。 単語の数が3392663なので、当分終わりません。 3392663 / 600 / 24 = 235日 で年内は無理みたいです。(^_^; これをもっと高速に出来ないでしょうか? なにか良い方法あったら教えて下さい。 $ TEST2WORD.pl URI.txt === URI to WORD === $URIno=652389 $WORDno=3392663 $maxWordLen=140 start word sumarize... 100: 00000061 ... 200: 00000313 ... 300: 00000539x ... 400: 00000932 ... 500: 000014064375 ... 600: 000039 ... #!/usr/bin/perl #----------------------------------------------------------- # file : TEST2WORD.pl # func : URIから単語の出現数を計算 #----------------------------------------------------------- use strict; my ($outFileURI, $outFileWORD, $outFileWORDREX); my (%URI, %WORD, %WORDREX); my ($URIno, $WORDno, $WORDREXno); my ($maxWordLen); my ($uriList, $uriListSave); my ($rec, $recT); $outFileURI = "URI2WORD.uri"; $outFileWORD = "URI2WORD.wod"; $outFileWORDREX = "URI2WORD.wre"; print "=== URI to WORD ===\n"; #-------------------------------------------------- # ファイル読込み #-------------------------------------------------- while (my $uri=<>) { chomp $uri; ++$URI{$uri}; $uri =~ s|(\w+)|++$WORD{$1} if length($1) >= 5|ge; } #-------------------------------------------------- # 単語の長短 #-------------------------------------------------- $maxWordLen = 0; for my $w (keys %WORD) { $maxWordLen = length($w) if length($w) > $maxWordLen; } $URIno = scalar keys %URI; $WORDno = scalar keys %WORD; print "\$URIno=$URIno \$WORDno=$WORDno \$maxWordLen=$maxWordLen\n"; #-------------------------------------------------- # 長いURI列の作成 #-------------------------------------------------- for my $u (sort keys %URI) { $uriListSave .= "\t" . $u . " " . $URI{$u}; } #-------------------------------------------------- # 単語解析 #-------------------------------------------------- print "start word sumarize...\n"; $rec =$recT = 0; for my $w (sort keys %WORD) { ++$rec; ++$recT; if ($recT >= 100) { $recT = 0; print STDERR "$rec: $w ...\n" } $uriList = $uriListSave; $uriList =~ s|\t\S*$w\S*\s(\d+)|$WORDREX{$w} += $1|ge; } $WORDREXno = scalar keys %WORDREX; print "end \$WORDREXno=$WORDREXno\n"; #-------------------------------------------------- # ファイル出力 #-------------------------------------------------- print "save $outFileURI...\n"; open(OUT, ">$outFileURI"); for my $u (sort keys %URI) { print OUT $u, "\t", $URI{$u}, "\n"; } print "save $outFileWORD...\n"; open(OUT, ">$outFileWORD"); for my $w (sort keys %WORD) { print OUT $w, "\t", $WORD{$w}, "\n"; } print "save $outFileWORDREX...\n"; open(OUT, ">$outFileWORDREX"); for my $w (sort keys %WORDREX) { print OUT $w, "\t", $WORDREX{$w}, "\n"; } print "All end.\n"; #### -- Hirosi Taguti H-taguchi@secom.co.jp From maeda @ tokyo.pm.org Mon Nov 18 01:51:50 2002 From: maeda @ tokyo.pm.org (maeda@tokyo.pm.org) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROGyhC?= =?ISO-2022-JP?B?GyRCPVA4PTJzP3QbKEI=?= In-Reply-To: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> References: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> Message-ID: 前田です。 > $uri =~ s|(\w+)|++$WORD{$1} if length($1) >= 5|ge; > $uriList =~ s|\t\S*$w\S*\s(\d+)|$WORDREX{$w} += $1|ge; こういうs///の使い方はないと思う。 どうして足し算の結果を文字列に残す必要があるのか。 while(m//g){...}のつもりだった? つーかそもそも、$wって\w+なんだから、%WORDと%WORDREXって、 ひとつのURL内で同じ単語が重複して出てきた分しか違わないのでわ? ------------------------------- Avatar Md+ d/=□=\. Md+ 前田 薫 maeda@tokyo.pm.org 75t 170km/h AFC50 O \*oo*/ " LG+ LG+ Tokyo.pm http://tokyo.pm.org HeatSink 15 LRM10 .=X ̄X=. LRM10 ------------------------------- Armor 2164 Md+ _|_ _|_ Md+ From taguti @ secom-sis.co.jp Mon Nov 18 03:03:07 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PTJzP3QbKEI=?= In-Reply-To: References: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> Message-ID: <200211181803.HGC64265.BJUHUV@secom-sis.co.jp> maeda> 前田です。 どうもです。 maeda> > $uri =~ s|(\w+)|++$WORD{$1} if length($1) >= 5|ge; maeda> > $uriList =~ s|\t\S*$w\S*\s(\d+)|$WORDREX{$w} += $1|ge; maeda> maeda> こういうs///の使い方はないと思う。 maeda> どうして足し算の結果を文字列に残す必要があるのか。 maeda> while(m//g){...}のつもりだった? いけね。(-_ゞ www.yahoo.com/yahoo.html みたいに1つのURLに同じ単語が含まれる場合を考えてなかった。 でも、 www.yahoo.com/yahooBB.html の場合は... もう一度考えて再投稿します。 でも、私の困りごとは解決していないような... Hirosi Taguti H-taguchi@secom.co.jp From taguti @ secom-sis.co.jp Mon Nov 18 03:37:40 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PTJzP3QbKEI=?= In-Reply-To: References: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> Message-ID: <200211181837.HDH81922.JVBUUH@secom-sis.co.jp> 田口です。 再投稿は明日になりますが、 maeda> > $uri =~ s|(\w+)|++$WORD{$1} if length($1) >= 5|ge; maeda> > $uriList =~ s|\t\S*$w\S*\s(\d+)|$WORDREX{$w} += $1|ge; maeda> maeda> こういうs///の使い方はないと思う。 maeda> どうして足し算の結果を文字列に残す必要があるのか。 maeda> while(m//g){...}のつもりだった? 2個目の $uriList =~ s|\t\S*$w\S*\s(\d+)|$WORDREX{$w} += $1|ge; は、出来るだけ速度を上げるために考えたものです。 $uriListは、「タブ、URL、空白1つ、その出現回数」の繰り返しで、 全体で60MBくらいあります。URLの数では65万件。 ある単語がそのURLに含まれるかチェックするのに、 for $w (keys %WORD) { for $u (keys %URI) { if ($u =~ /$w/) { より、ずっと早いみたいなので。 maeda> どうして足し算の結果を文字列に残す必要があるのか。 本当に$uriListを置換する必要はないし、そうすると遅くなりそう だけど、置換しないでコードだけ実行する書き方が判んないです。 Hirosi Taguti H-taguchi@secom.co.jp From maeda @ tokyo.pm.org Mon Nov 18 06:31:48 2002 From: maeda @ tokyo.pm.org (maeda@tokyo.pm.org) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3obKEI=?= =?ISO-2022-JP?B?GyRCTnMkTj1QOD0ycz90GyhC?= In-Reply-To: <200211181837.HDH81922.JVBUUH@secom-sis.co.jp> References: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> <200211181837.HDH81922.JVBUUH@secom-sis.co.jp> Message-ID: > 置換しないでコードだけ実行する書き方が判んないです。 いや、だから、while(m//g)……。 まえだ From i16 @ imasy.or.jp Mon Nov 18 17:46:23 2002 From: i16 @ imasy.or.jp (=?ISO-2022-JP?B?GyRCTlMhITAmMGxPOhsoQg==?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PRsoQg==?= =?ISO-2022-JP?B?GyRCMnM/dBsoQg==?= In-Reply-To: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> References: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> Message-ID: <20021119082102.F4BF.I16@imasy.or.jp> i16(愛一郎)@CGIメーリングリスト です(^^)/ in "[Tokyo.pm] 単語を含む文字列の出現回数" on "Mon, 18 Nov 2002 14:45:28 +0900" to "tokyo-pm-list@happyfunball.pm.org" "taguti " san wrote: > > grep yahoo access.log |wc -l > > とすると、www.yahoo.comもwww.yahooBB.comもヒットする。 > そのヒット件数を知りたい。 田口さんのプログラム良くわからないんですけど #!/usr/bin/perl while(<>) { chomp(); $lines{$_}++; $words{$1}++ while m/(\w+)/g; } #printf "%5d %s\n", $lines{$_}, $_ foreach (sort keys %lines); #printf "%5d %s\n", $words{$_}, $_ foreach (sort keys %words); foreach $w (keys %words) { if(length($w)>=5) { foreach $a (keys %lines) { $subwords{$w} += $lines{$a} if $a =~ /$w/; } } } printf "%8d %s\n", $subwords{$_}, $_ foreach (sort keys %subwords); とか #!/usr/bin/perl while(<>) { chomp(); $lines{$_}++; while(m/(\w+)/g) {$words{$1}++ if length($1)>=5;} } #printf "%5d %s\n", $lines{$_}, $_ foreach (sort keys %lines); #printf "%5d %s\n", $words{$_}, $_ foreach (sort keys %words); foreach $w (keys %words) { foreach $a (keys %lines) { $subwords{$w} += $lines{$a} if $a =~ /$w/; } } printf "%8d %s\n", $subwords{$_}, $_ foreach (sort keys %subwords); のようなことがしたいんでしょうか? (プログラムあってる??) それより僕もログ解析はすることあるんで 部分単語のヒット数をどうして知りたいのかのほうに 僕は興味があるんですけどナゼ?(^^;; 出現単語をリストアップしてそれを調べるわけなので figure1 と figure2 しかない場合は figure では数えないわけですよね? figure_1 と figure_2 の場合も。 -- i16@forest.ne.jp http://i16.jp i16(愛一郎) -- 11/21(木) 19:00 横濱電網放電集會 澁谷變 -- http://forest.ne.jp/hoden/ From taguti @ secom-sis.co.jp Tue Nov 19 00:02:58 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PTJzP3QbKEI=?= In-Reply-To: References: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> <200211181837.HDH81922.JVBUUH@secom-sis.co.jp> Message-ID: <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> 田口です。反応おそくて済みません。 maeda> > 置換しないでコードだけ実行する書き方が判んないです。 maeda> maeda> いや、だから、while(m//g)……。 やっと、理解しました。whileを使うのかー。(って、私はPerl何年生?) 結果は、$uriList =~ s|\t\S*$w\S*\s(\d+)|$WORDREX{$w} += $1|ge; と同じになることも確認しました。でもm//gのほいうが若干早い。 で、昨日のプログラムを少し書き直しました。 でもs///gからm///gのほかは、さほど変わってません。 036: my %thisWord; # ここに、このURLの重複を省いた単語一覧を作成 040: while ($uriString =~ m|\b(\w+)\b|g) { ++$thisWord{$1} if length($1) >= 5 } で、同じURLの同じ単語を省いたくらいです。 $ grep yahoo URL_5M.txt |wc -l 6892 で、結果は正しそうです。(未だ全部見てないけど) URLのファイル件数で、 1万件で31秒 5万件で500秒 です。 1日のアクセス件数が300万から500万件なので、1日分だとやはり 当分終わりません。 i16> i16(愛一郎)@CGIメーリングリスト です(^^)/ CGIメーリングリストは私もお世話になってます。ロムばっかですが。(^_^)ゞ i16> それより僕もログ解析はすることあるんで i16> 部分単語のヒット数をどうして知りたいのかのほうに i16> 僕は興味があるんですけどナゼ?(^^;; 今のところ、それほど重要な目的はありません。_(-_-;_ 今度の仕事は、社員のインターネット・アクセス監査なんです。 使うのは会社の人事部あたり。 社員番号で検索して、その人のアクセスしたURL一覧を表示するとか、 ある文字列を入力して、その文字列を含むアクセス一覧を表示したり。 ア〇〇〇サイトばっか見ている社員を特定したいらしい。 社員が数万人いて、1日のアクセスが数百万件あるので、応答時間が とても気になるんです。で、応答時間を計測するのに、単語とヒット件数 の一覧が欲しくなったのです。 入力は単語とは限らず、yahooでなくてyahoかもしれないけど。 今私が作成しているプログラムでは、応答時間はヒット件数にかなり 左右される事がわかっています。それで... 愛一郎さんが示してくれたプログラムは未だ試していません。 Hirosi Taguti H-taguchi@secom.co.jp ------------------------------------------------------------ 1万件で31秒 13:37:39 $ TEST3WORD.pl URL_1M.txt === URI to WORD (3) === end reading IN file. $rec=10000 $URIno=4383 end extracting WORD, $WORDno=4192 start word sumarize in URI... 1000: __tn_rue ... 2000: h_link03_on ... 3000: nth_theme_business_modern_gray_stroke_bg ... 4000: train_accindents ... end $WORDREno=4192 save URI3WORD.uri... save URI3WORD.wod... save URI3WORD.wre... All end, $secTaken=31 13:38:11 $ ------------------------------------------------------------ 5万件で500秒 13:40:45 $ TEST3WORD.pl URL_5M.txt === URI to WORD (3) === end reading IN file. $rec=50000 $URIno=18717 end extracting WORD, $WORDno=15080 start word sumarize in URI... 1000: 17140_s ... 2000: 7hn32fczqiwz61ucse8888qa4 ... 3000: a0024858 ... 4000: bgbluebottom ... 5000: consumptionjunction ... 6000: ft_copyright_w ... 7000: ic_nt ... 8000: keepoint ... 9000: masthead_01 ... 10000: new_ill_now03d ... 11000: pt_3_01 ... 12000: shinoda ... 13000: taraba_mini ... 14000: topichumor ... 15000: yum_15_s ... end $WORDREno=15080 save URI3WORD.uri... save URI3WORD.wod... save URI3WORD.wre... All end, $secTaken=500 13:49:15 $ yahoo 6892 $ grep yahoo URL_5M.txt |wc -l 6892 ------------------------------------------------------------ プログラムソース 001: #!/usr/bin/perl 002: #----------------------------------------------------------- 003: # file : TEST3WORD.pl (m///g方式) 004: # func : URIから単語の出現数を計算 005: #----------------------------------------------------------- 006: use strict; 007: my ($outFileURI, $outFileWORD, $outFileWORDRE); 008: my (%URI, %WORD, %WORDRE); 009: my ($URIno, $WORDno, $WORDREno); 010: my ($maxWordLen); 011: my ($wordList, $wordListSave); 012: my ($uriList, $uriListSave); 013: my ($rec, $recT, $staTime, $secTaken); 014: $outFileURI = "URI3WORD.uri"; 015: $outFileWORD = "URI3WORD.wod"; 016: $outFileWORDRE = "URI3WORD.wre"; 017: print "=== URI to WORD (3) ===\n"; 018: $staTime = time; # スタート秒 019: #-------------------------------------------------- 020: # ファイル読込み、URLをサマリー (URL : 出現回数) 021: #-------------------------------------------------- 022: $rec = 0; 023: while (my $uri=<>) { 024: ++$rec; 025: chomp $uri; 026: ++$URI{$uri}; 027: } 028: $URIno = scalar keys %URI; 029: print "end reading IN file. \$rec=$rec \$URIno=$URIno\n"; 030: #-------------------------------------------------- 031: # 単語の抽出 032: #-------------------------------------------------- 033: for my $uri (keys %URI) { 034: my $uriString = $uri; # URLの文字列 035: my $uriNum = $URI{$uri}; # URLの出現回数 036: my %thisWord; # ここに、このURLの重複を省いた単語一覧を作成 037: 038: # $uriString =~ s|\b(\w+)\b|++$thisWord{$1} if length($1) >= 5|ge; 039: 040: while ($uriString =~ m|\b(\w+)\b|g) { ++$thisWord{$1} if length($1) >= 5 } 041: 042: for my $w (keys %thisWord) { 043: $WORD{$w} += $uriNum; 044: } 045: } 046: $WORDno = scalar keys %WORD; 047: print "end extracting WORD, \$WORDno=$WORDno\n"; 048: #-------------------------------------------------- 049: # URI列の作成 050: #-------------------------------------------------- 051: for my $u (sort keys %URI) { 052: $uriListSave .= "\t" . $u . " " . $URI{$u}; 053: } 054: #-------------------------------------------------- 055: # 単語のヒット件数の計算(URLに含まれる単語) 056: #-------------------------------------------------- 057: print "start word sumarize in URI...\n"; 058: $rec =$recT = 0; 059: for my $w (sort keys %WORD) { 060: ++$rec; 061: ++$recT; 062: if ($recT >= 1000) { 063: $recT = 0; 064: print STDERR "$rec: $w ...\n" 065: } 066: # $uriList = $uriListSave; 067: # $uriList =~ s|\t\S*$w\S*\s(\d+)|$WORDRE{$w} += $1|ge; 068: 069: while ($uriListSave =~ m|\t\S*$w\S*\s(\d+)|g) { $WORDRE{$w} += $1 } 070: } 071: $WORDREno = scalar keys %WORDRE; 072: print "end \$WORDREno=$WORDREno\n"; 073: #-------------------------------------------------- 074: # ファイル出力 075: #-------------------------------------------------- 076: print "save $outFileURI...\n"; 077: open(OUT, ">$outFileURI"); 078: for my $u (sort keys %URI) { 079: print OUT $u, "\t", $URI{$u}, "\n"; 080: } 081: print "save $outFileWORD...\n"; 082: open(OUT, ">$outFileWORD"); 083: for my $w (sort keys %WORD) { 084: print OUT $w, "\t", $WORD{$w}, "\n"; 085: } 086: print "save $outFileWORDRE...\n"; 087: open(OUT, ">$outFileWORDRE"); 088: for my $w (sort keys %WORDRE) { 089: print OUT $w, "\t", $WORDRE{$w}, "\n"; 090: } 091: $secTaken = time - $staTime; 092: print "All end, \$secTaken=$secTaken\n"; 093: #### From neo-zion @ nn.iij4u.or.jp Tue Nov 19 00:41:53 2002 From: neo-zion @ nn.iij4u.or.jp (ISHIKAWA Naota) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcxsoQg==?= =?ISO-2022-JP?B?GyRCJE49UDg9MnM/dBsoQg==?= References: <200211181445.JAD38079.UHUBJV@secom-sis.co.jp> <200211181837.HDH81922.JVBUUH@secom-sis.co.jp> <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> Message-ID: <3DD9DD31.6040004@nn.iij4u.or.jp> お茶の水女子大学非常勤講師の石川直太と申します。 細かいことですが。 > 036: my %thisWord; # ここに、このURLの重複を省いた単語一覧を作成 > 040: while ($uriString =~ m|\b(\w+)\b|g) { ++$thisWord{$1} if length($1) >= 5 } 5文字以上の単語だけを抽出したいならば、 m/\b(\w{5,})\b/ というパターンを使うほうが速くなりませんか。 > 059: for my $w (sort keys %WORD) { ここは、「sort」しなくても結果が同じになりませんか。 =========1=========2=========3=========4=========5=========6=========7 (Mr.) ISHIKAWA Naota Part-time teacher and technical writer on computer http://www.nn.iij4u.or.jp/~neo-zion/ mailto:neo-zion@nn.iij4u.or.jp From taguti @ secom-sis.co.jp Tue Nov 19 01:33:03 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PTJzP3QbKEI=?= In-Reply-To: <3DD9DD31.6040004@nn.iij4u.or.jp> References: <200211181837.HDH81922.JVBUUH@secom-sis.co.jp> <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> <3DD9DD31.6040004@nn.iij4u.or.jp> Message-ID: <200211191633.CCG28325.UVBJHU@secom-sis.co.jp> 田口です。 neo-zion> 細かいことですが。 neo-zion> neo-zion> 5文字以上の単語だけを抽出したいならば、 neo-zion> m/\b(\w{5,})\b/ neo-zion> というパターンを使うほうが速くなりませんか。 ... neo-zion> > 059: for my $w (sort keys %WORD) { neo-zion> ここは、「sort」しなくても結果が同じになりませんか。 助言、有り難う御座います。 確かにそうです。 修正して実行してみました。 が、処理時間は全く同じでした。(びっくり) 1万件で31秒 5万件で500秒 もしかして、Perlコンパイラが既に最適化していたとか。(-_-; そんなの、有り? 単語がアルファベット順でなく表示されているので、少なくとも 2つめの「sort」は削除してると思います。 16:14:53 $ TEST3WORD.pl URL_1M.txt === URI to WORD (3) \w{5,} & ! sort === end reading IN file. $rec=10000 $URIno=4383 end extracting WORD, $WORDno=4192 start word sumarize in URI... 1000: m_pcws ... 2000: a_ticket ... 3000: tn_nikye045_jpg ... 4000: tutorial ... end $WORDREno=4192 save URI3WORD.uri... save URI3WORD.wod... save URI3WORD.wre... All end, $secTaken=31 16:15:25 $ 16:15:38 $ 16:15:38 $ TEST3WORD.pl URL_5M.txt === URI to WORD (3) \w{5,} & ! sort === end reading IN file. $rec=50000 $URIno=18717 end extracting WORD, $WORDno=15080 start word sumarize in URI... 1000: bt2_up ... 2000: ennsyu ... 3000: bbs_buckground ... 4000: link_c ... 5000: gateway ... 6000: renkon ... 7000: top_tablehead1 ... 8000: top2_07 ... 9000: thujyougif_banner ... 10000: 20020814185339 ... 11000: orange ... 12000: b_ticket ... 13000: bymail ... 14000: whatlogo ... 15000: maho30 ... end $WORDREno=15080 save URI3WORD.uri... save URI3WORD.wod... save URI3WORD.wre... All end, $secTaken=500 16:24:01 $ Hirosi Taguti H-taguchi@secom.co.jp From dev @ license.to Tue Nov 19 02:32:51 2002 From: dev @ license.to (shin honda) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PRsoQg==?= =?ISO-2022-JP?B?GyRCMnM/dBsoQg==?= In-Reply-To: <200211191633.CCG28325.UVBJHU@secom-sis.co.jp> References: <3DD9DD31.6040004@nn.iij4u.or.jp> <200211191633.CCG28325.UVBJHU@secom-sis.co.jp> Message-ID: <20021119165530.CC06.DEV@license.to> まことです。 お馬鹿なので、データの流れをトレースできてない為 WORDとWORDREの違いがよくわかってないのですが^^; WORDは単語の登場回数 WORDREは単語を含むURLの数 でしょうか? #違ったら全然役に立たないソースですが^^; while (my $uri=<>) { chomp $uri; $URI{$uri}++; my $word = parse_word($uri); $WORD{$_}++ for(keys %{$word}); if($URI{$uri}==1){$WORDRE{$_}++ for(keys %{$word})}; } my %cache; sub parse_word { my $str = shift; return $cache{$str} if($cache{$str}); while ($str =~ m|\b(\w{5,})\b|g) { $cache{$str}->{$1}++ } return $cache{$str}; } とか? ---------+---------+---------+---------+---------+---------+ SHIN HONDA "http://www.cpan.jp/" "http://www.fes-total.com/" FES Co., Ltd. Tel:+81-46-278-1153 Fax:+81-46-275-0966 From taguti @ secom-sis.co.jp Tue Nov 19 03:07:37 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PTJzP3QbKEI=?= In-Reply-To: <20021119165530.CC06.DEV@license.to> References: <3DD9DD31.6040004@nn.iij4u.or.jp> <200211191633.CCG28325.UVBJHU@secom-sis.co.jp> <20021119165530.CC06.DEV@license.to> Message-ID: <200211191807.AID06552.UVUHJB@secom-sis.co.jp> 田口です。 dev> お馬鹿なので、データの流れをトレースできてない為 いえいえ、ご謙遜。忌憚の無い意見をどうぞ。(^_^)ゞ dev> WORDは単語の登場回数 dev> WORDREは単語を含むURLの数 dev> でしょうか? そのとおりです。 WORDREは、その文字列でURLの全文検索をしたら、 何行ヒットするかで、 grep 文字列 アクセスログ |wc -l と同じ数字です。 送ってもらったプログラムはprintとかないですが、 以下のプログラムで実行したところ、どうも結果が変です。 先頭の3行はこうです。 プログラムの意味が、私には良く理解できません。 出来れば、少し説明して欲しいです。 http://216.239.35.229/speed1132086.gif HASH(0x825f070) http://8017.teacup.com/mx41/bbs HASH(0x82014cc) http://a1017.lm.a.yimg.com/7/1017/1783/000/image.auctions.yahoo.co.jp/images/spacer.gif HASH(0x814b0e8) 001: #!/usr/bin/perl 002: while (my $uri=<>) { 003: chomp $uri; 004: $URI{$uri}++; 005: my $word = parse_word($uri); 006: $WORD{$_}++ for(keys %{$word}); 007: if($URI{$uri}==1){$WORDRE{$_}++ for(keys %{$word})}; 008: } 009: my %cache; 010: printf STDERR "Num of cache = %d\n", scalar(keys %cache); 011: for (sort keys %cache) { 012: print $_, "\t", $cache{$_}, "\n"; 013: } 014: exit; 015: sub parse_word { 016: my $str = shift; 017: return $cache{$str} if($cache{$str}); 018: while ($str =~ m|\b(\w{5,})\b|g) { $cache{$str}->{$1}++ } 019: return $cache{$str}; 020: } Hirosi Taguti H-taguchi@secom.co.jp From dev @ license.to Tue Nov 19 03:53:31 2002 From: dev @ license.to (shin honda) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PRsoQg==?= =?ISO-2022-JP?B?GyRCMnM/dBsoQg==?= In-Reply-To: <200211191807.AID06552.UVUHJB@secom-sis.co.jp> References: <20021119165530.CC06.DEV@license.to> <200211191807.AID06552.UVUHJB@secom-sis.co.jp> Message-ID: <20021119183309.CC14.DEV@license.to> まことです。 仕事しながら書いてたので嘘がありましたので修正です^^; テストしてないので、動かなかったりまちがってたらすみませんm(__)m #所でなんでtokyo.pmなのでしょう?perlやcgiのMLのほうが... > プログラムの意味が、私には良く理解できません。 > 出来れば、少し説明して欲しいです。 ついでなのでコメントをいれておきました。 #!/usr/bin/perl use strict; ####################################### # 定数定義 my $N = 5; my $outFileURI = 'URI3WORD.uri'; my $outFileWORD = 'URI3WORD.wod'; my $outFileWORDRE = 'URI3WORD.wre'; ####################################### # カウント処理 while (<>) { chomp; my $uri = $_; ##### URIをカウント $URI{$uri}++; ##### 単語を取得 my $word = parse_word($uri); ##### 単語数をカウント $WORD{$_}+= $word->{$_} for(keys %{$word}); ##### 単語を含むURIをカウント $WORDRE{$_}++ for(keys %{$word}); } ####################################### # ファイル出力 open(OUT, ">$outFileURI"); print OUT $_, "\t", $URI{$_}, "\n" for(sort keys %URI); close(OUT); open(OUT, ">$outFileWORD"); print OUT $_, "\t", $WORD{$_}, "\n" for(sort keys %WORD); close(OUT); open(OUT, ">$outFileWORDRE"); print OUT $_, "\t", $WORDRE{$_}, "\n" for(sort keys %WORDRE); close(OUT); exit; ####################################### # URIを渡すと$N文字以上の単語=>単語数のハッシュリファレンスを返す関数 my %cache; sub parse_word { my $str = shift; #既に処理した事のある文字列ならキャッシュを返す return $cache{$str} if($cache{$str}); # 単語を探してカウントする my %word; while ($str =~ m|\b(\w{$N,})\b|g) { $word{$1}++ } # キャッシュにいれる $cache{$str} = \%word; #単語がキーで単語数が値のハッシュリファレンスをかえす。 return $cache{$str}; } 1; ---------+---------+---------+---------+---------+---------+ SHIN HONDA "http://www.cpan.jp/" "http://www.fes-total.com/" FES Co., Ltd. Tel:+81-46-278-1153 Fax:+81-46-275-0966 From i16 @ imasy.or.jp Tue Nov 19 04:56:06 2002 From: i16 @ imasy.or.jp (=?ISO-2022-JP?B?GyRCTlMhITAmMGxPOhsoQg==?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PRsoQg==?= =?ISO-2022-JP?B?GyRCMnM/dBsoQg==?= In-Reply-To: <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> References: <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> Message-ID: <20021119193924.F4D1.I16@imasy.or.jp> i16(愛一郎)です(^^)/ in "[Tokyo.pm] Re: 単語を含む文字列の出現回数" on "Tue, 19 Nov 2002 15:02:58 +0900" to "tokyo-pm-list@happyfunball.pm.org" "taguti " san wrote: > > 愛一郎さんが示してくれたプログラムは未だ試していません。 僕のは 同じURIなら単語数え直さなくていいじゃんという気もしてきた今日この頃。 でも読むのがディスクから読むんならディスク待ちに吸収される? そこでついでに数えちゃえば速いか? 吸収されるなら読み終わってから数えたら遅いし。 共用サーバで数えるかほぼシングルプロセス状態で数えるかでも違う? ループ1個を2個にしたときのオーバヘッドとか色々。 実際に動かしてみないと良くわかりませんね。 リアルタイムに単語数えるモジュール作ってプロキシに埋めちゃうとか。 仕事の成果出せばそれ以外何しててもいいじゃんというのは自営業者の感想か。 きっちり犯罪だったりするようなよっぽどならよっぽどなんだけど アダルトサイト見てる仕事を終えたかもしれない奴注意するより 仕事の成果がない奴注意したほうが。。。 -- i16@forest.ne.jp http://i16.jp i16(愛一郎) -- 11/21(木) 19:00 横濱電網放電集會 澁谷變 -- http://forest.ne.jp/hoden/ From taguti @ secom-sis.co.jp Tue Nov 19 05:19:38 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PTJzP3QbKEI=?= In-Reply-To: <20021119183309.CC14.DEV@license.to> References: <20021119165530.CC06.DEV@license.to> <200211191807.AID06552.UVUHJB@secom-sis.co.jp> <20021119183309.CC14.DEV@license.to> Message-ID: <200211192019.BIE09074.BHVJUU@secom-sis.co.jp> 田口です。 dev> 仕事しながら書いてたので嘘がありましたので修正です^^; dev> テストしてないので、動かなかったりまちがってたらすみませんm(__)m いえ、構いません。 1万件で、 $ grep yahoo URL_1M.txt |wc -l 1899 なんですが、 URI3WORD.wod 1723件 URI3WORD.wre 1626件 となっていて、すこうし違うみたいです。 5万件では、 URI3WORD.wod 1件 URI3WORD.wre 1件 とさらに... 300万件では444804、 $ grep yahoo URL_ALL.txt |wc -l 446667 (少しだけ違う!) でも、300万件のファイルでも7分で終わりました。早すぎ。 これで結果が正しければゲームオーバなんですが。(^_^)ゞ プログラムの理解はこれからします。 dev> #所でなんでtokyo.pmなのでしょう?perlやcgiのMLのほうが... そっちは社内に見ている人がいるので、余り出たくないんです。 むかし、ショックを受けた事があり。別に悪い事はしてないですが。 会社という所は色んな人がいるです。 若しかすると、このMLにもいるかも。 Hirosi Taguti taguti@secom-sis.co.jp From dev @ license.to Tue Nov 19 05:29:20 2002 From: dev @ license.to (shin honda) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PRsoQg==?= =?ISO-2022-JP?B?GyRCMnM/dBsoQg==?= In-Reply-To: <20021119193924.F4D1.I16@imasy.or.jp> References: <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> <20021119193924.F4D1.I16@imasy.or.jp> Message-ID: <20021119202652.CC20.DEV@license.to> まことです。 > > リアルタイムに単語数えるモジュール作ってプロキシに埋めちゃうとか。 賛成^^; モジュールでなくてもパイプとかtailから受け取るとかして 単語取得後DBに突っ込むとかしたほうがはやそう^^; ---------+---------+---------+---------+---------+---------+ SHIN HONDA "http://www.cpan.jp/" "http://www.fes-total.com/" FES Co., Ltd. Tel:+81-46-278-1153 Fax:+81-46-275-0966 From taguti @ secom-sis.co.jp Tue Nov 19 05:34:25 2002 From: taguti @ secom-sis.co.jp (=?iso-2022-jp?B?GyRCI3QjYSNnI3UjdCNpGyhC?=) Date: Thu Aug 5 00:22:53 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PTJzP3QbKEI=?= In-Reply-To: <20021119193924.F4D1.I16@imasy.or.jp> References: <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> <20021119193924.F4D1.I16@imasy.or.jp> Message-ID: <200211192034.IHD62833.JHUBUV@secom-sis.co.jp> 田口です。 ちと脱線。 i16> 仕事の成果出せばそれ以外何しててもいいじゃんというのは自営業者の感想か。 i16> きっちり犯罪だったりするようなよっぽどならよっぽどなんだけど i16> アダルトサイト見てる仕事を終えたかもしれない奴注意するより i16> 仕事の成果がない奴注意したほうが。。。 正論ですね、賛成です。 仕事もって来てる人が成果出せない人だったりして... (おっと危ない) こんなシステム作りたくないですが、お仕事なので拒否権ありません。 Hirosi Taguti #! taguti@secom-sis.co.jp %_ = split undef, join ' ', qw(far holr _z_~ ssjhqlxnaje npoegnttprvdwem csbuuuitdtytke ); print map $_{$_}, sort keys %_; # 965 From dev @ license.to Tue Nov 19 06:55:16 2002 From: dev @ license.to (shin honda) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PRsoQg==?= =?ISO-2022-JP?B?GyRCMnM/dBsoQg==?= In-Reply-To: <200211192019.BIE09074.BHVJUU@secom-sis.co.jp> References: <20021119183309.CC14.DEV@license.to> <200211192019.BIE09074.BHVJUU@secom-sis.co.jp> Message-ID: <20021119204505.CC23.DEV@license.to> まことです。 > 300万件では444804、 > $ grep yahoo URL_ALL.txt |wc -l > 446667 > (少しだけ違う!) > でも、300万件のファイルでも7分で終わりました。早すぎ。 forループを減らすのと正規表現を簡単にするのがポイントです^^; > これで結果が正しければゲームオーバなんですが。(^_^)ゞ while ($str =~ m|\b(\w{$N,})\b|g) { $word{$1}++ } って所を while ($str =~ m|\b(\w+)\b|g) { $word{$1}++ if(length($1) >= $N)} とかにしたらどうでしょう? > プログラムの理解はこれからします。 そんなに難しい事はしてない(と思うので)頑張ってください。 #おかしくないですよね?>識者の方 ---------+---------+---------+---------+---------+---------+ SHIN HONDA "http://www.cpan.jp/" "http://www.fes-total.com/" FES Co., Ltd. Tel:+81-46-278-1153 Fax:+81-46-275-0966 From kozuka @ mikeneko.ne.jp Tue Nov 19 07:47:09 2002 From: kozuka @ mikeneko.ne.jp (=?ISO-2022-JP?B?GyRCPi5ETRsoQiAbJEJGWBsoQg==?=) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3obKEI=?= =?ISO-2022-JP?B?GyRCTnMkTj1QOD0ycz90GyhC?= In-Reply-To: <20021119204505.CC23.DEV@license.to> References: <20021119204505.CC23.DEV@license.to> Message-ID: <80C28FD227C5B9kozuka@mikeneko.ne.jp> こんにちは、小塚と申します。 >そんなに難しい事はしてない(と思うので)頑張ってください。 >#おかしくないですよね?>識者の方 www.yahoo.co.jp www.yahooBB.co.jp www.kizyahoo.co.jp www.aaaaaaaa.co.jp こんな4行のテキストを、単語「yahoo」で検索することを考え ますと、grep なら 3 行ヒットするわけです。 田口さんのスクリプトでも $WORDRE{"yahoo"} は 3 になります。 まことさんのだと、$WORDRE{"yahoo"} が 1 になりませんか? 私がなにか勘違いしていたらすみません。 -- 小塚 敦 From oyama @ cpan.org Tue Nov 19 08:08:14 2002 From: oyama @ cpan.org (Hiroyuki OYAMA) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?J1NhbHRlZF9fJxskQiRDJEYyPyRoISMhIyEjGyhC?= Message-ID: <200211191407.gAJE7dFG029791@iris.glay.ne.jp> 小山浩之@Yahoo! JAPANです。 opensslコマンドのTripleDES等の対称暗号(秘密鍵暗号)オプション の動作を示すドキュメントを探しています。opensslコマンドで % echo 'Hello World!' | openssl des3 -e -k 'hogehoge' したときの出力をPerl or/and Javaで再現 or 復号化したいんです が、ドキュメントなりモジュールなりが見つけられなくてまいっち んぐな状態です。 OpenSSLのcryptoライブラリとopensslコマンドのソースは追ってい る途中でまだ良く理解できていないのですが、 my $plain_text = "Hello World!\n"; $source = $plain_text. sha1($plain_text); my $crypted = des3($source); # 暗号モードはさておき print 'Salted__'. $crypted; ってな雰囲気の事をしているように見えます。これって一般的とい うか標準的な方法なんでしょうか? それともOpenSSLのオレ仕様? opensslコマンドをパイプ経由で使うのとXSでEVPライブラリをラッ プするのは最後の手段って事で。同じ仕事*を一発でこなすモジュー ルがあるならそれでも良いんですが、はて。 ___ Hiroyuki OYAMA , Yahoo! Messenger[JPN]: hiroyuki_oyama From maeda @ tokyo.pm.org Tue Nov 19 18:57:42 2002 From: maeda @ tokyo.pm.org (maeda@tokyo.pm.org) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3obKEI=?= =?ISO-2022-JP?B?GyRCTnMkTj1QOD0ycz90GyhC?= In-Reply-To: <20021119193924.F4D1.I16@imasy.or.jp> References: <200211191502.IGJ99464.JHUUVB@secom-sis.co.jp> <20021119193924.F4D1.I16@imasy.or.jp> Message-ID: 前田です。 林さん> 仕事の成果出せばそれ以外何しててもいいじゃんというのは自営業者の感想か。 林さん> きっちり犯罪だったりするようなよっぽどならよっぽどなんだけど 林さん> アダルトサイト見てる仕事を終えたかもしれない奴注意するより 林さん> 仕事の成果がない奴注意したほうが。。。 いや、それが、ことアダルトに関していうと、 セクハラという問題があるんで、雇用者側も放っとけないと思います。 2chなら放っとけてもアダルトはダメでしょうね。 ------------------------------- Avatar Md+ d/=□=\. Md+ 前田 薫 maeda@tokyo.pm.org 75t 170km/h AFC50 O \*oo*/ " LG+ LG+ Tokyo.pm http://tokyo.pm.org HeatSink 15 LRM10 .=X ̄X=. LRM10 ------------------------------- Armor 2164 Md+ _|_ _|_ Md+ From dev @ license.to Wed Nov 20 06:00:45 2002 From: dev @ license.to (shin honda) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCQzE4bCRyNF4kYEo4O3pOcyROPVA4PRsoQg==?= =?ISO-2022-JP?B?GyRCMnM/dBsoQg==?= In-Reply-To: <80C28FD227C5B9kozuka@mikeneko.ne.jp> References: <20021119204505.CC23.DEV@license.to> <80C28FD227C5B9kozuka@mikeneko.ne.jp> Message-ID: <20021120204038.CCBF.DEV@license.to> まこと@仕事中です。 何度もソースを送ってしまいすみません。 > こんな4行のテキストを、単語「yahoo」で検索することを考え > ますと、grep なら 3 行ヒットするわけです。 > 田口さんのスクリプトでも $WORDRE{"yahoo"} は 3 になります。 > まことさんのだと、$WORDRE{"yahoo"} が 1 になりませんか? 構文が通るかもチェックしてませんでしたm(__)m とりあえず、もとのものに比べれば格段に早くなってるんではないかと^^; あとは自力でがんばってください^^;>田口さん #!/usr/bin/perl use strict; ####################################### # 定数定義 my(%URI,%WORD,%WORDC,%WORDRE); my $N = 5; my $outFileURI = 'URI3WORD.uri'; my $outFileWORD = 'URI3WORD.wod'; my $outFileWORDRE = 'URI3WORD.wre'; ####################################### # カウント処理 while (<>) { chomp; my $uri = $_; ##### URIをカウント $URI{$uri}++; ##### 単語を取得 my $word = parse_word($uri); ##### 単語数をカウント for(keys %{$word}){ $WORDC{$_} += $word->{$_}; $WORD{$_}++; } } my @word1 = keys %WORD; for(@word1){ my $word = $_; /$word/ and $WORDRE{$word} += $WORD{$_} for(keys %WORD); } ####################################### # ファイル出力 print "== $outFileURI\n"; print $_, "\t", $URI{$_}, "\n" for(sort keys %URI); print "== $outFileWORD\n"; print $_, "\t", $WORDC{$_}, "\n" for(sort keys %WORDC); print "== $outFileWORDRE\n"; print $_, "\t", $WORDRE{$_}, "\n" for(sort keys %WORDRE); exit; ####################################### # URIを渡すと$N文字以上の単語=>単語数のハッシュリファレンスを返す関数 my %cache; sub parse_word { my $str = shift; #既に処理した事のある文字列ならキャッシュを返す return $cache{$str} if($cache{$str}); # 単語を探してカウントする my %word; while ($str =~ m|\b(\w{$N,})\b|go) { $word{$1}++ } # キャッシュにいれる $cache{$str} = \%word; #単語がキーで単語数が値のハッシュリファレンスをかえす。 return $cache{$str}; } 1; ---------+---------+---------+---------+---------+---------+ SHIN HONDA "http://www.cpan.jp/" "http://www.fes-total.com/" FES Co., Ltd. Tel:+81-46-278-1153 Fax:+81-46-275-0966 From maeda @ tokyo.pm.org Thu Nov 21 20:00:00 2002 From: maeda @ tokyo.pm.org (maeda@tokyo.pm.org) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?GyRCQTBFRCRoJGo2SEwzTyJNbRsoQjogGyRCJWEhPCVrGyhC?= =?ISO-2022-JP?B?GyRCJCxGTyQrJEokJD9NGyhC?= Message-ID: 前田です。ちと業務連絡。 kuni@mv.tramonline.net にforwardしてる方、このアドレスからエラー がたくさんくるので、何とかしてください。tokyo-pm-listの購読者リ ストには入っていないので、どなたか登録アドレスからforwardしてる んだと思います。 @niftyの方々、時々メールボックスがあふれてるようなので、 気をつけてくださいね。 そうそう、購読者リストに入ってるアドレスがpermanent errorを数回 出した場合、私が勝手にunsubscribeさせます。いつの間にかメールが 来なくなったら、subscribeし直してください。 # ↑「いない人手あげて」みたいなメッセージですみません。 削除者リストをWebに出すっていうやり方してるMLもあるみたいだけど、 それもなー。ああ、一部ふせ字にすればいいか? いやー、すでに読んでない可能性も高いですけど。 さらし者にするつもりはないので、修正したら私だけにこっそり知らせてくださいm(_ _)m 購読者全員に1通ずつ「このアドレスは生きてますかメール」を出すの も、受信者にとってみればうっとうしいしなあ。 「※未承認広告」とかつけると、場合によってプロバイダで削除される? その場合、メールアドレスの有効性はわからないよね。 業務連絡でした。 ------------------------------- Avatar Md+ d/=□=\. Md+ 前田 薫 maeda@tokyo.pm.org 75t 170km/h AFC50 O \*oo*/ " LG+ LG+ Tokyo.pm http://tokyo.pm.org HeatSink 15 LRM10 .=X ̄X=. LRM10 ------------------------------- Armor 2164 Md+ _|_ _|_ Md+ From nakatani @ konica.co.jp Thu Nov 21 23:07:24 2002 From: nakatani @ konica.co.jp (Koichi Nakatani) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?J1NhbHRlZF9fJxskQiRDJEYyPyRoISMbKEI=?= =?ISO-2022-JP?B?GyRCISMhIxsoQg==?= References: <200211191407.gAJE7dFG029791@iris.glay.ne.jp> Message-ID: <3DDDBB8C.8010909@konica.co.jp> 中谷です。 Hiroyuki OYAMA wrote: > OpenSSLのcryptoライブラリとopensslコマンドのソースは追ってい > る途中でまだ良く理解できていないのですが、 > > my $plain_text = "Hello World!\n"; > $source = $plain_text. sha1($plain_text); > my $crypted = des3($source); # 暗号モードはさておき > print 'Salted__'. $crypted; > > ってな雰囲気の事をしているように見えます。これって一般的とい > うか標準的な方法なんでしょうか? それともOpenSSLのオレ仕様? CHANGES によると: *) Modify enc utility's salting as follows: make salting the default. Add a magic header, so unsalted files fail gracefully instead of just decrypting to garbage. This is because not salting is a big security hole, so people should be discouraged from doing it. [Ben Laurie] だそうです。独自仕様だろうなあ。 From oyama @ cpan.org Fri Nov 22 09:59:25 2002 From: oyama @ cpan.org (Hiroyuki OYAMA) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?J1NhbHRlZF9fJxskQiRDJEYyPyRoISMbKEI=?= =?ISO-2022-JP?B?GyRCISMhIxsoQg==?= In-Reply-To: Your message of "Fri, 22 Nov 2002 14:07:24 JST." <3DDDBB8C.8010909@konica.co.jp> Message-ID: <200211221559.gAMFx1FG003336@iris.glay.ne.jp> 小山浩之です。 情報ありがとうございます。ってまず付属のドキュメントを見 ないとですね(汗) On 22 November 2002 at 14:07, Koichi Nakatani wrote: In message <3DDDBB8C.8010909@konica.co.jp>Koichi Nakatani writes >CHANGES によると: > *) Modify enc utility's salting as follows: make salting the default. Add a > magic header, so unsalted files fail gracefully instead of just decryptin >g > to garbage. This is because not salting is a big security hole, so people > should be discouraged from doing it. > [Ben Laurie] > >だそうです。独自仕様だろうなあ。 なるほど。OpenSSLのAPIに関するドキュメントって物凄く少ない ので調べきれてませんが、RSAのPKCS#5とかと絡むのかしらん? という風に見てます。でもそっち系はさっぱりの人なのでよく分 かりません。 PKSC#5 - Password-Based Cryptgraphy Standard: http://www.rsasecu-rity.com/rsalabs/pkcs/pkcs-5/ opensslコマンドの % echo 'Hello World!' | openssl des-ede3-cfb -k 'Secret password' -e この出力は 'Salted__'. $salt. des_ede3_cfb_encrypt($message. substr(sha1($message), 0, 5)) ってな構造で'Salted__'はsaltが付いてるぞーってな印で、オケ ツのSHA-1のMessage Digestは復号したときの検証用でした。 結局Perlだけ(含むCPAN module)で実装するのは断念して、 OpenSSLのcryptoライブラリのevp APIを使うXSのモジュール書く よう方向修正し、上記opensslコマンドと気持ち良く暗号を出し 入れできるモジュールがでけました。仕事で書いちゃったモノな のですがそのうちCAPNにあげるかも(未定) そしてここに至るまでに役に立った唯一のドキュメントはスペイ ン語ときたもんだ。。。 # 調べ方が悪いのかなぁ http://spisa.act.uji.es/~juan/tutoriales/openssl/evp/ ここ数日間悩まされ続けたOpenSSLのライブラリですが、ちょっ と面白かったのでいずれまとめてみますです。 ___ Hiroyuki OYAMA , Yahoo! Messenger[JPN]: hiroyuki_oyama From yasuo.matsumoto @ jalinfotec.co.jp Wed Nov 27 23:19:50 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?GyRCNEpDMSRKJVElOSVvITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= Message-ID: <004901c2969d$c6bdbaf0$6f571fac@matumoto> 松本です。 いま仕事で、Solarisのセキュリティチェックのスクリプトを書いて いるのですが、パスワードジェネレータでつまっています。 パスワードジェネレータを一行野郎で書けます? ではでは。 From k.okabe @ ntt-bb.com Thu Nov 28 01:36:19 2002 From: k.okabe @ ntt-bb.com (Keiichi Okabe) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UmU6IBskQjRKQzEkSiVRJTklbyE8JUklOCUnJU0lbCE8JT8kQyRGGyhC?= References: <004901c2969d$c6bdbaf0$6f571fac@matumoto> Message-ID: <013f01c296b0$d768b810$9c6610ac@nttbb.com> 岡部です. ----- Original Message ----- From: "matumoto" Sent: Thursday, November 28, 2002 2:19 PM Subject: [Tokyo.pm] 簡単なパスワードジェネレータって > パスワードジェネレータを一行野郎で書けます? こんなのどうでしょう? C:\>perl -e "@a = (0..9,a..z,A..Z); map {print $a[int (rand(62))]}(1..8)" zPtO1cuZ --- k.okabe@ntt-bb.com 岡部 恵一 成功出於衆者、先知也、先知者、必取於人、知敵之情者也 孫子 用間篇 第十三 From dev @ license.to Thu Nov 28 02:52:48 2002 From: dev @ license.to (shin honda) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?GyRCNEpDMSRKJVElOSVvITwlSSU4JSclTRsoQg==?= =?ISO-2022-JP?B?GyRCJWwhPCU/JEMkRhsoQg==?= In-Reply-To: <004901c2969d$c6bdbaf0$6f571fac@matumoto> References: <004901c2969d$c6bdbaf0$6f571fac@matumoto> Message-ID: <20021128174509.8F51.DEV@license.to> まことです。m(__)m > いま仕事で、Solarisのセキュリティチェックのスクリプトを書いて > いるのですが、パスワードジェネレータでつまっています。 > パスワードジェネレータを一行野郎で書けます? 微妙ですが... cat /dev/urandom |perl -e 'print (( =~ /(\w)/g)[0..8]);' ---------+---------+---------+---------+---------+---------+ SHIN HONDA "http://www.cpan.jp/" "http://www.fes-total.com/" FES Co., Ltd. Tel:+81-46-278-1153 Fax:+81-46-275-0966 From dankogai @ dan.co.jp Thu Nov 28 03:54:13 2002 From: dankogai @ dan.co.jp (Dan Kogai) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?UmU6IFtUb2t5by5wbV0gUmU6IBskQjRKQzEkSiVRJTkbKEI=?= =?ISO-2022-JP?B?GyRCJW8hPCVJJTglJyVNJWwhPCU/JEMkRhsoQg==?= In-Reply-To: <013f01c296b0$d768b810$9c6610ac@nttbb.com> Message-ID: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> On Thursday, Nov 28, 2002, at 16:36 Asia/Tokyo, Keiichi Okabe wrote: >> パスワードジェネレータを一行野郎で書けます? > > こんなのどうでしょう? > > C:\>perl -e "@a = (0..9,a..z,A..Z); map {print $a[int > (rand(62))]}(1..8)" > zPtO1cuZ 先を越されたか。 # わりと素直 perl -e 'for (1..8){$p.=(0..9,a..z,A..Z,qw[. /])[int rand 64]} print "$p\n"' # こんなのもありか perl -e '$_="password";s:.:(0..9,a..z,A..Z,qw[. /])[int rand 64]:ge; print "$_\n"' # rand を使わないってのもありかな perl -e 'open R, shift; read R, $r, 8;' \ -e '@r = map {(0..9,a..z,A..Z,qw[. /])[$_/4]}unpack("C8", $r);' \ -e 'print @r, "\n"' /dev/urandom Dan the Randomized Man From yasuo.matsumoto @ jalinfotec.co.jp Thu Nov 28 04:49:41 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UmU6IFtUb2t5by5wbV0gUmU6IBskQjRKQzEkSiVRJTklbxsoQg==?= =?iso-2022-jp?B?GyRCITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= References: <004901c2969d$c6bdbaf0$6f571fac@matumoto> <013f01c296b0$d768b810$9c6610ac@nttbb.com> Message-ID: <004c01c296cb$daf9d9d0$6f571fac@matumoto> 松本です。 そうか、mapを使うのか。 でも、map{ }(1..8) って書き方は知らなかったです。 あれ C:\>> ? では。 ---- 岡部さんは書きました。 > > > パスワードジェネレータを一行野郎で書けます? > > こんなのどうでしょう? > > C:\>> zPtO1cuZ > From yasuo.matsumoto @ jalinfotec.co.jp Thu Nov 28 04:59:25 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UmU6IFtUb2t5by5wbV0gGyRCNEpDMSRKJVElOSVvITwlSSU4JScbKEI=?= =?iso-2022-jp?B?GyRCJU0lbCE8JT8kQyRGGyhC?= References: <004901c2969d$c6bdbaf0$6f571fac@matumoto> <20021128174509.8F51.DEV@license.to> Message-ID: <005e01c296cd$36ec67c0$6f571fac@matumoto> 松本です。 Solarisだと " ではなく '  でしたね。うっかりしていました。 /dev/urandom はSolarisではディフォルトじゃないのだけど セキュリティ的には入れたほうがいいので等など、 使用するのは、微妙ですね。 で。 > まことです。m(__)m > > > いま仕事で、Solarisのセキュリティチェックのスクリプトを書いて > > いるのですが、パスワードジェネレータでつまっています。 > > パスワードジェネレータを一行野郎で書けます? > 微妙ですが... > cat /dev/urandom |perl -e 'print (( =~ /(\w)/g)[0..8]);' > From ryuchi @ ryuchi.org Thu Nov 28 06:56:40 2002 From: ryuchi @ ryuchi.org (Tetsuya Ryuchi) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?GyRCSzpHLzJxJCs/N0cvMnEbKEI=?= Message-ID: <20021128215640Q.ryuchi@ryuchi.org> さて、もう2002年もあとわずか... というわけで、そろそろ YA.C 2003 (名称未決定) について具体的に行動を はじめないと、辛い時期になりました。 この辺りの話題を中心にして 忘年会か 新年会をしませんか? うーん 宴会しながらでなく、どこかの会議室で打ち合わせを行った方が いいかもしれませんね.... (龍) -- # From Tetsuya Ryuchi # Powered By FreeBSD, IPv4 and IPv6 Ready! From yasuo.matsumoto @ jalinfotec.co.jp Thu Nov 28 07:44:08 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UmU6IBskQjRKQzEkSiVRJTklbyE8JUklOCUnJU0lbCE8JT8kQyRGGyhC?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> Message-ID: <008201c296e4$39ae4f70$6f571fac@matumoto> 松本です。 特殊記号も使用するなら、こんなんどうでしょう。 # perl -e 'print pack "c8",map{33+int rand 62}(1..8)' 9]^8QD14 もっと短くできますかね。 From yasuo.matsumoto @ jalinfotec.co.jp Fri Nov 29 00:24:56 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UmU6IBskQjRKQzEkSiVRJTklbyE8JUklOCUnJU0lbCE8JT8kQyRGGyhC?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> Message-ID: <000901c29770$09617b30$6f571fac@matumoto> 松本です。 最終的には、こんなんしました。まんまですね。 最初の文字だけ英字でないとパスワードという感じがしません。 100個作成して、脆弱性の試験をかけるというシナリオです。 これも簡単にかけたらうれしいのだけど。 perl -e '@a = (a..z,A..Z); map{print $a[int rand 52];\ print pack "c7",map{33+int rand 93}(1..7);print "\n"}(1..100)' From ryuchi @ ryuchi.org Fri Nov 29 01:00:32 2002 From: ryuchi @ ryuchi.org (Tetsuya Ryuchi) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCNEpDMSRKJVElOSVvITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= In-Reply-To: <000901c29770$09617b30$6f571fac@matumoto> References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> <000901c29770$09617b30$6f571fac@matumoto> Message-ID: <20021129160032S.ryuchi@ryuchi.org> りゅうちです > 最初の文字だけ英字でないとパスワードという感じがしません。 その思い込みは、脆弱性でない? その様にすると、数字や英記号で始まるパスワードが作れなくなる ので、0x21〜0x3f, 0x5b〜0x60, 0x7b〜0x7e の文字で始まるパスワー ドの分だけ使えなくなってしまいます。 (龍) -- # From Tetsuya Ryuchi # Powered By FreeBSD, IPv4 and IPv6 Ready! From ryuchi @ ryuchi.org Fri Nov 29 01:24:30 2002 From: ryuchi @ ryuchi.org (Tetsuya Ryuchi) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?iso-2022-jp?B?GyRCNEpDMSRKJVElOSVvITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= In-Reply-To: <000901c29770$09617b30$6f571fac@matumoto> References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> <000901c29770$09617b30$6f571fac@matumoto> Message-ID: <20021129162430D.ryuchi@ryuchi.org> りゅうちです > 最初の文字だけ英字でないとパスワードという感じがしません。 > 100個作成して、脆弱性の試験をかけるというシナリオです。 これって、脆弱性の試験になっていない気がしますが... 私の勘違いでしょうか? # パスワードの脆弱性とは なんであるか? って議論が発生しそうですが... 任意に生成されたパスワードと偶然一致したから脆弱であると言われても 困ると思うのです。 通常パスワードは ある特定の文字列の並びでしか過ぎず、 それは、ランダムに抽出した文字列と一致する確率は x種類の文字から y文字 使うと 1/(P x, y) ですよね? P x,y は順列(だったけ?) なんの規則性もなく ランダムに抽出されたパスワードに一致しても、それは どんなパスワードにも等しく存在する偶然の一致なので、これをもって脆弱と いうのは乱暴だと思います。(本当に乱数なら)次にテストしても一致すること はないはずです。 (ちなみに 松本さんのスプリクトは擬似乱数の種を作り直していないので、 生成されるパスワードは毎回同じ?) 私が思うに脆弱性のテストは 本人や家族などのプロフィール(生年月日、 住所、電話番号など)や、既存の辞書、その他 日常的に使われる単語などから パスワードを生成してチェックするのが 脆弱性のテストだと思うのですが。 (龍) -- # From Tetsuya Ryuchi # Powered By FreeBSD, IPv4 and IPv6 Ready! From yasuo.matsumoto @ jalinfotec.co.jp Fri Nov 29 06:12:32 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?GyRCNEpDMSRKJVElOSVvITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp><008201c296e4$39ae4f70$6f571fac@matumoto><000901c29770$09617b30$6f571fac@matumoto> <20021129162430D.ryuchi@ryuchi.org> Message-ID: <001901c297a0$985ba6a0$6f571fac@matumoto> 松本です。 考え方は擬似素数発生器を使って 生成した素数候補をテストするみたいなことをやりたいのです。 > > りゅうちです > > > 最初の文字だけ英字でないとパスワードという感じがしません。 > > 100個作成して、脆弱性の試験をかけるというシナリオです。 > > これって、脆弱性の試験になっていない気がしますが... 私の勘違いでしょうか ? > # パスワードの脆弱性とは なんであるか? って議論が発生しそうですが... > > 任意に生成されたパスワードと偶然一致したから脆弱であると言われても > 困ると思うのです。 通常パスワードは ある特定の文字列の並びでしか過ぎず、 > それは、ランダムに抽出した文字列と一致する確率は x種類の文字から y文字 > 使うと 1/(P x, y) ですよね? P x,y は順列(だったけ?) > いやいや、任意に生成したパスワードについて脆弱性を試験しようってんです。 クラッキングツールを作っているんじゃないです。 頭が英字じゃないと覚える気も起きないじゃないですか。 例え英字にしたとろで桁数は見た目変わらないじゃないかな。(計算してないけど) 計算は  52x93x93x93x93x93x93x93 と        93x93x93x93x93x93x93x93 なので、数は (93-52)/93 ぐらいしか減らない? 順列・・・いくつかのものを、順序をつけて1列に並べたもの。 組合せ・・・順序を問題にしないもの。 だそうです。(http://www.ne.jp/asahi/license/ikawa17/info_kiso/kougi102.html) > (ちなみに 松本さんのスプリクトは擬似乱数の種を作り直していないので、 > 生成されるパスワードは毎回同じ?) > たしかにね。これも一行野郎でかかなくてはいけないのか。 > 私が思うに脆弱性のテストは 本人や家族などのプロフィール(生年月日、 > 住所、電話番号など)や、既存の辞書、その他 日常的に使われる単語などから > パスワードを生成してチェックするのが 脆弱性のテストだと思うのですが。 > これは john the Ripperがあるので。 では。 From neo-zion @ nn.iij4u.or.jp Fri Nov 29 06:42:57 2002 From: neo-zion @ nn.iij4u.or.jp (ISHIKAWA Naota) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCNEpDMSRKJVElOSVvITwlSRsoQg==?= =?ISO-2022-JP?B?GyRCJTglJyVNJWwhPCU/JEMkRhsoQg==?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> <000901c29770$09617b30$6f571fac@matumoto> <20021129160032S.ryuchi@ryuchi.org> Message-ID: <3DE760D1.7030402@nn.iij4u.or.jp> お茶の水女子大学非常勤講師の石川直太と申します。 本題から少し離れますが、パスワードについて質問させてください。 > >>最初の文字だけ英字でないとパスワードという感じがしません。 > > その思い込みは、脆弱性でない? > パスワードには、0x20 から 0x7e までの全ての文字を使えるのでしょうか。 昔、私が実験したところ、英数字以外にパスワードに使える文字は、 LUNAのUNIOS-B2の場合 !"#$%&'()*+<=>/;?@[\]^_`{|}~ POP-NEWSのNEWS-OS4の場合 "#$%'()+<=>/;?[\]_`{|}~ でした。特に、「:」をパスワードに含めると、登録されてしまうが、 次にパスワードを変えたいときに yppasswd がエラーを起こすという 厄介な現象がありました。 =========1=========2=========3=========4=========5=========6=========7 (Mr.) ISHIKAWA Naota Part-time teacher and technical writer on computer http://www.nn.iij4u.or.jp/~neo-zion/ mailto:neo-zion@nn.iij4u.or.jp From yasuo.matsumoto @ jalinfotec.co.jp Fri Nov 29 07:02:05 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?GyRCNEpDMSRKJVElOSVvITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> <000901c29770$09617b30$6f571fac@matumoto> <20021129160032S.ryuchi@ryuchi.org> <3DE760D1.7030402@nn.iij4u.or.jp> Message-ID: <002701c297a7$842e13a0$6f571fac@matumoto> どもです。松本です。 > お茶の水女子大学非常勤講師の石川直太と申します。 > 本題から少し離れますが、パスワードについて質問させてください。 > > > > >>最初の文字だけ英字でないとパスワードという感じがしません。 > > > > その思い込みは、脆弱性でない? > > > パスワードには、0x20 から 0x7e までの全ての文字を使えるのでしょうか。 > 昔、私が実験したところ、英数字以外にパスワードに使える文字は、 > LUNAのUNIOS-B2の場合 > !"#$%&'()*+<=>/;?@[\]^_`{|}~ > POP-NEWSのNEWS-OS4の場合 > "#$%'()+<=>/;?[\]_`{|}~ > でした。特に、「:」をパスワードに含めると、登録されてしまうが、 > 次にパスワードを変えたいときに yppasswd がエラーを起こすという > 厄介な現象がありました。 > 手元にLUNA(いまどき持ってる人いる?)がないのでなんともいえない のですが、Solarisではなんともないようです。 セキュアなサーバーはNISで管理しないでしょうし、実装の問題じゃ ないんでしょうか。 # LUNAはネットマスクも持っていなかったんじゃ? From yasuo.matsumoto @ jalinfotec.co.jp Fri Nov 29 07:16:00 2002 From: yasuo.matsumoto @ jalinfotec.co.jp (matumoto) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?UmU6IFtUb2t5by5wbV0gUmU6IBskQjRKQzEkSiVRJTklbxsoQg==?= =?iso-2022-jp?B?GyRCITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> <000901c29770$09617b30$6f571fac@matumoto> <20021129160032S.ryuchi@ryuchi.org> <3DE760D1.7030402@nn.iij4u.or.jp> Message-ID: <003c01c297a9$7614ff70$6f571fac@matumoto> 松本です。 > パスワードには、0x20 から 0x7e までの全ての文字を使えるのでしょうか。 > 昔、私が実験したところ、英数字以外にパスワードに使える文字は、 > LUNAのUNIOS-B2の場合 > !"#$%&'()*+<=>/;?@[\]^_`{|}~ > POP-NEWSのNEWS-OS4の場合 > "#$%'()+<=>/;?[\]_`{|}~ > でした。特に、「:」をパスワードに含めると、登録されてしまうが、 > 次にパスワードを変えたいときに yppasswd がエラーを起こすという > 厄介な現象がありました。 Solarisだと、「青い山脈」をパスワードにしてもOKみたいですね。 これには驚きました。(笑) From nakatani @ konica.co.jp Fri Nov 29 08:02:10 2002 From: nakatani @ konica.co.jp (Koichi Nakatani) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] Re: [Tokyo.pm] Re: =?ISO-2022-JP?B?GyRCNEpDMSRKGyhC?= =?ISO-2022-JP?B?GyRCJVElOSVvITwlSSU4JSclTSVsITwlPyRDJEYbKEI=?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> <000901c29770$09617b30$6f571fac@matumoto> <20021129160032S.ryuchi@ryuchi.org> <3DE760D1.7030402@nn.iij4u.or.jp> <003c01c297a9$7614ff70$6f571fac@matumoto> Message-ID: <3DE77362.2070007@konica.co.jp> 中谷です。 matumoto wrote: > Solarisだと、「青い山脈」をパスワードにしてもOKみたいですね。 > これには驚きました。(笑) んー。FTP や POP3 や IMAP などを喋るときに「青い山脈」がどんなコ ードで送られるのか非常に不安ですね。 From neo-zion @ nn.iij4u.or.jp Fri Nov 29 08:49:31 2002 From: neo-zion @ nn.iij4u.or.jp (ISHIKAWA Naota) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?ISO-2022-JP?B?GyRCNEpDMSRKJVElOSVvITwlSSU4JScbKEI=?= =?ISO-2022-JP?B?GyRCJU0lbCE8JT8kQyRGGyhC?= References: <59A3BCA9-02B7-11D7-B3A2-000393AE4244@dan.co.jp> <008201c296e4$39ae4f70$6f571fac@matumoto> <000901c29770$09617b30$6f571fac@matumoto> <20021129160032S.ryuchi@ryuchi.org> <3DE760D1.7030402@nn.iij4u.or.jp> <002701c297a7$842e13a0$6f571fac@matumoto> Message-ID: <3DE77E7B.9020201@nn.iij4u.or.jp> 松本様、さっそくのお返事ありがとうございます。石川です。 手元に Solaris マシンがなかったので、参考になりました。 > > # LUNAはネットマスクも持っていなかったんじゃ? > ネットマスクはありましたが、イーサーネットアドレスが SRAM に 記憶されていて、長時間電源を切ると 0 に戻るという難点がありました。 ユーザー登録するとイーサーネットアドレスが割り当てられて、 自分で ROM モニターを使って SRAM に登録する仕組みだったはずです。 ライセンス証を紛失して、arp で空いているアドレスを探して 割り当てたこともありました。 そういえば、Sun の Ultra-1 などでは、マザーボードにイーサーネット アドレスが記憶されていて、NIC を複数挿すと同じアドレスになりますね。 私は、若さゆえの過ちで、イーサーポートが2個あるから、両方使えば 倍速で通信できるのではないかと試して、学校のネットワークを腐らせました。 =========1=========2=========3=========4=========5=========6=========7 (Mr.) ISHIKAWA Naota Part-time teacher and technical writer on computer http://www.nn.iij4u.or.jp/~neo-zion/ mailto:neo-zion@nn.iij4u.or.jp From ryuchi @ ryuchi.org Fri Nov 29 20:09:03 2002 From: ryuchi @ ryuchi.org (Tetsuya Ryuchi) Date: Thu Aug 5 00:22:54 2004 Subject: [Tokyo.pm] =?iso-2022-jp?B?GyRCSzpHLzJxJCs/N0cvMnEbKEI=?= In-Reply-To: <20021128215640Q.ryuchi@ryuchi.org> References: <20021128215640Q.ryuchi@ryuchi.org> Message-ID: <20021130110903J.ryuchi@ryuchi.org> りゅうちです > というわけで、そろそろ YA.C 2003 (名称未決定) について具体的に行動を > はじめないと、辛い時期になりました。 この件ですが、来年の4月頃に スプリクト系言語 Perl, Ruby, PHP, Pyhthon などを対象にカンファレンスを中心に展示会などを含めたしたイベントを計画す る動きがあります。みなさんもご存知の ASCIIさんの方で動きがあります。 どうも YA.C 2003 のイベントより少し規模が大きくなりますが、ちょうど YA.C と似たようなものになりそうです。 このイベントは まだ動き出したばかりのようで、ほかには東京で、4月頃にや りたい、ということくらいしか決まっていないようです。 私としては、同じ時期に似たイベントを 2つ開催するのは、参加するほうも大変 ですし、準備するほうももっと大変なので、似たコンセプトを持つなら まとめて やってしまうのがいいと思っております。 というわけで Tokyo.pm もこのイベントに参加する形で YA.C を実現するのが、 いいと思っています。どんな形で参加するのがいいのかは、まだ未定です。 ちなみに、jusも このイベントに協力することになっています。jusでは、私が 担当することになりそうです。 特に反対がなければ、Tokyo pm からも同じ様に参加します。 (龍) -- # From Tetsuya Ryuchi # Powered By FreeBSD, IPv4 and IPv6 Ready!