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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
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 なんかグダグダのまま頓挫してますね・・・。