■ 2ちゃんねるは、ここのサーバを使ってるです。。。
 .jp ドメインお持ちのお客様大歓迎。maido3.jp
 .fm 取得代行します。(US) maido3.fm
 .ca 取得代行します。(US) maido3.ca
 .com .net .org 取得代行します。(US) maido3.com
 .cc .to .tv 取得代行はじめました。NEW
人気サイト
月々1,000円からの BinboServer.com 2ちゃんねるも使っている Big-Server.com
>> 2ちゃんねる、サーバ監視所

■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
RubyでしょぼいCGIつくってみたんですけど・・・
1 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:07
2ちゃんねるのそれぞれの板で、どんなスレがあがっているか
つまり、ヘッドラインみたいなものを表示するスクリプトなんですが
原因不明のバグに陥ってしまってどうすればいいのかさっぱりわからない状態です。

コマンドラインからなら正常に動作するのですが、サーバーにアップしてみると
インターナルサーバーエラーとなってしまいます。

http://211.125.64.135/
正常に動作した場合はこのようなhtmlファイルを返すはずなんです・・・

http://211.125.64.135/getsub.txt これがソースファイル
http://211.125.64.135/index.txt これがcgiにリクエストをだすhtmlファイルです

Rubyに詳しい方や興味がある方、できればどこが間違っているのか教えてくださいませんか


2 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:12
#!〜が書いてないとか?


3 名前: 投稿日: 01/09/21 11:13
http://211.125.64.135/index2.html
こんな風に複数の板も表示できるはずなんですが・・・

サーバー上で動かないんです


4 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:15
オブジェクト指向スクリプト言語Ruby part2
http://piza2.2ch.net/test/read.cgi?bbs=tech&key=987231068

へ以降しましょう。


5 名前: ラウンジャー 投稿日: 01/09/21 11:15
おっ来たねぇ。
がんがれよ。おまえには才能がある。


6 名前: 投稿日: 01/09/21 11:15
>>2
それも試したんですけど、どうもうまくいかないようです


7 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:17
実行パーミッションにしてないとか?


8 名前: 投稿日: 01/09/21 11:18
>>4
死んだスレに質問してもちょっと・・・
ウザイのは十分承知ですが、ここで続けさせてください

>>5
昨日のスレみてくれてた人ですか?
実はあれから徹夜で改良してたんです
でもバグって・・・


9 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:19
死んだスレでもないだろ。最終書きこみ昨日だし


10 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:20
>>7
色々試したんですが、設定の問題ではなさそうです・・


11 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:22
HTTPヘッダを送ってないとか?


12 名前: 投稿日: 01/09/21 11:23
>>9
プログラマー板のすれと勘違いしてました。すいません

>>11
詳しく教えてください。ヘッダの送り方とは?


13 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:26
print "Content-type: text/html\n\n"


14 名前: 投稿日: 01/09/21 11:34
>>13
できました!!
ありがとうございます!!

http://211.125.64.135/index.html
一応完成形です

あとは、ファイルロックとかその辺が出来れば・・・


15 名前: ラウンジャー 投稿日: 01/09/21 11:36
>>14
やたー!おめでとう。
しかもヘッダの間違いだったのかよ!ワラタ。。
完成したらひろゆきにメールして2チャンネルにリンクしてもらいなよ。
きっとOKだと思うぞ。


16 名前: 投稿日: 01/09/21 11:42
>>15
わーい!うれしいな
ここで相談するの怖かったけど、来て本当によかったよ
ありがとね

ラウンジでも宣伝したから今アクセス来まくり
サーバー落ちそう


17 名前: 投稿日: 01/09/21 11:51
ついでと言っちゃあなんですが、ソースレビューしてくれる人いませんか?
全て独学で進めてるからどんなコード書けばいいのかよくわかんないんです
自由に改造・再配布してくれて結構なんで、ここを直せ!とかこんなくそな書き方するな!とか
アドバイスください

http://211.125.64.135/getsub.txt


18 名前: デフォルトの名無しさん 投稿日: 01/09/21 11:56
13によりネタ(宣伝)と断定させていただきます。


19 名前: 投稿日: 01/09/21 12:03
>>18
ネタでも何でもいいよ!
プログラム板の人ありがとね


20 名前: 投稿日: 01/09/21 16:56
対応スレを大幅に拡大してリニューアルしました
感想聞かせてください

http://211.125.64.190/index.html
ここにアクセスしてみてください

ソースや掲示板のリストはここです
http://211.125.64.190/getsub.txt
http://211.125.64.190/namae.txt
http://211.125.64.190/server.txt


21 名前: 投稿日: 01/09/21 17:07
あれ?
放置?


22 名前: デフォルトの名無しさん 投稿日: 01/09/21 17:44
CGIってのがねえ。
自分ならheadline.html生成するスクリプトをcronでまわす。
それと、 SocketError, Errno::ETIMEDOUT 例外くらいは拾っておいてくれ。


23 名前: 投稿日: 01/09/21 17:49
>>22
おお!
貴重な助言ありがとうございます。

でも、自分はwin厨なんでcronまわせないっす
ソケットのエラーは戻り値をチェックすればいいんでしょうか?
例外処理はまだ勉強してないからやっときます


24 名前: 投稿日: 01/09/21 19:03
http://nmgm.s2.xrea.com/
サーバ借りてアップしてみました


25 名前: ルビ厨な人 投稿日: 01/09/22 23:24
>>1
俺がRubyでCGI作るときに参考にしたページを教えとくよ。
ttp://www.rubycgi.org/
ttp://www.asahi-net.or.jp/~fz9h-tkuc/ruby/cgi/rubycgi.html
もう、知っているかもしれんがな、、、
あと、indexはcgiにしてCookie付けてあると便利かも。
その時は、チェックをクリアする機能も付けて欲しいな。
つか、ソースを参考に見たいんだが、、、アップしてないの?


26 名前: 投稿日: 01/09/23 12:49
>>25
アドバイスありがとうございます
いやいや、参考になるサイトですね。知りませんでしたよ

それと、ソースは公開してますよん
http://nmgm.s2.xrea.com/getsub2.zip
http://nmgm.s2.xrea.com/imode.zip

上が、http://nmgm.s2.xrea.com/index.htm のソース
下が、http://nmgm.s2.xrea.com/i/imode.xcgのソース
自由に使用・改造・再配布してもらって結構です

いろいろな所で宣伝したら結構評判(・∀・)イイ!! みたいです
昨日一日で3000アクセスあったし


27 名前: デフォルトの名無しさん 投稿日: 01/09/23 17:35

                 
――――――――――――――――――――――
番組の途中ですが、臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________   
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ Λ_Λ
      .../   //(´∀` )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻


28 名前: デフォルトの名無しさん 投稿日: 01/09/23 20:22
――――――――――――――――――――――
番組の途中ですが、臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________  
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ  Λ_∧
      .../   //(´∀` )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻


29 名前: デフォルトの名無しさん 投稿日: 01/09/23 20:22
――――――――――――――――――――――
番組の途中ですが、臨時ニュースです。
「Rubyはクソです。ゴミ箱逝きです。 いじょ 」
この発言をコピペしていただければ幸いです。
___________   __________
             ‖ \|________  
             ‖ | ON AIR.|
             ‖  ̄ ̄ ̄ ̄
        ./ ̄ ̄θ  ∧_∧
      .../   //(´∀` )/|
     ./      ̄/⊂    ||_/
     | ̄ ̄ ̄ ̄ ̄|  (  ━┳┛
     |_____| /ヽ」┘┻



30 名前: あなたのうしろに名無しさんが・・・ 投稿日: 01/09/23 21:12
↑なんでこの人はRubyが嫌いなのか?
知ってる人おせーて。


31 名前: ルビ厨な人 投稿日: 01/09/24 03:06
>>1
Oui. ソース、確かにありました。
それに、お役に立ててもらって嬉しいです。
何か気づいた点があれば、またカキコします、、、
>>30
僕の推測ですが、次のような人たちであると思われます。
1.Rubyがわからない、というよりオブジェクト指向を理解できなく、Rubyが使えないので、その八つ当たりする勘違いな人。
2.Rubyの驚異を恐れるPerl信者。
3.ルビ厨のうざさに苛ついているが、プログラムを組んだことも無い板違いな人。
4.よくわからんが、とりあえず煽っとけとがんばる厨房。
こんな感じではないでしょうか?
一部、Rubyの弱点(遅いとか、Ruby使えるCGIサーバが少ないとか、その他にも僕はあまりよくわからないがあるらしい、、)に嫌気がさして、Rubyを批判をしている人もいますが、そのような人たちはちゃんとした理由を書いて、無意味なコピペなんかしてないみたいです。


32 名前: デフォルトの名無しさん 投稿日: 01/09/29 21:21
>>31
2chに意味のある批判を期待してモナー


33 名前: デフォルトの名無しさん 投稿日: 01/09/30 15:23
こっちもageよう。
メルマガで紹介されてたよ。


34 名前: デフォルトの名無しさん 投稿日: 01/09/30 16:46
Rubyの驚異ってなんですか?(・ x ・)


35 名前: ルビ厨な人 投稿日: 01/09/30 16:53
>>34
>Rubyの驚異ってなんですか?(・ x ・)
んなものないよ、、、
Rubyが盛んになったとしても、それとPerlが落ちぶれるかはまた別の話だし、、、
まあ、コピペする人は変な強迫観念に陥っていると思われ


36 名前: デフォルトの名無しさん 投稿日: 01/09/30 16:57
まあ、Rubyがおそいって言っても、Javaよりは速いから実用になるでしょ


37 名前: デフォルトの名無しさん 投稿日: 01/09/30 17:33
>まあ、Rubyがおそいって言っても、Javaよりは速いから実用になるでしょ
すごい理論だね(笑)
今度、Javaが遅いって言う人には
こういう言い訳をすればいいんだ

>>31
日本人が作ったということで興味がわき
Rubyを作った人の本を読んだのですが
やはり、C,C++,Javaプログラマーから見ると
小規模なプログラムしか作れない言語だと見られてしまうはずです
一方、CGIのような使い捨てスクリプトを作る人にとっては
最初からツールがそろっていて便利だと感じるでしょう
たしか、あの本では何桁の数でも変数に保存できる
という事を説明していましたが、
c,c++,javaで作るような大規模プログラムでは
処理の種類によって、何桁の数でも保存できるデータ構造の仕組みを
変えます
ハッシュもキューもスッタクもリストも全部そうです
この変数(データ構造)を、Javaならばインターフェースでラップし
ポリモーフィズムで使うこともできますし、改良するのも楽です
オブジェクト指向はこのように使うのだと理解している人間にとって
Rubyのオブジェクト指向はいまいちなのです
書きやすさという点では
文字列処理はPerl,Rubyともに便利ですね
CGIには、もってこいの言語だと思います
そして、やはり新しいだけあってRubyの方が断然優れていると
個人的には感じます


38 名前: デフォルトの名無しさん 投稿日: 01/09/30 17:53
>>37
スケーラビリティが必要なプログラムが世の中どれだけあるかだな。
例えば基幹システムをスクリプト言語*だけ*で作ろうとは思わないし作れるとも思わないが、
テキスト処理部分など一部に使うのは十分に有効だろう。
小規模なプログラムの組み合わせで大きなプログラムが作れる(と俺は思っている)。
適所適材ということだ。

個人的に Ruby でプロトタイプを作成して Java で実装をやってみたが、
UnitTest をきちんとやれば Java だけで十分だと感じた。
ま、結構そのままコードを移せることが分かったのは収穫だった。
(XML の DOM ツリーの diff を取るというだけのプログラム)


39 名前: デフォルトの名無しさん 投稿日: 01/09/30 17:57
補足
>十分に有効だろう。
というのは、基本的なデータ構造でも
自作のものを十分に robust かどうかテストするのは結構大変だから。
使えるものは何でも使ってできる限り手抜きしたいのよ。


40 名前: デフォルトの名無しさん 投稿日: 01/09/30 18:03
>>37-39
はいはい、板違いだから向こうに行ってね。


41 名前: デフォルトの名無しさん 投稿日: 01/09/30 18:07
>使えるものは何でも使ってできる限り手抜きしたいのよ。
ここが意識の違いだよね
そんなこといったら、アルゴリズムとかデータ構造って
意味ないじゃん


42 名前: デフォルトの名無しさん 投稿日: 01/09/30 18:42
ひろゆきのメルマガで紹介されたね!
おめでとう>作者

さてさて、昔の2chユーザーは知ってるとおもうんですが、
昔はヘッドラインってのがあったんですよ。。
いろんな掲示板のスレッドtop20とかが、
わちゃわちゃと見れるページですね。
ただ、サーバ負荷が高いので現在ははずしてたりしてたんですが、
ヘッドラインを公開してる方がいるので、
紹介してみますです。

「2ちゃんねるヘッドライン 」
http://nmgm.s2.xrea.com/2ch.htm

このページにいって、見たい掲示板をチェックして「送信」ってボタンを
押せば表示されるですよ。

ソースも公開されてるそうなので、自分で置きたい人は
置いてみてくださいですー。負荷分散になるしね。
http://nmgm.s2.xrea.com/getsub2.zip

ただrubyなんで、無料でおけるところは、、、あるのかな?
フリーのrubyサーバってあるのかなぁ、、
知ってたら教えてくださいー。


43 名前: デフォルトの名無しさん 投稿日: 01/09/30 18:44
>>42
たぶんxrea以外ない。
http://www.jin.gr.jp/~nahi/Ruby/anywhere.html


44 名前: デフォルトの名無しさん 投稿日: 01/09/30 18:48
perlだったら俺の鯖においたのになぁ。。。


45 名前: デフォルトの名無しさん 投稿日: 01/09/30 18:53
クッキーで利用者ごとのヘッドラインを保存してくれると便利になると思う
既出かしら


46 名前: 投稿日: 01/10/01 04:50
>>33>>42
あんがと
このスレのこと覚えていてくれたのね
ひろゆき氏のおかげでサーバーが落ちるほどの大反響でした
これからも使ってくださいな

>>44
最初はperlで書いてたんですが、ソケット周りのクラスの振る舞い
というか、perlのオブジェクトが死ぬほど使いにくかったからrubyに変更しました
そしたらもう、すんなり書けて感動したね

>>45
JavaScriptやったことないからクッキーの扱い方わかんねっす
↓こんなのをブラウザのお気に入り登録しておいて何とかしのいでください
http://nmgm.s2.xrea.com/x/getsub2.cgi?bbs=tech?bbs=php


47 名前: 投稿日: 01/10/01 04:51
間違えちった
お気に入り登録はこうね
http://nmgm.s2.xrea.com/x/getsub2.cgi?bbs=kao&bbs=phhp


48 名前: デフォルトの名無しさん 投稿日: 01/10/01 05:18
あ!作者さんだ
ありがとう、便利に使わせてもらてます


49 名前: 投稿日: 01/10/01 06:31
>>48
どうもね

なんか最初に板を立てた頃とは明らかに反応が違うね(笑
恐るべしひろゆきの影響力


50 名前: 名無しさん 投稿日: 01/10/01 07:32
CGIでもクッキーは使えるよ


51 名前: 投稿日: 01/10/01 07:51
>>50
見てくれたらわかると思うけど
この2ちゃんねるヘッドラインは、
掲示板を選んでCGIにリクエストを渡す部分と
リクエストを受け取ってヘッドラインを出力するCGIの部分から出来てるんだよ

利用者ごとに設定を変えるとなると、前者にクッキーを発行させるのが普通だと思うんだけど
これは静的なHTMLで書いちゃったから、もうJavaScriptでやるしかないと

という話です


52 名前: 名無しさん 投稿日: 01/10/01 08:14
んーとそうかな?

getsub.cgiっていうのがフォームからのPOSTで入力を受け取ると、クッキーを要求しつつ結果を出力する。
そこでユーザはgetsub.cgiをブックマークする。
で、次にブックマークからGETでgetsub.cgiが呼ばれたときにクッキーがあるようなら
それを元にHTMLをつくる、でいけるんじゃないの?勘違いだったのかな。


53 名前: 投稿日: 01/10/01 08:25
>>52
うーん、どうだろ?
それでいいのかな
暇が出来たらやってみるよ


54 名前: デフォルトの名無しさん 投稿日: 01/10/01 15:54
Rubyはいいんだけど、Ruby使える無料鯖ってないよね


55 名前: ルビ厨な人 投稿日: 01/10/01 19:01
>>54
XREAがあるよ。
つか、>>1がすでに使っているじゃん、、、
メルマガでひろゆきも気づいてなかったみたいだけど、、、


56 名前: 投稿日: 01/10/02 09:16
>>52
クッキーめんどくさいからブックマーク作成スクリプト組みました
>>47みたいなのを作る奴


57 名前: 投稿日: 01/10/04 22:49
http://nmgm.s2.xrea.com/Eboard.zip
こんどはDelphiでしょぼいアプリ作ってみたんですけど・・・
良かったら使ってみてください
仕事中に2chしてる人にはいいかも


58 名前: 投稿日: 01/10/04 22:51
とりあえずラウンジとニュー速とネットウォッチが選べます
この辺はまだ作りかけなんで我慢してください。


59 名前: デフォルトの名無しさん 投稿日: 01/10/04 22:56
Delphiのはいいよ。
Rubyでもっと作ってくだされ〜


60 名前: 投稿日: 01/10/04 23:02
へ?apolloで作れって事?


61 名前: 投稿日: 01/10/05 17:06
大幅に改良
TWebBrowser使ってみました
「常に前」をいじるとエラーが出るんでさわらないで下さい


62 名前: デフォルトの名無しさん 投稿日: 01/10/13 23:55
if bbs.length == 0 #引数チェック
の前に

# cookie対応
bbs = cgi[ 'bbs' ]
if bbs.empty?
bbs = cgi.cookies[ 'bbs' ]
end
cookie = CGI::Cookie.new('name'=>'bbs','value'=>bbs,
'expires'=>Time.now+60*60*24*30).to_s
puts "Set-Cookie: #{cookie}"
unless bbs.empty?
logstr << "cookie: #{cookie}\n"
end

を入れてここより後のcgi[ 'bbs' ]をbbsに全部変えればいい。

if bbs.length == 0 # こんな感じ。



2ちゃんねるは、ここのサーバを使ってるです。。。