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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
623 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 20:57:12 ] 「みるみるRubygがわかる本」 は、初心者に勧められる入門書ですか? 購入なさった人、情報を持っている方など 感想等お願いします。
624 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:03:06 ] プログラミング自体初心者には www1.tf.chiba-u.jp/~shin/tutorial/index.rb Ruby初心者には、他の言語の習熟レベルにもよるけど、 たのしいRubyかプログラミングRubyがいいんじゃないかな。 # その本の批評じゃなくてごめんね。 # 漏れは秀和ということだけで毛嫌いしちゃう
625 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:12:50 ] >>623 別に気にしなくていいんだけど、 立ち読みは表紙のイメージで記憶してるので書名で言われてもぶっちゃけ覚えてねー ttp://www.amazon.co.jp/dp/4798019291 で、これな 「何が何でもとにかく『たのしいRuby第2版』との差額900円が惜しい人向け」 だ 900円がないと明日家賃が払えないけど Rubyの本を何か持ってないと明後日異界に連れ去られてしまうとかそういう人向け
626 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:13:42 ] あ、あと、ある一定以上の重量の本を手に持つと骨が折れる人とか
627 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:23:38 ] 書籍にあるサンプルコード ttp://ftp2.shuwasystem.co.jp/pub/book/1929/sample-list.txt ……うーん…
628 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:35:17 ] 3-*あたりを見るとJavaっぽいね。 RubyではgetEuroなんてまず書かない。 多分、to_euroとか
629 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:40:56 ] なんだ秀和か。 あそこの本は、よそで出てないネタを押さえてる本は買う価値があるが、 よそで出てるネタの本は微妙な出来のことが多いな。
630 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:46:28 ] >>627 とりあえずcaseのインデントが気持ち悪すぎる
631 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:48:42 ] >>628 > Javaっぽい なかなか鋭い ttp://www.amazon.co.jp/s/ref=sr_st?__mk_ja_JP=%83J%83%5E%83J%83i&rh=n%3A465610%2Cp_27%3A%8F%B6%93c
632 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:53:50 ] >>627 はftpだな ftp://ftp2.shuwasystem.co.jp/pub/book/1929/sample-list.txt ってftpかよ! まあいいけど
633 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 21:57:31 ] Javaな奴にRubyの本を書かせるな めんどくさいから
634 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:01:41 ] >>631 やはりJava・・・・・・・なのか? 入門書ばっかり しかも売上が微妙なのかレビューがほとんどついてないのばっかりか
635 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:02:31 ] Rubyは『たのしいRuby』いっとけで済むからいいよな サポートサイトのエラッタを見ても頭ひとつ抜けてる感じだ 無理やり難点を挙げるなら熱さやユーモアに欠けるぐらいか
636 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:07:59 ] 本当は色々な入門書やら解説書やらが出ていいのも悪いのも結構ある、というのが理想 『たのしいRuby第2版』 し か な い というのが現実 スレ的には面倒がないが、言語普及的には好ましい状態ではない
637 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:09:58 ] Rubyで小金が儲かる、という状態でないとなあ Rubyの書籍は売れないから出しません、というような状況になるのはまずい
638 名前:623 mailto:sage [2008/05/23(金) 22:23:55 ] 皆さん情報提供ありがとうございました。 『たのしいRuby第2版』の情報等も参考にさせていただきます。
639 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:26:18 ] 他言語を知ってるならピッケル本が良いんだが
640 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 22:37:12 ] Rubyの新しい本はRails含めて最近ちょくちょく出てるんだが、いまいちパッとしない ttp://www.amazon.co.jp/dp/4798019437/ これは、読んだ限りではまあ、うん、まあ、同価格帯で勝負するだけはあるなって感じはするが 目次はここ ttp://www.shuwasystem.co.jp/products/7980html/1943.html
641 名前:デフォルトの名無しさん [2008/05/24(土) 10:10:42 ] Amazon/AWSのResponseオブジェクトをprintで出力すると 長々と内容まで出力してくれるのですが、ppで出力すると #<Amazon::AWS::AWSObject:0x2f82e04 ...>としか出力されません。 ppで整形した内容まで出力してくれるようにするにはどうしたらいいのでしょうか?
642 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:46:40 ] >>641 今こそソース読んでステップアップするとき pp.rb を読むんだ
643 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:31:14 ] Rubyからaccessのmdbファイル内のレコードを操作するにはどうしたらいい?
644 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:14:05 ] ttp://jp.rubyist.net/magazine/?0005-Win32OLE そういう目的のためのwin32OLE。 あまり使ったこと無いので、使いやすいのか知らんけど
645 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:38:16 ] win32OLEは便利だと思うけど、詳しい解説がどこにあるのかがわからない。 るびまは読んだんだけどなー
646 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:10:13 ] WIN32OLEクラスの使い方さえ覚えれば、 あとはWSHの話じゃないか?
647 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:24:37 ] WSHというか、あとはそのライブラリ自体のお話ってことだよねぇ。
648 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:10:56 ] AccessのVBAでマクロ組んで、Rubyからそのマクロを呼ぶのが一番簡単そう。 Rubyから呼ぶ必要があるかどうかは知らんけど。
649 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:29:03 ] 実のところRubyはほとんど関係ないんだよな 単純にWindowsプログラミングの話になってしまう
650 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:30:49 ] >>649 本質的には system() で外部コマンド呼んでるだけだからねえ… どんなときにどんなコマンドを呼び出すべきかってのはRuby関係ないわな…
651 名前:643 mailto:sage [2008/05/24(土) 20:43:37 ] >>644 のリンク先の一行レコードを追加するスクリプトサンプルみると conn = WIN32OLE.new("ADODB.Connection") 以降はvbaと同じっぽいのでなんとかやれそう
652 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:36:18 ] open-uri を使って ftp にアクセスしたい。 require 'open-uri' uri = URI.parse("ftp://hogehoge.com/bar/") uri.user = 'foo' uri.password = "fu/ha" でエラー。uri/generic.rb の USERINFO(Regexp) が /^(?:[-_.!~*'()a-zA-Z\d;:&=+$,]|%[a-fA-F\d]{2})*$/n になっているのが原因で パスワードに '/' を含む事が出来ない。 URI.escape(password) をしても '/' はエンコードされず。 何か策はないでしょうか? (パスワードは変更できない) open(uri) の uri にパスワードを含めれないのか? net/ftp を使えばログイン出来るのだが、やりたいのは、 Pathname を使って ディレクトリを掘りながら put をしたい。
653 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 01:54:51 ] URI::USERINFO= /^(?:[-_.!~*'()a-zA-Z\d;:&=+$,\/]|%[a-fA-F\d]{2})*$/n とか
654 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 02:11:13 ] まあ基本的には無理だな 自前で書き換えるしかないわ スラッシュって含むことできたっけ?
655 名前:652 mailto:sage [2008/05/25(日) 02:44:45 ] >>653 素敵。 しかし別の新たなエラーが。もう少し調べます。(そもそも 掘って put は出来るのか?) ありがとうございます。
656 名前:652 mailto:sage [2008/05/25(日) 02:57:43 ] わかった。open-uri は ファイルを扱うものなのか。 ディレクトリは扱えないのか。 失礼しました。
657 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 04:48:04 ] まつもとゆきひろがB型肝炎に感染 mamono.2ch.net/test/read.cgi/newsplus/1211364904/
658 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:24:45 ] 質問です。 #!/usr/local/bin/ruby print "Content-type: text/html\n\n" print "<html><body>Hello World</body></html>" この内容の.cgiファイルを land.to/newshiyou.php このレンタルサーバーにアップしたのですが。 500内部サーバエラーになってしまいます。 なぜなのでしょうか?どうすれば動かせるのでしょうか? 回答よろしくお願いします。
659 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:35:52 ] エラーメッセージの意味がわからんです おしえてエロイひと c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:152:in `fault': wrong fault-structure: {"f aultCode"=>"Client", "faultString"=>"Application failed during request deseriali zation: \nnot well-formed (invalid token) at line 6, column 345, byte 3640 at /h ome/seesaa/cpan/lib/i686-linux-thread-multi/XML/Parser.pm line 187\n"} (RuntimeE rror)
660 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:52:12 ] >>659 文字コードの知識もないspamブロガーさんこんにちは
661 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 15:56:29 ] >>660 そう見えるよなあ 投稿スクリプトをサンプルとして提供するのは止めたほうがいいと思うぞ で、まあ、seesaaはShift_JISだったはずなのでShift_JISで送れ
662 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 16:07:16 ] >>658 CGIファイルのパーミッションを実行可能に変更していないのだと予想
663 名前:658 mailto:sage [2008/05/25(日) 16:41:39 ] 解決しました。 ありがとうございました。
664 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:38:53 ] 【プログラム】 #! ruby -Ks class Ice def sizeIce(size) print(size) end end class IceName < Ice def initialize(name="未設定") @iceName = name end attr_accessor :iceName end class IceSize < Ice def initialize(size="未設定") @iceSize = size end def sizeIce(size) super(size) print("サイズです。\n") end attr_accessor :iceSize end ice = [IceName.new("メロンソーダ"),IceName.new("レモン&ライム"),IceName.new("スイカバー")] ice2 = [IceSize.new("中"),IceSize.new("小"),IceSize.new("大")] for k in 0..ice.size-1 print(k+1,"個目 ",ice[k].iceName,"は",ice2[k].sizeIce(ice2[k].iceSize)) end
665 名前:664 mailto:sage [2008/05/25(日) 17:44:59 ] 【表示される結果】 中サイズです。 1個目 メロンソーダはnil小サイズです。 2個目 レモン&ライムはnil大サイズです。 3個目 スイカバーはnil 【表示したい結果】 1個目 メロンソーダは小サイズです。 2個目 レモン&ライムは大サイズです。 3個目 スイカバーは中サイズです。 昨日からrubyの勉強を始めました。 初めてのプログラミングなので、わからないことが多々あり苦戦しております・・・。 上記のプログラムを実行するとエラー等は出ないのですが、表示結果が思い通りになりません。 なぜ一番最初に「中サイズです。」が表示されるのかすら理解できません。 一体どの部分に問題があるのでしょうか? わかりにくいプログラムだとは思いますが、もしよろしければ回答お願いします。 ※このプログラムは、練習目的で作っているのでわざわざ面倒なことをしています。
666 名前:664 mailto:sage [2008/05/25(日) 17:46:44 ] 訂正 【表示したい結果】 1個目 メロンソーダは中サイズです。 2個目 レモン&ライムは小サイズです。 3個目 スイカバーは大サイズです。 でした。すいません。
667 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 17:59:29 ] (半分ほど作り変えた時点で悩む) あー、まあいいや print は引数をその場で画面に表示し、返り値として nil を返す 表示部とデータ部を完全に分けて考えるべき 最終的なデータを最後に print で表示するだけ、という考え方な Ice.sizeIce で print を使っているのはよくない
668 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:16:52 ] てゆーか、継承の考え方がおーざっぱに間違ってね? 「アイスの価格」が「アイス」というクラスを継承するはずがない 「アイスの名前」や「アイスの価格」は「アイス」というクラスの変数であるべき class Ice def initialize(name=nil, size=nil) @name = name @size = name end attr_accessor :name, :size end data = [ ["メロンソーダ","中"], ["レモン&ライム", "小"], ["スイカバー", "大"] ] products = Array.new data.each do |a| products.push(Ice.new(a[0], a[1])) end products.each_with_index do |ice, i| puts "#{i+1}個目 #{ice.name}は#{ice.size}サイズです" end
669 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:22:51 ] 抽象的に「アイス」があって、 「価格のあるアイス」とか「サイズのあるアイス」とか「価格とサイズのあるアイス」と 具体化...と考えているのかもしれないが、そういう継承の使い方はあっさり破綻するので やめたほうがよい。 まずは合言葉「継承は最後の武器だ」かと。
670 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:34:03 ] >>664 k == 0 の時の出力 中サイズです。 1個目 メロンソーダはnil k == 1 の時の出力(最初の行は↑の行に続けて出力) 小サイズです。 2個目 レモン&ライムはnil k == 2 の時の出力(は省略) 「?サイズです。」はice2[k].sizeIce(...)メソッド実行時の出力 「?個目 ***はnil」がループ内のprintの出力 最後のnilはice2[k].sizeIce(...)の返却値 # sizeIce(...)最後のprintの返却値 # k== 0 の時 print(1,"個目 ","メロンソーダ","は",nil) になっている 問題は「経験が足りない」事 もっとたくさんソースを書いて実行してデバッグすれ
671 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 18:42:30 ] マニュアルには「返り値」「戻り値」があるけど「返却値」はないな …なんで2種類あるんだ マニュアルくらいどっちかに統一せえ
672 名前:664 mailto:sage [2008/05/25(日) 18:53:18 ] >>667-670 レスありがとうございます。 どうやら自分の言葉足らずだったようです。 現在こちらのサイトさん(www.rubylife.jp/index.html )のRuby入門というところを一番上から進めています。 現在は「Rubyオブジェクト指向プログラミング」の「クラスの継承」の部分まで読み終えています。 ひとつの項目が終わるごとに、その項目で覚えたメソッド等を使ってプログラムを作る練習をしているのです。 なので今回は「クラスの継承」「オーバーライド」「super(引数)」の3つを使ったものを作ろうとしていました。 ・・・と自分で考えたらあんな感じになってしまったのですが、このような使い方はそもそもおかしいようですね。 色々混ぜすぎて自分でも分けがわからなくなってましたし。 次回からはもっと処理を個別に分けてプログラミングするように心がけます。 クラスの継承は結構重要そうな感じだけど、実際はそこまで実用性があるわけじゃないのかな・・・。 一番最初に「中サイズです。」が出てきてしまう理由や、「nil」が表示される問題などは解決しました。 >>668 さんのような配列の書き方は非常にわかりやすい・・・次からはこのように表記したいと思います。 大変わかりやすく解説していただきありがとうございました。
673 名前:デフォルトの名無しさん [2008/05/25(日) 20:35:05 ] すみません、マニュアルみたりしてるんですが、見落としてるのか分からないので、教えてください。 クラスの定義の中にたまに、「:」がでてくるんですが、:の意味を教えてください。 たとえば、 Railsだと、「t.string :title」な表現があったり、 インスタンス変数のアクセサを作るときは、「attr_accessor :x, :y」とかしますよね。 この:の意味が掴めないですorz class CreateArticles < ActiveRecord::Migration def self.up create_table :articles do |t| t.string :title t.text :description t.string :image_url t.decimal :price t.datetime :date t.string :vender t.string :category t.timestamps end end def self.down drop_table :articles end end
674 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:41:49 ] それはシンボルというものだ
675 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:18:50 ] というか、Symbol クラスのインスタンスだと説明したほうがいいかも Rubyのメソッド名や変数名は内部的に数値で管理されてる (2455番目に登録されたメソッド、とかそんな感じで、オブジェクトIDとは別物) シンボルは、その数値に文字でアクセスすることができる機構だ 結果として、「文字」でメソッド自体を指し示すことができる 普通に foo と書いたら foo メソッドが動いてしまって「foo というメソッド」を指し示すことができない しかし、そのとき「メソッド foo を示す登録番号」という指定の仕方ができるとしたら、「foo というメソッド」という指定の仕方ができる 腹減ってるので自分でも何書いてるかわからなくなってきた 試しに適当な変数作って、それと同じ名前のシンボルに to_i してみ それが内部整数値だ シンボルを id2name するとシンボルに対応する文字列が返る 時々「シンボルを文字列にする」という表現で説明されるがこれは本当は誤り
676 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 21:26:03 ] 余計わからなくなるので>>675 は読まなくてよし もう遅いかもしれんが
677 名前:デフォルトの名無しさん [2008/05/25(日) 21:31:28 ] >>674 >>675 さきほど、rubyの公式にアクセスできたので、FAQ見てたらシンボルということは分かったところで、余計に理解に苦しんでましたが、、、 >>普通に foo と書いたら foo メソッドが動いてしまって「foo というメソッド」を指し示すことができない >>しかし、そのとき「メソッド foo を示す登録番号」という指定の仕方ができるとしたら、「foo というメソッド」という指定の仕方ができる 神レスありがとうございました!よく分かりました!!
678 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 10:28:13 ] www.ruby-lang.org/ が落ちているような。
679 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 10:32:27 ] 500とかはいつものことだろ、と思ったが router2.netlab.jp で止まっててアクセス自体ができないな
680 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 17:39:26 ] SymbolとStringの違いは「優しいRailsの育て方」本が一番わかりやすかったな。 あのキモいアイドルAAを我慢できればの話だけど。
681 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 20:55:34 ] Rubyで作成したGUI上で動くちょっとしたソフトウェアを windowsクライアントに配布して利用してもらいたいとき、 クライアントのPCにもRubyをインストールしておかないと 実行できないでしょうか?
682 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:04:09 ] >>681 exerbでぐぐってみるとか。
683 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:05:54 ] Ruby/Tk以外で作らないと駄目だな
684 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:18:10 ] >>682 、683 exerbを利用すればいいのですか。 新しいツールは、勉強もかねてRubyで作ることにします。 さっそく、本を買いに行ってきます。 レスありがとうございました。
685 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:20:38 ] rubyscript2exeもどうぞ。
686 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:26:22 ] おいおい、Rubyで自分以外のためにGUIツールを作るなんてアホのすることだぞ 渡されたほうも迷惑だからそういうことはやるな
687 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:37:59 ] じゃあ、何で書くのがいいのさ? C#とか?
688 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:47:19 ] うん、あのね、どうやら 「もともとのGUI対応」 「付け足しのGUI対応」 の区別がつかないらしいんだ、初心者の人
689 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 21:55:42 ] そんなにも区別すべきなのか、というのも興味深い問題だと思うぜ まあ、とってつけたGUIシステムで火傷したことがある人ばかりだから不評なんだけどさ
690 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 12:27:50 ] Winで動かす物はMSの道具立てでやった方が、楽だし誤解や面倒ごとも少ないのは確かだしな まあ仕方ないさ
691 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 13:10:52 ] これはどういったプロジェクトなのでしょうか? ttp://raa.ruby-lang.org/project/ghdghdgh/
692 名前:デフォルトの名無しさん [2008/05/27(火) 15:14:16 ] 一行が長くなって読みにくい場合、改行したくなるのですが、 どうしたらイイですか?
693 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 15:19:21 ] >>692 改行すればいいじゃん? バックスラッシュ \ を使えば改行を隠すことができる 他にも「区切れのいいところ」で普通に改行することもできるが、 このへんは他の人のスクリプトを読んで参考にするといい
694 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:00:06 ] 動的メソッドって?
695 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 18:09:56 ] Rubyの奥義のひとつ(いやRuby以外でもできるけど) 動的に定義されて動的に実行されるメソッドの8割は本当は静的でもなんとかなる
696 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 21:56:33 ] 実行するまで在るか無いかわからないってこと?
697 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 22:02:04 ] マクロの代わりに使う例も多いと思う。
698 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:13:30 ] まるごとRuby!のVol.1を眺める ttp://www.amazon.co.jp/dp/4844325795/ …endの連続はLispの閉じカッコの連続っぽくね?というのは それはそれでヒドいと思う 現時点でのRubyの紙媒体のまとまった情報が欲しい人向け スレ的にはちと情報が重いか
699 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:37:44 ] Railsレシピブックのほうに目が行ってしまった
700 名前:デフォルトの名無しさん [2008/05/30(金) 18:24:17 ] #!/usr/bin/env ruby -Ku とファイルの先頭に書いて実行すると、 env: ruby -Ku: No such file or directory と言われてしまいます。 envで-Kuをつけたいのですが、 言われないようにする方法はどのようなものがありますでしょうか? 環境は FreeBSD 6.1-RELEASE-p23 です。
701 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:52:34 ] 基本的には小手先では無理 env コマンドは複数の引数をうまく受け取ることを期待できないし、環境によっても動作が違う たとえば、その記述は同じ FreeBSD の 5.x では期待通りに動作する
702 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:56:33 ] いやenvがどうこうというよりカーネルが…
703 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 18:59:33 ] あ、どうするかだっけ #!/usr/local/bin/ruby -Ku と書くこと ダウンロードして即実行できないことについて文句言う的外れのアホは無視 実行するスクリプト内容を確認しないような人間をユーザーに引き込むと後々癌になるぞ で、自前で複数環境で使いたい、という場合が問題なんだが
704 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:20:38 ] >>700 shebang行(#! で始まる)に渡せる引数は1つ、という実装が多いから無難なのは、 #!/usr/bin/env ruby $KCODE='u'
705 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:32:52 ] ruby -Ku と $KCODE='u' はカレーとウンコくらい違う ちなみに Ruby1.9 ではカレーとウンコが同じになった
706 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:37:32 ] >>705 あれ? $KCODEは無視されるんじゃなかったか?
707 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:45:49 ] warning: variable $KCODE is no longer effective; 値を参照しても代入しても常に nil という頑なな感じの動作
708 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:48:01 ] end end end end ))))
709 名前:700 [2008/05/31(土) 04:50:05 ] 調べたらFAQ的な質問みたいですね。 解決法 ・フルパスでrubyのパス記述 >>703 ・$KCODEで指定 >>704 パス関係なくするためにenvにしたかったけど、意味ないなあw ところで、$KCODEで指定する場合は、 ファイルが本当にUTF-8の文字列(例えば日本語)を含んでいても大丈夫なんでしょうか?
710 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:05:04 ] 大丈夫
711 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 06:11:40 ] >>686 普通に喜ばれたけどw
712 名前:700 [2008/05/31(土) 06:33:23 ] >>710 ありがとうございます。 では、ちょっとずれてくるのですが、>>705 の > ruby -Ku と $KCODE='u' はカレーとウンコくらい違う というのはどういう違いなのでしょうか? どこかに簡単な解説などないでしょうか?
713 名前:700 [2008/05/31(土) 06:34:05 ] いえ、気になったというより、変なところでハマりたくないので知っておきたい、 といった理由からです。
714 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 09:00:31 ] >>709 大丈夫じゃない場合がある リファレンスマニュアルにも記述があるけど $KCODEの指定が効いてくるのは、$KCODEへの代入が実行された後なので 最初に読むファイルに日本語が含まれていると、パースエラーになることがある 詳しくはFAQの10.2 ttp://www.ruby-lang.org/ja/man/html/FAQ_C6FCCBDCB8ECA4CEBCE8A4EAB0B7A4A4.html
715 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 13:57:32 ] 問題になることがあるのはShift_JISの場合。 EUC-JPはUTF-8にはそういう性質はない。 -Kを指定してあれば日本語を識別子に使うこともできるが$KCODEでは無理 という違いもあるが、それは正直お薦めしない。 ちなみに-Kは1.9でもきくが、マジックコメントのほうが推奨。 #!/usr/local/bin/ruby # -*- encoding: ut-f8 -*-
716 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 20:25:40 ] #!/usr/local/bin/ruby # -*- coding: utf-8 -*-
717 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 23:56:12 ] HOME['ENV'] って何だよ・・・
718 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:12:49 ] >>717 誰か間違えてそうでありそうで無いな
719 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:17:31 ] 図書館にこの本があったので借りてみて一通り目を通してみました www.amazon.co.jp/dp/4894714531 で、次に何かRuby買ってみようと探してみて www.amazon.co.jp/dp/4274066428/ これが本屋さんあったけど・・・ 上のと同じ本?
720 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:07:13 ] 今なら下がお勧め
721 名前:デフォルトの名無しさん [2008/06/01(日) 01:28:02 ] mod_rubyを動かしたいんですが以下のようなエラーが出て動きません。 どうすれば動くようになりますか? apache -t apache: Syntax error on line ??? of C:/〜〜/httpd.conf: Cannot load C:/〜〜/modules/mod_ruby.so into server: \x8ew\x92\xe8\x82\xb3\x82\xea\ x82\xbd\x83v\x83\x8d\x83V\x81[\x83W\x83\x83\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\ xe8\x82\xdc\x82\xb9\x82\xf1\x81B 環境 Windows Vista Apache2.2.8
722 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 09:52:04 ] >>721 あなたの頭とOSが腐ってるのが原因ですね。 頭のほうはもう手遅れなので、OSの方をdebianなどに変えてmod_rubyを apt-get一発でインストールすればどんな馬鹿でも使えるようになります。
723 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:07:23 ] >>722 〃∩ ∧_∧ ⊂⌒( ・ω・) はいはいわろすわろす `ヽ_っ⌒/⌒c ⌒ ⌒
724 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:35:47 ] 文字化けしてるが、Shift_JISで 「指定されたプロシージャが見つかりません。」 と書いてあるようだな。 mod_ruby 指定されたプロシージャが見つかりません。 でぐぐるとわかるかもよ。
725 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 14:24:14 ] >>724 www.google.com/search?num=50&hl=ja&q=mod_ruby+%E6%8C%87%E5%AE%9A%E3%81%95%E3%82%8C%E3%81%9F%E3%83%97%E3%83%AD%E3%82%B7%E3%83%BC%E3%82%B8%E3%83%A3%E3%81%8C%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93&lr=lang_ja ググったけどわかりません
726 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 16:52:27 ] 現在実行しているRubyファイル自身のpathを取得できる特殊変数(?)というのはありますか? 宜しくお願いします!
727 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 19:45:03 ] 事故解決しました __FILE__
728 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:02:52 ] Rubyを使いたいのだけれど使う機会が無い。どう転べばRubyを日常使用する変人になれるのか。最初にそれを説かなければ信者は増えないだろうと思う。
729 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:08:17 ] >>728 君には必要ないよ 必要のないものに固執する必要はない 楽になるといい
730 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 21:34:52 ] >>728 Project Euler とかお勧め。
731 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:17:55 ] >>730 Ruby関係ないというかRubyでやるくらいならSchemeかPythonかC++でやる。
732 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:30:06 ] 目的を達成するのに一番便利な言語を選べばいいじゃん。 別にこだわりはないな。
733 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:15:09 ] rails使えば
734 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:05:15 ] まあ、みんながみんなプログラマーになる必要はないわな。 Rubyに早くなれたかったらUnixかLinux使いえばいい。シェル操作が日常に なれば、ごちゃごちゃしたものをスクリプトで一気になにかするのが快感になるはず。
735 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 02:29:00 ] 俺は cmd.exe を使うようになってRubyの使用頻度が格段に増えた しょぼいコマンドプロンプトの補助としては優秀
736 名前:デフォルトの名無しさん [2008/06/07(土) 13:07:20 ] 俺は、バッチファイルで書くのが嫌になったころからだな。 unixではシェル書くのがいやになったころから
737 名前:デフォルトの名無しさん [2008/06/07(土) 13:08:08 ] シェルじゃねえ、シェルスクリプトだ。すまそ。
738 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:12:37 ] rubyの正規表現でhtmlファイルの中から<html>の様に<>で囲まれた 文字列を取り出すにはどのようにすれば良いですか ^<.*>$まではわかったのですが <br>のように直前に文字列が存在するタグはとりだせないのです f = open(ARGV[0].to_s) while line = f.gets if /^<.*>$/ =~ line puts line end end f.close よろしくお願いします。
739 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:15:03 ] ^や$(行頭と行末の位置にマッチ)を付けない。 さらに、.*だと欲張りマッチ(可能な限り長い対象にマッチ)になるので、 <h1>....</h1>に遭遇したときに全体にマッチしてしまう。 これを避けるためには、?を後ろに付けた .*?(欲張りでないマッチ)を使う。
740 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:18:05 ] >>739 ありがとうございます。 しかもアドバイスまで ありがとうございます
741 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:20:11 ] >>739 ああ〜テストしてみた所 a<html> とかが表示されてしまいました こうではなくて a<html>とかの行からも <htm>だけきりだしたいのですが・・・・
742 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:28:58 ] 正規表現の中に()を書くと、括弧の内容を後で利用できる。 /(<.*?>)/ でマッチした後、$1というグローバル変数に<html>とか入ってるはず。
743 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:32:35 ] 実用の上で正しい回答は「自分でコード書かずにhtmlsplit使え」 もちろん学習用としてなら意味はあるけど >>741 行全体(line)をそのまま表示しようとしているのが原因 マッチした部分($&)だけを表示させるようにするか もしくは742の言うとおり、括弧と$1を使う必要がある さらに言うと、そのスクリプトだと一行で一つのhtmlタグしか切り出せない 全てのhtmlタグを切り出すには、もう少し変更が必要
744 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:34:16 ] マッチするかどうかを試験する、ということと マッチした部分を取り出す、ということは違う 方法はいくつかあるが、概念的にめんどくさくないのは文字列に対してscanを使うこと "a<html>b".scan(/<.+?>/){|match| p match } 結果: "<html>"
745 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:41:27 ] >>743-744 まとめるとどのようになるのでしょうか 最終的には htmlファイルを指定すると そのページ内に存在するファイルを 音楽、動画、画像などに仕分けして そのURLをファイルに書き込んでくれてwgetなどで簡単にダウンロードできるようにしたいんです。
746 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:46:14 ] … rubygem の mechanize 使え <a href> で表記されたリンクをすべて抽出してアクセスして適当に保存までしてくれる ネット上にあるページではないローカルにあるHTMLファイルを読み込まなければならない場合若干面倒だが
747 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:47:58 ] とりあえず地道にやってみるならリンクされてるAタグでのhref="〜"部分を切り出して リンク咲の拡張子なりで分類するとか
748 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:52:15 ] だから目的のものが出るまでscan繰り返せばいいじゃんよ scanのマニュアルとか読んでくれたか? 文字列.scan(/タグ抽出/){|タグ変数1| タグ変数1.scan(/httpで始まる半角文字列/){|URLっぽいもの| 動画URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /動画拡張子/ 画像URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /画像拡張子/ 音楽URL一覧配列.push(URLっぽいもの) if URLっぽいもの =~ /音楽拡張子/ } } File.open('動画.txt','w'){|f| f.puts 動画URL一覧配列} File.open('画像.txt','w'){|f| f.puts 画像URL一覧配列} File.open('音楽.txt','w'){|f| f.puts 音楽URL一覧配列}
749 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:55:11 ] >>746 そういうのが有ったんですね・・・・ なんだか自分が最初のアイデアって今では出せないんじゃないかって 最近思ってるんですよね。 何かアドバイスになる言葉を教えてください。 小学生の頃からプログラミングしていた根っからのプログラミング好きに 慰めの言葉を
750 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 13:55:19 ] hpricotだとこうか。 require 'hpricot' require 'open-uri' doc = Hpricot(open(URL) {|o| o.read}) puts (doc / 'a').map {|a| a['href']}
751 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:01:18 ] とりあえずは、初心者スレなので正規表現でscanするのが妥当かねえ なんとなくだが、外部ライブラリを利用するための基礎的知識もまだ危ういように見える 便利ライブラリはもうちょい納得してから使え
752 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:02:22 ] 初心者スレであんまり「gemのlibhogeを使え」なんていわないほうが いいんじゃにゃいかな。そりゃ業務的には正解だけど、たぶん牛刀割鶏になってるよ。
753 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:09:36 ] rubygems に代表される公開ライブラリを流用するのは何故かというと 「自力でゼロからまたアレやるのめっちゃ面倒だ」 という認識があるからなんだよな 「面倒なアレ」という経験が無いうちから使うと後々悲惨な結果に 苦労は初心者のうちにしておくとよいと思う
754 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:24:14 ] あほらし
755 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:33:14 ] 別に両方教えればいいだけじゃん html = File.read('page.html') html.scan(/<(.*?)>/) { p $1 } と >>750 の両方。 もちろん違う人が教えてもいい。
756 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 16:33:30 ] URI.extractでもつかっとけ
757 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:38:20 ] 文字出力、正規表現の際に'可能'という文字を使用したいのですがうまくいきません。 試しに以下のスクリプトでテストしてみました。 ファイルをSJIS保存 puts '能' => unterminated string meets end of file ファイルをUTF8保存 puts '能' => '閭ス' となってしまいます。 どうすれば扱えるのでしょうか? どなたか本気でお願いします。
758 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 17:51:51 ] Shift_JISの場合は ruby -Ks hoge.rb で起動 UTF-8 の場合は ruby -Ku hoge.rb で起動
759 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:40:06 ] >>757 rubyは基本的に、何も指定しないと日本語を正しく扱えない 詳しくはリファレンスマニュアル(もしくは書籍)を読め
760 名前:757 mailto:sage [2008/06/07(土) 21:39:01 ] ありがとうございます! 無事に出力&正規表現が実行できました。 ファイル毎に記述する癖をつけます!
761 名前:デフォルトの名無しさん [2008/06/07(土) 22:46:14 ] String#split* という関数はどういう挙動なのでしょうか? 文字列がかえるので split().join と同じだと考えていたのですが どうにも違うようですし調べてもでてこないし リファレンス(コードでもいいので)ご存知のかたいたらおねがいします
762 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 22:48:02 ] 1while などアンドキュメントな部分などの部分もご存知のかた いたら同様に示唆していただけたらありがたいです ruby 二日目であほなこといっていたらごめんなさい
763 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:06:41 ] String#split* なんて関数は見たことない split().join, 1while ともども簡単なコードも付けてくれると答えやすいかも あるいはどこに書いてあったとか
764 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:11:34 ] >>761 正直、Ruby の引数展開の * はあまり好きではない あれは Ruby として明示的なメソッドであるべきだと思う んで、引数の配列の直後に * をつけると展開して引数に渡される arr = [1, 2, 3] hoge(arr*) は hoge(1, 2, 3) と同じ動作だ 文字列を split した結果の配列が展開されて渡されてるということだな split は引数を省略すると空白で分割して配列を返すから hoge('1 2 3'.split*) は hoge(1, 2, 3) と同じ 正直、あまり明快な記述とは思えないので、自分から使うのは避けたほうがよい
765 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:23:51 ] >>763 , 764 ありがとうです。 >>763 ゴルフコードでよくみたのでこれなんだろーなっていう shinh さんのとこから tree = '(Root (Spine (Neck (Head)) (RClavicle (RUpperArm (RLowerArm (RHand)))) (LClavicle (LUpperArm (LLowerArm (LHand))))) (RHip (RUpperLeg (RLowerLeg (RFoot)))) (LHip (LUpperLeg (LLowerLeg (LFoot)))))' tree.scan(/ \((\w+)/){puts"#$+ . #{a=$`.split*'';1while a.sub!(/\(\w+\)/,'');a[/\w+$/]}"} ってなかんじで 1while はブロックをともなわない構文なのかなと perl と同じ と思っていました while gets; end -> 1while gets でできるかんじ? で split* があるのかなと考えたのは >> "abcd".split*'' => "abcd" >> "abcd".split* '' => "abcd" >> "abcd".split*('') => "abcd" >> "a bcd".split*('') => "abcd" >> "a bc d".split*('') => "abcd" >> "a bc d".split*(',') => "a,bc,d" >> "a bc d".split('') => ["a", " ", " ", " ", "b", "c", " ", "d"] >> "a bc d".split('') で返り値が array ではなく string なので引数展開ではないのかなーと 考えています
766 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:25:26 ] 展開の * は前につくんだったと思うんだが hoge(*arr) あと、配列 * s が 配列.join(s) と同じ動作になるのは s が文字列だったときだけだぞ s が整数だったときには単に繰り返される だから、to_s や to_i が乱れ飛ぶ初心者のスクリプトでは紛らわしいから使ったら駄目 というか、そもそも紛らわしいから素直に join 使え
767 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:36:09 ] >>765 1whileはrubyの標準にはない。たぶんコードゴルフ用の拡張 ついでに言うと、初心者がコードゴルフを参考にするのは薦められない あれは一般的に美しくない(分かりにくい)書き方が多いから
768 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:47:03 ] >>762 違ってたらごめんね >> "abcd".split() * '' => "abcd" >> print 1while true 1111111111111 >> while true; print 1; end 1111111111111
769 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 23:57:22 ] >>768 ruby のコードながめていたらおっしゃる通りだと思いました 1while でも 1 while でも同じことで kWHILE のみしかなかったでした orz 1 while() { ...} なども添付コードにあったので変態的な構文解析だなぁと split() もそうだとおもいます >> a="a b cd".split() => ["a", "b", "cd"] >> a *'' => "abcd" >> a *'abc' => "aabcbabccd" >> a.*'abc' => "aabcbabccd" >> a.*'' => "abcd" コメントみなさんありがとうございました
770 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 00:00:25 ] 追記 www.ruby-lang.org/ja/man/html/Array.html#self.20.2a.20times ですね ありがとうです
771 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:03:39 ] Ruby1.6で書かれたクラスを利用しないとアクセスできないシステムがあります そのシステムはEUC_JPしか受け取れないため、他のエンコードを使用しようとした場合は変換したいと考えています ですがRuby1.6時代のKconvではUTF-8→EUC_JP変換ができません そこで質問なのですが ・Kconvに限ってRuby1.8のクラスファイルを利用する、などといったことは可能ですか? ・指定ファイルはRuby1.6、それ以外はRuby1.8というようにクラス/ファイル別にインタプリタを指定して実行することはできますか? 現在は一時ファイルに実行結果を書きとめておくことで疑似的に実現していますが、よりスマートな方法がありましたらご教示願います
772 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:12:05 ] nkf.cだけ差し替えてコンパイルしてみるとか。 よしだむ氏のuconvを使ってみるとか。
773 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:15:53 ] 1.6のUTF8関連はuconv使ったような記憶がある というか、1.8で動かない上に書き換えも面倒な1.6のスクリプトって重症だなあ マニアさんが書いたようなスクリプトですかね
774 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:28:32 ] でっかーいスクリプトだと1.8対応にするのはゼロから作り直すに等しい作業になりそうだな 1.6で完全に動いてるならそのまま使いたいとこだろう Uconv試すのが一番だと思うぜ
775 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 00:30:55 ] UTF対応の外部NKFのラッパーを自前で書くというのはどう Kconvの中の人がやってることは同じだし 一時ファイル使ってる現状とほとんど変わらないような気もするけどな
776 名前:771 mailto:sage [2008/06/10(火) 08:29:09 ] 皆さんありがとうございました Uconvの使用が一般的な方法のようですので、まずはこの方法でやってみたいと思います
777 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:34:19 ] index.rhtmlからtest.rbをrequireすると エラーは出ないのですが、test.rb内に記述された関数群が利用できずにエラーとなります。 この拡張子でのrequireは無理なのでしょうか? もしそうであれば、どのようにファイル分けをすればよいのでしょうか? よろしくお願いします。
778 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:52:54 ] エスパー麻美の出番だな
779 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 18:02:07 ] エスパー…あさみ…?
780 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:00:07 ] ビーズで撃たれて死んでしまえ
781 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:12:57 ] 魔女ステかよ
782 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:37:07 ] ダック・タイピングとよく言いますが、 オブジェクトが目的のメソッドを持っているかどうかの責任は、 プログラマにあるということでしょうか?
783 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:39:05 ] スクリプト言語でなおかつ動的にクラスもメソッドも追加可能な言語では 「ユーザー」と「プログラマー」の間が曖昧なんだよね
784 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:33:42 ] よくわからんが、処理系が実行時まで何もしてくれないことだけは確か。
785 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:59:33 ] >>778 洗剤か
786 名前:デフォルトの名無しさん mailto:age [2008/06/11(水) 12:05:00 ] Rubyのバージョンアップ方法に関してどなたかお力を貸して頂けないでしょうか。 現在CentOS4.5上で下記のパッケージでRubyを動作させております。 ruby-1.8.5-1.el4.centos ruby-docs-1.8.5-1.el4.centos ruby-libs-1.8.5-1.el4.centos ruby-irb-1.8.5-1.el4.centos ruby-devel-1.8.5-1.el4.centos ruby-ri-1.8.5-1.el4.centos ruby-rdoc-1.8.5-1.el4.centos ruby-tcltk-1.8.5-1.el4.centos 今回Rubyのバージョンを1.8.6へあげたいと考えておりますが下記の エラーに遭遇してしまい検索してみた物の./configureが出来ない状 態です。。 【エラー】 checking for C compiler default output file name... configure: error: C compiler cannot create executables See `config.log' for more details. 〜続く〜
787 名前:786 mailto:sage [2008/06/11(水) 12:06:09 ] 【config.logを見て該当すると思われる箇所】 gcc version 3.4.6 20060404 (Red Hat 3.4.6-9) configure:2530: $? = 0 configure:2537: gcc -V >&5 gcc: `-V' option must have argument configure:2540: $? = 1 configure:2563: checking for C compiler default output file name configure:2590: gcc conftest.c >&5 /lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE' collect2: ld returned 1 exit status configure:2593: $? = 1 configure:2631: result: configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define USE_BUILTIN_FRAME_ADDRESS 1 | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2638: error: C compiler cannot create executables See `config.log' for more details.
788 名前:786 mailto:sage [2008/06/11(水) 12:08:41 ] 【gcc関連インストールされている物】 compat-libgcc-296-2.96-132.7.2 compat-gcc-32-3.2.3-47.3 gcc-3.4.6-9 gcc-g77-3.4.6-9 gcc4-c++-4.1.2-14.EL4 gcc-objc-3.4.6-9 gcc-gnat-3.4.6-9 compat-gcc-32-c++-3.2.3-47.3 libgcc-3.4.6-9 gcc-java-3.4.6-9 gcc-c++-3.4.6-9 gcc4-4.1.2-14.EL4 gcc4-gfortran-4.1.2-14.EL4 gcc4-java-4.1.2-14.EL4 2日程格闘中ですが、お手上げ状態に近づいて来ました。。。 RPMで1.8.6があればいいのですが該当するものも無いため 今回tarからrpmをcheckinstallで作成しようと考えてお ります。。
789 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 13:28:15 ] >>787 に書いてあるがな。GNU libcの `_dl_out_of_memory@GLIBC_PRIVATE' がないんだろ。glibcを入れ直してldconfigしてみろ
790 名前:786 mailto:sage [2008/06/11(水) 13:46:57 ] >>789 さん 助言有り難う御座います。glibc関連を弄るのは初めて なので依存関係でしくじる気が凄くしますが取り敢えず 調べてやってみます。
791 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 16:56:35 ] oreilly.co.jp -- Online Catalog: 初めてのRuby ttp://www.oreilly.co.jp/books/9784873113678/ > 本書を最後まで読めば、「Rubyリファレンスマニュアル」を自在に読みこなし多様なRubyライブラリを活用して、 > 自力で高度なRubyプログラミングを習得するだけの基礎知識が手に入るでしょう。 > Ruby1.8及び1.9に対応しています。 ( ^ω^)おっおっおっ
792 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:02:16 ] 夢のような書籍だなw
793 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:14:19 ] たった224ページじゃ無理だろと思ったら >他言語でのプログラミング経験を持つ人を対象に なるほど。エッセンス部分だけ凝縮することに成功すれば あるいは・・・・・・
794 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:17:59 ] 魚を捕る方法を教える感じでなかなか好感が持てる 現状、9割くらいの人はオンラインのリファレンスマニュアル読んでるからな というか、リファレンスマニュアル自体にマニュアルの読み方の解説がないというのが情けない
795 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 17:19:59 ] まああるいはオライリーの人がフカしてるだけかもしれん これ目次ね ttp://www.oreilly.co.jp/books/9784873113678/toc.html
796 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:21:21 ] また安いなw 最近のオライリーはどうなってるんだ,あれこれ安すぎるw
797 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 19:42:21 ] 自分の部屋の本棚をオライリーで埋め尽くす・・・ そんな風に考えていた時期が僕にもありました・・・
798 名前:デフォルトの名無しさん [2008/06/11(水) 19:58:37 ] 2,310円?200ページとはいえ、オライリーにしてはえらく安いな
799 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:58:19 ] >>796 質が落ちたから
800 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 22:33:03 ] Learning Rubyの翻訳かと思ったら別の人が書くのか・・・ 当然のようにFlanagan x Matz本出してくるかと思ってたが マニングのMinimal Perlがオラから出てたりとかなんかカオスだな
801 名前:高野光弘問題 [2008/06/11(水) 23:58:28 ] takano32,TAKANO Mitsuhiroこと高野光弘(日立製作所社員、日本UNIXユーザ会幹事)が、 自身の『32nd diary』で公然と日立の機密を開示し、障害者差別発言をしている問題。 1981年11月12日 千葉県のディズニーランドのそばで誕生 2001年4月1日 千葉大学に入学 2005年4月1日 千葉大学大学院へ進学、日本UNIXユーザ会に入会 2007年4月1日 日立製作所に入社、神奈川県秦野市の寮へ 2007年8月22日 「ついに職場で人が倒れた」と公表 2007年11月13日 「情報漏えい」を言う上司に「死んだほうがいいよ」と暴言 2007年12月28日 「社内システムクソうんこ」と発言し、仕組みも暴露 2008年5月23日 機密漏洩問題について一応の謝罪 2008年5月26日 「給料泥棒とかうんぬん言われた」と謝罪を忘れて告白 2008年5月27日 「心バキバキ川田くん」と前日の発言者の名前を公言 2008年5月31日 「キチガイ」と日立のユーザーに障害者差別発言を連発 2006年10月27日(日立製作所に入社前に忠告されたこと) 「日記やコメントの投稿日時から勤務時間に業務外のことをしていることが判明」は 某社の某親会社が 2ch で祭られたように、NG です。 6月も勤務時間中に更新し続ける高野光弘君の『32nd diary』にツッコミをどうぞ
802 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:02:01 ] で、rubyとどう関係あるのか まだ訊いてないんだが?
803 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 04:22:05 ] Ruby信者はあらゆるスレにRubyの話題を持ち込んでいるのだから、 逆にあらゆる話題がRubyスレに持ち込まれても、身から出た錆だな。
804 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 06:59:14 ] RubyってJavaのクラスローダーみたいな仕組みはないのですか?
805 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 09:46:01 ] >>804 requireじゃダメなの?
806 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 10:07:44 ] 「Javaのクラスローダーの○○の仕組み」と限定して欲しいとこだな
807 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 11:17:08 ] .jarとか.classとかを実行時に読むのに相当するならrequire、 Classオブジェクトを名前な文字列とかで引っ張ってくるならModule#const_get
808 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:39:27 ] ネットワーク上からRubyスクリプトを受け取ってそれに記述されているクラスを動的に定義したいんだけど たとえば script = URI("host/matz.rb ").read p script #=> # class Matz # def hige # print "じょりじょり" # end # end eval(script) Matz.new.hige こんな感じで実現できるんだけど もっとスマートな方法は用意されてないの? ファイルには書き出したくない。
809 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:41:29 ] Ruby で、現在のプロセス名を得ることはできますか。 やりたいのは、現在のコマンドが /usr/bin/ruby なのか /usr/local/bin/ruby なのか /usr/local/ruby1.9/bin/ruby なのかを知ることです。
810 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:43:42 ] ローカルファイルシステム上にないファイルをスクリプトとして読み込みたいとかいう需要に対してスマートも糞もねーよ(w require の中身は eval だからそれで正しい動作だ 我慢しとけ
811 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 21:46:53 ] >>810 > require の中身は eval それは知らなんだ・・・
812 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:20:56 ] Rubyで、 メタ・プログラミングやコード・ジェネレーションを学びたいのですが、 その辺を詳しく扱っている書籍やサイトはないのでしょうか? ピッケル本とか読みましたけど、なでる程度しか載っていないので・・
813 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:55:27 ] >>812 今は懐かしい256シリーズの無道編でRaccをフィーチャー(というか宣伝)してる。 でも無知な俺は、Raccを本当に活用した例ってRDtoolしか知らない。 Rubyでメタプログラミングなら、強力なevalとmethod_missingで対応するDSLが主流だね。 ActiveRecordなんか、その最たるもの。 Rubyist Magazine -あなたのコードを添削します- jp.rubyist.net/magazine/?0011-CodeReview DSLについて、一部参考になるかも。
814 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 02:34:00 ] これとか。 ola-bini.blogspot.com/2006/09/ruby-metaprogramming-techniques.html
815 名前:デフォルトの名無しさん [2008/06/14(土) 18:53:09 ] プロパティを定義したいのですが、セッターがうまく働きません orz 以下のようにすると、2と表示してほしいのですが、5と表示されてしまいます。 どこが間違っているのでしょうか? #ruby -Ku class Calculator def initialize @unit = 5 end def unit=(value) @unit = value end def run unit = 2 puts @unit end end Calculator.new.run
816 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:55:36 ] self.unit = 2
817 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:55:59 ] self.unit = 2
818 名前:デフォルトの名無しさん [2008/06/14(土) 18:56:17 ] self.unit = 2 だとうまくいきました 何だこの違い・・・ ほかの言語のプロパティみたいに使っちゃだめなのか
819 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:59:52 ] わかるまでは attr_accessor :unit とだけ書け。
820 名前:デフォルトの名無しさん [2008/06/14(土) 19:02:42 ] この挙動はどういうことなんでしょうか? ドキュメントのどこかに記載などありますでしょうか? しかし、エラーなどでずに実行されるもんで子一時間悩んでしまいました >>819 セッターを拡張したいときには使えません あれは最小限のコードで実際のコードでは、最大値のチェックなどしています。
821 名前:デフォルトの名無しさん [2008/06/14(土) 19:04:05 ] >>819 試しに attr_writerを使ってみましたが、やはりselfがいりますね・・・。
822 名前:デフォルトの名無しさん [2008/06/14(土) 19:08:52 ] ああああ、わかた。 宣言が要らない言語だから、セッターのインスタンス省略すると ローカル変数への新規代入になるのか orz
823 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:11:24 ] >>822 Ruby以外はどんな言語を使ってるのか教えてくれまいか ちょっと興味があるんだ
824 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:17:11 ] これは筋のよさそうな自称初心者
825 名前:デフォルトの名無しさん [2008/06/14(土) 19:33:13 ] >>823 他にはDelphiを長年つこーてました。 Delphiだと属性でなくてプロパティなんですが、 上記コードのような形で問題なく、 selfなしでクラス内でプロパティに代入できます。 静的な言語のせいもあり、変数は宣言しないと使えないです。
826 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:04:10 ] なるほど、丁寧にありがとう 今度Delphiのコード見かけたら そこらへんちょっと気にして読んでみるよ
827 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:03:24 ] やさしいやりとりだな。いい感じ。
828 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:24:46 ] これは珍しく建設的なやりとり。
829 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:45:06 ] 初心者側に「ピンと来る力」があれば、話は俄然充実するんだよ。
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 なんかグダグダのまま頓挫してますね・・・。