- 1 名前:デフォルトの名無しさん mailto:sage [2010/01/28(木) 08:39:14 ]
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に完全対応していないためです。) 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の 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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 271 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:25:08 ]
- メソッドが10行超えたらほぼ確実にどこかおかしいな
- 272 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:27:46 ]
- >271
kwsk
- 273 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:40:56 ]
- 5行越えたらFワードって聞いたぞ
外人さんの過激派はさすがに煽り方が違う
- 274 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 14:43:07 ]
- まあ、メソッド多いほうがテストしやすいしな
とか言ってるとがっつりプライベートメソッドにされてたりする 気持ちはわかるが
- 275 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:33:30 ]
- ・メソッドが10行を超えることは望ましくない
・1行が80byteを超えることは望ましくない はRubyのコーディングルールとしてよく採用されている
- 276 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:44:58 ]
- 1行80bytesは理由があるからともかく
メソッド10行制限ってのはカルト宗教の世界だな
- 277 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:49:22 ]
- > 1行80bytesは理由があるから
ねえよ そっちのほうがただの宗教だ 悔しかったら「lessやgrepは色づけしないから色付けに頼った視覚効果のスクリプトを書くべきではない」レベルまで言え
- 278 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:52:33 ]
- 10行ルールってまじ?
標準ライブラリのほとんどがボツってこと貝?
- 279 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:53:24 ]
- メソッドが長いとリフレクションしにくい
- 280 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:57:01 ]
- >>277
あ、どっかでそれ読んだ 「お前の環境がヘボいだけだろ」とか心の中で突っ込んだ覚えがある 行数は、本来は行数そのものが問題じゃないよね 短い定義の適切なメソッドの作成を目指すべきというのが本論 その現実的な目安として、やっぱ5行…は過激派だが、10行くらいがポイントだと思うなあ これより長かったら分割手段を本気で考えたほうがいいかと
- 281 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 16:58:58 ]
- >>278
まあ基本的には めちゃくちゃベーシックな添付クラスだからごてっとするのも致し方ない面はあるが、 それでももうちょいこまごまとしててもいいとは思う 特にユーティリティ的なクラス
- 282 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:03:26 ]
- はいはい、なんでもサブルーチンサブルーチン(笑)
どんどん分割しよう。
- 283 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:07:32 ]
- 空行だらけのBlogみたいで読みにくいからやめてくらさい
- 284 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:18:27 ]
- あれはblogシステムでは「段落」としてるものを、ユーザーが「物理行」に使ってるためだろ
- 285 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:25:41 ]
- 横書き日本語なのに段落を前後空間空けとしてレンダリングするブラウザがアホなだけ
- 286 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:28:32 ]
- >>277
べつに誰も悔しくないと思うけどw
- 287 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:03:47 ]
- >>275-278
Railsのプラグインのソースを読む機械が多いが、 ちゃんと作ってるプラグインはモジュール化しまくり、メソッド分割しまくりだな。 なんでこんなところまでちゃんとモジュール化しとんねん!て思うほど
- 288 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:49:17 ]
- >>275-276
漏れは関数は25行以内(最悪でも50行程度)って教えられた 80x25のコンソールで一画面か、印刷して一ページのサイズ
- 289 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:53:55 ]
- >>277
それがあるんだよ たまに def hoge() p 123 end みたいに改行せずにエディタの80文字の折り返しだけで次の行へいったつもりでソース書く馬鹿がいるんだよ (っていうか昔の糞エディタだと2行に分かれていたものが1行に繋がってしまうケースとか良くあったんだ)
- 290 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:56:36 ]
- 10行君は初心者。
- 291 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:58:11 ]
- >>284
いや、実態は携帯で長ったらしくスクロールさせてページ切り替わると リロードが増えてアクセス数も増えるみたいな都市伝説があるらしい 仮に100歩ゆずってそれでリロードされるのが事実だとしても そんな方法でアクセス数増やしてなにが嬉しいのかと
- 292 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 09:59:30 ]
- >>289
emacsですねわかります
- 293 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:00:10 ]
- >>288
それは従来のプログラミング言語の話だろ わざわざRubyにそのまま持ち込む必要はない
- 294 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:01:16 ]
- Reekっていうコードチェッカを興味本位で使ってみたが
メソッド定義が10行以上だと「長い」と指摘してくるな
- 295 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:02:31 ]
- あんまり長くなるとインデントも深くなってくることが多いからな
すっきりさせるために短く書くのは悪いことじゃない罠
- 296 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:04:24 ]
- >>292
一太郎だろ
- 297 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:05:50 ]
- >>291
アメーバだっけ?芸能人ランキングのあるやつ 改行増やしてPV増やしてランキングの上を目指すんだって 本当かどうかは知らない
- 298 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:09:36 ]
- 資源の無駄遣いだなぁ
エコに反してるから改行撲滅キャンペーンした方がいいぞ
- 299 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:10:03 ]
- ああNON STYLEの石田だっけ?
- 300 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:10:45 ]
- とりあえず、お前らの権限で fileutils.rb とか net/imap.rb に
10行ルール適用してもらってよ。
- 301 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:32:50 ]
- >>291 >>297
あれはPVアップ界王拳の一種で、ケータイで見たときに複数のページに分割されるのでPVがあがるってやつ 芸能人もそうだけおdPV多いとアメブロはお金もらえる仕組みがある 最近PCの情報サイトでもページ分割するのちらほら見るよね、携帯向けじゃなくても あれPV上げるため
- 302 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:44:45 ]
- >>293
言語の話じゃなくて環境の話じゃね?
- 303 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:51:12 ]
- >>294
それ面白そうだなw 使ってみるか
- 304 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:12:10 ]
- >>303
やめとけ 警告多すぎて森に隠れる木の状態になるぞ igonoreの指定も面倒だし
- 305 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:14:38 ]
- 何事も原理主義はよくないと思います
- 306 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:16:32 ]
- めちゃくちゃ実利だと思うが…
- 307 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:26:24 ]
- 定義済みのクラス特異メソッドをprotectedにするのってどうすればいいんでせう?
class DB protected self.new super end end してもクラス外で普通にDB.newできてしまったorz
- 308 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:28:00 ]
- protectedにしてどうしたいの?
- 309 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:31:07 ]
- 具体的には、DBのインスタンスを作成する手段をDB.openに限定したいんです。
db.closeするのを忘れたくないんで。
- 310 名前:307 mailto:sage [2010/02/07(日) 11:40:07 ]
- class Hoge
private def self.hoge puts 'hoge' end end Hoge.hoge でも動いちゃいますね…… そもそもクラスメソッドをprivateにするのってどうすりゃいいんでしたっけ?
- 311 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:40:33 ]
- 「DBクラスいじるならopen使え」とマニュアルに大きな赤い字で書いておけ
それとブロックつきopenの提供で充分
- 312 名前:307 mailto:sage [2010/02/07(日) 11:42:15 ]
- www.gesource.jp/weblog/?p=473
吊ってきたいと思います。 スレ汚しすいませんでした。
- 313 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:48:31 ]
- >>258
素直にgnuplot使うのが手っ取り早い rgplot.rubyforge.org/
- 314 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:24:44 ]
- rubyのprivateにはいつも混乱させられる
うまい覚え方はないものか
- 315 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:44:35 ]
- 俺も覚えられてない・・・
privateがC++なんかのprotected相当なんだっけ?
- 316 名前:デフォルトの名無しさん [2010/02/07(日) 13:01:40 ]
- rubyのprivateは、
「任意のレシーバに対する呼び出しが出来ない」 関数っぽく書く呼び出し方のみが可能ってことね。
- 317 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:06:54 ]
- 「RubyでC++やJava再現しようぜ時代」の負の遺産
こんなオモチャ機能は1.9で無くなってもよかった
- 318 名前:デフォルトの名無しさん [2010/02/07(日) 13:07:32 ]
- privateよりprotectedのほうが理解されていないと思う。
- 319 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:17:06 ]
- >>317
少なくとも名称は変えるべきだったよなあ
- 320 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:23:05 ]
- >>316
つまり、 class Chinko private def manko end end の場合、 class Chinko内で def sounyu manko end のような呼び出しはOKだが、 chinko = Chinko.new chinko.manko は駄目なんだっけ?
- 321 名前:デフォルトの名無しさん [2010/02/07(日) 13:29:10 ]
- ifの条件文のレイアウトのことなのですが、改行が問題になるケースってあるでしょうか?
if name == "foo" || name == "bar" #do something end ()や:が必須の言語ですと気分的にも安心なのですが、 Rubyではあまり改行してるの見ない気もします。 一応、上のコードは問題ちゃんと判定されているし、 条件文内の代入文もきちんと評価されていますが、どうも不安です。 条件文の後にthenを入れておけば確実なのかなとも思うのですが・・・
- 322 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:30:37 ]
- マニュアルくらいは読め
Rubyのprivateは単に見栄え上の判断しかしない
- 323 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:33:43 ]
- >>321
カッコ書いて条件部分を式にすればいいじゃん 時々、カッコ書いたら死ぬ病の人が紛れ込んでるんだけど、そういう人は Ruby 使ったら駄目よ
- 324 名前:320 mailto:sage [2010/02/07(日) 13:36:27 ]
- こんなん書いている間にマニュアル読めよ、試せよという感じですね、すいません。
chinko = Chinko.new chinko.manko は private method `manko' called for #<Chinko:0xxxxxxx> (NoMethodError) で駄目ですね。 tansyou.send :manko みたいにsend経由だとOKなんですね。
- 325 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 13:37:53 ]
- 質問させて下さい。
たまにブログなどで見かけるように、 puts 1 + 1 # => 2 のように、出力結果をコメントで文の右に追加してくれるスクリプトがあったと思うのですが、 どなたか御存知ありませんか?
- 326 名前:325 mailto:sage [2010/02/07(日) 13:41:06 ]
- >>325 ですが、自己解決しました。
xmpfilter でした。 「ruby 実行結果 コメント」で検索したらでてきました。 xmpfilter で Ruby のコードに実行結果をコメントに表示 | すぐに忘れる脳みそのためのメモ jutememo.blogspot.com/2008/06/xmpfilter-ruby.html eigenclass - xmpfilter: automagic Test::Unit assertions/RSpec expectations and code annotations eigenclass.org/hiki/xmpfilter
- 327 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:13:27 ]
- クロージャとプロシージャの違いがわからないのですが…
sortメソッドを使うときに、a.sort{|a,b|a<=>b}とか書きますよね。この場合はどちら?
- 328 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:18:41 ]
- そんな小難しい外の用語を使わずに、ブロック引数、でよい。
- 329 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:38:31 ]
- クロージャとプロシージャは別概念
クロージャは生成時の情報(コンテクストと呼ばれる)を閉じ込めて保有するオブジェクト及びブロックの総称 一般的にbindingメソッドを持つ 例 Procインスタンス, Bindingインスタンス, ブロック プロシージャは手続きオブジェクト及びブロックの総称 一般的にcallメソッドを持つ 例 Procインスタンス, Methodインスタンス, ブロック >>327の例の場合 ブロック生成時の情報は特にブロック内に閉じ込められていない。 だからクロージャとしては使われていない。 もっぱら手続きを実行するためのブロックなのでプロシージャとして使われている。 クロージャの例 def hoge var = "hoge" Proc.new{var} end closure = hoge #p var #=> undefined local variable or method `var' p eval('var', hoge.binding)
- 330 名前:329 mailto:sage [2010/02/07(日) 15:41:57 ]
- MethodインスタンスではなくUnboundMethodインスタンスか
- 331 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 16:02:44 ]
- 説明は
「Rubyではコンテキスト情報の保存にBindingクラスのオブジェクトを用いる」 でいいじゃん それ使えばコンテキスト依存の処理になるからおおむねクロージャだ 使わない(使わなくてすむ)ならただのプロシージャ(可搬性のある処理のかたまり)
- 332 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:28:39 ]
- 2年前に書いたスクリプトを流したら90秒もかかった
当時は14秒で終えてたのに
- 333 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 21:35:39 ]
- いつどこでどのように流されたんですか
- 334 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 23:54:49 ]
- 実行することを流すと言います。
- 335 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:08:40 ]
- スパゲティコードをまるでソウメンのように流すのですね
- 336 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 00:24:48 ]
- そうです。まさにスパゲティです。
- 337 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 01:23:06 ]
- ためしにVMware上のUbuntuで動かしたら2.4秒だった
- 338 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 07:43:24 ]
- IronRuby 6.4秒
- 339 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:16:30 ]
- Windows版Ruby 1.8 -> 1.9で
テキストモードでのファイル読み込みが10倍ほど遅くなってるのでそのせいか? 読み込み時のエンコーディングをASCII-8BITとかにしてもさほど変わらんので universal newlineとかいう改行コードの差異を吸収してLFに変換するのが遅いのだろうか バイナリモードで読んでからforce_encodingすると1.8と同程度になるよ 自分は趣味程度にしか使ってないので困らないけど 巨大なログを処理する人とかだと、地味にいやな性能劣化なんだろうな
- 340 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:34:44 ]
- 日英辞書テキストのEDICT(SJISに変換済み、5.3MB、10万行)を Mingw版Ruby 1.8.7p160 で
ruby -e "open(ARGV.shift,'r'){|f|f.read}" edict すると 0.42秒 Mingw版Ruby 1.9.1p0 では107秒 ちょっ、200倍遅いorz ruby -e "open(ARGV.shift,'rb'){|f|f.read.force_encoding('cp932')}" edict バイナリモードで 0.46秒 ruby -e "open(ARGV.shift,'rb'){|f|f.read.force_encoding('cp932').gsub!(/\r\n|\n|\r/,?\n)}" edict などと改行変換もすると 3.72秒 K6-2 450MHzのWindows2000なんでちょっと遅いし、Rubyも最新のじゃないですが
- 341 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:35:14 ]
- >>339
migw32使え
- 342 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 18:59:11 ]
- 10倍ですか...
へんに差異を吸収しようとせずエンコーディング毎に処理して欲しいもんだ コンパイラが古いとはいえ、まさか仮想環境や.NETに負けるとは思わなかった。 ↑↑↑はパズル問題を解くスクリプトで読み込みはほんの少し 書き出しは途中経過も出してるんでかなり多い 1.8.6: 220"、1.9.0: 14"、1.9.1: 90"
- 343 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:06:59 ]
- スクリプト foo が多重起動しないようにするにはどうやればいいですか。
後から起動した方をすぐに殺したいです。
- 344 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:23:33 ]
- ファイルを利用して排他的にするとか。
あまり好きじゃないけど。
- 345 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:27:46 ]
- ロックファイルがなかったらロックファイルを作る
ロックファイルがあったら「起動中です」と言ってexit(1)する スクリプト終了時にロックファイルを消去する こんなのがいちばん簡単だと思う 強制終了でロックファイル消去プロセスを飛ばすと使用者層によっては悲惨だけど
- 346 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:34:15 ]
- migw32どこ? 古いのしか見つからない
- 347 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 19:44:48 ]
- mswin32(ActiveScriptRuby、gem対応の標準)
ttp://www.artonx.org/data/asr/ mingw32(RubyInstaller/OneClickInstaller、gemの古パッケージはバイナリがなくDevelopment Kitが要ることも) ttp://rubyinstaller.org/download.html とりあえずp0 の1.9.1 は産業廃棄物なので使って文句言うの禁止で
- 348 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:42:28 ]
- ありがとうございます。ちょっとだけ速くなりました。
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mswin32] time:4.984375 ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] time:3.421875 IronRuby 0.9.3.0 on .NET 2.0.0.0 time:5.890625 ruby 1.9.1p243 (2009-07-16 revision 24175) [i486-linux] ※VMware time:2.392678477
- 349 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:03:02 ]
- まねしてもいいよ。
unless [ exp1, exp2, exp3, exp4, ... ].include? false puts "true!" end
- 350 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 23:22:03 ]
- >>349
釣りだよな? Enumerable#all? Enumerable#any? と同じ結果を望んでるなんてことないよな?
- 351 名前:sage [2010/02/10(水) 00:13:38 ]
- f=lambda{|x,y| x+y}
["sa","ka","wa"].map(&f.call(_,"by")) みたいに、第二変数の束縛を先にやってから procをつくりたいのですが、どうすればいいのでしょう? map{...}はなしで。
- 352 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:18:31 ]
- カリー化したいんでしょ?
おれそれ諦めた。
- 353 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 00:26:48 ]
- こう?
f=lambda{|x,y| x+y} p ["sa","ka","wa"].map(&f.curry.call("by"))
- 354 名前:sage [2010/02/10(水) 00:50:33 ]
- お!できてる。
順番は逆だったけど、あとは適当に。
- 355 名前:デフォルトの名無しさん [2010/02/10(水) 00:59:39 ]
- class Proc
$__ = Object.new def cut(*args_part) Proc.new{| *args | call(*args_part.map{| arg | arg == $__ ? (args.shift) : arg }) } end end f=lambda{|x,y| x+y} p ["sa","ka","wa"].map(&f.cut($__,"by")) # => ["saby", "kaby", "waby"] まったく勧めないけど一応
- 356 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 08:30:40 ]
- >>341
mingw版入れろはわかるけど面倒だからパッケージ作ってくれ頼む。RubyGemsとか入っているヤツ Windowsはaptとかねーんだよ 外人でもいいけど、こういうのはどこに頼めばいいの? ActiveScriptRubyに上書きしてもいいのかな >>347 OneClickInstllerも1.8系は1.8.6だから古いよね
- 357 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 08:32:02 ]
- しかし、RubyInstallerってmingw32版だったのね
そして、1.8.7版が来てる!!!サンクス 問題はアップデートだな。OneClickInstaller時にアップデートしようとしたらアンインストールしろ!とか言われたからな・・・
- 358 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 08:59:35 ]
- Ruby Installer はかなり昔から mingw32 だった
>>356みたいな人間が発展を阻害する
- 359 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:26:54 ]
- 阻害してるという意味ではどっちもどっちだと思う
まー、mingw32は正式版じゃないからな 正式版だけ使いたいという人にはお勧めしない 現状の正式版は中身のRubyが全然「安心の正式版」じゃないけどな インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う
- 360 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:44:31 ]
- >>359
正式版ってなによ どこにそんなことが書いてある
- 361 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:51:15 ]
- 解読してみた
まー、(現在公開されている)mingw32(のRuby Installer)は(まだrc2で)正式版じゃないからな (rcやベータではない)正式版(のインストーラー)だけ使いたいという人には(まだ)お勧めしない 現状の(唯一の)正式版(として公開されてるOne Click Installer)は中身のRuby(の本体のパッチレベル)が(古くて) 全然「安心の正式版」(と言えるような組み合わせ)じゃないけどな インストーラーが未熟でも中身のRubyがバグフィックスされてることのほうが重要だと思う こんなんでどう
- 362 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 10:03:30 ]
- わかりやすい
- 363 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 13:07:09 ]
- >>361
thanxよくわかったw
- 364 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:00:13 ]
- MSVC版では出来なくてmingw版だけで動く機能
あるいはその逆で どんなのがありますか
- 365 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 18:06:00 ]
- そーゆーもんはない
機能で分かれてるわけじゃない わかんなかったら mswin32 である ActiveScriptRuby 使っとけ
- 366 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:23:29 ]
- インストーラーとしてはmingwよりone click installerの方が正式版のため信頼できるが、
中身のRuby自体はmingwの方が新しい って理解でいいの?
- 367 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:28:38 ]
- thread とか lock とかは mingw の方が信頼性があるような気がする
- 368 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:31:35 ]
- >>367
GIL使ってる限り信頼性は変わらない
- 369 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:38:19 ]
- OneClickInstallerはインストーラー含めて正式版が作られてる
RubyInstallerはまだインストーラー含めてrc版(ベータと正式の中間) OneClickInstallerで入るRubyはmswin32で作られている RubyInstallerで入るRubyはmingw32で作られている mswin32は従来のタイプの「Windows版Ruby」でgemライブラリでは確実にバイナリがある 古いコンパイラで作ってあるせいか、環境によってはなぜか動作が遅いことがある どうせアップグレード時は全消し推奨なんで面倒の少ないこっち使って慣れろという説も根強い mingw32は今後主流になるもので最終更新日が古いgemライブラリではバイナリ自前コンパイルも 動作速度が遅くなる報告は少ないが、gemバイナリの自前コンパイル強要はめどい サイトのDevelopment KitをRubyを標準インストールしたディレクトリに上書きコピーすればいいだけだが あと、mingw32をWindows環境のRubyの印だと認識してないスクリプトがまだあるので手直しが要ることも
- 370 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 19:58:39 ]
- あああ、なんかわけわからないことに
mswin32 版を使う場合は ActiveScriptRuby のほうインストールしろ OneClickInstaller 使って数年前の Ruby をわざわざいまさらインストールする必要もない ■ とにかく迷いたくない普通の人 … ActiveScriptRuby 面倒がない mswin32 版のみ提供、ActiveTcl を別途入れると tcl でウィンドウも描けるぞ(要Tcl言語知識) ttp://arton.hp.infoseek.co.jp/indexj.html 1.9.1 を使いたい人は ttp://www.artonx.org/data/asr/ の「Ruby-1.9.1-p数字 Microsoft Installter Package」を使わせてもらえ なに、自分のとこだけ妙に処理が遅い? 宝くじ並の外れ環境だからマシン買い換えろ ■ トラブっても自分で手直しする根性あるから遅くなる可能性ないほうがいい … RubyInstaller 古いコンパイラ製ではない mingw32 版の提供がメイン ttp://rubyinstaller.org/download.html 古いgemパッケージでWindows環境だとみなしてくれずにコンパイラが走って「make がない」と言われること有り それを乗り越えるためにコンパイラ環境が入ってる「Development Kit」をインストールしておくのを推奨 ttp://wiki.github.com/oneclick/rubyinstaller/development-kit 上記解説にもあるが、RubyInstallerの標準ディレクトリ構成の場合は上書きだけでよい(設定ファイル記述不要) 7zip でないとダウンロードしたファイルを展開できないので注意 スクリプト内での条件分岐で「mingw32」をWindowsとみなさないものが稀にあるので、それは手動で書き換える必要あり
- 371 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 20:08:43 ]
- 長い
・ 初心者は ttp://www.artonx.org/data/asr/ の 1.8.7 だけ使え、トラブル起きたらここで聞け でいいじゃん
|

|