テンプレ以上? 長っ
1乙 確かにテンプレ長いなw
GJ! AA(ry
GJ
そろそろ初心者スレ含めた2chのまとめwikiが欲しい所
>>10 なにかまとめることあるの?
初心者スレのまとめWikiは二つぐらい立ってたけど、どっちも動き止まってたような
・ インクリメント演算子が欲しいならMLへ ・ 現在のRubyをけっこう改変しないと実装できないのでうまい実装案を持った上で説得すること ・ 「よくわかんないけど便利だから」とか禁止
>>10 1スレでいいから自力でまとめてみ
まとめることが特に無いことに気づくから
やったことないと何かありそうに感じるだけだ
>>14 そりゃあんたはRuby関連の場所が荒れたり揉めたりすりゃ奇声あげて喜ぶだろうけど、たいていの人はそうじゃないんで
スレ番号++
いい年して他にやることもなくただ2chで相手を否定することで寿命を削り続けてる惨めなオッサンばっかりだね
なんでそんな必死なの?
まあ荒らしもスレのにぎわいって言うし、話題ないよりいいんじゃね。 それより、ちょっと前から職場のSparc Solarisでcontinuationが落ちるように なってしまった。 hogefuga@darkstar:~/Source/ruby$ ./ruby -I .ext/sparc-solaris2.9 require 'continuation' puts callcc {|c| c.call :ok} -:2: [BUG] Segmentation fault ruby 1.9.0 (2008-10-08 revision 0) [sparc-solaris2.9] -- control frame ---------- c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :callcc c:0003 p:0022 s:0007 b:0006 l:000924 d:000924 TOP -:2 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited c:0001 p:0000 s:0002 b:0002 l:0008c4 d:0008c4 TOP --------------------------- DBG> : "-:2:in `callcc'" DBG> : "-:2:in `<main>'" 異常終了 Sparc Solarisってもうサポートされないんだっけか?
>>19 ruby-devかredmine.ruby-lang.orgへGO!
>>19 うちでは動いた。報告するなら環境を詳しく書いた方がいい。
$ ./ruby -v -rcontinuation -e 'puts callcc {|c| c.call :ok }'
ruby 1.9.0 (2008-10-11 revision 19759) [sparc-solaris2.9]
ok
言語内 DSL とかで、 class Hoge def hoge; "hoge" end; end def foo(&block) a = Hoge.new a.instance_eval(&block) end foo { hoge } # => "hoge" みたいなのは良くあるけど、このやり方だと例えば Shell#transact みたいな、 instance_eval を使う method のブロック内では foo { Shell.new.transact { hoge } } # => NameError: undefined local variable or method `hoge' for #<Shell:0x7fea4b5e00c8> となって期待通りに動いてくれない。こういう場合ってどう対処したら良いんでしょうか?
質問。ほんのちょっとだけ違うメソッド定義を大量に定義したい場合。 「ハッシュやらブロックやら正規表現やら多用してメソッド定義をevalで作る処理を直に書く」 と 「メソッド定義を書き出すスクリプトを別途作ってできた大量の(代わり映えしない)メソッド定義をコピペする」 はどっちが妥当? どうせRubyスクリプト遅いよね、とか厭世観をもって前者を使うべき?
%w(one two three four five).each do |str| eval("def #{str}; puts \"#{str}\"; end") end と書くのと、スクリプトで出力させたのを # generator =begin %w(one two three four five).each do |str| puts "def #{str}; puts \"#{str}\"; end" end =end def one; puts "one"; end def two; puts "two"; end def three; puts "three"; end def four; puts "four"; end def five; puts "five"; end とコピペするのとどっちがいいかという話? 前者でいいんじゃないの。Rubyに文字列いじらせるのを躊躇ったら駄目 require の中身は eval だと 3回唱えて素直にわかりやすさ優先で eval 使え
「ほんのちょっとだけ違うメソッドを大量に定義したい」 って辺りで、設計がマズい気がヒシヒシするぜ。そもそも別メソッドにすべきなのか、それ。
クックブックでは前者のやり方が書いてあった気がする
まず大量のメソッドを定義しないといけない設計が変だと思う 分類したり、sendとか上手く使う構造にすべき。
evalを無闇に使うより、もうちょっと穏やかな方法はないかい? class C %w(a b c d e).each { |s| define_method(s) { |x| p s * x } end C.new.d 5 # => "ddddd"
統一メソッドと引数で区別するのは見栄えあるいは動作としてめんどくさいからこそ 単一のメソッドをたくさん定義するんじゃないかと思うんだがどうか
「たくさん」の量にもよるな… 10個くらいならevalで作りたくなる気はわからんでもない 100個ならたぶん何かが間違ってる
>>23 >foo { Shell.new.transact { hoge } }
># => NameError: undefined local variable or method `hoge' for #<Shell:0x7fea4b5e00c8>
foo { this = self; Shell.new.transact { this.hoge } }
とかではどうでしょうか。
たぶんお望みのものとは違うと思いますが。
self が変わってしまうとどうしようもないので、こんな方法ぐらいしか分かりません。
「バカが往く」ってめっちゃ上から目線だよな 他人がdisられてる時は対岸の火事というか、笑って読んでられるが、 いざ自分に矛先が向くと超ムカツクわ、あれ。
>>23 > となって期待通りに動いてくれない。
そんなもの期待するのが間違い。
env.instance_eval { ... } として用意したメソッドを中の環境で使わせるのは
DSLの文法を構成する機能を与えるため。
その中でどこでも使える便利関数を与えるためじゃない。
>>23 は自分の実現したいものをDSLと考えない方がいいんじゃないか。
だから隠れたところでinstance_evalを使うなとあれほど何度も
まあまあ、そうえばるな。
40 :
33 :2008/10/13(月) 02:56:00
>>36 なるほど。すっきりした。ありがと。
僕が欲しいのはマクロだったんだな。
Ruby 1.9 > ARGF.class => ARGF.class なんぞこれ・・・ けし忘れ? complex.c:475: warning: ‘m_sqrt’ defined but not used Ubutu 8.10βのgcc 4.3.1からだと、 io.c:5574: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result などのwarningが頻発。あと、parce.cのコンパイルが死ぬほど遅い。
>>41 > なんぞこれ・・・
気にすんな。
定数にもしたくないし、無名クラスのままってのも嫌だったってだけだから。
> Ubutu 8.10βのgcc 4.3.1からだと、
> io.c:5574: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> などのwarningが頻発。あと、parce.cのコンパイルが死ぬほど遅い。
4.3.2だとどちらもない。
もちろん。邦訳の計画も一応あるらしい しっかしレビュー高評価だなあ。やっぱりバイブル扱いされるんだろうか
巻末に /:|) と書き足すことで先生の仕事はおしまいです。
ていうか基本的にRuby本体に関する情報そのものは既に出揃ってるだろ 目新しいこと書かない限り重複は免れない
初期のruby本はrubyを無視していきなり オブジェクト指向の話になるのが面白かったんだが。 そういうのは期待できないかな。
フラナガン本はwhileをイテレータで実装とか変態的なことも載ってるよ。
ホスト名見て積極的に読む気なくした 誰か別の人がレビューしてくれるまで待つ
moongift嫌いなのか
自分が使ってるソフトウェアが紹介されれば、あんまりアテにしてない人がいる理由が実感できるかも 週に曜日を決めて2回とか、そういう「量より質」の比較レビューにあのパワーを注ぐことを望みたいところだ 「そんなんreadme見てソフト名でググればわかるよ!」と言いたいことが何度か
Open Alexandriaは好きだった俺
質より量を望む人間にとっては、MOONGIFTのスピードと簡潔さはありがたい 知らなかったソフトウェアをいろいろ発見できるから
知ってる情報が役に立たなかったから知らない情報も読みたくない。 不思議な人もいるもんだ。
>>56 気にするな
柔軟性の足りない人、もしくは記事見る時間が惜しいくらい忙しい人なんだよきっと
外人さんが「1.9 compatibility デキタ!」 とかうるさい うんうん Syntax Error 起こしてた場所は消えてるね でも 1.9 互換を謳うなら $KCODE 依存のコピペコードは直そうね 128バイトで世界を表現できる住人はこれだから困る
60 :
デフォルトの名無しさん :2008/10/15(水) 13:03:41
>>59 おまえだって、右から左に書く言語のことなんか考慮したことないだろ
61 :
デフォルトの名無しさん :2008/10/15(水) 16:55:33
テキストファイルから例えば"a"という文字を検索して、マッチすれば その前後に指定の文字列を挿入する方法はありますでしょうか。
>>61 初心者スレでつい最近そういう話題が出てた
#!ruby -pni.bak BEGIN{ Prefix = "pre" Suffix = "suf" } gsub(/a/, "#{Prefix}\\{Suffix}")
attr_reader :hoge? と実質的に書けない件をこっちに振ってみるテスト
Module#bool_attr_reader を自分で定義して使えばよし
ぎゃー このライブラリの次のバージョンから、動作もメソッドもめっちゃ変わるじゃん gem update でアップデートした人でテクニカルな使い方してた人は警告山盛りで涙目 まあ、公開ライブラリ作る人は最初から素直な実装をしようね (ライブラリが大きくなるとRubyでやれるオレカッコイイ独自実装は癌になる) というお話でした 今のメンテナが引き受ける前の作者が作った部分だな、これ…
話の趣旨には大いに賛成だけど、 ここは自業自得っぽくね? >テクニカルな使い方してた
外部ライブラリのメソッドをバグ回避目的以外で上書きするとか賭けだよね
バグ回避目的であってもモンキーパッチは賭けだよ。
式1 ? 式2 : 式3 式1の結果によって式2または式3を返します。 if 式1 then 式2 else 式3 end とまったく同じです。 ってあるけどさ、これどういう事? defined? String ? "OK" : "NG" => "expression" if defined? String then "OK" else "NG" end => "OK" 以下で確認。 ruby 1.8.2 (2005-04-11) [i386-linux] ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
>>71 優先順位の問題。
defined?(String ? "OK" : "NG")
(defined? String) ? "OK" : "NG"
>>71 演算子には優先順位というものがあるでな、式と書いてあったらとりあえず括弧でくくってみることじゃ。
>>72-73 なるほど、式の優先順位か!
おかげですっきりしたよ、ありがとう!
>>70 動作変更のメソッド上書きスクリプトを公開するより、バグ報告送ったほうが結局は手間がないことに最近やっと気づいた
バージョン1.1用からバージョン1.5用まで5種類くらい公開して、さすがにキレて1.6で修正入れてもらったとかそんな感じ
Matzの会社を財務分析してみたんだが。
http://d.hatena.ne.jp/AntiSeptic/20080704/p1 などと思わせぶりな言い方をするものだから覗いてみりゃ、
なんて事無い田舎の零細企業の財務諸表であって、面白くもなーんともなかったわけだ。
それにしても、この程度の収益で2007年度って、
あの会社にとっては多分空前絶後の景気のいい年だったはずだの
Rubyとゆー「鉱脈」があるだの言っているのは何なのだ。
Geekのヨタ話というのは、いつもこんなしょぼいスケールで行われているのか?
あそこの技術者の平均レベルは、他の普通の会社よりはずっと高いと思うって、
これじゃあ、技術なんてIT企業の収益とは何の関係も無いと証明しているようなもんじゃねえか。
そもそも、この会社が何をやっているのかがHPを見た限りではよく分からん。
要は受託開発だろ労働力を人月で売ってるだけだろマーケ屋がこねくりあげた横文字得意げに使ってなに悦に入ってやがんだコラ。
更には製品・サービス部門まであって、なにやら参考価格が書いてあるところを見ると、
多分にパッケージっぽい印象を受けるが、それでいて全体の粗利率が26%程度ではどうしようもないだろ。
あそこに入りたい人は、損益計算書も注意して見ておくといい。まぁこれはどんな会社でも同じだけど、
ここを見るといろんなことが見えて来る。株価指標を計算してみるのもいい(非公開会社でもね)。
それもう散々げっぷが出るほど既出
懐かしいコピペだね
79 :
デフォルトの名無しさん :2008/10/22(水) 20:17:00
定数探索の規則が謎なんだけど、これどういうこと? module Foo module Bar; end end module Foo module Baz p Bar # => Foo::Bar end end module Foo::Baz p Bar # => uninitialized constant Foo::Baz::Bar (NameError) end
module式の1つ外側に探しに行ってるように見える
Foo::Baz のほうはネストの外側に Foo がないので探索にひっかからないのよ。 module Foo module Bar; end end module Foo module Baz p Module.nesting # => [Foo::Baz, Foo] end end module Foo::Baz p Module.nesting # => [Foo::Baz] end
それはModuleだからで、仕様?
classでも同じで、仕様。
日本語spam filterでrubyで書かれたものがあるそうなのですが 読みやすいコードになっているものなのでしょうか
あのへんはジャンル的に小難しいから、言語レベルはあまり影響しないんじゃないかな 理論を知ってるかどうかに依存すると思う
RubyでUnicodeの正規化(NFKDだとか)するにはどうすればいい? ちょっとぐぐってみたけどこのライブラリのこの関数でできるよ!みたいのが わからなかった。 1.9はきっと標準でできるのだろうけど、1.8でどうすればいいか知ってたら教えて。
$KCODE = 'u' require 'active_support/multibyte' ActiveSupport::Multibyte::Handlers::UTF8Handler.normalize("Python")
>>87 それは具体的には何をやってくれるわけ? normalizeというだけじゃ特定できんよ。
ドキュメントを読まないバカは死ねばいいのに
>89 > 「UTF8に正規化」って言ったら特定できるだろ 何に特定できるって?
英語読めない人と英語読めるのにドキュメント読まない人がいるんでしょうか?
うっかり「特定できる」なんつってしまって引っ込みがつかないバカがいるだけ。 しかもわざわざ余計なこと書いて自分で傷口広げてる。
>>94 ドキュメント読めば特定できるけど,そういう意味じゃないんか?
Returns the KC normalization of the string by default.
まあ自分は88でも89でもないしどうでもいいんだけど
ただただ正規化メソッドが用意されてることに驚いた
オプションで正規化方法を指定できるんだな。
ファイル処理について質問です。 open(filename){|f| puts f.readlines[1, 10] puts f.readlines[20, 30] } とすると、readlines[20, 30]がnilになります。 原因は、readlinesメソッド終了時にブロック f が閉じられるからのようなんですが、 readlineメソッド呼出し後にブロックに戻ってくる方法はあるのでしょうか?
>>97 >IO が既に EOF に達していれば空配列 [] を返します。
というか、再利用しようよ。
open(filename){|f|
a = f.readlines
puts a[1, 10]
puts a[20, 30]
}
IOは読み込み位置を覚えていて、次はその続きから読もうとする。 readlinesは最後まで読んでしまうから、覚えてる位置は「最後」だ。 最初から読み直したいのなら、f.rewindを呼んで巻き戻す。
>複数行コメント >#| から |# までがコメントです。ネストさせることが可能です。 いいなあ
rcairoのpango関係のメソッドはどの資料を見ればいいの? rcairoにもruby/pangoにも記述なさそうなんだけど。
Ruby方面には資料がなさそうだったのでPango本体のドキュメントみてメソッド名を当て推量した。
よくわからんがソースは読めないのか?
107 :
デフォルトの名無しさん :2008/10/28(火) 16:43:15
Ruby 1.9.1 preview 1 アゲ
確かに筋は良さそうな感じはする でもmatzってLisp系の強力なマクロには懐疑的じゃなかったっけ?
マクロはなんでも出来すぎるとか言ってたね。 でも昨今のDSLブームでRubyの文法の融通きかなぶりも認識してきた節もあるので 改宗したのかも。
Rubyはむしろ融通効き過ぎなぐらいだと思うが
マクロ最強! #define ++ += 1
Lispは「融通がきく」 Rubyは「融通をきかせてる」
Cyanのコメント
CLと同じでしょう。 =begin/=endでいいじゃんとは思うけど
>>110 そりゃプログラミング言語として与えられたままを使うだけに限った話。
DSLを考えるときには全然効かないんだよ。
引数がStringだった場合はキーを付け足してHashにする(param = {:name => param} みたいな) 引数がHashだった場合はてきとーにキーを見てぶん回す という最近よくある感じの処理をする場合、引数がStringかどうかみたいなのはどうやって判定すべき? is_a? とか instance_of? とか
is_a? kind_of?
www.rubyist.netおつとる
>>120 最近では respond_to? で、必要なメソッドの有無を調べるのも流行らしいぞ
each の存在を調べて String#each の存在でハマるのはもうお約束の域 そして 1.9 対応で悩む
case arg when String when Hash
実体が is_a? でも、そう書くか case-when で書くかは大きな違いだ
引数に(key => value)で特別扱いされるのはHashなんだから is_a? 使うにしてもHashか、そうでないかっていう分岐にしたほうがよさげだと思う。
CodeZineにPythonカテゴリがないのっておかしくね? お前らなんか妨害工作してるだろ。
実体は === だろ
StringとHashでそれぞれ違う処理するなら俺も
>>125 にするかな
でも
>>120 の場合ならこう書く
param = {:name=>param.to_s} unless param.kind_of?(Hash)
すまん、クラス、モジュールの === は kind_of?(つまり is_a?) と同じだった
p 133.id
=> nil\(^o^)/nil
ext/dlのバグ修正、ruby-1.8.xにも入れてくれないかねえ。
どのrevision?
139 :
デフォルトの名無しさん :2008/10/31(金) 23:47:40
レポジトリでみてみたけど違いが生じたのがsubversionへの移行前らしくてリビジョンわかりません。 問題は1.9ではNUM2PTRになってるものが1.8.xの方はDLNUM2LONGのまま残ってて アドレス等の値を符号つき整数として扱ってしまっているところです。 これがために1.8ではDL::Symbol.newなどに最上位ビットが1のアドレス値を直接渡せません。
1.9のってruby/dl2でしたっけ? 低レベルな書き方したら1.8と互換性無くて… ruby -rdl -e "DL.dlopen('user32')['EnumWindows', '0PL'].call( DL.callback('IL'){|hwnd2| puts '%08x'%[hwnd2];-1}, 0 )" みたいなの あと、mingw32版のruby1.8だと上のが落ちるんですよね mswin32版ruby1.8だと大丈夫なんですけど
141 :
デフォルトの名無しさん :2008/11/01(土) 01:35:20
1.9で1.8と違う添付ライブラリってリファレンスマニュアルとかドキュメントあるんですか?
Ruby会議での青木さんの話を聞くと、 来年のRuby会議までには標準ライブラリのリファレンスが完成しそうなんだとか というわけで来年には手が回るんじゃ…… そういえば、Programming Rubyの第三版に1.9対応リファレンスが付くのかね?
ほんと青木さんとるりまチームには頭が下がるな。 頑張って欲しい。
なにさまだよ
るりまです
そっか、「がんばって欲しい」は「ご苦労さま」と同じか。
147 :
デフォルトの名無しさん :2008/11/02(日) 13:38:43
>>148 試み自体は面白いと思うんだが
実際にプラグインで、どんな楽しいことができるのかピンとこない
分野辞書をオンラインインストールとか
アドレス帳を叩いて名前の読みから住所とか引っ張れるのかな。
>>148 動作確認済みのPerl 、Ruby について
【Ruby】
Ruby 186-25
こんなバージョンのRubyは存在しないwwww
>>152 One-Click Ruby Installerのバージョンだね
perlもActivePerlなんだし、そう明記すれば問題ないのに
>>153 それはないだろwww
186-25なんて1.8.6がリリースされた直後のバージョンでまともに動かなかったはずwww
ruby 1.9.1 preview1が出たけどruby-langのニュースにはならないの? なんでもいいから更新しないと停滞してると思われるよ
previewやRCは下手に話題にすると変な人が手を出してネガキャンになってしまうので…
しかしユーザーが増えないとバグが取れて安定しないような
変な人はバグ報告なんてしません Firefoxのアルファやベータが一般人に広まっても一般人はバグ報告などしなかった ある一定以上の経験と知見を持った人間が使ってくれないとバグ報告は増えないというのが悲しい事実
161 :
159 :2008/11/04(火) 22:32:07
なるほど。失礼した そういえばFirefoxも普通のソフトになっちゃって、 コミュニティが苦労してるなんて話を聞いたような聞かないような
1.8系列って1.8.7でディスコン?いつまで{メンテされる|新しいリリースが出る}の?
>>160 いいかげんな報告が増えるだけでも困るけどな
「自分の身に起こったことを、簡潔かつ客観的に説明する」 というのは、実のところ選ばれた一部の人間にしかできない行為だからな。
そのへんは学校で習わないから仕方がないねえ 大学でいいゼミやいい一般教養にぶち当たると訓練になるんだけど
見知らぬ人間に道を尋ねられて「私の家から北に100mです」って答えるみたいな説明を 本気でする奴がいるからな。
そんな極端な底辺を例えに出す奴もどうかと思うがな
>>167 「極端な底辺」ではなく、「まずあり得ないやりとり」としての例ね。
現実に居ることはまったく想定してない。
状況Aにおいて頻繁に見られる性質Bを、Bがまず起きない状況Cに置き換えて
「状況Cでいうなら、つまりこういう光景に等しいよね」と説明することで、
状況Aの中だけで語ってると、頻度が高すぎてそのダメさが大したことじゃないように思えてくる
ニュアンスを消したかった。
なんだ、いないのか。 ちょっと面白いと思ったのにw
バグレポートする際に たとえ話はなんの役にも立たない
しかしつまらんスレだな
ActiveRecordってどんな基礎理論から出来てるの? O/Rっていってもいくつか種類とか制約あってそれぞれ 違うようですが
>>171 Rubyがつまらないんだからしょうがない。
Ruby/Pangoって絶賛放置中?
>>172 マッパーそれ自体に理論ってあったっけ?
RDBとオブジェクト指向のモデルにはズレがあって・・・・・・ってな話は
オブジェクト指向データベースの書籍とかで取り扱われてたような記憶がある
やっぱりこれファウラーさんが最初なの? Railsの影響でPHPでもしばらく前にブームってたが、今ひとつわからんので放置 こればっかりではないが、連想配列のある言語と、Java等のオブジェクトでの 理論・概念の融合が今ひとつ上手く行ってない感じがして仕方がない
はいはい
Django使ってる人いますか?
ふつうGAE使うだろ
> これ何ですか? 大雑把な疑問だなオイ 書いてあるそのまんまだと思うぞ 自分の環境が該当するものでないのなら無理に導入しなくてもいい 1.9サポートって言っても文法エラー取り除いた程度だと予想
ついったーの様子だと、 とりあえず1.9で動くようにした程度かな。 twitter.com/shugomaeda
mod_ruby も、スクリプトごとにRubyインタプリタ起動すれば使う気になるのに。
>>182 > 1.9サポートって言っても文法エラー取り除いた程度だと予想
もっといろいろ大変だったんだよ
つーか昨夜リリースできたのは驚異的
RubyキモいよRuby www
>>184 mod_rubyの意味ないじゃんじゃん?
>>184 >mod_ruby も、スクリプトごとにRubyインタプリタ起動すれば使う気になるのに。
それはCGIのことか?
190 :
184 :2008/11/09(日) 16:16:31
>>189 スクリプトというか、アプリケーションごと?
インタプリタはリクエストごとに起動するわけではなく、
Apacheとともに常駐するんだけど、
全部のスクリプトでそのインタプリタを共有するわけじゃなくて、
スクリプトごとに固有のインタプリタがあると良い。
グローバルな状態をアプリケーション単位で分けたいということですかね。
>>186 が言うようにMVM待ちかなぁ。
FastCGI等のプロセス常駐じゃだめなの? よくわからんけど
FastCGIはたしかにスクリプトごとにパーシステンスプロセスを起動するね。
CGIと違ってリクエストごとには起動しない。
>>184 のやりたいことはこれかなあ。
Ruby 的には mod_ruby と FastCGI とどっちがおすすめなんでしょうか。 mod_ruby って実は mod_php や mod_perl とかと相性悪かったりしない?
rubyは汎用なんでおすすめApacheモジュールとか言われても困るんじゃないの。 オススメはwebrickかmongrel
196 :
184 :2008/11/09(日) 22:10:00
うん、だからFCGIやmongrel使うことになって、 mod_ruby を使いたいんだけど使えないなあと。 ほんとは mod_wsgi みたいに mod_rack が欲しい。
Phusion Passengerってのが別名mod_rack/mod_railsらしいけど詳細は知らない
アプリがrackやrailsだったらpassengerが希望のものかと。
>>148 日本語SPAMフィルターでrubyのやつがあったね
そういえば
rubyのコードを書けるコマンドラインのリネーマーツールってない? rren -recurse *.txt "$_.upcase!" で aaa.txt bbb.txt が AAA.TXT BBB.TXT になるようなのでもっと至れり尽くせりなやつ。
201 :
デフォルトの名無しさん :2008/11/13(木) 14:13:02
>>200 > もっと至れり尽くせりなやつ。
単に ruby でワンライナー書くのが一番至れり尽くせり。
定型処理には、ワンライナーは不便かもしれない。 rename [-g "グロブ記述"] "正規表現" くらいのインターフェイスでコマンドを書けばいいんじゃね?Rubyで。
for filename in *.txt; do echo $filename `mv $filename | ruby -n -e 'print $_.upcase'`; done ファイル名に空白とか入ってておかしなことになっても知らん
あ、間違えた for filename in *.txt; do mv $filename `echo $filename | ruby -n -e 'print $_.upcase'`; done
>>203 は、echo で一回テストしてみる慎重な人。
mv はよく痛い目に遭うから。 mv <パターン> <ディレクトリ> で、ディレクトリを入力し忘れたら、パターンに マッチしたファイルが2つで、2つめのファイルが消えちゃったとか。
echo で試した後、ヒストリ戻って | sh と付けたりする。
1.9.1-preview1のバグ? subの第二引数にSJISの文字列を渡すと、2バイト目の\に反応しちゃってる >ruby19 -Ks -ve "puts 'test'.sub(/test/,'表0')" ruby 1.9.1 (2008-10-28 revision 19983) [i386-mingw32] 付est 「+暗が gsub できない」のブログエントリを見て そりゃあJISコードを直接扱うのは無理があるだろっ でもSJISも2バイト目に\が来たら、-Ksとかでちゃんと$KCODEをSJISにしておかないと引っかかるよなぁ だがしかし、1.9ならば文字列のエンコードさえしっかりしておけば無問題だぜ! >ruby19 -Kn -e "puts 'test'.sub(/test/,%!\x95\x5c0!.force_encoding('SJIS'))" 付est だめじゃんorz
Rangeに x < first ? first : x > last ? last : x なメソッドってないもんかね。あってもよさそうな気がするのだが。
いい名前がないからじゃないかな ぴったりな名前ある?
limit か bound 辺りかな? (1..10).limit(11) => 10
俺は以前、こんなメソッド定義してた (1..10).fold(11) #=> 10 11.fold_in(1..10) #=> 10
なんか fold っていうと inject を思い出すな
>>209-213 自分はclampってのを使ってるけど、何故その名前を
使い始めたか思い出せない。合ってるのか?
>>214 いまいちな感じ
━━ n., vt. 締め金(で締める); (駐車違反車を)車輪止め(wheel 〜)を掛けて動かせなくする.
* clamp down (on) (…を)押えつける; (…を)厳重に取締る.
* clamp・down 取締り.
以下カードキャプター禁止
>216 Holicやツバサなら良いのか
>>208 thx
珍しく田中さんのバグかと思ったらまつもとさんだった。
Range#clip とか。clipping の clip。
clipだと、される側が値じゃなくて範囲のように思える。
imprison は?てかclampよくね
>>211 のboundでいいと思うがなー。
bindの過去分詞じゃなくてboundaryのほうの動詞型だよな?
以下のようなコードなのですが ruby -v #=>ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32] <-- $KCODE='s' t = <<TEXT \"<src>\" TEXT t.sub!('<src>',"C:\\うた\\01.txt") p t --> #=>"\"C:\\うた<src>1.txt\"\n" となってきちんと置換されません。 "C:\\うた\\01.txt"の部分は起動時の引数を 考えています(運用時に変化する) どのようにすれば #=>"\"C:\\うた\\01.txt\"\n" のように置換できるでしょうか?
文字列をevalすると中を評価してしまう副作用があるけど、 評価しないで文法エラーがあるかどうかだけ知る方法はないだろうか。 1.9ならripperでやれると思うのだが、あいにく1.8。 いま考えているのは ruby -w をforkして標準入力から流し込む。
eval("if false \n"+ program +"\n end") で例外が起きなければ多分正しい気がする
eval "proc {" + program + "}" とかでもいいのかな。
おれも eval "proc { #{program} }" 派だ。 begin eval "proc { #{program} }" rescue SyntaxError => ex puts ex.message end
program='end;exit;begin' とかやるとexitしちゃうので信頼できないソースにやるのは駄目だな
>>225 そっちでいくなら ruby -c で終了コードを見た方が。
> ruby -ce 'p 0' || echo error
Syntax OK
> ruby -ce 'p 0.' || echo error
-e:1: syntax error, unexpected $end
error
お前ら、ちょっとくらいソースのぞいてみろ。 sample/test.rbにそのまんまのがある。 def valid_syntax?(code, fname) code = code.sub(/\A(?:\s*\#.*$)*(\n)?/n) { "#${"\n" if $1 && !$2}BEGIN{return true}\n" } eval(code, nil, fname, 0) rescue Exception puts $!.message false end
がんばってみたけどやっぱりダメみたいだ。 ごめんなみんな。
234 :
223 :2008/11/18(火) 13:02:24
>>224 レスありがとうございます
思った通りに処理できるようになりました
国籍法改正案について語ろうぜ
+(笑)
Ruby-Gnome2にはお世話になってるので、GUIに関するアンケートに答えたけど、 英語が苦手なのできつかった。。
what?
thanks. (あれ?一度レスしたつもりだったが、してなかったか)
メソッド呼び出しの括弧を省略したらProcオブジェクトが とれるようにしようぜ 今みたいに関数オブジェクトを名前で指定するって ダサすぎね?
それは何を中心に考えるかによるからなあ。プロパティ指向と考えれば今のもあり。 それより、 Rubyって関数とかブロックとかクロージャ類の扱いがなにげに冷遇されてるというか あんまりきちんと整理されていないというか。 他の言語でクロージャ使って書くつもりのことがRubyだとすんなり書けないね。 表層的には ・ブロックが関数と同等でない(ブロックをとれないなど) ・内部関数(Schemeのinternal defineみたいの)を書けない Rubyという言語の設計において、クロージャ類は従属的な存在なんだと思う。
>242 名前っつーか、そのためのシンボルのハズなんだが ちとシンボルと実体が疎に過ぎる気はするなあ。 >243 Rubyに純粋な意味での「関数」は無いからね。 文の塊をつくる手段は所属するオブジェクトが必要な「メソッド」と オブジェクトそのものである「ブロック/Proc」の2種類。 PythonやJavaScriptみたいな設計は 「publicな属性が存在する」ことが前提。 「メソッドはpublicな属性に、クロージャが入ったもの」という感じ。 この設計では、関数もメソッドも似たような存在。 ところがRubyはpublicな属性をいきなり排除して 「オブジェクトの属性にはメソッドを通してしかアクセス出来ない」 としてるから、その設計が出来ない。 というのもRubyで「メソッド=クロージャ」…としてしまうと public属性にアクセスできない=クロージャにもアクセスできなくなるんだよね。 だからRubyがpublic属性を否定する限り メソッドは特別な存在でなければならず、クロージャではありえない。 …お陰で、相対的にクロージャの地位が下がっちゃってる。
ただ、もう少しProcとメソッド双方歩みよって 「違うけど、似たように扱える」仕組みがあっても良いとは思う。
メソッド呼び出しの括弧の省略を許す限りなかなか難しいだろうなあ
フリーの統合開発環境「NetBeans 6.5」正式版リリース
メソッドをProcにするのなんか、 x = proc {obj.foo} でいいんじゃね?
1.9だと ブロック引数にデフォルト値の指定ができるし、ブロックも渡せる block=lambda{|a,b=2,&c| p [a,b,c.yield]} block.call(1){'block'} #=> [1,2,'block'] もう、いっそのこと {|| 〜} って書いたら、それはProcとして扱ったらいいんじゃね?
あと、素人の浅知恵&妄想だが selfを省略した括弧付きのメソッド呼び出しに限定して メソッドが存在しない時に、同名の変数があって それがProcオブジェクトなら call する 同名変数が存在しないか、変数がProcオブジェクトでなければ method_missing 今だって def a;'def a';end a = 'var a' なんてしたときは 字面の a だけをみても変数なのかメソッドなのかわからんのだし p a, a() で、呼び分けるんだから a()がメソッド呼び出しなのか 変数aのProcオブジェクトをcallしてるのか判らなくてもいいんじゃね a = lambda{'proc a'} p [a, a(), a.call] # => [#<Proc:〜 (lambda)>, "def a", "proc a"] で呼び分けれるし
で、 alias func lambda などとすれば x = func{p 'function'} x() あらまぁ、もはや関数と見分けがつかない なんちゃって
>selfを省略した括弧付きのメソッド呼び出しに限定して selfじゃなくてレシーバの省略だった おまけで __proc__みたいな感じでProc自身が取れたりすると Procの再帰がさせやすくなったり
>>250 > 今だって
> def a;'def a';end
> a = 'var a'
> なんてしたときは 字面の a だけをみても変数なのかメソッドなのかわからんのだし
これはメソッドaの有無にかかわらず常にローカル変数になるんじゃないか?
代入があればローカル変数 そうでなければメソッドaの呼び出し
先生、アンケートです。 あるデータから引数に該当するオブジェクトを検索抽出するメソッドがいくつかあります。 該当が無かった場合は nil やら空配列 [] やらが返ります。 で、このメソッドはブロックをとります。 data.search(cond){|e| e.process } こんな感じで、抽出したオブジェクトのメソッドを使った処理をブロック内でしたいです。んで、このブロックは ・ 該当オブジェクトを探せなかったときには何もしないで処理を継続させる(抽出失敗はここではわからない) ・ 該当オブジェクトを探せなかったときにも nil を渡して NoMethodError でそれを報せる のどっちがいいかな? String#match なんかは前者で、ブロック内で作った変数が空かどうかでマッチの成功失敗を調べたりするよね
>>255 前者はエラートラップ不要で手軽。
後者は込み入った処理ができる。どっちもどっちだと思う。
そのメソッドの用途によるけど、マッチしなかったときの処理が
重要になるかどうかで決めつけていいんじゃない?
うん、どっちも採用理由があるなあ、とは思った。 どっちにしても、失敗検知用の if 文みたいなのはいるなーとか。 いや、これ、他人様のライブラリの便利メソッドの挙動なんだよね。 現行は後者なんだけど、前者のほうが便利なんじゃないかという気がひしひしと…。 「偽や空が渡ったら規定の例外を吐くブロック」とかないかなあ。 ああ、この便利メソッド自体が nil だったとき特定の「DataNoMatchError」とか吐けばいいのか。 場合によっては抽出失敗はしょっちゅう起こるし、そんな細かい例外も面倒だなあ。 でも「nil がどっかで出た結果、あのへんの処理が滞りました」としかわからない現状よりは、 特定の例外でエラー情報がわかったほうが便利なのかも。 …ありがとう。ちょっと考えてみる。 ちなみに、HTML から特定の要素や属性を抽出するメソッドです。サーバの HTML が変わって要素が無くなったら nil。
「そんなん見ればわかるわボケ」という例外はイライラする 捕捉する機会があれば便利なのかもしれないが、普通の人はこんなん捕捉しないだろうな、みたいな
Ruby/DBI のプリペアドステートメントで使える変数の個数に制限ってありますか?
変数9個の場合なんですが、
mysql = DBI.connect(ry
mysql.execute("SET NAMES utf8")
mysql.execute("INSERT INTO example_table (a, b, c, d, e, f, g, h, i) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)", var1, var2, var3, var4, var5, var6, var7, var8, "ENCRYPT(var9)")
というような文を実行すると、
Too many SQL parameters (RuntimeError)
from /usr/lib/ruby/1.8/DBD/Mysql/Mysql.rb:569:in `execute'
from /usr/lib/ruby/1.8/dbi.rb:893:in `execute'
というエラーになります。
また、Ruby/DBI を使う上でのドキュメントを探しているのですが、
Ruby DBI モジュールを使う
http://www.jiubao.org/ruby-dbi/ruby-dbi.html 以外でおすすめがあったら教えてください。
>>257 searchって名前で検索抽出するのに、抽出失敗時にもブロック呼ぶの?
変だろうそれは。
探すのと辿るのでは目的が違うんだから、全部辿って何かしたいなら
foreach とか scan とか search_all とか、そんな名前にすると思うけど。
>>259 実は MySQL の制限だったりしないかと思ったりしつつ。
irb(main):005:0> db = DBI.connect("dbi:sqlite3::memory:")
irb(main):006:0> db.do("create table tt (a1 integer, a2 integer, a3 integer, a4 integer, a5 integer, a6 integer, a7 integer, a8 integer, a9 integer, a10 integer, a11 integer, a12 integer)")
=> 0
irb(main):007:0> db.do("insert into tt values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", *(1..12))
=> 1
irb(main):008:0> db.select_all("select * from tt")
=> [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
search って名前ではないだろう、さすがに いやわからんけど
便利メソッドだってのがポイントかね Array#findでなんとかなるけどこれを使うと何か便利、みたいな
data.traverse do |t| t.match do |e| e.process end t.failure do |e| ... end end みたいなインタフェースはどうだろう。 自分で言うのも何だけど、match/failureって名前でいいのかとは思うがそれは置いといて。
ちょいと質問。 HTMLのリンクとか面倒な部分をカンタンな記述→複雑なデータのように自動で変換記述する自分用スクリプト作ってます。 Wiki の [[キーワード]] みたいなやつ。 pstore の DB つきで、[[hoge-12]] と書いたら DB 内の Hoge の 12 項の説明文つきリンクで置き換わる、みたいな。 で、置換なんだけど、一般的に、ファイル全体に対して置換ワードごとに何度も gsub するしかない?
>>265 str.gsub(/\[(.*)\]/) {|s| table[s] }
こんな感じ。
てきとーに書きすぎたw リファレンス見ながら察して。
初めのころはgsubで書いて、 そのうちcase文とかif文とかの使用を考えて、 大量の一時状態保持変数とバカみたいに複雑な分岐処理で破綻して、 結局gsubに戻ってくる 正規表現をワードタイプの通知も含めて複雑にするか([[〜]]と<<〜>>は違う、みたいな)、 ワードタイプごとにgsubを分けて何度もgsubするかは好みと処理時間で
あ、一時保持変数で思い出した [[hoge-13]] だとHogeの13なんだけど、[[-13]] だと、その [[-13]] が言及してる文章のセクションの13項目なんだよね ファイル名とかで区別できるんじゃなくて、文章の中の、HTML でいうとこの <h1 class="about_hoge">Hoge について</h1> リンクだよ→ [[-11]] <h1 class="about_mage">Mage について</h1> リンクだよ→ [[-12]] で、[[-11]] は [[hoge-11]] で、[[-12]] は [[mage-12]] なんだよ gsubと相性悪いなあと思う
>>269 そんな表現認めたほうが悪いというのはさておきw
そこまでコンテキスト依存度高くしたら、スキャナで頭から舐めるか
構文木みたいな内部表現にしてから処理と出力するしかないんじゃ?
strscanでスキャナ書いてしまうのが楽。
break と next と continue と return の使い分けがわかりません。
>>272 break:ループ全体を打ち切り
next:ループ1回分だけ打ち切り
continue:なにそれ?
return:関数を打ち切り
continue じゃなくて retry でした
retryはループを振り出しに戻して最初からやり直す
たいていの解説には嬉々として例が載ってるはずなんだけどな
def foo(&x) @x = x end def bar() @x.call end foo{ if $hoge xxxx 1 else xxxx 2 end } xxxxに何を入れたらいいかわかりません
>>275 retryってループそのもののやり直しだったのか
ループのその回をやり直しっていうキーワードはないの?
つーかここ初心者スレじゃないじゃん。
>>277 たぶんbreak。だめならreturn。irbで叩いてみ。
>>278 リファレンス嫁。
retryはhttp扱ってるときに503を返しやがったときに使うわ。 rescue節でちょとsleepしてからretry
>>277 別に何も入れなくていいんじゃね
直接値だけを書いておけば
あえて書くなら next
なんか、ものすごく直感に反するが
クロージャを抜けるのがnextっつーのがなんとも
クロージャの次の処理へ進む、という意味に捕らえれば良い 元々は次の繰り返しへ進む、だけど
余計な苦労じゃ
287 :
デフォルトの名無しさん :2008/12/02(火) 08:39:58
Ruby 1.9.1 Preview 2 アゲ
>>277 ruby 1.7 以降なら、breakに返り値をつけられる
rubyをrudyと間違えるのはデフォだよな
RUbyとはしょっちゅう書く IME2000の設定がね
RPGツクールのRGSSって ruby使えるやつならわざわざツクールなんかに頼るとは到底思えない
どうして使ってもいないものを批判するの?
[ ["String", int foo, int bar], ["String", int foo, int bar], ["String", int foo, int bar], ... ] というオブジェクトがあって、bar をキーにソートして printf "%d, %s, %d", bar, str, foo, という風に出力したいんですが、何かいい方法はありますか? DBを使うかデータ構造を考え直したほうがいいんでしょうか?
ruby勉強しようと思ったけどもうちょっと普及してからでいいな
sort_byを使う $data = [ ["foo", 1, 2], ["bar", 2, 1], ["bozh", 5, 0], ] $data.sort_by{ |x| x[2] }.each{|x| printf "%d %s %d", x[2], x[0], x[1]}
>>292 まあ、RGSS使った人間の台詞ではないな
>>295 ありがとうございます。
というか、初心者スレがあったんですね。
失礼しました。
298 :
デフォルトの名無しさん :2008/12/05(金) 14:27:23
いつも思うだけど最近の言語っていわゆるjmp命令ってないよね。 昔9801でマシン語で組んでた時の癖があるからループ制御中にもう1つブレイク判定用チェツク入れてしかも入れ子分考慮してブレイク数考えるとか、 書き物がみづらくなるは、めんどくさいはでいつも思いながら使ってる。
つ 例外 つ catch throw
まあ、例外だな
jmp considered harmful
つ callcc
マシン語世代は例外とかの高級言語概念が理解できないことがあるのでマジ困る
本物のマシン語世代なら、ああ、割り込みのようなものね、と サクッと理解できるはずだと思うんだが。
例外と割り込みは全然違うだろ
>>304 その理解だと割り込みとして使いやがるぞ
>>306 いやそれは無理だろ
別物過ぎて話にならん
解説とサンプルと実行結果を見て理解できないならプログラミングは向いてないよ。 〜みたいなものという不正確な比喩で何かを理解した気分に浸れたところで何がどうなるわけでもない。
関数のようなもの
パールのようなもの
バイブのようなもの
>>298 jump命令が使いたくなるようなコードを出してみよう。
そうすれば貴殿の主張も説得力を持つようになる。
RubyForgeのログインクッキーがすぐなくなるような気がする めんどくさいからログインやめようかなという
Ruby 1.8系のMatrixの不具合? >ruby18 -rmatrix -ve "p Matrix[[1,3,4],[3,1,2],[4,2,3]].det" ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mingw32] 24 >ruby19 -rmatrix -ve "p Matrix[[1,3,4],[3,1,2],[4,2,3]].det" ruby 1.9.1 (2008-12-01 revision 20438) [i386-mingw32] (matrix.rbでブロック引数が外部のローカル変数を遮蔽してる警告多数 省略) (4/1) ruby19の方があってる どう書く?org の「行列式の計算」を解いていて発見 Matrix#determinant の定義をみると 1.9では割り算が / から .quo になってるので 1.8ではIntegerの割り算で端数が切り捨てられてる FloatのMatrixだと大丈夫 >ruby18 -rmatrix -ve "p Matrix[[1.0,3.0,4.0],[3.0,1.0,2.0],[4.0,2.0,3.0]].det" ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mingw32] 4.0
そういうガチっぽいのはredmineに登録してください・・・
パッチとテストを書いてください
Windows の Mingw版ruby 1.9.1-preview2ですが >cat てすと.rb p [$0,$0.encoding] p [__FILE__,__FILE__.encoding] p $0 == __FILE__ >ruby19 -v てすと.rb ruby 1.9.1 (2008-12-01 revision 20438) [i386-mingw32] ["てすと.rb", #<Encoding:Windows-31J>] ["\x82\xC4\x82\xB7\x82\xC6.rb", #<Encoding:US-ASCII>] false -Ksつけるとか、ファイル冒頭のマジックコメントで Windows-31J を指定すると大丈夫なんですが ファイルの中身のEncodingと ファイル名のEncodingは無関係のような気もするし どうしたもんでしょうね Windowsだと ARGVや$0はWindows-31Jなので __FILE__も同じでいいような
め、めんどくせえ…
>>317 >Windowsだと ARGVや$0はWindows-31Jなので
>__FILE__も同じでいいような
ぜんぜんよくないだろう。。。
しかしどうしたもんでしょうね
>>319 横からすまん。よくないってどういうこと?
$0と__FILE__のエンコーディングを揃えるのはごく自然に思えるんだが。
>>320 $0と__FILE__のエンコーディングは揃うべきだと思うが、ARGVは違うでしょ。
ARGVはコンソールで指定されるからWindows-31Jになるので、これはOK。
$0と__FILE__のエンコーディングはファイルシステムのエンコーディングになるのが一番自然だろうと思う。
だからってUTF-16で渡されても嬉しくないけどね。
| > ruby -v | ruby 1.9.1 (2008-12-01 revision 20438) [i386-mingw32] | | > ruby -r Win32API -e 'Win32API.new("msvcrt.dll", "_wmkdir", "p", "i").call("あいうえおかきくけこ".encode("utf-16le"))' & dir /b | あいうえおかきくけこ(ゴミ文字が続く) | | > ruby -r Win32API -e 'Win32API.new("msvcrt.dll", "_wmkdir", "p", "i").call("あいうえおかきくけこ".encode("utf-16le").force_encoding("binary") + "\0")' & dir /b | あいうえおかきくけこ | あいうえおかきくけこ(ゴミ文字が続く) 文字列の終端記号がUTF-16/32などでも常に1バイトしか付加されません UTF-16ならば2バイト、UTF-32ならば4バイトの終端記号が付加されるのを期待します
WindowsのネイティブでRubyをまともに使えるようにしようという努力は、どれくらい実のあることなんだろうか
世の中のクライアントPCのほとんどがWindowsであることを考えると、非常に重要で意味のあること。 問題はmatzにその気がまったく無いことだよな。Ruby捨てるのが早かったりして。
1.8.6 では ruby -e 'p p 1' とかやると、 warning: parenthesize argument(s) for future version と言われたけど、1.8.7 では warning が出なくなってる。 括弧なしも正式にOKになったってことなのかな。
>>322 ruby19 -rwin32api -e "Win32API.new('user32.dll','MessageBoxW','ippi','i').call(0,('あいうえおかきくけこ').encode('utf-16le'),'メッセージボックス'.encode('utf-16le'),0)"
でMessageBoxを表示させると確かに後ろにごみがつきますね
ワイドキャラクタって文字サイズ分の終端記号が必要なのか
Win32APIやdlでは文字列の引数を pack('p')でポインタに変換してるようなので
UTF16やUTF32をpack('p')するときは終端記号が文字幅分付加されればいいのですかね
とりあえず、自前で終端記号をつけておけば動きますけど
ruby19 -rwin32api -e "Win32API.new('user32.dll','MessageBoxW','ippi','i').call(0,('あいうえおかきくけこ').encode('utf-16le')<<0,'メッセージボックス'.encode('utf-16le')<<0,0)"
328 :
デフォルトの名無しさん :2008/12/13(土) 20:19:53
金光ですっ。どもっ。
>>327 > Win32APIやdlでは文字列の引数を pack('p')でポインタに変換してるようなので
> UTF16やUTF32をpack('p')するときは終端記号が文字幅分付加されればいいのですかね
packで終端記号を付けているわけではない。
というかそもそも、常にNUL終端されていることが保証されているわけではない。
保証されているのは、StringValueCStr()を呼んだ場合に終端されることだけ。
ワイドキャラクタ以外でNUL終端されているように見えるのは、歴史的経緯と実装上の都合による偶然。
でもdlとかWin32APIって入力文字列か出力バッファかなんて気にしてないんだよなぁ。
勝手な想像では Stringは内部ではNULL終端されたCのバイト列で文字列を保持していて その直後には文字列の拡張に備えたある程度のバッファの残りがあり 実際の文字列長や、バッファ全体の大きさ等がセットになった構造だろうと思ってました Cのバイト列として直接扱えるようにNULL終端されてないと ちょっとしたミスでバッファオーバーフローしやすいのでまずいだろう それゆえに、pack('p')では特に終端の処理はしてないのではないかとも思ってました なので、pack('p')されたら、とりあえず引数で渡されたString内部の 文字列直後のバッファを\x0\x0\x0\x0で埋めとけばいいと思うのです もしバッファがぎりぎりで余裕が無くても、バッファを拡張してでも埋めればいい バッファとして使うのなら、いちいち4byteものNULL終端するのは無駄かもしれませんが 文字列としてか単なるバッファとして使われるのか区別がつけられないので 安全側に振っておけと
Rubyで書くなら 引数のstring.concat(0).chop! NULLを連結しておいて、それを切り詰めると 文字列直後のバッファには文字幅分のNULL終端が 残ってるだろう たまたま現在の実装ではそうなるだけかもしれませんが Ruby本体が内部でやるとするなら文字のエンコーディングと関係無しに 4byteNULL終端することにすれば少しは速度の低下を抑えられるのではないかと そのように、NULL終端していることをRubyが保証するようにしてほしい ま、pack('p')なんてdlでしか使われないだろうし dlを使ってる時点でパフォーマンスなんて気にしても仕方ないので それくらいやっちゃってもいいんじゃないかと
RUBYOPT=-rubygems の問題はどうなったん? ユーザーに環境変数を設定させるのが妥当? require 'rubygems' を(配布)スクリプト側で書くのが妥当?
> pack('p') 顔に見えて仕方が無い
require 'rubygems' を書くのが「正しい」 というか、これを書かずにスクリプト作る奴の意味がいまいちわからん gem で配布しておきながら LoadError 起こすようなコマンドつけてるライブラリはソースコード印刷して燃やせ
begin require 'rubygems' rescue LoadError end require 'wx'
>>332 require rubygemsと書かないとgemsでインストースしたものが使えないのが大問題
>>330 > 勝手な想像では
> Stringは内部ではNULL終端されたCのバイト列で文字列を保持していて
> その直後には文字列の拡張に備えたある程度のバッファの残りがあり
> 実際の文字列長や、バッファ全体の大きさ等がセットになった構造だろうと思ってました
昔はそうだったんだけど、前田さんがstringをcopy-on-writeにしようといって変更になった
はず。俺の記憶が正しければ。
> なので、pack('p')されたら、とりあえず引数で渡されたString内部の
> 文字列直後のバッファを\x0\x0\x0\x0で埋めとけばいいと思うのです
> もしバッファがぎりぎりで余裕が無くても、バッファを拡張してでも埋めればいい
terminatorをmin len確保する、というのも考えたんだけど
StringValueCStr()とpack('p')だけ、というのもありかもね。
今年の聖夜はなにがリリースされるの?
そういうのあったな あんまり静かなんで忘れてた
確かに静かだな そもそも正式版が1月に控えてるから、あまり気にされていないのかもしれない
うおおい、Ubuntuでビルドできねえぞ! どうなってんだ!コラァ! gcc -O2 -g -Wall -Wno-parentheses -I. -I.ext/include/i686-linux -I./include -I. -DRUBY_EXPORT -o sprintf.o -c sprintf.c sprintf.c: In function ‘rb_str_format’: missing/vsnprintf.c:1185: sorry, unimplemented: inlining failed in call to ‘snprintf’: redefined extern inline functions are not considered for inlining sprintf.c:803: sorry, unimplemented: ここから呼ばれました
[ruby-dev:37585] 鼻から悪魔吹いたんだけどこのパッチどういうことなの 単純にコピペミスか何か?
>>346 どのへんで噴いたの?
日本語化メッセージ?
>>347 [ruby-dev:37595]ですでに言われてるけど、uninitializedな値を代入してどうすんだってこと
[ruby-dev:37592]でもせっかく取得したskの値を上書きしてるし(これはすぐ直りそう)
一体どうしてしまったんだろう・・・
[ruby-dev:37595]の人ってなんでこんな上から目線で偉そうなの?死ぬの?
これが上から目線だったら、U氏はどうなってしまうのかと小一時間
いわゆるゴッド
>>349 上から目線というよりは相手を馬鹿にしてるように見える
354 :
sage :2008/12/26(金) 01:58:49
「テストしてからコミットすると,気づきやすくなると思います」 とmatzを諭している人が 「どこでも通用する再現ケースを示しても、報告者が確認しないとダメですか」 と突っ込まれるようなことをしてしまったからなあ
sage間違えた orz
>>353 馬鹿にしてるというよりはいじられキャラだから
ええと、iconv 対応外部ライブラリがあって、引数で iconv なエンコーディング文字列を渡したいです。 しかし、ガイジンさんも使うスクリプトなので require 'iconv' も require 'kconv' もしたくないです(たった1回のために遅くなるのは避けたい)。 外部ライブラリが依存してるので、/usr/bin/iconv か、 /usr/lib/ruby/1.8/i486-linux/iconv.so の2つは存在するんだけど、 この段階で、 Ruby の変数に格納されてるデータの文字エンコードを調べる方法はありますか?
require 'rubygem' で文字コード関連のライブラリ読まれなかったっけ しれっと gem にしてしまうというのはどう
それ多分requireの100倍くらい重いよね
iconv は推測ができないんじゃなかったっけ? from と to が必ず必要だった気がする guess したければ NKF 使うことだね 2008年にもなってまだ NKF か やってらんねーな
つーかそもそも require 'iconv' も require 'kconv' も、読み込みコストは無視していいほど軽いと思うぞ 気にせずiconv読み込んじゃえよ
ぼくはrequire "kconv"ちゃん!
使うところでrequire
>>345 そんなにシェアがあるとは知らなかったが、
初心ン厨のsnprintf()は一体どう定義されてるんだ?
GNU Debianと同じはずなのだが
Ubuntuユーザてdevな人たちにいないのかな? 皆さんDebianを使ってるのか?
皆さんはどうだかわからんけど、数あるLinuxでDebianが 優先されてるのはmatzが普段使っているものだから(だよな?)。 NaClが日医のORCAの会社だから、てのは関係あるのかな。
いや、こういうのでLinuxのうち対応するの1個選べと言われたらDebianだろ普通 CentOS用のを他のディストリに対応させるのは面倒な可能性があるが、 Debianで動作するなら必要ライブラリとかの問題はゼロだろ
それ以前に、今の今まで動いてたんだからパッチの書き方が下手糞なんだろう しょぼいコントリビュータがいるからこうなる。Cを知らない奴に開発させるなよ
文句言うなら自分でやるべきでは?
問題になったそのパッチってどれよ
nokogiriエンジンのmechanizeを1.9で動かすと hpricotをつかったものを1.8で動かすのに比べて大分早くなるんだなー これで心置き無く1.9に移行できる
いやそれ1.9ほとんど関係ないから libxml2が速いだけだから むしろMechanize自体はEncodingの存在無視してるから1.9向きではない
>Encodingの存在無視してるから1.9向きではない kwsk $KCODE='UTF-8'ってやらないと?だらけになるとかそういうのですか?
1.9 は $KCODE 使えないだろ
だから対応して欲しければ文字エンコードをもった文字列の扱い方の解説特設ページとか公式に作れ
ライブラリ作者は別に1.9に完全対応とかをやりたくないってわけじゃないんだ(いや面倒度にもよるが) ただ、どう対応して追従するのがベストなのか、情報が散逸してさっぱりわからんからスルーしてるだけなんだ
スルーじゃなくて保留なんですね 言い方大事ですね
まあ、移行ガイドみたいなもんになるんだろうね 1.9を視野に入れるなら使わないほうがいい記法とか あなたは知らないだろうけどこの世には日本語文字というものが以下略みたいな
中の人GJ
>>367 Ruby自体Debianしか正式サポートしてないからね
早く開発者変わってWindowsがリードプラットフォームにならねーかな。 どう見ても一番将来性あるわけだし。 オプソ周りはもう不況で金集まらないだろ。
>>384 お前Windowsで開発したことないな
卜部を「とぶ」と読んでいたのは俺だけではないはずだ
懺悔すると、「とべ」と呼んでた 全国の卜部さん、ここ見てたらごめんなさい
Rubyを「るびぃ」と読んでいるのは俺だけではないはずだ
>>384 それはまずあり得ないな。
開発環境でもLinuxのほうが便利。
WindowsのIDE使う場合でも、sambaでLinuxのディレクトリをマウントして
コーディングするほうがいいよ。
コマンドの実行はTeraTermか何かでsshログインすれば良いし。
特に本番環境となればWindowsサーバという選択肢はあり得ない。
Webアプリケーションを作る場合だけどね。
最後の一行を最初に持ってこないのはインチキだと思います先生
392 :
390 :2008/12/31(水) 15:15:14
>>349 >[ruby-dev:37595]の人ってなんでこんな上から目線で偉そうなの?死ぬの?
どんだけすごいんだろうと思ってみてみたら・・・
最近のゆとりは、こんなのも上から目線と感じるのか。
つきあいにくいなあ。
ライブラリの力を自分の実力と勘違いしている香具師は邪魔
396 :
デフォルトの名無しさん :2009/01/01(木) 11:27:46
Ruby 初心者スレッド Part 23 の 846には Nokogiri::HTML(open(url), nil, 'SHIFT_JIS')みたいに 第3引数で文字エンコードをしてできるようですが、 Mechanizeから文字コードを指定できますか? つまりWWW::Mechanize.new.get(url)とするとき getするhtmlのエンコードを決め打ちして取得できるのかどうか。 WWW::Mechanizeクラスの定数にも属性にもそれっぽいものが見つからなくて質問させてください。 Mechanizeは0.9、Rubyは1.8.7です。
398 :
デフォルトの名無しさん :2009/01/01(木) 11:34:31
>>396 でいつRuby 初心者スレッドの次スレを立てるの?
399 :
デフォルトの名無しさん :2009/01/01(木) 11:46:17
399
400 :
デフォルトの名無しさん :2009/01/01(木) 11:47:04
400
401 :
【吉】 【265円】 :2009/01/01(木) 11:48:36
○ /⌒\ (__) \●/(__)/⌒\ ∩ ( ・ω・ )\●/ あけましておめでとうございます Y  ̄ ||y||  ̄`''φ Lノ /ニ|| ! ソ > 乂/ノ ハ ヽー´ `ー-、__| ことしもよろしくね☆
2.0マダー?
>>396 WWW::Mechanize::Chain::BodyDecodingHandlerにmonkey patch!
405 :
396 :2009/01/01(木) 17:30:52
>>404 正月早々レスありがとうございます。でも
モンキーパッチの当て方(書き方)がわからん。
参考も見つけられなかった。
ソース読んでもいまいちピンときてないし。
body.readの部分で,iconvあたりでutfに変換してやるだけなんじゃないかななどと楽観的に考えてるのですが。
あるいはlib/www/mechanize/page.rbで
@parser = Mechanize.html_parser.parse(html_body)
のところでエンコードを指定してやればいいはずだが
そもそもパッチの書き方がわからないorz
やっぱりデビアン前提? 窓環境で動くアプリをrubyで作るのは無謀だろうか。
>>406 無謀とまでは言わないけど苦労は多いんじゃないか?
408 :
407 :2009/01/01(木) 20:02:08
お、大吉だったw
>>406 visuarubyで作ったけど時間かかった
wxPythonで作り直したらあっさりできた
>>406 RubyとGUIライブラリの相性が悪すぎる。
RailsをWindowsアプリとして動かすのが一番楽
ここでvrubyでしかrubyを使わない人の登場です。(vbicで拡張してるけども) 自分で使うときはcuiでいいけども、人に渡すときはexerbで固めて渡してる。 粗大なデータを表示するエディタや、ペイント系の処理をするのでなければ、vrubyで十分だけどなぁ? 基本はボタンやプルダウン、ドラッグ&ドロップをトリガーとして各クラスなりdefにアクセスできればいい ので、cuiで書いたコードをそのまま使えるし… gemでsshとscp、rmagick、mysql、sqliteを使ってる物をポイっとgui付でexe化して他人に渡せるのは メリットだと思ってる。 俺は逆にwxPythonだとsshで躓き、exe化する時にdllが多大にできたり単独ファイルにできないのが 辛かった。
>>406 CUIにせよGUIにせよ、今のRubyなら余裕
VisualuRubyあるし、今ならwxRubyもWindowsできちんと動くしな
diffとかlsとか、基本的なコマンドラインツールも探せばすぐに揃うし
個人的にWindowsでRubyするときの一番の問題はエディタ(or開発環境)
Windowsの場合、エンコーディングがUTF-8だとコンソールが文字化けすると思うんだけど対策とかあるの? chcpで文字コード変えるとirbとscript/consoleが動かないんだよね。
414 :
デフォルトの名無しさん :2009/01/02(金) 14:22:04
415 :
デフォルトの名無しさん :2009/01/02(金) 14:38:51
すまなかった。 あっちで聞いて来るのでこちらの質問は取り消す。
ファイルにYAML形式で複数のオブジェクトを書いた場合 どのようにして全てのオブジェクトをRubyのオブジェクトに変換できるのでしょうか。 load_fileが先頭しか変換しないとかアホじゃねーの?
417 :
デフォルトの名無しさん :2009/01/02(金) 16:55:36
ドゴォォォォン!! ; ' ; \,,(' ⌒`;;) (;; (´・:;⌒)/ /⌒ヽ(;. (´⌒` ,;) ) ’ Σ(;^ω^)((´:,(’ ,; ;'),` ⊂ ⊂ / ̄ ̄ ̄/__ \/___/
複数のオブジェクトなら配列として書き出しているはずだが。
ドゴォォォォン!! ; ' ; \,,(' ⌒`;;) (;; (´・:;⌒)/ /⌒ヽ(;. (´⌒` ,;) ) ’ Σ(;^ω^)((´:,(’ ,; ;'),` ⊂ ⊂ / ̄ ̄ ̄/__ \/___/
Matzって何ですか
YAMLって空の改行入ってても大丈夫?
結婚式2週間前、IPA勤務の新郎がつこうた
http://tsushima.2ch.net/test/read.cgi/news/1230997845/ 仁義なきキンタマ ウイルス情報 Part80
http://changi.2ch.net/test/read.cgi/download/1229742858/546 546 :[名無し]さん(bin+cue).rar :sage :2009/01/04(日) 00:24:59
>>500 報告する時は、詳しく的確に、一部だけ報告しないでお願いね
[殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228
[殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be
[写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee
膨大な量のファイル数キンタマ ファイル数 13508 フォルダ数2381
以前勤めてた会社の資料など多数 独立行政法人情報処理推進機構などの資料など無いと思うが
有るかも知れない、あまりにも数が有り過ぎる、メールなどは、古いものばかりメルマガなど膨大な量
個人情報などは、披露宴主席者などの住所、名前、電話、メール 数十人分しかしエロばっかり落としてるな
ちなみに ハメ撮りscr 踏んだみたいね
早稲田実業学校中等部卒業
早稲田実業学校高等部卒業
早稲田大学政治経済学部政治学科卒業
卒論「知的財産権とインターネット技術」
当時の同大学理工学大学院の大川功 賞佳作を受賞
コンピュータ関連会社に入社ソフトウェア開発の仕事を経て
2005年に独立行政法人情報処理推進機構に入社
ソフトウェア・エンジニアリング・センター企画グループに配属
同グループ主任 岡田さん33歳
2009年1月19日結婚式・・・
┏━━━━━━━━━━━━━━━━━━━━━┓ ┃ ━ ╋━╋ ╋┓┏┓ ┳┻┳┏━ ┣━┳━ ┃ ┃ ━ ┏┳┓ ┃┃┗┛ ┻━┻┃ ┃ ┃ ┃ ┃ ━ ┗╋┛ ┏━┓ ┃ ┣┳ ┏━╋━ ┃ ┃ ━ ━╋━ ┣━┫ ━╋━┃┃ ┃ ┃ ┃ ┃┏┓━╋━ ┣━┫ ┏╋┓┃┃ ━┻━╋━ ┃ ┃┃┃ ┃ ┗━┛ ┃┃┃┃┃ ┃ ┃ ┃┗┛━┻━ ━┛┗━ ┃┃┃┃┃ ┃ ┃ ┗━━━━━━━━━━━━━━━━━━━━━┛ ∩ 〈〈〈 ヽ 〈⊃ } (\___/) | | ( ̄l▼  ̄)! ! / ● ● | / / l ___\lミ/ /▲ ( 。--。 ) /■___ (( ̄)) 新年あけましておめでとうございますーーっ! (___)  ̄/ 2009年 元旦
>>425 あのオライリーが出してて、しかも厚さの割に4000円という結構なお値段のするクックブックだ!
という期待を捨てて読めば普通に役立つ
dankogaiだから「原書読め原書」と切って捨てることができるんであって、
凡人にとってはお役立ち情報満載だ
ブックオフとかで2000円で売ってたら即買い
内容的には別に問題ないよね 原書知ってるとちと高いなーという感じ たのしいと初めてとレシピブックの3冊読み終えたのならクックブック読んでもいいんじゃねとは思う この4冊に限っては、被って冗長で退屈な部分は奇跡的に少ない
>>426 だったら、USのAmazonで送料込み3500円くらいで原書買えるから、
そっちにしたほうがいいんじゃないの?
(というかおれは今注文した)
>>428 英語の本は一覧性が悪い
※ 個人の英語読みスキルに依存します
全ての方に効果が現れるわけではありません
>>431 プログラミング言語 Ruby
David Flanagan, まつもと ゆきひろ 著 、卜部 昌平 監訳、長尾 高弘 訳
2009年01月24日 発売予定
ttp://www.oreilly.co.jp/books/9784873113944/ > 1章 イントロダクション
> 2章 Rubyプログラムの構造と実行
> 3章 データ型とオブジェクト
> 4章 式と演算子
> 5章 文と制御構造
> 6章 メソッド、proc、lambda、クロージャ
> 7章 クラスとモジュール
> 8章 リフレクションとメタプログラミング
> 8.5 フック
> 8.6 トレーシング
> 8.7 ObjectSpaceとGC
> 8.8 カスタム制御構造
> 8.9 method_missingとconst_missingの活用
> 8.10 メソッドの動的な作成
> 8.11 エリアスチェイン
> 8.12 ドメイン固有言語(DSL)
> 9章 Rubyプラットフォーム
> 9.1 文字列
> 9.2 正規表現
> 9.3 数値と数学
> 9.4 日付と時刻
> 9.5 コレクション
> 9.6 ファイルとディレクトリ
> 9.7 入出力
> 9.8 ネットワーキング
> 9.9 スレッドと並列処理
> 10章 Ruby環境
うわ、元レスはコピペ可能に計算されたように31行にしてある なんかうぜえ(w オライリーのクックブックはそこそこ新しくてそこそこ発展的だから、 立ち読みとかして気に入ったらクックブック買え いまさら1.6ベースの本読んでも仕方ないしな
Yugui氏って女性?
>>434 なぜここで聞くのかよく分からないが
本人のblog見れば、きちんと書いてあるよ
>>431 Matz本と原先生の本は一般的なプログラミング本として読んでも楽しい。
未だにMatz本の人気は未だに多くあるし。
未だに未
438 :
431 :2009/01/10(土) 19:44:17
結局 Ruby Way はやめた 明日、新しい本を、立ち読みしてくる thx
むしろ PHP がどうなってるのかが気になる俺
>>439 PHPでも浮動小数点の比較はNGでございますよfrom初心者スレ
誤爆?
話が噛み合ってるから自演だろ
初心者スレ見てないのか いや見なくてもいいんだけども
kono mae kara $ make test-all de gem no error ga demakuru kedo naosu ki ha naino?
Intermediate Ruby、Advanced Ruby、Ruby Hacks、Ruby Best Practices はいつ出るんですか?
>> 445 Eric Hodel ni kike in English
>>445 つruby-dev ML
つredmine.ruby-lang.org
ハッシュに+演算子があっていいような気がしますが、どうでしょうか? a = {:a=>1, :b=>2} b = {:c=>3, :d=>4} a + b #=> {:a=>1, :b=>2, :c=>3, :d=>4}
実にいいアイデアですが採用して2ch見てるなwwwと思われたくないので却下します。
> Ruby Best Practices 本は六月
>>449 a = {:a => 1, :b => 2}
b = {:a => 3, :d => 4}
(a+b)[:a] は何を返すべき?
じゃあ、(b+a)[:a] は?
そういや 1.9 の Hash#merge とかは順番どうなるん?
>>452 対称性が確保できないからダメか。。orz
んなこともないんじゃないの。 上書きするなり例外吐くなりすればいい。 +に対称性がないとダメなんて誰が決めた? そんなルールを施行したらRubyが崩壊する。
そんなこと言ったら文字列の加算がそもそも交換法則満たしてないでしょ
>>454 最初の質問に答えなされ
交換性はオプショナルな問題に過ぎない
>>457 最初の質問の意味がわかりませんが、例えばこんな感じの実装とか
class Hash
def +(other)
merge other
end
end
んむ (a + b) < (a と b) となるような処理は + というメソッドに似合わないというのが最大の理由だろう 配列の + も上記処理のイメージはイコールと言っていいし、 文字列も数値もイコールとみなしてもいい結果を出す でも、ハッシュは重複ぶんが完全に消えてしまうから、 + という処理には似合わない 素直に merge とかの名前のメソッドにしたほうがよい
mergeの別名ならいっそ|(パイプ)で
ハッシュに|演算子があっていいような気がしますが、どうでしょうか? a = {:a=>1, :b=>2} b = {:c=>3, :d=>4} a | b #=> {:a=>1, :b=>2, :c=>3, :d=>4}
Pascalの集合同士の和集合は+だな
a = {:a => 1, :b => 2, :c => 666} b = {:c => 3, :d => 4} a | b は?
ひ?
>「どのような意味を定義しても万人が同意できると思えない」 こんな仕様山ほどあるじゃん。という突っ込みは置いといて 最近はもう他人の価値観なんてほっといてサクッとローカルで拡張するようになってしまったからどうでもよくなったな。 どうか他の環境でRubyプログラミングする機会が来ませんように・・・
ハッシュに<<演算子があっていいような気がしますが、どうでしょうか? a = {:a=>1, :b=>2} b = {:c=>3, :d=>4} a << b p a #=> {:a=>1, :b=>2, :c=>3, :d=>4}
でも、「重複があった場合どちらが優先されるのか明らかでない」点は変わりませんね。 a << b に、足りない要素の追加を見ることもできるし、 重複要素の上書きを見ることもできる。
>>468 そんなの、メソッドでも同じじゃないの?
<<もHashで既出。
大ボケした。Hash -> ML(ruby-list)
誰かHash#mergeが可決された経緯を頼む
演算子のオーバーロードはみだりに使うべきではない。 演算子のオーバーロードを使うよほどのメリットがない限りはメソッドにすべき。
matzは十分に明瞭ではない演算子オーバーロードは嫌いなのだろう C++で痛い目にあったとか話してたし
ハッシュに∪演算子があっていいような気がしますが、どうでしょうか? a = {:a=>1, :b=>2} b = {:c=>3, :d=>4} a∪b p a #=> {:a=>1, :b=>2, :c=>3, :d=>4}
今度はFortressか・・・・・
478 :
デフォルトの名無しさん :2009/01/15(木) 06:13:38
setとsetの+で要素が減っても問題ない 問題はどっち側の要素を選択するかだ
a = {:a => 1, :b => 2} b = {:a => 3, :d => 4} (a+b)[:a] は何を返すべき?→4 じゃあ、(b+a)[:a] は? →4 対称性ばっちりです ほんとうにありがとうございました
集合和と算術和をごっちゃにするなや。
1つのキーに対して複数の値が関連づけられる場合じゃないと + は自然には定義できんわな。
群論とかの話になりそうだな。
a = {:a => 1, :b => 2} b = {:a => 3, :d => 4} a+b = {:a => [1,3], :b => [2], :d => [4]}
+は上書き。細かく制御したければmergeで。 もうこれでいいよ。てかそうした。 なんとなく文字列の連結に+使っておいて今更自然なうんたらとか言っても無意味。 全体的にRubyの演算子の使い方は恣意的だよ。たとえば [1,2,3]*"," の結果は数学的でも直観的でも自然でもなければ わざわざ標準にぶち込む必要があるほど頻出するわけでもないしな。
>>485 標準クラスの同一オブジェクトの加算が変な結果を返す可能性があるというのは慎重に考えるべきだと思うぜ
>>483 5回くらい足したらもう中身の値を使うのは不可能だろうなあw
[1,2,3]+[3,4,5] ==> [1, 2, 3, 3, 4, 5] [1,2,3]-[3,4,5] ==> [1, 2] 不自然だなぁ
算数のイメージに流されないように 連結、併合演算子 ++ を導入すればすべて解決 "aaa" ++ "bbb" ==> "aaabbb" {:a => 1, :b => 2} ++ {:a => 3, :d => 4} ==> {:a => 1, :b => 2, :c => 3, :d => 4} n = 1 n++ ==> n == 2
>>488 要素重複を許したくないならそのようなクラスをお作りください
オレ的には上書きが一番実用的なのだが。 おれの作るものなんてふつーのWebアプリ程度だけどな。
左辺がもとで、右辺で上書きってので「自然」だよな 文字列連結でもそんなイメージじゃん えらい人らのこだわりがよくわからん
あれ?演算子の左右は左辺、右辺って言わないか
>>493 俺にはお前が何を言ってるのかがよく分からん
文字列連結と Hash の上書きになんか共通点があるのか?
なんだ、わかってないのか
>>493 a = {:a => 1, :b => 2}
b = {:a => 3, :d => 4}
のとき
a+b は
{:a => 1, :b => 2, :d => 4}
か
{:a => 3, :b => 2, :d => 4}
になるだろ
これはどちらも + メソッドの動作イメージとしては不適当だ
{:a => 1, :b => 2, :a => 3, :d => 4}
こうなるべきだろ、 a と b を「足した」んだからさ
でもこれはハッシュとしてはありえないから、どっちかを基準に Hash#merge するしかない
だったらそれは加算ではなくマージでいいんじゃね、という話だ
「+のイメージ」とか言ってる時点で終わりだな。
>>496 ますます分からんのだが…
Hash#+() で {:a => 1, :b => 2, :d => 4} か {:a => 3, :b => 2, :d => 4} を返すのは
動作イメージとしては不適当だから、素直に Hash#merge() を使っとけって事か?
今までの文脈と
>>493 でそれを読み取れというのは不可能だと思うが
むしろくどい位丁寧な説明(流れ)に見えるが
>>498 ここまでの文脈で読み取ってくれよその位
横からですまんが……
ここまでの文脈はともかく、
>>493 だけは意味不明
文字列連結のどこが「右辺で上書き」なの?
右辺で上書きが「自然」というのも分からんし
もうバイクシェッドの話はいいよ リリースまで二週間しかないんだ。1.9移行の落とし穴とかメリット・デメリットある?
おれは速攻使って撃沈する予定
1.9用キラーアプリがないと誰も使おうと思わないだろうな っていうか、gemのライブラリが1.9でエラー出るとかありえん
gonzuiとか言ってみたりして>1.9用キラーアプリ
>>503 gem のライブラリが動作しない可能性が大です
1.9 対応とか書いてあっても UTF8 以外の日本語渡すと平気でエラー出ます
UTF8にして渡せばいいのでは?
jisとかsjis依存のコードなんていくらでもある。 日本語でコード変換すると悲惨だ。 まあ、まつもと氏の言語であって、まつもと氏の世界観が受け入れられないとストレス感じるだろうね。 一種の宗教みたいな物だし。導師の教えに疑問を抱いたらストレス。 演算子オーバーロードの仕様が異なる、8月の誕生石のペリドットって名前の言語にフォークするしか。
gemのサーバってバージョンごとに別になってないの?
>>511 特にはなってないと思う
まあそのへんは自分たちが困るようになったらどうにかするだろう
>>434-435 PerlもRubyもアレな人が最新版のメイン開発者なんですね
わかります
,――――――ヽ、 ,/ ~\ / ,へ_Vへ__ ~\ / ノ ゜ー-、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ / / . \ | <●> <●> ( ) \ \ | | | i / / | / ヽ レ / i (●_●) / / _/\/\/\/|_ \ ノ//,i、 ,-――-、 ・ /,ミヽ / \ まピョーン☆ / \ / く i、 <(EEEEE)> ∵/ ゝ \ / \ / /⌒ ' i、 \___/ _/ ' ⌒\ \  ̄|/\/\/\/ ̄ (  ̄ ̄ ̄⌒\ ,ノ ⌒ ̄ ̄_) ` ̄ ̄ ̄`ヽ 、ー-―一 /´ ̄ ̄ | | −−− ‐ ノ | / ノ −−−− / ∠_ −− | f\ ノ  ̄`丶. | | ヽ__ノー─-- 、_ ) − _ . | | / / | | ,' / / / ノ | ,' \ / / | / \ /_ノ / ,ノ 〈 \ ( 〈 ヽ.__ \ \ ヽ._> \__)
いらね
つ Flanaganの本は今月発売
Mingw版 ruby 1.9.1 rc1 引数無しで実行して標準入力待ちになったときに 一行目でctrl-Zを入力しても終了しないのをやめて欲しい ctrl-Dなら終了するけど Windowsしかつかってないのでctrl-Dなんて普段は忘れてる IOが一新されたのと、マジックコメントを読むようになった関係ですかね 開発陣のUNIXユーザーはctrl-Zなんて入力すること無いだろうから 気が付かれてないような…
週刊新潮は明日発売
Windows は敵ですから
Windows上でRuby動かすと起動遅くて死ぬ
>>524 だからRubyインタプリタの起動ではなくライブラリファイルの読み込みが遅いのだと何度言えば
快適に使うためには7200回転のHDDとPentium4相当のCPUが必須なのでよろしく
>>526 >use strict を使い始めたらその階段を一歩上ったと言えるでしょうし、
>正規表現を理解したときも一段あがることになると思います
はぁ?レベル
528 :
518 :2009/01/17(土) 17:11:31
>>528 >517と同じやつだろ。おらの翻訳だよ。
釣られるなよw
卜部さん?
O'Reillyのことじゃなかったのか。
オライリーの事でしょ
ruby/benchmark/bm_so_nsieve_bits.rb の計算結果がruby1.8とruby1.9で違うんだけど 何でかな。Encodingのせい?
と、思ってよく調べてみたら String#[]がStringを返すように変わったせいか。 intを返す1.8ってかなり狂った仕様だったんだな。 とにかく、benchmark/bm_so_nsieve_bits.rb は1.9ではほとんど無意味だから書き直さないとまずいね。
Mingw版で ruby -ne "print if /hoge/" test.txt とかすると 1.8より1.9の方が10倍くらい遅い Windowsなので1.9のデフォルトの外部エンコーディングがsjis(Windows-31J)になってて sjis以外のファイルを読ませると不正なシーケンスとか言われて例外で落ちるし ruby -e "open(ARGV.shift,'r'){|f| f.each{}}" test.txt ファイル読むだけでも8倍くらい遅い ruby -e "open(ARGV.shift,'r:ascii-8bit'){|f| f.each{}}" test.txt ascii-8bit指定して読んでもやっぱり8倍くらい遅い ruby -e "open(ARGV.shift,'rb'){|f| f.each{}}" test.txt バイナリで読むとなぜか速くて1.8と同じくらい 改行以外でascii-8bit指定と何が違うのだろうか? ruby -e "open(ARGV.shift,'rb'){|f| while f.gets;$_.force_encoding('cp932');print if /hoge/ }" test.txt バイナリで読んだあとでエンコーディングを付けると最初のより速くなって2倍ちょい遅いだけに
--disable-gemsつけても?
ああ、すまん。ちゃんと最後まで読んでなかった。 mingwだとuniversal newlineがデフォルトになってるからだろうな。
窓は敵なんて逝ってるから、未だにウブンツの敷居が高くて普及してないマイナー言語なんだよ。
元々、IPAに信用なんて。 居るの実務の無い役人じゃないの?
窓なんて敵じゃないよ!
544 :
デフォルトの名無しさん :2009/01/20(火) 06:07:37
>停職3カ月処分 懲戒免職じゃないのか ゆるすぎじゃまいか
IPA自体の何かを流出させたわけじゃないからキツイ処分を課す名目が立たないんだよ。 実質的には「さっさと辞表出せボケ」状態だろうね。
「停職は平気だが懲戒免職ではダメージを受ける」という器用な人はおらん 普通の人は停職で辞めて再就職できずに自殺するし、 停職後に復帰して平気な人は懲戒免職受けても厚顔で再就職する
そろそろスレ違い
ていうか
>>513 はコピペであって反応したからなにかあるというわけでもない
>>546 大小にかかわらず罪を犯した人間はさっさと死ね、という社会を作ろうってことですね
わかります
いい加減でスレ違いは放置する
,――――――ヽ、 ,/ ~\ / ,へ_Vへ__ ~\ / ノ ゜ー-、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / コネと金があるのなら、法を守る必要もない i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ i、 \___/ _/ \ ,ノ IPA 岡田賢治(32) ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i | > ヽ. ハ | ||
怪しげなコンサルティングに見えますが
最初からガンガンClassをfreezeしまくって モンキーパッチが出来ないrubyが欲しい。標準クラスを改変されるなんて 怖すぎる。
それは言語の責任じゃないとRubyは考える 何してるかわからんような怪しいライブラリはそもそも使うなよ
>>552 「来た!Ruby、もう止まらない。」「来た!盾来た!」
「これで 勝 つ る!」
>>556 Railsとかの主要なライブラリで
破綻が起きるまで
>>556 でいいと思う
Railsではあっさり破綻して一周してる感じだが
エディタ一画面に収まらないコードをRubyで書くのは無謀です。
560 :
デフォルトの名無しさん :2009/01/22(木) 01:06:25
エディターの画面からはみだしたコードをみてみたい
そうそう無いと思う
文字が壁紙上にはみ出すのか。
Pythonはどこだ、と思った。 こういう調査なら圧倒的にPythonが強いと思ったのにな。
停職開けに机無く成ってるでしょ。 rubyも休んでると席無く成ってるお。
>>564 そうだね、PerlもやめてCやろうぜC!
Rubyはモルモンというリアル宗教だからなー
じゃあなんでこのスレにいるの?
>>565 sourceforg.netに登録されているプロジェクト限定だったら
python >perl > 越えられない壁 > php >>>> ruby
だったよ
574 :
573 :2009/01/24(土) 00:42:54
間違えた php > 越えられない壁 > python >perl > 越えられない壁 > ruby だった
WordPress のプラグインならおれも作れそう
C最強。OSレベルも作れるし。
アセンブラ最強!Cコンパイラだって作れるし ↓ 機械語最強! くだらんからやめれ
仙台行ってきた
かんなぎ?
オレなんか、、仙台に住んでるんだぜ。
ASM使えて良かった。
586 :
127 :2009/01/25(日) 14:49:24
あるwebページをNokogiriで読み込んで,エレメントを抜き出しました。 <font size="2">&#x5E73;&#x6210;21&#x5E74;2&#x6708;5&#x65E5;&#xFF5E;&#x5E73;&#x6210;21&#x5E74;2&#x6708;12&#x65E5;</font> エレメントのテキスト部分は実体参照になっているようです。 テキスト(Nokogiri::XML::Element.text)をsplitしたのですが,「〜」でやると上手くいきません。 中身は「平成21年2月5日〜平成21年2月12日」です。で, val = doc.at(xpath).text p val.split(/〜/u) #->["平成21年2月5日〜平成21年2月12日"] となってしまいます。 p val.split(/日/u) #->["平成21年2月5", "〜平成21年2月12"] こっちの場合は上手くいくのですが,なぜでしょうか? ページそのものはSJISなのでNokogiriでパースするときそのように指定してます。 コードはUTF-8で-Kuオプション付けてます。 どうぞよろしく
これはひどい
> Git のソースコードを最初に見たとき、ヘンだと思ったこと:
> 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性が
> どうとか言わないで、
> そんなのウソに決まってるから。
*あんた* のほうこそ大ウソつきだ。
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが
使ってるためにさらに輪をかけてゲロゲロになっていて、どうし
ようもないゴミが簡単に生産されるようになってる。正直いって、
C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だっ
たとしても、それ自体、C を使う強力な理由になりうる。
Linus Torvalds
http://tabesugi.net/memo/2009/1a.html#152154
>>587 そのニョロニョロ文字は全角チルダ? 波ダッシュ? という問題だろうか。
レス番ミス。手打ちはいかんな。
がっつり初心者スレ向き
>>588 だな
kconv つまり nkf が ShiftJIS の 〜 を UTF-8 の「〜」に変換したものと
元から UTF-8 で書かれている「〜」が一致しないという問題だろう
前者は x301c で後者は ff5e だ
irb> require 'kcode'
irb> puts "%X" % "〜".unpack("U*")
FF5E
irb> puts "%X" % "〜".tosjis.toutf8.unpack("U*")
301C
ちなみにこの irb は UTF-8 環境
〜でやりたいときは直接書くしかないな
require 'kcode' ってなんか混じってるな .irbrc 内で kconv 起動して手抜いてるから変なことに
ねんがんのFlanagan本をてにいれたぞ!
そう、関係ないね
密林から今日届くらしいが、楽しみ これで駄本だったりしたら泣けるが、 まあ著者が著者だし変なことは書いてないだろう・・・・・・
感想楽しみにしてます。
みんなお布施なんだから買いましょう
Ruby 1.9 の変更点ってどこにまとめられてるの? ちゃんと公式で用意されてるはずだよね?
598 :
デフォルトの名無しさん :2009/01/26(月) 02:59:33
599 :
デフォルトの名無しさん :2009/01/26(月) 03:24:24
puts "文字" puts "文字" puts "\n" srand require 'readline' def try_answer(prompt) while buf = Readline.readline(prompt, true) yield buf end end difficulty = ($*[0] || 1).to_i difficulty >= 1 or raise "#{difficulty}: Invalid difficulty direction" answer = rand(30 * difficulty + 1) judge_table = ["文字1","文字2","文字3"] try_answer("文字 > ") do |line| try = line.to_i result = try <=> answer puts "#{try}#{judge_table[result]}" break if result.zero? end プログラミングに興味が出て、いろいろさがしてたら 学校の過去の資料にこんなプログラムがありました。 これはどんなプログラムなんでしょうか? 一文一文の意味を教えていただけないでしょうか?よろしく おねがいします。
601 :
デフォルトの名無しさん :2009/01/26(月) 03:46:00
おなじなのありましたね。。 ただ、文中の difficulty = ($*[0] || 1).to_i difficulty >= 1 or raise "#{difficulty}: Invalid difficulty direction" と puts "#{try}は#{judge_table[result]}" break if result.zero? というのは、どのような効果があるんですか? その上のresult = try <=> answerで自分が選んだ数字と実際の回答を比較してるんですよね?
確かに最初のは教育に悪いな
>>601 if ARGV[0] then
difficulty = ARGV[0].to_i
else
difficulty = 1
end
if difficulty < 1 then
raise "#{difficulty}: Invalid difficulty direction"
end
こうだ
>>598 最終更新日が2007-03-17なんだけど、それ以降の変更は?
まさかそれ以降の変更点がないなんてことはないだろうし。
>>605 聞きたいんだけど、598と605をあわせたら1.9での変更点が網羅されてると思っていいのかな?
2007-03-17までの変更点は598で、それ以降の変更点は605にすべて書かれてあるという理解でいいの?
608 :
デフォルトの名無しさん :2009/01/26(月) 18:34:27
いいwけない
>まつもとゆきひろ理事長 やっぱり似合ってないw
松本教祖様の金集め活動か。最近金に困ってるの? 外人のフリーソフトの教祖様も金儲けで来日してたよね。 そんなに金欲しいなら、無料でソフト配布せずに、有料にしてしまえばいいのに。
>>612 金をキーワードにちょっとムキになると
頭の弱い思春期の男の子みたいですよw
そもそも有料で配布する→今よりもっと金が稼げる、と言う考えがまず甘い
年貢を強制する宗教は邪教 払いたい人が払えばいい 俺は喜んで払うよ
東北やら新潟やらで地震があっても、コンビニの寄付すらしないくせに
キャラ設定作らないと反論できないのって、要は完敗ってことだよw
>>605 のNEWSはChangeLog 4年分読んでまとめたから大体そろってるはず。eigenclassの記事とも照らし合わせた。
冒頭に書いてあるようにバグフィックスは除いてあるので、バグだったけどそれに依存してコード書いちゃったよ、というのは知らん。
eigenclassみたいな具体的な記述が欲しい向きには、リリース作業が終わったら暇なときに記事を書く。
>>605 のは、1.9.1から先端への変更点では?
でした
なんで間違えるかな・・・
ところで
式展開を含まない名前付きキャプチャのある正規表現リテラルが
左辺に来て =~ 演算子を使うときに
名前付きキャプチャと同名のローカル変数にマッチ結果が代入されちゃう機能は
あまり解説や紹介されてるのを見たことありません
NEWSにものってないようです
test = "foobar"
/(?<test>a+)/ =~ "zz aaaa zz"
p test # => "aaaa"
などと勝手に
test = Regexp.last_match['test']
相当の変数代入が行われちゃうという
もし知らなければ、勝手に変数の内容が変わっちゃう
ものすごくはまるような機能です
全然「勝手に」じゃないだろそれwww しかしNEWSに載ってないのは良くないね。
いやそれは名前つきキャプチャの本来の機能だから 同名のメソッドが既に存在するからキャプチャを止めますまたは例外を吐きます警告が出ますとか言う動作のほうが極悪
鬼車の機能だから割愛されてるんじゃないかね
624 :
デフォルトの名無しさん :2009/01/27(火) 15:29:43
そのスレをここで紹介する暇があったら、そのスレ立てた奴にいい病院を紹介してやれ。
立てた本人じゃないの?
>>622 名前つきキャプチャの本来の機能っていったって
ローカル変数代入まで行うこと無いだろう
本来の機能ってキャプチャの出現する順番とは関係なく引用できるようにするためじゃないの?
正規表現の自動生成や合成とかするときに便利なように
ローカル変数とのバッティングまで考慮して
名前付きキャプチャの名前を決めなきゃならないのは面倒くさいよ
代入と一緒で実際のマッチが行われなくても、パースさえされればローカル変数が作られるし
/(?<foo>.*)/ =~ 'hogehoge' if nil
p foo # => nil
ローカル変数作るのはやりすぎだと思う
StructのようにMatchDataに名前付きキャプチャ結果へのアクセスメソッド作るくらいで勘弁して欲しい
result = /(?<foo>.*)/.match 'hogehoge'
p result.foo # => "hogehoge" (になればいいんじゃね)
ローカル変数まで作らなくても
/(?<foo>.*)/ =~ 'hogehoge'
p $~[:foo] # => "hogehoge"
で十分だと思うけどね
予約名と同じローカル変数は作れないのだから そもそもが不完全な機能なわけだし /(?<end>.*)/ =~ 'hogehoge' p $~[:end] # => "hogehoge" p end # もちろんエラー
rubyってあんま接頭辞つけないよな。 キャプチャするなら「c_foo」とかバッティングしないようにするとかは禁忌なのか?
>>627 うむ気に入った、苦しゅうない
「名前つきキャプチャのデータを使う場合はMatchDataからアクセスしてください」を速攻進言するとよいぞよ
ここでローカル変数出すのは確かになんていうかRubyっぽくないよね
>>629 別に禁忌ではないと思うが
そもそも普通に名前付けても、あんまり変数名がバッティングすることがない
あ、でも定数なら接頭辞付けることもあるな
他の言語ならメンバ変数やらスタティック変数やらに m_やs_とか付けたくなることはあるけど、Rubyは@とか@@だしね。 よく出来てるわ。
この流れでよく出来てるはなかろう
634 :
デフォルトの名無しさん :2009/01/28(水) 13:04:38
1.9.1はいつリリースされるの? 1/25じゃなかったのか。
1.9.1は幻でした。
>>633 バッティングしようがないようにできてるから
「くできてるでいいのでは?
なんで ruby を使うようになったの? オレは、2000年ごろ CGI ブームで、perl を覚えたが、 本屋で、原先生の ruby 本を、立ち読みしたときに、 「これだ!」と思って、すぐに購入。 はじめての言語は、Java だったんだけど、 当時の Java は、テキストの処理が面倒だった。 HTML を引っ張ってきても、その後がやりにくかった。
pythonのインスタントハッキング見て激怒したから
Matzの本読んで感動。でも、常用してたのはPerlだった。 CGIといえばPerlのことだったし。 本格的に使い始めたのはtdiary以降かな。
研究室の先生に洗脳されたから
641 :
デフォルトの名無しさん :2009/01/28(水) 20:19:32
何この流れ。。。
CGIアプリケーションを書きたいが、Perlはイヤだ さてどうしたものかと思っていたところでRubyを見つけた
, ,:‘. 。 + ,.. ’‘ + ,.. . ..; ', ,:‘ . .; : ’ ' ,:‘. あ あ ,:‘. + .. ' ,:‘. . ...:: ’‘ ’‘ .; こ ん な に お 断 り し た い 。 . 。 気 持 ち に な っ た の は ,:‘. 。 '+。 初 め て で す .. ' ,:‘. :: . .. .. ' ,:‘. ハ,,ハ ( ゚ω゚ ) Ruby
tDiaryの実装言語がRubyだったので
そういえば、YuguiがtDiaryは参考にしてはいけないって言っていたね
0が偽でなかったので
偽はnil☆
nilが偽なのはキモい falseだけにしてくれと思う
falseが偽なのはほとんどの言語がそうじゃん nilは必要悪
Common Lispをいじってると、 むしろfalseが何で必要なのか分からなくなる
そのへんは non-nil の概念がしっくり来るかどうかにかかってるな
むしろ0と""を偽にしてもらいたい
[]と{}は?
だから各クラスに基底みたいなの規定するんだって Integer は 0、Float は 0.0、String は ""、Array は []、Hash は {}
んで、文字列と数値は混ざること自体が設計不備だし、コレクションは empty? でいいじゃんという話でループだな
それ偽と関係無いし ただの初期化なり初期値の話じゃん
RSSリーダーでRuby公式サイトの更新を発見 1.9.1正式版きた!これで勝つる! と思って開いたらサーバーメンテのお知らせだった
Ruby 的には 0 は Integer のインスタンスのひとつだし "" は String のインスタンスのひとつだよな
それ以上のもんではないわ
いっそ Object#false? メソッドでも作ってそれを if が読むことにでもするか
class NilClass
def false?; true; end
end
class Integer
def false? self.zero?; end
end
class String
def false?; self.empty?; end
end
>>660 なんかそういえばそんなのどっかにあったな的ライブラリの脆弱性告知だったときもがっかりさんだぞ
>>660 期待したのに、おまいにはがっかりだよorz
いまだに1.8.6使ってるんだけど1.8.7や1.9.1って結構変更点ある? (´・ω・`)時代に乗り遅れてる気がするんだ。。。
>>663 今のところ、バージョンアップしなくてもたいして問題はない
1.8.7の追加メソッドは単純に便利なのでバージョンアップおすすめ
1.9.1の変更点は相当大きい(非互換もある)ので
乗り換えるのは後としても、一通りどんな変更があるかは知っておいた方が良い
665 :
573 :2009/01/29(木) 06:20:06
文字コード変換は明らかに機能じゃないだろ。おまけみたいなもん。
文字コード変換データを追加しましたと書けば煽られることもなかったのかな いや、こいつは何書いても煽るだろうから意味ないかな
668 :
663 :2009/01/29(木) 08:34:12
>>664 thx☆
業務で使ってるから簡単にバージョンアップができないんだorz
とりあえず1.9.1での変更点押さえといていつ移行しても問題ないようにしとく。
時代に取り残されてなくて良かったw
1.9の安定版のリリースまだぁー!?(AA略
>>664 >1.8.7の追加メソッドは単純に便利なのでバージョンアップおすすめ
おれもそう思う。1.8.6から1.8.7へのバージョンアップはリスクも少ないし(ないわけじゃないけど)、
メソッドがたくさん追加されたから、今後もRubyを使うつもりならどんなメソッドが追加されたかを
知っておくためにも、1.8.7にしたほうがいい。
>1.9.1の変更点は相当大きい(非互換もある)ので
>乗り換えるのは後としても、一通りどんな変更があるかは知っておいた方が良い
うん、1.9.1は変更点だけ押さえておけばいいと思うよ。
おれも1.9.1ではMySQLドライバがまだ動かないから乗り換えるつもりはない。
> ruby -roptparse -ve "OptionParser.new{|opt| opt.parse!(ARGV)}" かめはめは ruby 1.9.1p0 (2009-01-20 revision 21700) [i386-mingw32] C:/local/lib/ruby/1.9.1/optparse.rb:1262: warning: regexp match /.../n against to Windows-31J string C:/local/lib/ruby/1.9.1/optparse.rb:1278: warning: regexp match /.../n against to Windows-31J string optparse.rb中の正規表現に『n』がついてるために警告が出る 修正求ム --- optparse.rb.0 +++ optparse.rb @@ -530,3 +530,3 @@ # - def accept(t, pat = /.*/nm, &block) + def accept(t, pat = /.*/m, &block) if pat @@ -1261,3 +1261,3 @@ # long option - when /\A--([^=]*)(?:=(.*))?/nm + when /\A--([^=]*)(?:=(.*))?/m opt, rest = $1, $2 @@ -1277,3 +1277,3 @@ # short option - when /\A-(.)((=).*|.+)?/nm + when /\A-(.)((=).*|.+)?/m opt, has_arg, eq, val, rest = $1, $3, $3, $2, $2 @@ -1504,3 +1504,3 @@ # - accept(String, /.+/nm) {|s,*|s} + accept(String, /.+/m) {|s,*|s}
2chに書き込んだコードはライセンス上取り込めません
>>672 出所を隠してコピペしてメールすればいいの?
単純な修正diffだし、「俺が考えた!」って強弁すりゃ別に問題ないんじゃね
go redmine
>>672 逆に出所を明記して取り込んでもらうのもいいんじゃ?
まあいいじゃん。 この部分は未来永劫直さないってことで。
1.8.7とか1.9.1の話出てるが1.9.0の話が出ないのが不思議
>>677 管理者が「ここに書かれたコードは絶対にフィードバックを認めません」と明言しない限りは…
あーなんかややこしい問題になりそうだ
なんか互いに「あんたとまちがえられたことあるぜうはは」とか 言い合った仲だから大丈夫だな。
>680 明言する以前にムリだろ。 >677読みゃわかるけど、書き込んだ時点で権利を譲渡しているようなモンだからな。 (と2chは主張する)
>>682 どっちがムリなの?
コードを自由に使うこと?
管理者が使うことを禁止すること?
>683 両方。掲示板運営者の意向次第。 権利を奪い取って責任だけ押し付ける内容になってるな。
一般的な書き込みとオフィシャルまとめと非公式まとめ本廃絶には役立つ可能性があるが、 OSSのようなものとは相性悪いな
この場合(>671)はnを外すという点が鍵で パッチ自体は誰が書いても同じようになるものだから 創作性があるとは認められなくて取り込むのに問題は無いと思う。
javaでもテキスト処理楽しいぞ、バイト変換の1クッションがrubyより面倒に感じるが。 権利は認めません、でも何か責任が発生したらどこぞにIP提出して追いかけるよってことだしな。 パブリックフリーじゃないし。 法的根拠がそもそもあるの?とは思うが。日本だと著作権放棄は簡単に出来ないのでは?
著作者人格権(日本の法律上、著作権とは別)は放棄できないことになっているけど
匿名掲示板に書き込んどいてそれを主張するのも変な話ですよね。
また、2chの投稿規約も法的に問題があることが裁判で認められれば、その箇所は無効になります。
でも、ちょっとしたパッチ程度なら
>>686 でFAかと。
CGIアプリケーションを書きたいが、Perlはイヤだ さてどうしたものかと思っていたところでRubyを見つけた しかしドキュメント的に推奨されているらしいCGI.rbを 使ってみたが、なにこれPerlと変わんねーっつーか Perlよりひでーと思っていたところでPythonを見つけた 今際幸せです
Pythonスレはこんなのを相手にしてるのか・・・・・・不憫な
あっちは基地外が棲み付いてるな
rubyのCGIライブラリはホント癌だと思う。ほとんどのユーザがつまづくよね。 いいかげん置き換えるなりすればいいのに。 匿名掲示板に書き込むと主張できなくなる根拠が不明。法令か判例でもあるの? 電車男とか匿名で出版すると著作権無く成るのか?
>>690 が言ってるのはCGI.rbだからたぶん野良のCGIライブラリなんじゃないか?
cgi.rbは1.9ではCGIAltにリプレースされてるらしい。
インターフェイスはそのままだけど、中身はかなりマシになってる。
>>694 齟齬問題が発生したときにあなたが責任を持ってオリジナルと派生を除去してくれるのなら、
オリジナルライセンスのコードを取り込んでも一向に構いませんよ
それができないのなら、Rubyのライセンスに従わないコードはRubyのコードに混ぜることはできません
>>696 まあそれだけの話だな
法律上有効かどうかとかあんま関係ない
うざいからMLでやってね
俺は歓迎
MLでやるような内容を2chでするなよ
はぁ?
>>702 2chにパッチ貼ると法律上の問題が出てくるから
どうしたらよかろって話し合ってるんじゃないか
ここでカタを付けておくべき問題でしょ
てゆか、Rubyスレだけの問題でもないだろこれ
他のスレのことは知らん
ライセンススレに移って議論するのがいいんじゃない?
『こんな話が出てる。 パッチも出てるから自分で探して当てるよろし。』 それで探せず当てれずうpよろでは何も身に付かないのでは。
709 :
デフォルトの名無しさん :2009/01/31(土) 03:45:21
Ruby 1.9.1 アゲ
・人の中で浮いてしまう ・幼児期は他の子と遊ぶより一人遊びが好きだった ・同年齢の人と波長が合わない ・人との接し方のマナーやルールがよくわからない ・意図せず人を傷つけて嫌われてしまう ・暗黙のルールにいつまでたっても気づけない ・変なところで積極的すぎる ・自分の関心のあることだけを一方的にしゃべり、しゃべり終えたら満足して相手の話をきけない ・会話が長続きしない ・話し方が簡潔でなく回りくどい ・曖昧なこと、ファジーなことが苦手 ・細かいところにこだわる ・独り言を言う ・駄洒落や語呂合わせが好き ・融通がきかない ・電車、河や水の流れ、風にゆれる草木、雲などを延々と見続ける ・こだわりが強すぎる ・柔軟性に乏しい ・予想外の事態に対処ができない ・コレクション癖が普通より強い ・機械的記憶力が優れていることが多い ・自分の行動パターンに沿えない時は不機嫌になる ・ものまね遊びが好き ・ビデオやDVDに録画しまくって見ない ・模倣して習得することは苦手だが、模倣なしに自分一人でやると出来る ・独学でないと学べない
711 :
デフォルトの名無しさん :2009/01/31(土) 04:38:08
Ruby1.9.1キタ━━━━━━(゚∀゚)━━━━━━!!
712 :
デフォルトの名無しさん :2009/01/31(土) 04:40:30
Ruby1.9.1キタ――――――(゚∀゚)――――――!!
713 :
デフォルトの名無しさん :2009/01/31(土) 04:49:51
Ruby1.9.1キタ━━━━━━(゚∀゚)━━━━━━!!
p0がp50くらいになったら入れる
1日以内に入れ忘れ再リリースがあるほうに賭ける
バグが無くなったら入れる
>>716 そして2.0のリリースを待つ事になるのですね、わかります。
うおおおおついに出たか! 1.9.1対応のExerbやRuby/SDLの登場も楽しみだ
>>716 バグも言語仕様と考えれば気にする事なくバージョンアップできますよ☆
寿命短くてすぐに1.9.3が出る に賭ける
ところで、記述を見つけられなかったんだけど Rubyスクリプトをプリコンパイルする機能(test.rb -> test.rbc)は、結局付いてないんだよね? もし記述あったら教えて欲しい
>>720 1.9.0みたいに1.9.2も扱うのですか?
そういうルールになったんじゃなかったっけ?
1.9.1ってstable?
4時間経ってもparse.oのコンパイルが終わらないようなバージョンをstableと呼びたくありません …っかしーな、途中でなんか割り込まれたのかな
>>725 gcc 4.3使ってる?
gccのバージョンによっては最適化でものすごく時間がかかることがある。
デフォルトの-O2だと、それなりに速いマシンでも数分とか。
make optflags=-O0とか、逆に-O3とかでやってみるとどう?
:~$ gcc -v Using built-in specs. Target: i486-linux-gnu コンフィグオプション: 以下略 スレッドモデル: posix gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) だそうな いやこのマシン400MHzくらいしかなくて遅いんだ きっとなんかどっかでコケたんだと思うんだが
>>727 >きっとなんかどっかでコケたんだと思うんだが
コケたならログ見たらわかるだろw
ログ取ってないのか?
やっぱり最適化だと思うよ。 2.40 GHz + メモリ 1 GB + gcc 4.3.2 (i686-pc-linux-gnu) で parse.c のビルドにかかる時間を測ってみた。 -O2 : 215.923 秒 -O3 : 7.700 秒 -O0 : 1.420 秒 gcc の問題だろうね。遅いだけだからバグとはいえないけど。 そういうわけで、make optflags=-O3 を試してみるとよい。
寝る前にparse.cのコンパイルやってた 起きてもparse.cのコンパイルやってたっていうかHDDのスワップ音で目がさめた いいよ、もっぺんやるからさ
OSがタコなのをRubyのせいにしてんじゃね
>>725-730 漏れも同じ症状出るんでCC=gcc-4.2で回避してた
-O3だと時間かからないのか、気付かなかったよ
ちょ O2 でだけ異常ってバグに近いだろ
735 :
127 :2009/01/31(土) 12:25:30
初心者スレでは答えてもらえなかった(答えられる人がいない?)ので,再度質問です。
XML宣言のencodingを変更するには、どうすればいいでしょうか?
(<?xml version="1.0" encoding="UTF-8"?>のこと)
doc = Nokogiri::XML(open("index.html"))や
doc = Nokogiri::XML::Document.newで作った
Nokogiri::XML::DocumentクラスとNokogiri::XML::Readerクラスの関係がわからなくて、
Nokogiri::XML::Reader.encodingメソッドすら使えていません。
ttp://nokogiri.rubyforge.org/nokogiri/の読み方もまだまだ初心者ですみません 。
現在to_s(to_html,to_xml)をsub!して変更してるけど,ちょっとスマートでないので
>>721 プリコンパイルされたバイトコード読む機能はついてないです
バイトコード(生のじゃないけど)をロードするコードは実装されてますが
Rubyからは呼び出せないようになってます
不正なシーケンスのバイトコードのベリファイが出来ないからだそうで
メソッド登録部分のソースがコメントアウトされてます
なので、Cで機能拡張作ればバイトコードを読み込むように出来るんじゃないでしょうか
なんか、適当にフォーマットでっち上げてヘッダとかが違ったらはねるようにするとかで
実際に速くなるのかどうかはわかりませんが
もし速くなるのであればCGIとかでうれしいかもしれません
そのうちにRuby本体に付くのでしょう
まつもと×笹田、Ruby 1.9を語る (2007/12 1.9.0リリース直前のインタビュー)
http://www.atmarkit.co.jp/news/200712/25/ruby.html ――プリコンパイルしたバイナリコードをはき出すということですか?
笹田 ええ、今年の12月に出すバージョンには入れていませんが、そういうことを考えています。
まつもと すでに道具立てはそろっていますから、やればできるんですけどね。バイトコードを出したいという人は結構いるんですけど、どのぐらい意味のあることなのか、個人的にはちょっと分かりません。
笹田 少なくともわれわれの興味ではないです。
>少なくともわれわれの興味ではないです。 この一言が全てだな >バイトコードを出したいという人は結構いるんですけど、ど >のぐらい意味のあることなのか、個人的にはちょっと分かりません。 皆で分からせるしか道は無い
Pythonかelispから流れてきたバイトコード原理主義者か?
バイトコードに原理主義ってあるのかなぁ。
740 :
デフォルトの名無しさん :2009/01/31(土) 13:53:28
iソ! iミ;! iミ! ,.==、、_ ,__,,,..、、、 i;;リ i^iト. _ィェァ了 (ェoヮ、 /!7 ______________ Yl.| ´!| |!` ! ! } / レl /u__,ゝ i:l‐' │ 全然笑えないんだけど li / _二' _、〉 i l < こういうのが今のム板なのか? ______-ー;;;;;;;;;;;;ヽ ´  ̄ ` i/;`''ー-、,,,, \正直昔のほうがいいだろ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/;;;゙ヽゝ、 , ノ// ;ヽ;;;;;;;;;;;;;;"''\_____________
ワードコードを表に出さない理由の一つに、 試行錯誤の過程で命令セットの仕様が頻繁に変わるので、互換性を保証できないって点があったかと思う 現時点でどうなのかは知らないが
exerbがやってくれてるので横取りすれば出来るとおも
-> がλの文字に似てるから、lambda のシンタックスシュガーってどうなん?
>-> がλの文字に似てるから ???
-< と λ は似てるけどなあ
>>743 Haskellの先祖系の言語のどれかに文句を言うべきだな。
Mirandaか?
/common' -I./- -I'../.././ext' -rpurelib.rb ../.././ext/ripper/tools/preproc.rb ../.././parse.y --output=ripper.y bison -t -v -oy.tab.c ripper.y make[1]: bison: コマンドが見つかりませんでした make[1]: *** [ripper.c] エラー 127 configure のとこでチェックとかしてくれないのかね
>>735 ざっとソース読んだ感じではNokogiri自体では方法はない。
NokogiriはXMLの生成にlibxml2を使ってる。
libxml2の内部エンコードはUTF-8で、別のエンコーディングでXMLを出力したいときには、
(libxml2 の関数である) xmlSaveFormatFileEnc などを使う必要がある。
NokogiriはxmlDocDumpMemoryというエンコーディングのハンドリングはしない出力を行う
関数を使ってるので(ext/nokogiri/native.c)、UTF-8固定になるはず。
しまった手ぇ抜いた、前みたいに /usr/local/bin/ruby1.9 とかにデフォでインストールされるんじゃないんだ
>>748 tarballにext/ripper/ripper.cがないってこと?
とりあえずwindowsに1.9.1を入れてactiverecordを使用したら、mysqlとsqlite3でエラーがでた。 両方ともファイルが見つかってないみたいだけど、ファイルちゃんとあるしな。 ドライバ側が1.9.1に対応してないの? 【mysql】 !!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql. C:/development/ruby/lib/ruby/gems/1.9.1/gems/activesupport-2.2.2/lib/active_support/dependencies.rb:153:in `require': 126: 指定されたモジュールが見つかりません。 - C:/development/ruby/lib/ruby/gems/1.9.1/gems/mysql-2.7.3-x86-mswin32/ext/mysql.so (LoadError) 【sqlite3】 C:/development/ruby/lib/ruby/gems/1.9.1/gems/sqlite3-ruby-1.2.3-x86-mswin32/lib/sqlite3/database.rb:621:in `load_driver': no driver for sqlite3 found (RuntimeError) c:\>ruby -v ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32] c:\>gem list *** LOCAL GEMS *** actionmailer (2.2.2) actionpack (2.2.2) activerecord (2.2.2) activeresource (2.2.2) activesupport (2.2.2) mysql (2.7.3) rails (2.2.2) rake (0.8.3) sqlite3-ruby (1.2.3)
>>751 configure スクリプトが bison の存在チェックを行っていないってことだろう
パッケージなんなりでインストールすりゃいいんだが
何のための事前 configure なんだよという気はちょっとするな
まあ、野良 make するような人のマシンにはほぼ最初から入ってるから脳がスルーしたんだろう
というかripper.yが再作成されているのが良くわからん。 もともと生成済みの ext/ripper/ripper.c があるので bison 要らないはず。
>>754 そっか。その辺りが対応しないとまだ使えないなぁ。
>>756 初心者スレテンプレに書こうか迷って結局書かなかったんだが、
1.9.1 は標準ライブラリ以外に頼らずに独立独歩でアプリケーションを書けるような人向け
rubygems のライブラリ使わないとスクリプト書けないとかいうような人はぶっちゃけお断り
ブロック引数にブロックが取れるようになったので ->(){}はいらないようになった気もするけれど ->(){} が無いと記号だけのRubyスクリプトが書けないそうなので、残しておいてね
どこまでも趣味の言語だねえw
mysqlは、配布元のtmtm.orgに1.9以降対応バージョンがあるんだが、 gemがない、という状態だったと思う。
昔はbisonがない環境ならBSD yaccを使うようになっていたので configureがそのへん見るようになってたはずだが、bison必須になって 手ぇ抜いたか?
で、早くなったの?
作るのはスクリプト言語が楽でも、ソースは出したく無い事が多くて、バイトコンパイルできてれば多少は気持ちがいいかな。Cとかjavaで再生産するの面倒だったし。 難読化とかの枠組みもあるといいけど。 実行系環境では毎度スクリプトが実行されるたびにコンパイルされるメリットを感じないので、コンパイル機能を外せると嬉しいかも。ローダと実行部分だけみたいな。 サンドボックス的にコンパイラとか入れたく無いし。 早々簡単にバージョンアップできるような実行環境ばかりでもないしなあ。検証するのも手間だし。 早く徹底的に枯れてくれたほうがお守りは楽。
Javaみたいにかっちりバイトコード仕様とかVM仕様とかを決めてやってる わけじゃないから難しいんだろな。
767 :
721 :2009/02/01(日) 11:48:45
>>736 ありがとう
実装は不可能ではなくとも遠そうだな
>>766 Javaから政治的正しさによる安定を取り除いたら何も残らんしな
過去にMLだかなんかで『RubyはMatzのおもちゃ』と言っていた人がいるけれど、 その通りなんだよね。 良くも悪くも流動的で実験的な言語。
Rubyはおもちゃ
おもちゃには違いないけど、全然実験的じゃ無いよ。 かなり保守的だし。
保守的っていうか宗教的だよね 勝手に言語開発してるだけならよかったんだけど 最近はどこからともなく現れて、仕事に口出ししてくるから 邪魔なんだよなぁ。
直近に
>>759 もあるし、さんざん言われ続けてるだろ。今更何を
>>773 変化に対応できないお前の方が会社の邪魔かもな。
>>772 言語自体は先進的って程でもないけど、
面白い試みは出てきていると思う
雨後の筍状態のテストツール群とか
Rubyはお餅屋
Rubyといえばomoti
信者は、教祖のお言葉にお花畑だけど、部外者は醒めてるからねえ。 ビジネス方面で嫌でも使う機会が増えて来ると、更に荒れると思う。
○○さんが言ってたとかなw
松江とかひどい状態なんだぞ。 どこでもRubyだもん。Ruby以外のことがしにくくてしょうがない。 Rubyにあらずんば人にあらずみたいな気がする。 Javaでやりますっつっても役人に全く受けない。予算が付かない。 Rubyの波に乗りなさいって言われてもなぁ。。。。 塩屋が邪魔くさくってしょうがない。
今国って調達と実装別けてるのに なぜRubyで受けがよくなるの? 何でなの?ねぇねぇ
日本語関係の安心感かな。
塩屋翼?
>>783 この期に及んでJavaしかできない体に改造されてしまったんですね。かわいそうです
入社してからずっとJava さすがにもう飽きた オレオレスクリプトでRuby使ってるぐらいだな
動的言語はJavaを置き換えることはできね まあ、わかってたことだが
海外でもCobolNGとか言われてて JAVAはコンピュータシステムが後30年存在するなら 25年は絶対に案件があるって言われてるねw まじでうざい
まじでうざい
ところで、オープンソースと町興しがどう繋がるのか 記事を読んでもよく分からない俺のために、誰か三行で解説お願いします
>>749 遅れましたが,レスありがとうございます。
初心者スレよりもちゃんと答えてもらえて,レベルの高さに,感謝
だめならだめというレスも次のステップにつながります。
>>792 村興ししようと
国とmatzに利用され
民衆公認公開実験場
標準で入ってないモジュールに依存しないでくれよ… > ruby -v ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32] > irb --------------------------- ruby.exe - コンポーネントが見つかりません --------------------------- readline.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションをインストールし直すとこの問題は解決される場合があります。 --------------------------- OK ---------------------------
つ --noreadline
readlineは標準でext/readlineとして付属してるはずだが、 Windowsでは事情が特殊なのかしら。 あ、ruby bindingじゃなくてライブラリが入ってないのか。 とりあえず、.irbrcで irb/completionしてたら外せ。
irb --noreadline だな _irbrc ファイルに IRB.conf[:USE_READLINE] = false でもいい これ、Windowsでmswin32版Rubyダウンロードした人ほぼ全員引っかかってんじゃないだろうか
799 :
デフォルトの名無しさん :2009/02/02(月) 14:52:09
クリーンな環境で動作テストを指定内に一俵
普通にパッケージに入れないポリシーになってるだけだろ 俺が1.9.0インストールしたときも同じだったし
俺もポリシーだと思ってた 自力で入れろって話
自分で入れろと書いてあるのに入ってないとか文句を言うのはどういう知的障害?
Rubyって取り巻きの質が悪すぎるね。
>>804-805 リリースドキュメントには書いていないしデフォルトでオンになっていて
ポリシーだと言い張るのはちょっとどうかと思うが。
1.9.0なら許されたと思うが、1.9.1でやっちゃいけないな irbを書き換えとくべきだったな
>>806 そう思ったならお前が良い取り巻きになればいい。
乞食のまま文句つけてもねぇ。
ますます質が悪くなる
>>806 禿同。PerlにもPythonにもそういう香具師は一人もいなかった
いたら切腹してやる
>>807 readline.dllがない環境でtrunkをコンパイルしたらreadline.soなしでもirbが動いたので
デフォルトでオンになってるのはそのパッケージのコンパイル環境がそうなだけでは?
自前でコンパイルして駄目だった人がいたならそれは問題だと思うが
>>812 じゃわかりにくいかも知れないので補足、連レスすまん
「デフォルトでオン」なのはおそらくruby-1.9.1ではなくてRuby-mswin32パッケージの仕様で
そのRuby-mswin32配布ページでは説明がされてるので、リリースドキュメントは関係なくね?ってこと
重要なのはユーザーが安定版を手順通りインストールしたら エラーが出ずにすんなり使えるということであって 責任の所在がどーたらなんてどうでもいい話。
>>814 ソースから手順通りインストールするならエラーは出ない。
問題のバイナリを配布ページの説明通りにインストールしてもエラーは出ない。
ここで騒いでる奴は何を騒いでるの?
>インストールをよく読んでからインストールしてください。
>読めない人、読んでも意味が分からない人には説明のしようがないので諦めてください。
>なお、以下の拡張ライブラリは、この配布物に含まれない外部のライブラリに依存しています。
>>814 はどこの手順を見てるのかw
とはいえmswin32バイナリの./README.1stに一言あってもいいとは思う。
ドキュメントに一文入れれば解決だと思ってるあたりが痛いな。 本気でそれが一番正しい姿だと思ってるの? ただ不備を指摘されて感情レヴェルで逆上しちゃってるだけだよね?
>>817 正しさを求めるなら、おまえさんが正しいインストール手順を
書いて突きつけることだろうよ。
(う)版パッケージは初心者に優しくないよねって話ならそれは同意する そこでつまずいちゃう人はarton版使えばいいじゃん あるいはoneClickが出るまで様子見するとか
Rubyって、mswin32版を正式にサポートしてるの?
Windowsは端から相手にしてませんが
教祖様が嫌ってるのは確かだけど あまり感情に走るのもどうかと思う
ただのリソースの問題 Windows専任ができればみんな喜ぶと思うよ
嫌ってるってか分かんない状態なんじゃw そりゃ万全のサポートとはいかんわ
1.9.1対応のドキュメントってあるんでしょうか?
事故解決しました >ソースがドキュメント つまりないということでした
oneclickって1.8.6から更新されてないけど1.8.7や1.9.1版出すの?
惰性で1.6使ってるんでるびまで1.9.1の新機能紹介する特集やって欲しい。
惰性にも程がある…
惰性でピカチュウ本のままの俺が通り過ぎますよ
>>832 素直に読むと、redhat系よりはきっちりサポートしてますってこと?w
2009年中に1.8.8出すってRubyは言ってるけどoneclickは開発終了したの?
WindowsなんてマイナーOSはサポートしなくてよし。 俺のまわりはみんな林檎かUbuntuにしてしまった。
837 :
デフォルトの名無しさん :2009/02/02(月) 23:27:56
>>836 Windows環境はC#でもつかっとけーw
企業で仕様のない言語を使うやつはキチガイ JavaかC#をつかえ
WindowsがマイナーOSだというやつは現実を見ないキチガイだろ その現実をよしとするか排除の方策を立てるかは別として
oneclickみたいな全部入りのWindowsインストーラーみたいなのを日本語版公式でも用意すべきだとおもうよ Ruby公式サイト英語版だとone-click installer使っとけ みたいに書いてあるけど 日本語版ダウンロードページでは ・どれをダウンロードすればいいのかはMicrosoft Windows版のビルド環境による違いを参考にしてください。 とか言ってる場合じゃないだろう、そんなの一般人にはわかんねーよ 「とりあえず使ってみたい人は全部入りの〜〜を入れてください」 みたいなのが最初にバーンとあってそのあとで 個々のビルド環境による違いとか各種バイナリを紹介しろって arton版だと依存ライブラリとかも全部入りなので、とりあえずarton版を入れろと で、リンク先のActiveScriptRubyサイトに行くと 「ActiveScriptRuby リリース 1.8.5.2」ってなってて あれ、1.8.7じゃないの?ってなる可能性がある 実際の配布ページにいくとActiveScriptRuby 1.8.7(p72)を配布してるんだけどね (う)版なんて、外部の依存ライブラリが分かれてて初心者お断りだし 初心者が外部の依存ライブラリもインストールするのは無理っぽいだろ
ついでに、まるごとインストーラーにTcl/Tkも同梱しろといいたい 標準で馬鹿でかいRuby/TkライブラリもついてるのにTcl/Tk本体が別だと意味が無い UNIX系だとTcl/Tkは標準装備だからいいかもしれないが Windows版は配布ファイルにTcl/Tkも同梱すべきだ Pythonの公式だとインストーラーが一個しかないしTkinterも同梱だ Rubyの場合はTkinterじゃなくて Tcl/Tkそのもの丸ごとなんだけど
842 :
デフォルトの名無しさん :2009/02/02(月) 23:50:14
>>840 そういう面倒なのを松江の連中がちゃんとやってくれたら評価するんだけどなあ
別に広告付きページになってもいいからやって欲しい
ActiveTclをダウンロードするかどうか尋ねてもいいと思う
3歩譲って自動インストールされなくても、解説ページくらいあってもいいよね いまRubyのチュートリアルってあるんだっけ?
もうActiveStateあたりに投げちゃえよ。先方が興味を持てばだけど。
IronRubyにちょっとだけ期待してる俺
>>844 るびまに常設ページがあったはず
Pythonなんか公式からWin版インストーラ落としてくれば
Tcl/Tkまで一発で入るからなあ
出来るならぜひやってほしい
> るびまに常設ページがあったはず 有機的に繋がってねええええ
Rubyはドキュメントが弱いと言われてるが、非公式の解説記事とかまとめとかはそこそこ多い アクセスできるように体系立ててまとめる人がいないだけ
850 :
847 :2009/02/03(火) 00:02:57
>>848 書き込んだあとに数レス読み返してみて
自分でもびっくりしたわ
WindowsがマイナーOSって言う香具師初めて見たw 貴重な初体験☆
>>832 Debian (しかもIA32だけ) 以外のLinuxが全部 "perhaps"、Windowsが ”best effort” って、
それじゃビジネス用途には使えませんって言っているようなものでは...。
そういう部分をカバーするところにご飯の種を見つける人に期待
Rubyの公式ページ、Wikiにならんかなぁ……。認証ありでいいから。 今まで出た話、誰かが手を動かし易い環境を作れば、半分くらいは解決すると思うんだ。
結局人任せ。。。これが日本の文化
今って、RubyのまとめWiki的なものってないのかな? リファレンスとは別に、誰でも情報を集められるようなWikiが欲しい
>>857 初心者スレにメンテのあまりされてないまとめWikiへのリンクはあるよ
>>858 過去スレにある「初心者スレまとめHiki」「Ruby Portal」ってやつで合ってるよね? thx
IronRuby はちょっと触って CRuby 以上にカオスで吹いた。 しかし、バグがおもしろいほどぼろぼろ出てくる上に、 Ruby 経由で .NET ランタイムを叩けるのでいろいろな意味でおもしろいのでおすすめ。 なお、今のところ IronRuby は(う)版ではまって愚痴る人向きではない。
>>855 リファレンスマニュアルのカオスはそうして作られたわけだよ。
>>840 >oneclickみたいな全部入りのWindowsインストーラーみたいなのを日本語版公式でも用意すべきだとおもうよ
アホでも使えるインストーラの作成はサードパーティがやればいいよ。
そんなところリソースを割くくらいなら本体の開発進めて欲しい。
もちろんお前が開発者になってインストーラ作るというなら止めないが。
>・どれをダウンロードすればいいのかはMicrosoft Windows版のビルド環境による違いを参考にしてください。
>とか言ってる場合じゃないだろう、そんなの一般人にはわかんねーよ
そりゃ一般人にはわからんだろうがプログラマならわかるだろ。
その程度のことがわからんほど他言語開発やOSの知識がないやつには
使いこなせないから帰れって言ってんだよ。本でも買っとけ。
わかんないやつほど862みたいなこと言うよね
>>861 カオスでも、変化がないよりは10倍良い
"ruby tk インストール"でぐぐってる人ってけっこう多いよね。俺のサイトは (Ruby/)Tkのインストールのこと書いたページなんてないのに、それでも リファラに検索結果ページがちょこちょこ混ざってたりする。
>>840 >arton版だと依存ライブラリとかも全部入りなので、とりあえずarton版を入れろと
>で、リンク先のActiveScriptRubyサイトに行くと
>「ActiveScriptRuby リリース 1.8.5.2」ってなってて
>あれ、1.8.7じゃないの?ってなる可能性がある
>実際の配布ページにいくとActiveScriptRuby 1.8.7(p72)を配布してるんだけどね
arton版入れた後にActiveScriptRubyだけ1.8.7(p72)にすると
動かなくなったりするよね?
>>863 言い返せなくて顔真っ赤なのを告白しなくても・・・
>>856 人より頑張ると、人より罵倒されるからね。
日本の場合は≪報酬≫がないからだろ
カギカッコで括ってあるなら、快をもたらすものなら何でもいいんじゃね
pythonのほうが上だわな
マンパワーじゃかなわん
全世界換算で言えばPythonと人数的にはそう大差ないと思うんだが、 Python使いには器用で優秀な人がやたら多く含まれてる印象 Rubyで楽しいことをやってPythonですごいことをするもんだから差がつく一方だ むろん、言語スタンス的には「それで構わない」んだが、一抹の寂しさが残るな
マゾを探してくれば、現状の罵倒だけが貰えるシステムに合致してるんじゃね?
マンパワーとしては原作者の時点で差がありすぎる。
普通にconfigure make installするだけじゃcoverage入らないのね opensslも--with-opensslが無いと入らなかったし --with-coverageとかないと駄目なのかなぁ
>>877 いやそんなわけはない。
「普通に」じゃないことしてないか? あとプラットフォームは?
>>877 gentoo linux x86_64でtarballを落して展開して./configure --prefix=~ &&make&&make installで
--with-sslの件は1.8.7, 1.9.1で確認
--with-opensslってconfigureにオプションを付けたら使えるようになった
880 :
879 :2009/02/03(火) 13:29:55
勘違い 1.9.1では直ってたわ
881 :
デフォルトの名無しさん :2009/02/03(火) 14:30:56
opensslよりgnutlsの方を使えるようにしてほしいな
あげてもた。すまん。
883 :
デフォルトの名無しさん :2009/02/03(火) 14:59:33
わかりやすくいうと RubyはLisp PythonはScheme ってことだな
>>883 つ 今の流れでは関係無い話な件について
おまえらがあんまり騒ぐから、(う)さんが「大事なお知らせ」を書いてくれたみたいだぞwww
どこに??
>>886 (う)さん=mswin32版rubyを配布してる人
あとは分かるな?
>>886 >2009-02-03
>大事なお知らせ
>
>当サイトの配布物は、使う人の技術レベルを制限するためにわざと手間がかかるようにしてあります。
>あれで困る人はこちらの要求する技術レベルに達していません。
>諦めてください。
>あるいは、技術レベルはともかくとして手間がめんどくさい人は、もっと親切なところへ行ってください
>(linkあたりが参考になるかもしれません)。
>私に親切を求めても無駄です。お応えする気は一切ございません。
「ruby、実行できなかったんですか!!!!????」 多分、僕が掲示板に書き込んだのを微妙に覗いたのだろう。はい、できませんでした。クソ言語ですたです。と答えた。 すると、「うちのHPは初めてですか?(答える間もなく)何故ライブラリをインストールしなかったんですか? readlineをインスコした後で何故実行しなかったのですか? ルールがあるじゃないですか。まずライブラリをというルールがあるじゃないですか!」 と18センチのまま一気にかましながら、持っていたノーパソを手放さずにこう言った。 「これをお出しすることは出来ません。マナーに反する人はお帰りください」
酷い話だなw
ほんとに書いてあるな。内容的にすげえなと思うが、 それに見合うようなふざけた問い合わせが殺到したのかもな。
暗黒の時代到来だなw
>>893 そうとうふざけた内容の問合せがあったんでしょ、きっと。
でないとさすがにあの内容は書かないと思う。
おお、やっとRubyが人口に膾炙したって感じだな 敢えて掲示板を設置すると殺到の内容がみんなにわかってもらえると思うぞ
Rubyを普及させる気があるのやら無いのやら不思議な対応だな
>897 いや、これ別にオフィシャルじゃないから 個人が善意でやってるようなもんだから、「懇切丁寧な無限サポート」の義務はない
フリーソフトを自前のサイトで公開してる人は、なんとなく見当つくかもしんないな
>>898 >個人が善意でやってるようなもんだから、「懇切丁寧な無限サポート」の義務はない
これは納得するけど
普及活動にオフィシャルかどうかって関係あるの?
バカ避けか〜 cvsでしか取れなくしておくとか、ドキュメントは英語のみとかいろいろあったなあ。
904 :
デフォルトの名無しさん :2009/02/03(火) 17:40:15
そうするとそれはそれで問題が、、、
そもそもあのサイトは普及活動なんか目的としてないんじゃないか。 今回一緒に変更されたんだと思うが、「はじめに」に 「mswin32・mswin64版rubyの開発に必要な情報収集のため」 と書いてある。 たぶん ruby 自体のバグレポートが欲しいのであって、あそこの 配布物についてどうこうという話は最初から聞く気がないんだろう。
公式から > Ruby-mswin32 mswin32版の安定版・開発版を随時提供 ってリンクされているサイトだけど、あくまでも有志サイトなんだもんな 公式でサポートされたRubyを欲しい奴はDebian使えって、まあ一貫してる、のかな
>>888 うわぁ…
てか昨日スレで暴れてたのは本人だったのかよw
908 :
デフォルトの名無しさん :2009/02/03(火) 18:47:03
>== Ruby 1.9.1のサポート予定 >Supported: > * Debian GNU/Linux 4.0 on IA32 >Best effort: > * mswin32, x64-mswin64, mingw32 > * Mac OS X (Intel) > * FreeBSD (amd64, IA32) >Perhaps: > * Other Linux distributions > * Mac OS X (PPC) > * mingw64 > * cygwin > * Other POSIX compatible systems. > * BeOS (Haiku) >Not supported: > それ以外。ただし、下記のプラットフォームについては誰かがメンテナになれ > ば"best effort"や"supported"になり得ます。 > * OpenVMS > * WinCE > * OS/2 > * bcc32 > * Classic MacOS
909 :
デフォルトの名無しさん :2009/02/03(火) 18:47:57
>Supported: > 公式に、完全にサポートされます。このプラットフォームでエラーがある間は > Rubyはリリースされません。 > プラットフォームが"supported"であるとは、 > * メンテナがいる。1人以上のメンテナがそのプラットフォーム上のRubyをメ > ンテナンスしている。 > * そのプラットフォーム用にRubyをビルドできる > * "make test-all"がおおよそ成功すると期待できる > * nightly build&test用の環境がある >Best effort: > サポートしたいとは思っていますが、幾つかのエラーが恒常的に残っていま > す。このプラットフォームで深刻なエラーがある間はRubyはリリースされませ > ん。 > プラットフォームが"best effort"であるとは、 > * メンテナがいる > * そのプラットフォーム用にRubyをビルドできる > * 既知の幾つかの問題を除いて"make test-all"に成功する > OR > nightly build&test用の環境がない >Perhaps: > たぶんRubyが動くとは思いますが、公式にはサポートされていません。 > これらのプラットフォームでエラーがあったとしてもRubyはリリースされ得ま > す。 > プラットフォームが"perhaps"であるとは > * 類似の環境が"supported"または"best effort"である >Not supported: > Rubyが動作するかどうか分かりません。
910 :
デフォルトの名無しさん :2009/02/03(火) 18:48:17
>== メンテナ募集 >誰かメンテナになって、下記のどれかのプラットフォーム用にRubyをメンテナン >スしていただけないでしょうか? > >この7つのプラットフォームは"perhaps"です。誰かがメンテナになれば"best >effort"になり得ます。 >* cygwin >* Interix >* Itanium platforms (Windows, GNU/Linux, ...) >* PPC platforms >* x64 GNU/Linux >* *BSD >* BeOS (Haiku) > >この5つのプラットフォームは"not supported"です。誰かがメンテナになれば >"best effort"になり得ます。 >* OpenVMS >* WinCE >* OS/2 >* bcc32 >* Classic MacOS
サポートという言葉の意味がわからない人がいる?
>>889 >この説明でRubyが使えるようにならなければあきらめて
>簡単にインストール出来るPythonを使ってください
が抜けてる
>>912 >この説明でRubyが使えるようにならなければあきらめて
>簡単にインストール出来るPerlを使ってください
の間違いでは?
Windowsユーザーは素直にPythonとPowerShellやったほうがいいよ。
PerlとRuby比べたら失礼だろ Pythonと比べてあげなきゃ
Windowsユーザーは素直にPerlとコマンドプロンプトやったほうがいいよ。
WindowsのPerlはマジで終わっているのでやめとけ
アンチは巣に帰れ
>>918 WindowsのRubyとどっちがひどい?
>>918 ひょっとして終わってるのはwindowsなんじゃ…
Windows版のRuby/Perlは糞じゃなく、Windowsが糞と言い出す始末
>>925 Unix/LinuxがWindowsのシェア抜くのももうすぐだし当たり前じゃん
久しぶりに見に来たら、なんだこの流れは こんなとこで口から糞垂れてないでお外で遊びなさい
>>928 口からうんちは出ません、出るのは下呂です。
>>899 そうなん? 俺はあんまし酷いの見たことないけど。
逆流すると出るよ。それをゲロというならゲロかもしれんが。
出ないよ 俺はうんちもげろもしっこもした事ないし、する人にあった事も無い
どんだけ2次元話のレスしてんだよwww
1.9.1が出てから荒れ始めるって不思議な現象だな・・・・・・・
吉永小百合はしないってタモリが言ってた。
美少年もトイレにいかないってパタリロの中の人が
中途半端なものを正式リリースで出すから荒れるんだよ
こんなに不満が噴出するなら1.9.0で一年待つ意味なかったね
windowsでプログラミングがしたいなら、悪いこと言わないからC#とか使っとけ。 M$純正以外の開発環境ではまるのは自己責任だよ。Rubyに限らずね。
>>908 でBest effortに入ってるWindowsを「自己責任」と言っちゃうんじゃ
debian以外は全部自己責任って話になるんじゃないの
そもそもWindowsでRubyで何するんだろう
>>940 windows開発の一般論というか経験則を言っただけです。
一般論とか経験則とか言われても…… Borland製品は今や見る影も無いがかつての王者だったし JavaとかPythonとか普通に使えてると思うが
debianで使っていようが自己責任になるものはなる きちんとしたサポートなんてこの世にあるわけがない
>>940 Debianでも自己責任だよ。無保証なんだから。
金も払わずに「サポート」しろだなんてずうずうしい。
なら
>>939 は別に
Windowsの問題に限定する必要は無いんじゃねえの
まったくだ MS製品だってハマるときはハマる
>>942 MSと契約してればサポート使えば解決するけどサポート使うほど
はまった事無いんだが開発環境ではまるとか何やらかしたの??
>>949 MSと契約してる香具師なんてそうそういない
>>951 どこぞのニートじゃなくて、企業の話でしょ
。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。。゚(゚PД`q゚)゚。
始まったばかりか 貧乏人は恩恵が降ってくるのは待つだけだな
pythonみたいに新しいVisualStudioに乗り換えちゃえよ
>>950 が伊藤忠に金を積んでちゃんとしたRuby for windowsを作ってくれるスレはここですか
Windowsを無視するとか狂ってるだろ この世にPC上で動く商用OSはWindowsしかないんだよ Freeなんちゃらみたいなシェア1%以下の学生OSをサポートするなんて リソースの無駄としか思えん
>>960 明日から500円玉貯金始めるから期待してまってろ
学会向け言語Ruby
Windowsが使えなくなると困るしRubyが無くなると寂しいが、 Windows上でRubyが動かなくてもあんまり残念には思わない
Rubyを流行らす気は無い!!
>>961 もともとDebian向けに作られてるわけだ。
そこからFreeBSD対応にかかるリソースは微々たるもんだろ。
Railsの糞プログラムをPHPの良質なコードに 書き直したいんだけど 楽な方法教えて
>>966 Debian向けって。。。流行らない訳だよなwww
>>921 たぶん速攻でdebianインストールされると思われ
使っていただくという姿勢は大事だよ。まあ個人制作のものにそこまで期待するのは無茶だけど。
その通りだが、使わせていただく立場から言うことじゃないんだよな
Rubyはもう個人のものじゃなくなってる
Windowsサポートでインシデント使って金払って 結論は次のバージョン出るまで我慢しろだと で次のバージョンでも治ってなかったんですがw
974 :
デフォルトの名無しさん :2009/02/04(水) 00:57:35
みんなIRCの%rubyチャンネルに陳情しに行こうぜ
Ruby信者で食わず嫌いでPythonやったこと無い人 だまされたと思ってPython使ってみ Rubyのために無駄に使った時間が馬鹿らしくなるから
irb騒動を見る限り2chが最も影響力のあるサイトと言わざるを得ないww
>>975 他のRuby信者を殺したくなりますか?
>>967 なぜここで聞く
PHPスレから追い出されたか?
>>976 だよねー
これからはここがRubyの総本山!
総本山なら1.9のライブラリ作ってくれ
>>975 で、Pythonの具体的な利点は?
Ruby憎しな人を満足させられるだけ?
>>981 客観的に物事を見ることができるようになる
Rubyの便利メソッド群に慣れちゃうとPythonは辛い でもPython好き
総本山だとしてここから発祥したRubyライブラリが無い件について
pythonがどんなにいい言語だったとしてもインデックス縛りとメソッドのselfがなくならない限り 俺がpythonに手を染めることはないしpythonがメジャーに成る日も来ない
しょせんクチだけの総本山宣言、異論は認める
selfの利点がわからない
なぜにPythonのリンクを貼るんだ?
だいぶ昔の話らしいが、Dave Thomas氏が言うことには RubyとPythonはネコとイヌみたいなものなんだと 何故か両方のファンは少ない
pythonがどんなにいい言語だったとしてもインデックス縛りとメソッドのselfがなくならない限り 俺がpythonに手を染めることはないしpythonがメジャーに成る日も来ない
993 :
デフォルトの名無しさん :2009/02/04(水) 01:40:24
rubyがネコでpythonが犬ですね
>>992 >pythonがメジャーに成る日も来ない
世界ではpythonの方が人気あるって誰かが言ってたよ
selfがあると実装が楽になる。 Python「を」開発する側にはメリットでも Python「で」開発する側にはどう見てもデメリット。 かといって今更そこを変えるのはリスクが大きすぎると思う。
次スレあるの?
立ててこようかと思ったがテンプレの長さに意気消沈
Pythonの話で盛り上げってるようだがここはRubyのスレなんだがな
>>994 そんなの初耳だな。Rubyのが利用者3億人程度で、
Pythonは20万人程度しかいないという話は良く聞くが
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。