X



自作CGIを評価するスレ

0001Premature end of script headers : /this/thread
垢版 |
03/04/05 12:47ID:tIET0nhf
自分の作ったCGIをみんなに評価してもらうスレだよ。言語は問わないよ。
よほどプログラムが短くないかぎりはアプロダにでもアップしてね。
0257nobodyさん
垢版 |
03/04/30 00:13ID:???
保守!
誰か、有能なスクリプト組んでくれ。
0258nobodyさん
垢版 |
03/04/30 01:33ID:???
いいスクリプトは評価してもらう必要が無かったりする
0259山崎渉
垢版 |
03/05/10 16:15ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)


0260nobodyさん
垢版 |
03/05/10 23:04ID:???
このスクリプトすごい。感動した。
ttp://sh.sakura.ne.jp/~obj/vector/toys/#sb
0261nobodyさん
垢版 |
03/05/19 20:36ID:GoudX7FZ
age
0262nobodyさん
垢版 |
03/05/21 19:41ID:???
亀レスだけれども。
>>211
コメント解除スクリプト、B::Deparse 使っちゃだめなのかな。
$ perl -MO=Deparse foo.pl
0263山崎渉
垢版 |
03/05/22 01:59ID:???
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
0264nobodyさん
垢版 |
03/05/25 01:28ID:wMw6QnJf
age
0266nobodyさん
垢版 |
03/05/26 10:01ID:???
えー。
単刀直入に言うとなぜか解凍できない。
俺のアプリケーションに異常が起きたのか、そのファイルが変なのかは知らん。
めんどうなので調べない。
0267nobodyさん
垢版 |
03/05/26 10:35ID:???
>>265
通報したぞ
解凍するとGBになるファイル1個入りの(ry
0268nobodyさん
垢版 |
03/05/26 21:20ID:ksmYkwRm
>>265
今度は正常にダウンロードできます。
ソースは汚いです。
0273山崎渉
垢版 |
03/05/28 17:05ID:???
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0278nobodyさん
垢版 |
03/05/29 00:59ID:???
C?
割とさくさく動くね。
HTMLはもうちょっとなんとかしてほしい。
0280nobodyさん
垢版 |
03/06/01 19:34ID:???
>>279
あなたはまずこれを読んでコードを修正。
http://www.harukaze.net/~mishima/perl/man/perlstyle.1.html

次に #!/usr/bin/perl の次の行に use strict; を追加し、
perl -wc board.cgi 等としてエラーが出なくなるまで修正。

評価するのはその後だ。
0281nobodyさん
垢版 |
03/06/01 20:36ID:???
まあHTMLのLintみたいなもんだな。
文法を正確にするのは最低限のラインだ。
0282nobodyさん
垢版 |
03/06/01 23:56ID:???
あれ?>>279のアカまだ削除されてないな
もっかい通報してやるか
0283nobodyさん
垢版 |
03/06/02 07:27ID:???
>>279
では、一言。
GET情報でパスワードを入力するのは、
セキュリティ面に問題がある。
0284
垢版 |
03/06/02 16:43ID:???
>>279
iframeの表示が「他のブラウザ」じゃ全く駄目。
0286ここの4ではない4 ◆T98LkrO.aM
垢版 |
03/06/02 17:48ID:ltjk47zK
トリップ
0288nobodyさん
垢版 |
03/06/02 18:26ID:???
>>285
全然読んでないけど、インデントで空白とTABを使い分けられると
結構困る。
漏れはいつも4TABだから、8TAB & 4インデントだとずれる。
インデントを全部TABにしとくと、TAB幅に依存しなくていいよ。
0289ここの4ではない4 ◆T98LkrO.aM
垢版 |
03/06/02 19:09ID:???
んん、、EmacsだとTABがスペースになるのですが..
これはエディタの仕様だと思うので勘弁してください。

一応、設定で変えれるかもしれないので調べてみます。
0290ここの4ではない4 ◆T98LkrO.aM
垢版 |
03/06/02 19:22ID:???
---------------------
#!/usr/bin/perl
while (<STDIN>) {
s/\x09/"\x20" x 8/eg;
print;
}
----------------------
$ chmod 755 filter.pl
$ cat the.cgi.txt |./filter.pl > sp_the.txt

一時凌ぎで..
0292288
垢版 |
03/06/02 20:37ID:???
>>290
いや、変換方法はどうでも良くて。
8 TAB 依存のコードを見せられた時に「('A`)マンドクセ」と
思ってそこで読むの止めちゃうから、大袈裟に言えば
「機会損失」になってるよ、と。

スクリプトができるだけ多くのプラットフォームで正常に
動くよう、環境依存の部分を減らしていくのと同様に、
スクリプトを読む人の「環境」にも配慮してくれていると
好印象になるって事で。
0294ここの4ではない4 ◆T98LkrO.aM
垢版 |
03/06/02 20:48ID:???
>>288さん
そうですね。
自分も、いきなりスペースやTABが消えたコードを掲示板に書かれて
どこがおかしいですか ?
と、言われるともっと見やすく示せ! と内心思ってしまいます。
TAB、気をつけてみます。
0296ここの4ではない4 ◆T98LkrO.aM
垢版 |
03/06/02 21:15ID:???
取りあえず、全部スペースにしておきました。
元々、サブルーチンの少ない読みにくいものだったのに申し訳ありません。
0298nobodyさん
垢版 |
03/06/02 21:59ID:???
>>291
感想。
ソース汚くて読む気しない。
終わり。
0299nobodyさん
垢版 |
03/06/02 22:25ID:???
>>298
ぐはぁ!ショック・・・。
精進してからまた来ます。
0301nobodyさん
垢版 |
03/06/03 10:20ID:???
>>291
とりあえずソース、見せてもらった。
極悪に汚い・・・。
全部、もう少し見やすいように手入れた。

とりあえず、手入れて思った事。
1、goto文なんか使うな!
2、スペース2個じゃなく、タブ使っとけ。
3、引数などのコンマの後は、スペース一つ入れる事。
4、なんでもかんでも、ケツにif文を置かない!
5、ソース汚いから、自分でも気付いてないんだろうが・・・
   ファイルロックの掛け忘れがある。
6、同じく、ソース汚いから気付いてないんだろうが・・・
   ちゃんと明示的にファイルハンドルを閉じてない所がある。

とくに、「4」のケツにif文は、うんざり。

処理内容自体は、読んでない。

人に評価してほしいなら、
自分だけが読めるソースを書くんじゃなく、
もう少し読みやすいように書く工夫をしよう。

ttp://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/1141.zip

↑ここに、手入れたソース置いてるから。
まだ、俺が手入れたソースの方が読みやすいと思う。
0302nobodyさん
垢版 |
03/06/03 12:55ID:???
>>301
>2、スペース2個じゃなく、タブ使っとけ。
だけおかしい。
タブを使うと4TAB<->8TABの違いでずれるから空白(個数は問わないが普通4個)で。
0304nobodyさん
垢版 |
03/06/03 13:17ID:???
>>303
「TABだけ」ならいいんだがな。空白と混じってるとおかしくなる。
いちいちTABだけなのを確認するより最初から空白だけの方がいいだろ。
TABなんて今時ディスクの節約にもならん。

どっちにしろ(例えば)SUNもMOZDEVもタブ不使用規約になってんだから
合わせた方がいいんでないかい?
0305nobodyさん
垢版 |
03/06/03 13:20ID:???
間違えた。SUNは推奨してるだけだった。以下引用
>インデントの単位として,4個分の半角スペースを推奨する.
>そのインデントが実際に半角スペースによって行われるかタブによって行われるかについては,これを規定しない.
>タブはすべて(4個ではなく)8個分の半角スペースでなければならない.
eclipseだったかな。曖昧記憶でスマソ
0306298
垢版 |
03/06/03 14:58ID:???
自分が思ったのは
「CGIスクリプトしか書いたことない人にありがちなソースだな。」
ってこと。
リファクタリングとか色々なことを勉強してみては?
0307301
垢版 |
03/06/03 15:12ID:???
>>302
タブは、インデント以外に使ってないから、
どんなタブ幅でもずれてないはずだけど・・・
ずれてる???
0308291
垢版 |
03/06/03 19:31ID:???
291です。評価ありがとうございます。

>>301さん
わざわざ直してくださって、本当にありがとうございます!
指摘されたのに気をつけて書き直してから、また評価をお願いしに来ます。
でも、もう…直せるところが無いかもしれませんが(汗)

>>306さん
そのとうりです。自分でCGIを作ってみたくなったので、perlを勉強しだしました。
色々なことを勉強するのもいいですけど、虻蜂取らずにはなりたくないので…。
0309nobodyさん
垢版 |
03/06/04 00:00ID:???
>>285
ソース、今見てるけど・・・
えらくコメントの少ない・・・って言うか、コメントの無いソースだな・・・
わざと、コメント消したの?
それとも、素でこれ?

素でコメント無いなら、コメント入れていった方が良いと思う。
0310nobodyさん
垢版 |
03/06/04 10:29ID:???
>>309
これ以上コメント書かれたら、読みづらくないですか?
と、素な意見。
0311nobodyさん
垢版 |
03/06/04 10:41ID:???
>>310
う〜ん、本体(?)の方はコメントあるけど、
モジュールの方にコメントがないかな。
0312385 ◆T98LkrO.aM
垢版 |
03/06/04 12:48ID:???
>>309さん
基本的にコメントを一切書かないのです。
ただ、配布とか考えると書いた方がいいかなと思って、今回はちょっと書いてみました。
やっぱ少ないですかね..
0313385 ◆T98LkrO.aM
垢版 |
03/06/04 12:52ID:???
別にコメント書かないとかいう変なこだわりがあるわけじゃなくて、
ただ、自分はコメントなくてもすぐ分かるので人に見せる予定がないものに
コメント書かなくてもいいかなと..今は勉強中ということですし。
ただ、今回は見てもらおうとここに載せたわけなので、
モジュールの方にもコメントを書くべきだったと思いました..すみません。
0315nobodyさん
垢版 |
03/06/04 13:20ID:???
「未来の自分は他人です」という言葉を贈っておこう。
0316298
垢版 |
03/06/04 14:07ID:???
コメント無しでもいいような
わかりやすいクラス名、変数名、関数名をつけるのが基本です。
コメントが無いとわからないってのは
それだけ汚いソースだということです。
0317285 ◆T98LkrO.aM
垢版 |
03/06/04 14:59ID:???
>>315, >>316なるほど.
自分は今、就職希望の会社からCのソース(50-500行,10枚くらい)を渡されて、
この説明を書いてこいとか言われているのですが、コメントなくても
関数名, 変数名が分かりやすいし、うまい具合にサブルーチンに分けてあるので
コメント少ないですが、かなり読みやすいと思いました。
まあ、漏れのはコメントないと読みにくいかもしれませんが..
自分で見ても読みにくいな、と思ったらコメントでカバーするようにしてみます。
0318301
垢版 |
03/06/04 19:23ID:???
>>316
# ■■■ 俺の意見 ■■■
俺は、とにかくコメント入れるのに賛成派。
ルーチンの名前とか、変数の名前に意味を持たすのは当たり前だけど、
コメントあれば、コメントだけ読めば、何の処理してるのかわかるし。

# ■■■ ブロック毎にコメントを入れる ■■■
ブレスで囲って無くても、処理の単体が生まれる。
それ毎に、コメントを入れておけば、一行のコメント読めば数行理解できる。

# ■■■ ルーチンの使い方のコメントは重要! ■■■
とくに、ルーチンの使い方のコメント。
絶対後から見て助かる。
いくつ、どんな引数を取って、どんな処理してくれて、どんな値をどんな形で返してくれる。
そんなコメントがあれば、一発でそのルーチンの内容がわかるでしょ。

# ■■■ 最後に・・・ ■■■
↑どう?
こんな感じでコメント入れる訳よ。
全部の行読まなくても、#で始る一行読めば、
俺が、なにについて書き込みしてるか分かるでしょ。
これを、プログラムでも実践してる。
それと、空行無しに書き込みしてると読む気失せるでしょ。
0319301
垢版 |
03/06/04 19:40ID:???
そうそう、掲示板の書き込みでも、
結構その人のセンスが出る。
変な所で改行してる人や、
長文なのに空白行入れず、
だらだらとメリハリの無い書き込みする人とか。

そういう人って、プログラムも汚いんだよね・・・
0320285 ◆T98LkrO.aM
垢版 |
03/06/04 20:33ID:???
はい、たしかに後で読む人がいるとすれば、
コメントは書いたほうがいいですね。
読む側と見るとありがたいものなので、自分でも書くようにします。

コメントが無いために間違った認識を受けたり、
重要な処理を 「これいらねぇんじゃね?」
とか思われて消されること減るはずだし。
0321316
垢版 |
03/06/04 21:21ID:???
>>318さん
自分が言いたいのは
「コメントを書くな」
ではなく
「コメントが無くてもわかるようなキレイな設計を心がけよう」
ってことです。

コメント関係ならプログラム技術板のこっちのスレのほうがいいかも。
http://pc2.2ch.net/test/read.cgi/tech/1038414493/

0322301
垢版 |
03/06/04 22:35ID:???
>>321
スレタイにワラタ

いや、もう終わってるっぽいスレなので、
もういいかな〜っと。

とにかく、コメントは思うように入れまくってみたら良いと思う。
そうしてる内に、どういう風にコメント書いたら分かりやすいとか、
こういうコメントは無駄だとか、分かってくるだろうし。

前に、冗談だろうけど・・・

$hoge++; #1を増加

・・・こんなコメントを見た事がある。
こんなの、明らかに無駄。(w
ただ、なぜ1を増やすかって事についてのコメントなら・・・
それは、意味を成すかもしれない。

実は、俺も無駄なコメントが多いんだよね・・・
ぜんぜんプログラムとは関係ないようなコメントとかある。
そういうのって、俺的に後から見たら面白かったり。
もちろん、人に見せる時は、そんなコメントは消すけどね。
0323nobodyさん
垢版 |
03/06/05 04:44ID:???
OO なコード書いて POD 埋め込むようになってから
普通のコメントがかなり減った。スクリプトとドキュメント
同時に作るのは効率いいしオススメ。
0326nobodyさん
垢版 |
03/06/09 21:44ID:JSBfbdyK
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1032435179_5/hoge.zip

むかしいじってたやつ、もう要らないから使えると思った香具師
勝手に使ってくれ。コメント皆無だけどね。

でも最後に軽く評価を聞きたいけどな。
0327nobodyさん
垢版 |
03/06/09 21:59ID:???
>>326
あぁ。今見直したら俺が書いたやつじゃないものが入っていた・・・
Text::WordIteratorとか。。。
あーあ。まぁ、いいや。
0329211
垢版 |
03/06/12 02:44ID:???
ども。
いつぞやのコメント削除スクリプト作った俺です。
今作ってるスクリプトが行き詰まりました。
ちょっとイライラしたので、
息抜きにコメント削除スクリプトのバージョンアップとかしてみました。

このバージョンで、サブディレクトリ内も検索可能になりました。
深さは、どんなに深いサブディレクトリでも処理可能です。

http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/1160.zip

・・・リファクタリングが必要かもしれん・・・
0331nobodyさん
垢版 |
03/06/12 06:40ID:???
>>329
>深さは、どんなに深いサブディレクトリでも処理可能です。

当方にはそのスタックをあふれさせる準備があるが良いのか?

0332211
垢版 |
03/06/12 06:59ID:???
>>331
う〜ん。
スタックを溢れさせる準備があるって意味がわからんです・・・。

とにかく、かなり深いディレクトリでもOKなはず。
だって、Cのルートディレクトリから検索とか掛けてみたから。
とりあえず、試してみそ〜。
0333nobodyさん
垢版 |
03/06/12 07:54ID:s13jgVVf
http://www1.neweb.ne.jp/wb/prof/index.htm
平成15年度 自作板 PC環境調査
◆5月分の結果が出ました。現在は6月分に移行しています。

(参考)
平均年齢          25.4歳

ネット(2ch含)         78.7%
ゲーム            59.0%

Windows XP Family    46.9%
Windows 2000 Family   34.4%

Athlon             45.3%
Pentium 4          29.7%

nVIDIA            49.2%
ATI              28.9%

DVD-R/RW/マルチ      20.4%
CD-R/RW          75.9%

光ファイバー          8.3%
ADSL/xDSL         64.5%

CRT              74.6%
LCD              25.4%
0334nobodyさん
垢版 |
03/06/12 10:27ID:???
>>332
ソースは見てないが、再帰的な処理をしてるのにスタックについて知らないというのは
ちょっとヤバくないか?
0335nobodyさん
垢版 |
03/06/12 12:02ID:I623aSMv
まあまあ、知らなくても書けるてことで。
0336211
垢版 |
03/06/12 14:17ID:???
>>334
再帰?
自分の中で自分を呼ぶアレ?
・・・いや、普通にwhile文とかでブン回してるだけだが・・・

ディレクトリ検索のアルゴリズム考えるの、
実はちょっと大変だったんだよね・・・
ひさびさに、フローチャートとか書いたもん。(w
ちなみに、見てもらったら分かるけど、
メモリの使用も最小限に抑えてるし。

>>335
そうみたいね・・・書けちゃったから・・・。
0337nobodyさん
垢版 |
03/06/12 18:19ID:???
whileでブン回しておいてメモリは最小限とはこれいかに。
0338nobodyさん
垢版 |
03/06/12 21:33ID:???
>>336
確かにWhileで再帰のまねごとは出来る。
でも、どっちにしろスタック的なデータ構造がないと困るはずだけれど。
0340211
垢版 |
03/06/13 01:55ID:???
>>337
簡単な話。
while文で、ブン回しながら、必要なデータか調べる。
必要なデータなら、ファイルへスワップ。
必要じゃなかったら、次のループで上書き。
つまり、メモリにデータを蓄えないようにしてる。
一通り調べ終わったら、次のステップでスワップしたファイルから
データ読み出しって感じ。

>>338
そのスタックってのがよく分かてないんで・・・
どんなデータ構造なのか分からないけど・・・
再帰処理は、一切使ってない、ただループさせてる処理をしてるよ。
DirTree.pmってファイルがディレクトリを走り回る処理部分だから。
一度、覗いてみてくださいませ。
0341211
垢版 |
03/06/13 01:55ID:???
>>339
ソース見せてもらいました。
再帰処理使ってるね。

こんな事言っても仕方ないし、
プログラム打つ人間としては失格かもしれないけど、
再帰処理って嫌いなんだよね。
逐次処理&反復処理だけで、すべてをこなせると思ってる。
いままでで、再帰処理を行わないといけない場面ってなかったし。
まぁ、ヘッポコな俺だから、
まだそんな場面に出くわしてないだけかもしれないけど。
それに、再帰処理に出くわすと、ソース読むのが大変。
俺的にね。
と、まぁこれは俺の哲学。

それと、これはD&Dに対応してないね。
それと、処理中&処理後のログが少ない。
この辺でも、俺と嗜好が違うね。
俺のは、そういうログがないと固まってるようでイヤだから。
結構うるさいソースになってる。

と、「正直痛すぎる」とかって言われたので、
ちょっと反抗してみました。(w

正直な感想は、無駄のないスッキリ仕上げなソースだと思います。
それと、俺の知らない組み込み関数とか使ってる。
もうちょっと、俺も勉強しないとね。

改造とかしてくれる人少なくってさ・・・
ソースみて勉強させてもらいます。
ありがとうございました。
0342223
垢版 |
03/06/13 03:29ID:???
久しぶりに覗いてみたら まだやってたのねご苦労さんw
実はあと風呂に入ってたらフィルターバグまだいくつかあるのを
気づいちゃったんだよね…

漏れ的ソースの書き方ならアレで問題ないんだけど
世の中には漏れの想像もできない書き方する人がいるんで
0343nobodyさん
垢版 |
03/06/13 14:25ID:???
ネタだろ?
ネタと言ってくれよ!痛すぎるよ!
0344nobodyさん
垢版 |
03/06/13 21:35ID:???
傑作にケチつけられて熱くなっちゃいました。

DirTree.pm直してやるから待っててな。
0345nobodyさん
垢版 |
03/06/13 21:56ID:???
あ。再帰処理しか考えられない…止めよう。

今のやり方で、明らかにおかしい所は、ループ内で$tmpPathListを開いて閉じてる所。
ファイルハンドルが勿体無い。

それから、少し変な所で、メモリ使用量にこだわっている割には、readdirを
リストコンテキストで呼んでる点。一つずつ調べればいいのに。

それから、趣味の問題だけど、変なインデントが気持ち悪い。スコープを分けたい(?)なら
ブロックを作ればいいし。

あと、無駄な括弧。
if ( ($_ eq '.') || ($_ eq '..') ) { next; }
こことか強烈なんだけど…このままでも条件の中身の括弧は無くてもいいんだけど、
十分に優先度が低いorを使えば、心配しなくてもいい。それに大括弧のインデントも変。

@filelistのスコープも変。とにかく変数は使用直前に宣言した方が楽。

それから、$countはハッシュのリファレンスにする価値は無い。普通のハッシュで十分。
0346nobodyさん
垢版 |
03/06/13 22:59ID:???
>>345
ごちゃごちゃ言う前に書き直してそれがより美しいことを証明すればどうだ?
0347211
垢版 |
03/06/14 08:19ID:???
>>342
うーん、忘れた頃に、またやってます(w
そうそう、コメント削除のバグ。
俺も、2つほど気付いてました。
しかし、俺的に今の所実害がないので放置中。。。
今度、直してみます。
0348211
垢版 |
03/06/14 08:19ID:???
>>345
スクリプト自体は、すごくスッキリしてて、
本当、無駄がないと思います。
大半の人は、俺のスクリプトより>>339のスクリプトを好むかと・・・

俺の言ってる事は、ヘッポコの戯言だと聞き流してください。

指摘された部分。
ループ内でファイルを開いたり閉じたりしてる部分。
メモリ使用量最小限とか言ってるのに、
ディレクトリ内のファイル名を一発で取得してる部分。
この2つは・・・
言い返す言葉がないです(w
ファイルは、ループ前に開いて、ループが終わったら閉じるように変更。
ファイル名取得も、一つづつに変更してみました。

$countのハッシュリファレンスを使ってる。
これについては・・・
戻り値は、今後の改良などで値が大きくなるかもしれない・・・
という理由から、俺が作るルーチンのほとんどはリファレンスが返ってきます。
しかし、ルーチン内でリファレンス使ってるのは意味ないですね。
と、言うことでルーチン内は普通にハッシュを使うように変更。
戻り値はリファレンスだけど・・・

インデントが変。
orを使わず、||を使って括弧の多様。
変数宣言は、使用直前に宣言した方が楽。
これらについては・・・
好みってことで、許してください。

http://isweb25.infoseek.co.jp/computer/pcqa-2ch/cgi-bin/img/1166.zip
0349nobodyさん
垢版 |
03/06/14 15:46ID:???
ファイルの開き方が直ってね〜よ
0350nobodyさん
垢版 |
03/06/14 21:12ID:jhwtfsoY
aice.zive.net/index.jsp
よろしくお願いします。
0351nobodyさん
垢版 |
03/06/15 09:57ID:???
>>350
ここの人は低レベルだからJavaなんて理解できないよ。
0352nobodyさん
垢版 |
03/06/15 10:05ID:???
>>351
言われてみれば、Javaスレってないね・・・
0353nobodyさん
垢版 |
03/06/15 11:13ID:???
難易の話をしているつもりかな?
なら351はJavaを理解していないに430スイカ
0354nobodyさん
垢版 |
03/06/15 12:09ID:???
目的を達成する手段のひとつがJava
レスを投稿する


ニューススポーツなんでも実況