トップページphp
982コメント335KB

【Ruby】RubyでCGI

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/04(金) 12:57ID:c4hRtzGY
Rubyについて語るスレッドです。
関連リンクは>>2-3
0567nobodyさん04/03/23 16:53ID:???
>>566
どっちも薦めん。tDiary とか読め。
それか、オライリーのCGI本、もしくは Rubyアプリケーション何とか、とか。


それよりも、大学ではどんな風にRubyを教えてるのか、それを教えてくれ。
0568nobodyさん04/03/23 19:31ID:???
Divが一番詳しく載ってるのは自分が調べた範囲ではDRuby本かな。でも説明されているコードのバージョンが古いのであとはソース嫁とかそんな世界。
0569nobodyさん04/03/24 04:59ID:???
>>563

Tofuは使ったことがありますが、RWikiでの説明などで大体わかりました。
Divについては実際に使われているもののソースを読むのはいかがでしょうか。
たとえばdivipとか。

divip - Div IP Messenger
http://divip.sourceforge.jp/

で、divipのMLを読んだらUNIX USERのバックナンバーに
Divの解説記事があるとのこと。

[divip-list:7] UNIX USER2003-09
http://lists.sourceforge.jp/mailman/archives/divip-list/2003-August/000006.html
0570nobodyさん04/03/24 20:00ID:???
>>568 >>569
dRuby 本は積ん読になってました。読まんと。
divip と UNIX USER もチェックしてみます。

あと、ついでといってはなんですが、
Webrick のドキュメント (チュートリアル的なもの) で良さそうなのありますか?
webrick.org にいくつか使用例がありますが、
フォーム (HTTP POST) を使う例が無いのでそこらへんからつまずいてます。
0571nobodyさん04/03/24 22:39ID:???
>>570
他のドキュメントは知らんが、
どういう風に躓いたか教えてくれたら、ちょっと考えてみるよ。

期待はしないでほしいけど。
0572nobodyさん04/03/29 09:30ID:3mAZfbN2
Rubyっていいのかな〜?
ちょっと勉強してみようと思うんだけど、お薦めの本とかあります?
拙者はC言語が分かる程度です。
0573nobodyさん04/03/29 14:03ID:JHAif1f9
>>572
たのしいRuby
0574nobodyさん04/03/30 02:15ID:???
>>570
Rubyのソースにある sample/webrick/demo-app.rb とか。
GETとPOSTのサンプルだと思います。
0575nobodyさん04/03/30 02:40ID:???
>>574
おおお!ありがとうございます。私の目は節穴でした。

言い訳ですが、FreeBSD の ports で入れると、
こういう Ruby 標準添付になった物のサンプルやドキュメントが
ごっそり無くなってる (インストールされない) んですよね。
まだ標準添付にならずに独立してた頃の方が、
そのへんがインストールされる分、良かった。
0576nobodyさん04/03/30 03:09ID:???
>>575
sample/webrick以下のファイルは、1.8.1リリース後に[ruby-list:39029]が
きっかけとなって追加されたみたいです。

http://rrr.jin.gr.jp/rwiki?cmd=view;name=ruby-cvs-2004-01-07#a21.3a22.3a19
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/39029

今後portsのrubyが更新されればこの辺のファイルもインストールされる、
と思います。多分。
057757204/03/30 08:18ID:???
>>573
サンクス。
本屋、行ってみます。
0578nobodyさん04/04/11 02:08ID:???
perlのCGI並に動けば正義みたいだなあ。
perl CGI同様格好のセキュリティホール(攻撃対象)になりそうな予感。
0579nobodyさん04/04/11 02:33ID:???
>>578
“perlのCGI並に「動けば正義」みたいだなあ。”
という意味かな?

言語は何を使っても、きちんとプログラムを作らなければ
穴が出来るのは同じだと思うのですが。
0580nobodyさん04/04/11 03:58ID:???
わざわざperlじゃなくてruby使うくらいなのに、そのきちんと穴のことも考えようとはならずにperlと同じになってしまっているのは志が低いよ。
なんとなく人と違うことをしたがるけどほぼ同じ事やってるプチあまのじゃくな人が好む言語ですか?
それならperlでいいじゃないかと正直思う。
0581nobodyさん04/04/11 04:22ID:???
いや、どっちでもいいじゃん。
0582nobodyさん04/04/11 04:56ID:???
>>580
穴が出来るかどうかと、出来やすいかどうかとは違う話です。
rubyの方が出来にくいと私自身は感じますが、rubyに親しんで無い人が作れば簡単に穴は出来ます。
それはどの言語でも一緒でしょ。

っていうか、そう思うなら自分で「CGIで穴bェ出来にくい」血セ語を作れよ。
どれだけ実用性とバランスが取れた言語が出来るか、見ものだな。
0583nobodyさん04/04/11 19:08ID:???
漏れはperl並ならすなおにperl使うよ。面倒だし。
メリットないならrubyでCGIやる必要ないし。
0584nobodyさん04/04/11 20:36ID:???
慣れてる言語使えばいいだけの話でしょ。
0585nobodyさん04/04/11 21:58ID:???
お前ら釣られ過ぎ。
0586nobodyさん04/04/11 23:04ID:???
世の中には釣られるのが好きな人もいます。
0587nobodyさん04/04/12 01:50ID:???
漏れは釣りのほうが面白いかな。
ポイントにエサ垂らしてみて食いついてきたらキターって感じ。
デバックしてるときのブレークポイントでうまく捕まえられたときの嬉しさに通じるところがある。
最近は魚も賢くなってあきらかにエサ垂らしても食いついてこないので戦略的に釣りをするところが楽しい。
0588nobodyさん04/04/12 05:59ID:???
いや、Rubyを使う漏れから言わせると、
Perl使い続ける人は偉いと思うですよ。

Perl使う人は、仕事人という感じがしてる。
歴史が長いから、ユーザが多いからという理由だけてであれを使いつづけられるのは凄い。
コードに好き嫌いは無いというか、いい仕事をする、いいコードを書くというエゴから解放されていると思う。

Ruby使う人は激しく怠け者。
0589nobodyさん04/04/13 22:38ID:???
ほんと、Perl使い続ける人は偉いよ。
農作業なんかも得意だと思うね。
0590nobodyさん04/04/20 15:47ID:Ea+/kdHD
「基礎から学ぶWebデーターベースプログラミング」
で書かれている内容はWindows+Cygwinの環境で試すことができますか?
0591nobodyさん04/04/20 23:30ID:???
できるんじゃない。
Cygwin 上の DB がパフォーマンス悪いくらいのもので。
0592nobodyさん04/04/21 01:08ID:???
今なら無料のSFUでがんばるべきのような。一応UNIXだよ。
0593nobodyさん04/04/21 09:39ID:???
SFUを知らなかったのですが、以下のサイトを読む限り
cygwinの方が私には良さそうです。
ttp://pcweb.mycom.co.jp/special/2004/sfu/
0594nobodyさん04/05/06 00:28ID:wtWitys7
print "dump:#{title}\n#{s.unpack(\"H*\")[0]}\n"

この構文で warning: escaped terminator '"' inside string interpolation
と、エラーがでるんですが、原因はなんですか?
0595nobodyさん04/05/07 22:30ID:OJ0mxpcs
>>553
わしは、 TapKit に期待してます。

http://www.spice-of-life.net/tapkit/index_ja.html
0596nobodyさん04/05/08 01:50ID:???
>>594
お使いのRubyが1.8.0以降でしたら、以下のページの記述が当てはまるかも。

ttp://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=changes.1.8.0.ja

以下引用。適当に改行してます。

文字列の式展開 (expression interpolation in strings)
Now arbitrary statements are allowed inside #{} interpolation without escapes.
In other hand, they can no longer access to variables defined in eval.
#{} の中で、任意の文がエスケープなしで記述できるようになりました。
一方、evalの中で定義された変数にはアクセスできないようになりました。
0597nobodyさん04/05/08 13:41ID:???
>>580
PerlとJavaを比べたらPerlのほうがいいと思うよ。しかし、PerlとRubyでは、漏れの場合はRubyのほうがいい。
0598nobodyさん04/05/13 14:13ID:???
http://www.rubygarden.org/ruby?HtmlTemplates

ここに色々なtemplateが紹介されてますけど、
皆さんはどれを使ってますか?
使った感想やお勧めがあったら教えてください。
出来れば理由も。

私はtempuraを使って見ようかなと思ってます。
理由は
http://www.imasy.or.jp/~hisa/tempura/tempura.ja.html
を読んで納得が出来たので。
0599nobodyさん04/05/14 16:45ID:???
Rubyの長所って何だよ
0600nobodyさん04/05/14 17:07ID:???
それを教えてあげたいのはやまやまだが、ここには狭すぎて書けない。
0601nobodyさん04/05/14 21:06ID:???
>>598
Amrita
・多少重くても気にしない
・HTML/XML 以外には使わない
・テンプレートにコードは一切入れたくない
0602nobodyさん04/05/20 12:28ID:NShBOzWM
PHP普及の原因は、イスラエル・Zend社のマーケティングの成功にある。
@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php
PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php
の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!


0603nobodyさん04/05/20 16:28ID:cgjPprlD
>>602藻前それ他のスレにも這ってるだろ
マルチぼけがぁああああああああああああ!!
0604nobodyさん04/05/23 23:41ID:???
Hikiのプラグインはどのように実行されるのでしょう?

def con(str1, str2)
str1+str2
end

普通のRubyだと、
puts con(con("h","o"),"ge") #=>"hoge"
とメソッド内の引数にメソッドを書いてもOKですが、

hikiで{{con(con("h","o"),"ge")}}を書くと、
Hiki::PluginException(wrong number of arguments(3 for 2)): con
が出ます。
0605nobodyさん04/05/24 01:05ID:???
>>604
Hikiのプラグインの引数は単に「,」で適当にちぎって
渡すだけで式として評価されるわけではない。ただし
数っぽく見えるものは数に変換したり、"..."や'...'
は外側の「"」「'」をはぎとったりはしてくれたかな。
0606nobodyさん04/05/24 01:28ID:???
>>605
では、
con(con("h","o"),"ge")}
のようなことをやりたいときはどうすればいいですかね?
0607nobodyさん04/05/24 08:42ID:???
文字列をevalするプラグインでも作るとか?
うかつに用意するとセキュリティホールになりそうだが。
0608nobodyさん04/05/24 08:55ID:???
確かにXSS対策が必要ですね。
0609nobodyさん04/05/24 15:45ID:Nhm51Qmv
Windows環境でGDを使いたいのですが、どうしたらいいんでしょうか?
Ruby本体はruby-1.8.1-i386-mswin32.zipを利用しています。
0610nobodyさん04/05/30 15:58ID:???
これか。

【オフィシャル】Rubyはこのまま消えていく言語にノミネートされました 【サイト消滅】
http://pc5.2ch.net/test/read.cgi/prog/1085829204/
0611nobodyさん04/06/28 21:24ID:???
hikiアップデートしないとかなりまずい?
0612nobodyさん04/06/28 21:39ID:???
jailでも使ってんでない限り、かなりまずー。
0613nobodyさん04/07/05 05:17ID:???
amritaのサイトどこいった〜
0614nobodyさん04/07/05 07:05ID:8NRD/g5j
>>613
ほんとだよ。だれか知らないか。
0615nobodyさん04/07/25 10:20ID:lhtgOqn2
>>614
http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/104977

> he is working on restoring the web pages.

ってあるからそのうち復活するんじゃないすかね、きっと。
0616nobodyさん04/09/06 20:32ID:yBVAikae
amrita復活age
0617nobodyさん04/10/08 03:24:16ID:???
すっげw 1ヶ月とかレスついてないしw
Ruby人口って激減してるの?
0618nobodyさん04/10/08 11:01:15ID:???
単にRubyでCGIって人がいないんだろう
CGIならPerl、というのが結局定着してるし。
0619nobodyさん04/10/12 14:03:12ID:???
単にこのスレの存在を知らないのだと思う。
0620nobodyさん04/10/12 20:39:31ID:???
というか話すネタがない。
0621nobodyさん04/10/18 04:58:49ID:???
CGIKitにてファイルアップロード後に別ページを表示させるにはどうしたらいいのでしょうか。
単なるフォームの場合はわかるんですけども。
0622MoonWolf ◆BwMoonWLvE 04/10/18 21:46:47ID:???
>>621
ソースをアップしてくれたらアドバイス出来るかもしれない。
普通はLocationヘッダを吐くか、<meta http-equiv="Refresh" content="10;URL=http://example.com/">
みたいなHTML吐いてリダイレクトさせる。
0623nobodyさん04/10/18 22:01:58ID:MFPrIGvP
>>622
CGIKitの場合は
response.set_redirect(飛び先のURL)
ですよ。

ちなみにファイルアップロードの時って違いあるんだっけ?
0624nobodyさん04/10/19 01:06:57ID:???
MoonWolfさん、623さん、ありがとうございました。
お答えいただいた内容をもとに解決することができました。

0625nobodyさん04/11/11 16:59:35ID:???
CGIKitとSWSを比べてるんだが、
CGIKitはWebObjects風に<CGIKIT>タグをtemplateに埋め込むが、
SWSは通常のHTMLタグにsws属性で指示を埋め込めるらしい(Tapestry風か)。

通常タグの方が、templateのデザインにHTMLエディタが使えていいんだが、
CGIKitとしては「プリプロセッサでやってくれ」という立場のようだ。
http://www.freeml.com/message/cgikit@freeml.com/0000480

というわけで、SWSの方が筋が良さそうなんだが、誰か使ってる奴いる?
0626nobodyさん04/11/11 23:34:30ID:???
>625
やっぱりTemplateEngineは自作でしょ
0627nobodyさん04/11/12 11:58:22ID:???
いろんな用途に使える車輪はないのか
0628nobodyさん04/11/12 23:41:20ID:???
NoraのWeb::Templateがるびまに簡単なチュートリアル載ってて
割と簡単だったので今書いてるプログラムに使う予定。

ruby-listのがちょっとアレだけど、まあ。
0629nobodyさん04/11/13 01:24:13ID:a20D0PWx
昔どこかのサイトでテンプレートエンジンの速度の比較データを見たことがあるんだけど検索してもみつからない。
どこのサイトか誰か知りませんか?
0630nobodyさん04/11/14 23:15:48ID:???
>>617
最初っから rubyでcgi書いてるやつそんなにいないから。
0631nobodyさん04/11/22 04:45:41ID:???
今日,mod_ruby1.2.4を導入してみたのですが.
print "content-type: text/html\r\n\r\n"
# htmlをプリント
のようなcgiがまともに動きます.

ttp://arika.org/doc/debuan.mod_ruby.html.ja
ここを見る限り,
print "HTTP/1.1 200 OK\r\n"
などを書いてからじゃないと駄目くさいですが,
これはmod_rubyが使われていないって事でしょうか…?
0632nobodyさん04/11/22 06:06:28ID:???
自己解決しました.
サンプルのhttpd.confのままだと/rubyにrubyスクリプト置かなきゃ駄目なんですね…
恥ずかしい…
0633nobodyさん04/12/09 01:38:09ID:???
SWS 使ってみたいが、日本語の情報なさすぎ。
0634nobodyさん04/12/11 01:20:49ID:???
影舞入れてみた。
ちょっと感動した。
っても、BTS使おうよ!!とこれから会社の連中に頼み込まねばならんのだがorz

# どうせならDB、Firebirdにも対応させたいなぁ
0635nobodyさん04/12/11 09:19:02ID:???
影舞でToDoの管理を始めてみた。
なかなか便利だ。
っても、おれのToDoがバグ呼ばわりされてしまうのがorz

# 最初の報告者の表示を消したいなぁ
0636nobodyさん04/12/15 22:22:22ID:GHNVBmM1
PerlとRuby両方で掲示板作りに挑戦してみたけど、趣味でやるならRubyの方が楽な気がします。
30歳を超えたサラリーマンの日曜プログラマは作りかけのスクリプトを一ヶ月ぶりに開くなんてザラ。
この歳になると記憶力も相当に落ちているので、コードが読みやすいことは切にありがたいのです。
0637nobodyさん04/12/31 22:25:51ID:???
それではみなさんよいお年を。
来年はCGIクラスが使いやすくならないかな。
063863704/12/31 22:35:02ID:???
>>637
などと思っていたら……

RAA - cgi_adjuster
http://raa.ruby-lang.org/project/cgi_adjuster/

というのがありました。

http://www.nslabs.jp/rubycgi-18compat.rhtmlを読むと「とぼけた失敗」
「Ruby 1.8.1でもRuby 1.8.0と非互換な変更が入っている(ふざけているの?)」
などと、そうとうお怒りのご様子。
0639nobodyさん04/12/31 23:46:34ID:???
はたしてrubyはアプリケーションの基盤として使用に耐えうる言語なのかどうか。
これは開発者のメンタリティの問題だが。
0640nobodyさん05/01/01 00:46:57ID:???
cgi.rb の仕様が間違っていたのは火を見るより明らかなのに、
いつまでも cgi.rb なんか使い続けてる方が間違いでしょう。
0641nobodyさん05/01/01 14:50:38ID:???
Rubyの標準添付以外に、まともなCGIライブラリ実装ってあるん?
標準添付のがまともだと言う気はさらさらないが。
0642nobodyさん05/01/01 18:47:11ID:???
今熱いのはRuby on Railsだな。
0643nobodyさん05/01/01 21:09:57ID:???
Nora かな。

とか言うと荒れそうなのでやめとく。
0644nobodyさん05/01/02 06:43:52ID:???
WEBrick::CGIはどうよ? 既に標準添付されているし、
WEBrickのServletとしてもすぐに使えるように作れるし。
0645nobodyさん05/01/02 15:28:22ID:???
>644
え、標準添付? ……うぉっ、ほんまや。
たまにはmake installしたあとlib以下ものぞいてみるもんですなorz
つらつら眺めてみるです。さんくー
0646nobodyさん05/01/03 09:59:01ID:???
ここにも貧弱なRubyドキュメントの弊害が
0647nobodyさん05/01/03 15:10:16ID:???
リファレンスには徐々にドキュメントが増えているので、
1.8.3が出る事には改善されていると思いますよ。
……などと他人事のように書いているのが間違いなのか。
0648nobodyさん05/01/04 08:17:56ID:Y50UuVB0
cgi.rbよく使ってるけど、どのへんの仕様が間違ってるの?
他に乗り換えなきゃいけないくらい深刻?
0649nobodyさん05/01/05 00:21:46ID:???
phpに対するrubyの優位点ってありますか?
あるとしたらどんな点ですか?
0650nobodyさん05/01/05 01:27:35ID:???
>648
638で出てる辺りは結構イヤソな気も。
065164805/01/05 07:58:47ID:ZQKhbklS
なるほど互換性の問題ね。
たしかにそれはある。


>>649
CGIがRubyの書式で気持ちよく書けることでしょ。
またいったん覚えたらRubyの方がいろいろと他の用途にもつぶしがきく。

でもウェブ技術に限定すれば、ユーザーも多く高速なうえサーバー負担も軽いときているPHPには到底及ばん罠。
0652nobodyさん05/01/05 15:29:45ID:???
PHPって高速なん?
0653nobodyさん05/01/05 22:26:57ID:???
>652
PHP使うときは99%mod_phpで動かすからなぁ。
mod_perlやmod_ruby使えば……むー、どうなんだろう? いいベンチの取り方ないかなぁ。
(っても、まずmod_php、mod_ruby(とついでにmod_perl)使えるようにして
各言語でカリカリにチューニングしたコード書かなきゃならんよなぁ。マンドクセ)
0654nobodyさん05/01/06 00:27:16ID:???
ただmod_rubyは専用鯖か自宅鯖限定になっちゃうからな・・

ウェブ用途で使いたい奴の大半は共用鯖で使うこと考えてるわけだしなぁ
0655nobodyさん05/01/06 00:42:36ID:???
なんでphpってmobで動いてるのが多いの?
0656nobodyさん05/01/06 19:27:54ID:???
てゆうか、サーバーのモジュールでないピーエイチピーインタプリタなんてあるの?

ウェブに特化して設計してあるから、仮にあっても汎用的なスクリプト言語としてはまだまだ非力だと思うがなぁ。
0657nobodyさん05/01/06 20:24:46ID:???
>>656
あるよ。
ちょこっとテストしたいときとかに、コマンドラインで、
% php hoge.php
みたいに試せるので便利。
ただ、それ単体で実用しようという気にはなれないけど。
0658nobodyさん05/01/07 22:10:24ID:???
>>656
CLI(Command Line Interpreter(?))ってのがあって、ソースからコンパイルするとそれが/usr/local/binとかにインストールされる。
それとは別にCGI実行用のコマンドも作れるのだが、コマンドラインからスクリプトを実行しただけで必ずHTTPヘッダが出力されるからいやーん。

Webプログラミングから入った人が簡単なコマンドラインスクリプトを書くには、やっぱりCLI版のPHPがいい。おれはよく使う。
065965605/01/08 12:13:44ID:???
へえー。
結構何でもできるとなるとユーザー多いから結構なコミュニティに発展しそうだね。
ピーエイチピーはスルーしない方がいいね。
0660nobodyさん05/01/08 12:43:12ID:???
素直にperlで書け
0661nobodyさん05/01/08 12:56:05ID:???
だってperl_mob入ってるサーバ少ないんだもん。
0662nobodyさん05/01/08 13:58:42ID:???
perl_mob とかいわれると LYNCH MOB とかを連想してしまう。

ところで mob とか perl_mob とかって一体何?
0663nobodyさん05/01/08 14:12:10ID:???
mob_perlだった、スマソ。
apachのモジュールとして動いてるって事。>mob
0664nobodyさん05/01/08 14:14:51ID:???
英語って似たような字が多くて難しいよな。
0665nobodyさん05/01/08 14:16:31ID:???
ごめんね、本当にごめんなさいorz 顔から火が出るほど恥ずかしいです。
moduleでしたな。。
0666nobodyさん05/01/08 16:15:18ID:???
WEBrickでのセッション管理にはTofuを使うのが常道?
もうちょっとマシなのは ないんすかね。
あ、WEBrick::CGI使うのを想定してます。
■ このスレッドは過去ログ倉庫に格納されています