○
>>1 乙 もうお前に用はない
く|)へ
〉 ヽ○ノ
 ̄ ̄7 ヘ/
/ ノ
|
/
|
/
おつ
.. (. . ) ,―ヽ__(__、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ スレ立て乙ピョん☆ i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i | > ヽ. ハ | ||
Mechanizeアップデートされたのか なんかgem installでは入ってこないんだが
.. (. . ) ,―ヽ__(__、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ おまえらInfoQのインタビュー記事見ろよな☆ i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i | > ヽ. ハ | ||
↑心の底からたのしそうでなによりです
>Ruby開発者をむっとさせるのは簡単だ。言語内でendが重要な役割を果たすことをなじるか、 >グローバルインタプリンタロック(GIL)があることで、インタプリンタ内で一度にひとつのスレッドしか実行できないことを指摘すればいい。 まで読んだ
なんで++がないの、も可。
Windowsの話題を出すのでも可
ウィンドウズでのインストーラネタは定番だしな。 すなおにvb使えw
Windows使いならPythonでも使ってろよ
powershell 辺りも悪くはない・・・
遅すぎる。 PS使ってからRubyに戻ると羽の生えたように軽く感じる。
早さは微妙だけどぐぐりやすいので重宝する ひとには意外と会うんでないかという・・・ インデント強制はやっぱりめどい
とりあえずレスに Windows ってキーワードを添えるだけでレスいっぱいもらえることは判った
>>19 二番煎じじゃいまいちだな。もすこし頑張れ。
まあ煽りじゃなくてWindowsとの親和性は残念だけどRubyよりPythonの方が高いな
てめぇ、IronRubyナメてんのか
Windows方面はIronRubyに任せるというのも…… せっかく処理系たくさんあるんだし まあ、少なくとも安定してからの話か
jython と ironruby ふたりは不人気!!!
Python側の親和性ってどんな感じ? Windows用GUIアプリがサクサク作れるとか?
RubyとかPythonでGUIって発想が怖い・・・
GUIほどオブジェクト指向を楽しめるジャンルないのに
GUIのAPIを操作するサブ言語として自分の見知ったスクリプト言語を使えるというのは利点だろう きちんと隠蔽されてきちんとライブラリが作られているということが最低条件だが 「これなら直接書いたほうが早いわぼけー」というラッパーは存在価値がないぞ
頭悪そうな奴
>>27 こんな風に思ってる人いるんだ。
お手軽でいいのに。
>>29 >きちんと隠蔽されて
の意味が良くわからない。
一体何を隠蔽するのだろう。
>>31 ただ、Javaでもぶっちゃけそんなに変わらないんじゃないかと
C#もあるし
Pythonでそんなに楽できるのかな〜という気はする
それに、スクリプトからGUIを起動するのはなんか気持ち悪い
いちいちexe化してたらスクリプトの利点もなくなりそうだし
そもそもスクリプト言語って用途的にはフィルタに使うもんだべ?
んなこたない ただIDEと高度に結びついてないとGUIはダルい
IDEまでいかなくても、デザイナレベルのものがあれば十分だと思うけどね。
そこまでしてスクリプトにこだわらなくても LinuxならJava、WinならC#使えよ気持ち悪い
別にこだわっちゃいないけど、逆に何でそんなにスクリプトでGUI書くことを 否定したがってんの?
そりゃLLで本格的にGUI使われたらJavaやC#の商売あがったりだからだよ
if String.new.respond_to?(:force_encoding) はやっぱりカッコ悪いしわかりにくいと思う
defined?(::Encoding) が module M; module Encoding; end; end include M に対して無力だと知ったとき俺は大人の階段を一段のぼった
,―ヽ_(((((_、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ 時代はオープンソース。Windowsなんてほっとけ i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i |
RUBY_VERSION <'1.9' 撲滅派の人に質問 pp の表示が「日本語」になるかどうかで場合分けしたいんだけど、どう書けばいい? Ruby 1.9 ってエンコーディングがあってれば p の表示が日本語になることがあるよね
>>45 初心者スレで質問したほうがよかったんじゃない?
var = "日本語"
if var.inspect =~ /\P{ASCII}/
puts "厳密には非ASCII文字"
else
puts "ASCII"
end
あとp と pp は inspect と pretty_indpect で使い分けて
>>45 だいぶ前に似たようなことで迷って調べたことがある
そのときのスクリプトではこう書いた
STDOUT.respond_to?(:external_encoding)
たぶんこれがわかりやすいはず
Array#sampleが有ってArray#sample!が無いのはどなーいして?
なんでsample!が欲しくなったのか、一言どうぞ。
せんせいしつもん $KCODE が使われてたらテストの動作変えたいです でも $KCODE にアクセスしたら警告が表示されてしまう Ruby もあると聞きました 警告を出すことなしに 「$KCODE が時代遅れな場合は処理を変える」 ということをやる方法おしえてくださいチュ
1.9 への移行準備ってゆーか、注意事項とか確認したいんだけど、 読み物ありませんか?
>>51 $KCODEは実体がなく読み取りと読み出しのC関数があることによって
存在しているように見える仮想変数なんだが、1.9ではこの読み取りと
読み出し両方の関数で rb_warn という関数が常時呼ばれて警告が出る。
rb_warn は $VERBOSE.nil? が真なら出力することなくリターンするので、
テスト時に一時的にnilを代入すればよいと思う。(falseだとだめ)
>>53 先生それは「警告うざければその前後で$stderr乗っ取って警告捨てればいいんじゃね」レベルです
その間に $VERBOSE を利用する人がいたらどうするんですか責任とってくれるんですか蒼い時代ですか
要は個別に制御する方法は特に用意されてないのね
ちょっとがっかり
テストが済んだら元に戻せばいいじゃない 割り込まれたくなければ Thread.criticalをいじればいいじゃない
tmp = $VERBOSE $VERBOSE = nil begin hogehoge() ensure $VERBOSE = tmp end
ActiveSupportにsilence_warningsあるね。
>>58 irb1.9> silence_warnings{ $KCODE }
nil
irb1.9> $KCODE
(irb):3: warning: variable $KCODE is no longer effective
nil
キャーステキー
中身は
>>57 だけどな
スレッドには対応してなさそうだ
silence_stream(STDERR){ $KCODE } は 標準エラー出力乗っ取りだが mingw では動かなさそう
61 :
52 :2010/02/10(水) 20:39:25
やっぱりここはRubySpecFeatureみたいなクラス持ったgem作って配布するしか。 RubySpecFeature.has_feature?(Spec番号) とかやると実行してる処理系での当該Specをサポートしてるか教えてくれるの。
よしまかせた。
>>64 String#inspect では起こらない
エスケープ目的で使うのは勧めない(たとえば今回のようなとき、ログ文字列を inspect する)
あくまで結果的にエスケープもされるという程度
とここまで書いて、Shift_JIS 文字列として inspect すると引っかかるかもと思った
cgi書いたんだけど、実行時間の半分以上が require "rubygems" と require "rmagick"の二行に費やされてる。
会議までに1.9.2の正式リリースがほしかった
# 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
ttp://doc.okkez.net/static/191/class/Regexp.html * Regexp.new(string, option = nil, code = nil)
> 第一引数が正規表現であれば内容が同じ(ただし、上記フラグの内容はクリアされた)正規表現を複製して返します。
> このとき、複製した正規表現に対して、第二、第三引数の指定が設定されます。
> 第一引数が正規表現であれば第一引数を複製して返します。第二、第三引数は警告の上無視されます。
どっちやねん
最初の方は「文字列」なんだろうけど、まあありがちだよ
>>71 1行目と2行目は1.6の挙動だな
3行目は1.8の挙動
1.9では
「正規表現のエンコーディングを指定するには第一引数の文字列のエンコーディングを直接変更してください」
となるはず
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]]/ ガッデム
ISO-2022-JPはなー。
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 なんかだんだんどうでもよくなってきた
初心者スレでコントロールコードを取り除きたいって言ってた人と同じかな
日本製なのにJISが処理出来ないのもどうかとw
ISO-2022-JPを素で扱える正規表現エンジンはさすがにないだろ。
日本語版マニュアルになんらかのコメントくらいはあってもいいかもしれない
>>81 それはRubyにおけるダミーエンコーディングの意味の説明が該当するのでは
。
以前このスレでBigdecimalのバグと対処を上げていた人が いろいろあってコミッターになったみたいだな。 ともあれ人手が増えたことはめでたい。
あ〜、「バグっぽいの見つけたけど、報告はここでいいんですかね?」みたいな いいわけないだろと心の中で突っ込んだが
普遍的にバグであるかどうかを確認するためにスレで話題を振る、というのはアリではあるが ライセンス上、パッチを2chに投稿したら取り込めないのでそこだけは注意
ああ、著作権が2chに移っちゃうって話か。確かにそうだわな。
まあそのまま取り込まなきゃ回避策はいくらでもある。 オープンソースなんて、どこかのをパクりまくり出し。 著作権は権利が認められれば、その作者が持ってるので放棄出来ないけどな。 著作権法よく読もうぜ。
1,2行の簡単なパッチに著作権が発生するかどうかは微妙なところ。
あんな規約法的におkなのか?
個別に争われる余地はあると思われ 少なくとも「アホ言うなバカ」と裁判所に門前払い食らうような内容ではない 余談だが、世の中の訴状は裁判所によってある程度、審議以前の問題だと却下されている 「○○を訴えました」という報道発表と実際の裁判の数は必ずしも一致しない 訴状を見てから判断する、という発言は本来は正しいんだがなぜか悪役になってる不思議
>>88 あんなもんが法的に有効だとか思っちゃうお花畑は黙ってろ
有功じゃないってことは具体的に何かに反してるってこと?
>>89 「絶対に発生しない」のでなければ避ける以外の判断はできない
Rubyライセンスと整合するのでなければそもそもさわれないよ
ひろゆき…今はそうじゃないのか、2ch、が書き込まれたソースコードを利用するという意味ではなく
事前に2chという掲示板で公開されたソースコードをRubyにライセンス上取り込めるかどうかという話
俺は「取り込めるとは限らない(裁判での判断が必要)」と思う
だから「めんどくさいので2chにRubyライセンス関係のパッチを書き込むべきではない」と考える
他のうpろだに揚げたものをリンクすれば医院で内科医
出来合いのブログサービスでソース公開してしまうのも結構マズい というか、ライセンス上マージ可能なソース公開場所を挙げるほうがよさそうだな githubとか?
> 出来合いのブログサービスでソース公開してしまうのも結構マズい そういう法的におかしな条項に、諾々と従ってしまうのが一番マズい
俺の嫁の飯が一番マズイ
>>98 君が私費を投じて戦って、トラブルがある(と予測される)たびに法的根拠のある判断を勝ち取ってくれるなら
誰も何も言わないよ(おまけに勝敗も問わない)
そうでないのなら何も言うべきではない
無闇に安全側に倒すな、という人は危険側に寄ったぶんのコストを支払ってくれ
>>100 の言うように別に負けてもいいんだが、それにかかる金額と時間がひたすら鬱陶しい
誰からも権利上の突っ込みを受けえない、という状態の有り難味を噛み締めて欲しいもんだ
102 :
デフォルトの名無しさん :2010/02/17(水) 13:48:26
せんせい質問! CentOS5.4にRails環境作ったんだけど、script/serverのログの文字が一部化けます。 「サーバ2」=>「サーバ\357\274\222」 こんな感じ CentOSのコンソール、Windowsのターミナルともに同じ化け方なので、ターミナルの問題ではなさそう。 ソース中のコメントはviで日本語で表示されます。
Rubyのパッチレベルをちょっと戻すか、あるいは開発版使う inspectの最後のマルチバイト文字がそのままになるんだよ irb> $KCODE="u"; p "えびしおポテコが食べたいのに全然売ってない" "えびしおポテコが食べたいのに全然売ってな\343\201\204" ユーザーレベルでの対処法があるなら知りたい 最後がマルチバイト文字でなければきちんとなるんだけど、そんなの全部やるの無理だよな irb> $KCODE="u"; p "えびしおポテコが食べたいのに全然売ってない\n" "えびしおポテコが食べたいのに全然売ってない\n"
latin1
>>106 メーリングリストはアーカイブが適切な語でGoogleに引っかかってこそ価値があるのですよ
>>106-107 …まあどっちもどっちではあるな
というか、修正されること自体はそもそも確定で、現時点でどーすればいいかということのほうが問題なような
っていうかこのへんのテストとかしてないのなんで漏れてんの
>>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週間なのですが、検索エンジンで見つけられそうなキーワードを把握していませんでした。
コミットしてからリリースまで誰も気づかなかったというのが物寂しいな 上の人はもう1.8系列で日本語表示なんて誰もしてないのだろう
>>112 $KCODE設定してpで日本語表示しないと気づけないからねえ
スルーされる可能性は高い
困ってる人一杯いるだろうから、これだけでも先にリリースして欲しいよな。 ダウングレード面倒だし。
unrecognized options: --with-readline-dir 安定板ビルドしようとしたらこんなエラーでた ぽにょ挫けそう
./configure --help |grep with
そういう問題を先送りが後で響いて困る訳でw
初心者スレで質問したところ、本スレ行ってこいと言われたので失礼します。 Kernel#lambdaで作られるProcオブジェクトはブロック内でreturnしたときに Proc#callから抜けるという特殊な挙動になっていますが、これはどのような仕組みなのでしょうか。 Kernel#lambdaはおそらくCで実装されているのだとは思いますが、 Rubyでも実装できるようになっていると思います。お願いします。
122 :
デフォルトの名無しさん :2010/02/19(金) 10:47:07
,―ヽ_(((((_、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ オープンソース情報データベースOSS iPediaの活用秘技. IPA OSSセンター 研究員 岡田 賢治 i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i |
1.9だと def []=(*keys, value) って書けて素敵よね
むしろそれ以前でできなかった理由を知りたい できるようにしてても特段デメリットないようにも見えるが
意図的にできないようにしてたわけじゃないと思うけど。
Emacs Lispの&rest とか &optional のような使い方がしたくて 実装しただけだと思う。少なくとも当初は。
1.6くらいで思いついてて欲しかったとちょこっとだけ思う
我々にできるのは1.9系列の周辺を使いやすくすることしかない 初級を抜けたランク4くらいの人を全部1.9ユーザーにしないと gemライブラリも全部1.9対応にするくらいの勢いで 解説や記事も1.8用と1.9用の記述を並立
>>123 って普通に可変長引数を通常の引数の前に置けるってこと?
それともブラケットメソッド関係で何か特殊なの?
ary[x, y] みたいに多重配列が作れたりとかする?
いや見たまんまだと思うが 最後の引数以外は可変
1.9の普及が足りんな。 def test(a,*b, c) とか出来るぞ
>>120 1.9の、しかもあくまで俺の理解した範囲でいうけど、まずコンパイル結果からして違う
ブロックの中のreturnはthrow 1っていう特殊な例外を投げる命令になるけど
普通のメソッド中のreturnはleaveっていうフレームを終了させる命令になる
で、ブロックがフレームに積まれるとき、lambdaかどうかはフレームに記憶されていて
前述の例外が通知されると、実行中のフレームがlambdaかメソッドならリターン処理
普通のブロックなら例外をさらに上のフレームに伝播させる、って感じでやってる
とそういうわけで、この特殊例外を発生させる方法がRubyにはないので無理です
あーあと、フレームってのは動的な処理の単位ね、メソッドとかクラス定義とかブロックとか
詳しく種類を知りたかったらvm_core.hにVM_FRAME_MAGIC_なんちゃらって並んでるから
>>134 ×発生させる方法が
○発生させる方法もキャッチする方法も
136 :
120 :2010/02/19(金) 21:04:49
>>134 回答有難うございます。どうやら、VMの理解が必要そうですね。
とりあえず、ブロックのreturnとlambdaのreturnが別物ということはわかりました。
C言語は苦手ですが、勉強がてらソースコードを読んでみたいと思います。
RubyForgeへいってoneclickrubyダウンロードしてるんですが、滅茶苦茶遅いのはなぜでしょう? どこかにミラーとかって無いんですかね?
>滅茶苦茶遅いのはなぜでしょう? 善悪属性値が下がってるんじゃね とりあえず巷で話題になってないので、回線か経路的なもんだと推測される 何人か症状出てる人がいれば推測もできるんじゃないかと
ショッピングを続ける: 最近の履歴に含まれている商品を買った人は、こんな商品も買っています ページ: 1 / 17 (最初に戻る) 前に戻る * 恍惚美女~潤う甘い果実~ 菜摘四季 [DVD] DVD ~ 宇田マサル ¥ 2,952 おすすめ商品を修正 * 乙姫VOL.5 桜木久美子 [DVD] DVD ~ 桜木久美子 5つ星のうち 4.0 (5) ¥ 2,952 おすすめ商品を修正 * 快感ヌーディーフロント 阿井原すみれ [DVD] DVD ~ 宇田マサル 5つ星のうち 4.0 (2) ¥ 2,952 おすすめ商品を修正
>>139 > 価格: ¥ 5,040
絶対的価格がなんか微妙に高ッ!
450ページの大型本だから妥当なんだけどさ
自称中級者でJAVA版のリファクタリングを読んだことは無いんだが読むべき?
そろそろ1.9に乗り換えないと流行に乗り遅れそうだ。
手元でライブラリのメソッド再定義できるくらいの力のある人は普段使いを1.9.1にできるレベル 前はなんとかしないとならないgemライブラリが多すぎて諦めたもんだが
戻り読みのできない正規表現エンジンとか使ってられないよ!!!
>>143 だめぽいね
翻訳で大幅手直しが入っていれば、といったところか
内容変えちゃったらそれは翻訳じゃないじゃん シドニィ・シェルダンみたいに別もんになるぞ
明らかな誤植は直してほしいな。
動かないYO!くらいのヤク中はつけてくれるだろ
意味ねー † 現行では動作しません とかいう注釈が毎ページにある状態
>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?
つかなんでこれ翻訳しようと思ったんだ
そのうち、Yuguiさんが別本として出してくれるのではなかろうか
書名は「Rubyリファクタリング」でよろしく
元ネタのリファクタリング本が優れていたのは コードを綺麗にする方式の提示もさることながら、 ある方式を実施するにあたってコードを壊さない一連の手順を 提示したのが大きい訳で、サンプルとして例示したコードが動かないんじゃ 有り難みも半減だよなあ。
この動かないプログラムを動くようにしてさらにリファクタリングもしろという 作者からの課題かもしれない。
もともと動かないものを動くようにしちゃったら、 それは仕様を変えたということでリファクタリングになってないだろ
>>156 なんであんなわかりにくいだろうね
めちゃくちゃ区別しにくい
だが待ってほしい
リファクタリングとは,プログラムの動作を変えずにソースコードを整理すること. ということらしいので,動作を変えるような変更はリファクタリングではない.
つまり動かないコードを動くようにするフェーズと 動くようになったコードをリファクタリングするフェーズとを厳密に分離する必要があるという話だな。 1フェーズ目の成果をリファクタリング前のコードとして掲載して 2フェーズ目の成果をリファクタリング後のコードとして掲載せよと。 ……もういいからYuguiさんが凄いリファクタリング本書いてくれるの期待しようぜwww
ちうかRubyistって基本的にスパゲッティ大好きだろ? リファクタリングなんてせずに黙って食え。
なに頭でっかちな脳内だけの空論を言ってるんだよ リファクタリングで不安定なプログラムが安定するなんて当たり前にあることだろ 役に立たない言葉の定義なんてどうでもいいわ
ネタにキレレス(ry
だよなwネタにマジレスとかありえねー
どれがネタなのかよくわからん
突っ込まれるまでマジで、突っ込まれたらネタ。
ネットで、ましてや2ちゃんで体裁なんて気にすんなよw
>>167 それは普通に改善とか修正とかリストラクチャリングって
呼べばいいんじゃね。
機械的な手順やツールによる自動化が提供されていなかったり、
単に作業者がプアだったりした時に、
リファクタリングのつもりで違う何かをしているというのは
よくある話。
とりあえず、リファクタリングはきちんと専門用語だから プログラミングだけでは金にならんし意味がないからという理由で 営業もプログラミングに含めるというような行為と同じ
>>167 のような人にこそリファクタリング本が必要だ
「新しい良い動作」に書き換えることなら誰でもできるんだよ(それこそ初心者にも) それでいいのならリファクタリングという概念が持て囃されることは永遠になかったはず リファクタリングはソフトウェアとして新しい動作を一切組み入れない ソースコード管理において安全度優先の書き換えを行えるようにする知識を供給する うまくいかないことも少なくないが、俺コードで書き換わって不用意に破壊されるよりは諦めがつく
用語の定義をないがしろにするやつは死んだらいいと思うw
リファクタリングという言葉の定義って どこかできっちりと決めたものがあるのか?
>リファクタリングはソフトウェアとして新しい動作を一切組み入れない ちがう罠
wikipediaには厳密な定義がないって書いてあるんだがどっちよ あるというならどこにあるのかも書いてくれないと
>>180 つうかそれを提唱したのがファウラーのリファクタリング本だよな。
そのレベルのクォリティを期待されてたRuby版がうんこだったからこそ
大炎上なんだし。
変更の影響を考えたらコードを綺麗にするなんて机上の空論、 なんて言ってたような連中へ突きつけられた現実解が リファクタリングだしな。 本読んでなきゃ開発ツールに付いてる便利なリネーム機能ぐらいの 認識かもしれないが。
定義という言葉の定義すらわかってないのがこのスレのクオリティ
>>167 のような人を赦すようにはなってないな
少なくとも「リファクタリングとは本に書いてある一連のやつ」という認識は共通だ
そういうレベルでオレオレの入り込む余地はない
本を読んだ上で個々の効果の議論をするのは有効
>>185 pediaにしたって英語版にはそんな記述なくて要出典ものだけど
それでも「外部からの動作を変えずに」と書いてるな
デザインパターンもそうだが、基本「あるあるあるあるwwwwwwwwwwwwwwwww」の集大成だ 逆にいうと、そういうので困った参った恨んだ吐いた経験がないと意味がわからないかもしれない それこそ、「俺が書き換えたほうが早い」
>>188 「○○○で困った経験があるだろ?」
「ないよ」
というのは意外と地味に困る
>>190 いつも他人に尻拭いさせてりゃ困ることは無い罠
勝手に頭の中で状況作って明後日の方向にスレを持って行くなよ
Ruby Best Practices って本はどうなのよ? 誰か読んだ?
>>193 とても気になるが、対象範囲が漠然としてるタイトルだな
Railsなのか、生Rubyなのか、それともWEBアプリ関係ない汎用的な
クックブック的な物なのか
そもそもRubyの一般的なフィールドってのがよくわからんのに
best practiceも何もって気がする
Amazonに概要が書いてあるじゃん 興味あるけど英語でオライリーの本1冊はおれにはきついなあ 英語の技術書をまるごとは読んだことないのだが、 サンプルプログラムとかあるから実は割といけるのだろうか
ソートの概念自体を教えたいのならCとかFORTRANとか使えよ…
そもそも授業としてソートの中身そのものを教えるということが 昨今のコンピュータ序論または一般教養的にホントに有効なのかどうかという
「しかしこれを使ってはいけません安心確実高速な組み込みのを使ってください」という授業は糞ではあるな というかインタビュー内容の感想書け
このインタビュー中身空っぽだな 「継続は力なり」くらいしか伝わってこない
今日の成功を予感させるものを感じる。 ワロタw
インタビューをするほうの人はもうちょっと根性入れたほうがいいかも 本人の今日夕飯に何々食いましたとかいうブログ記事以下の興味内容しかもてないとか悲しすぎる
インタビューするならRite(笑)がどうなってるのか聞いてほしかった
>>201 歌が下手なアイドル歌手の「熱唱」みたいな表現ですね。
207 :
デフォルトの名無しさん :2010/02/24(水) 21:47:15
>>196 のサイトによると、
「Rubyがカタログ上のスペックで劣るため、採用されないというのも不本意」
ということなんだけど、RubyInlineというCを埋め込むライブラリを標準添付
にして、単純な比較は上位になるようにしてしまえばいいのに。
RubyInlineは、今ではWindows(mingw版)でも動くみたいだし。
Rubyベストプラクティスは来月出るんだね
気づいたんだがコマンドラインオプションの-xってすげー便利だな 外部コマンドを実行できて,かつ複数行コメントの機能がある プログラム言語やマクロ言語ならなんでもRubyスクリプトを埋め込めるのな Windowsのバッチファイルのためだけに存在するのかと思ってた 今日から秀丸マクロにRubyスクリプトを埋込みまくりだぜ
Perlから受け継いだ機能ですな。 ネットニュース(掲示板)やメールに載せたスクリプトを、 記事の件名などのヘッダ込みのまま実行できる。
rubyってperlの機能どのくらい引き継いでるんですか
定量的には分からんが、オプションの多くとか、$+1文字の変数の 多くとか、elifとか、BEGIN END(これはさらにawk由来でもある)とか __END__ とか。正規表現の拡張のうちPerlが初めてやったものも結構 入ってるよな。初期からあるドキュメンテーションコメントが=begin =endなのもPOD由来と見た。
インパクトのでかいのは正規表現リテラルかな クオートのエスケープ抜きで正規表現書けるのはちょっと素敵
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, ‘
http://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);
}
よくわからんが、syntax errorを出せばいいのか?
>>214 PHPはよく知らんがたぶんこんな感じ
require 'uri'
require 'net/http'
postfields = {'track'=>'#NowPlaying'}
uri = URI('
http://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"
>>214 あと、CurlはRubyバインディングがあることはあるが、
作者いわく「Linuxでしかテストしてないよ」な代物なので注意な。
Windowsとかの場合はDLとか使って無理矢理呼ぶ必要がある。
219 :
214 :2010/03/01(月) 04:38:35
>>216 ,
>>217 ありがとうございます。
trackurl = '
http://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 の方で聞く事にさせて頂きます。どもでした。
うわあ、Pathname#to_str はもうないのか open 用だなんて俺場面的に超便利な使い分け機能だと思ったのに てかこのマニュアル古いな
>>220 Pathname#to_s と Pathname#to_str って実質的に同じメソッドですよね?
to_s ではダメで to_str でないと具合が悪い状況が思いつかないのですが。
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 :2010/03/03(水) 00:01:46
>>222 なるほど Kernel#open が引数に対して to_str を呼ぶという仕様絡みですか。
ググッてみたら、open 内で to_open を呼ぶようになったので Pathname#to_open
を実装したら、みたいな話が以前にあったようですが、最終的にどうなったのかな?
Pathname#open があるのでそれを使えということなんですかね。
/ 区切りは Windows の Ruby の open とかでも使えるんだっけ? ドライブ文字とかどうしてるの?
/ を使用しているときはドライブの指定はできない ドライブ名つきのフルパスを扱いたいときは D:\somedir のように \ を区切り文字に使う ということだったと記憶
>>152 リファクタリングRuby版が届いたが
† 現行では動作しません
という訳注はどうやらないようだ
まだ手は動かしてない
>>225 マイコンピュータは仮想的なフォルダであり、Windowsのドライブ変更はUNIXではルートのマウントし直しに該当する
…とRubyでは考えてる、ように見える
/ はカレントドライブのルートを返す(つまり普通は C:\)
時々、/c/windows や /d/somedir のようにマウントされてるとみなすソフトもあるけどね
こっちのほうが正直便利なんだけども、いまさらそんなこと言っても
教祖がウィンドウズ使ってない故の実装の甘さだな。
WindowsはAPIレベルでは / と \のどっちでもディレクトリセパレータとして扱ってくれるので(注:正確かどうかは知らん) ドライブ指定があろうが、UNCだろうが / で通る Ruby内で閉じてるのなら \ は使わずにすむよ 確かDOSのころから \でも/でもよかったんじゃないの? スイッチのキャラクタが/だったんで コマンドライン引数では\のみがディレクトリセパレータになっただけで Windowsのコマンドプロンプトでもコマンド自体は >c:/windows/notepad.exe とかで起動できるよ
>c:/windows/notepad.exe 確かに起動出来るね >dir "c:/windows/notepad.exe" ファイルが見つかりません
cygwin 版なら /cygdrive/c/hogehoge /cygdrive/d/fugafuga
>>230 > Windowsのコマンドプロンプトでもコマンド自体は
> >c:/windows/notepad.exe
> とかで起動できるよ
だからそれはcmd.exeの処理だと何度言えばわかるですかもう堪忍袋の緒が切れました
どっちかってとルートである / の扱いがへぼいという話に見える
だからって今更¥使うってのもあり得ないけど。
マカー発見 まああんたには関係ない話だろうな
>>235 お前らは素直にコロン使ってろよ
しかも相対パスと絶対パスの見かけが逆とか
/A/B/C → A:B:C
B/C → :B:C
まあ使いたくてもOS9ではRuby動かないんですけどね
>>236 は何を以てマカーと判定しているのでしょうか。
¥
なるほど。そういえばそうでした。
>>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
で?
っていう
WindowsはUnix系のノリでシェルとOSとの分担がなされていると考えると 驚愕させられることになるよな ワイルドカード展開が各プログラムで自力とか プロセスの引数がARGVで取れるのはCランタイムが 頑張って分割してるだけとか
で?
大量にファイルがあるディレクトリで echo * | grep hoge すると out of memory とかなんとかで死ねる
ソフトエイジェンシー、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。 "
http://enterprise.watch.impress.co.jp/docs/news/20100303_352389.html
なんていうかさあ、コピペするならするでもうちょっとちゃんとやれよ
ねー質問、URI.parseが自動でURI.escapeしないのはなんで?
自動でするようになったらなったでうがぁーってなると思うようがぁーって どこをパース時にエスケープしたのかきちんと区別して喋れって思うはず というか、parse なんだから、文字列をそのままオブジェクト化するでいいんじゃないの オブジェクトにする際に不正なものがあれば例外出して落ちると ユーザーの利便性はラッパーとか作ってねみたいな build2 があるなら parse2 があってもいいじゃんという感じはする
不正なURLを扱えるようにしたいときにも困るかもしれないしな 日本語URLなんてのもあるし
そんな需要は極一部だから、独自で実装すればいいだけだな。
というか既にそういうgemがあって既存のURIクラスを差し替える形で 取り込む話になってたような
じゃあ日本全国で毎日うがぁーってなると思うようがぁーって
>>256 そう。不正URIをどうするかは知らんけど。
>>258 嬉しい半面悲しくなるよな。
もっと早くに知ってればっていう。
自力でライブラリのアッパーバージョンを実装するためには RFCとか他言語の類似ライブラリとか読み込まないといけないことが多いので ただ出来合いのを見つけて利用するだけの時よりも確実に実力がついていることは間違いない 問題はその実力とやらが役に立つ機会が低いと危惧されることかな
rubyの次の言語を作るときぐらいだろうな。役に立つのは。
"アンエンコード" に一致する日本語のページ 約 803 件 "アンエスケープ" に一致する日本語のページ 約 9,350 件 うううん…
アンアンエンコード の検索結果 約 278,000 件中 1 - 10 件目 (0.24 秒) アンアンエスケープ の検索結果 約 99,600 件中 1 - 10 件目 (0.22 秒) うううん…
「うううん…」がちょっとエロいと思ってしまう俺は童貞
アンアンの方じゃないのか
アンアンがあるから、その下のうううん…がエロく感じるんだよ …ちきしょう
どうでもいいけどメーリングリスト、いやメールといってしまってもいいけどさ。 「暗号化されていないメールは煮るなり焼くなり転送するなり印刷するなり好きにしてくれ」 というのが常識だと思ってたんだけど今はそうでもないのな。
まじめにレスすると馬鹿を見そうだからやめとくお
るびまは随時アップデートすべき? それもなんか違うよねえ
でも古くて使えない情報をいつまでも放置しとくのもどうかと。 もうこの情報は古いの注釈ぐらい入れたほうが、検索でたどり着いた初心者には有用かもしれない。
>>271 よしじゃあ君を「るびまの情報が古いかどうか全ページ調べて毎週報告する係」に任命だ
この記事は参考になりましたか? ・ 参考になった ○ 記事自体が有用だった ○ 参考程度にはなった ・ 参考にならなかった ○ 期待した内容と違った ○ 記事通りに動作しなかった みたいなアンケートを一番下にくっつけとくというのはどう
記事を寄稿した人に頼むしかない現状が… 本気でアップデートしたら別記事になってしまう
バージョン対応の管理は面倒だよねえ うまくやる方法はあるのかな
今回でいえば「RubyでCGIをつくろう2010」という記事が1本書けることが示された ネタの確保には成功したが誰が書くのかまでは知らん
これ標準にぶっ込んどいてね def Marshal.loadfromfile(filename) Marshal.load(open(filename, "r")) end def Marshal.savetofile(obj, filename) open(filename, "w"){|f| f.write(Marshal.dump(obj)) } end
やだそんな Python みたいなメソッド名
公開ライブラリでバイナリスイッチ忘れる人は意外と多い というかバイナリスイッチ相当をWindowsではデフォルトオンにするとかいうのは駄目だな 書いてる途中で駄目っぽいのに気づくくらいじゃどうにもならん
b忘れるのってmatzとlinux厨くらいじゃないのかな
matzはlinux厨じゃないの?
間違いなくLinux厨だな でも今だとMacもUnix系だからb忘れるんじゃね?
webrickのcgihandler.rbもbinmode忘れてるよな 36~40行目あたり 未だに直ってねえ
動作変わるから途中で変更するわけにいかん File.readが直ってないのと同じ理屈
いや明らかにバグだろ cgi_outで改行コードを勝手に書き換えられちゃ困るっての CGIでバイナリファイルを出力することを考慮してないのか 某プラットフォームを無視してるだけなのか分からんけども
無視というか、忘れてるだろうと思うことはある。
こんなのいちいち立ち止まって考えなくてもいいようなフォローが欲しいところではあるな
rubyやめればすべて解決 逝け 立ち止まるな
Ruby使ってるかどうかも怪しいと思う
>>288 用途的にマイナーかつサポートしてる全プラットフォームで
テストしてないゆえのバグだな。
いかにもRubySpec的なテストでで引っかかりそう。
WEBrickの人気のなさは異常
C#を覚えても、XBOXのゲームもPS3のゲームもWiiのゲームもDSのゲームでさえ、つくれないってほんとうですか?
ありゃ、書き込むスレをまちがえた。ごめん。
そんなの有り合わせのライブラリなんて使わないぜって、問題に対処出来るレベルが素通りしてしまってるのがcgiの悲劇だしな。 そして付属のcgiライブラリで簡単に出来ると思い込んでる初心者ほど罠に嵌る。
>>298 cgiライブラリと(webrickの)cgiハンドラの区別はちゃんとしてくれ
まったく別モンだから
cgi.rb引っ張りすぎたよな もうだめだ
Rubyってイースターエッグとかないの?
…そういう隠しお遊び機能のあるプログラム言語があるなら参考のために教えてくれ
昔のVisual Studio(というか結構な数のMS製品)とかDelphiのIDEにはしこまれてたな 変なコードしこむなと政府に怒られてからやならくなったけど
pragmaが有ると怒ってコンパイルやめてゲームを始めちゃうgcc1.34とか。
ルビーをラビーって何度も読んでしまう
ぬぬねねぬぬねの ぬぬねねぬぬねの
Lavie
winでirbを起動するときは irb --noreadline と打ってるよ。 そうしないと文字化けするから。
>>309 それは確かfixがある筈。本体に取り込まれてるか知らないけど。
……あった。これ。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43546 コマンドプロンプトの桁数を80以外に変更していないでしょうか。最近Windows環境のrubyをいじっていないので推測ですが、
どの配布でもreadlineライブラリは含まれているはずですから、基本的には桁数が80であればちゃんと操作できると思います。
80桁以外にしたい場合はちょっと工夫が必要と思います。というのも、readlineライブラリのソースを読んだところ、Win32環境で画面サイズを
取得するコードはrl_prep_terminalに書かれているのですが、ruby側からは呼ばれていないようでした。
これを明示的に呼んでやれば、80桁以外でも操作できるようになりました。
ということで、具体的には以下のようなコードで対処していました。
require 'readline.so'
module Readline
alias :readline_so :readline
def readline(*a)
unless @@rl_prep_called ||= false
require 'dl'
DL.dlopen('readline.dll')['rl_prep_terminal', '0I'][1]
@@rl_prep_called = true
end
readline_so(*a)
end
module_function :readline_so, :readline
end
これを、インストールパスの site_ruby/1.8/readline.rb として保存しておくと以後、require 'readline' されたときに rl_prep_terminal が1回だけ呼ばれます。
irb とか debug とか、iar(active recordのirbフロントエンド)とかで有効でした。ruby-1.8.4時代の話ですが、ご参考まで。
311 :
310 :2010/03/13(土) 03:13:48
もう少し調べてみたところ、
1.9.1には取り込まれてる模様。2009/10/28だから最近だね。
多分これ1.8系には入ってないよね……。
ttp://www.atdot.net/~ko1/w3ml/w3ml.cgi/ruby-cvs/msg/32758 From: yugui ruby-lang.org
Date: Wed, 28 Oct 2009 23:15:49 +0900 (JST)
Subject: [ruby-cvs:32758] Ruby:r25540 (ruby_1_9_1): merges r24594 and r24604 from trunk into ruby_1_9_1.
yugui 2009-10-28 23:15:47 +0900 (Wed, 28 Oct 2009)
New Revision: 25540
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25540 Log:
merges r24594 and r24604 from trunk into ruby_1_9_1.
--
Fix: change terminal's size on Widows when the window size is changed
* ext/readline/readline.c (readline_get): add rl_prep_terminal(1).
insited by jitte [ruby-list:43546]
--
use rl_prep_terminal only on Windows. [ruby-core:25009]
* ext/readline/readline.c (readline_readline): use rb_prep_terminal
only on Windows.
Modified files:
branches/ruby_1_9_1/ChangeLog
branches/ruby_1_9_1/ext/readline/readline.c
branches/ruby_1_9_1/version.h
# invalid な UTF だと正規表現でエラーが出るので ascii にする str.force_encoding(Encoding::ASCII_8BIT) ASCII_8BIT という呼び方は微妙な誤解を生むなあと思った(特に英語圏の人) BINARY のほうがまだわかりやすそうだ
>>312 BINARYと書いてあると特別な処理が必要であるように読めるからやめちくれというメールがあった
1.8 と同じ動作になるだけだという返信でオゥとか言ってたが
1.9のmake golfとかはイースターエッグのようなものかも あと、同じく1.9だとvm_opts.hの最後の方を見ると…
絵文字エンコーディングが取り込まれる話を聞いて驚いたんだけどあんまり話題になってない?
エンコーディングのオリジナル趨勢が絵文字入れようぜだから、 Rubyで頑張って作った人がいるのなら当然の成り行きとも思う
しかし入ったのはDocomoとAuのジャパニーズ依存な絵文字なのだった
外国のユーザはこのこと知ってるの?
>>318 ruby-devで日本語読んでredmineの日本語読んでれば気づく
つまり議論段階ではほとんどの人は気づいてなかったと思われ
不意に決まってぜんぜんわからん変な処理が唐突に増えたようにしか見えないはず
require で取捨選択できるとかそういうのないの
実際に動作してれば嫌でも気づくと思うんで、問題があったらサブ的な位置に下がることもあるかと Encodingアドオンとかいう構想はないのかな
rubyのgui弱いな〜 何かお進めない?
なにもないよ! いやわりとマジで GUIをやろうと思うならRubyを使うべきではない CGIをやりたい人がCOBOLを使うべきではないのと似たようなもん
漏れはLinux使いなので、Ruby-gnome2のライブラリ群で満足
WxRubyを、WxSugarやWxFormDesignerと組み合わせて使えば それなりに何とかなるんじゃないかな
>>321 残念だがRubyはGUIに向いてない
>>324 そりゃ出来るか出来ないかといえば
ごにょごにょしたら出来るんだろうけど
手軽じゃないよね
つまりだ,RubyのGUIに不満が多いということは その不満を解消するプログラムはキラーアプリになりうるということだ
Java の Swing みたいに、RWing とか まぁ言語本体には内蔵しないだろうね
>>327 RWingって名前からして流行りそうにないな〜
>>326 本スレ的にはそうだが、現在進行形で困ってる一般ユーザー的にはどーでもいい感じだなw
定番がない現状キラーもなにもないわって感じはする まともに実装続いてるのシンプルなTkだけじゃん
高性能全部入りのGUIビルダー(日本語にも対応)とかあれば便利そうだよね
>>331 だからそこに新しく、定番になるGUIライブラリが出てくれば
キラーアプリになり得るってことだろう
思いつき以上の需要がないのか、需要はあるけど実装がないのか、それは見極めないと *scratch* ウィンドウが標準装備で eval するたびにユーザーがボタン増やせるとかそういうのじゃないと
Rubyコミュニティの中でCLIもGUIも偏見なく両方使える若い世代が育っていないんじゃないかとふと不安に襲われた
Ruby自体が使えないからな
というか目的に応じて複数の言語を使い分けるのが普通だから Rubyに固執する必要もないだけだろ。 GUIやりたければ、GUIが得意な言語を使えばいいんだ。
RubyのGUIライブラリで定番のものってないのか。 ちょっとチャレンジしてみようかな。
339 :
デフォルトの名無しさん :2010/03/14(日) 16:09:04
それを何とかしようとして足掻くところから何かが生まれたりするのもまた事実かと。 ただのユーザーには無縁な話だが。
Webベースで良いじゃん。
>>338 構造的に、何かのGUIツールキットを呼ぶライブラリ、ラッパーのような形になる
んで、どちらかというと、作るための手段が不足しているというよりは、
「わざわざRuby経由でGUIのどういうモノを作れば"お得"なのか」
というプロモーションが絶無
これさえできれば既存のライブラリの延長でも(それこそRuby/Tkでも)構わない
ぶっちゃけ、TkやらGTKやらQtやらWin32APIを呼ぶこと自体は既にできてる
そこで終わりなんだよね
rubyにgtkのバインディングがあるじゃん、あれってgtkmmを経由してgtkを使ってるの?
その点PerlもPythonもTkGtkQtとよりどりみどりだしな
>>344 RubyもTkGtkQtFxWxとよりどりみどりなんですが
というか論点はそこじゃない
バグだらけでつかえん
Mark&SweepはGUIむきじゃないとおもうにゃり。
Rubyの技術的制約によってGUI環境が貧弱である。というのは偽 ただ誰もやらないだけ
誰もやらないのは何すればいいか不確定だから?
RubyでGUIって・・Win3.1の頃みたいな古臭い見た目が嫌だ
見た目ってツールキット依存なんじゃないの?
ちょっとアホすぎて何言ってるかわからない
>>350 いやたとえばPerlでGUIアプリケーション作ってますとかいう人見ないだろ
テキスト系処理から出発したPerlはそういう衝動がそもそも低い
Rubyもそれは同じ
Lisp系列も同じだな
Pythonはむしろ例外だ
たまにGUIアプリ作るけど、GUIアプリとして一から作るというよりは 他の人に使わせるときにCUIじゃ無理ってんでしょうがなくWindow くっつけるくらいだな 普段はCUIで不便はないから、敢えてつける気にはならんわな そもそもRubyでGUIはスレッドが(略
HSPで 「入力してボタン押したらシェル経由で引数つきスクリプト実行する」 というようなのは作った 説明画像とかウィンドウ内に置けまくりで便利 ぶっちゃけ用途の本質的にはそれくらいだと思うの
>>354 Common Lisp には CLIM っていうのがあるんですけお…
というのはさておき、 Scheme みたいに関数型寄りの方言だと確かに GUI は書きにくい
OCaml とか Haskell といっしょに Functional Reactive Programming 方面に行くんだろうか
いちいちソフト使うのにキーボード操作なんてめんどくせーわ
>>357 いや、あるかどうかを問題にはしてない
あるかどうかで言えば現代的な言語はたいてい(公式または有志の)GUIバインディングやら規格やらは存在する
問題は存在するかどうかではない
○引数で複数のディレクトリパスを与える ○与えられたディレクトリに対して再帰的にファイルを全て削除する ○ただし.txt拡張子が付くファイルのみ削除しない プログラミングに不慣れながらこんなスクリプトを書こうと思い、以下のようになりました。 #!/usr/bin/ruby require 'fileutils' ARGV.each do |i| FileUtils.rm(Dir.glob(i + '**/*[^(txt)]'), :force => true) end 突っ込みどころなどありましたら教えていただけないでしょうか。 簡単なテストをすると意図したように動くのですが少し不安なので質問させていただきました。 自分で怪しいと思ってる箇所は以下の2箇所です。 @ i + '**/*[^(txt)]' こんな指定の仕方でいいのだろうか AそもそもFileUtilを使うべきなのか 宜しくお願いします。
> 突っ込みどころなどありましたら教えていただけないでしょうか。 初心者スレ池
Ruby/Tkのメンテナが TclkitっていうTcl/Tkをひとかたまりにしてバイナリ配布しやすくしたやつを Ruby/Tkから使えるようにする試みを始められたようです 最終目標はRuby/Tkアプリの単一バイナリ化など 特にWindowsでメリットが大きそうなんで、使えるようになってほしいです PythonのWindowsインストーラーはTkinter込みなのでいいなぁ Rubyには公式Windowsインストーラーすらないけど…
363 :
357 :2010/03/14(日) 23:16:34
>>359 ごめん、脊髄反射でレスしてた
にしても、Common Lisp に関しては Lisp machine のころのつながりで
UI 記述に力が入っててもよさそうなのに、確かにあまり見掛けないな
Emacs クローンを作ってる人はちょくちょく見掛けるんだが
GUI を作ってそうなのっていうと Smalltalk 方面とかかしらん
364 :
360 :2010/03/14(日) 23:17:29
すいませんスレ間違えました。
>>362 何を言う
公式サイトにこっそり置いてある圧縮ファイルを展開して望ましい場所に置いて
環境変数を自力で設定してrbconfigを適切に書き換えればきちんと動くぞ
むしろ「Rubyがサポートしてるどの環境でも動くと信じていいGUIツールキット」がないだけだわな。 機能的にはActiveScriptRubyでのHTAなんてなんでも出来るわけで。
ウィンドウズで動けばいいだけならwin32api呼べばいいだけだしなあ。 そのへんはrubyの問題ではなくて、統一的なguiのapiが無いってだけ。 gui開発環境のvisualシリーズだって、ウィンドウズだけの世界なんだし。 逆に統一的なguiのapiがあればそれをrubyから呼べばいい。 javaのguiに乗りたければ、jrubyとかねえ。 rubyのご先祖のperlはgui出来る様に成ってるの?
RubyからQtってどうなの?見た目はかなり奇麗なんだが
何が必要なのかがはっきりと分かれば、動きようもあるんだけどな たとえば俺はWxRubyが好きで、WxRubyを使う人がもっと増えればいいと思っているんだけど 今のWxRubyに一番足りない、「これがあればWxRubyを使う」というのは何だろう
>>368 見た目に騙されるな
wx だろうが Qt だろうが
Ruby は Ruby だ
>>362 素晴らしい試みだ!
Ruby/Tk使ってみようとしたときに
ActiveTclもインストールしなきゃいけないのはなんだかなーと思ってたです
自分が触りたいのはRubyなのに、なんで触りたくもないTcl入れなきゃいけないのかと
しかもTcl/Tk用の環境変数を設定したら
既にインストールしてあったPython+tkinterが正常動作しなくなって
Rubyを取るか、Pythonを取るか…ええい、もういいやRubyは捨てる!
Tk使おうとしただけで他の言語を殺しにかかるRubyなんざ使ってられるかクソ!
と一時期そんな結論を出してしまったことすらありましたです
Perl(ActivePerl)にしろ、Pythonにしろ、最初から一応標準でTkをサポートしてるのに比べると
Rubyは、一応標準として扱うGUIライブラリを決めておくことすらしてないあたりがダメ過ぎる
と思ってたのでそういう試みはとても素晴らしいと個人的には思います
>>369 あんまりちゃんと評価してないんだけど、wxは日本語のon the spot入力できなくない?
あと、Linux環境でシンボルが見つからないだかで動かなかった。
ディストリのパッケージの問題かもしれないけど。
だからgtk使ってるんだけど、機能的には十分なのにLinux以外のサポートがね。
>>371 > 標準として扱うGUIライブラリを決めておくことすらしてない
だからTk
Rubyが添付ライブラリとして提供してるのはTkだけ
>>369 Wxに限らずだけど必要なものは
・今Rubyがサポートしている環境でおおむね動くこと
・ウィジェットが十分にある事
・品質
かな。
3つとも並立させるのは主にリソースの問題で難しいけどね。
JavaでIBMがリソース投入して作ってたSWTですら環境によっては品質的に問題があった/あるから。
で、今はRubyアプリはHTTP喋れるようにしておいてGUIの実現はブラウザに丸投げしてるってのが実情というか、
まあ選択肢がないからみんなそうするわな。
WEBrickベースのGUIライブラリとかあってもいいような気がするお
それはじゃヴぁすくりぷとのjsを添付しろと
shoesとかもったいなかったよなあ
・今Rubyがサポートしている環境でおおむね動くこと
ttp://redmine.ruby-lang.org/wiki/1/SupportedPlatformsJa でいうところのSupportedとBest effortを対象と考えると
[Supported]
Debian GNU/Linux 4.0 on IA32
[Best effort]
mswin32, mswin64, mingw32
Mac OS X (Intel)
FreeBSD 6 and later (amd64, IA32)
OpenSolaris
で動く必要があると。
この複数環境の中で
・ウィジェットが十分にある事
を実現する場合、
(1)環境側のウィジェットの利用は最小限にとどめて、環境非依存のレイヤーを作り、
レイヤー上でウィジェットを作り込む
→JavaでいうSwingのアプローチ
(2)各環境ごとのウィジェットを頑張って移植する。環境Aにあって環境Bにないようなウィジェットは
自力で作り込む
→JavaでいうSWTのアプローチ
のどっちかになると。
それぞれのアプローチの利点欠点は
「Swing SWT 比較」とかでググれば出て来るけれども、
まあどっちも大変だと。
まあ、今の時代で考えればSwing方式の方がまだマシかなあ。
ライブラリの日本語解説書いたらテキストだけで70KBになった絶望した誰もこんなん読まねえよ
>>376 prototype.jsべったりのサーバーサイドRubyスクリプトとかちょっと楽しそうだと思う
Railsか
Railsだね
Railsだな
それはむしろ、サーバサイドはXMLなりJSONなりをひたすら吐き続けるものになるのではないか …HTMLとJavaScriptとCSSの混合体を吐き続けるよりは楽しいか。うん。
>>368 快適だよ。
(ある程度大きなアプリでどうなるかは知らない)
JSエンジンに加えてRubyも組み込んだBROWSERとか登場しないのかな RubyとDOMの相性はBATSUGUNだと思うんだが
>>379 その解説はもう公開してるのかい
まだならぜひ公開してくれ
>>382 ActiveScriptRuby。先に出てるHTAの話とかもそれだね。
で、DOMのAPIをRuby用に再構築しないと使い易くならないってのがそこから得た知見
GUIライブラリの解説だと限ったもんでもあんめえ なんか誰も使ってない外国さんのライブラリかもしれん
GUIライブラリの解説って欲しい? というか解説があってどうにかなるようなもん?
vimでプログラミングをしているんだけど、 予約語のハイライトをしてくれないんだけど ~/.vimrc syntax on set number filetype on filetype indent on filetype plugin on :wq!をすると、ちゃんと予約語の色が付くんだけどな〜
>>386 すごく欲しい。ノドから手が出るほど欲しい
特に普通のライブラリと比べて、規模が大きいGUIライブラリの場合は
解説記事がなければ習得までに相当な時間がかかる
そもそも、解説はおろか日本語のリファレンスもなかったりするしな
文書類は初心者から上級者まですべての人が欲しがってるはず
マクは除外したほうが面倒が無くていいよ。 javaでもマクだけは挙動が違うし。サン純正jvmじゃ無いってのも有るのだろうけど。 xlibとwin32api程度で十分。
ていうかRubyのライブラリの解説はいくらあってもいい 再生産上等 ただし要突っ込み耐性 現時点でGUIのなにかの初心者用の導入解説と中級者用の網羅的日本語マニュアルがあったら、 そいつがデファクトになると思う 重要なのは中級者(になれるため)用の網羅的マニュアルな サンプルコード以上の事をしたいという人を引き付けないといかん 現状はどれもサンプルコード実行したくらいで調べ物モチベが尽きて終わってるのが実情だ 詳細正確でなくていい、とにかく一通り遊べるように機能を紹介し切っていることが必要 MechanizeとNokogiriなんて機能的にはそれほどブレイクがあったわけでもないのに route477とkitamomonga両者のとこに日本語解説があったという理由だけで第一選択肢になって そのままWebスクレーパとHTMLパーサのスタンダードにのし上がったんだぞ(ただし日本限定)
てことは英語読める外国ならRubyでGUIGUI言わせてるんだろうか GUIGUI言わせるという表現自体が涙も出ないほど古いが
なにもわからない ↓ ↓ ← 日本はここ ↓ チュートリアルレベルではよくわからない ↓ ↓ ↓ 解説があってよくわかる ↓ ↓ ← 英語圏はここ ↓ 別に無理にRubyでやらなくてもいいということが知見として得られた
Rubyでやらなくてもいいが、Rubyでやってもいいので Rubyで出来るようになることを否定すべきではない。
>>392 そんなにドキュメントあったっけ?
ぶっちゃけ英語でもドキュメントさえあるなら
訳して出版メソッドが発動するから
そうそう日本語ドキュメントには不自由しなくなるんだけど。
なんていうかこー ・ ウィンドウが作れると信じてる初学者 ・ GUIだと便利だと信じてる初心者 へはきちんと説明して切って捨てて ・ GUIを用途によって必要としている中級者 向けに整備するのが間違いないと思う
>>395 ツールキットの動作を熟知してる人は普通に使いこなせてるので、実質問題はないかと
Tcl/Tkを普段から使ってる人はRuby/Tkも普通に使えてるはず
>>371 > しかもTcl/Tk用の環境変数を設定したら
ActiveTcl と ActiveScriptRuby さえインストールすれば
次の 1 と 2 により特別な設定無く Ruby/Tk 使えるよ
1. ActiveTcl はインストール時に Tcl\bin への PATH を通してくれる
2. Ruby/Tk は Win32API の LoadLibrary を使って
PATH から Tcl や Tk を探してくれる
1.8.4を最後にMingwバイナリが配布されなくなったので それ以降自分でコンパイルするようになった そのついでにTcl/Tkも自分でコンパイルして使ってる 両者ともConfigure & make で全自動コンパイルしてくれるので、たいした知識は要らなかった RubyもTcl/Tkもディレクトリ構成が同じなので同じディレクトリに一緒に入れてる bin/実行バイナリ lib/各ライブラリ ただRubyは実行ファイルの置いてあるディレクトリ名がbinじゃないと ../libをさがしにいってくれないので ../libの有無で分岐して欲しいところ
あ、説明めんどくさくて結局自分用になったPPの解説ぽいのがある
>>402 PrettyPrintは改行文字があっても文字数はカウントされるということがわかればあとは簡単
あと、最後に改行はつけない
>>396 中級車の話をしてるのになんで高級車の話が出てくるんだよ!
def self.hoge @message = "ABCD" end @messageはクラスに属するインスタンス何ですか?
ClassクラスのインスタンスであるHogeのインスタンス変数 Hoge.hoge したあと Hoge.instance_variables
勝手にHogeクラスとか名前を仮定して書いてしまったが察して。
>>405 Class.new されてつくられたオブジェクトのインスタンス変数です
irb> class C; def self.foo; @foo="foo!"; end; end
irb> p C.instance_variable_get(:@foo)
irb> C.foo
"foo!"
irb> p C.instance_variable_get(:@foo)
"foo!"
irb> p C.kind_of?(Class)
true
ここ初心者スレだろ
たいして変わらんよな
412 :
405 :2010/03/15(月) 21:39:50
class Class hoge = Hoge.new←これですね end わかりました、ありがとうございます
初心者スレで名前が挙がってた ねこび〜ん(NetBeansのマスコット)を検索してみたけど、いいなこのセンス Rubyにもこういうマスコットがいればいいのに
[ruby-dev:40643] で @mametter += 1
Dukeってどう思う?俺はカッコいいと思ってる
>>413 瑠美ちゃんを脳内で好きに作ったらいいと思う
というかRuby初期のコミッタは絶対やってる
>>416 256倍シリーズであったような・・・たしかRacc本
瑠美の3分クッキングね てっきり実在の人物かと思ってたわwww 深谷せんせえってのは誰?
マスコット導入すると女に持てなく成ると思うよ。男受けはいいだろうけどな。 rubyやってる男の人って(ry
瑠美衣タンハアハア(AAry
ここは赤色つながりということで炎髪灼眼のシャナたんとコラボをだな…
>>420 るびま創刊時に赤松先生にお願いに言ってたら
今頃Rubyはアニオタの共通言語になってただろうな
そしてドラマにも登場したPythonはイケメンハッカーの以下略
>>423 スクリプト言語は軟弱な感じがする。
だからイケメンハッカーはPythonじゃだめ。
動物系のマスコットにすればいいんだよ これで男女ともに惹きつけることができる 何の動物にするの? と言われると難しいが
人外を萌え対象にしちゃう人って怖いなあ。
D言語のマスコットこそ究極にして至高
あれ、マスコットだったんだ。 いたずら書きかと思ってた。
あれがマスコットかよw 冗談も顔だけにしろw 見てると笑いがこみ上げてくる やっぱDukeのほうが格好いいな
1.9.2はまだですか?
>>425 ルビーでしょ?だったらカーバンクルっしょ
とさっきASR落としたばかりの人間が言ってみる
もうmatzたんでいいよ。
connect(angle, SIGNAL('valueChanged(int)'), cannonField, SLOT('setAngle(int)')) なんで、rubyなのにこんなこと出きるんだよ〜
>>431 ちょうど昨日1.9.2のロードマップが出たよ。
JKのコスプレしたmatzたん人形とか(ry
MatzはPythonの回し者だからだめだ
>>435 ありがとうございます
ぐぐって確認しましたが正式なものというより、強い提案という感じですか?
3末の仕様フリーズというのは驚きました
昨年末くらいがリリース予定だったように思うので
preview1までは順調だったように思ったのですが、ちょっと欲張っちゃったんですかね
ピッケル日本語初版みたいにウサギでよかったんだよ 目まっかだし
もうRuby自体がマスコットだろ
ああそっか、ルビーにすればいいのか 名前いっしょだし宝石が元ネタだしそのまんまだな
でそのうち宝石を擬人化しはじめるんだろう 窓も擬人化されていることだし
ウサギの目が赤いと思ってるのは日本人だけって聞いたことがある。 それはさておき、RMagickって、ruby1.9 win32で使える?
>>443 いや一応カーバンクルもルビーで元ネタ一緒なので
>>445 な、なんだってー
で、ここまで宍戸留美なし
>>445 目が赤くて体が白いウサギは江戸時代からいるジャパニーズホワイト(カイウサギのアルピノ)くらいだから
学校でよく飼われてるアレな
日本白色種以外はいわゆるピーターラビットみたいな褐色の毛並みが普通なので、
外国の人向けに赤目白ウサギのピクトグラムを描くと不思議な顔をされる
擬人化Opera(おぺらたん)に惚れてOperaを使い始めた俺としては Rubyが擬人化されるのなら素敵だと思う でもガチガチ硬派のプログラマにとってはどうなんだろう……
というかRubyも擬人化されてた気がする いまはインターネッツの闇に紛れてしまっているかもしれない
>>449 AutoCADのイメージキャラクターが秀逸だったとして、じゃあAutoCAD使おうかとなるか?
ガチムチ硬派なプログラマーに見えた
動物だとハチドリとかヒツジとかハトが古の ruby-list で挙がっていたような
宝石商してた高田純二あたりが適任じゃね? Rubyの文法の雰囲気にもあってる気がする。
>>456 右上あたりに高田純二のシルエットが載ってる
プログラミング言語の公式サイト……クールすぎるw
話は変わるけどさ、Rubyはこの先生きのこるには教育機関に売り込めば良いと思うんだ。
刑務所でRUBY採用されてると言うのはどこかで見た
またそうやってロンダリングする
>>438 Yuguiさんが承認して、正式なプランも流れてる
どっちかってと1.9.1のパッチレベルが上がることのほうが重要なふいんき 1.9.2を「待って」いる人なんてそんなにいるもんかね
東大のどっかで教えてなかったっけ? あとどこぞの高校だとか。MLで見たような気がする
1.9になってから開発版と安定版のナンバリングがかわったんだよね? 末尾偶数が開発版で奇数が安定版になったんだっけ
あー、結局何が確定なんだったか 文書化されたものがないんだよな
マニュアルの RUBY_VERSION には
1.9においては3つめの数字(TENNY)が0なものが開発版になる予定ときちんと書いてあるぞ
…いまだに予定かよ
この期に及んで確定じゃねえのかよ
るびま(RubyistMagazineの略)には一応記述がある
ttp://jp.rubyist.net/magazine/?0025-FirstStepRuby191 > Ruby 1.8 までは、2 番目の数字が偶数なら安定版、奇数なら開発版だった。
> Ruby 2.0 は、いつか手に入る理想の Ruby としてバージョン番号を出し惜しんでいるので、
> Ruby 1.9 については、1.9.0 が開発版、1.9.1 以降は安定版という位置付けになる。
本スレで
>>465 の認識なことに強い危機感を感じる
>>462 Rails3.0は1.8.7と1.9.2をサポートの予定だったような
一番割合が大きいところかもしれないぞ
あれは「あっちょっと待ってあのあれだそうそう1.9.2、あれが出たら考えるからうん」というのにしか見えない
安定版て言われてもライブラリとか整ってないみたいだし。 現状開発版みたいなもんじゃない?
受刑者からRubyよりJavaの方がいいって クレームがついたとか
じゃあ、JRubyをやりましょうか(笑)
>>472 ライブラリは整っている
1.9.1公開から1年以上経ってる今でも対応しない外部ライブラリがあるのだとしたら
それはその作者が対応する気ないだけ
プリズニーズは企画した香具師がとんずらしたんじゃなかったっけ?
未だに1.9に対応していないライブラリは これから対応すると宣言しているものでない限り 今後メンテナンスされず廃れていくライブラリなので 1.8でもなるべく使わない方がいい
mingw32をWindowsとみなさないようなライブラリも同じだね 1.6時代のスクリプトと同じような感じになるのだろう
Apache CommonsみたいなRuby Commonsみたいなのほしいな、みたいな。
>>475 mswin32に関しては、バイナリが公開が1.8.7で止まっている外部ライブラリが多い気がするよ。
1.9.2のロードマップ見つからないんだけど、どこにあるの?
>>256 Addressableはなんか1.9だと遅いとか聞いたけど
あざとい
マスコットとか高田純次とか そういうのは10レスくらいにしてほしいのだが
>>490 さすがにそれは起動時間に埋没してしまうのではないか?
>>490 それはそもそも実行環境が速過ぎて話に参加できないレベル
gem update の展開とか一瞬で終わるだろ
>>492 いや一瞬で終わるだろ
何もアップデートがなければ gem update は2秒くらいで終わる
irb19> Benchmark.bm{|b| b.report{require 'addressable/uri'}} user system total real 7.291000 0.050000 7.341000 ( 7.570887) 早くはないな まあ、標準の URI に比べれば絶望的に遅い このまま標準添付になったら Ruby が衰退するレベル irb19> Benchmark.bm{|b| b.report{require 'uri'}} user system total real 0.160000 0.250000 0.410000 ( 0.590849)
495 :
デフォルトの名無しさん :2010/03/18(木) 10:23:10
rubyの初心者。watirつかってるんだけど ie = Watir::IE.new ie.goto(url)で無限ループになる現象発生。 もちろん、不定期に(2日に一回ぐらい?) なるので始末がわるい。 そこで自動的にタイムアウトで例外に飛ばす 仕組みてない?rubyで。
require 'timeout' ではダメなの?
無限ループだと判断した理由がむしろ知りたい
70パーセントくらいの割合でサーバーのタイムアウト待ってるだけだと思うが… Watir には Watir::Waiter という字面紛らわしい機能がある(つまりウェイター) 引数秒内にブロック内部が真を返さなければ例外 Watir::Exception::TimeOutException を出す ie.goto(url) は成功すればアクセスにかかった秒を返すから、Watir::Waiter(10){ ie.goto(url) } とかしとけ irb> Watir::Waiter.wait_until(3){puts "hello"} hello hello hello hello hello hello hello Watir::Exception::TimeOutException: Timed out after 3.00432 seconds. irb> Watir::Waiter.wait_until(3){sleep(1); "yes!"} => nil
なんだ、仲悪いのか? …いや、日本語版買った直後に原文公開されたほうが微妙な気持ちになるな 翻訳具合はどんなもんなのかね 日本特有部分の突っ込みとかあるのか
>>501 全章公開というニュースだと思う(丸々1つのPDFがある)
本質的にはもう買う必要がない
…英語だとやっぱ読みにくいけどな
ディスプレイで技術文書読むのが辛いのはなんなんだろう
PDF表示で英語でディスプレイという三重苦
>>502 バックライト光ってるのがまずいんだそうだ
だからiPadよりもKindleのほうが目視性はよい
あどべりーだーのデフォルト背景色が白なのは殺人的 環境設定から背景色変えとくべき
505 :
デフォルトの名無しさん :2010/03/18(木) 11:57:06
>>無限ループだと判断した理由がむしろ知りたい 前後にコンソールでメッセージ出力。 調子のいいときは3日ほどなにもないのだが。 前のメッセージをだして後のメッセージが出力できないので。 ie.goto(url)で止まる。 496,497,495様のレスを参考にします。 どうもです
日本語版読んだあと英語版を読むようにしてる。 興味ある本で内容も頭に入ってる状態だと結構サクサク読める。 いきなり英語版はちょっとキツイけど。 いつか英語版だけで
何のために英語版読むんだよ
最終的にはいきなり英語版を読めるようになりたいってことだろう
教科書準拠の英語参考書(教科書の訳文つき)を事前に読んでおいたうえで 授業で当たってその場で英訳するとかそんな感じと予測
510 :
506 :2010/03/18(木) 13:00:17
書きかけで投稿してしまったすまん 最終的に英語のリソースを直接解釈できると有益だと思って勉強中です 翻訳を待ってる間に情報が古くなってしまったりするので
説明が英語かどうかは別にいいけど、 向こうの資料はソースの変数名やメソッド名の付け方が参考になるな ささいなことだが結構迷うから
hogeじゃなくてblah使おうねみたいな何か 名前付け方参考書みたいなのが出れば5000円でも買う 参考にしてたソースが外国では少数派の書き方だったとか泣く
>>494 本当に遅かったらそのように報告があるはず
ないんだったらその人の環境依存
OSの再インストールなり新PCの購入なりを勧める
いや結構マジな話だけど、最低限の実行環境ってあるだろ それの記述すらないって正直どうよ Core2とメモリ1Gとか、目安くらい書いたほうがいいと思う
>>514 ビルドはメモリが512MBくらい必要だけれど、実行は MMX Pentium レベルでも行ける気がする
で、そんな環境は本当にそうか試すのは結構手間なので
条件式がfalseの時に、スクリプトを強制的に終了させたいんだけど 何かいい方法ない? 「if false then; exit(1);end」は却下
>>516 隠蔽してでもどこかで条件分岐してexit(1)する必要がある
条件分岐をしてはいけないのならできない
exit unless <条件式> でいいんじゃないかい
てか「条件式がfalseのときに」とう前提条件を実現する時点で if (式) then end が(あるいは類似の判断構造が)必要だと思うんだが、 exit(1) と書くと呪われるとかそういう難儀な家系だとかそういうの
>>516 def assert(c, msg)
c or raise SystemExit.new(1, msg)
end
assert(false, "foo")
とかは? あとは $DEBUG の値によって定義を変えたりとかお好きなように。
毎回 if ... end と書くのが面倒だとかいう意味にエスパーしてみるとか
なんかどう見ても「Rubyのコアな操作」というよりは単に「Rubyがわかってない」だけのような
>「if false then; exit(1);end」は却下 の理由が分からないからどうしようもない
exit がいやなら raise 使うとか if ... end がいやなら unless 修飾子使うとか raise "強制終了" unless <condition> でいいんじゃないの?
unless を知らないだけだと思う。
Rubyとしては必要ないから 外部から列挙型がやって来るとかそういうときだけだろ、いるの
列挙型ってシンボルとかでできること以下の表現能力しかないんじゃない
Symbol を使えばだいたい足りるからじゃね。 KEYS = [:foo, :bar, :baz] ... KEYS.include?(key) とかすれば妥当な値が渡ってきたかもチェックできるし C みたいに数値にマップしたければ、 配列じゃなくてHash にして対応を管理すればいい。 静的に型検査ができる場合だとエラーを検出しやすくなるんだろうけど Ruby では無理。 R6RS Scheme だと、標準ライブラリの機能を使って (define-enmumeration color (red green blue) color-set) (color red) ;; => red (color ree) ;; => エラー みたいにしてコンパイル時に書き間違いを検出してくれる列挙型を定義できるけど。
530 :
デフォルトの名無しさん :2010/03/18(木) 17:29:00
そういえばgtkのTreeViewを使うときに、インデックスを指定する必要があって 列挙型が欲しいなぁとちょっと思ったことはあった。 でも、できれば拡張ライブラリ側でインデックスを隠蔽する方が望ましいんだろうなぁ。
列挙型って、本で読んだことしかないけど モジュール内の定数で代用できないの?
単なる数値だから代用できます。 連番振るのを、ちょっと面倒に思っただけです。
本当に連番それぞれに名前を付けたいのか、それがお前のやりたいことなのか、 と小一時間問い詰めたい。 名前に別々の値が付いていてほしいだけならSymbolで十分だし、 連番じゃないといけないものに個別の名前を付けたいというのも不自然だし。 強いて例を考えると、527の言うように外部から来るときくらいだよなあ。
外部から来るときって何?
うーす [列挙型] ノシ
C 風に連番をつけたいんなら enum :a, [:b, 5], :c とかすると a, b, c というメソッドが定義されるような enum メソッドを定義するとかかなあ C のライブラリとのインタフェースで欲しい場合は C のヘッダファイルをパースしてごにょごにょするのが理想かな
dl使うときじゃない? < 外部から来るとき
なおかつ、Rubyに慣れてないときだな
インクリメント演算子みたいなもんだな
連番が必要なわけじゃないが Hash で値を管理するのが面倒臭いっていう時はあったな。 シンボル間に順序が定義出来さえすればそれでいいんだとかで。 結局 Priority = [:foo, :bar, :baz] symbols.sort_by {|sym| Priority.index(sym)}.each {...} みたいなコードでごまかした。
ごまかすも何もRubyでは正当なコードだと思う
わかいときからごまかすことを覚えないほうがいい
ロギングライブラリでログレベルをシンボルで表すとかね。
個人的には、列挙型のようなことをSymbolでやるのはまずいと思う スペルミスがあったときや、後で仕様変更があったときにカオスなことになる 柔軟さが売りのRubyでそんなことを言っても……という感じではあるが
Rubyの不幸は利用者がカオス
Hash#compactが無いのはなんで? hash.reject{|k,v|v.nil?}と同等品で。
産まれたときからruby弄ってましたってのは、まだ皆無だしな。 大抵他所の言語からの乗り換えだから、元の言語の癖が出て来るし。 東京が田舎者ばっかでカオスなのと同じ。 と{-}とbegin-endの混在で嵌った漏れ。orz
>>542 Hashの値追加時に symbols.size を一緒にいれておく
ってのを俺は良くやるな
{-} は do-end であって begin-end とは別の物
>>551 同じものだったら混在ではまらないだろ
よく考えろ
UNIXServer のバックログを変えようと listen(1) みたいにやっているんだけど、 実際の挙動は変化してない。どうすればいいでしょうか? UNIXServer.open(path){ |s| s.listen(1) : } ruby 1.8.5 です。
syslogで十分じゃね。
>>555 syslogってのはUnix系のツール
システムのログを/varあたりに、書き込んでくれるデーモン
いや、それは分かってるんだけど。 listen(2)のバックログとは関係ないでしょう。
いまだに不安定版の1.8.5使ってるのってどこだろう listen再設定不可な環境とかじゃないよね
たしか、またクラック騒ぎを起こしたxreaが1.8.5
553 です。バージョン書き込んでから気づきました。 ごしてきありがとうございます。 1.8.7 にしてとりあえず出直してきます・・・・・・
うえ、Ruby 1.9.2 は $LOAD_PATH にカレントディレクトリが含まれないのか
553=560です。 1.8.7 で試しました。 UNIXServer.open('/tmp/test'){ |s| sock = s.accept sleep 30 sock.close } 30秒間にクライアントをぼこぼこ立ち上げたら デフォルトにすると初めの1個がCONECTED、次の6個が CONNECTING 状態、以降は connect の待ち s.listen(1) にすると初めの1個がCONNECTED、次の2個がCONNECTING、以降 connect 待ち s.listen(0) にすると初めの1個がCONNECTED、次の1個がCONNECTING、以降 connect 待ち バックログ 0 にしても connection refused にならないんですね・・・・ listen(1) によって、最初に connect したクライアント以外は refused になることを期待してたのですが・・・
>>505 >>>無限ループだと判断した理由がむしろ知りたい
>前後にコンソールでメッセージ出力。
>調子のいいときは3日ほどなにもないのだが。
>前のメッセージをだして後のメッセージが出力できないので。
>ie.goto(url)で止まる。
Rubyというよりは内部で呼ばれてるCOMの問題だろうなあ
Watirに限らずWin32OLEでのExcel操作でも類似の事象は発生するはず
>>550 や、順序ってそういうことでなく。
例えば「終了条件を満たした時に各人にどんな基準で勝利したかと思うかを申告させる。
一番優先度の高い勝利基準を満たした人が真の勝利者」なんていうのを考えた時に、
バランスの調整上ちょくちょく優先順位を入れ替えたくなるから具体的な値はシンボルが
何番目に登録されたかだけで決まるようにしておくのが楽そうに思えた、と。
irb(main):001:0> def priority_table
irb(main):002:1> count = 0
irb(main):003:1> Hash.new {|h, k| h[k] = count; count += 1}
irb(main):004:1> end
=> nil
irb(main):005:0> t = priority_table
=> {}
irb(main):006:0> t[:a]
=> 1
irb(main):007:0> t[:b]
=> 2
irb(main):008:0> t[:c]
=> 3
irb(main):009:0> t
=> {:c=>2, :a=>0, :b=>1}
こんなんでもいいかしらんが。
ゴルファーはここにいらっしゃる?
ワイは猿や!
うーんなんつーかタケルンバがPHP始めるからもうruby苦しいわ これ以上普及しない 役割は終わった
>>565 いないことはないんじゃね
Rubyは割とゴルフ向きの言語らしいし
おはようございます ゴルファーがいらっしゃるかもしれないということで ランダムな大小英数16文字を手短かに生じさせたいのですが この長さで躓いております。アドバイス頂きたく候。 Rubyは1.9.1です (0..15).map{[*48..57,*65..90,*97..122][rand 62].chr}*''
570 :
569 :2010/03/20(土) 07:05:14
自己レスですみません。 今chrが必要ないことに気づいて少し短くなりました。 (0..15).map{[*?a..?z,*?A..?Z,*0..9][rand 62]}*''
ついったーで教わってきたバージョン [*?a..?z,*?A..?Z,*0..9].sample(16)*''
うおきめえ
1.9って短くできていいよね
>>553 {TCP,UNIX}Server.openは内部でlisten(5)をしているので、複数回listen()し
て変更できないようなプラットフォームでは無意味。
いや、そりゃRubyを経由しない場合は普通に動作するんだろ Rubyでだけ動作しないという話のはず
>>575 だから、rubyのTCPServerやUNIXServerがそういう風になってるという話
>> 576 \wはアンダースコアにもマッチしちゃうだろ
1.8.7だと、このくらいかな (0..15).map{[?a..?z,?A..?Z,?0..?9].map(&:to_a).flatten[rand 62]}.pack('c*') sampleとか1.8.7にも欲しいな
580 :
569 :2010/03/20(土) 12:25:20
>>571 おおすばらしい。
Array#sampleは盲点でした。
やはりゴルファーは違いますね。
>>576 短いですね。
希望する条件には合いませんが大変参考になりました。
名のある方々にお答えいただけるとは恐縮至極に存じます。
ありがとうございました。
まださらに短い表現があればお願いいたします。
strarray*'' の代わりに strarray*p が出来ないかと思ったら TypeError: no implicit conversion from nil to integer strarray.join(nil) は出来るんだけどなー。
Array#* は rb_ary_times (array.c) で、 引数をnilでない文字列に出来れば rb_ary_join する、なのか。
584 :
569 :2010/03/20(土) 14:08:42
自分の頭で考えつく限りでは 2byte しか短くなりませんでした。
(0..15).map{rand(123).chr[/[^_\W]/]||redo}*''
>>576 のn0kada氏の表現を参考に改良すると
>>571 の長さと同じになりました
(?0..?z).grep(/[^_\W]/).sample(16)*''
[*?a..?z,*?A..?Z,*0..9].sample(16)*''
自分の頭ではここが限界のようです。
修練が足りませんな。
>>583 Keep-Aliveはそのまんまだと思う
586 :
583 :2010/03/20(土) 14:18:23
>>585 なるほど、Keep-Aliveなんてものがありましたね
ありがとうございます
高々数バイト惜しむくらいならさっさとマシン新調しろよ。 メモリ4GB1万もしない時代に何ケチってんだ。 高性能なマシン上でどれだ高度な事をやるかがソフトウェアの仕事だろ。
まあたまにはいいと思うけど 仕事でやられたらたまらんけどな
ゴルフに向かって何言ってるんだ…
591 :
569 :2010/03/20(土) 15:03:53
>>587 , 588
休日の頭の体操ということでご容赦ください
他人のソース読むと、近頃はHashのキーはStringよりなるべく Symbolを使うのが主流なんだね。実際どの程度速度違うの?
ペンを出していちいちフルネームをサインするのと浸透印をぽんぽん押すぐらいの違い
594 :
デフォルトの名無しさん :2010/03/20(土) 17:41:19
>>Rubyというよりは内部で呼ばれてるCOMの問題だろうなあ COMの問題か?それとも相手方のサーバ? 長期でまわすとNG。USWCではCOM例外がでるのでやはりそうか? watirがエラー処理をきちんとしていないようにも感じる。 (例外にするなりをしていない)
「固定」のキーはSymbolであることが多くなったね HashのキーはAかBかCかDの4つのうちどれかです、という場合はその4つはほとんどの場合Symbol あとキーワード風引数のとき
え、昔からHashのキーはシンボルでしょ? いつの時代からいらした方ですか
「シンボル?なにそれおいしいの?」の時代から来ますた
せっかくなんのオブジェクトでもキーにできるようになってるのにw まあ文字列かシンボル以外での使い道ってあんまりないけどな 普通のオブジェクトなら、そいつ自身に値を持たせる方が素直な場合が多そうだし
hashメソッドがいまいち信用ならんのだな これをきちんと再定義してるユーザー作成のクラスは稀だ
いや、昔よりシンボル派は確実に増えてるよ。 DBプログラミングの影響? プロパティ付きオブジェクトが手軽に欲しい時、Hash派かStruct派かって議論はどう?
>>600 基本的にそのままで問題ないと思うけど、#==だけでeql?は放置っていう話?
class Point
attr_accessor :x, :y
def initialize(x, y)
@x, @y = x, y
end
def ==(other)
@x == other.x and @y == other.y
end
end
p1 = Point.new(1, 2)
p2 = Point.new(1, 2)
h = {}
h[p1] = true
p p1 == p2 #=> true
p h[p1] #=> true
p h[p2] #=> nil
>>601 クラス作るよ!派
一回しか使わないならStruct含めてクラス作るまでもないからHash
なるべくクラス定義省くのが、LL流でしょ?
いやそれほどでもない
またまたご謙遜を
メソッド5つくらい作るとクラス作れそうな気がしてうずうずする
向こうの
>>897 goto使うな制御構文使え => goto絶対禁止!
switch/case使うな多態使え => switch/case絶対禁止!
という思考停止的教条主義者だろただの
向こうってどこだよw 897か?894じゃなく?
Integer (or Symbol)がキーのHashの代わりに使えるような、 スパースなArrayの実装ってRubyに有る?
>611 思ってたのとはちょっと違うが、これはこれで便利そうだ。 紹介ありがとう。
大学の講義でRuby使おうとしたら他の教員に「んな言語しらんし、使ってる奴いんの?」と反対されたでござる。 Rubyがいかに教育に適しているかといても聞く耳もたず。 物わかりの悪いジジーはあんまり出しゃばらないで欲しいなぁ。 などと愚痴をこぼしてみる。
,―ヽ____、― ,/ ノ ヽ ~\ / ノ IPA ヽ ~\ / ノ ヽ、 `ヽ | ノ / ̄\ / ̄~ヽ ヽ i | ノ | ノ \ | <●> <●> ( ) \ | | | i / | / ヽ レ i (●_●) / i、 ,-――-、 ・ / i、 <(EEEEE)> ∵/ IPA Rubyは日本国公認言語。使わない奴は非国民。 i、 \ ./ / \ ーー ,ノ ,,.....イ.ヽヽ、ー-―一ノ゙-、. : | '; \_____ ノ.| ヽ i | \/゙(__)\,| i | > ヽ. ハ | ||
こういうときにRuby公式サイトに企業や教育機関での採用実績が載ってたら楽なのにね
>>615 もうちょっと小さいAAにしてくれ。
顔面がでかくて邪魔だ。
620 :
デフォルトの名無しさん :2010/03/21(日) 10:08:34
watirで更新ツールを作ってるんだけど Basic認証がでるときとでないときがあるんだけど これてなんで?サーバ側の問題? 毎回パスワード入れるのうっとしいのでBasic認証の窓がでてるか どうかを判断したいんだけでなにかいい知恵ないかな?
622 :
デフォルトの名無しさん :2010/03/21(日) 11:05:13
>>614 そのアホな教員に許可取る必要あるの?
無いんだったら無視して進めれば良いのに
evalが引数にブロックを取らないことには何か理由があるの?
625 :
デフォルトの名無しさん :2010/03/21(日) 12:15:45
それとwatirてHTTPヘッダーにパスワード埋め込みできないの? そうしてもbasicのあるなしを区別しないとスクリプトがURL の場所にパスワードを書いてします。 だれか教えて
Perlでの例外をキャッチするってやつのこと?
627 :
デフォルトの名無しさん :2010/03/21(日) 13:43:02
やはりだめか? Javaならhttpリクエストをサポートしてそう。 actiwateなんかよさそうだけどこれでするか
検索しても良く分からないんだが 本家以外から出ているRuby(例えばJRuby)とかは互換性は大丈夫なんですか
>>629 JRuby は 1.8.7 なら「そこそこ」動く
これは第三者ライブラリの対応も含めた評価
組み込みライブラリと添付ライブラリだけしか使わない
ピュアなプログラミングだけしかしないのなら
>>630 そうですか
JRubyとかの方が実行速度が速いと聞いていたのですが、
やっぱり本家を使った方が良いみたいですね
ありがとうございました
Rubyとして不得意なところは豊富高速なJavaのライブラリにブン投げればいいので プログラミング総体的にはとても高速だしJavaを知っていれば制作期間も短くて済む ただしこの場合はRubyでなくてもよくね最初からJavaで書けばよくね的なモヤモヤが
(´・ω・`)ノシ (´∀`)ノ (´・ω・`)ノシ (´∀`)ノ (´・ω・`)ノシ (´∀`)ノ 【おっさん】 【ヤング】 【おっさん】 【ヤング】 【おっさん】 【ヤング】 アベック カップル チャック ジッパー サジ スプーン ズボン パンツ ズック スニーカー 汽車 電車 ジーパン デニム ラッパズボン ブーツカット 国鉄 JR 割ぽう着 エプロン 喫茶店 カフェ 寝巻 パジャマ コールテン コーデュロイ チャンネル回す チャンネル変える シャッポ 帽子 えもん掛け ハンガー Ruby Python 前掛け エプロン レコード CD デザート スイーツ 突っかけ サンダル スパゲッティ パスタ パンティ ショーツ トレパン ジャージ とっくりセーター タートルネック ビフテキ ステーキ ランニング タンクトップ セコハン ユーズド ハイヤー タクシー チョッキ ベスト
意外と役に立ちそうなリストだな ただこうやって並べると、その「ヤング」の方が語彙が少ないだけな気がしてくる不思議
ジッパー → ファスナー ショーツ → パンツ かなぁ タクシーとハイヤーはそもそも別モンなんじゃないの?
Ruby2.0には String#ossan String#yangu が追加されます。
"something".ossan.to_english.to_kana == "somethig".yangu
ハイヤーは hire で、営業所待機してるのを呼びつけて使う。 タクシーは流しで客待ちするもの。 高級だから higher なんだと思っていた中学生の頃の思い出。
誰か突っ込んでやれ
何かと思ったら、rubyとpythonを混ぜてあるのか それはともかく、たいそうエプロンが好きなようだから、「駐機場」とかも入れときゃいいのにな
Rubyプログラマはイケメンが多い気がする。 洋服のセンスも良くて人当たりも良い感じ。 自分はJavaプログラマだがRubyプログラマが羨ましい。
Rubyって実用になる範囲が限られているから Rubyだけって人はいないだろうね。 Javaの欠点は何でもできそうでどれもイマイチな器用貧乏さ
そうなんですか。やっぱりRubyプログラマはカッコイイですね。 自分もいつかRubyプログラマになれるように頑張ります。
javaは元々大規模業務向けだしね。日本刀で鉛筆削りしてもしょうがないし。 rubyは小刀なんだから、鉛筆削りに向いてる分、railsとかで業務サイト作ろうとするとかなり無茶する羽目に成る。
対象の規模の話だとC#ってどうなの?Javaと同じく大規模向け?
年明けくらいからrvmを使っているが、便利だなこれ。 更新ペースが速すぎるのでついていけないところもあるが。
>javaは元々大規模業務向け 都市伝説だろ
やはりJavaよりRubyの方が頼りにされていた大規模業務向けの案件で おれは遅れて開発に参加したんだがちょうどバグがわきはじめたみたいでなんとか 耐えてるみたいだったどうやらJavaが頼りにないらしく「はやくきて〜はやくきて〜」と 泣き叫んでいる開発メンバーのためにおれはワンライナーで普通では作れない速度できょうきょリリースすると 「もうできたのか!」「はやい!」「きた!メインリリースきた!」「これで勝つる!」と大歓迎状態だった
汚いなさすがJavaきたない とか書いて欲しいのか?
typoも検出できない言語で開発する能力があったら、何だって出来そうなものだが
javaが大規模開発向けといわれるのは 大規模開発だと色んなレベルのプログラマが集まるから どうしてもレベルの低い層に合わせたルールが必要で そのルールをうまく(本当か?)提供しているのがjava だからjavaはどうしても駄作みえてしまう
ruby大好きで、javaで開発したことがない人間だけど、 rubyで少人数開発で、javaの案件をリプレースできるの? javaで雑兵が大量に混じった100人で開発する案件を、 rubyで少数精鋭で10人で開発出来るの?
>>653 >javaが大規模開発向けといわれるのは
*Java PackageとJavaArchive
*静的型付け
これに尽きると思ふ。
>>656 普通にそれを知らないから質問になってんじゃないの
j2eeみたいなのがrubyには無いからね。 1ライナ言語で大掛かりな仕組みが必要に成るとも思えないし。
Rubyプログラマは本当にカッコイイですね
>>657 あらかじめ答えを想定した質問する香具師は嫌い
答えたらそれは違うんですとか言うのが見えてる
>>659 とかね
一言で言うと「釣り」
>>662 香具師って死語じゃないのか?
最近、またよく見るようになってきた
一旦でもメジャーになった単語は、完全に死ぬことは無い かと言って再流行することも珍しいけどな、COBOLみたいなもんさ
rubyは、まだ枯れてないからな。業務系に使われるのには、まだ時間が必要。
>>647 Javaよりは大規模開発にも向いてるんじゃないか。さすが後発というか。
つっても、WindowsならC#、そうじゃないならJava、って程度の差しかないけどな。
rubyは枯れるのは、ユーザーが減ってシオシオになった時だと思う。
普通に使うぶんには問題ないと思うんだが 「普通のプログラミング案件」にRubyが向かないのは 枯れてないとかそういうのではなく言語仕様レベルの話 仮にJavaがオープンクラスで継承いっこでmix-in前提でeval可能だったらたぶん誰もビジネスで使わない
なんで?
Ruby はマイナーなエディターのように生き残る
腕が悪いのを言語のせいにするなよ
言語使用以前にベンチマーク性能とか配布形式とかさまざまな問題ある。 だけどユーティリティとしては現状のままが使いやすいかもしれない
>>671 を見て思ったのは、「腕が悪い」って、優しい言い方だなってことだ
いや全く流れに関係ないんだがふと
言われてきつい方から行くと、適正が無い、頭が悪い、ずっと優しくなって経験不足、
かなとか思った
うん、これからは腕が悪いって言おう
rubyだとj2eeのjmxみたいな監視タスクも組めないしなあ。 ibmの汎用機とかでもrubyで処理してる実績は少ないと思うよ。
頭が悪い>>>>>>適正が無い>腕が悪い>>>>>>>>経験不足
×適正が無い ○適性が無い
適正がないとか、頭が悪いとか普通言わんだろ 頭が悪いは、ものすごくむかついたときとか言いたくなるが
「適性がない」は悪意のない客観的な意見を装った嫌味に使う。
たまに真顔で言う性格悪いのもいるけどな。
適性が無いと言ってくれる友人は大事に汁
シンボルって何がおいしいんですか?
lispな人のお気に入り
おれは文字列とは区別するという意思を示せるところが好きだが
いわゆるキーワードの役目だね 意味のある固定の文字列 キーワード風引数に多用されるのもむべなるかな
シンボルの利点が直感的に分かるようになったら初心者卒業
一番の利点はタイピングが楽だからでしょうが
遠い将来、キーワード引数が導入されると foo(bar: 23, buz: 'hello') はキーワード引数 foo({bar: 23, buz: 'hello'}) {}の省略をしなければもちろんハッシュ foo(:bar => 23, :buz => 'hello') は従来どおりの{}を省略したハッシュ という感じになるのですかね
そこら辺はPowerShellが300歩くらい先を行っているな
誰もついていってない感じなのがなんとも
foo({ bar: 23, buz: 'hello' }) のほうが好みだ。 さらにインスタンス生成もこれでやりたい。 foo = { class: Foo, bar: 23, buz: 'hello' } foo.bar #=> 23 foo.baz #=> 'hello'
他所様のサイトから150ページくらい取得したHTMLが全部同じページだった データたくさん集まったかな抽出スクリプト書こうかなと思って確かめた今日気づいた 3回やって500ページぶんくらいあるんだが(全部その日の1ページ目でそれが150ファイルずつある) やっぱりセンスないな俺 やめようかな
やめちゃいなYO!楽になるYO!
んー、わかった ブログ全削除じてGitHubからも引き上げた Twitterはアカウント消す方法がわからんがパスワードファイル捨てたのでもう書けない 消して初めてわかったが.git ディレクトリは中に細かいファイルありすぎだろ
おつかれ!生きる道なんてほかにいくらでもあるYO!
それなんの話?
人間関係に疲れたとあるコミッタが去っていったという、この業界ではよくある話 ではないと思う
mw
まあでもリリースほか、あの当時奴が主張してた話があらかた実現してるのをみるに、 あの辺については「言っていることはわかるがお前が気に入らない」って話だったんだろうな。 いい加減スケジュール決めないとリリースマネージャ解任動議出す と言って荒れないようになっただけコミュニティも進歩したというか、 口のききかたって重要というか。
「言ってることはわかるが口だけのやつは要らない」が正確。 Yuguiさんのように自分で手を動かし、やって見せる必要があった。 バグトラッカ設置してリリースマネジメントして交渉して広報して。 メンテナ解任のプロセスを決めたのもYuguiさんだから、今回の解任 動議は本望だろう。
みんなこっちでやれよ… あんなやり取りは質問者は微塵も興味ないんだからさ
Windowsの話はされたくない、 だけど俺の高説は好き勝手に垂れ流すよってどんな説教ジジィだよw
コマンドのオプションを簡単に解析できるライブラリーって無いですか?
optparseとか他にもあった気がするけど忘れた
スレ違い
Rails方面でthor というのも最近よく見るけど、 これを使うとオプション解析だけに収まらないな。
なになに、Rubyの開発陣営って仲間悪いの?
Yes, offcourse.
誰と誰の仲が悪いんだろう?
小児性ヒステリーが多い感じ
of course ->もちろん offcource ->コースアウトした
>>710 それだと日本のニューミュージックグループじゃ
道を外れる(off course)
もちろんあなたは正しい
Of course, you are right.
開発者コミュニティーってのはな、もっと殺伐としてるべきなんだよ。 スレッドの反対意見にまわった奴といつ喧嘩が始まってもおかしくない、 刺すか刺されるか、そんな雰囲気がいいんじゃねーか。二ちゃんねらーは、すっこんでろ。
yugaiの性別疑惑も有るしなあ。 隠し事を無くさない限り、みんな仲良くってのは無理と思う。 オープンソースの合宿なんて遣るか遣られるか出しな。fork回避ならゴム必須。
疑惑なの?
そもそも観点によって性別が変わるトランスセクシャルに対して、疑惑もクソも
>fork回避ならゴム必須。 教祖や皇帝が自分の子孫を沢山残そうとするのは世の常
モビルスーツの機体番号みたいなだなと俺が勇気ある発言
NetBeansを入れればJRubyが動きますが、 他のマシンではJREだけあれば大丈夫ですか?
JRuby はいるんじゃね?
有害わらたw
よく思う事なんだけどさ、おまえらならどっちで書く↓? str = nil if !str; return; end str = nil if !str return end
str = nil return unless str
if !str これは酷い
そんな書き方あったのか、知らんかったorz 感謝するよ
if ! は else/elsif が不要なら unless を使うかな。 支配される指揮が1つなら後置形式で。
str に nil 入れてるんだから return だけで良いんじゃね
unlessが使いがたい場合でも、単項ならif notのほうが好み
unlessって長くない? そんくらいなら、if !strの方がいいんだけど
長さは気にならなくて、どっちかてーと読みやすさかなー。
!str && return ってのは良くない? 最近、こう書いてしまうことが多いんだけど。
良い悪いで言うと悪いと思う
str || retun ならあり
理由を先に。 str || retun 結論を先に。 retun unless str 下のほうが良い。
739 :
735 :2010/03/28(日) 15:25:54
自分の中で、読み返すときに str || retun は、理解するのがワンテンポ遅れる感じがして !str && return だと、「○○がなければreturn」と理解しやすい感じがしちゃうんだけど 慣れですかね?
>>739 俺の場合、どっちも論理演算の流れを考えてしまうからワンテンポ遅れる
後者は演算子一個増えるからさらに遅れる
完全に慣れです。 どちらかというと前者を使う方が多い。 or dieのようなコードはよく見る。
foo || puts "bar" がエラーになるバグはいつ直りますか?
安易に return するとかすでに設計がおかしい兆候なんで unless str return end と書いて、なんでこんなことに3行も使ってしまったのかと自分を戒めるようにしてるわ
優先順位やand/orとの違いに気づけないやつはif/unless使えよ
def foo(x) if x : ; end end def foo(x) return unless x : ; end おかしいか?
難しい質問はOKWebにすれば園田裕貴さんが直接答えてくれるからいいね
記述スタイルの話題はもう良いよとうちの猫が(ry ぽち「どれが良いかなんてBOSSが決めることさ。」
人間、チンコと頭の切れが鈍ってくるとループネタで暇をつぶしたくなるものなのさ
perlのopen(...)||dieみたいなことがしたいんだろ
ボクの考えた書き方でエラーになる = バグ
なら、バグだな
優先順位こっちのがいいんじゃね?て話ならともかく バグと言われるとちょっとね
糖衣構文まぶしすぎて一貫性のないちぐはぐな表記になってしまう よくある仕様バグの一つです
ぼくちんの書き方だとエラーになるんでちゅ!! 絶対バグでちゅ!! 藁
藁 はガチで久々に見た
内部moduleを作っているのですが、 javaのHoge.thisみたいなことをやりたいのですが やっぱり、無理ぽ? class Hoge { class Sub { public Sub(){ Hoge.this ← これ
unless !!!!!!!!!true puts "uho" end
>>757 Rubyのモジュール内のモジュールは、特定の外側のクラスの
インスタンスに結びつくわけではない。
Javaでいうと、static inner classが近いか。
書きわすれ。 用途によってはクロージャでやれることかもしれん。
761 :
757 :2010/03/28(日) 20:24:25
str || retun や !str && return を薦める香具師は perler
Perl好きなら、 str or return じゃないのか? せっかく || じゃない or が用意されてるんだから
Perl4で時間が止まってるんじゃない?
JRubyでjavaのAPIを使うと、コードが汚くなるな Rubyの命名規則を使っちゃダメだね
!演算子って再定義できるんだっけ?
1.9ではできる
頑なにunlessを使わない上司がいる empty?も嫌いらしい こういう訳のわからないこだわり持ってる人と仕事するとすごくやりにくい
脳みその中で真偽判定を変化させるのが苦手か遅いんじゃないか? unless xxx and xxx と unless xxx or xxx のどっちが正しいんだ?みたいな 確かに基本は if でやるのがわかりやすいとは思うけど 全く使わないというのはね
unlessはただでさえ馴染みが無い言葉なのに、untilを連想させて、使う使わないの前に面倒くさい おまいらもuntilを使ってないとすれば、unlessイラネってのを叩くのもどうか
俺もunless苦手だわ 脳内でif !に変換する unlessがある言語って結構あるの?
そうえば、オレは unless はかなり使っているけど until はぜんぜん使わない。 てゆーか、while を使わないから until は存在さえ忘れている。
原因の @messsage を探すのに30分くらいかかった 寝よう
return unless init 形式は大して読みやすくも書きやすくもないんだよな実際のところ 積極的に使う事でルビィストである事の表明になるって程度の効能しかない
条件式がよく考えられた名前のメソッドか変数である場合は有効 unless 前提で設計しろということになるな if にしようか unless にしようか迷う、というようなことはない 明らかにどっちか向け
unlessを使えば読みやすくなるというなら迷わず使う。 けどifの方が短いし目立つしでunlessの出番はほとんどないなあ
andやorが出てきたらunless使わないだろ普通
ttp://d.hatena.ne.jp/otn/20091103/p1 --------------------
# (1)
url = a["href"] if a.text == "次を表示"
# (2)
if a.text == "次を表示" then url = a["href"] end
# (3)
if a.text == "次を表示"
url = a["href"]
end
やっぱり、(1) は良くないよね。
--------------------
の意味が解らない。
(1)の何がよくないんだ?
>>779 最近は、1行にまとめるときに ; を使うようになった
if a.text == "次を表示"; url = a["href"]; end
これで (3) と同じなんだけど。
(1) の場合、vim の matchit が誤作動して、% が対応する識別子に
ジャンプできなくなる。
>>779 記事の中にちゃんと主張が書かれているじゃない
def hoge; foofoofoofoo; end と書くとEmacs では 「hoge;」 と5文字で着色されるから def hoge ; foofoofoofoo ; end と分けて書く、とかと同じようなもんか
Emacs の ruby-mode ではインデントされないから別の書き方する、ということはある
784 :
デフォルトの名無しさん :2010/03/30(火) 10:11:51
ruby watirでbasic認証のpopupが起動する。 checkいれてもまたuserid,passwordを聞いてくる。 なにかいい解決策はないのかな? IEが悪い?プログラムに直接ユーザIDとパスワードを書けないかな?
Basic認証ならURLにUserIDとパスワード埋め込めるけどそういうことじゃなくて?
AutoIt入れてもできなかったらまたおいで いちいちポップアップが出る上にスレッドで分けて入力してjoinする、というしょうもない技を使わないといかんが
メソッドの引数の初期値が true ってキモいかな def hoge(foo, bar, flag=true) 普通の人はこれを使うはずなんだけど、 場合によっては無効にしたいことがあると想像可能な機能の初期値
ぜんぜんきもくありませんお
京キャビのRubyバインディングできたんだ
.gem/ruby/1.8/gems/yard-0.5.3/lib/rubygems_plugin.rb:9: warning: method redefined; discarding old has_yardoc= .gem/ruby/1.8/gems/yard-0.5.3/lib/rubygems_plugin.rb:22: warning: discarding old has_yardoc? 文句言うわけじゃないんだけどやっぱ文句なんだけどさ、Yard って本気で不安定だよね 全く関係ない Yard が警告出したりインストール中に Yard 部分で SEGV で落ちたり 入れたくないんだけどいつのまにか入ってる 一度も自分から使ったことないんだけど
791 :
デフォルトの名無しさん :2010/03/31(水) 01:11:41
コードはこう(サンプルより)
url = "
http://localhost/basic_auth/ "
username = "ccc"
password = "ddd"
ie = Watir::IE.new
a = Thread.new {
ie.goto(url)
}
sleep 5
ie.send_keys(username)
ie.send_keys('{TAB}')
ie.send_keys(password)
ie.send_keys('{ENTER}')
a.join
確かに動くけど問題点は2つ。
ie.goの後ろに処理を書くとプログラムがとまる。
basic認証にCheckが入っているとURLにUID、PWDが書かれてしまう。
UWSCのコードではBASIC認証のダイアログボックスがあるかどうかの
処理判断のコードがあったのだがWatir(AutoIT)では不明。
AUToiT勉強するしかないか?
それとwATIRを長くループしているとかならぶWIN32oleのところで
落ちる。例外処理を書いてもライブラリの中なので困る。
(ライブラリに例外処理を書けばいいのだが。当方ruby初心者)
どうしたものか?困る
なんだかよくわかんないけど処理を書くならa.joinの後に書くべきなんじゃないかな
ねーねー、autospec 使おうと思ってたんだけど $ autospec loading autotest/rspec /usr/local/bin/ruby spec --autospec hogehoge_spec.rb 46464646464646464646464646464646464646464646464646464646 46464646464646464646464646464646464646464646464646464646 70464646701010494110397710199104971101051221018080461051 10115112101991163210510232771019910497110105122101808046 10599111110118326132739911111011832105115321151011164432 99111110118101114116393270657376696810101011201121019911 … という感じに数字になるんよ たぶんテスト結果の表示が何らかの理由で数字になってるんだと思うんだけど 原因とか思いつく方いますか .autotest は全部コメントで空です rspec-1.3.0
794 :
793 :2010/03/31(水) 10:09:29
原因がわかったよー cmd = "ruby spec --autospec spec/hoge_spec.rb" open("| #{cmd}", "r") do |f| until f.eof? do c = f.getc or break print c end end こんな処理をしてる IO#getc の結果をそのまま画面に表示されても超困る # ZenTest-4.3.0/lib/autotest.rb, L246 - print c + print c.chr
print c であった理由とか考えないんだな
>>795 それはいちおう考えてた
open("| ls"){|f| until f.eof? do; print f.getc; end}
の結果が Ruby1.8 と Ruby 1.9 で違う、という以上の意味はないと思う
1.8 だと整数のまま表示される
ハイランダーは1.8なんてもさいものはもう普段使ってないのだという事実がどんどん明らかに
[ANN] ZenTest 4.3.1 Release Fixed autotest output on 1.8.
800 :
793 :2010/03/31(水) 10:49:29
>>798 テストに使用されることが多いライブラリの人はもうしばらく踏ん張って欲しいとあたし時々おもうの
>>797 >>799 $ gem install ZenTest
Successfully installed ZenTest-4.3.1
1 gem installed
$ autospec
loading autotest/rspec
/usr/local/bin/ruby spec --autospec spec/hoge_spec.rb -O spec/spec.opts
..........................
Finished in 0.853637 seconds
26 examples, 0 failures
^CInterrupt a second time to quit
$
ワーイワーイ
標準出力への自動テストを普段使ってなくて気づけなかったらしいな 文字列として利用するほうは pack してあるから問題がなかったんだろう screen 対応がオフィシャルから抜けたときのと似たような感じか
ZenTest つくってるひとにバグの報告をしてくれる超すごい優しい人がいるスレと聞いて
>>794 で open されてる、 ruby に渡される引数を作るのに使う
GEM_HOME かテスト対象スクリプトパスかテストコマンドオプション引数のどれかに
ファイルパス中の文字列としての空白が入ってるとシェル実行に失敗して autotest できないよ
超具体的には
C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/rspec-1.3.0/bin/spec
とか
C:/Documents and Settings/俺/デスクトップ/hoge/spec/hoge_spec.rb
とかが
>autospec
loading autotest/rspec
C:\Program Files\ruby-1.8\bin\ruby C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/g
ems/rspec-1.3.0/bin/spec --autospec C:/Documents and Settings/俺/デスクトップ/h
oge/spec/hoge_spec.rb -O spec/spec.opts
C:\Program Files\ruby-1.8\bin\ruby: No such file or directory -- C:/Program (LoadError)
というエラーを出す
"" で引数括ってない云々のあれですな
空白入ってるパス上で Ruby 使うなよというのはまあ実際問題としてその通りかもしれなくもなくもない
公開前提のライブラリ作ってるんだけど、ユーザー固有の設定を読みたいです どこにどう置くべき? 環境変数 HOGE_DATA? ホームディレクトリの .hoge みたいなドットファイル? カレントディレクトリの hoge.yml みたいなファイル?
「ユーザー固有の設定」クラスを作ってread_from_fileとかなんとかメソッド提供しとけ。 ファイル置く場所はライブラリじゃなくてアプリに任せた方が無難。
805 :
デフォルトの名無しさん :2010/04/01(木) 11:27:11
やっぱBasic認証のダイアログが出てくる。 記憶しているのチェック入れているのにダイアログボックスがでてくる。 Basic認証のダイアログ出てきたときと出てこない判断の処理が わかる人います? 内部的にはAutoItを使っているのでそれを勉強しなければならない?
わかります
>>804 ホームにある超細かいドットファイルってけっこう邪魔だよね
せめて ruby 関連は ruby でまとまってて欲しいもんだが
>>807 JavaのPreferences APIが1ディレクトリにまとめてますな。WindwowsだとRegistryになったり。
809 :
デフォルトの名無しさん :2010/04/01(木) 15:45:39
>>わかります じゃあ教えてw 嫌なのはbasic認証のボックスがCheck入れても出てくること。 IEの設定?も考えたけど不安定なのでボックスがあるかどうかで判断したい 確かに教えてくれたとおりJoinの後ろに処理を書けば動くけど なんとかならないものかと。できるときとできないときがあるのは 非常に困る。
810 :
デフォルトの名無しさん :2010/04/01(木) 16:38:56
require 'net/http'
Net::HTTP.version_1_2
req = Net::
HTTP::Get.new ("/admin/")
req.basic_auth "uid","pwd"
Net::HTTP.start('xxxx.com', 80) {|http|
response = http.request(req)
puts response.body
}
とこんな感じで書けば動くんだがWatirとgoto(url)をどう絡めれば
いいかわからない。だれか教えてbasic認証を出したくないので
違いを理解してないようなので初心者スレ行きの刑
812 :
デフォルトの名無しさん :2010/04/01(木) 17:02:41
>>どう考えても初心者スレじゃないだろ。茶化すならレスするな
IEでBASIC認証がどう動作するかの知識すらないのに?
814 :
デフォルトの名無しさん :2010/04/01(木) 18:02:40
>>IEでBASIC認証がどう動作するかの知識すらないのに? ヘッダーにUIDとPWDを入れるんだろ。 それぐらいしってる。だから出るときと出ないときがあるから こまっている
お前らって心が狭いな
2ちゃんは取り扱い難しいからな。 ヘソ曲げたらあきらめることよろし。
分かる人だけレスしてください
>>814 違う
HTTP AuthorizationについてとIEにおける実装(の推測値)を調べろ
基本的に全てIEが管理していて内部動作には関与できないし相手のサーバの挙動の制御もできない
ま、基本、IEさんの奴隷だからな
分かる人だけ質問してください
ダイアログ出てこないケースに決め打ちしていいなら 401返してきたら認証しといてくれるようなプロキシを IEと対象サイトとの間に噛ませてやればいいんじゃねえの
WebProg板かWindows板かソフトウェア板かのどこかで基礎知識を 授けてもらうのが先ってことでいいのかな。よくわからんけど。
824 :
デフォルトの名無しさん :2010/04/02(金) 00:58:17
そもそもwatirに負荷を求めるのが無理。 2日ぐらい続けているとwin32oleで落ちる。 812のコードは普通に動く。
825 :
デフォルトの名無しさん :2010/04/02(金) 01:37:47
解決しました。 scriptBrowserKを使うことにしました。 rubyは(watir)使い物にならない(テスト用は別ですよ) ことがわかりました。 お騒がせしました。
ageに気付いてないんだろうなあ
age/sageなんてどうでもいいじゃんと思うのは俺だけかいな?
未だにsageろなんて言ってる煩い人は専ブラ使ってないのかな? sageろだageろだ言ってる2ch廃人の癖に
そういう意味じゃないと思うが ageてると目立つのは確かだ
変なのが来ちゃうからだろう しかし大規模規制中でム板もIPv6板も閑古鳥だお
V6板は平常営業だろw 先日のDDoSアタックの時には生存鯖としてちょっと賑わったがw
iPadならRubyもサクサク動くのかなぁ。 脱獄できるかが問題だがw
> しかし大規模規制中でム板もIPv6板も閑古鳥だお いまくらいの方がちょうど良いです
>>824 が自演失敗(=ageは釣り)って話でいいのかな
マカってホント情報弱者だな。
835のボットこんなスレにまで来るようになったのか。
> NameError: uninitialized constant FIle イライラ
SHiftキーはすばやく離せ、それくらいできるだろ初心者か
今日だけニートやめようと思ってハロワに行ってきたらRubyでの求人があった 東京でもないのに珍しい
幾ら?
16万円
こちらで良いのかわかりませんが、質問させてください。
TokyoCabinetのRuby用APIをDebian上で使いたいと思っています。
http://blog.livedoor.jp/sasata299/archives/51322051.html を見ながら設定したのですが、以下のようなLoadErrorになってしまいます。
/usr/local/lib/site_ruby/1.8/i486-linux/tokyocabinet.so: /usr/local/lib/site_ruby/1.8/i486-linux/tokyocabinet.so: undefined symbol: tccmpint32 - /usr/local/lib/site_ruby/1.8/i486-linux/tokyocabinet.so (LoadError)
from text.rb:2
text.rbでは、
require 'tokyocabinet'
として、tokyocabinetを呼び出しているだけです。
どこが悪いのかわかる方がいらっしゃいましたら、ご教授お願いします。
ちなみに、 /etc/ld.so.conf に "/usr/local/lib" を追記しましたがダメでした。
sudo ldconfig した?
ldconfig は?
レスありがとうございます。 # ldconfig しましたがダメでした・・・
ldconfig -vとすると使えるようになったライブラリ名がずらっと出る。 これに tokyocabinetのライブラリが出てないならtokyocabinet自体の インストールの問題、出てくるならruby拡張のほうの問題かなぁ。
なるほど、ldconfig -vですか。 知りませんでした。 実行した結果、以下の2箇所に引っ掛かりました。 tokyocabinetインストール時も特にエラーらしきものはなかったと思います。 /usr/local/lib: libtokyocabinet.so.9 -> libtokyocabinet.so.9.6.0 /usr/lib: libtokyocabinet.so.3 -> libtokyocabinet.so.3.2.0 tokyocabinet-ruby も特にエラー吐かれてなかったので問題ないと思うのですが・・・ ん〜、うまくmakeできてないのだろうか・・・
いわゆるRuby関係ないという奴だな
関係あるかないかといえばあるほうだな
Rubyが関係あるかどうかを判断するだけのスキルがあったらこんな聞き方しねえというのは確かだな
undefined symbol: tccmpint32
Ruby使用中にぶち当たるならとりあえずはスレ担当でいいじゃねーかとも思う
切り分けができてない段階で持ってくるのはしゃーないべ。 できれば切り分けてから来てほしいのはその通りだけどさ。
tcというプレフィックスのシンボル(関数)が見つからないわけだが、 これは名前から分かるようにTokyoCabinetが提供している関数。 ということは tokyocabinet-ruby から libtokyocabinet.soが見えて いない状態。 たぶん ldd /usr/local/lib/site_ruby/1.8/i486-linux/tokyocabinet.so とすると libtokyocabinet.so とリンクできていないんじゃないかね。 ところで、libtokyocabinet.so が /usr/lib と /usr/local の両方に あるってことは、古いほうとリンクしちゃってて、そっちには tccmpint32がない、とか。
とりあえずですが、TokyoCabinetのrequireが通りました。
>>855 さんの言うとおり、
ldd /usr/local/lib/site_ruby/1.8/i486-linux/tokyocabinet.so
としてみたら
libtokyocabinet.so.3 => /usr/lib/libtokyocabinet.so.3 (0xf7db9000)
となり、古い方にリンクが張られているようでした。
ただ、この動的リンクの修正方法がよくわからなかったため、とりあえず
ln -s /usr/local/lib/libtokyocabinet.so.9 /usr/lib/libtokyocabinet.so.3
として静的リンクに置き換えてみたらErrorLoadは無くなりました。
やはり、おっしゃっていたように古いものだからtccmpint32が無かったようです。
よくよく考えれば、これはLINUXのシステム的な問題でしたね・・・
スレ違いな質問で申し訳ありませんでしたが、親切に答えて頂けて凄く助かりました。
>>844-855 の皆様、ありがとうございました。
他の部分で libtokyocabinet.so.3 が古い方を期待してるものが動かなくなってないかどうかが心配w
858 :
デフォルトの名無しさん :2010/04/10(土) 03:58:24
mime_responds.rb--- def self.generate_method_for_mime(mime) sym = mime.is_a?(Symbol) ? mime : mime.to_sym const = sym.to_s.upcase class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{sym}(&block) # def html(&block) custom(Mime::#{const}, &block) # custom(Mime::HTML, &block) end # end RUBY end railsのソースに以上のようなメソッドがあります。 このメソッドでは、symの値をメソッド名としてを新しいメソッドを定義していると思うんですが、 その前後にある、"<<-RUBY, __FILE__, __LINE__ + 1"-"RUBY"は何をしてるんでしょうか?
class_evalの第一引数にヒアドキュメント(RUBYから下のほうにあるRUBYまで)で文字列を渡して 第二引数に現在のファイル名(mime_responds.rb) 第三引数に現在のファイル中の行番号+1を渡してるんだろう おそろしす
普通に定型文じゃん
>859 >860 ヒアドキュメントとそれと一緒に与える引数の与え方がわかってなかったです。 よくわかりました、有り難うございます。
コマンドscript/dbconsoleでsqlite上のテーブルを確認したいのですが 以下のエラーが発生してうまくいきません。よろしくお願いします。 Couldn't find database client: sqlite3. Check your $PATH and try again. [環境] Windows Vista Home Premium SP2 ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32] Rails 2.3.5 sqlite3-ruby (1.2.5)
>>862 ライブラリだけではなくコマンドとしてのsqlite3が必要。
IronRuby 1.0出たのか。
ようやく本命登場だな
>>863 レスありがとうございます。
下記サイトよりファイルをダウンロードしてパスが通っているC:\Ruby19\binへ置きましたが
同じ現象のままです。他にしなければいけないことがあるのでしょうか?
サイト:
http://www.sqlite.org/download.html ダウンロードして展開後、binフォルダへ配置したファイル
sqlite3.exe
sqlite3.def
sqlite3.dll
Visual Ruby はまだか?
to_yaml が超かっこ悪いのでなんとかしてください YAML ファイルを読んでオブジェクトにする機能だけ欲しいです
あるだろボケ
>>866 cmd.exeからsqlite3を実行できてるの?
>>868 require 'yaml/syck'
File.open(path){|f| YAML::Syck::Parser.new.set_resolver(YAML::Syck::DefaultResolver).load(f)}
たぶんこれが最短
>>869 用意されてるから簡単だよね!
>>870 はい、sqlite3と打ち込んだ場合は起動しますね。
どうしてもうまくいかないんで、回避策としてFireFoxアドオンのSQLite Managerでテーブルの内容を確認してます。
autotest に書いて便利な気がするスクリプトを作ってるんだけど、 これって autotest 内で組み込まれたときに何かエラーが出てても表示されなくね autotest が即終了するから何か間違ってるっぽいんだけどどこがどう間違ってるのかわかんねwwwww
YAML.load_fileじゃだめなの?
Jrubyが必要なシチュエーションってなんだろうかね。
Google App Engine は Ruby 対応していないから Java で Jruby しかない
Google App Engineが必要なシチュエーションってなんだろうかね。
>>877 無料でサーバーサイドプログラミングで遊べる
GAEは1日ごとのクォータが質の悪いソーシャルゲームみたいな感じだ
今日できるのはここまでーあとはまた明日ー
>>874 たぶん yaml.rb で読み込まれ定義されるようなヘルパーなメソッドが不要ということかと
いちいち Object とか再オープンすんじゃねーよとはちょっとだけ思う
>>878 Herokuが無料だと5MBぐらいまでだっけか
rake version:bump すると 1. VERSION ファイルを更新する 2. git commit する 3. gemspec ファイルを更新する という順番になるのはなんで? gemspec ファイルを更新してから git commit して欲しいんだけど、なんか理由あるのかな
rake version:bunp:patch rake gemspec git commit -m "and gemspec updated" rake build gem install pkg/hoge-0.1.2.gem git commit -m "and gemspec updated" の代わりに git commit --amend して コミットメッセージの 2行目に gemspec について書くのでもいいと思う こっちのほうがめんどくさくないかも
IronRuby1.0のオプションに -2.0 っていうのがあって 説明に"Ruby 2.0 mode"って書いてあるんだが 2.0の仕様で決まってるのなんかあったけ?
1.9.1だだ滑りモードみたいなものの別名と推測
2.0であんな仕様変更が起きるだなんてことは、まだ誰も知らないのであった……
無理してメソッド説明とか英語の長文で書かなくてもいいだろうか 我ながらかなり怪しい文章なんだけど
要点が2行以上に渡って書いてあるとキレる 引数が *params としか書いてない場合もやっぱ若干キレる 1行しか表示しない可能性を全く考慮してねえ よって最近キレっぱ メソッドの補完説明とかみんな使ってないのだろうか
使ってないなあ
ri とかで使われること全く意識してないというかどうすればいいのかすらわからん
rspec -fs -c の結果コピペ
ソースにドキュメントとしてのコメントをきっちり入れるとかのこだわりって、 あんまり受け入れられてない気がする。 みんながやらなきゃ意味が半減な割には、 全面に押し出して周知するということもなされてないように思うし。
コメント入ってても書いた本人しか意味判らなかったりするからな
必要なもの ・ メソッド解説コメントの簡易書式の策定(Yardは面倒すぎる) ・ メインとサブの言語でのコメント併記併用手段の提供
>>891 モノが成熟してたり手を動かす人間が掃いて捨てるほどいるのなら
その方針の方がいいんだけど、
モノが未成熟というかまだまだ変えていきたいという気持ちがあって
人手が限られているのなら、そういう方針は諦めて敷居を低くする方に倒すのも仕方ないかもね
def hoge(*params) p = Hash.new if p.kind_of?(Array) p[:title] = params[0] p[:body] = params[1] else p[:title] = params[:title] || params['title'] p[:body] = params[:body] || params['body'] end … を hoge(キーが:title, :bodyのHashかそれを意味する値2個) というマニュアル表記に自動でする方法
>>895 rdoc 生成後に rake task で置換すればできそうな気もする
require 'HashMaker' def hoge(*params) keys = [:title. :body] p = HashMaker.build(params, keys) でメソッド中に HashMaker.build(メソッド引数名 を検知したら マニュアルの引数表記を適当に書き換える とかいうのはどう
そもそものアレとして引数の変換クラスは既にあるような気がする
英語のメソッド解説は日本語で最後まで書いて 推敲してからそれを訳すとわりとうまくいくことに最近やっと気づいた 最初から英語で書くと最終的によくわからん羅列の単語になる
ネイティブじゃないんだし書く英文は高校生レベルで十分と思ってたら 高校生レベルの英作文すらできてなかったでござる
真剣に書いた英語がネイティブに正直、幼稚園レベルといわれたから困るです…
下手な英語解説を読ませられるくらいならソースコード見たほうがいいという指摘にぐぅの音も出ず けっこう頑張ってたくさん書いたんだがちょっと涙
おいやめろ 英語ドキュメントつけようとか思ってた心が折れる
おれも英語はかなり苦手だが、コツは元の文章をすごくシンプルにすることだよ 関係代名詞のオンパレードみたいのは絶対ダメ シンプルにすればそうそうおかしな訳にはならないしかなり伝わる ドキュメントなら箇条書きとかを効果的に使うといいよ
>>901 じゃあそのネイティブに清書してもらうといいんじゃね?
おめーらにもわかるように書いてやったんだくらいの勢いで
「幼稚園レベル」という言葉に悪意というか意味のない優越感を感じるので
「英語では普通こう書く」って感じで言ってくれる人なら、素直に聞けると思うんだ
日本語でも幼稚園レベルだったってことはないだろうな
実際は
>>904 の英文は大変な苦労をして気を利かせて空気読んで解読されているだけなのであった
祝・2週間くらいかけてこつこつ作ったクラスがやっぱハッシュ連結した文字列作成で充分という結論到達
ruby 1.8.7 (2010-01-10 patchlevel 249) [i386-mswin32] require 'rubygems' require 'pathname' require 'hpricot' require 'mechanize' require 'kconv' require 'optparse' require 'image_size' require 'parsedate' require 'uri' require 'net/http' 〜 こんなファイルを exerb ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub でexe化したら、 プロシージャ エントリ ポイント rb_thread_join がダイナミックリンクライブラリ 〜.exe(自分で作ったファイル名)から見つかりませんでした。 って出ます。。。 同じ症状になった方がいらっしゃいましたら、ご教授願います。。。
…とりあえず、 mechanize があるなら uri と net/http はいらないな… require しただけのスクリプトを exerb しても同じエラーになるんじゃないのなら require は無関係
わかるひとだけレスしてください
>>909 です。
>>910 さん、御回答有難うございます。
取り敢えず、uri net/http を削除して、requireだけの文にしてexe化してみました。
そして、同じエラーが出ました。
require文をいくつか削除してみたところ、
rubygemsをrequireしていると、このエラーが出るようです。
と、ここまで判別出来たところで解決方法が分かりません。。。
ダメな奴ですみませんが、おつき合い願います。
rubygems exerb でぐぐるとなんぞ
>>913 さん、またまた有難うございます。
require 'rubygems' unless $Exerb
に変更したところ、
requireだけのファイルをexe化したやつは
何もエラーを吐かなくなりました。
が、いぜん、ガリガリに書いた自分のファイルのexe化後のやつは同じエラーが出てしましました。。。
引き続き、解決策を募集中です。
こちらでも色々ググってみます。
仮に無事に exe 化が出来たとして サイズが実用的じゃなかったりとか
>>915 さん、ありがとうございます。
ファイルサイズですが、現在5.05MBあります。
このサイズでは現実的では無いのでしょうか?
>>916 です。
書き忘れました。
exe後のサイズが5.05MBです。
rbの状態では21.2KBです。
自作ライブラリを公開しようと思うんだけど、ライセンスはどうすればいいかな 正直、他人様相乗り型ラッパーで自分の名前消してもいいくらいのえいやーな感じのライブラリなんだけど
個人のライブラリなら揉めてから決めてもいいような気もする が揉めてからだと期限切られてる状態で逆に面倒かもしれん
Rubyは刑務所でも職業訓練に利用されているそうだが そのうち刑務所出身者=>Ruby使いっていう図式が出来て さらにRuby使い=>刑務所出身者って勘違いするひとが出そう
>Rubyは刑務所でも職業訓練に利用されているそうだが いいえ
ベンチャー逃げたんだっけ 続報というか実施すら聞かないな
福岡県の支援事業なのでこっちはたぶん逃げない
ttp://www.pref.fukuoka.lg.jp/d14/rubykoyou2010.html > 福岡県では、生産性の高い国産プログラミング言語「Ruby(ルビー)」を活用して事業拡大を図る県内のIT関連企業が、
> ソフトウェア開発技術者、セールスエンジニア等を新規に雇用して実施するソフトウェア開発に対して支援する
> 「Rubyビジネス雇用創出支援事業」を実施します。
> 本事業はRubyの普及・発展に寄与するソフトウェア開発事業に対し、人件費の支援を行います。
OSI認証のをゆるめなのから並べるとだいたい以下のとおり、 * zlib/libpng license * ISC License/2-clause BSDL * 3-clause BSDL (オレの名前で宣伝するな条項) * 4-clause BSDL (宣伝条項) (GPL非互換) * Ruby's (GPL互換、BSDL非互換) (OSI非認証) * Apache License (Apache License 2.0とGPL3以外は非互換) * GPL (2と3は非互換) ISC Licenseが短いのでオススメです。
文が長いと把握も大変だしなー jeweler に gem 作ってもらうとくっついてくるライセンス条項くらいがわかりやすいと思う
GPLの無駄な長さは異常 あれは普通は読めない まあ、ソフトウェア許諾なんてそもそもそういうもんだけどな ブン投げ型の逃げ逃げライセンスのほうが不自然といえば不自然
各ライセンスをまとめて、 わかりやすく説明・比較した本とか需要があると思う 読んでる内にわからなくなるし、すぐ忘れるし、ましてやほかと比較とかきつい わかってると思ってるやつも結構誤解してることとかあるんじゃないだろうか
>>931 >可知 豊
惜しいな 可也優多寡 とか 価値豊 だったら面白かったのに
昔見かけた、matzの妄想ライセンス
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. DO NOT SUE ME.
2. DO NOT EVEN THINK ABOUT SUING ME.
誰にでも、以下の条件の元で、本ソフトウェアを商用アプリを含むあらゆる目的で
使用し、また自由に変更・再配布することを許諾する。
1. 私を訴えないこと
2. 私を訴えようと考えさえしないこと
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/24727
>>931 サンクス。もうあったのか。本屋で良さそうか確認するよ
map(:first) とか sort_by(:length) とか書けないのはなんで? 引数として渡されたシンボルからブロックへの変換を個々のメソッドで やらないといけないのが面倒だから?
$_ を再発明するのがヤだったのだろ
>935 %w[a aa aaa aa a].sort_by(&:size) じゃダメなんですか?
rake spec がどーしてもなんか微妙に失敗するのなんでかなと思ってたら
開発ディレクトリのファイルではなく自分でインストールしたパッケージのほうを読んでた
そのまま使える exsample だからその中では require 'hoge' するのが当たり前とか思ってた
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '/../lib/'))
require 'hoge'
>>937 & を書くのが冗長に見えるんじゃないですかね
939 :
935 :2010/04/21(水) 11:42:57
>>937 別に & がダメとか冗長とか思ってるわけではないです。
なんというか、&:symbol を使うのって
各要素に適用するブロックを渡す というよりは
各要素に送るメッセージを指定する という方が感覚的にしっくりくるので(自分の場合)
渡したシンボルがそのように解釈されると嬉しいかなと思った次第
ライセンスってことはライブラリ公開してる人がいるのか 今どこで公開するのがいいかな GitHub? RubyForge? RubyGems.org?
野良ライブラリが増えるのはいいことなのだろうかと最近少し思う 公開しないほうがノイズが減って世界は幸せなのではないかと
>>941 それが実際に必要か不要かはシステムと世間があとで考えるので、
使用可能である程度形になってて場合によっては便利、というライブラリならガンガン追加してください
全然ダウンロードされず更新も外部参照もされないライブラリは検索一発目に出さずに
「その他○○件」に回すとか色々手はあるわけでして
ノイズが見えるのは単純にシステムの欠陥であって、要素自体の欠陥ではありませぬ
>>940 rubygems.org にあげて、詳細ページの Homepage のリンクを GitHub のアカウントページにする、というのが
現在の個人ライブラリでわりとポピュラーな形態に見えます
947 :
デフォルトの名無しさん :2010/04/24(土) 01:59:48
Ruby-GNOME2でThreadを使うとCPUを消費しまくるのは俺だけか。例えば require 'gtk2' Thread.start{ sleep 10 } Gtk.main とするとひどいことになってしまう
生まれて初めてきちんとライブラリ公開して rubygems.org にあげた ライブラリ名に騙されてしまったうっかりさんが半日で9人もいてダウンロードしてくれた模様 …なんだろう胃が痛む 特定の外部プログラム用ライブラリというニッチなとこだが便利に使ってもらえてるだろうか
基本ユーザーな俺はおまえみたいな連中のおかげで助かってる がんばってくれ
>ライブラリ名に騙されてしまったうっかりさん 素人動画ですねわかります
>>950 サンクス。でも使ってるのはソースからコンパイルした0.19.4だった。
それにメインループが止まるわけじゃない(gtk/sample/misc/threads.rbも動くことは動く)からこれとは別な気がする。
某氏がApple信者に総攻撃くらっててワロタ
Appleのライセンスは綺麗なライセンス
>>953 ただ氏?
でも見当違いな批判ばっかりだったような。
HTC Desireの方がiPhone 3Gよりキビキビ動く
なんて発売時期が大幅に違うんだからある意味当然の感想にすら
噛み付いてた信者が居たのにはちょっと苦笑w
たださんのは個人の素直な感想に過ぎないよな。 それを信者が寄ってきて叩くから、Apple信者キモイという話になる。
1000とったらmoonwolf
単刀直入に聞くけど、Rubyって何でこんな遅いの? とあるGPをJavaで書き直したら10倍速かったわ。 根本的に遅い原因があるのかどうか知らないけど、あるとして、その機能をOFFにするオプションとか実装出来ないの?
スクリプトを沢山読み込むせい バイナリにすればいいのに
基本機能の多くがばいなりでうごいてないんだろ
>>958 人間にとって読みやすくわかりやすく使いやすいことを第一義にしてあるから
人間にとって読みにくく理解困難で記述煩雑でもいいのならアセンブラで爆速プログラムを書くといいぞ
空白頼りのどうとでも取れるあいまいな構文を廃し、 いちいちオブジェクト生成するのをやめれば大幅な速度向上が望める DSLが不可能になってオブジェクト指向プログラミングができなくなるが、まあ速度向上の前には些細な問題だろう
>人間にとって読みやすくわかりやすく使いやすいことを第一義にしてあるから 少なくともこれらの点に関してはJavaや他の言語と大差ないと自分は思うし、それにまつもとさんもそんなことは一言も言ってないが。 もし、そんな風にRubyを理解しているのなら、何か間違ってるとおもわれ。
コンパイル済みでメソッド探索等が不要なjavaが(rubyと比べて)早いのは当り前 実行速度が必要ならrubyは選択肢に入らない、常識だろ
JavaとRubyで速度比較ですか。。。
むしろ10倍程度で済んだということはRubyが健闘してると思うのだが
俺はむしろ読みやすさじゃなく、書きやすさだと思ってる。 メソッドチェーンしやすいお陰で「カーソルを戻す」操作が凄く少ないと思う。 処理順のまま右に継ぎ足し継ぎ足しで書けてしまうことが多いと感じる。
Ruby は本家は遅いけど 別な所が作ったのは速いんじゃなかったっけ?
Javaはちょっと曖昧ではあるけど コンパイラ言語とインタプリタ言語で速度比較するのはナンセンス
まあじゃあPerlやPythonあたりと比較してスクリプト全体が高速なのかというと別にそうでもないわけだがw Pythonより5倍遅いと言われてもふーんという感じだけど、Javaより10倍遅いと言われるとツッコミが入る
まぁ適材適所ってことでいいんじゃないの。 Rubyで済むところはRubyで書けばいいし、 速度面でどうしても問題がでる場合は、より高速な言語で書けばいい。
>>965 というか、Javaが「速い方で」ベンチマークされる時代が来たことに感無量だわ。
JavaVMの進化って素晴らしい。
類似の例だと「コスト以外なら何でも知っている」とか揶揄されてたLisp系言語が
普通に実用言語として良し悪しを語られてたのを見た時とか。
それらは単純に、比較対象としてさらに遅いものが新規登場したせいなだけでは
ねー質問 rubygems rubygem どっちがどう正しいの? rubygem が正式名で、複数形として使われてるの?
rubygem が正しい 日本語の文章で「rubygems の…」とか書いてる奴は情弱 という電波を受信 解析に回します
rubygemsがパッケージマネージャーで、 gemがそのパッケージだろ?
rubygemsというツールがあって、それに対応したパッケージがgem(複数形gems)。
gemが凶悪すぎるというのは間違いない
ここでオレ様がrubybemsを
ゲムじゃないから間違えるなよな!
gem install hogeとしたときのriとrdocの生成が重過ぎる。 生成済みのもんをパッケージに入れといてくれないかな。 なんか最近は--no-riや--no-rdocがデフォだわ。 使う側はgemの利用者であって開発者じゃないんだからさ。 自動生成したドキュメントはソースコードと内容が重複してるからうんぬんはSCM上でだけやっとくれと思うんだがー。
マシン買い換えろ
>>982 俺もだ
3年前のデスクトップPCですら20秒かかる有様だからな
ネットブック上でriやrdocを生成しようものなら、何分かかるものやら
だからそんなへぼマシンは捨てろと
普段実行速度は問題にしないとか偉そうなこと言っておきながら 自分の身に降りかかると遅いと文句を言う姿は大層滑稽 というかPCが遅過ぎるんだと思う 消費電力以外のデメリットないんだしきちんと2年くらいのサイクルで買い換えろ
>>988 そんなサイクルで買い換えるのはPC好きだけだ
壊れてもないものを誰が買い換えるんだよ
しかもRubyGems以外のソフトウェアは、すべて十分な速度で動いてるのに
どっかの誰か一人がやればいいことを、各自でやってるのが馬鹿馬鹿しいという話
>>990 全くだ、ソースで配って各自のマシンでコンパイルだなんて無駄にもほどがある
コンパイル済みで配布すれば全世界の人間のマシン資源と時間が節約できるのに
gemをそういう風に改造してみたら?
993 :
デフォルトの名無しさん :2010/04/26(月) 09:46:58
Thread.newマダー
>>991 まあそういうことだな
HTMLなどという自由度が高くて再利用困難な最終形式に近い形態で配布するメリットは薄い
本当の問題は、コンパイル済みで配っていないということではなくコンパイルシステムが鈍重なことだ
それを「コンパイル済みファイルの配布」という手段で逃げるのは問題の先送りに過ぎない
自前でRdoc作るときどうするんだって話だ
.rb 「おれがドキュメントだ !!」 のは冗談で doxygen みたいので管理すれば 良くね?と思う春うららの吉宗であった
rdoc は最初意図的にウェイト入れてるのかと思った
梅
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。