1 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:26:33 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 【Ruby1.9 は不安定な開発版であり初心者には全く向きません】 【最新安定版の Ruby1.8.6 の使用を強くお勧めします】 関連スレやURLは>>2-8 あたりを見てください。Ruby on Railsの質問はRailsスレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
830 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 03:02:58 ] >>820 > ドキュメントのどこかに記載などありますでしょうか? 一応rubyの落とし穴には書いてあるけど見つけにくいね。 www.ruby-lang.org/ja/man/html/trap_A5B9A5B3A1BCA5D7A1A2C0A9B8E6B9BDC2A4.html attr_xxx もFAQやModuleのリファレンス見ないと分からないし。 まぁリファレンスだからしょうがないか。 入門書ならselfが必要なことも含めてちゃんと書いてあるかも。
831 名前:815 [2008/06/15(日) 06:40:18 ] >>830 おお、こんなところに記述が やはりFAQなのですね。 わざわざありがとうございます。 attr_系の説明やサンプルは大概クラス外部からのアクセスのみかかれてますね。
832 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 12:41:53 ] a = [1,1] a.each{|i|a << a[-1] + a[-2] if a[-1] < 10000} p a
833 名前:デフォルトの名無しさん [2008/06/15(日) 15:21:02 ] Rubyの入門サイト、書籍などを読んでいると 破壊的なメソッド、非破壊的な〜、みたいな表現をよく目にします。 Ruby以前の言語でも同じ概念は存在すると思うのですが、 Rubyにおいて敢えて強調されているのは何故なんでしょうか。 例えば、何か他の言語とは異なった考え方が必要になってくるのでしょうか。
834 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 15:24:50 ] >>822 NetBeans使ってると、unitは未使用ということでエディタ上に印が付きますね。
835 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:12:43 ] >>833 強調するのは、そりゃ、「2種類」あるからだよ self を変更するかどうかって重要じゃん puts させただけでそのオブジェクトがそれ以降文字列になったら悲惨じゃん
836 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:16:47 ] >>834 ねとびんかしこいねねとびん
837 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:20:09 ] >>835 だから、その2種類の違いを他の言語より強調するのは何故か、という質問だろ。 他の言語がどの言語で、本当にそれよりRubyのほうが強調されているのかは俺はわからんが、 ともあれ比較の質問なら、Rubyの意志を比較で回答しないと納得はできんだろう。
838 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:32:14 ] 例えば、javaでは メソッドへパラメータを渡すとき 配列とオブジェクトは参照渡し(rubyでいう、非破壊的・・の概念にあたる) プリミティブ型は値渡し(破壊的・・の概念にあたる) になってる。 ソースを見たとき、 Rubyのように明確になっているとは、ちょっといえないかもね。 Cだと、ポインタかどうかで判断する。 どうしてRubyはその辺を強調してるかだけど、 自由度が高いからじゃないかな? 上のJavaの例でいうと、参照渡しした元のオブジェクトを呼び出し先から 操作することは、Javaでは出来ない。 Rubyではその辺を任意にできる操作できるようにしたかったから、 出来る場合と出来ない場合を明確に表記して、わかりやすくしたかったのではないかと 推察します。
839 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:38:16 ] すみません。 >上のJavaの例でいうと、参照渡しした元のオブジェクトを呼び出し先から >操作することは、Javaでは出来ない。 上のJavaの例でいうと、値渡しした元のプリミティブ型を呼び出し先から 操作することは、Javaでは出来ない。 の間違い。 失礼しました。 参照渡し>>元のオブジェクトのリファレンス(アドレス、ポインタ)を渡す。(破壊的) 値渡し>>元のデータのコピーを渡す。(非破壊的) です。 混乱させるような、書き込みをしてすみません。
840 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:52:41 ] >>837 破壊的なのに!とか述語に?をつけるのはschemeからのいただきだろうな。 ただ、単なる慣用だから守ってないライブラリもいっぱいあるし深い意味はないんじゃね? 強いて言えば、識別子に!とか?が使えるってのを強調したかったとか。 C/perl/pythonは出来ないはずだし。
841 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:11:55 ] >>833 Rubyだから特別強調しているというわけではない。 Rubyに限らず、手続き(Rubyの場合メソッドかProcオブジェクト)を実行すると きに、その手続きを実行する前から存在していたすべてのオブジェクトについ て 実行後、状態が変化する可能性がある(から注意して使え)のが「破壊的」 実行後、状態が変わらないことを保証するのが「非破壊的」 うまく説明できないけどこんな感じだ。状態が変わらないというのは「同じ」 ということなんだけど、じゃあ「同じ」とは何かというのがなかなか微妙。 だけどこの話を始めるとなが〜くなるから、この辺でやめとくぞ。 >>838 ,839 はなんか間違って理解してるみたいだぞ
842 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:36:53 ] >>833 rubyの場合、他言語に比べてメソッドチェインの色合いが強いからじゃなか 他言語では戻り値がvoidになるようなものでも、rubyだとself返したりしてるし
843 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:58:46 ] でも述語に?を使われると、三項演算子がちょっと見にくくなるよね a = (isTrue?) ? 12 : 47
844 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:20:21 ] >>839 とりあえずJavaに参照渡しはない プリミティブはもちろん値渡しだが オブジェクトだって値渡し(参照の値渡し、あるいはcall by share)だ とかいっても>>839 は信じてくれないって俺は知ってるんだ
845 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:30:36 ] (´・ω・`) = (!isTrue?) ? !a.foo? : !b.foo?
846 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:32:53 ] hamlet = (to?) ? be : !be
847 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:42:35 ] >>833 単にメソッド名に!が付けられることを自慢したかっただけ。
848 名前:デフォルトの名無しさん [2008/06/15(日) 19:15:36 ] >>833 オブジェクト使い捨てることによって生まれたメソッドチェーン主体の手法と、 従来のインスタンスへの変更を区別するためだろう か
849 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:30:31 ] >>847 確かに、そんな気もしなくは無いですね…
850 名前:デフォルトの名無しさん [2008/06/15(日) 22:04:22 ] rubyで日本語の分かち書きがやりたいよん
851 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:17:38 ] たとえば mecabを直に叩くか mecabのrubyライブラリを使うか mecabのデータだけを使わせてもらって自分でがんばるか
852 名前:デフォルトの名無しさん [2008/06/15(日) 23:09:39 ] >>851 ありがとうございます (いまさら)環境 ActiveScriptRuby ・mecab for rubyがインストールできなかった ・↓を参考に直叩き でできました Windows上のrubyでMeCabをちょっこっと使ってみたい - Programming Must Go On d.hatena.ne.jp/kenkitii/20060705/p1
853 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:16:14 ] 形態素解析だっけ yahooにもそんあ機能あったな
854 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 01:10:10 ] tiny segmenter なら辞書要らずでお手軽
855 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:08:26 ] matchdata = /[0-9]+/.match("foo=123;qoo=456;zoo=789") p matchdata.to_a # => ["123"] ["123", "456", "789"]を期待したんですが["123"]でした。 どうしたら["123", "456", "789"]を得られますか?
856 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:11:34 ] "foo=123;qoo=456;zoo=789".scan(/\d+/)
857 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:25:49 ] 正規表現は「1回だけ」マッチするのが基本 m = /.+=(\d+);.+=(\d+);.+=(\d+)/.match("foo=123;qoo=456;zoo=789") puts m[1],m[2],m[3] 結果: 123 456 789 文字列に対して繰り返した結果の配列が欲しい場合は>>856 のようにString#scanを使う scanにブロックを渡した場合は適当に部分マッチ結果が渡る "foo=123;qoo=456;zoo=789".scan(/\d+/){|m| puts m } 結果: 123 456 789 マニュアルのStringとArrayとHashとEnumerableの4つだけは読んでおくといいぞ
858 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:50:32 ] >>856-857 詳しいところまでありがとうございました。勉強になります。
859 名前:デフォルトの名無しさん mailto:age [2008/06/16(月) 14:58:20 ] Ruby1.8.6でメール送信フォームを作っています。 次のような流れで、送信する前に確認画面を設けたいのですが― フォーム送信(Html) ↓ 確認用CGI(Ruby)で処理 ↓ 確認画面の表示・フォーム送信(Html) ↓ 送信用CGI(Ruby)で処理 名前やメールアドレスといった文字列データは、 確認画面を経由させるのに問題ありませんが、 ファイルを添付させた場合、tempfileオブジェクトをどのように経由させればよいかわかりません。 今考えているのは、ファイル名だけを経由させ、 送信用ファイルでそのファイルを処理すればよいかと考えていますが、 FireFoxではtempfileのoriginal_files要素を取得してもフルパスを取得することができません。 フルパスを取得する方法、もしくはフォーム送信時の常套句的な方法があれば教えてください。
860 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 14:59:29 ] >送信用ファイルでそのファイルを処理すればよいかと考えていますが、 送信用CGIの間違いです。よろしくお願いします。
861 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:19:06 ] >>859 「確認CGIではファイル名取得だけ行い、送信画面でそのファイル名のファイルを実際に送信する」ということはできない Webブラウザでは、<input type='file'> を POST する場合にしか、ファイル選択ダイアログとファイル送信はできない実装になっている だから、入力画面のsubmitを受けたときにファイルは必ず受け取らないといけない(だから、あまり確認の意味がない) 受け取ったファイルをサーバで保持して、確認画面のsubmitが来たらファイルを実際に使用する、という手順にするしかないな 問題のひとつは確認画面でキャンセルされたときのサーバ側に残ったファイルの扱いなんだが、これは適当に消せ あと、確認画面で戻る押されて別のファイルをアップロードされたときの扱いとかも面倒だな どちらにしても、Rubyの話ではないので適当なCGI関連のスレで研究してくれ
862 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 15:31:55 ] >>861 どうもありがとうございます。 >どちらにしても、Rubyの話ではないので適当なCGI関連のスレで研究してくれ そういうことでしたら、Perl等、他の言語で書かれたCGIも参考にしてみたいと思います。 助かりました。
863 名前:デフォルトの名無しさん [2008/06/17(火) 11:40:57 ] 質問させてください。 現在Ruby on Railsの勉強をしています。 しかし根本的な部分で躓いてしまいました。 練習してみようとtsukaeru.netのシルバープランというVPSサーバーをレンタルいたしました。 しかし、まったくこの上でrubyを用いたホームページを公開する方法がわかりません。 ruby on railsははいっていますか?との質問にサポートは入っています。との解答でした。それ以上のサポートはできないとのことなので 失礼ながらこちらで質問させていただきます。 勉強をしている本は基礎Ruby on RailsというものなのですがこちらはWindowsで導入する方法でしかもローカルで動く方法のみ書いてあったのでそれを一般に 公開するという点では参考になりません。 サーバ構築なども全く初体験なのです。 rubyのプログラムは普通のHPのようにpublic_html直下にindex.htmlをおけば動くといったものではないのですか? 公開するまでの具体的な方法をおしえてください。よろしくおねがいします。 OSはLinux CentOS5(final)のようです。
864 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:05:19 ] windowsで導入してローカルで動かせばいいじゃないか
865 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:08:55 ] うむ
866 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 13:43:28 ] >>863 まず、その程度の知識でVPSに手を出すのが無謀 組織の命令でやらざるを得ないのなら同情する ちなみに % ruby script/server を実行すれば、適当なポートでHTTPサーバが立ち上がるので あとは localhost: (ポート番号)/ にアクセスすれば、サンプルページは見えるはず よく分からないなら素直にWindows使って練習した方がいい。VPSはその後で
867 名前:デフォルトの名無しさん [2008/06/17(火) 15:19:46 ] まじすか そんなにハードル高いものだとは・・・orz Windowsでやるということは、それを公開するには自鯖を立てるしかないのでしょうかね? 自鯖は少し理由があって立てられないのです。 レンタルしているVPSサーバー上でruby script/serverとすると ruby: No such file or directory -- script/server (LoadError) と出てしまいます。ruby -vなどとすると正しくバージョンが出ますのでインストールされていることは確かなはずです。 VPS以外で、もっとも簡単にRuby on Railsを公開するにはどうすればよいでしょう。。。 もとからRubyが使えますよ〜っと書いてあるレンタルサーバーでもどのようにしてつかえばいいのかさっぱりです。 本でも読んで勉強もしますのでよろしければはじめの一歩でも教えてください。
868 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:06:20 ] つか、なんで知識無い奴がRoRやってんの? CGIとHTTPとDBの知識無い奴がRoRなんか触ったって意味ないのに
869 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:15:51 ] >>867 Rails環境の構築は初心者には難しい お薦めの手順としては 1.WindowsにRails環境を作って、そこでRailsの基礎を勉強する 基礎Ruby on RailsにもRails環境入りのCDがあるけれど、ここは「InstantRails」を使うべき 2.ある程度Railsアプリケーションをローカル(つまりWin)で作れるようになったらVPSでの公開を検討する 遠回りかもしれないがまずはローカルでRailsを動かしてみよう 学生さんですか? ここはRubyスレで微妙にスレ違いの話になるので、捨てアドでも晒してくれたら色々と教える事は可能
870 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:19:05 ] >>867 >ruby script/server script/serverは、最初にrails generateで作ったディレクトリの中にある あとは分かるな? >VPS以外で 自鯖が立てられないならほぼ不可能 CGIスクリプトとして動かす手段もあるにはあるが、たぶん遅すぎて使い物にならない それでもやりたいなら「dispatch.cgi rails」でググれ
871 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:22:14 ] >>868 そんな事は無いだろう DBは必須だがCGIとHTTPの知識が無いRailsエンジニアなんてゾロゾロいるぞ もちろん誰かが作ってくれた環境上でアプリを作るだけしかできないが
872 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:25:29 ] >>870 いや、実はRails自体入ってないんじゃないかとオレは思ってるw 867にはrails -vしてみて欲しいところだな
873 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:32:10 ] >>868 まあ、Railsはどこをどう見ても 「わかってる人間が手早く作るための強力フレームワーク(※ 引き換えにパワー上限あり)」 なんだが、Javaソリューションビジネスで負けた奴らが次点を求めてRoRにツバつけようと群がったもんだから 「あなたにもRoRが簡単にできます」ビジネスの被害者が続出してる そういう被害者の人たちのフォローをするのも初心者スレの役目だとは思うぜ
874 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:38:38 ] >>873 Railsはシンプルでわかりやすいけど、それは「ある程度わかっている人」限定の話なんだよなぁ プログラミング未経験者ならRailsよりもPHPの方が簡単に入れるだろうとは思う
875 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 17:01:38 ] Rubyの知識はあるのかなあ 無いんだったら、俺ならダッシュで本屋行ってPHPに鞍替えするね
876 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 17:19:53 ] おk >>867 はPHPに乗り換えなさいw
877 名前:デフォルトの名無しさん mailto:linksuplinksup@yahoo.co.jp [2008/06/17(火) 18:10:33 ] 皆様ご回答ありがとうございます。 現在の、ローカルのWindows環境では本にしたがい、localhost:3000で動くことはできました。 それを一般に公開するなんて簡単だろうperlのcgiとおなじだろ〜っと考えていたらみごとに躓きました。 ご指摘のとおりrails -vしてみたところRails 1.2.2と返ってきたので入ってはいるみたいです。 そしてRoRのソースやらが入っているディレクトリまでcdで移動して再度script/serverを打ってみると create File exists - script/server と帰ってきました。どうやらサーバーがたったようではなさそうな感じですが・・・ あと一歩なんでしょうかorz ちなみに言語経験はC#とVBを少々でございます。 捨てアドさらせば教えていただけるというとても親切な方がいらっしゃいましたのでアドレスを書いて見ます。 よろしくお願いします。
878 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:38:56 ] 初心者か
879 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:43:32 ] >>878 まあ、初心者スレだからな 来るのはRubyの初心者だけにして欲しかったもんだが 2ch初心者とかネット初心者とかコミュニケーション初心者とかは正直勘弁
880 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:44:48 ] つーか>>878 とか>>868 は上から目線すぎ 誰だって知らない分野はあるだろ
881 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:47:51 ] lololol
882 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:49:54 ] >>880 ほいほいメールアドレス晒したり Windows以外で動作させるための文献検索すらできてなかったりするのは どうにも擁護できんぞ 「知らない分野」とかそういうレベルではない
883 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 18:53:29 ] >>880 は「お前には無理だからやめろ」とはっきり言ったほうがいいと仰っておられるのですよ RoR使うのやめろというレスを全部スルーしてるからな
884 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:10:38 ] >>882 自分のメールアドレス晒すのは、別に擁護する必要無いだろう。
885 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:12:56 ] RoR以外の手段を使えというアドバイスですが、一応RoRについての文献をすでに購入してしまったことと また、RoRを勉強してみたいという意欲のもと始めましたので、別の言語は考えていません。 LinuxにRuby と Railsを入れる方法についてはいろいろと調べまわったつもりなのですが具体的に公開手順を示されているサイトが みつかりません。メールアドレスを晒したのは>>869 さんが親切にあのようにおっしゃってくれたからです。 微妙にすれ違いとの事ですので、失礼しました。
886 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:02:43 ] Rails云々とは関係なくHTTPとCGIについてよく書けている記事があったので晒してみる ttp://itpro.nikkeibp.co.jp/article/COLUMN/20080128/292199/?P=4&ST=oss これを書いたやつは見込みがあるな
887 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:11:11 ] そのシリーズはなかなか良質 抽象データのあたりとか、 よくまあ説明が複雑になりがちな概念をここまで平易に
888 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 20:18:50 ] タイトルで吹いたw
889 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:58:25 ] 直伝噴いた
890 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:21:08 ] ここまで言うならぜひ言語を作って欲しい物だ
891 名前:デフォルトの名無しさん [2008/06/18(水) 02:07:50 ] 最近読んだ『ハッカーと画家』でrubyの評価が結構高かった。 著者曰くLispに最も漸近しているスクリプト言語とのこと。
892 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:25:08 ] お前が読んだのは最近かもしれんが、書かれたのは何年も前だぞ
893 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:33:52 ] 原語のほうは公開されてなかったっけ
894 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:54:16 ] Lispに最も漸近しているって褒め言葉になってないぞw
895 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 04:17:14 ] >>891 それ、 『今大人気の言語RubyはLispに一番近い言語なんだよ(知ってた?) でもさ、だったらLispそのものを使ったほうがいいよね?』 っていうプロパガンダだよ。PGの文章は今から見ると宣伝とか 自己啓発系のものが多いから、半分眉唾で読んだほうがいいよ。 リアルタイムで読んだら興奮するんだけどね。
896 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 07:54:35 ] MSが絡むと途端に理性を失うよねこの人
897 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 15:53:28 ] ここは初心者が質問するスレじゃなくて性格のねじれた中級者の雑談でよろしいでしょうか?それならば私も混ぜてください
898 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 15:54:24 ] >>896 評価するところは評価していたかと キャッチコピーが技術者のことをよく分かってるって
899 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 15:58:31 ] >>897 そういうのは基本的にはアンチ専用スレで
900 名前:デフォルトの名無しさん mailto:age [2008/06/19(木) 00:57:36 ] Ruby CGIで質問です。 Print文で処理中をあらわす文字列を表示し、 処理が完了したら、次にそのことを知らせる文字列を表示したいのですが、 最初に表示した処理中をあらわす文字列を消すにはどうすればいいのでしょうか?
901 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:08:39 ] CGIで逐次表示とか考えるな
902 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:10:16 ] >>900 それは、ボタンをポチッと押すと 「ただいま処理中です」 とかいうメッセージの表示されたhtmlを表示して、 サーバ側の処理が終わったら*自動的*に 「終了しました」 とか書かれたhtmlを表示したいということでしょうか?
903 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 02:07:05 ] >>900 Ajaxでどうぞ
904 名前:あぼーん mailto:あぼーん [あぼーん] あぼーん
905 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 07:19:48 ] >>901 少なくとも標準あるいは標準の応用でなんとかできるものではないな RubyやRubyライブラリとしてのサポートはないと思われる 自前でJavaScript書くしかないねえ
906 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 10:37:36 ] >>902 そういうことです。 >>901 >>903 >>905 CGIで逐次表示は考えないようにします。 Ajax(JavaScript)で対応したいと思います。 どうもありがとうございました。
907 名前:デフォルトの名無しさん [2008/06/20(金) 17:31:54 ] jp.rubyist.net/RubyKaigi2008/Live.html
908 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:50:56 ] 爆撃荒らしうぜえ
909 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 20:37:19 ] JRubyの質問ってここでいいのでしょうか・・・? JRuby-1.1.2.zipを dist.codehaus.org から落としてきて JDK-1.4.2_10の入っているPCに入れてみたけど、 noclassdeffounderror : java/lang/enum と出てjrubyもjirbも 立ち上がりません。 enum型ってJDK-5.0 からのサポートらしいけど、 JRuby-1.1.2ってJDK-5.0でしか動かないのでしょうか? 宜しくお願いします。
910 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 04:11:42 ] >>909 READMEに、JRubyのコンパイルにJDK1.5以上が必要って書いてあるからそうなんだろ
911 名前:909 mailto:sage [2008/06/22(日) 09:47:53 ] >>910 ネットの記事では1.4.2でも動作するって書いてあったのですが 実際はJDK5.0でないとだめなようですね。 返答ありがとうございました。
912 名前:デフォルトの名無しさん [2008/06/22(日) 12:26:13 ] あるHTMLファイル(何でもいいんですが一般的なWebページの)からリンクしているURLを 取り出そうとしています。ぐぐったらscrapiとかいうので簡単にできたんですがかなり 処理速度が遅いのです。 高速に取り出そうとしたらやはり正規表現で取り出すしかないのでしょうか? hpricotというのも見つけたのですがいまいちよくわかってません。 robustかつ高速に取得する方法はないものでしょうか?
913 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:43:09 ] 利用者のIT製品に対する基本姿勢は、Microsoftを相手にするときのそれが最も健全であって、 ブーブー言いながら使うのが一番だと思うが、最近は企業ブランド崇拝みたいのができあがっていて、 Apple教団はご愛嬌と思っていたが、何だかこれも同じような感じで、嫌な雰囲気だ。Googleしかり。 特にヘビーユーザーがそういう信者というか、エヴァンジェリストになって 教義に染まない利用者の不満をさえぎる壁になると異様。 そういうのって普及前のファンダムの色が残っているから、と楽観視していたのに。 これだけシェアを拡大しても、いっこうにあらたまらないな。
914 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:46:44 ] >>912 自力でサイト固有の正規表現考えて抽出してそのサイトの URI に + するのが簡単 正規表現めどいという人に Hpricot require 'rubygems' require 'hpricot' require 'open-uri' uri = URI.parse('www.ruby-lang.org/ja/ ') doc = Hpricot.parse(uri.read) puts doc.search('a').map{|e| uri + e['href']}.find_all{|e| e.scheme =~ /\Ahttp/}.uniq 実行結果 www.ruby-lang.org/ja/downloads/ www.ruby-lang.org/ja/documentation/ www.ruby-lang.org/ja/libraries/ www.ruby-lang.org/ja/community/ www.ruby-lang.org/ja/news/ www.ruby-lang.org/ja/security/ www.ruby-lang.org/ja/about/ www.ruby-lang.org/ja/news/2008/06/20/arbitrary-code-execution-vulnerabilities/ www.ruby-lang.org/ja/news/2008/06/13/ruby-1-8-7-p17-release/ ...
915 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:53:43 ] ('a')がAAに見えた
916 名前:912 mailto:sage [2008/06/22(日) 13:27:20 ] >>914 ありがとうございます。 scrapiよりは速そうです。scrapiが今使ってるマシンだと動かない(64bitに対応していない?)みたいなので 直接比較はできませんが。でも、robustという意味ではyoutubeのURL入れるとだめっぽいですね ex : ttp://jp.youtube.com/watch?v=T08oWYjwlSY サイト固有の正規表現を記述するのは一番確実でしょうが一番汚いやり方だと思うので スマートかつある程度速くできないものかなぁと試行錯誤中です。
917 名前:デフォルトの名無しさん [2008/06/22(日) 13:47:32 ] jp.rubyist.net/RubyKaigi2008/Live.html
918 名前:デフォルトの名無しさん [2008/06/22(日) 13:51:42 ] >>863 遅レスでもうみてないかもしれないけど。 Railsはともかく・・・ もし、あなたがVPSの管理もする(専用の管理者があなただけ)のなら、VPSを今すぐ解約しよう。 そのうちクラックされて他人に迷惑をかけるだけですよ。 まずは、ローカルで試す(Windowsでもできる)か、ローカルネットワークで外に公開しないサーバーを建てるなどをして知識を十分にしてからでも遅くはないよ。 VPSの場合、RubyとかRailsとかやる前にサーバーの管理の方法も一通り学んでおく必要がある。
919 名前:デフォルトの名無しさん [2008/06/22(日) 13:53:02 ] >>916 それは、httpじゃなくて、ttpだからでは?
920 名前:912 mailto:sage [2008/06/22(日) 14:14:22 ] >>919 単純に貼るときに抜いただけです。httpでやってhpricotで例外吐きます。
921 名前:デフォルトの名無しさん [2008/06/22(日) 15:34:31 ] 初めまして、 今回ruby on railsを勉強したいと思って、インストールしようとしとして $ gem install rails --include-dependenciesを実行したんですが、うまくいきません。 だれか、情報があったら教えてください。 C:\ruby>gem install rails --include-dependencies INFO: `gem install -y` is now default and will be removed INFO: use --ignore-dependencies to install only the gems you Bulk updating Gem source index for: gems.rubyforge.org/ Bulk updating Gem source index for: gems.rubyforge.org/ ↑の状態で一時間ぐらい止まってます。別にPCは動くので、フリーズとかでもないです。 www.rubylife.jp/index.html のサイトの手順通りにやったんですが… ちなみに、ruby及びRubyGemsもちゃんとインストールしてあります。 どなたか情報お願いします。 OS: Windows Vista です。
922 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 16:15:27 ] >>921 マシンスペックにもよるが、Rails 新規インストール時に数時間返答がないのは普通 1日以上待った例もあるからそのまま放っておけ
923 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 16:19:26 ] >>921 Debianの例で悪いけど、回避策もやはりあるみたいよ。 d.hatena.ne.jp/takaxi/20080128/1201482937
924 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 16:36:28 ] めんどくさいなあ >>916 どうして例外が起こったかはわかる? 残念だけど、Web のスクレイピングは文字通り例外との戦いだぞ サイトごとに調整しなければならないと思ってくれていい HTML や HTTP の知識はあるかな? たとえば以下の方法だと 142 のリンクが抽出されてるけど、本当に必要なのは数個だろ? require 'rubygems' require 'hpricot' require 'open-uri' uri = URI.parse('www.ruby-lang.org/ja/ ') doc = Hpricot.parse(uri.read) puts doc.search('a').map{|e| e['href']}.compact.map{|e| uri + e}.find_all{|e| e.scheme =~ /\Ahttp/}.uniq
925 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 16:46:58 ] uri が前のままだった 本質的には puts doc.search('a').map{|e| e['href']} だけでいい でも、それだと相対 URL で書かれているリンクがわけわからなくなるのでわざわざ uri に join してる http:// と https:// 以外を取得しても意味がないことが多いからわざわざ http:// と https:// 以外を除いてる で、Youtube では「onclick で JavaScript 起動しかさせないリンク」という href 自体がない <a> タグがあるのでわざわざ href が nil な場合を compact で除いてる 他のサイトでは「欲しいリンクだと思ったら実は画像貼り付けのボタンでPOST」とかにも対処しなければならないかもしれない require 'rubygems' require 'hpricot' require 'open-uri' uri = URI.parse('jp.youtube.com/watch?v=T08oWYjwlSY ') doc = Hpricot.parse(uri.read) puts doc.search('a').map{|e| e['href']}.compact.map{|e| uri + e}.find_all{|e| e.scheme =~ /\Ahttp/}.uniq
926 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 16:58:19 ] HTML の知識はないとダメだよね 後出しで youtube 出してきたけど、欲しいのは動画ファイルのURLや各種一覧にあるURLだろうし これからまた絞らないといけないだろうな(おそらくはCSSセレクタとかXPathとかあのへんの知識が要る)
927 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 17:01:13 ] リンクされてるURLを抜き出すライブラリを作ってるというならともかく、 無駄にあれこれ悩むよりさっさと正規表現使って抜き出せばいいと漏れは思う。
928 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 17:03:18 ] そういう意味では>>914 の1行目の時点で回答は出てるんだよな
929 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 17:32:00 ] うっかり汎用性を求めてしまうのはRubyスクリプトの悪い癖 初期ではそのノリで標準ライブラリになってしまったりしたが
930 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 17:33:53 ] >>921 rubygems 1.2 で劇的に改善されたらしい。 rubyforge.org/forum/forum.php?forum_id=25353
931 名前:930 mailto:sage [2008/06/22(日) 17:38:48 ] gem 1.2.0 にしたら、gem が笑っちゃうぐらい高速になったよ。
932 名前:デフォルトの名無しさん [2008/06/22(日) 18:19:17 ] RubyKaigがニコ動うpされまくってるぜ タグ検索 RubyKaigi2008‐ニコニコ動画(SP1) www.nicovideo.jp/tag/RubyKaigi2008
933 名前:デフォルトの名無しさん [2008/06/22(日) 18:24:58 ] >>931 メチャメチャ速くなってる気がするwwww gem updateがさっくりオワタww
934 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 18:58:55 ] >>932 お、今年はうpが早いな。 あとで見る。
935 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 19:27:22 ] 標準の関数的メソッド以外で引数のカッコ省略するのやめようぜ
936 名前:912 mailto:sage [2008/06/22(日) 21:47:13 ] >>924-925 遅くなりましたがありがとうございました。 やはり例外との戦いなんですね。参考にします。 >>926 youtubeはたまたまブラウザで開いてるURL全部入れて試しただけです。 youtubeから抜き出したいというわけではなかったのです。
937 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 14:10:30 ] gem1.2は爆速w >>930 ありがとう
938 名前:日立バキバキ高野くん祭り [2008/06/23(月) 20:00:05 ] 1.日立製作所社員の高野くん(高野光弘)が会社を誹謗中傷して機密も漏洩 2.日立のユーザーにも「キチガイ」との障害者差別発言 3.日立製作所の企業イメージをバキバキにする 4.自身のサイトの『32nd diary』に掲載 5.日立製作所に通報される 6.あせって似顔絵削除 7.火に油を注ぐだけで所属する日本UNIXユーザ会にも通報祭り勃発 8.「給料泥棒」と説教される 9.「殺します」と殺人予告をして警察に事情を聞かれる←イマココ 高野光弘の行動 現在は、過去の記事を閲覧できなくして、「本日の日記はツッコミ数の制限を越えています」としています。 まずは、不愉快な思いをされた方々に謝罪するべきなのではないでしょうか。 高野光弘の発言 「まぁ、どこの団体もそんなにヤワじゃないので、平気なんですけども。 日本UNIXユーザ会が一番対応に慣れてる感じ。」 日本UNIXユーザ会が対応に慣れているか、みなさん確認してみてください。 連絡先 www.net.intap.or.jp/oiia/cont2/p0402.html%7B0recid=10168.html
939 名前:デフォルトの名無しさん [2008/06/24(火) 00:00:05 ] postgresql にdbiを使って接続しようとしたんですが、うまく行きません。 /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:368:in `load_driver': Could not load driver (no such file to load -- /usr/local/lib/ruby/site_ruby/1.8/dbd/Pg) (DBI::InterfaceError) というエラーがでてきます。 $ echo 'export PATH=/usr/local/psql/lib:$PATH' >> ~/.bash_profile でライブラリへのパスは通っていると思うんですが、 解決策をお教えいただければと思います。
940 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 00:44:50 ] >>939 /usr/local/lib/ruby/site_ruby/1.8/dbd/Pg.rb は存在するの?
941 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 06:51:08 ] UNIXにおいては、ライブラリパス(というか、soの在処)は LD_LIBRARY_PATH あたりで設定すると記憶しているが。
942 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 14:23:27 ] linuxではldconfig とかも使う。
943 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:12:24 ] Solarisならcrleとかね
944 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:14:08 ] ldd でlib全部リンクできてるか確認するとかね
945 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:35:17 ] Macならotool -L だな。
946 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:54:40 ] 939です 皆さんご丁寧にありがとうございます。 >>940 /usr/local/lib/ruby/site_ruby/1.8/dbd/Pg.rb は存在しなくて、 /usr/local/lib/ruby/site_ruby/1.8/dbd/Pg/Pg.rb があります。 PATHやLD_LIBRARY_PATHはOKな筈なんですが、うまく行かないです。 こちらの環境は、macなのでotool -L などでもう少し格闘してみます。
947 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:14:53 ] >>946 ruby-pg はインストールしてる? ruby -rpg -e0 を実行して何も出なければ入っているって事なんだが。 それにしても分かりにくいエラーメッセージだな>dbi 真の原因を隠すなよ。
948 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 04:05:46 ] Rubyでシューティングゲームつくってるんですけど
949 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 04:08:31 ] ごめ 途中でカキコしちゃった Rubyでシューティングゲームつくってるんですけど 弾が当たってゲームオーバーになった時に画面全体を赤っぽくしたいんですけど なにかいい方法ありませんか? 一応予定としては 画面全体を赤で塗る 透過する って考えているんですけどがんばっていろいろ探ってみてもやり方がわかりませんorz どうかよろしくおねがいします。
950 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 04:33:13 ] >>949 手順 1.Rubyをアンインストール 2.HSPをインストール 3.「シューティングゲームビルダー」でぐぐる。 4.HSPをアンインストール わざわざRubyで作る意味がわからない
951 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 05:02:34 ] ん十年前の質問を思い出すなぁ C言語でゲームを作りたいんですがどうすればいいですか? しるかーぼけー
952 名前:デフォルトの名無しさん [2008/06/25(水) 07:11:46 ] Rubyかんけえねえw
953 名前:デフォルトの名無しさん [2008/06/25(水) 07:12:54 ] 少し質問があるのですが、数値的なシミュレーションをして 結果を分布図(正規分布の図みたいなの)として出力したいのですが、 適したグラフライブラリはどんなものがありますでしょうか?
954 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 07:20:52 ] Excelとかw
955 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 07:35:18 ] 数値だけ出力して、グラフはgnuplotに任せるとかはダメかな?
956 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 07:59:27 ] gnuplotのラッパあったよな、確か。 後は Rubyist Magazine 0006 号 Ruby Library Report 【第 5 回】 数値計算と可視化 ttp://jp.rubyist.net/magazine/?0006-RLR とか。
957 名前:デフォルトの名無しさん [2008/06/25(水) 09:04:23 ] >>954-956 ありがとうございます。 ああ、gnuplotでもいいか。 GnuplotのRuby用のインターフェースはこれですね。 rgplot.rubyforge.org/ gemにもありました。Windowsでもつかえるかな? あとは、テキストのとかw Histogram class for ruby(Kodama's tips page) www.math.kobe-u.ac.jp/~kodama/tips-ruby-histogram.html#japanese かっこいいグラフとか、 Gruff Graphs for Ruby | Ruby on Rails for Newbies nubyonrails.com/pages/gruff >>956 数値計算のライブラリの詳しい紹介、助かります。 うまく画像化できそうです。一通り試してみようと思います。 ありがとうございました。
958 名前:デフォルトの名無しさん [2008/06/25(水) 09:07:44 ] ちょっとした疑問なのですが、srandとかrandって 何故、クラス化かモジュール化されてないのでしょうか? 徹底的にOOPしているRubyにおいてrandは不思議な存在に思えます。 MLのログなど見てみたのですが、過去にクラス化の議論はされているようで↓ blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/30954?30947-31824+split-mode-vertical パッチが作られていて、1.9で当てられるようなことになっているのですが、 SVNのtrunkや1.9.2とかのソースを見ても当たってないようです???
959 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 09:22:20 ] >>949 どんなライブラリを使ってるのかが分からないと、助言のしようがない
960 名前:デフォルトの名無しさん [2008/06/25(水) 09:56:07 ] ArgumentErrorエラーメッセージのことで質問させてください。 wrong number of arguments(1 for 0) このとき「引数の数が間違えてる」のは文字通りわかるのですが、 (1 for 0)はどう読んだらいいんでしょうか? 引数なし(0)のところに1つ(余計に?)渡してる、みたいなニュアンスでしょうか? 今、あるライブラリを使っていてこのエラーが出ているのですが 引数の数は間違えておらず(関数側にもデフォルト値も設定されている) 原因を探しているところです。
961 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:10:38 ] >>960 お前英語苦手だろ
962 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:53:50 ] Rubyの入門書はエラーメッセージに 2〜3節割くべきだと思う >>960 1 for 0 は「0 個の代わりに 1個得た」と読む 日本人にはまだわかりにくいな (got 1, required 0) とでも書いてくれればわかりやすいんだが 引数総数しか問題にしてない記述で、引数 0個のメソッドなのに引数が 1個渡されてるというエラーだ このメソッドに引数を渡してはいけないってことだな irb> 'abc'.downcase('param') ArgumentError: wrong number of arguments (1 for 0)
963 名前:960 mailto:sage [2008/06/25(水) 11:03:15 ] >>962 ありがとうございます。 直接呼び出しているメソッド内から呼ばれていたメソッドで 引っかかっていたようでした。 構文が古いのか(?)マニュアル見て書き直してみたらうまくいきましたm(_ _)m
964 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:14:18 ] >>958 ttp://doc.loveruby.net/refm/api/view/library/securerandom
965 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 12:30:57 ] >>950 一応Rubyの書き方覚えつつ作ろうかなぁと思ってちまちまつくってます。 ライブラリはSDLとfpstimerはいってます。
966 名前:デフォルトの名無しさん [2008/06/25(水) 12:55:07 ] >>964 んーたぶんそれと違うような。Mersenne Twisterをラップしたのなんだけど・・・ >>965 Rubyでゲーム制作ならこっちのスレの方がよいかと思う 【Ruby/SDL他】Rubyでゲーム制作・総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1207069887/
967 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 13:03:33 ] >>966 普通の乱数ジェネレータのオブジェクト化ね。 多分やってない、やる気がないだけだと思うけど。 確か、過去の議論で、うまい名前とうまいAPIがあれば、みたいな 話になってたかな。
968 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 13:10:11 ] >>966 スレちソマソ 誘導サンクスー
969 名前:958 [2008/06/25(水) 13:20:17 ] MLのその後のRandomパッチの議論を見つけました。 blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/31993?31774-32131+split-mode-vertical なんかグダグダのまま頓挫してますね・・・。