1 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:48:01 ] オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。 まったりと行きましょう。 Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 38 pc12.2ch.net/test/read.cgi/tech/1257079004/ 過去スレ・関連スレは >>2-
29 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 12:28:32 ] GUIのAPIを操作するサブ言語として自分の見知ったスクリプト言語を使えるというのは利点だろう きちんと隠蔽されてきちんとライブラリが作られているということが最低条件だが 「これなら直接書いたほうが早いわぼけー」というラッパーは存在価値がないぞ
30 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 13:52:50 ] 頭悪そうな奴
31 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 14:06:36 ] >>27 こんな風に思ってる人いるんだ。 お手軽でいいのに。
32 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 15:10:45 ] >>29 >きちんと隠蔽されて の意味が良くわからない。 一体何を隠蔽するのだろう。
33 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 15:57:11 ] >>26 PyQt4 おすすぬ
34 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 15:58:02 ] >>29 それどこのMFC
35 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:03:42 ] >>31 ただ、Javaでもぶっちゃけそんなに変わらないんじゃないかと C#もあるし Pythonでそんなに楽できるのかな〜という気はする それに、スクリプトからGUIを起動するのはなんか気持ち悪い いちいちexe化してたらスクリプトの利点もなくなりそうだし
36 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:09:40 ] そもそもスクリプト言語って用途的にはフィルタに使うもんだべ?
37 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:13:43 ] んなこたない ただIDEと高度に結びついてないとGUIはダルい
38 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:53:05 ] IDEまでいかなくても、デザイナレベルのものがあれば十分だと思うけどね。
39 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 20:55:50 ] そこまでしてスクリプトにこだわらなくても LinuxならJava、WinならC#使えよ気持ち悪い
40 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 21:06:32 ] 別にこだわっちゃいないけど、逆に何でそんなにスクリプトでGUI書くことを 否定したがってんの?
41 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 22:31:19 ] そりゃLLで本格的にGUI使われたらJavaやC#の商売あがったりだからだよ
42 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 22:36:37 ] if String.new.respond_to?(:force_encoding) はやっぱりカッコ悪いしわかりにくいと思う
43 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 22:43:36 ] defined?(::Encoding) が module M; module Encoding; end; end include M に対して無力だと知ったとき俺は大人の階段を一段のぼった
44 名前:デフォルトの名無しさん mailto:sage [2010/02/09(火) 22:45:00 ] ,―ヽ_(((((_、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ 時代はオープンソース。Windowsなんてほっとけ i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i |
45 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 01:24:48 ] RUBY_VERSION <'1.9' 撲滅派の人に質問 pp の表示が「日本語」になるかどうかで場合分けしたいんだけど、どう書けばいい? Ruby 1.9 ってエンコーディングがあってれば p の表示が日本語になることがあるよね
46 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:38:52 ] >>45 初心者スレで質問したほうがよかったんじゃない? var = "日本語" if var.inspect =~ /\P{ASCII}/ puts "厳密には非ASCII文字" else puts "ASCII" end
47 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:40:23 ] あとp と pp は inspect と pretty_indpect で使い分けて
48 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 09:58:08 ] >>45 だいぶ前に似たようなことで迷って調べたことがある そのときのスクリプトではこう書いた STDOUT.respond_to?(:external_encoding) たぶんこれがわかりやすいはず
49 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 15:31:56 ] Array#sampleが有ってArray#sample!が無いのはどなーいして?
50 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 15:47:10 ] なんでsample!が欲しくなったのか、一言どうぞ。
51 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:46:15 ] せんせいしつもん $KCODE が使われてたらテストの動作変えたいです でも $KCODE にアクセスしたら警告が表示されてしまう Ruby もあると聞きました 警告を出すことなしに 「$KCODE が時代遅れな場合は処理を変える」 ということをやる方法おしえてくださいチュ
52 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:47:23 ] 1.9 への移行準備ってゆーか、注意事項とか確認したいんだけど、 読み物ありませんか?
53 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:02:20 ] >>51 $KCODEは実体がなく読み取りと読み出しのC関数があることによって 存在しているように見える仮想変数なんだが、1.9ではこの読み取りと 読み出し両方の関数で rb_warn という関数が常時呼ばれて警告が出る。 rb_warn は $VERBOSE.nil? が真なら出力することなくリターンするので、 テスト時に一時的にnilを代入すればよいと思う。(falseだとだめ)
54 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:13:24 ] >>52 jp.rubyist.net/magazine/?0025-FirstStepRuby191
55 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:17:24 ] >>53 先生それは「警告うざければその前後で$stderr乗っ取って警告捨てればいいんじゃね」レベルです その間に $VERBOSE を利用する人がいたらどうするんですか責任とってくれるんですか蒼い時代ですか 要は個別に制御する方法は特に用意されてないのね ちょっとがっかり
56 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:24:53 ] テストが済んだら元に戻せばいいじゃない 割り込まれたくなければ Thread.criticalをいじればいいじゃない
57 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:27:08 ] tmp = $VERBOSE $VERBOSE = nil begin hogehoge() ensure $VERBOSE = tmp end
58 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:28:49 ] ActiveSupportにsilence_warningsあるね。
59 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:39:50 ] >>58 irb1.9> silence_warnings{ $KCODE } nil irb1.9> $KCODE (irb):3: warning: variable $KCODE is no longer effective nil キャーステキー
60 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:47:09 ] 中身は>>57 だけどな スレッドには対応してなさそうだ silence_stream(STDERR){ $KCODE } は 標準エラー出力乗っ取りだが mingw では動かなさそう
61 名前:52 mailto:sage [2010/02/10(水) 20:39:25 ] >>54 あんがと
62 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 00:44:50 ] やっぱりここはRubySpecFeatureみたいなクラス持ったgem作って配布するしか。 RubySpecFeature.has_feature?(Spec番号) とかやると実行してる処理系での当該Specをサポートしてるか教えてくれるの。
63 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 00:47:44 ] よしまかせた。
64 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 12:50:32 ] ttp://www.ruby-lang.org/ja/news/2010/01/10/webrick-escape-sequence-injection/ > 外部の攻撃者がエスケープシーケンスをWEBrickのログに挿入しそのログを閲覧したとすると、 > 攻撃者は端末エミュレータを攻撃する目的に利用することができます これって p str でも起こる? String#inspect を通してる限りは $KCODE があっても Encoding つき String でも大丈夫?
65 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:46:24 ] >>64 String#inspect では起こらない エスケープ目的で使うのは勧めない(たとえば今回のようなとき、ログ文字列を inspect する) あくまで結果的にエスケープもされるという程度 とここまで書いて、Shift_JIS 文字列として inspect すると引っかかるかもと思った
66 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:29:03 ] ttp://www.ustream.tv/channel/matsuerubykaigi02 松江Ruby会議02やってるのか
67 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:11:26 ] cgi書いたんだけど、実行時間の半分以上が require "rubygems" と require "rmagick"の二行に費やされてる。
68 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:40:24 ] 会議までに1.9.2の正式リリースがほしかった
69 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 02:28:45 ] >>67 wrs
70 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 10:36:12 ] # Ripper で #on_const_ref, #on_void_stmt, #on_stmts_new, #on_stmts_add # フック時の Ripper#lineno の返り値が1行ずれる場合があるような気がするんだけど # これバグ? require 'ripper' class MyRipper < Ripper [:const_ref, :void_stmt, :stmts_new, :stmts_add].each do |e| define_method(:"on_#{e}"){|*a|puts "#{e}, lineno:#{lineno}, column:#{column}"} end end puts RUBY_DESCRIPTION #=> ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] p code = "class C\nend" MyRipper.new(code).parse # const_ref, lineno:1, column:3 # void_stmt, lineno:2, column:3 # stmts_new, lineno:2, column:3 # stmts_add, lineno:2, column:3 # stmts_new, lineno:2, column:3 # stmts_add, lineno:2, column:3 p code = "module M\nend" MyRipper.new(code).parse # const_ref, lineno:1, column:3 # void_stmt, lineno:1, column:3 # stmts_new, lineno:1, column:3 # stmts_add, lineno:1, column:3 # stmts_new, lineno:2, column:3 # stmts_add, lineno:2, column:3
71 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:24:17 ] ttp://doc.okkez.net/static/191/class/Regexp.html * Regexp.new(string, option = nil, code = nil) > 第一引数が正規表現であれば内容が同じ(ただし、上記フラグの内容はクリアされた)正規表現を複製して返します。 > このとき、複製した正規表現に対して、第二、第三引数の指定が設定されます。 > 第一引数が正規表現であれば第一引数を複製して返します。第二、第三引数は警告の上無視されます。 どっちやねん
72 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:29:31 ] 最初の方は「文字列」なんだろうけど、まあありがちだよ
73 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:34:29 ] >>71 1行目と2行目は1.6の挙動だな 3行目は1.8の挙動 1.9では 「正規表現のエンコーディングを指定するには第一引数の文字列のエンコーディングを直接変更してください」 となるはず
74 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:40:07 ] irb> /[[:cntrl]]/ =~ "わんこ".encode('ISO-2022-JP') Encoding::CompatibilityError: incompatible encoding regexp match (US-ASCII regexp with ISO-2022-JP string) irb> Regexp.new("[[:cntrl]]".encode('ISO-2022-JP')) =~ "わんこ".encode('ISO-2022-JP') RegexpError: can't make regexp with dummy encoding: /[[:cntrl]]/ ガッデム
75 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:43:32 ] ISO-2022-JPはなー。
76 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:52:34 ] irb> Regexp.new("[[:cntrl:]]".encode('ISO-2022-JP')) RegexpError: can't make regexp with dummy encoding: /[[:cntrl:]]/ irb> Regexp.new("[[:cntrl:]]".encode('stateless-ISO-2022-JP')) /[[:cntrl:]]/ irb> Regexp.new("[[:cntrl:]]".encode('stateless-ISO-2022-JP')) =~ "わんこ".encode('stateless-ISO-2022-JP') nil irb> Regexp.new("[[:cntrl:]]".encode('stateless-ISO-2022-JP')) =~ "わん\eこ".encode('stateless-ISO-2022-JP') Encoding::UndefinedConversionError: "\e" from EUC-JP to stateless-ISO-2022-JP in conversion from UTF-8 to stateless-ISO-2022-JP なんかだんだんどうでもよくなってきた
77 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:56:20 ] 初心者スレでコントロールコードを取り除きたいって言ってた人と同じかな
78 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 19:21:57 ] 日本製なのにJISが処理出来ないのもどうかとw
79 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 20:28:20 ] 【研究】 世界一ロマンチックじゃない「愛の告白」は、日本語…クリンゴン語よりも酷いと判定★4 tsushima.2ch.net/test/read.cgi/newsplus/1266273529/
80 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 21:59:29 ] ISO-2022-JPを素で扱える正規表現エンジンはさすがにないだろ。
81 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 22:34:42 ] 日本語版マニュアルになんらかのコメントくらいはあってもいいかもしれない
82 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 22:49:32 ] >>81 それはRubyにおけるダミーエンコーディングの意味の説明が該当するのでは 。
83 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 00:51:02 ] 以前このスレでBigdecimalのバグと対処を上げていた人が いろいろあってコミッターになったみたいだな。 ともあれ人手が増えたことはめでたい。
84 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 01:43:38 ] あ〜、「バグっぽいの見つけたけど、報告はここでいいんですかね?」みたいな いいわけないだろと心の中で突っ込んだが
85 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 01:46:52 ] 普遍的にバグであるかどうかを確認するためにスレで話題を振る、というのはアリではあるが ライセンス上、パッチを2chに投稿したら取り込めないのでそこだけは注意
86 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:29:47 ] ああ、著作権が2chに移っちゃうって話か。確かにそうだわな。
87 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:45:42 ] まあそのまま取り込まなきゃ回避策はいくらでもある。 オープンソースなんて、どこかのをパクりまくり出し。 著作権は権利が認められれば、その作者が持ってるので放棄出来ないけどな。 著作権法よく読もうぜ。
88 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:51:51 ] >>87 2chの書き込み規約よく読め
89 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 07:11:25 ] 1,2行の簡単なパッチに著作権が発生するかどうかは微妙なところ。
90 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 08:59:55 ] あんな規約法的におkなのか?
91 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 09:09:30 ] 個別に争われる余地はあると思われ 少なくとも「アホ言うなバカ」と裁判所に門前払い食らうような内容ではない 余談だが、世の中の訴状は裁判所によってある程度、審議以前の問題だと却下されている 「○○を訴えました」という報道発表と実際の裁判の数は必ずしも一致しない 訴状を見てから判断する、という発言は本来は正しいんだがなぜか悪役になってる不思議
92 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 09:55:28 ] >>88 あんなもんが法的に有効だとか思っちゃうお花畑は黙ってろ
93 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 10:00:02 ] 有功じゃないってことは具体的に何かに反してるってこと?
94 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:15:27 ] >>89 「絶対に発生しない」のでなければ避ける以外の判断はできない Rubyライセンスと整合するのでなければそもそもさわれないよ ひろゆき…今はそうじゃないのか、2ch、が書き込まれたソースコードを利用するという意味ではなく 事前に2chという掲示板で公開されたソースコードをRubyにライセンス上取り込めるかどうかという話 俺は「取り込めるとは限らない(裁判での判断が必要)」と思う だから「めんどくさいので2chにRubyライセンス関係のパッチを書き込むべきではない」と考える
95 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:22:26 ] 他のうpろだに揚げたものをリンクすれば医院で内科医
96 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:23:45 ] >>94 初出の方が優先すると思う
97 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:29:49 ] 出来合いのブログサービスでソース公開してしまうのも結構マズい というか、ライセンス上マージ可能なソース公開場所を挙げるほうがよさそうだな githubとか?
98 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:38:08 ] > 出来合いのブログサービスでソース公開してしまうのも結構マズい そういう法的におかしな条項に、諾々と従ってしまうのが一番マズい
99 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:41:04 ] 俺の嫁の飯が一番マズイ
100 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:42:49 ] >>98 君が私費を投じて戦って、トラブルがある(と予測される)たびに法的根拠のある判断を勝ち取ってくれるなら 誰も何も言わないよ(おまけに勝敗も問わない) そうでないのなら何も言うべきではない
101 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:47:44 ] 無闇に安全側に倒すな、という人は危険側に寄ったぶんのコストを支払ってくれ >>100 の言うように別に負けてもいいんだが、それにかかる金額と時間がひたすら鬱陶しい 誰からも権利上の突っ込みを受けえない、という状態の有り難味を噛み締めて欲しいもんだ
102 名前:デフォルトの名無しさん [2010/02/17(水) 13:48:26 ] せんせい質問! CentOS5.4にRails環境作ったんだけど、script/serverのログの文字が一部化けます。 「サーバ2」=>「サーバ\357\274\222」 こんな感じ CentOSのコンソール、Windowsのターミナルともに同じ化け方なので、ターミナルの問題ではなさそう。 ソース中のコメントはviで日本語で表示されます。
103 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:54:11 ] Rubyのパッチレベルをちょっと戻すか、あるいは開発版使う inspectの最後のマルチバイト文字がそのままになるんだよ irb> $KCODE="u"; p "えびしおポテコが食べたいのに全然売ってない" "えびしおポテコが食べたいのに全然売ってな\343\201\204" ユーザーレベルでの対処法があるなら知りたい 最後がマルチバイト文字でなければきちんとなるんだけど、そんなの全部やるの無理だよな irb> $KCODE="u"; p "えびしおポテコが食べたいのに全然売ってない\n" "えびしおポテコが食べたいのに全然売ってない\n"
104 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:58:48 ] 去年も全く同じ話題が出てたな ttp://b.hatena.ne.jp/entry/rubyist.g.hatena.ne.jp/n2s/20090130/p1 てことでgistとかSimple Paste使いましょう
105 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:59:30 ] latin1
106 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:00:50 ] >>102 今日のruby-listのメールくらいは読んでくれると嬉しい blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/46859
107 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:02:35 ] >>106 メーリングリストはアーカイブが適切な語でGoogleに引っかかってこそ価値があるのですよ
108 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:06:02 ] >>106-107 …まあどっちもどっちではあるな というか、修正されること自体はそもそも確定で、現時点でどーすればいいかということのほうが問題なような っていうかこのへんのテストとかしてないのなんで漏れてんの
109 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:33:42 ] >>108 確かめてないが、改行のテストも兼ねようと思って "テスト\n".inspect assert_equal('\343\203\206\343\202\271\343\203\210\n') みたいな感じだったんだと推測 まさか末尾がマルチバイトなときだけ問題になるとは間隙突かれたヒデキ感激みたいな
110 名前:デフォルトの名無しさん [2010/02/17(水) 14:37:46 ] >>103 そうなんだ。 調べたけど、そういう問題抱えてるのみつけられなかったかったから助かりました。 ありがとう。
111 名前:デフォルトの名無しさん [2010/02/17(水) 14:51:13 ] >>102 8.1.7は既に枯れたバージョンという認識だったので見ていませんでした。 Rubyのチケットを見ると上がってるんですね。 触り始めて2週間なのですが、検索エンジンで見つけられそうなキーワードを把握していませんでした。
112 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 15:34:24 ] コミットしてからリリースまで誰も気づかなかったというのが物寂しいな 上の人はもう1.8系列で日本語表示なんて誰もしてないのだろう
113 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 15:38:09 ] 修正されているのはいいけど、 テストコードがないといつかまた再発しそう。 redmine.ruby-lang.org/repositories/revision/ruby-18?rev=26103
114 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 18:31:52 ] >>112 $KCODE設定してpで日本語表示しないと気づけないからねえ スルーされる可能性は高い
115 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 12:32:31 ] 困ってる人一杯いるだろうから、これだけでも先にリリースして欲しいよな。 ダウングレード面倒だし。
116 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 13:56:56 ] unrecognized options: --with-readline-dir 安定板ビルドしようとしたらこんなエラーでた ぽにょ挫けそう
117 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:18:42 ] dl.dropbox.com/u/4390580/wxruby-2.01-ruby19stable.png 何かmake途中エラーみたいのに遭遇したような気がするけど 気にしない。絵が出たから良し何ら問題なしあ...
118 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:49:41 ] ./configure --help |grep with
119 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 23:29:46 ] そういう問題を先送りが後で響いて困る訳でw
120 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 02:34:52 ] 初心者スレで質問したところ、本スレ行ってこいと言われたので失礼します。 Kernel#lambdaで作られるProcオブジェクトはブロック内でreturnしたときに Proc#callから抜けるという特殊な挙動になっていますが、これはどのような仕組みなのでしょうか。 Kernel#lambdaはおそらくCで実装されているのだとは思いますが、 Rubyでも実装できるようになっていると思います。お願いします。
121 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 10:03:18 ] これが政府のオープンソース関連事業だ、年間約5億円を仕分けられるか!? itpro.nikkeibp.co.jp/article/COLUMN/20100217/344720/ Rubyもいろいろ金かかってるんだなー
122 名前:デフォルトの名無しさん [2010/02/19(金) 10:47:07 ] ,―ヽ_(((((_、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ オープンソース情報データベースOSS iPediaの活用秘技. IPA OSSセンター 研究員 岡田 賢治 i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i |
123 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:47:41 ] 1.9だと def []=(*keys, value) って書けて素敵よね
124 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 13:55:41 ] むしろそれ以前でできなかった理由を知りたい できるようにしてても特段デメリットないようにも見えるが
125 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:07:36 ] 意図的にできないようにしてたわけじゃないと思うけど。
126 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:12:02 ] Emacs Lispの&rest とか &optional のような使い方がしたくて 実装しただけだと思う。少なくとも当初は。
127 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:13:13 ] 1.6くらいで思いついてて欲しかったとちょこっとだけ思う
128 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:15:58 ] 我々にできるのは1.9系列の周辺を使いやすくすることしかない 初級を抜けたランク4くらいの人を全部1.9ユーザーにしないと gemライブラリも全部1.9対応にするくらいの勢いで 解説や記事も1.8用と1.9用の記述を並立
129 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:22:32 ] >>123 ってどういう使い方をするのですか?
130 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:20:46 ] >>123 って普通に可変長引数を通常の引数の前に置けるってこと? それともブラケットメソッド関係で何か特殊なの?
131 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:46:34 ] ary[x, y] みたいに多重配列が作れたりとかする?
132 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:17:16 ] いや見たまんまだと思うが 最後の引数以外は可変
133 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 19:33:52 ] 1.9の普及が足りんな。 def test(a,*b, c) とか出来るぞ
134 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 20:56:12 ] >>120 1.9の、しかもあくまで俺の理解した範囲でいうけど、まずコンパイル結果からして違う ブロックの中のreturnはthrow 1っていう特殊な例外を投げる命令になるけど 普通のメソッド中のreturnはleaveっていうフレームを終了させる命令になる で、ブロックがフレームに積まれるとき、lambdaかどうかはフレームに記憶されていて 前述の例外が通知されると、実行中のフレームがlambdaかメソッドならリターン処理 普通のブロックなら例外をさらに上のフレームに伝播させる、って感じでやってる とそういうわけで、この特殊例外を発生させる方法がRubyにはないので無理です あーあと、フレームってのは動的な処理の単位ね、メソッドとかクラス定義とかブロックとか 詳しく種類を知りたかったらvm_core.hにVM_FRAME_MAGIC_なんちゃらって並んでるから
135 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 20:59:41 ] >>134 ×発生させる方法が ○発生させる方法もキャッチする方法も
136 名前:120 mailto:sage [2010/02/19(金) 21:04:49 ] >>134 回答有難うございます。どうやら、VMの理解が必要そうですね。 とりあえず、ブロックのreturnとlambdaのreturnが別物ということはわかりました。 C言語は苦手ですが、勉強がてらソースコードを読んでみたいと思います。
137 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 10:13:42 ] RubyForgeへいってoneclickrubyダウンロードしてるんですが、滅茶苦茶遅いのはなぜでしょう? どこかにミラーとかって無いんですかね?
138 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 10:45:55 ] >滅茶苦茶遅いのはなぜでしょう? 善悪属性値が下がってるんじゃね とりあえず巷で話題になってないので、回線か経路的なもんだと推測される 何人か症状出てる人がいれば推測もできるんじゃないかと
139 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:11:48 ] リファクタリング:Rubyエディション www.amazon.co.jp/dp/4048678841
140 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:12:41 ] ショッピングを続ける: 最近の履歴に含まれている商品を買った人は、こんな商品も買っています ページ: 1 / 17 (最初に戻る) 前に戻る * 恍惚美女~潤う甘い果実~ 菜摘四季 [DVD] DVD ~ 宇田マサル ¥ 2,952 おすすめ商品を修正 * 乙姫VOL.5 桜木久美子 [DVD] DVD ~ 桜木久美子 5つ星のうち 4.0 (5) ¥ 2,952 おすすめ商品を修正 * 快感ヌーディーフロント 阿井原すみれ [DVD] DVD ~ 宇田マサル 5つ星のうち 4.0 (2) ¥ 2,952 おすすめ商品を修正
141 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:30:06 ] >>139 > 価格: ¥ 5,040 絶対的価格がなんか微妙に高ッ! 450ページの大型本だから妥当なんだけどさ
142 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:51:43 ] 自称中級者でJAVA版のリファクタリングを読んだことは無いんだが読むべき?
143 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:58:52 ] ttp://www.amazon.com/Refactoring-Ruby-Jay-Fields/dp/0321603508/ 「好評のJava版のコードをRuby用にコピペ改変して載せただけなんじゃねっていうか動かないぞ金返せ」 「Java版を読んだなら読まなくてよしっていうか誤植直したのを売れバカ」 というツッコミが入ってるな
144 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:39:44 ] そろそろ1.9に乗り換えないと流行に乗り遅れそうだ。
145 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:42:39 ] 手元でライブラリのメソッド再定義できるくらいの力のある人は普段使いを1.9.1にできるレベル 前はなんとかしないとならないgemライブラリが多すぎて諦めたもんだが
146 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:41:59 ] 戻り読みのできない正規表現エンジンとか使ってられないよ!!!
147 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:43:22 ] >>143 だめぽいね 翻訳で大幅手直しが入っていれば、といったところか
148 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:52:03 ] >>147 訳者が長尾さんだから期待したいところ
149 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 14:21:04 ] 内容変えちゃったらそれは翻訳じゃないじゃん シドニィ・シェルダンみたいに別もんになるぞ
150 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 14:24:07 ] 明らかな誤植は直してほしいな。
151 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 14:27:16 ] 動かないYO!くらいのヤク中はつけてくれるだろ
152 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 15:30:47 ] 意味ねー † 現行では動作しません とかいう注釈が毎ページにある状態
153 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 15:53:09 ] >I've found errors on almost every page I've read. >It looks as if someone cut and paste the text from >the original into a new document, quickly converted >the Java examples to Ruby (without testing or review, >given some of the errors), and went to press. mjd?
154 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:15:10 ] つかなんでこれ翻訳しようと思ったんだ
155 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:39:16 ] そのうち、Yuguiさんが別本として出してくれるのではなかろうか
156 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 16:42:34 ] 書名は「Rubyリファクタリング」でよろしく
157 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 18:50:49 ] 元ネタのリファクタリング本が優れていたのは コードを綺麗にする方式の提示もさることながら、 ある方式を実施するにあたってコードを壊さない一連の手順を 提示したのが大きい訳で、サンプルとして例示したコードが動かないんじゃ 有り難みも半減だよなあ。
158 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:22:21 ] この動かないプログラムを動くようにしてさらにリファクタリングもしろという 作者からの課題かもしれない。
159 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:25:11 ] もともと動かないものを動くようにしちゃったら、 それは仕様を変えたということでリファクタリングになってないだろ
160 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:43:33 ] >>156 なんであんなわかりにくいだろうね めちゃくちゃ区別しにくい
161 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:44:50 ] >>159 なんでやねん
162 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 21:49:16 ] だが待ってほしい
163 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 22:13:47 ] リファクタリングとは,プログラムの動作を変えずにソースコードを整理すること. ということらしいので,動作を変えるような変更はリファクタリングではない.
164 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 22:25:39 ] つまり動かないコードを動くようにするフェーズと 動くようになったコードをリファクタリングするフェーズとを厳密に分離する必要があるという話だな。 1フェーズ目の成果をリファクタリング前のコードとして掲載して 2フェーズ目の成果をリファクタリング後のコードとして掲載せよと。 ……もういいからYuguiさんが凄いリファクタリング本書いてくれるの期待しようぜwww
165 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 22:26:56 ] ちうかRubyistって基本的にスパゲッティ大好きだろ? リファクタリングなんてせずに黙って食え。
166 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 00:04:09 ] 【政治】民主・石井一氏「鳥取、島根は日本のチベット。人が住んでるのか。牛が多いのか。山やら何やらあるけど、人口が少ない所」★2 tsushima.2ch.net/test/read.cgi/newsplus/1266846976/
167 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 01:32:28 ] なに頭でっかちな脳内だけの空論を言ってるんだよ リファクタリングで不安定なプログラムが安定するなんて当たり前にあることだろ 役に立たない言葉の定義なんてどうでもいいわ
168 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 02:03:59 ] ネタにキレレス(ry
169 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 02:35:35 ] だよなwネタにマジレスとかありえねー
170 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 02:44:07 ] どれがネタなのかよくわからん
171 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 06:02:42 ] 突っ込まれるまでマジで、突っ込まれたらネタ。
172 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 07:02:27 ] ネットで、ましてや2ちゃんで体裁なんて気にすんなよw
173 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 08:11:41 ] >>167 それは普通に改善とか修正とかリストラクチャリングって 呼べばいいんじゃね。 機械的な手順やツールによる自動化が提供されていなかったり、 単に作業者がプアだったりした時に、 リファクタリングのつもりで違う何かをしているというのは よくある話。
174 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 10:37:07 ] とりあえず、リファクタリングはきちんと専門用語だから プログラミングだけでは金にならんし意味がないからという理由で 営業もプログラミングに含めるというような行為と同じ
175 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 10:43:12 ] >>167 のような人にこそリファクタリング本が必要だ
176 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 10:49:59 ] 「新しい良い動作」に書き換えることなら誰でもできるんだよ(それこそ初心者にも) それでいいのならリファクタリングという概念が持て囃されることは永遠になかったはず リファクタリングはソフトウェアとして新しい動作を一切組み入れない ソースコード管理において安全度優先の書き換えを行えるようにする知識を供給する うまくいかないことも少なくないが、俺コードで書き換わって不用意に破壊されるよりは諦めがつく
177 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 11:27:09 ] 用語の定義をないがしろにするやつは死んだらいいと思うw
178 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 11:57:48 ] リファクタリングという言葉の定義って どこかできっちりと決めたものがあるのか?
179 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:08:06 ] >リファクタリングはソフトウェアとして新しい動作を一切組み入れない ちがう罠
180 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:23:38 ] >>178 あるよ
181 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:29:34 ] wikipediaには厳密な定義がないって書いてあるんだがどっちよ あるというならどこにあるのかも書いてくれないと
182 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:34:21 ] >>180 つうかそれを提唱したのがファウラーのリファクタリング本だよな。 そのレベルのクォリティを期待されてたRuby版がうんこだったからこそ 大炎上なんだし。
183 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:43:53 ] 変更の影響を考えたらコードを綺麗にするなんて机上の空論、 なんて言ってたような連中へ突きつけられた現実解が リファクタリングだしな。 本読んでなきゃ開発ツールに付いてる便利なリネーム機能ぐらいの 認識かもしれないが。
184 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 12:53:43 ] 定義という言葉の定義すらわかってないのがこのスレのクオリティ
185 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:13:30 ] >>181 リファクタリング本に書いてあるし、著者本人のwikiにも引用されてるし、 それの有志による邦訳すらあるなあ。 ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?DefinitionOfRefactoring まあWikipediaを根拠にしてるあたり釣りなんだろうけどさ。
186 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:25:38 ] >>167 のような人を赦すようにはなってないな 少なくとも「リファクタリングとは本に書いてある一連のやつ」という認識は共通だ そういうレベルでオレオレの入り込む余地はない 本を読んだ上で個々の効果の議論をするのは有効
187 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:26:40 ] >>185 pediaにしたって英語版にはそんな記述なくて要出典ものだけど それでも「外部からの動作を変えずに」と書いてるな
188 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:28:54 ] デザインパターンもそうだが、基本「あるあるあるあるwwwwwwwwwwwwwwwww」の集大成だ 逆にいうと、そういうので困った参った恨んだ吐いた経験がないと意味がわからないかもしれない それこそ、「俺が書き換えたほうが早い」
189 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:39:15 ] 例の本、ひょっとして ttp://d.hatena.ne.jp/textfile/20070116/refruby の件が関係してるのかな
190 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 13:43:13 ] >>188 「○○○で困った経験があるだろ?」 「ないよ」 というのは意外と地味に困る
191 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 19:57:44 ] >>190 いつも他人に尻拭いさせてりゃ困ることは無い罠
192 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 20:23:13 ] 勝手に頭の中で状況作って明後日の方向にスレを持って行くなよ
193 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 20:56:26 ] Ruby Best Practices って本はどうなのよ? 誰か読んだ?
194 名前:デフォルトの名無しさん mailto:sage [2010/02/23(火) 23:16:13 ] >>193 とても気になるが、対象範囲が漠然としてるタイトルだな Railsなのか、生Rubyなのか、それともWEBアプリ関係ない汎用的な クックブック的な物なのか そもそもRubyの一般的なフィールドってのがよくわからんのに best practiceも何もって気がする
195 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 01:00:25 ] Amazonに概要が書いてあるじゃん 興味あるけど英語でオライリーの本1冊はおれにはきついなあ 英語の技術書をまるごとは読んだことないのだが、 サンプルプログラムとかあるから実は割といけるのだろうか
196 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 01:42:27 ] Rubyテクノロジーリーダーを訪ねて - 第1回 「まつもとゆきひろ氏」 ttp://edn.embarcadero.com/jp/article/38182
197 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 10:00:20 ] ソートの概念自体を教えたいのならCとかFORTRANとか使えよ…
198 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 10:15:25 ] そもそも授業としてソートの中身そのものを教えるということが 昨今のコンピュータ序論または一般教養的にホントに有効なのかどうかという
199 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 10:31:46 ] 「しかしこれを使ってはいけません安心確実高速な組み込みのを使ってください」という授業は糞ではあるな というかインタビュー内容の感想書け
200 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 10:37:25 ] このインタビュー中身空っぽだな 「継続は力なり」くらいしか伝わってこない
201 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 10:38:44 ] 今日の成功を予感させるものを感じる。 ワロタw
202 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 10:46:22 ] インタビューをするほうの人はもうちょっと根性入れたほうがいいかも 本人の今日夕飯に何々食いましたとかいうブログ記事以下の興味内容しかもてないとか悲しすぎる
203 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 11:13:10 ] >>193 > Ruby Best Practices って本はどうなのよ? 無料公開中。今のところ、5章まで。 ttp://blog.rubybestpractices.com/
204 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 11:14:33 ] インタビューするならRite(笑)がどうなってるのか聞いてほしかった
205 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 12:39:46 ] >>203 thx
206 名前:デフォルトの名無しさん mailto:sage [2010/02/24(水) 16:11:21 ] >>201 歌が下手なアイドル歌手の「熱唱」みたいな表現ですね。
207 名前:デフォルトの名無しさん [2010/02/24(水) 21:47:15 ] >>196 のサイトによると、 「Rubyがカタログ上のスペックで劣るため、採用されないというのも不本意」 ということなんだけど、RubyInlineというCを埋め込むライブラリを標準添付 にして、単純な比較は上位になるようにしてしまえばいいのに。 RubyInlineは、今ではWindows(mingw版)でも動くみたいだし。
208 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 02:27:43 ] Rubyベストプラクティスは来月出るんだね
209 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 21:58:00 ] 気づいたんだがコマンドラインオプションの-xってすげー便利だな 外部コマンドを実行できて,かつ複数行コメントの機能がある プログラム言語やマクロ言語ならなんでもRubyスクリプトを埋め込めるのな Windowsのバッチファイルのためだけに存在するのかと思ってた 今日から秀丸マクロにRubyスクリプトを埋込みまくりだぜ
210 名前:デフォルトの名無しさん mailto:sage [2010/02/26(金) 22:07:56 ] Perlから受け継いだ機能ですな。 ネットニュース(掲示板)やメールに載せたスクリプトを、 記事の件名などのヘッダ込みのまま実行できる。
211 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 01:58:24 ] rubyってperlの機能どのくらい引き継いでるんですか
212 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 09:30:08 ] 定量的には分からんが、オプションの多くとか、$+1文字の変数の 多くとか、elifとか、BEGIN END(これはさらにawk由来でもある)とか __END__ とか。正規表現の拡張のうちPerlが初めてやったものも結構 入ってるよな。初期からあるドキュメンテーションコメントが=begin =endなのもPOD由来と見た。
213 名前:デフォルトの名無しさん mailto:sage [2010/02/27(土) 11:31:29 ] インパクトのでかいのは正規表現リテラルかな クオートのエスケープ抜きで正規表現書けるのはちょっと素敵
214 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 03:05:20 ] Rubyで以下のPHPコードをやろうとするとどうなりますか? $curl = curl_init(); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, ‘track=#NowPlaying’); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, ‘stream.twitter.com/1/statuses/filter.json ’); curl_setopt($curl, CURLOPT_USERPWD, $_CONFIG['twitter']['username'] . ‘:’ . $_CONFIG['twitter']['password']); curl_setopt($curl, CURLOPT_WRITEFUNCTION, ‘progress’); curl_exec($curl); curl_close($curl); function progress($curl, $str) { print “$str\n\n”; return strlen($str); }
215 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 03:16:19 ] よくわからんが、syntax errorを出せばいいのか?
216 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 04:34:06 ] >>214 PHPはよく知らんがたぶんこんな感じ require 'uri' require 'net/http' postfields = {'track'=>'#NowPlaying'} uri = URI('stream.twitter.com/1/statuses/filter.json ') uri.user = $_CONFIG['twitter']['username'] uri.password = $_CONFIG['twitter']['password'] res = Net::HTTP.post_form(uri,postfields) print "#{res.body}\n\n"
217 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 18:22:56 ] >>214 あと、CurlはRubyバインディングがあることはあるが、 作者いわく「Linuxでしかテストしてないよ」な代物なので注意な。 Windowsとかの場合はDLとか使って無理矢理呼ぶ必要がある。
218 名前:デフォルトの名無しさん mailto:sage [2010/02/28(日) 21:00:30 ] pc12.2ch.net/test/read.cgi/tech/1200175247/ Rubyの宿題教えてください。2限目
219 名前:214 mailto:sage [2010/03/01(月) 04:38:35 ] >>216 ,>>217 ありがとうございます。 trackurl = 'stream.twitter.com/track.json?track=http ' c = Curl::Easy.new do |curl| curl.url = trackurl curl.userpwd = USERNAME + ':' + PASSWORD end $VERBOSE = nil while true body = c.on_body do |data| result = body ? body.call(data) : data.length next if !result.is_a?(Integer) s = JSON.parse(data) rescue next user = s['user'] next unless user && user['lang'].include?('ja') links = s['text'].scan(/(https?:\/\/[-_.~a-zA-Z0-9;\/?:\@&=+\$,%#]+)/).flatten links.each do |link| p "url => #{link}" end result end c.perform end 見よう見まねでこんな感じになったんですが、これをずっと動かしているとStackErrorとかで止まります。 後は>>218 の方で聞く事にさせて頂きます。どもでした。
220 名前:デフォルトの名無しさん mailto:sage [2010/03/01(月) 20:25:39 ] うわあ、Pathname#to_str はもうないのか open 用だなんて俺場面的に超便利な使い分け機能だと思ったのに てかこのマニュアル古いな
221 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 22:26:12 ] >>220 Pathname#to_s と Pathname#to_str って実質的に同じメソッドですよね? to_s ではダメで to_str でないと具合が悪い状況が思いつかないのですが。
222 名前:デフォルトの名無しさん mailto:sage [2010/03/02(火) 22:30:18 ] irb> class C; def to_s; "./"; end; end irb> open(C.new){} TypeError: can't convert C into String irb> class C; def to_str; "./"; end; end irb> open(C.new){} irb>
223 名前:221 mailto:sage [2010/03/03(水) 00:01:46 ] >>222 なるほど Kernel#open が引数に対して to_str を呼ぶという仕様絡みですか。 ググッてみたら、open 内で to_open を呼ぶようになったので Pathname#to_open を実装したら、みたいな話が以前にあったようですが、最終的にどうなったのかな? Pathname#open があるのでそれを使えということなんですかね。
224 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:26:24 ] / 区切りは Windows の Ruby の open とかでも使えるんだっけ? ドライブ文字とかどうしてるの?
225 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:34:51 ] / を使用しているときはドライブの指定はできない ドライブ名つきのフルパスを扱いたいときは D:\somedir のように \ を区切り文字に使う ということだったと記憶
226 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:39:30 ] >>152 リファクタリングRuby版が届いたが † 現行では動作しません という訳注はどうやらないようだ まだ手は動かしてない
227 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 00:41:47 ] >>225 マイコンピュータは仮想的なフォルダであり、Windowsのドライブ変更はUNIXではルートのマウントし直しに該当する …とRubyでは考えてる、ように見える / はカレントドライブのルートを返す(つまり普通は C:\) 時々、/c/windows や /d/somedir のようにマウントされてるとみなすソフトもあるけどね こっちのほうが正直便利なんだけども、いまさらそんなこと言っても
228 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 02:41:15 ] 教祖がウィンドウズ使ってない故の実装の甘さだな。
229 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 02:46:41 ] >>224-225 気にせず使ってるけど、それでエラーに遭遇したことがないよ。
230 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 03:08:01 ] WindowsはAPIレベルでは / と \のどっちでもディレクトリセパレータとして扱ってくれるので(注:正確かどうかは知らん) ドライブ指定があろうが、UNCだろうが / で通る Ruby内で閉じてるのなら \ は使わずにすむよ 確かDOSのころから \でも/でもよかったんじゃないの? スイッチのキャラクタが/だったんで コマンドライン引数では\のみがディレクトリセパレータになっただけで Windowsのコマンドプロンプトでもコマンド自体は >c:/windows/notepad.exe とかで起動できるよ
231 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 03:19:03 ] >c:/windows/notepad.exe 確かに起動出来るね >dir "c:/windows/notepad.exe" ファイルが見つかりません
232 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 03:20:41 ] cygwin 版なら /cygdrive/c/hogehoge /cygdrive/d/fugafuga
233 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 10:51:52 ] >>230 > Windowsのコマンドプロンプトでもコマンド自体は > >c:/windows/notepad.exe > とかで起動できるよ だからそれはcmd.exeの処理だと何度言えばわかるですかもう堪忍袋の緒が切れました
234 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:05:12 ] どっちかってとルートである / の扱いがへぼいという話に見える
235 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 11:44:05 ] だからって今更¥使うってのもあり得ないけど。
236 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 13:41:39 ] マカー発見 まああんたには関係ない話だろうな
237 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 14:02:03 ] >>235 お前らは素直にコロン使ってろよ しかも相対パスと絶対パスの見かけが逆とか /A/B/C → A:B:C B/C → :B:C
238 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 14:10:12 ] まあ使いたくてもOS9ではRuby動かないんですけどね
239 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 14:19:18 ] >>236 は何を以てマカーと判定しているのでしょうか。
240 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 14:29:17 ] ¥
241 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 14:54:30 ] なるほど。そういえばそうでした。
242 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 18:14:53 ] >>233 cmd.exeがなにか特別な処理をしてるとは思えんのだが コマンド名はそのまま プロセス起動APIに渡してるんじゃないの?(これも正確か知らんけど) 直接CreateProcessに/区切りで渡しても起動するよ Rubyで system('C:/windows/notepad.exe') だとあまり直接っぽくないし、かといって require 'Win32API' Win32API.new('kernel32','CreateProcess','PPPPILPPPP','I').call('c:/windows/notepad.exe','',nil,nil,0,0,nil,nil,[68].pack("L")+"\0"*64,"\0"*64) じゃ長いかなと Win32APIで例をあげるなら、カレントディレクトリの変更なんてのが短くていいか require 'Win32API' Win32API.new('kernel32','SetCurrentDirectory','P','I').call('c:/windows/') p Dir.pwd
243 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 18:30:06 ] で?
244 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 18:59:57 ] っていう
245 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 21:05:48 ] WindowsはUnix系のノリでシェルとOSとの分担がなされていると考えると 驚愕させられることになるよな ワイルドカード展開が各プログラムで自力とか プロセスの引数がARGVで取れるのはCランタイムが 頑張って分割してるだけとか
246 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 21:31:27 ] で?
247 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 21:54:18 ] 大量にファイルがあるディレクトリで echo * | grep hoge すると out of memory とかなんとかで死ねる
248 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:04:27 ] ソフトエイジェンシー、Rubyのソースコードを暗号化する「RubyEncoder」 - Enterprise Watch "ソフトエイジェンシー、Rubyのソースコードを暗号化する「RubyEncoder」 del.icio.usに追加 Twitterに投稿 livedoorクリップに追加 Google Bookmarks に追加 Yahoo!ブックマークに追加 はてなブックマークに追加 株式会社ソフトエイジェンシーは3月3日、Ruby/Ruby on Railsのソースコードを暗号化する「RubyEncoder」を発表した。 価格は3万1500円/ライセンスで、3月8日より提供する。 RubyEncoderは、Ruby/Ruby on Railsのソースコードをバイトコード形式に変換する製品。簡単に解読できなくすることで、 商用アプリケーションとして配布する際などに知的財産の保護が実現する。特長は、多彩なアプリケーションロック機構を搭載する点。 IPアドレス、MACアドレス、ドメイン名が一致しないとアプリケーションをロックして動作不能にできる。これにより、安易なコピーを防げるほか、 アプリケーションに有効期限を設定して体験版も容易に作成可能。また暗号化とは別に、アプリケーションの実行に必要なライセンスファイルも作成できる。 これにより、評価版や製品版など異なったライセンス配布が可能だ。 製品構成は、エンコーダとスクリプトローダの2種類。暗号化するエンコーダは1ライセンスで1台のみインストールが可能。複合するスクリプトローダは無制限で利用できる。 動作環境は、Windows/Mac OS X/Linux/FreeBSD、Ruby 1.8.6/1.8.7/1.9.0//1.9.1。 " enterprise.watch.impress.co.jp/docs/news/20100303_352389.html
249 名前:デフォルトの名無しさん mailto:sage [2010/03/03(水) 22:37:43 ] なんていうかさあ、コピペするならするでもうちょっとちゃんとやれよ
250 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 00:25:58 ] ねー質問、URI.parseが自動でURI.escapeしないのはなんで?
251 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 01:27:43 ] 自動でするようになったらなったでうがぁーってなると思うようがぁーって どこをパース時にエスケープしたのかきちんと区別して喋れって思うはず というか、parse なんだから、文字列をそのままオブジェクト化するでいいんじゃないの オブジェクトにする際に不正なものがあれば例外出して落ちると ユーザーの利便性はラッパーとか作ってねみたいな build2 があるなら parse2 があってもいいじゃんという感じはする
252 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 09:43:52 ] 不正なURLを扱えるようにしたいときにも困るかもしれないしな 日本語URLなんてのもあるし
253 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 10:20:23 ] そんな需要は極一部だから、独自で実装すればいいだけだな。
254 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:04:32 ] というか既にそういうgemがあって既存のURIクラスを差し替える形で 取り込む話になってたような
255 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:12:36 ] じゃあ日本全国で毎日うがぁーってなると思うようがぁーって
256 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 13:48:33 ] >>254 Addressable?
257 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 22:27:41 ] >>256 そう。不正URIをどうするかは知らんけど。
258 名前:デフォルトの名無しさん mailto:sage [2010/03/04(木) 22:43:46 ] >>256 オーケー自作のURIクラス破棄した
259 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:55:23 ] >>258 嬉しい半面悲しくなるよな。 もっと早くに知ってればっていう。
260 名前:デフォルトの名無しさん mailto:sage [2010/03/05(金) 00:58:45 ] 自力でライブラリのアッパーバージョンを実装するためには RFCとか他言語の類似ライブラリとか読み込まないといけないことが多いので ただ出来合いのを見つけて利用するだけの時よりも確実に実力がついていることは間違いない 問題はその実力とやらが役に立つ機会が低いと危惧されることかな
261 名前:デフォルトの名無しさん mailto:sage [2010/03/06(土) 02:50:39 ] rubyの次の言語を作るときぐらいだろうな。役に立つのは。
262 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 00:10:26 ] "アンエンコード" に一致する日本語のページ 約 803 件 "アンエスケープ" に一致する日本語のページ 約 9,350 件 うううん…
263 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 04:23:57 ] アンアンエンコード の検索結果 約 278,000 件中 1 - 10 件目 (0.24 秒) アンアンエスケープ の検索結果 約 99,600 件中 1 - 10 件目 (0.22 秒) うううん…
264 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 11:07:21 ] 「うううん…」がちょっとエロいと思ってしまう俺は童貞
265 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:39:52 ] アンアンの方じゃないのか
266 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 23:13:33 ] アンアンがあるから、その下のうううん…がエロく感じるんだよ …ちきしょう
267 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 06:50:31 ] どうでもいいけどメーリングリスト、いやメールといってしまってもいいけどさ。 「暗号化されていないメールは煮るなり焼くなり転送するなり印刷するなり好きにしてくれ」 というのが常識だと思ってたんだけど今はそうでもないのな。
268 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 07:11:58 ] まじめにレスすると馬鹿を見そうだからやめとくお
269 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 12:58:04 ] ttp://pc12.2ch.net/test/read.cgi/tech/1267668057/230-231 なんか地味に酷い遣り取りが
270 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:14:51 ] るびまは随時アップデートすべき? それもなんか違うよねえ
271 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:21:27 ] でも古くて使えない情報をいつまでも放置しとくのもどうかと。 もうこの情報は古いの注釈ぐらい入れたほうが、検索でたどり着いた初心者には有用かもしれない。
272 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:27:12 ] >>271 よしじゃあ君を「るびまの情報が古いかどうか全ページ調べて毎週報告する係」に任命だ
273 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:33:15 ] MLで報告なりすれば時間があるときに編集部注的なものはつけられるかもしれないが 一番の問題はアクティブメンバーはるびまの過去記事に触れる機会がないということだな たとえば、このスレにいるような人は「Ruby CGI」でわざわざぐぐったりしないだろ ttp://www.google.com/search?num=50&hl=ja&q=Ruby+CGI&lr=lang_ja だから、「古い情報の害」にぶち当たるのは常に初心者だけだ
274 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:47:52 ] この記事は参考になりましたか? ・ 参考になった ○ 記事自体が有用だった ○ 参考程度にはなった ・ 参考にならなかった ○ 期待した内容と違った ○ 記事通りに動作しなかった みたいなアンケートを一番下にくっつけとくというのはどう
275 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:54:43 ] 記事を寄稿した人に頼むしかない現状が… 本気でアップデートしたら別記事になってしまう
276 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 15:05:45 ] バージョン対応の管理は面倒だよねえ うまくやる方法はあるのかな
277 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 15:16:42 ] 今回でいえば「RubyでCGIをつくろう2010」という記事が1本書けることが示された ネタの確保には成功したが誰が書くのかまでは知らん