X



【CGI】合同開発室
0001当方へたれですが
垢版 |
01/10/02 00:35ID:GsMMcvtM
合同で学習用スクリプトとかの開発をできないかと思って
iswebだけどアプロダ置いてみました。
http://isweb36.infoseek.co.jp/computer/perldev/
参加してくれる人キボン
0002当方へたれですが
垢版 |
01/10/02 00:35ID:GsMMcvtM
もちろん私もなるたけ参加します。
私はちまちまサブルーチンやアプロダをやる予定。
チャットとかもやってみたいけど設計はとくにへたれだからなぁ。
0003100%
垢版 |
01/10/02 00:38ID:???
空中分解するでしょう  w
0004当方へたれですが
垢版 |
01/10/02 00:42ID:???
>>3
掲示板改造するって人らが来てくれるかなぁとか思ってるんですが
うう,やっぱそうですかね。
0005100%
垢版 |
01/10/02 00:50ID:???
つかここ人少ないからねー ヽ(´ー`)ノ
でもPG板でソースアプ板無いのも何かと不便だから
「ソースなら良いですよ」ってスタイルならポインタ示したい
時なんかに便利じゃないかな、それで副産物的にテクニックが学べると
いいね お互い
0006当方へたれですが
垢版 |
01/10/02 01:04ID:???
>>5
exeやrmとか置かれるとさすがに困るけど,
Cとかのソースなら範囲内と思てます。

アプロダはざっとしかソース見てないんでちょと不安。
はやく把握したいけど私にはむつかしい・・・
0007当方へたれですが
垢版 |
01/10/02 01:20ID:GsMMcvtM
Network.plを上げてみた。
0009名無しさん
垢版 |
01/10/02 08:30ID:6SpiWnfc
ここの掲示板をつくろうスレって結局完成したんだっけ?
0010名無しさん@お腹いっぱい。
垢版 |
01/10/02 09:41ID:???
何人か作ったと思うけど、共同では完成してないよ。
もっとも、あのスレは共同開発の雰囲気でもないよね。
0011当方へたれですが
垢版 |
01/10/02 22:51ID:???
CGI.plアプ。
クッキー読み書き,フォームデコード。
今回,POST・GETの切り分け,自動判別や,GETのみ取得,ファイルアップロード対応,とかは保留。
アプロダはテンポラリファイル削除でエラー出てるのをなんとかしたい。
上のを実装したらアプロダ作りに挑戦する予定。
0012当方へたれですが
垢版 |
01/10/04 00:42ID:/0/769eo
へたれっぷりを再認識しつつCGI.plのフォームデコード部分をアプしてみました。
メソッド判別して,POST・GETそれぞれのデコード関数に振り分けるように。
次はファイルアップロードのを予定。

あそこに上げたのはいじられる覚悟の上ですんで,
修正や添削してもらえるとありがたいです。
いじられるのに同意してくれて俺の関数もどうよ?
って人が何人かいると共同開発の雰囲気になるかなぁ。
0014当方へたれ
垢版 |
01/10/04 01:48ID:???
multipart/form-dataのフォーマットがわからなかったので
そのままGETみたくデコードしてました。
とほほとかで調べてみます。
ちんたら調べてる間に添削されたのがアプされてたりなんかすると,
オープンソース開発ぽいかも。
0015名無しさん@お腹いっぱい。
垢版 |
01/10/04 03:39ID:f6uUGLLk
CGI.pmじゃだめなの?
0016当方へたれですが
垢版 |
01/10/04 03:51ID:???
マルチパートデコード調べてみました。
残念ながら実力不足で実装までいけそうにないです。

>15
学習用にと思いまして。
0017名無しさん@お腹いっぱい。
垢版 |
01/10/04 04:17ID:???
> ちんたら調べてる間に添削されたのがアプされてたりなんかすると,
>オープンソース開発ぽいかも。

申し訳無いが、今の所「いまさらそれ?」的なものだけなのでね。
CGI.plにしても15の言うとおり、CGI.pmがあるわけだし。
まぁ頑張って下さい(スレと関係無いのでサゲ
0018名無しさん@お腹いっぱい。
垢版 |
01/10/04 06:14ID:???
 遠慮なく人のソースいじるってのは他のとこだとできないんで,
ここがそうなればなぁと思ってましたが,私じゃ力不足だったようです。
 だれかが作ってくれないかなぁと思って待ってても
できなかったので,自分がアプロダ置きました。
 何も無いところにアプする人がいるとも思えなかったので,
自分が書いたのを上げました。
 ランダムアクセスとか,超高速日本語コード変換とか,
すごい人の 役にたてるのを作れるほどの実力があるとは思えないので,
自分くらいのレベル向けにいろんなののをメモしとこうと
書いてました。
 人が来るようになったら誰かにアカウント移そうと思ってましたが,杞憂でしたね。
0019当方へたれ=18
垢版 |
01/10/04 06:19ID:???
というかこれは「合同開発室」じゃなくて
「私のプログラムを添削してください」ですね。
0020名無しさん@お腹いっぱい。
垢版 |
01/10/04 06:40ID:???
この板住人の数が少ないからねー。もすこし待っててみ。
2週間ぐらいスレが生き延びれば定着するよ。
そのためにはネタを出し惜しみして、
ヘッドラインから消えたらageるぐらいでちょうどいい。
002120
垢版 |
01/10/04 06:50ID:???
>ヘッドラインから消えたらageるぐらいでちょうどいい。
う。全然ちょうどよくねえ!
よく見たら最終書き込み9月25日の雑談スレが
まだヘッドラインに残ってるじゃねーかよ!
この板の回転の遅さを甘く見ていた。
あらためて寂寞を感じる今日このごろ。。。
0022名無しさん@お腹いっぱい。
垢版 |
01/10/04 07:29ID:???
一応自作Scriptを書くらいは何とかなるんですが、人様に教える程
には知らない事が多すぎる自分。
multipart/form-data は、先日(勉強も兼ね)自前で実装させたん
ですがRFCやらCGI.pmやら見てかなり泥縄でやったので見せるほどの
物でも無し…(ブラウザごとの実装の違いの可能性はほぼ気に
しなかったし…)。

とは言うものの、スレの趣旨は悪くないので出来たら応援したいっす。

>>21
でも不思議な事に糞スレやら糞カキコは後を絶えないんですよね…。
0024当方へたれですが
垢版 |
01/10/05 23:52ID:1j62Ctwg
CのをまねしてAssert.pl作ってみました。
条件式と変数のリファレンスを渡すと,条件が偽の時STDERRに
条件式と,パッケージ・ファイル・行,変数の内容を吐きます。
たぶん今回も車輪の再開発です。
0025名無しさん@お腹いっぱい。
垢版 |
01/10/06 04:28ID:???
CGI.plを勉強用で片付けないで、CGI.pmを超えるものを作ればいいじゃん。
というわけで、CGI.pmの問題点とか挙げていこーよ。

とりあえず、h1とかHTML生成用のメソッドと、paramとかを分離してくれ。
#HTML::Templateを主に使っているので、h1とかいらないんだよね〜。
0026名無しさん@お腹いっぱい。
垢版 |
01/10/06 07:06ID:???
>>24
ファイル名をAssert.pmにして、assertって関数名を
mainパッケージにエクスポートすると使いやすくない?

正式にExporterのサブクラスにするとかの
おおげさなことじゃなくて、どっかに1行
*main::assert = \&assert;
を入れてmainからアクセスできるだけでもいいと思うんだけど。

こんなふうに、必要なとこでrequireして使う感じ

require Perldev::Assert;
$_ = 'AAA';
my $hoge = 'BBB';
assert( q[$_ eq ""], (\$_, \$hoge) );
0029名無しさん@お腹いっぱい。
垢版 |
01/10/06 13:01ID:0fYRCZ0M
>>25
use CGI qw(:cgi);
でいいかと。
0032当方へたれですが
垢版 |
01/10/06 17:03ID:???
アプロダの設定変えました。
たぶんこれで.plと.pm置けるようになったはず。
Boolean.pm見て勉強してきます。
0033名無しさん@お腹いっぱい。
垢版 |
01/10/07 00:37ID:rgyPDIMY
ドキュメントをpodで埋め込まないなんてナンセンスだよ。
003427
垢版 |
01/10/07 10:38ID:???
>>33
ごもっとも。自分でもそう思った。
学習用のなんだから面倒くさがらずにやりゃよかったな。
0036名無しさん@お腹いっぱい。
垢版 |
01/10/07 21:03ID:???
突然動かなくなったのでいろいろいじってみましたが治せませんでした。
サポート掲示板によると,isweb36サーバーの一部が落ちてるみたいです。
00391
垢版 |
01/10/16 03:42ID:TCS0inSE
低機能アップローダあげました。
このペースだと来年すぎまでかかりそうなので,
今回は自分でフォームデコードはせずに,CGIとFile::Copy使ってます。

content-typeだけでファイルタイプを判定してるので,
plやpmはtxtになっちゃいます。
CGI.pm使ってHTMLを書いたけど,使いづらいしソースも見づらいので
こういうのに便利らしいHTML::Templateを調べてきます。
0041ちんげん
垢版 |
01/10/16 19:55ID:5A+7lSiO
ヘタレながら参戦。
「CGI」の「テキスト」カウンターできたよ〜。
0043ちんげん
垢版 |
01/10/16 21:11ID:???
ヘタレにつき、詳細キボンヌ。スマソ。
0044!42
垢版 |
01/10/16 21:44ID:???
いちいち@fileに入れずに、while(<IO>)で一行ずつ処理する方が、
サーバーにも優しいカウンターになる、という意味だと思われ。
0045!44
垢版 |
01/10/16 21:56ID:???
あれ位のHTMLなら気にする事も無いのかもだけどね
例えばトップが50KBのhtmlとかだと50KBの配列が出来ちゃう
と言うかテキストカウンターっぽい事をしたいなら
読み書きモードでopenして、カウンターの位置までseekしてprint
した方が良いよ。ヘッダなんかを書き換えた時はメンテする必要が
有るけどね。
0046名無しさん@お腹いっぱい。
垢版 |
01/10/16 21:57ID:/3a8HFEe
>>24
うん、Perl5に標準添付されているライブラリ assert.pl があるよ。

# Usage:
#
# &assert('@x > @y');
# &assert('$var > 10', $var, $othervar, @various_info);
#
# That is, if the first expression evals false, we blow up. The
# rest of the args, if any, are nice to know because they will
# be printed out by &panic, which is just the stack-backtrace
# routine shamelessly borrowed from the perl debugger.
0047名無しさん@お腹いっぱい。
垢版 |
01/10/17 00:23ID:???
>41
ロックのところは open or die "Error:$!" みたいに
if ! 使わずに or 使ったり $! も表示したりしたほうがいいと思う。
0048名無しさん@お腹いっぱい。
垢版 |
01/10/17 04:46ID:???
>40 ありがとう。ちまちまやってきます。
>41 参戦感謝。
>46 情報感謝。
 CPAN繋がらなかったんで検索しなかったんですが,標準で付いてましたか。
 標準添付のを見てみたら,以外とライブラリもあるんですね。初めて知りました。

--
HTML::Template調べたところ,以外と簡単そうです。
今日は試しにアプロダの,テンプレだけを書いてみました。
0049名無しさん@お腹いっぱい。
垢版 |
01/10/17 08:37ID:???
> my ($i, $count) = (0,0);
> foreach (@source){
> if ($source[$i] =~ /<!--count-->([\d]+)<!--\/count-->/ig) {
> $count = $1;
> $count++;
> $source[$i] =~ s/<!--count-->[\d]+<!--\/count-->/<!--count-->$count<!--\/count-->/ig;
> }
> $i++;
> }
こんなわけのわからない処理は止めなさい。
foreachの使い方がわかってない。
あと、変換はs///eg一発で出来るよ。
もっと言うと、テンポラリファイルに書き出してからrenameしたほうがいい。
openの戻り値はきちんとチェックしようね。
&lock_file;
open SRC "$source" or die;
open TMP "> $tmp" or die;
while (<SRC>) { s///eg; print TMP $_; }
close SRC;
close TMP;
rename($tmp, $source);
&unlock_file;
こんな流れで。
0050ちんげん
垢版 |
01/10/17 09:12ID:???
>>44 >>45
どうも、ありがとうです。
一回の読み書きOPENで書き換えするのに、seekでカウンター値の先頭への
ポインタを得る方法を考えていたら頭から煙が出てきました。
# なんか見当はずれなことしてんのかなぁ。

>>49

> こんなわけのわからない処理は止めなさい。

厨スクリプトでお目汚しスマソ。

> あと、変換はs///eg一発で出来るよ。

s///egってのがあるんで?勉強してきます。

> もっと言うと、テンポラリファイルに書き出してからrenameしたほうがいい。

そか、一旦、テンポラリに書き出してそれからリネームすればいいのか。
それで昨晩ずーっと悩んでました。

> openの戻り値はきちんとチェックしようね。

Σ(;´Д`)
あっ、ホントだ。してなかった。鬱だ。

大変参考になりました。ありがとうございました。勉強になります。
出直して参ります。
00521
垢版 |
01/10/18 04:29ID:???
>51
勉強用にいただきました。じっくり読めばなんとか理解できそうです。
39:*pkg = \&pakcage;
typoぽいです。

--
すごいなー私も頑張ろう!とあぷろだ上げました。
変更点は,昨日のテンプレ修正と,ファイル名変更,表示部にテンプレ導入,他に少しです。
0053名無しさん@お腹いっぱい。
垢版 |
01/10/18 22:27ID:???
>>45
こうすればメンテ不用になるぞ、っと。

while (<HTM>){
    if (/<!--count-->(\d+)<!--\/count-->/){
        seek HTM,-length,1;
     #書き換え
        last;
    }
}

でもdだ時HTMLごと逝っちゃうのはイヤな感じかも  (w
005845
垢版 |
01/10/18 23:30ID:???
>53 おー さんちぇ!
そっかバックすれば良いんだネ、うちはカウンターまで4行しかないから
イイ(・∀・)感じになったヨ

:でもdだ時HTMLごと逝っちゃうのはイヤな感じかも  (w
うちは閑古Webだからネ、一応ロックバリバリにしてるけど今の所大丈夫みたい
200hit/DAYって感じだからかナ

>54
seek HTM,-length($_),1だヨ
00611
垢版 |
01/10/19 06:46ID:UfCiRs0I
あぷろだv0.1.0上げました。
投稿削除ができるようになりました。
変更点は,ログフォーマット,delete.pl・delsetup.tmpl導入,他少し。
ログフォーマットも大体固まったので明日あたりにiswebにサンプル置きます。

--
>45 >>58
HTML書き出し式カウンタを使ってるんですか?
実際に使うには,普通の,カウントを別ファイルに持つ形式より
危険な感じがするんですが,利点とかてありますか?
煽りとかじゃなくて,純粋に気になったので。
006261
垢版 |
01/10/19 07:04ID:???
>>61
SSI使えないサーバでも使える。ってのがたぶん利点。
それ以外では使う理由ない。
あ、あとはカウンタ表示自体ではCGI起動しないってのもかな。
006362
垢版 |
01/10/19 07:15ID:???
あれ、すみません、俺は61じゃない。
0064名無しさん@お腹いっぱい。
垢版 |
01/10/19 07:34ID:???
>>62
このカウンタって
・htmlにアクセス・表示
・IMG経由でCGI呼び出し
・htmlを解析してカウンタ部分を加算
・html書き出し
という方法ですよね?

これだと以下みたいなのと比べると,
毎回htmlを書き出すんで負荷やあぼーん率が高くなりそうと思って。
・cgiにアクセス
・index.tmpl読み込み
・count.dat読み込み
・カウント
・index.tmplの特種タグ(0<!-- __%%COUT%%__ -->とか)置き換え
・count.dat書き出し
・print

うー,ちょっと混乱してます・・・
0065名無しさん@お腹いっぱい。
垢版 |
01/10/19 10:54ID:???
えっと、
index.htmlのimgタグ(ボクはiframe)でcount.cgiをキック
index.htmlをopen (+<モード)
特種タグ(0<!-- __%%COUT%%__ -->とか)までseekでジャンプ
特種タグ(0<!-- __%%COUT%%__ -->とか)だけ書き換え
close; exit;
ですヨ

理由はSSI出来ないからデス、後UAとかHOSTとか要らないので
外部ファイルは無いデス、(一応重複防止にクッキー吐いてるケド。。。)
だからファイルを一つだけ、一回だけ開いてexitデス。

:あぼーん率が高くなりそうと思って。
うー、これはボクがwriteシステムコールの
アトミック性を理解出来て無い(どれ位で分割されるのカ)のでアレですケド、
実は多分0バイトにはなりようが無いデス、truncateして無いので0バイト
になる瞬間が無いのデス、VMWARE使って、ファイルロック無し、
forkで50プロセス×3ホストから同時アクセスを何十セットかしてモ、ミスカウントは
したけど飛ばなかったですから。。(この辺は突っ込み歓迎デス)

これはflockが信頼出来なくて0になると鬱な時とかちょっと(・∀・)イイかも
知れませン、例えばカウントファイル(カウントだけ)を、、、

open (DAT,"+<foo");
flock (DAT,2);
truncate DAT,0;
seek DAT,0,0;
print DAT "$count";
じゃ無くテ

open (DAT,"+<foo");
flock (DAT,2);
seek DAT,0,0;
print DAT "$count";
truncate DAT,length($count);
とか。。(これも突っ込み歓迎デス)

取り合えず今のところ50000くらいだけどdでないのデス。
0066名無しさん@お腹いっぱい。
垢版 |
01/10/19 16:37ID:???
truncate ってどんな実装よ?
>truncate DAT,length($count);
ここで小さくなったりしないのか、、しないよな、うーん。
0067ちんげん
垢版 |
01/10/19 19:25ID:???
おおお、しばらく見ないうちにおいらの分からないエリアに入ってる...

これを作ったのは、某所で、CGIのテキストカウンターってないの?
という話があったからなんです。で、んじゃ作るかと思って作ってみた
ものなのですが、いやぁ、おのれのあまりの未熟さを痛感しました。

なんか場違いでスマソ。 >1,ALL
0068名無しさん@お腹いっぱい。
垢版 |
01/10/19 19:56ID:???
>>66
カウントファイル的には桁数が前より小さくなることは無いので、
truncate DAT,length($count);では小さくならないね。
ってことは truncate かける意味も無いけど。
00701
垢版 |
01/10/19 21:45ID:???
>>65 ありがとう。なんとなくわかりました。
>>67
ぜんぜん場違いでないと思いますよ。
スレが活発化しました。
0074名無しさん@お腹いっぱい。
垢版 |
01/10/19 22:41ID:???
+> 使ってるのなんて始めて見た。
しかもこの場合意味無いどころか、いったんtruncateされるので
タイミングによってはindex.htmlが正常に見られない。
0076名無しさん@お腹いっぱい。
垢版 |
01/10/19 23:47ID:???
ところで>>1よ。
アプロダの
A:hover {color: red; font-weight: bold;}
このドキュソスタイル指定を消してくれ。マジウザイ。
0078名無しさん@お腹いっぱい。
垢版 |
01/10/20 00:23ID:???
>76 了解。消しました。
--

あぷろだ,テスト設置してみました。
iswebなので,コピペで飛んでください。
ttp://isweb36.infoseek.co.jp/computer/perldev/cgi-bin/tiny_upbrd/upload.cgi
まだ拡張子の判定がイマイチです。
008071
垢版 |
01/10/20 15:57ID:DdyXBwQg
>>75
これ良いな、ちょっとflock外して5万回位叩いてみたけどHTMは勿論カウンタデータも飛ばないよ
良く考えたらとびようが無いんだな。syswrite使っとけばより安心って所かな?
俺の使ってる所時々ファイルが飛ぶから、上のKY何とかみたいなのは怖くて使えないんだよ
俺もアクセス解析とか要らない派だから外部ファイル無いのも気に入った
ちょっと弄って使わせてもらうよ THANKS!!
0083名無しさん@お腹いっぱい。
垢版 |
01/10/20 16:58ID:WoA8FLwb
>>80
5万回つーても、同時アクセス数いくつに設定?
008571
垢版 |
01/10/20 17:32ID:???
何っつーか、、
>>81 やってみれば?
>>83 5万回÷俺の環境で許されるほぼ最大のプロセス数だけど?、
つーか君はディスクアクセスなんてオーバーヘッドの馬鹿デカイ処理に対して
単にローカルでforすりゃ十分って事が分からないのかい? 

まー良いや取り合えず>>75 有難う!
008683
垢版 |
01/10/20 17:57ID:???
>>85
いやーん怒んないで。Apacheのおまけについてくる
abコマンドでベンチマークとったのかと思ったんですよう。
008771
垢版 |
01/10/20 18:52ID:???
あ、こっちもスマソ fork×50でtrigger.plをexec trigger.plで1000forて感じ。
これ以上はNTだとヤバイから、ローカルはIISだからabコマンドは解らないよ
HTMをパースしてそこだけ書き換えるってのが、本物SSIっぽくて
ちょっと良いなと思っただけ、別に飛ばない方法なら幾らでもあるし
と言う事で外野は去る事にする。
008881
垢版 |
01/10/20 22:05ID:???
疑問っつうか、されない事わかってて言ってますよ:-)
0089名無しさん@お腹いっぱい。
垢版 |
01/10/20 22:14ID:lWm0+PHj
ゴミどもめ。
早く死になさい
0092名無しさん@お腹いっぱい。
垢版 |
01/10/21 00:17ID:???
>>84
取り合えずCGIならdieは辞めとけ、エラールーチン書いてそこに飛ばせ
ただ例えばファイルが100kbだとして、書き換えたいのは20バイト足らずなのに
毎回全部書き直すってのは効率はよろしくないってこった、
その程度の効率は俺は気にしないけどな、それが嫌なら75のをパクれ
00941
垢版 |
01/10/23 02:28ID:RBVSiDON
あぷろだのネタが思いつかなくなってきたので,XBM表示CGI作りました。
<IMG src="xbm.cgi?100">で100と表示します。
サンプルは
http://isweb36.infoseek.co.jp/computer/perldev/cgi-bin/print_xbm/view.cgi
です。

□と■の文字列から画像データを生成するようにしてみしたが,
変換処理,ごちゃごちゃして少し読みづらくなっちゃいました。
0095仕様書無しさん
垢版 |
01/10/27 23:41ID:YdPss8Pv
(´-`).。oO(移転あげなの・・・)
00961
垢版 |
01/10/28 00:59ID:???
>95
ありがとです。
今ちまちまとネタCGI(物語自動作成)作ろうとしてるんですが,
いきなりデータ形式でつまってます。
作ってみたいのいくつかあるんで,浮気しながらちょこちょこ書いてこうかと思います。
00981
垢版 |
01/11/02 04:59ID:/ySb/MGF
>>97 全然問題ないです。そういう意味もこめて置いたので。

--
改造工房用にアプロダ置いたら,どのくらい利用されると思いますか?>ool
0099名無しさん@お腹いっぱい。
垢版 |
01/11/02 07:44ID:???
>>98
ログ設定を大きくしていると利用されやすいかも。
すぐに流れると、投稿する方も閲覧する方もツマンナイし。
(ぁゃιぃ風味は止めた方が良いですよ)
01001
垢版 |
01/11/03 04:40ID:???
あぷろだ v0.1.2をあげました。
>>1 からいける,「あぷろだテスト」のほうです。
CONFIGとテンプレまわりいじって,CSS使ってみました。
レスを投稿する


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