1 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:10:50 ] オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。 Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 32 pc11.2ch.net/test/read.cgi/tech/1215531152/ 過去スレ・関連スレは >>2-
41 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 05:37:56 ] 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のコンパイルが死ぬほど遅い。
42 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 09:57:41 ] >>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だとどちらもない。
43 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 13:56:21 ] これってMatzが書いたんかいな? The Ruby Programming Language: David Flanagan, Yukihiro Matsumoto: Books www.amazon.com/dp/0596516177/
44 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 14:22:19 ] もちろん。邦訳の計画も一応あるらしい しっかしレビュー高評価だなあ。やっぱりバイブル扱いされるんだろうか
45 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 14:38:58 ] 巻末に /:|) と書き足すことで先生の仕事はおしまいです。
46 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 14:41:17 ] 目次 ttp://oreilly.com/catalog/9780596516178/toc.html プログラミングRubyとThe Ruby Wayを買ってしまっている自分にはいらなそうだ…
47 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 15:49:15 ] ていうか基本的にRuby本体に関する情報そのものは既に出揃ってるだろ 目新しいこと書かない限り重複は免れない
48 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 20:57:54 ] 初期のruby本はrubyを無視していきなり オブジェクト指向の話になるのが面白かったんだが。 そういうのは期待できないかな。
49 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 21:11:39 ] フラナガン本はwhileをイテレータで実装とか変態的なことも載ってるよ。
50 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 11:03:08 ] Visual Studioを使ってRails開発「Ruby In Steel Personal Edition 2008」 www.moongift.jp/2008/10/ruby_in_steel_personal_edition_2008/
51 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 11:19:05 ] ホスト名見て積極的に読む気なくした 誰か別の人がレビューしてくれるまで待つ
52 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 16:38:21 ] moongift嫌いなのか
53 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 16:49:30 ] 自分が使ってるソフトウェアが紹介されれば、あんまりアテにしてない人がいる理由が実感できるかも 週に曜日を決めて2回とか、そういう「量より質」の比較レビューにあのパワーを注ぐことを望みたいところだ 「そんなんreadme見てソフト名でググればわかるよ!」と言いたいことが何度か
54 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 16:55:19 ] Open Alexandriaは好きだった俺
55 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 17:15:47 ] 質より量を望む人間にとっては、MOONGIFTのスピードと簡潔さはありがたい 知らなかったソフトウェアをいろいろ発見できるから
56 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 17:19:39 ] 知ってる情報が役に立たなかったから知らない情報も読みたくない。 不思議な人もいるもんだ。
57 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 17:29:39 ] >>56 お前頭悪いって言われるだろ…
58 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 17:46:20 ] >>56 気にするな 柔軟性の足りない人、もしくは記事見る時間が惜しいくらい忙しい人なんだよきっと
59 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 08:39:40 ] 外人さんが「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"という文字を検索して、マッチすれば その前後に指定の文字列を挿入する方法はありますでしょうか。
62 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 17:04:06 ] >>61 初心者スレでつい最近そういう話題が出てた
63 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 17:06:46 ] #!ruby -pni.bak BEGIN{ Prefix = "pre" Suffix = "suf" } gsub(/a/, "#{Prefix}\\{Suffix}")
64 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 09:44:12 ] attr_reader :hoge? と実質的に書けない件をこっちに振ってみるテスト
65 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 10:52:10 ] Module#bool_attr_reader を自分で定義して使えばよし
66 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 12:16:27 ] ぎゃー このライブラリの次のバージョンから、動作もメソッドもめっちゃ変わるじゃん gem update でアップデートした人でテクニカルな使い方してた人は警告山盛りで涙目 まあ、公開ライブラリ作る人は最初から素直な実装をしようね (ライブラリが大きくなるとRubyでやれるオレカッコイイ独自実装は癌になる) というお話でした 今のメンテナが引き受ける前の作者が作った部分だな、これ…
67 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 13:51:18 ] 話の趣旨には大いに賛成だけど、 ここは自業自得っぽくね? >テクニカルな使い方してた
68 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 16:47:17 ] >>66 どのライブラリ?
69 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 16:59:55 ] 外部ライブラリのメソッドをバグ回避目的以外で上書きするとか賭けだよね
70 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 17:06:03 ] バグ回避目的であってもモンキーパッチは賭けだよ。
71 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 19:53:10 ] 式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]
72 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 20:02:33 ] >>71 優先順位の問題。 defined?(String ? "OK" : "NG") (defined? String) ? "OK" : "NG"
73 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 20:03:26 ] >>71 演算子には優先順位というものがあるでな、式と書いてあったらとりあえず括弧でくくってみることじゃ。
74 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 20:10:08 ] >>72-73 なるほど、式の優先順位か! おかげですっきりしたよ、ありがとう!
75 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 07:50:19 ] >>70 動作変更のメソッド上書きスクリプトを公開するより、バグ報告送ったほうが結局は手間がないことに最近やっと気づいた バージョン1.1用からバージョン1.5用まで5種類くらい公開して、さすがにキレて1.6で修正入れてもらったとかそんな感じ
76 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:35:28 ] Matzの会社を財務分析してみたんだが。 d.hatena.ne.jp/AntiSeptic/20080704/p1 などと思わせぶりな言い方をするものだから覗いてみりゃ、 なんて事無い田舎の零細企業の財務諸表であって、面白くもなーんともなかったわけだ。 それにしても、この程度の収益で2007年度って、 あの会社にとっては多分空前絶後の景気のいい年だったはずだの Rubyとゆー「鉱脈」があるだの言っているのは何なのだ。 Geekのヨタ話というのは、いつもこんなしょぼいスケールで行われているのか? あそこの技術者の平均レベルは、他の普通の会社よりはずっと高いと思うって、 これじゃあ、技術なんてIT企業の収益とは何の関係も無いと証明しているようなもんじゃねえか。 そもそも、この会社が何をやっているのかがHPを見た限りではよく分からん。 要は受託開発だろ労働力を人月で売ってるだけだろマーケ屋がこねくりあげた横文字得意げに使ってなに悦に入ってやがんだコラ。 更には製品・サービス部門まであって、なにやら参考価格が書いてあるところを見ると、 多分にパッケージっぽい印象を受けるが、それでいて全体の粗利率が26%程度ではどうしようもないだろ。 あそこに入りたい人は、損益計算書も注意して見ておくといい。まぁこれはどんな会社でも同じだけど、 ここを見るといろんなことが見えて来る。株価指標を計算してみるのもいい(非公開会社でもね)。
77 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 16:37:02 ] それもう散々げっぷが出るほど既出
78 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 17:51:52 ] 懐かしいコピペだね
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
80 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:25:43 ] module式の1つ外側に探しに行ってるように見える
81 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:53:42 ] 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
82 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 20:59:15 ] それはModuleだからで、仕様?
83 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:05:01 ] classでも同じで、仕様。
84 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 09:49:27 ] 日本語spam filterでrubyで書かれたものがあるそうなのですが 読みやすいコードになっているものなのでしょうか
85 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 09:51:51 ] あのへんはジャンル的に小難しいから、言語レベルはあまり影響しないんじゃないかな 理論を知ってるかどうかに依存すると思う
86 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 18:26:11 ] RubyでUnicodeの正規化(NFKDだとか)するにはどうすればいい? ちょっとぐぐってみたけどこのライブラリのこの関数でできるよ!みたいのが わからなかった。 1.9はきっと標準でできるのだろうけど、1.8でどうすればいいか知ってたら教えて。
87 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 20:15:48 ] $KCODE = 'u' require 'active_support/multibyte' ActiveSupport::Multibyte::Handlers::UTF8Handler.normalize("Python")
88 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 02:46:57 ] >>87 それは具体的には何をやってくれるわけ? normalizeというだけじゃ特定できんよ。
89 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 05:09:09 ] 「UTF8に正規化」って言ったら特定できるだろ あとはドキュメント api.rubyonrails.org/classes/ActiveSupport/Multibyte/Handlers/UTF8Handler.html#M000606
90 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 10:06:38 ] >>89 Unicodeの正規化は一種類じゃない Unicode Normalization Forms www.unicode.org/unicode/reports/tr15/
91 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 10:09:16 ] ドキュメントを読まないバカは死ねばいいのに
92 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 15:48:38 ] >89 > 「UTF8に正規化」って言ったら特定できるだろ 何に特定できるって?
93 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 19:19:45 ] 英語読めない人と英語読めるのにドキュメント読まない人がいるんでしょうか?
94 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 19:50:36 ] うっかり「特定できる」なんつってしまって引っ込みがつかないバカがいるだけ。 しかもわざわざ余計なこと書いて自分で傷口広げてる。
95 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 00:44:24 ] >>94 ドキュメント読めば特定できるけど,そういう意味じゃないんか? Returns the KC normalization of the string by default. まあ自分は88でも89でもないしどうでもいいんだけど ただただ正規化メソッドが用意されてることに驚いた
96 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:03:01 ] オプションで正規化方法を指定できるんだな。
97 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:20:54 ] ファイル処理について質問です。 open(filename){|f| puts f.readlines[1, 10] puts f.readlines[20, 30] } とすると、readlines[20, 30]がnilになります。 原因は、readlinesメソッド終了時にブロック f が閉じられるからのようなんですが、 readlineメソッド呼出し後にブロックに戻ってくる方法はあるのでしょうか?
98 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:29:07 ] >>97 >IO が既に EOF に達していれば空配列 [] を返します。 というか、再利用しようよ。 open(filename){|f| a = f.readlines puts a[1, 10] puts a[20, 30] }
99 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:30:07 ] IOは読み込み位置を覚えていて、次はその続きから読もうとする。 readlinesは最後まで読んでしまうから、覚えてる位置は「最後」だ。 最初から読み直したいのなら、f.rewindを呼んで巻き戻す。
100 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:36:17 ] >>98-99 解決しました。助かりました^^
101 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 23:06:16 ] ttp://oshiete1.goo.ne.jp/qa4428538.html ヨドバシドットコムの大規模障害理由 質問者:timeout25 大手ECサイトのヨドバシドットコム( yodobashi.com/ )が、10/21の サイトリニューアルから大規模な障害を起こしています。 どうやら今回のヨドバシドットコムリニューアルはCMS導入が目的で、 キノトロープスリーイントという会社が請けたようですが、実際のところ 何が原因でこうなっていると推測されますでしょうか?
102 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 04:28:35 ] >複数行コメント >#| から |# までがコメントです。ネストさせることが可能です。 いいなあ
103 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 11:28:49 ] rcairoのpango関係のメソッドはどの資料を見ればいいの? rcairoにもruby/pangoにも記述なさそうなんだけど。
104 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 13:01:48 ] Ruby方面には資料がなさそうだったのでPango本体のドキュメントみてメソッド名を当て推量した。
105 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 13:07:49 ] よくわからんがソースは読めないのか?
106 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 16:34:07 ] Matzのお墨付き プログラミング言語 Cyan pc11.2ch.net/test/read.cgi/tech/1225138340/
107 名前:デフォルトの名無しさん [2008/10/28(火) 16:43:15 ] Ruby 1.9.1 preview 1 アゲ
108 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 16:53:06 ] 確かに筋は良さそうな感じはする でもmatzってLisp系の強力なマクロには懐疑的じゃなかったっけ?
109 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 17:41:14 ] マクロはなんでも出来すぎるとか言ってたね。 でも昨今のDSLブームでRubyの文法の融通きかなぶりも認識してきた節もあるので 改宗したのかも。
110 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 17:44:48 ] Rubyはむしろ融通効き過ぎなぐらいだと思うが
111 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 19:42:32 ] 札幌Ruby会議01 (2008-10-25) www.nicovideo.jp/mylist/9138553
112 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 19:45:43 ] マクロ最強! #define ++ += 1
113 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 20:03:16 ] Lispは「融通がきく」 Rubyは「融通をきかせてる」
114 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 21:32:03 ] >>106 よお中村、元気か?
115 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 22:02:37 ] >>102 なにそれ?
116 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 02:37:54 ] Cyanのコメント
117 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 07:17:18 ] CLと同じでしょう。 =begin/=endでいいじゃんとは思うけど
118 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 08:07:57 ] >>110 そりゃプログラミング言語として与えられたままを使うだけに限った話。 DSLを考えるときには全然効かないんだよ。
119 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 08:12:19 ] >>116 さんきゅー
120 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 15:27:11 ] 引数がStringだった場合はキーを付け足してHashにする(param = {:name => param} みたいな) 引数がHashだった場合はてきとーにキーを見てぶん回す という最近よくある感じの処理をする場合、引数がStringかどうかみたいなのはどうやって判定すべき? is_a? とか instance_of? とか
121 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 15:31:20 ] is_a? kind_of?
122 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 19:31:51 ] www.rubyist.netおつとる
123 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:06:37 ] >>120 最近では respond_to? で、必要なメソッドの有無を調べるのも流行らしいぞ
124 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:23:01 ] each の存在を調べて String#each の存在でハマるのはもうお約束の域 そして 1.9 対応で悩む
125 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:25:44 ] case arg when String when Hash
126 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:43:44 ] >>125 それは is_a? だ
127 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:00:35 ] 実体が is_a? でも、そう書くか case-when で書くかは大きな違いだ
128 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:25:49 ] 引数に(key => value)で特別扱いされるのはHashなんだから is_a? 使うにしてもHashか、そうでないかっていう分岐にしたほうがよさげだと思う。
129 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:31:31 ] CodeZineにPythonカテゴリがないのっておかしくね? お前らなんか妨害工作してるだろ。
130 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:35:25 ] ttp://codezine.jp/article/tag/223
131 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:38:42 ] 実体は === だろ StringとHashでそれぞれ違う処理するなら俺も>>125 にするかな でも>>120 の場合ならこう書く param = {:name=>param.to_s} unless param.kind_of?(Hash)
132 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 21:45:18 ] すまん、クラス、モジュールの === は kind_of?(つまり is_a?) と同じだった
133 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 21:48:24 ] qb5.2ch.net/test/read.cgi/operate/1206636885/657 強制ID実装を駄目元で頼み込んでみた。 もし賛同してくれる人がいたら同意のレスつけてください。
134 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 10:39:11 ] >>133 おまえがIDさらせや。
135 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 17:45:48 ] p 133.id
136 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 18:30:44 ] => nil\(^o^)/nil
137 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 22:24:07 ] ext/dlのバグ修正、ruby-1.8.xにも入れてくれないかねえ。
138 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 22:56:29 ] どのrevision?
139 名前:デフォルトの名無しさん [2008/10/31(金) 23:47:40 ] レポジトリでみてみたけど違いが生じたのがsubversionへの移行前らしくてリビジョンわかりません。 問題は1.9ではNUM2PTRになってるものが1.8.xの方はDLNUM2LONGのまま残ってて アドレス等の値を符号つき整数として扱ってしまっているところです。 これがために1.8ではDL::Symbol.newなどに最上位ビットが1のアドレス値を直接渡せません。
140 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 01:13:22 ] 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と違う添付ライブラリってリファレンスマニュアルとかドキュメントあるんですか?