[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 11:17 / Filesize : 114 KB / Number-of Response : 569
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part32



1 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 01:45:30 ]
Pythonオフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
まとめWiki
python.rdy.jp/
関連スレ
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
pc11.2ch.net/test/read.cgi/tech/1230821097/

110 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:32:39 ]
初めてのPythonにUNICODEの扱いがほとんど書かれてないし
しかも間違ってるwことかな

111 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:33:43 ]
>>109
まず例が少ないよ

112 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:35:51 ]
>>105
lenが覚えられないとは書いてないじゃない
lenがあることで他の仕様が推測しにくくなるった書いてるんですよ

113 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:36:02 ]
>>110
あれは著者が UNICODE についてなにも知らないので
触れてるフリしてさりげなくスルーしてるだけかと

114 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:37:34 ]
>>87
違いは、
def bar(a=a): だと barが定義された時点のaの値が func_defaultsに入る。
URLのはcell creationとある様に、barが呼び出された時点のaの値がfunc_closureにcellオブジェクトとして格納される。
…くらいかな、。jinja2内での用途は知らないけど、
locals()の返す辞書にaを含めるという点はどちらも満たしてるし、
記事にはcellはoevrheadと書かれているので、cellオブジェクト自身が必要なのではなく
結果だけ欲しいのであれば、どちらでもいいのかもしれない。



115 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:37:48 ]
流れを切る様ですみません。

class C:
 f = lambda x: x + 1

と書いて、C.f(3)などとやろうとすると
fの第一引数がCのinstanceになってしまうのですが、
なんとかならないでしょうか?

今は仕方ないので

 @classmethod
 def f(cls,x): return x + 1

としていますが、わずらわしいです。

116 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:38:48 ]
カッコ無しでメソッド呼び出しをできるようにしてしまったばっかりに
メソッドオブジェクトの代入に特別な文法を導入せざるを得なかったRubyってかっこいいよね。

117 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:39:36 ]
tupleとlistの使い分けが良くわからないんですけど
それぞれに決まった用途ってあるんですか?

118 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:44:17 ]
4.16 Why are there separate tuple and list data types?
www.python.org/doc/faq/general/#why-are-there-separate-tuple-and-list-data-types



119 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:44:24 ]
>>115
f = staticmethod(lambda x: x + 1)

120 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:48:54 ]
>>119
できました!
ありがとうございます。

121 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:54:22 ]
>>117
tuple は型が違うものを混ぜても気にせず放り込んで
list は型がそろっている
という使い分けを無意識にしてるような気がします

122 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 00:56:53 ]
>>121
listで型をそろえるとなるとtreeが作れないね

123 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:05:03 ]
そうしないといけないって訳じゃないのでは

124 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:06:53 ]
tuple は immutable だからね

125 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:08:40 ]
>>117
tupleとlistで一番違うのは、辞書のキーに使えるかどうかかな。
tupleは辞書のキーにできるが、listはできない。

辞書のキーには変更可能(mutable)な型は使えないから。

126 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:09:20 ]
pythonのlistはvectorに改名した方が実情にあっている。
そして、immutableなlistを新しく入れて欲しい。

127 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:10:14 ]
>>126
同時に末尾最適化も入れないとあまり意味が無いな

128 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:13:21 ]
immutableなlistとtupleの違いを詳しく



129 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:15:20 ]
>>126は、力点としては関数型的なconsリストを指しているのだと思う

130 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:18:00 ]
immutableなlist [a1,a2,a3,a4]は

(a1,(a2,(a3,(a4,()))))

で代用できる。面倒だけど。

131 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 01:20:05 ]
>>130
確かにそれでできるけど、map/filter/foldとか使えないし
自前で再帰的なアルゴリズムを記述しても末尾最適化もされないから
ぶっちゃけオモチャだよね

132 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 04:29:54 ]
lenが一貫性ないってのはよくわからん。一貫性がないっていうのは
Javaみたく配列の長さはa.length、ArrayListはa.size()、文字列の長さは
a.length()みたいのを一貫性がないというのであって、Pythonのは違うと
思う。まあ、慣れの問題だね。

133 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:19:36 ]
一貫性ねえじゃんwww

134 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:25:43 ]
愚かな一貫性は・・・

135 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:31:34 ]
length size count
add append push_back
delete remove erase
title caption text
widget control component
list array vector

136 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:34:41 ]
一貫性を定義しろ。話はそれからだ

137 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 05:38:33 ]
goo国語
いっかん-せい ―くわん― 0 【一貫性】
最初から最後まで矛盾がない状態であること。同じ態度を持続すること。

138 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 08:35:30 ]
Ruby厨の言うことは一貫性がない。



139 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 10:58:51 ]
結局のところどっちも使えるようにしとけっ!
みたいな

140 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:08:14 ]
>一貫性がないっていうのは
>Javaみたく配列の長さはa.length、ArrayListはa.size()、
>文字列の長さは a.length()みたいのを
>一貫性がないというのであって

どうして一つの文章で一貫性がないを二度も言う必要があるのはなぜなのかはおいといて
Javaでは「敢えて使い分けてる」んですよ
型安全と、メソッド名から型が判別出来こととの冗長性をわざと実現しているんです

141 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 11:27:49 ]
nautilussvnを使っているんですが、クライアント認証を使ったSSLを経由してsvnサーバに
つなごうと思ったら、SSLに対応していないのかエラーが出てしまいます。

Error : callback_ssl_client_cert_prompt required
↑こんなの

なんとなく、クライアント認証用のプロンプトが必要だとか言ってるっぽいので、pythonのSSL
ライブラリでも入れればいいのかと思うのですが、対処方法ご存知のかたがいらしたら教えていただけませんか?


142 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 12:06:32 ]
つttp://www.google.co.jp/search?q=nautilus+svn+python+ssl

143 名前:デフォルトの名無しさん [2009/02/22(日) 13:02:27 ]
>>110
間違ってるってどのへん?

144 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 13:57:52 ]
a.__lt__(self, b) : a < b
a.__eq__(self, b) : a == b
a.__getitem__(self, i) a[i]
a.__hash__(self) : hash(a)
a.__len__(self): len(a)

hashやlenも演算子に類するものと見ればいいんジャマイカ。
実際長さは__getitem__とも密接な関係にあるしね。うっかり
同名のメソッドを定義してアボーンなんてリスクを考えれば
これはこれでありだと思ふ。

145 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 15:53:14 ]
2.6で(まともな)sslモジュールが標準になったけど
中身がCで書かれてて
派生クラスを食ってくれんのが悩み。

146 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:11:00 ]
>>145
自分で拡張したい場合は確かに悩みどころだよな。
一方で、標準機能にいろんなものを詰め込んで欲しいと考える人もいるし。
妥協点としては、基本エンジンを簡潔・高速にして、よく使いそうな機能はライブラリで容易するとか。

147 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 17:53:44 ]
暗いなら自ら明かりをつけましょう

148 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 18:46:17 ]
クレクレ厨乙



149 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 18:47:28 ]
誤爆

150 名前:デフォルトの名無しさん [2009/02/22(日) 19:52:09 ]
pythonのlambdaで実験していて、以下の問題に突き当たりました。
識者の方がいらっしゃいましたら、
ご教授願えるとありがたいです。

//無名関数をn個リストにして返す関数
def make_funcs(n):
fn_list = []
for i in range(n):
fn_list.append(lambda x : i*x)
return fn_list

//code block
fL = make_funcs(5)
for f in fL:
print(f(10))

//実行結果
40
40
40
40

//期待する実行結果
0
10
20
30
40

for文中のiが上手く認識されていないように思えます。
Schemeのクロージャとは振る舞いが異なるのでしょうか?


151 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:10:18 ]
lambda x, i=i: i*x

152 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:27:38 ]
>>150
Pythonでもクロージャは環境をキャプチャするんだが
そのforループではiが逐次破壊的に書き換えられてしまう
(let束縛ではなくset!のイメージ)んでそういう動作になる

単一代入でない&クロージャをサポートする言語で破壊的なループを使って
そういう書き方をすると、そういう動作になるのが普通で、
JavaScriptやPerlなんかもそうなったはず

Pythonでは>>151のような方法で対処できるが、魔術的だと感じられるなら
ループの中でさらにdefで明示的にブロックを作って、その中で
クロージャを作ったりするといいと思うよ

153 名前:152 mailto:sage [2009/02/22(日) 20:34:39 ]
例えばこんな風に書くということね
def make_funcs(n):
    def make_func(i): return lambda x: i * x
    fn_list = []
    for i in range(n):
        fn_list.append(make_func(i))
    return fn_list

もっと短く書く書くこともできる
def make_funcs(n):
    make_func = lambda i: lambda x: i * x
    return [ make_func(i) for i in range(n) ]

154 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 20:54:37 ]
>> 151, 152

非常に分かりやすい説明で、問題の原因が良く理解できました。
また、正しい書き方も分かりました。
ありがとうございました。





155 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:13:08 ]
…で、実際処理速度はどうなの?>パイソン
PHPより早いのかな?

156 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:19:48 ]
おおむねPython>Perl>PHP>Rubyってとこじゃね?

157 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:33:59 ]
shootout.alioth.debian.org/u32/
その手のベンチマークで定番?になってるサイトです。
言語の種類だけでなく、プログラミングの手法によっても結構変わるみたいですね。

158 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:47:06 ]
shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all&box=1



159 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 21:55:27 ]
C++が0.08秒で、PHPが48分って・・・orz
完全にやる気なくした・・www

160 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:01:33 ]
>>156
馬鹿じゃない?

161 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:03:23 ]
>>142
この回答って
Error : callback_ssl_client_cert_prompt required
これの対処法の回答という認識でいいんですかね・・・?

ググってみたんですがどれが回答になるのか分からなかったんですけど・・・。
そういうレベルの人はここに来てはいけないということですかね??


162 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:14:19 ]
>>159
用途に合わせて言語を選ぶ。 当たり前のことじゃないか。

163 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:31:45 ]
>>160
なんで?

164 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:33:07 ]
>>161
こっちで質問しる
gimpo.2ch.net/esp/


165 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:50:42 ]
>>157
python 3 もっとがんがれ
おれもPHPが一番鈍足だとはしらんかった



166 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 22:54:23 ]
>>163
根拠を示さないレス乞食はそっとしてあげて。

167 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:04:54 ]
pass

168 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:34:42 ]
インタプリタが遅いのは当たり前田のSPAM



169 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:37:20 ]
まぁ>>156自体に根拠がないけどね

170 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:40:26 ]
まあ・・ウェブならスクリプト言語でも十分ですけどね
2〜3秒以上もかかる計算滅多にないし

確かにベンチマークではpythonの方が良い成績のことが多いみたいだけど
スクリプト言語である以上、ドングリの背比べのような気もしないではない

ただ、pythonってphpに取って代わるメジャーなスクリプト言語になり得るのかな?

171 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:41:30 ]
>>158見ると>>156の順番通りだけど?

172 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:44:35 ]
>>170
パフォーマンスを気にする必要があるのは、10K問題とかだと思う。

173 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:57:17 ]
しっかしPHP6はいつ出るんだ?

WEBはDBへの接続とDB自体の処理速度が一番ボトルネックだと思う。
そこが早ければある程度なら問題ないんじゃないだろうか。

174 名前:デフォルトの名無しさん mailto:sage [2009/02/22(日) 23:59:41 ]
PHPは(言語)仕様がどうのってよりも、ビジネス戦略で広まってるだけですがな。

175 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:02:38 ]
10k問題という言葉・・初めて知りましたw

一万接続なんて、スクリプトじゃむりぽ
…というか、アパッチも無理なんじゃ

176 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:02:43 ]
ビジネス戦略って一体何なんだ?

177 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 00:52:54 ]
Python 3.0の変更点を調べていると、

text.world.coocan.jp/TSNET/?What'sNewInPython3.0
> callable関数は削除されました。
>『callable(f)』の代わりに、
>『hasattr(f, '__call__')』が使えます。
> operator.isCallable関数もなくなりました。

とあるのですが、後者の方が書き難いのではないかと思います。
Pythonでは複数のやり方を嫌うという説明を見ました。
しかし、より良いものが残るべきとう意見は分かります。
でも、今回の件は消す必要が無かったのでは?
と思ってしまいます。

皆さんの意見はいかがでしょうか?

178 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:01:28 ]
正直 2.x でも callable なんて使ってなかったからどうでもいい。
EAFPってやつだ。



179 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 01:32:36 ]
レスありがとうございます。
EAFPという考え方、初めて知りました。
Googleで調べたら、いろいろ勉強になりました。

そもそもオブジェクトの属性が持つかどうかをチェックするよりは、
try, ecept構文で実行して、例外を補足するスタイルが推奨されているんですね。

180 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:03:08 ]
>>175
> 一万接続なんて、スクリプトじゃむりぽ
Erlangなんかの実績はあるよ。

181 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 08:34:59 ]
魚病理学者って何だ?

182 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 09:57:42 ]
pass

183 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 11:36:33 ]
10k問題って西暦で10000年になって桁が増えるときの問題かと思ったぜ

184 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:29:48 ]
10種類も苦しいことがあるなんてどんな業界だよ。

185 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:42:07 ]
休憩がない、帰れない、給料安い、休暇(取れ)ない、雇用不安定
キリがない、規則が理不尽、経費が自腹、心を病む、過労死

で10kじゃね

186 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:51:47 ]
>>185
おいおい、「彼女ができない」 が抜けてるぞ

187 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 14:54:28 ]
「彼女(or結婚)できない」、すっかり忘れてたよ

188 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:50:30 ]
Erlangでいけるなら
stackless + libev でいけるだろ、たぶん、きっと



189 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 20:51:29 ]
>>157
これ見ると、概してCよりC++のほうが早いと思って良いのかなぁ。

190 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:04:40 ]
>>188
有望ではあるよね。
C10K問題への対策の一つが高次並列化なんだが、stacklessが
変数使い捨てを強化すれば、並列化との相性が良くなる。

191 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:08:43 ]
C10K問題対策って普通単にサーバ分散させるだけじゃねえの?

192 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:13:41 ]
>>185-191
C10K: >>185 - 規則が理不尽 + 彼女ができない + コーディング規則が理不尽

193 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 21:26:10 ]
>>191
静的コンテンツを同時に多数同時に見てもらうだけの時代はそれで済む事もあったけど、
例えば「10万人同時ログイン&互いに同じ関心を持つ者のグループをダイナミックに」
などとやろうとすると、別の手が必要。

関数型言語が並列化と相性がいいんで、stacklessみたいなのが関数型のいい所を
取り込んでくれるといいな、というのが感想。

194 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:06:09 ]
10万人同時ログインってw
GLAYの幕張ライブやないねんからw

195 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:14:08 ]
チャットみたいなもんか?
よくわかんねえけど
10万人で一緒にチャットする必要は感じないが……

今の大規模サービスって別にダイナミックコンテンツでも
普通にスケールさせてないか?
勿論サーバ分散させて

196 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 22:38:39 ]
少数のサーバーに集中
     ↓
安価な多数のサーバーに分散するといいぜ
     ↓
でも、物理メンテ大変だし、あんまり安いマシンじゃなくて
ちょっと高級な中グレードのマシンで台数減らした方がよくね?
(イマココ)


197 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:08:25 ]
C10K問題の先駆けは既に、Skype、Twitterなどでも出始めてる。
10万人というのは一例で、従来型サービスの延長じゃない事を
スケールさせたい場合の問題の一つ。

198 名前:デフォルトの名無しさん mailto:sage [2009/02/23(月) 23:44:25 ]
あんまり言語とは関係ない話になってるなw



199 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 00:07:49 ]
10万人同時チャットってwww
忙しすぎw

200 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 11:41:28 ]
ちょっと面白そうだな>10万人チャット

201 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 12:53:56 ]
2chのスレの一番速い流れでスレあたり1000人だもんな。


202 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 13:35:13 ]
人数の多いチャット部屋覗いたことあるが、大半はROM専
数人が発言しまくりで、残りは単発発言の奴かな
余程盛り上がる話題が無いとそんなにログ流れんし
ログが流れる時ってのは会話が成立しない祭状態で
会話したい奴は「特定の相手とのみ会話する機能」使って身内話

203 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 14:17:58 ]
10KのKはKOBITOのK。

204 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 16:40:23 ]
TwitterのPublic Timelineがある意味10万人チャットみたいなものか

205 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 17:50:41 ]
聖徳太子「10Kまで同時通話おk」

206 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:37:20 ]
pythonでhtmlを処理しようと思うんだがどういう方法がベターなの?

207 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:37:35 ]
>>189
Linusの回答
tabesugi.net/memo/2009/1a.html
オリジナル
lwn.net/Articles/249460/

208 名前:デフォルトの名無しさん mailto:sage [2009/02/24(火) 20:53:57 ]
C++のそういうネタは好きw



209 名前:デフォルトの名無しさん [2009/02/24(火) 23:45:18 ]
ネストした関数をunittestモジュールで外からテストにかける方法って
ない?

210 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 00:23:43 ]
BeautifulSoupが流行ってる






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<114KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef