3 :
デフォルトの名無しさん :2011/12/02(金) 23:45:13.90
乙。 惜しいけど、1.9系は1.9.3やな。
おつ
親クラスの特異メソッドを辿るぐらい?
この手のってクラスメソッドの mixin だったりするから def self.xxx だけ見ててもしかたないけどな。
8 :
てんぷれ :2011/12/03(土) 05:52:39.41
Ruby on Rails の話題は WebProg 板の Rails スレでどうぞ そもそもここには Rails を日常的に使っている人はほとんどいませんので、聞くだけ無駄です
>>5 親クラスの特異メソッド定義を探すか、
include してるクラスの中で extend して特異メソッド定義してる部分を探す
>>8 対象コードはRailsかもしれんが、質問内容はRubyそのものだろう。
なんでそんなに嫌うのかわからん。
>>5 ActiveDecorator::Railtie.method(:initializer).source_location
とかじゃダメかい?
っと思ったら何故かMethod#source_locationがリファレンスにない。。。
13 :
5 :2011/12/03(土) 12:54:56.30
皆さんありがとうございます。 定義されていそうなところを順に探していくのが一番みたいですね。 ただ、ソースコードを読むたびにこういう探索をしていくのは結構疲れそうですが、 読み続けていけば慣れたりするものなのでしょうか? または、読みに徹するときだけはIDEなどを使う、という方もいるのでしょうか?
なんてかいてあるんですか?
16 :
5 :2011/12/03(土) 13:36:50.88
>>14 答えられない無能なら黙ってたほうがいいですよ。
17 :
5 :2011/12/03(土) 13:39:46.26
ゆとり(笑)
おお・・・source_location いいなこれ。
>>13 慣れじゃないでしょうかね。
あまりにでっかいのを読み解く時はローテクだけどメモとりながらやったりしてます。
21 :
5 :2011/12/03(土) 15:28:12.13
>>20 なるほど、読み進めているときに図を書いたりするとわかりやすくなりそうですね。
END{ gets if 例外が発生して異常終了していたら } ってコード書けますか? begin main rescue gets end と書かず済むなら前者で済ませたいんですが
>>22 答えは知らない。
そもそも例外処理が例外が発生していたらなので、begin rescue使うといいと思うよ。
require "tk" を実行すると C:/Program Files (x86)/ruby-1.8/lib/ruby/1.8/i386-mswin32/tcltklib.so: tcltklib: fail to open tcl_dll (LoadError) と出るんですがどうすればいいのか・・ tcltklib.soはありますし windows ActiveScriptRubyでいれました。 ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mswin32]
>>22 まともに動くかどうかはわからないけど
END { gets if $! }
>>24 rubyでtkを使うには別途tcl/tk本体をインストールせんといかんのですよ
何をインストールすればいいのかはよく知らんのでググってくだっせ
ていうかEND使ってる人5年ぶりくらいに見た
-n や -p 辺りのオプション使うとそれなりにお世話になるよ だからワンライナーではしばしば使うね 逆にワンライナー使わないとなると、使う場面はかなり限られるな…
Rubyはデストラクタの書けないうんこ言語だからファイナライズ処理で使わざるを得ない
>>28 open(path) {|file| ... }
みたいな感じで、上手くブロックに出来ない?
どうしても解放しなきゃいけないリソースは rescue/ensure でなんとかしろってことなんだよな。 もっともだと思うけど大域的にやらないと辛いケースもあるからなぁ・・
>>30 大外にrescue/ensureってのはどうよ
Rubyに将来はありますか?
言語選びに将来性なんて気にしてる暇あったら ちゃっちゃか覚えて使い捨てればいいとおもう。 一つの言語で食っていけるのどかな時代はとっくに終焉を迎えました。
C言語はまだしばらく食っていけそうな気がするけどね
一番最後の実装はCってケースばっかりだよな。 でもそういう人たちは多分C言語で食べてるっていうより実装する環境の限定知識で食ってる気がする。
Cしか(開発環境が)存在しない環境でCを使う、という場合だな Cさえ使えればどこでもCでオッケー、というようには今はなってない
この数式でsyntax error がでるのはなぜ? zz=(xx1-xx2)**2+(yy1-yy2)**2
プラスが全角だから
39 :
デフォルトの名無しさん :2011/12/04(日) 12:24:33.24
ついでに紹介 Math.hypot(xx1-xx2, yy1-yy2) こいつから返ってくるのは平方根だけど。
>>38 マジそれだった!
心の底から感謝。一晩悩んだ。
マジかよww
RubyとJavaではどちらの方が将来性ありますか? それと両者はどこで棲み分けているんですか?
Rubyは重い上に互換性が低く、また組み込みやモバイルには使えません。 Rubyは規模の小さいデモ作成に使われています。
Rubyはデスクトップアプリの作成にも向いていません。
まためんどくさい流れになってるな。
それだと(?<=),(?>)など高度な正規表現をもつ他の言語やJavaと比べてRubyは何が優位なんですか? Rubyはやっぱりただのおもちゃ言語だったんですか?
>>42 棲み分けもなにも、そもそも現時点で用途も利用者も全く別
仕事したいならJava覚えりゃいいんじゃね
うんそうだからJavaスレに帰ろうな。
JavaではRubyよりもScalaの方が将来性があるからとよく勧誘されるんですが、RubyやJRubyは言語としてもプラットフォームとしてももう未来はなく終わったんですか? それならやっぱり未来はHTML5ですよね?
なんでそこでHTML5が出てくるのかわからないけど 多分そうだからHTML5の勉強に戻ろうな。
それだと(?<=),(?>)など高度な正規表現をもつ他の言語やJavaと比べてRubyは何が優位なんですか?
? Rubyは戻り読み使えるよ?
だから他と比べて優位なところのないカス言語なんだから こんなところで油売ってないでもとの生息地にかえったらいいと思うよ。
すでに何かを習得済みな人にとって 習得済みであることが何よりの優位な点
では、RubyとJavaでは言語スペック上動的・静的言語の違いがありますが実際の利用シーンでは両者はどこで棲み分けがあるんですか?
みんなJava使ってるしJavaの方が将来性があるってのがみんなの相違だから 早く Java7 の勉強をはじめるんだ
Java7ってそんなに変わってないから 勉強するってほどもないと思うけど。 Rubyはいつも頑張ってるらしいね。 また互換性なくなっちゃったらしいし。
>>58 1.9からは$KCODEとか日本語の扱いがさらに大変なので、1.9は1.8とは違う別プラットと考えた方がいいですよ
ああほんとJavaは最高だよ。
Javaと違ってRubyはそもそも互換性など想定してない
本当にJavaに過去との互換性があるならバージョン固定なんてしなくてもいい Javaを本当に使っている人に互換性の話をすると殴られるぞ
一体何を言わせたいのかわからないけどJavaスレで聞いたらいいと思うよ。
住み分けなんてない 下のどれか 1.使いたい人が使ってるだけ 2.以前から使ってるから使い続けさせられてるだけ 3.誰か個人によるプッシュによりその言語を使うことになってるだけ
Javaに比べてRubyはリテラルが豊富で文法も複雑となっていてユーザー定義構文(defでの&block引数など)も簡単に作れるので複雑さは波大帝じゃありません。
文法はJavaよりRubyのほうが複雑だね。 その分、実際に書くプログラムではJavaよりRubyのほうが圧倒的に簡潔に書ける。 Javaは簡単なことが簡単に書けなさすぎる。
>>66 Javaは、本来なら単純な文法のはずだったのに、Genericsを導入したせいで一気に難解な言語になってしまった。
今となっては、Javaは十分複雑な言語。Rubyより簡単とはいえない。
ttp://www.infoq.com/jp/news/2009/07/scala-replace-javaより :
> Javaはとんでもなく複雑な言語です(仕様書は600ページもありますし,Javaのgenerics を本当に理解できている人はいるのでしょうか?)。
> オートボクシング(に隠されたNullPointerException),基本型,コレクションではない時代遅れの配列,文字列/テキスト/バッファ/コレクション/配列に対するポリモーフィズムの全般的欠如,データ構造体やbean プロパティを扱うときのこの上なく冗長な構文,など。
> しかもいまだに(JDK7でさえも)closureが使えないので,新しいカスタムAPIを持ったフレームワークを利用しないことには,くだらない try/catch/finally でいっぱいになってしまいます。
> まだあります。Javaには型推論も用意されているというのに,プログラム入力の省略化や可読性向上にそれを役立てることさえさせてくれないのです。
ttp://www.infoq.com/jp/news/2008/05/JSR-308 より引用すると、
> あらゆる言語は複雑さの予算(source) を持ちます(訳注: ここで言う「予算」とは、メリットとデメリットのバランスをよく検討してから新しい機能を導入すべき、と言うこと)。
> JavaはそれをJava 5におけるジェネリクスで吹き飛ばしてしまいました。
> さあ、このコードをもう一度まじめに見直してみましょう。
> @NotEmpty List<@NonNull String> strings = new ArrayList<@NonNull String>()>
...
> Java言語にとっては考えうる限り最悪な時期に、これらの変更がもたらされます。コミュニティは本当に、本当に動的言語にエキサイトしているのです。
> このねじくれたコードの代わりに、単にこのように書くことができるのです。
> var strings = ["one", "two"];
1.5のジャバが複雑というならシープラプラなんてのは人間の認知能力のリミットをはるかに越えてる
ちなみにJavaの後継と期待されたScalaも、複雑すぎるという批判がある。
ttp://www.infoq.com/jp/news/2011/11/scala-ejb2 > 氏はScalaの型システムが複雑になりすぎていると指摘している。これは、Steve Yegge氏の見解と同じだ。
...
> 氏はScalaの静的型付けは静的型付けの評判を落としていると主張する。
...
> Scalaは進化の過程で何度も後方互換性を破棄しているので(これからも後方互換性が保証されるかどうかわからない)、実用に耐えないのではないかと指摘する。
ttp://d.hatena.ne.jp/karasuyamatengu/20111122/1321978693 > EJB2のよう
> ・Javaによる大掛かりなプロジェクトの複雑さを減少させようという試み
> ・裏目にでて複雑さを増加させてしまった
> ・その複雑さをドキュメント、「best practices」、ツールなどで克服しようとする
> ・ScalaにはEJB2を最初に見たときと同じような「駄目なテクノロジー」の感触がある
> ・アーキテクチャをover-engineeringしてしまった結果
実際人間の扱う範囲を超えちゃってると思うよC++は
C++ のテンプレートはちょっと頭おかしいと思う。
RubyとJavaでは将来それぞれどういう利用シーンや未来を描くプラットフォームがあるんですか? JavaではRubyよりもScalaの方が将来性があるからとよく勧誘されるんですが、RubyやJRubyは言語としてもプラットフォームとしてももう未来はなく終わったんですか?
はいそうです。 未来はなく終わりましたので違う言語を探しに旅立ってくださいね。
全くもってその通りです 議論の余地はありません
俺、今からRubyを学ぼうとしてるんだけど、 Rubyはもう終わった言語、とか言われるとやる気なくすww
>>72 越えてるよね
テキストエディタとコンパイラとリンカとデバッガでC++プログラムを通常通りに作り続けられる人なんて地球に何人いるやら
>>79 > テキストエディタとコンパイラとリンカとデバッガで
そんなの。コンピュータの力を借りれば簡単に超えられるよ。
>>77 Java信者の必死な工作を信じるとは、なんと純真な子であろうか。
もしrubyをやりたいならwindowsじゃなくてlinuxにしとけ それでもwindowsでやりたいいなら選択肢はrubyは捨ててjava,c#かもしくはie9 browser html5 (web prog)しかない
途中爆発的に伸びてるのはRailsが流行っただけじゃないのか。 Ruby自体の需要は今も昔も大したことないよ。 将来性とか気にする人が使う言語じゃないからさっさとお帰り。
そっか、Javaはそんなことないんですね。
rubyのapidocが非常に使いづらいんですが、rubyのオハコとも言えるrailsや何やらのウェッブ・サービシーズ・テックノロジーを使って利便性を向上しないんですか? またはそのようなキラーアプリが、rubyの世界やgemsからも未だに出てこないのは何でですか?
自演、連投 ヒマなんだな
実はRubyで書かれたbotとかじゃね?
Java信者は今、生き残りに必死なの。だから大目に見てあげて。
Javaの未来、RubyとJavaScriptの台頭
ttp://www.publickey1.jp/blog/11/javarubyjavascript.html > オープンソースによるJavaのフレームワークである「Seasar2」の作者にして、著名なJavaプログラマのひとりとして知られるひがやすを氏が「Javaに未来はないかなと。
> (略)個人的には少しずつJavaから離れていっています。」という発言をパネルディスカッションでしました。
...
> クライアントでの存在感が薄れて行くにつれ、Javaを最初に学ぶ言語とする若いn開発者は減少するだろう
> そして結論は、Javaはエンタープライズ市場では引き続きうまくいくが、そこに限定されるだろいう、というもの。
Rubyなんて何かの弾みで「習得しちゃった」人が趣味で使う言語なので、 他の言語と比べてあれこれ悩んでるようなRuby未習得者がわざわざ選ぶようなメリットは特にないれす。 Java厨もその自演と見られる自称今からRubyを学ぼうとしてる人もさようなら、他の流行りの言語を勉強しましょう。
「ルビーはさぁ、もうオワコンだよね〜」っていう話し声が聞こえたのでスっとんできました!!
>>91 せめてJavaが今の1/10にシェアが減るか
Rubyが今の10倍にシェアが増えてからにしなよ。
大手のJava様の信者がどうして零細もいいとこの、しかも特に競合もしていないRubyのスレで暴れてるのかわからん。 Rubyを敵視しなきゃいけないほど最近のJavaって落ちてるの?
いえ、他のスレでRuby信者が暴れていたので 代わりにこっちに来ただけです。 大手のJavaと零細のRubyってのはそのとおりですよ。 だからってここであそんじゃいけないってことにならないでしょ?
>>96 つまりお前はその荒らしと目糞鼻糞なことをここでやってるワケか
ほんとはRubyとかじゃなく、PHPとかがいいんだろうな。
Ruby信者の一人がよそで暴れてたからからRubyスレで暴れるとか小学生並だな。
ボット以下だな……
>>95 いや逆
ここ数年のうちにjavaではjvm言語が数多く出てきて困ってるんだけど、日本人が使うならjrubyに収束しないかなって思うしそんなrubyに期待してる。
apidocをもっと洗練されてものに金かけて整備して、日本語翻訳もそれなりに充実させれば、java系のサーバやシステム・デザパタを熟知したjvm言語難民がrubyコミニティーに押し寄せてくると思う。
>>99 Rubyスレで暴れたいので、自分で Ruby 信者のフリして他のスレで暴れておいた。
別にそんなの押しかけてこなくていいし。
これが反日マスコミの編集による矮小化 176 :七つの海の名無しさん:2011/11/17(木) 21:57:56.45 ID:gClQt5ed 【重要】 ブータン国王の演説の報道は、重要な部分がことごとく反日マスコミにカットされて報道されています 「世界史において、かくも傑出し、重要性を持つ機関である日本国、(その)国会の中で、」 →★全部カット 「ブータン国民は、常に、日本に、強い、愛着の心を持ち、何十年もの間、偉大な日本の成功を →★全部カット 心情的に分かち合ってきました。」 「日本は、当時外国の領地(植民地)であったアジアに、自信とその進むべき道への自覚をもたらし 以降、日本のあとに続いて世界経済の最前線に躍り出た数多くの(アジアの)国々に希望を与えてきました」 →★全部カット 「日本は、過去においても、現代においても、世界のリーダーであり続けます」 「このグローバル化した世界において、日本は、技術と革新の力、勤勉さと責務、強固な伝統的な価値における模範 であり、これまで以上にリーダーにふさわしいのです。」 →★全部カット 「世界は、常に、日本のことを、大変な名誉と誇り、そして規律を重んじる国民、歴史に裏打ちされた誇り高き伝統を持つ国民、 不屈の精神、断固たる決意、そして秀でることに願望を持って、何事にも取り組む国民、知行合一、兄弟愛や友人、 ゆるぎない強さと気丈さを併せ持つ国民、であると認識してまいりました」 →★全部カット 「他の国であれば、国家を打ちのめし、国家を打ち砕き、無秩序、大混乱、そして悲嘆をもたらしたであろう事態に 日本国民の皆様は、最悪の状況下でさえ、静かな尊厳、自信、規律、ここの強さを以って、対処されました」 →★全部カット 他にもカットシーンがたくさんあるので、ブータン国王の演説 でyoutube検索してください
>>105 ここはjavaスレじゃないからちゃんとは説明しないけど、javaは静的言語でコンパイルが必要でruby,jsは動的言語だから両者はまったく競合せず、指摘の不安も生じないし、両者プラットの根本的な違いによって議論してみたらなんでもなかったという程度で終わる。
>>106 あれだけ威勢良かったJava信者、いきなりトーンダウンww
ひがやすをのJavaオワコン宣言は、Java信者には手痛い一撃だったようだwww
次回はScala信者によるRubyバッシングをお楽しみ下さい
自演うざっ
>>107 毎日毎日ウンコするしか能がないゆとりと違って暇じゃないんだと思うよ
いままでメモ帳で簡単なプログラムを書いていたんだけど、なんかいいコンソールアプリない? バージョンは1.9.3 スレチだったらスマソ
["末尾にスペース入れるか入れないか、どちらがフォーマルですか?"].map{|s| s.strip}.map{|s| s.strip }
{ |i| i.to_s } も {|i| i.to_s} も {|i| i.to_s } もどれもよく見かけるし 1ソース内で統一とれてればいいのでは。 特にどれが一番といった公式見解もなかったはず。
わかりました。ありがとうございます。
>>110 何が聞きたいのかよくわからんが
Windows用テキストエディタなら秀丸とかサクラエディタとかでいいんじゃないか
プログラムの練習として作るのに手頃なコンソールアプリケーションはないかと聞いているのかもしれない。
open('mytext', 'r').map{|line| line.chomp!} と同等の結果を超高速に得られる裏技無いですか
117 :
デフォルトの名無しさん :2011/12/05(月) 22:12:58.22
ファイルディスクリプタ開きっぱなところも同等であってほしいんだろうか。
初心者なんですけど、勉強を始めるのにいい本はありますか? 今まで勉強したことあるのは、C、C++、Perlです。
>>110 です。
すいません、説明不足でした。
おおむね
>>115 さんの考えている通りです。
なんかいろいろあったので、どれがいいのかと思いまして。
$ ruby cat.rb hello.c # hello.cのなかみを表示 #include <stdio.h> int main(void) { printf("Hello, world!\n"); } $ ruby grep.rb void hello.c # hello.cからvoidを含む行を抜きだす int main(void) { $ こんなcat.rbとgrep.rbを書きなさい 便利な機能を追加した人には加点します
cat.rb system("cat #{ARGV.join(' ')}") grep.rb system("grep #{ARGV.join(' ')}")
>>119 自分で必要なプログラムだけを作れ
貯め込んだ知識の量を計りたいのならそれは学校の勉強でやれ
[:hoge]とか(:hoge => true)のようなコードがあると思うんですが このセミコロンが付いてるやつは何なんですか? とりあえず名称だけ教えてもらえれば自分でググるのでお願いします
セミコロンじゃなくてコロンね。シンボルという Symbolクラスが対応する
Symbolを知らないレベルの人はテンプレの書籍を一冊は読んだ方がいい
英語版のリファレンス本は出版間もないのに全文無料公開してるようなのもありますが、日本語版では何で無料公開してないんですか?
127 :
デフォルトの名無しさん :2011/12/06(火) 04:25:21.31
>>126 それが真なのなら(具体例思いつかないんだが)、市場規模の違いじゃない?
昔の電車男のようにブログやコミニティー発の無料公開資料を編纂し直して有料出版するという市場(ビジネスモデル)も小規模ながら既に成功しています つまり旧式な出版業界に依存した問屋制度(印刷出版業界)やルビー言語のような市場規模や言語技術本需要云々ではなく、本を有料出版してその版権収益を期待するという考え自体がもう成立していないじゃないですか?
rubyに限った話じゃないし初心者スレで出す話題でもないね 議論したいなら場所を選んだら?
確かにそうですね 日本のルビー・コミニティーは、なぜかコミニティーの上手く利用して金儲けしようという日本人的発想がところどころにあるようですが、気のせいなのかもしれません
コミニティーを上手く利用して上手く金儲けしようという
るびきちのこと悪くいうな!
コミュニティをうまく利用して金儲けに成功しているのは、オライリー。 コミュニティ・ブラックダウンの成果を隠して利用して金儲けに使おうとして、失敗したのがサン。
下記のようなコードを実行すると、子プロセスはすぐ kill されるので、 wait は 3 秒待たずにすぐ完了するものと思いましたが、 実際には sleep 3 が実行されて wait が 3 秒待たされてしまいます。 コメントアウトしている sleep 0.1 を入れると kill されて wait はすぐ返ります。 何故そうなるか原因はわかりますでしょうか? 環境やバージョンによって再現したりしなかったりするようなのですが、 ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-freebsd8] ではそうなります。 また、このコードではダメですが、より複雑なコードでは下記でも同様になりました。 ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-freebsd8] pid = fork { exec("ruby", "-e", "sleep 3") } #sleep 0.1 Process.kill(:TERM, pid) Process.waitpid(pid)
>>133 グーグルは自ら行った著作権侵害行為について未だに謝罪せず賠償もしてないですよね。
サン・オラクルのジャバ侵害訴訟はもちろん日本の執筆者全員のみならず出版印刷業界や頒布権権利者に対して。
β版商法で中途半端なサービス提供をよしとするグーグルの金儲けのやり方は、グーグルの無料サービス利用者やコミニティーに認められ、金儲けのビジネスモデルとしても成功しているといえるのでしょうか?
136 :
デフォルトの名無しさん :2011/12/06(火) 17:54:20.20
金儲け!金儲け! 掘れば掘るほどザックザクや!!
1.9.3のWindows版バイナリがあったんで使ってたんだが File.foreach(...){... ==>2秒 ite=File.foreach(...) ite.each{... ==>25秒 バグだろこれ
ループ系のイテレータは下手にメソッドチェーンなんかしちゃうとすぐに遅くなるから 処理速度を気にしたら負けだ。
でも1.9.2だとどっちも2秒だぞ
んじゃバグだろ 報告してやれ
ruby触るときエロ画像DLツールとしか使ってない 誰かRubyで解ける問題集みたいなの教えてくれないか このままだと俺のコードがイカくさくなるばかりだよ
どっかの車輪の再生産して悦になるよりエロ画像DLツールの方が幸せになる人増えて生産的だろ。 そのまま頑張ってア動ブみたいなサイトを作ってくれ。お金も儲かるだろうし。
>>137 require 'benchmark'
filename = 'C:\usr\local\bin\dict\migemo-dict.orig' #3MBで16万行ほどのテキストファイル
Benchmark.bm do |bm|
bm.report do
i = 0
File.foreach(filename){i += 1}
end
bm.report do
i = 0
ite=File.foreach(filename)
ite.each{i += 1}
end
end
で、
ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-mingw32]
user system total real
0.687000 0.000000 0.687000 ( 0.687500)
0.657000 0.000000 0.657000 ( 0.671875)
おなじなんだが……
ちなみに、素の1.9.3p0はWindowsで書き込みが非常に遅くなる不具合があります テキストモード書き込みで改行がLFだけになる不具合もあります require 'tempfile' require 'benchmark' ITS = 100000 Benchmark.bm do |bm| bm.report do Tempfile.open('xx'){|f| ITS.times{|i| f.puts i}} end end ruby 1.9.2p290 mingw32で 0.45秒 素のRuby 1.9.3p0 mingw32 で3.52秒 1.9.3p0に修正パッチ当てたので 1.52秒 駄目じゃん1.9.2のスピードに戻って無いじゃん 1.9.2と比べたこと無かったから知らなかったよ……orz
嘘吐き朝鮮、中国人がやってる報道機関 朝鮮人犯罪があまり報道されない理由 韓国文化放送(MBC) 〒135-0091 東京都港区台場2-4-8 18F フジテレビジョン 、、 〒137-8088 東京都港区台場2-4-8 韓国聯合TVNEWS(YTN) 〒105-0000 東京都港区赤坂5-3-6 TBSテレビ 、 、、 .〒107-8006 東京都港区赤坂5-3-6 大韓毎日 、、、、、、、、、、、、 〒108-0075 東京都港区港南2-3-13 4F 東京新聞(中日新聞社東京本社) 〒108-8010 東京都港区港南2-3-13 京郷新聞 、、、、、、〒100-0004 東京都千代田区大手町1-7-2 産経新聞東京本社 〒100-8077 東京都千代田区大手町1-7-2 (サンケイスポーツ、夕刊フジ、日本工業新聞社) 朝鮮日報 、、、 〒100-0003 東京都千代田区一ツ橋1-1 4F 毎日新聞東京本社 〒100-8051 東京都千代田区一ツ橋1-1-1 韓国日報 、、、、 〒100-0004 東京都千代田区大手町1-7-1 8F 読売新聞東京本社 〒100-8055 東京都千代田区大手町1-7-1 東亜日報 、、、 〒104-0045 東京都中央区築地5-3-2 朝日新聞東京本社 〒104-8011 東京都中央区築地5-3-2(AFP、NYT) 韓国放送公社(KBS) 〒150-0041 東京都渋谷区神南2-2-1NHK東館710-C NHK放送センター、 〒150-8001 東京都渋谷区神南2-2-1
どうもforeachでバイナリモードを指定してもテキストモードで読まれてるっぽい File.foreach(filename, {mode:"rb", encoding:"Windows-31J"})ってすればいける。たぶん 読み込んだ改行コード表示させてみたら、上は"\r\n"、下は"\n"になってた。
>>146 速度を計りたかったんで大きいファイルがいいかなと選んだ
migemo-dict.origがLF改行だった……
CRLF改行のファイルで試すと
ruby 1.9.3p0 mingw32で
IO.foreach(filename,mode:'rb'){|l| p l;break} #改行がCR LF
IO.foreach(filename,mode:'rb').each{|l| p l;break} #改行が LFだけ
と、たしかに違ってる
ruby 1.9.2p290 mingw32だと
どちらもCR LFだった
あと、ruby 1.9.3p0 mingw32で
IO.foreach(filename,binmode:true){|l| p l;break}
ってしたらエラーになった
1.9.2だと通るんだけどな
あいかわらずハッシュオプションはよくわからん
ソートの仕組みがよくわかりません。 以下の出力結果はどのように比較が行われているのか解説していただけませんか。 [1,2,3,4,5].sort{|x, y| puts x.to_s + y.to_s x <=> y } #=> 13 35 23 43 45 12
説明不足で語弊があったらすいません。 ソートの本来の使い方はわかるのですが、仕組みがよくわからないから知りたいという意図です。
puts で書いてるせいでわけがわからないことになってるな [1,2,3,4,5].sort{|x, y| p [x, y] x <=> y } [1, 3] [3, 5] [2, 3] [4, 3] [4, 5] [1, 2] クイックソートでよかったはず
この並び……クイックソート?!
くっ!……遅れをとったか……
153 :
デフォルトの名無しさん :2011/12/07(水) 08:38:50.12
自分でアルゴリズム実装してみるといいんだけどね。
ENVがEnvではなくENVなのはなぜなんでしょうか。 たまたま実装面でクラスを作るまでもないからなんでしょうか。 それともこういう機能、性質をライブラリは字面がENVでなければならないんでしょうか。 似たような機能を自分でも作ろうと思っていて参考にしたいので教えてください。
>>155 ハッシュの入った「定数」だからじゃね?まあ一番の理由は「Perl で %ENV だったから」なんだろうけど。
あと環境変数って、クラスには任せにくいよ。出来なくはないけど、作るのも使うのもメンド臭くなる。
環境変数ってユーザが勝手に作ったりしていいものだからな。決め打ちの要素しかないならクラスでもいいんだろうが。
157 :
デフォルトの名無しさん :2011/12/08(木) 11:00:11.69
サーバのセットアップをしているのですが、同じアーキテクチャ(64bit)、 同じyumリポジトリを使っているのに gemsのインストール先が、 /usr/lib64/ruby/gems と /usr/lib/ruby/gems/ と違ってしまいます。 パッケージは同じなのにです。 gemsのインストール先を明示的にlib64に指定するにはどうすればいいのでしょうか?
なにこの「こんな奴がサーバのセットアップするなんて嫌だ」編 (複数台の)サーバのセットアップをしているのですが、(サーバ本体は)同じアーキテクチャ(64bit)、 (インストールされるrubyとrubygemsのRPMパッケージは)同じyumリポジトリを使っている(ので同じな)のに (gem install でインストールされる)gems(パッケージ)のインストール先が、 /usr/lib64/ruby/gems と(いうインストール先のサーバと) /usr/lib/ruby/gems/ と(いうインストール先のサーバというように、サーバごとに)違ってしまいます。 (インストールされているrubyとrubygemsのRPM)パッケージは同じなのにです。 (gem install でインストールされる)gemsのインストール先を明示的にlib64に指定するにはどうすればいいのでしょうか? こう? 超一般論として、デフォルトの gem install のパスはその gem コマンドを起動したのに使われる ruby のパスやアーキテクチャに依存する 同じ ruby だと思ってたが実際は違ったに一票 本来ありえないので原因究明をしてクリーンな状態にしたほうがいい説にまとめて200票くらい入れておくが、 現状の爆弾抱えた不安定な状態でもいいのなら gem install を使用するユーザーの ~/.gemrc に希望のパスを書けば動作はすると思う
>>155 環境変数は、プロセス内で一つしか存在し得ない特別なオブジェクトだからじゃないかな。
リファレンスマニュアルの定数や特殊変数のリストをじっと眺めてみれば、
自分の作ろうとする機能をどっちにすれば良いか見えてくるかも。
E
=> 2.71828182845905
irb で、 require "<TAB> でライブラリのファイル名を補完してくれないかな?
WindowsでRubyってほんとイバラの道だわ せめて組み込みライブラリくらいはまともに使えるようになってほしいよ
基本的にだいたい動くはずだけど 動作しないのはtkがインストールされていないときのTkとか Windowsが提供してるAPIがへぼいとか そんなのくらいしかないはず
まあ「まともに使える」とはなんぞやという話に
Windowsだとファイルシステム周りがまともに動かないんだよな 最近だと1.9.3でテキストモードが異常なほど遅いとか IO.foreachでバイナリモード指定が無視されるとか FileUtilsで日本語を含むファイル名が扱えないとか
1.8.7 から 1.9.2 にあげたら net/http でこけるようになったんだけど、 原因がわかる方いらっしゃいませんか??
マインドシーカー未クリアの俺にはわからない
169 :
デフォルトの名無しさん :2011/12/08(木) 21:27:32.06
「Perlで有名な小飼弾に暴言を吐いたキチガイw OSSコミュニティから物凄いパッシングw」
http://blog.livedoor.jp/dankogai/archives/51733482.html 北畠徹也氏が代表の「テラ・インターナショナル」がPerlを勝手に商標登録
>>この北畠って人は、ツイッターとかでも自殺するって言って話題になったり
よく分からないNPOか何かに募金をしてくれってメールを数万人規模のMLに流したり
それらは実はチョットした技術的ミスだって釈明してたりする人らしいね
Tetsuya_K 北畠徹也
@dankogai の家に電話したら、「小飼弾は死にました」らしい。ざまみろ。ざまみろ。というか、死んだ方が社会にとって幸せ。以上。# どうでもいいが、jcode.plなんて簡単につくれるじゃろ。あんなので調子に乗るアホもどうかしてるぜ。
Tetsuya_K 北畠徹也
I compared my @klout with @dankogai, how does your @klout compare? klout.com/user/dankogai/… @Tetsuya_K に比べたら全く大したことねーな。大口叩く愚か者が。
コメントの一覧
「みんなおもしろいおもしろいいってるけど北畠さん完全にかわいそうな精神病の患者ですよね」
「コメント欄が病的で怖い。人格が分裂してる?」
「本当に何がしたかったんだろう・・・」
「無事取り消されたそうで。本当によかった。」
>>167 ですよね…すみません
ソースはこんな感じで、何の変哲もないと思うのですが、
Net::HTTP.version_1_2
req = Net::
HTTP::Get.new (url)
req.basic_auth(email, password)
response = Net::HTTP.new(server, 80).start {|http| http.request(req) }
ログ見たら
[error] ~~net/http.rb: in 'initialize'
[error] getaddrinfo: Name or Service not known
[error] Socket Error
[error] ~~net/http.rb: in 'open'
[error] ~~net/http.rb: in 'block in connect'
といった感じでエラーが出ていました
1.8.7 のときはきちんと動いていたのですが…
「ログ見たら」?
Net::HTTP.version_1_2 は Ruby1.6 において Ruby1.8 風の動作にするためのメソッドであって、 Ruby1.8 と Ruby1.9(と、Ruby2.0)では書く意味がない(net/http のバージョンがそもそも1.2) おまじないとか馬鹿なことを言ってるからこうなる server とか書いてるので、ユーザー入力またはテキスト入力の結果が素通しになってて、 エンコーディングの関係で変な値が渡ってしまってホスト名として解釈できないことになってるに一票
>>171 dayone
なんだろね
レンタルサーバかなにかかな
>>171 >>173 すみません
(Apache の)ログ見たら
です
>>172 こちらもすみません
server → host ですね
この部分は実際は決め打ちなので問題ないような気がします
説明不足ばかりで申し訳ありません
Resolv.getaddress(サーバ名)とかはちゃんと動くの?
>>176 そ れ で し た !
申し訳ない…ありがとうございます!!
結局1.9のコンパイル時にリゾルバとのリンクがうまくいってなかったとかそういうことなのかな
ruby1.9.2について質問させて頂きます Windows用のrubyプログラムに関して Dir::globで、全角文字を含むディレクトリ・ファイル名を取得する方法はありますでしょうか? やりたいことは ・全角文字を含むディレクトリ内のファイル一覧を取得する ・ワイルドカード、全角文字を含むファイルをコピーする これが実現できれば、Dir::globでなくても構いません ご教授くださると嬉しく思います
`dir /b c:\\yourfolder\\*`.split("\n"){|f| puts f} ド安定
>>180 ありがとうございます
ただちょっとうまくいかなくて・・・
rubyのウィンドウアプリケーションから外部コマンドを使って実現させる場合
コマンドプロンプトを開かずに処理させる方法か
バッチファイルを実行させる方法がありましたら、ご教授ください
現在試した方法としては
def file_copy(src, dect)
command = "copy \"#{src}\" \"#{dect}\"".encode("Shift_JIS", "UTF-8")
`#{command}`
end
を、繰り返し行うと言うやり方でやっていたのですが
外部コマンドが呼び出される度にコマンドプロンプトが立ち上がって見た目上よろしくなくて・・・
もうひとつ考えたやり方として
def make_command(command, src, dect)
cmd = "#{command} \"#{src}\" \"#{dect}\""
return cmd
end
を繰り返して配列を作り、配列をファイルに1行ずつ出力してバッチファイルを作ったところ
`copy_files.bat`
ではうまくいきませんでした
irb(main):001:0> Class.method(:object_id).object_id => 343197370 irb(main):002:0> Class.method(:object_id).object_id => 339922490 method メソッドが返す Method オブジェクトは毎回違うものになるようなのですが、 そういうもんなんでしょうか? メソッドは (基本的に) 唯一不変なのかなと思ったので何か変な気がしました。 それとも、この確認方法が間違ってますか?
そういうもんです Ruby ではメソッドはオブジェクトではありません method メソッドは、自分が呼ばれたときに対象のメソッド(とレシーバ)の現在の状態を Method オブジェクトで包んで返します このへん Proc とはちょっと違うですよ
>>183 ありがとうございます。
eval.c も見てみましたが、確かに言われたような仕組みになっているようでした。
仮想的に Proc のように振る舞うオブジェクトって感じみたいですね。
UnboundMethodオブジェクトも毎回違うね p Class.instance_method(:object_id).object_id
ほんとですね。また eval.c を見てみましたが、概ね同じ仕組みのようですね。
>>179 Dir.globの引数で日本語が通らない不具合は1.9.3で修正されたようです
Dir.foreach ではどうですか?
サブフォルダー内まで列挙する場合は自分で巡回しないと駄目ですが
あと、1.9.2だとユニコードファイル名が取れないかもしれませんが
ファイルコピーするならライブラリのFileUtils.copyでいいような気がしますが
タイムスタンプもコピーしようとしてFileUtils.copy(src,dst, preserve:true) すると
File.chmodが日本語ファイル名対応してない不具合にぶち当たり(1.9.3でも未修正)
そしてUTF-8でパスを渡すととエラーが出る(1.9.3でも)
どうもFile.basenameがUTF-8にちゃんと対応してない不具合のよう
Windows+Ruby+日本語ファイル名はイバラ道だなぁ
「楽しいRuby」分厚いな。 これ、読むのに何日かかるんだろう??
工作員達の正体(韓流AKBと政治ゲーム)
180 名前:115x125x150x194.ap115.ftth.ucom.ne.jp[] 投稿日:2011/04/29(金) 13:58:50.19 0
このスレ見てハロカスヲタはホント閉鎖的だなって思うわ
これだからハロカスって言わるんだよカス ハロ=HelloProject(モーニング娘などが所属)
http://hato.2ch.net/test/read.cgi/morningcoffee/1303996886/180 756 名前:115x125x150x194.ap115.ftth.ucom.ne.jp[] 投稿日:2011/04/30(土) 04:27:05.86 0
このスレ見てハロカスヲタはホント閉鎖的だなって思うわ
これだからハロカスって言わるんだよカス
http://hato.2ch.net/test/read.cgi/morningcoffee/1304043385/756 他多数書き込み
Network Information: [ネットワーク情報]
a. [IPネットワークアドレス] 115.125.150.192/29
f. [組織名] 有限会社 クリップ
AKB48 音響、缶バッヂ等製作 有限会社クリップ(代表=日本名を名乗る在日朝鮮人)
→なぜ在日朝鮮人が、わざわざ2chに出向いて必死になってHelloProjectを叩くか。単に商売敵だから?AKBが「ツリ目のエラ張りにしか」売れてないから?
ヒント:*韓国人のみに見られる風土病の存在
*HelloProject→日本人アイドル AKB→整形した○○人←韓流()
そして、"朝鮮人だらけの"マスコミが 捏造AKB ブーム. 捏造韓流 ブームを演出し、ごリ押す目的が見えますか?
検索していろいろなサイトを巡ってみて下さい
ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-mingw32]にて File.basenameがUTF-8対応してない不具合 #encoding:cp932 filename = '/ほげほげ/日本語/サンプルファイル.txt' File.basename(filename) # => "サンプルファイル.txt" File.basename(filename.encode('UTF-8')).encode('cp932') # => "ほげほげ/日本語/サンプルファイル.txt"
ディレクトリセパレーターを見つけるとき C言語で文字を一つ進めるのにWin32APIのCharNextを使ってるので たぶんSJIS決めうちになってしまってる file.cでCharNext使ってるところは全部修正したほうがいいと思われる Windows版だけの不具合だけど
>>193 「Windowsが提供してるAPI」の意味わかってる?
こういうのの場合、誰が頑張るべきなのかはわりと不透明ではある 「マイクロソフトが標準提供してたものが時代錯誤でへちょいんだよ!これが標準動作なの!」でユーザーが納得すればいいんだが、普通はそうはならない
そりゃそうだ。 実際 Android の仕様が一部おかしいところあるんだけど WEBrick なんかはそれ専用のパッチあてられてたりするし。
>>187 ありがとうございます。
早速記事を見てみましたが、・・・すみません、ちょっとわかりませんでした。
fork 〜 exec の間は非同期シグナルセーフ関数しか使えないので、
fork → signal を pending → そのまま exec に突入して signal の処理はされず、
みたいな流れになってるんでしょうかね?
ソースもちゃんと読めていませんです。あとでもうちょっと調べてみます。
そもそもは、Python の subprocess を Ruby に移植しようとしていて、 テストケースを書いてたところでこの問題に当たったのですが、 fork 直後いきなり kill するというのはあまり実際的では無いケースな気がするので、 とりあえずは sleep 0.1 してお茶を濁そうかなという気になっています。 というか、 subprocess についていろいろ調べていたら、 その記事からのリンクにもありますが、 1.9 では Kernel.spawn と Open3 (の拡張) というのがあって、 これって subprocess なんかよりずっとカッチョイイことになっているんですね。 subprocess の移植とか全然これムダじゃないですかカッコワルイ。
日本語でおか
これは失礼いたしました。ひとことで言いますと、 akr GJ!
1.9の文字コード変換で悩んでいます text = "あいうえお".encode("EUC-JP") p text.encode("UTF-8") #=><Encoding:UTF-8> p text #=> "あいうえお" ここまではいいのですが、次のように圧縮→解凍を間にかますと破綻してしまいます file = Zlib::Deflate.deflate("あいうえお".encode("EUC-JP")) file2 = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(file).force_encoding("UTF-8") p file2.encoding #=><Encoding:UTF-8> p file2 #=>"\xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA" なぜ最後のfile2は"あいうえお"で返ってこないのでしょうか?
202 :
201 :2011/12/10(土) 16:57:28.05
自己解決しました file = Zlib::Deflate.deflate("あいうえお".encode("EUC-JP")) file2 = Zlib::Inflate.new(Zlib::MAX_WBITS + 32).inflate(file).force_encoding("UTF-8") p file2.encode!("UTF-8" , "EUC-JP") #これが必要でした p file2 #=>"あいうえお"
民主は反日で論外 自民は谷垣のようなエセ保守が居る限り衰退
204 :
デフォルトの名無しさん :2011/12/10(土) 17:40:19.04
Ruby始めて1日目です。htmlを出力したいのですがエラーになってしまいます #!/usr/local/bin/ruby -Ku require 'cgi' cgi = CGI.new print cgi.header("text/html;charset=utf-8") print << EOF <html><body> Hello </body></html> EOF エラーは syntax error, unexpected '<', expecting $end <html> ^ どこがおかしいのでしょうか?
<<とEOFの間
まあ非常によくあるパターンではある
>>203 自民については自民+公明セットで語るべきではないですか?
208 :
デフォルトの名無しさん :2011/12/11(日) 12:39:15.19
検索エンジンGoogleで「インターネットテレビ 朝鮮総連 少頭劣一族 マイクロソフト社(又は経済産業省等気になる省やインターネットや原発、地震 波動砲)」を検索。 警察と自衛隊の武器は少頭劣一族が奪い、朝鮮に送ったらしい。知能障害以前の頭が悪い家族達。「工作員」の意味を知らない「工作員」家族。
ruby 初心者なんだけど、開発環境は何を使ってる?
以下いつもの罵り合い↓
開発環境ネタって、どこか誘導先になるようなまとめサイトって無いの?
212 :
デフォルトの名無しさん :2011/12/11(日) 17:06:58.90
ポンコツマシン以外はNetbeans一択だね!
>>211 テンプレらしきものも特にないので…
・ いつものエディタとターミナルという普段着でお越し下さい
・ エディタ初めてならRubyスクリプトをを着色してくれる(できればオートインデントの)エディタ好きなの選べ
・ いわゆるIDEはRubyの学習に際しては恐ろしくコスパが悪いのでRubyのためだけに新規導入するのはお勧めしない
こんな感じ
IDEだのエディタ環境だのを既に使って整えている人はそれでRubyを書こうとする(そして、たいてい普通に書ける)のでわざわざスレで聞かない
だもんだからこんな変な回答になる
Pythonあたりだと手持ちのエディタかEclipse+Pydev使っとけで終わるのに いつもgdgdやってるよねここw
オーバーライドしているかつその中で super を使っているメソッドに 何か処理を追加したいときって alias できないですよね? 再定義しかないですか?
ていうか言及が厳密過ぎるんだ
「実際には実環境でスクリプトを実行しないと、どのオブジェクトがどんなものでどんなメソッドが定義されてどんな引数になるかは確定できませんよね?」
という問いにYESと答えてしまう
「つまりRubyにメソッド補完は厳密には無理だということですか? どれもまだ不完全で勧められない?」
という問いにもYESと答えてしまう
>>215 ないっすなー
>>215 質問の意味がよくわかんない
B#hoge(下の方)ではダメ?
class A
def hoge ; p :A_hoge ; end
end
class B < A
def hoge ; super ; p :B_hoge ; end
alias :orig_hoge :hoge
def hoge ; orig_hoge ; p :B_hoge_2 ; end
end
B.new.hoge
B.new.orig_hoge
218 :
215 :2011/12/11(日) 22:31:58.26
あれ、ほんとだ ありがとうございます B#hoge は B#orig_hoge にメソッド名が変わったから、 super の呼出先も A#orig_hoge になるかと思ってました どういう仕組みなんですかね、これ
>>218 > B#hoge は B#orig_hoge にメソッド名が変わったから、
というのは正しくない
alias はその時点での"コピー"を作るんだ
なので hoge はやっぱり hoge だし
再定義した hoge は orig_hoge とは関係ない
eclipseでいいがね
自作ライブラリを作るのに、推奨されるディレクトリ構成やツールってありますか? こうやっとけばインストールや野良 gem の作成が簡単かつ適切に行えるみたいな。 以前は青木さんの setup.rb を使うというのがあったと思いますが、 いまどきはどうするものなのでしょうか?
jeweler を使って lib/ や test/ や gemspec や Rakefile なんかを作ってもらうというのが定番だったんだが 今はどんなもんなんだろう
223 :
デフォルトの名無しさん :2011/12/12(月) 21:03:18.16
bundle gem 作るgemの名前
bundleは一時期恐ろしく重かったな
web用にphpが書ける場合rubyを覚える必要はありますか? cやjavaを覚えたほうがいいですか?
>web用にphpが書ける場合 うん、まあ、そういうこと聞くってことはたぶんまだ「書けてない」んだろうとは思うが… とりあえず見てみるのはRuby以外にしとくのが、PHPとは方向性違いまくるんで健康にいいんじゃね、とは思う とかいうしょうもないレスで浮上
そこですか?phpって主にweb用途の言語ですよ
うんだから他の言語の方がいいよ。森へお帰り。
rubyはwebじゃまったくの役たたずなんですか?
rorしかないじゃん有名なの
webで使えないならrubyはどこで使うのが賢いんですか?
ruby使ってないんだからそんなこと気にする必要ないじゃん
実際にPHP,Ruby両方業務で使いこなしてないと答えられない質問ばっかり
rubyは役に立たないからそのままphp使ったらいいよ。 ちょくちょく来るねこの人.
変にプライド持ってる厨がいるが気にするな
rubyに乗り換えたいんですけど来年以降のrubyはもうダメなんですか?
ダメだから乗り換えなくていいってば。 暇ならよそで遊びなよ。
239 :
226 :2011/12/13(火) 14:04:49.32
自分が質問したせいで荒らしがきたようですね 失礼しました
やっぱりrubyは糞だってことですね?
なんでphp使わないんですか?
Javaじゃダメなんですか?
RoR以外に使い道ないんですか?
RoRって遅いですよね?
CakePHPじゃないとダメなんですか?
あと
>>50
もうテンプレにでも書いとけ Q. XXX を使ってるんですが Ruby も覚えたほうがいいんでしょうか? A. 好きにしろ
荒らしの誘蛾灯になるのも初心者スレの仕事
>>241 実際テンプレには必要だと思う
自分の店放っといて、ライバル店の前で通行人にライバル店の悪口をブツブツ言ってるのが居たなあ。
rubyでclassを使うことが滅多にないんですけど、どういうときに使うのが賢い使い方なんでしょうか?
使わなくて済んでるなら多分何の問題もないです。 いやマジで。
>>244 類似の構造のオブジェクトが沢山欲しい時。
例えば、都市の交差点をネットワーク上のノードと見なして、トラフィック・シミュレーションする、など。
namespaceの使い方を教えてください 簡単なのでいいので
rubyはperl,grepの代わりに使ってる程度なので、動的言語でclassを利用すると賢い使い方だと言うような場面がいまいち湧いてきません。
perlとgrepが並んちゃうぐらいなんだし別に使い方を変えなくてもいいと思いますよ。 ワンライナーとして使うのだって立派な使い道だし。 所詮道具なんだし他に貴方がオブジェクト指向を遺憾なく発揮する場があるならそれで問題ないのでは。
いや、実際はgrepじゃなくてbashなど他多数も使いこなせてますが、動的型付け言語のrubyでclassを利用すると賢い使い方だと言うような場面がいまいち湧いてきません。
だから、別に好きに使ったらいいと思いますよ。 いまいち湧いてこないんだとしたら多分まだ必要になっていないんだと思います。
実際はrubyでclassを使ってる人はそんなに多くないからいっそのこと仕様からclassと継承は削除してもいいんじゃないの。 動的型付けにclassの概念がなくても継承類似の機能の提供は出来るし、ずいぶんすっきりするからインタプリタも作りやすくなる。
そうだね。よかったね。
>>240 phpやJavaの人気にいつまで嫉妬してるんですか?
ここ絶対コミッタ見てるよね
class文のことだったら、本人が直接class文を書いてなくてもclass文を使ったライブラリを使ってる人はいっぱいいるから間接的にclass文を使ってる人は多いよね 「クラス」という概念そのもののことなら、本人が意識しているにせよ、していないにせよ、Rubyでクラスの影響を受けないプログラムなんてのがほとんど存在しないので
みんな優しいな
ふつうの人はそのグラフからPHPのおちぶれっぷりを読みとるんじゃないか?
Ruby,Pythonはもともと流行ってないものが今も流行ってないままって感じだけど、 Perl, Java, PHPは流行らなくなってるのが目に見えてアレ
俺はどっちかっていうと2007年の4〜6月に何があったのかが気になるよ。
>>258-259 webなどのお気軽開発者にアピールできるだけのキラーアプリやキラーモジュールが今のところないだけじゃないですか。
rubyは言語仕様が大きく(特にリテラルの種類が多すぎる)さらに型システム(標準ライブラリ)と言語仕様が密接なので実際はc++より複雑となってしまい、習得するのに時間が掛かり勉強するコストとrubyを使うとはかどることとがつり合いません。
LLなのに全然手軽じゃないね
何度も言うが、お前C++勉強したことないだろ。 あれ黒魔術だぞ?
whyの失踪でもMark Pilgrimの失踪でもないな
そんな面倒な言語のこんな場末のスレで暇つぶししてる時間あるなら もっとためになる時間の使い方してみてはいかが?
Railsのブレイクとかか
Railsのどこがいいのか教えてくれ
>>269 ruby だけじゃないんだよね。他も全ておんなじぐらい跳ね上がってる。
ただのバグくさいな
>>271 全然よくないから今使ってるフレームワークをそのまま使えばいいと思うよ。
>>265 C++は言語とライブラリが疎結合になるように入念に議論して設計してるので、ちゃんと勉強するとC++が目指しているコンセプトや仕様は頭に結構残りますよ。(ただしVC++はのぞく)
仕様書読んだことないんだろうな。
定期的にdisりたいだけの人が出てくるな。しかも日中に。
ruby は一週間とかからず普通に使えるようになったけど c++ は使いこなせる自信がまったくない。
言語仕様が難しいとか言ってる奴は池沼だろ。 C++もRubyも仕様書見れば1時間とかからずコード書けるわ。
>>277 ライブラリの仕様を策定してるときに良いアイディア(アルゴ)が浮かばずに行き詰まっていて、暇つぶしにつぶやいてるだけです
>>279 はいはいすごいね。
ID導入されてないスレはほんとどうしようもないな。
(アルゴ)がなんかじわじわくる
>>280 そんな嘘ついてる暇あったらハロワに通いなよ。
朝日新聞は一時期300人のネット工作員をかかえ、反日工作していた。
捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。
>>866 14時以降に何が起きたんだ
>>866 Domain Information: [ドメイン情報]
a. [ドメイン名] ASAHI-NP.CO.JP
e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ
f. [組織名] 株式会社 朝日新聞社
これが規制されたからじゃねw
−「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」−
これはおそらく週刊誌さえ書けない。
「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ
じわじわ。じわじわ。
C++なんてうんこ言語まだ使ってる人いたんだ・・・
trend覚えたてでうれしくて仕方がないのはわかった。
産総研は平研究員だと年収いくらもらえるんですか?
>>277 実際disってる訳でもないのにそう思ってる奴が沸くよな
お前みたいに
本スレでやれ
最近googleのトレンドを持ちだしてくる奴がネタなのか 本気なのかが分からない。
rubyが役たたずなのは事実だが、disられてると考えるのは被害妄想だろう
まともな会社はrubyを業務に使おうなんて考えないしね。
実際問題速度計測したら色々おっかなくて使えなくなる。 書きやすさ>>速度って言い訳する連中いるけど書きやすさなんてモダンな言語ならどれでも大差ないよ。
日本でも企業スポンサーを多く得られないとrubyは万年冷や飯のままでしょうね
rubyやってますって人と関数言語やってることをどや顔で披露する人ってなんか似てる。
RoRのおまけ言語。そのRoRですら最近はメッキが剥がれつつある。
>>299 産総研の関係者か何かだからじゃないですか?
Rubyは嫌いじゃないんだけどRubyを使っている人が嫌いって人は多そうだ。 というよりスクリプト言語界隈の人って妙に排他的で敵対心が強い気がします。
俺は仕事でRubyも使ったことあるけど Rubyメインでやってる人はPHPに対して敵対心がものすごい強いよ
トムクリスチャンセンがMLに殴りこんできたらRubyも本物
被害妄想と同じでそれはたぶん気のせいです
PHPerはイノセントで他言語に対しても寛容(というかこだわりがあんまりない)のにね。
Rubyは好きだがRails脳の人とはもう二度と関わり合いになりたくない。
オブジェクト指向をどや顔で語る奴も信用ならん rubyにclassなんかいらなかった
>>308 "hoge".upcaseとかできなくなりますがよろしいか
>>310 どうしていつまでもそれにこだわるのか逆に聞きたい
>>310 upcase("hoge")で何か問題が?そんなのがclassの優位性なの?
>>311 レシーバが名前空間として機能するから
これに尽きる
さてRubyにclassがいらない理由を述べてもらおう
privateメソッドをオーバーライド出来る時点でRubyのカプセル化がおまけ機能だってのがよくわかる。
オブジェクト指向=カプセル化ではないよ
privateでオーバーライドできない方法をおしえてください!
名前空間のため、レシーバと見る、などの目的ならdynamicでいいのでクラスベースは必須要件ではありません。 そうですね、文字列リテラルに(インスタンス)メソッドをバインドできるからって言う理由なら同意しました。 ただしインタプリタ作成でなくruby userとして使う分にはclassは便利なのでclass機構を否定するわけでもありません。 クラスをサポートしても他言語とのアドバンテージにもならないしclass機構自体が動的言語にはあまり必須でないので、 これを削除して仕様をスリムにしていった方がDSL目的のruby実装・他のインタプリタが増えてrubyは一目置かれるようになるでしょう。 rubyは仕様策定機関でも言語実装レベルでもjavascriptと対抗することになりますが、html5の第三極として面白いポジションになるんじゃないでしょうか。
そこで出てくるjavascriptってサーバーサイドの話だよなもちろん
>>299 「関数型言語やってます!」って人は他の言語をやっている人が関数型言語にハマってそうなっているけれど、
「Rubyやってます!」はプログラミング自体をRubyで始めたような人がそうなってることが多いから、あまり似ていない。
たぶんないよ
>>320 自分の信仰に対して一途なところは両者同じでしょうね
>>323 そんなことを言い出したら「○○やってます!」系の人はみなよく似ている。
もりあがってまいりました
静的言語オンリーのお客さんも来てるからなあ
privateをオーバーライドさせない方法・・・・ オーバーライドは阻止出来なかったとしても Module#private を書き換えて メソッド名をクラス名+メソッド名のダイジェストみたいなのに書き換え メソッド呼び出し時はmethod_missingでメソッド名からダイジェストを計算して呼び出しとか・・・
>>324 なんていうか「エディタの環境設定にこだわる人」みたいな
手段と目的がごっちゃになってる系の感じといえば伝わるだろうか
るびきちさんEmacsの設定だけのメルマガで月512円とかぼったくりじゃないっすか?
るびきちって誰?
>>263 え? RubyってC++よりも難しい言語なの?
初めて聞いた。
>>328 別に「Emacs使ってます!」でもいいんだよね。
Emacsの機能や設計方針が自分によく馴染んで、生産性が上がるからEmacsを使うんじゃなくて
Emacsを使うためにEmacsを使っている感じ。
まああのエディタは最初の内は目的と手段が逆になりやすいかもね ある程度やると実際役に立つのだけれど… そこら辺はRuby自身にも通ずるとこはあるかもね 今やフィルタに計算、テスト書きなど日用品として使ってるけど 最初は覚えることが目的だったし
ある程度やると更に妄信的に手段が目的になっちゃうと思う 楽しいから別に何の問題もないんだけど
クラスの仕組みが言語組み込みで、 あとから変更できないってのがちょっとつらかったように思える 後知恵だけど、javascriptみたいにメソッドがHashのキー・値の一種だったなら scalaのtraitみたいな多重継承の解決方法を簡単に実装することもできただろうに
何いってんだ Rubyはオープンクラスだから組み込みクラスだろうが誰かしらん人が作ったクラスだろうが 後からいくらでもメソッド書き換えられるんだが
さらに言えばmixinしたときとか継承した時のhookメソッドみたいなのもあるし ベースクラスのそれをいじることも自由だから結構な無茶もやろうと思えば出来る。 RoRとかそういうのやりまくってる。
pとかputsとかtimeとかが書き換え可能という事?
>>339 そうだよ。そこで上げたメソッドはドキュメントみればどのクラス/モジュールで実装されてるかわかるから
そこで書き換えれば全部のクラスでちゃんと動作がかわる。
rubyはリフレクション関係充実してるよね。 クラス定義も実はブロック渡して中ではメソッド読んでるだけだから 自前のattr_readerみたいなディレクティブとか作りたいだけ作れるし。
汚くやろうと思えば大抵の事はできるから、 むしろできない事を探すほうが難しいぐらいじゃないの evil-rubyみたいな謎モジュールを使わないと不可能な事はいくつかあるっぽいけど
まずJavaでかく。 次にC++でかく。 さらにRubyでかく。クラスができる
総相 川端達夫 帰化人。 在日韓国人法的地位向上議員連盟 法相 平岡秀夫 帰化人。 在日韓国人法的地位向上議員連盟 文科相 中川正春 在日韓国人法的地位向上議員連盟 厚労相 小宮山洋子 帰化人。 2度離婚 在日韓国人法的地位向上議員連盟 国家戦略相 古川元久 パチンコ協会政治アドバイザー
require 'test/unit' すると勝手にテストが実行されるので、これをやめさせたく、 Test::Unit::Runner::Worker.class_eval do @@stop_auto_run = true end とすると、 warning: class variable access from toplevel といわれてしまいます。 どうするのがいいでしょうか。 Test::Unit::Runner::Worker.class_variable_set(:@@stop_auto_run, false) を試してみましたが、効果ありませんでした。
Test::Unit::Runner.class_variable_set(:@@stop_auto_run, true)
1.8.7 のるりまに > このクラスは Enumerator に置き換えられました。 > Enumerable::Enumerator は互換性のために残されています。 と書いてあるけど、 1.8.7 ではまだそうなってないですよね?
開発者がRuby1.8は使ってないって言ってるのにまだ1.8使うカスっていんの?
>>348 そういうお前はどのバージョンを使ってるか言ってみ?
だろうなと思ってた
>>349 もちろん1.9.2
開発者が切り捨ててるバージョン使うなんてバカがやること
だなw
>>346 さんくす。たすかった。
あと、Test::Unitのassert_equalで、テキストの差分をdiff -u形式で欲しいんだけど、
どうすりゃいい?
きっと誰かがやってると思って訊いてみる。
htmlやxmlを操作して<p></p>や<li></li>内の改行を取り去ることは可能でしょうか?
<p>テストですが
どうでしょう</p>
これをそのまま表示すると、テストですが どうでしょう と半角空白が挿入されて表示されてしまいます
htmlでは<p>と<li>、xmlでは<foo>の要素について
<p>テストですがどうでしょう</p>
このように改行を取り去ろうと思います。それ以外の要素としては<pre></pre>があるので、改行を削除するのは
指定したタグの要素に限定したいです
Route 477 - RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize , HikiReload
http://route477.net/d/?date=20070205#p01 これを読んでみましたが、よくわかりませんでした。
最終的には romeve_rn.ruby file.xml と入力して file.xml の内容を↑のとおりに破壊的に書き換えたいのですが
どうすればよいのでしょうか
書き忘れていました ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin] で、osはwindows7です
149 名前:金持ち名無しさん、貧乏名無しさん :2011/12/14(水) 23:08:43.14 ここ30年で、 113社だった公益法人が25000社ってどういう事? 150 名前:金持ち名無しさん、貧乏名無しさん :2011/12/14(水) 23:17:28.25 公益法人をwikiで調べると、バブルで急増してからほとんど減ってない wwwワロタwww
358 :
355 :2011/12/15(木) 00:36:57.88
すみません。「HTMLに変更を加える」に手を加えたらできました
1.9のProc#parametersに相当する機能を1.8でも使いたいんだけど、なんかいいアイデアある? やりたいことは、メソッドやブロックの仮引数の名前を調べたい。
instance_evalに、ブロックだけでなく、引数を渡すことはできますか。 block = proc {|x, y| x+y } obj.instance_eval(&block) # ここで x や y の値を渡したい よろしくお願いします。
>>361 じこれす。
instance_evalではなくinstance_execというのを使うとできるそうだ。
block = proc {|x, y| x+y }
obj.instance_exec(123, 456, &block)
# -*- encoding: utf-8 -*- require 'kconv' dir = File::expand_path '~/Pictures' Dir.entries(dir).map{|f| puts f.toutf8 unless FileTest.directory? f } ファイルリストからディレクトリを除外したいんですが、ディレクトリ名が日本語のものが除外されません。 環境がWindowsなので文字コードの問題かと思ったんですが、f.tosjisなどとしてもできません。 どうすれば上手くいくのでしょうか?
363 :
デフォルトの名無しさん :2011/12/15(木) 09:14:48.63
それじゃ除外してない。 Dir.entries(dir).reject{|f| FileTest.directory? f}.map ...
364 :
デフォルトの名無しさん :2011/12/15(木) 09:23:35.09
返り値の話じゃなくて。 ~/Downloads からの相対パスしか返ってきていないのに、 カレントからの相対パスとしてテストしているから全部偽になっている。 File.expand_path(File.join('~/Downloads', f))
>>363 除外というか、判定のところが上手くいかないということです。説明不足でした。
>>364 その通りでした。判定の部分が相対パスのままになってたのが原因でした。
ありがとうございました。
文字列が ・アスキーコードのみ ・あるいは日本語を含んでいるかどうか という判定は、Rubyではどうしますか。 Ruby1.9ではString#ascii_only?というそのものずばりなメソッドがあるそうなので、 1.8での方法をお願いします。
367 :
デフォルトの名無しさん :2011/12/15(木) 12:23:50.05
puts "a i o u e s h i t u".gsub(/([aoeui]) ([aoeui])/,'\1\2') この結果は ai ou e s h i t u となりますが、母音と母音の間の空白をすべて削除する aioue s h i t u とするにはどうすればよいでしょうか
>>367 'a i o u e s h i t u'.gsub(/(?<=[aeiou]) (?=[aeiou])/, '')
>>366 str =~ /[^!-~\s]/
これじゃダメなの?
>>366 自己レス。
def ascii?(str)
str =~ /¥A[¥x00-¥x7f]*¥z/
end
でいいそうです。なるほど。
371 :
デフォルトの名無しさん :2011/12/15(木) 15:17:34.74
>>368 次のようなエラーが出ました。
undefined (?...) sequence: /(?<=[aeiou]) (?=[aeiou])/
>>371 質問するときはバージョン書かなきゃだめよ。
1.8の正規表現エンジンは戻り読み使えないからだな。
'a i o u e s h i t u'.gsub(/(?=[aeiou] [aeiou])([aeiou]) /, '\1')
=>"aioue s h i t u"
>>367 のなにがダメかっていうと、
/[aoeui] [aoeui]/ これだと次のまっちは後ろの[aoeui]の後からになるから。
/(?=re1re2)re1/ で、後にre2が続くre1、というのをre2をマッチ範囲から除外してマッチさせることができるよ。
後続をマッチに含めないだけなら /([aeiou]) (?=[aeiou])/でよかったわ。 俺アホスwwwwwwwwwwwwwwwwwwwwww
そうだね。よかったね。
>>372-373 ありがとうございます
cygwinのruby最新版でした。1.8ではその機能を使えなかったのですね。
(?=) と (?<=) について勉強してみます
1.8厨はすぐに1.9に乗り換えろ!
>>362 は すぐに
>>363 >>364 だってのはわかったんだけど
質問内容の不備から
「またWindows版Ruby 1.9のファイルシステム日本語対応の不具合か!!」
とか思って色々やってみてたら
Ruby 1.9.3p0 mingw32 で
SJISの日本語入りパスをFile.expand_pathに通すと、なぜかDir.openできなくなる
#coding:cp932
path = 'R:/ディレクトリ'
p [path,path.encoding] # ["R:/ディレクトリ", #<Encoding:Windows-31J>]
p Dir.open(path) # => #<Dir:R:/??????????????????>
expath = File.expand_path path
p [expath,expath.encoding] # ["R:/ディレクトリ", #<Encoding:Windows-31J>]
p path == expath # true
p Dir.open(expath) # => `open': No such file or directory - R:/ディレクトリ (Errno::ENOENT)
Stringの見た目は一緒なんだが、内部データがなんか違ってるのかな
うーん……
もっと1.9.3を使ってたくさんバグ報告してください! 1.8は使わないで下さい!
普段windowsバイナリを使うから気にしていなかったけど、 そういえばcygwinでruby1.9.3を配布しないのはなぜなんだろう
>>375 先読みや後読みがなくても、置換の繰り返しで可能
s = 'a i o u e s h i t u'
true while s.sub!(/([aeiou]) ([aeiou])/, '\\1\\2')
p s # => "aioue s h i t u"
むりやりワンライナーで
p 'a i o u e s h i t u'.tap{|s| true while s.sub!(/([aeiou]) ([aeiou])/, '\\1\\2')}
11.times do |i| p path[i], expath[i] print "\n" end "C""C" ":"":" "/""/" "フ""\x83" "ォ""t" "ル""\x83" "ダ""H" nil "\x83" nil "\x8B" nil "\x83" nil "_" each_byte や each_charは同じだった
tapって面白いな。 ところで、'a e i o s u o'みたいに、 スペースが2個以上の時はどうやればいいか、判る人居る?
nbspとか使わずにそのまま空白を続けて書いちゃったんだろう
hpricotで
(doc/:code).each do
ほにゃらら
end
(doc/:pre).each do
ほにゃらら
end
のほにゃららの処理が共通なのですが、
(ほにゃらら部分を関数でまとめる以外に)
(doc/:p)と(doc/:li)の行を一緒くたにする
記述方法はあるでしょうか?
>>383 2chでは連続した半角スペースが半角スペース1つに短縮されます
>>379 mingw版なんてバイナリ配布が1.8.4で止まっちゃったから
自分でビルドするようになっちゃったよ
いまならRubyInstallerがmingw版みたいだけど
>>382 かなり初歩的なことだから
ちょっとは正規表現の勉強したほうがいいよ
/([aiueo]) +([aiueo])/
>>385 [doc/:code,doc/:pre].flatten.each{|e| ほにゃらら }
>>385 (doc/:code + doc/:pre).each{|e| ほにゃらら }
>>385 doc/'code,pre'
じゃダメ?
393 :
デフォルトの名無しさん :2011/12/15(木) 20:59:50.04
1.9.3は一度入れたけどバグがひどくて使い物にならなかったから1.9.2に戻したよ
>>378 まあWindows版ですけどね
1.9.3って開発版だっけ?なんかよく分からなくなった
395 :
sage :2011/12/15(木) 21:17:16.71
失礼。上げちゃった
イントラネットでredmineを使うだけしかないと自分で言っときながら 使い道がよく分からないとはこれいかに。
>>397 node.jsを実際に触った事あるなら、
同期処理が不得手だって事も合わせて知ってると思うんだが。
知りもしないのに持ち上げるとか勘弁してほしいわ。
いつもの人だ、ほっとけ。
>>399 その為にasync.jsがあるけどこのライブラリも否定できる根拠があるのかね?
>>400 Rubyを使った事もないいつもの煽り屋さん出張ごくろうさま
で、何が言いたいんだこいつ 素直に node.js 使えばいいじゃない
このスレくるとかまってもらえるからな。 初心者スレはいい防波堤になってくれている。
なんだ、やっぱりいつもの人か。
ほとんどのレスが関係ないね
どこのスレでも見かけるけど自治してるつもりの人が一番迷惑
perlでいいとかpythonでいいになるんじゃねえの?
Perlは確かにそうだね てかRubyのフィルタ的に使える部分はPerl由来だから当然か でもPythonでフィルタ…は何か違う気がする そりゃ書けるっちゃ書けるが、少々まどろっこしい感じ nodeでフィルタ書けばいいじゃないみたいな(実際書けるだろうし)
Pythonで作るのは「アプリケーション」な気がする PerlとRubyは言語自体は同じ方向向いてるんだが、実稼動上では第三者ライブラリ格差が大き過ぎる
第三者ライブラリ格差って今はどっちが上位なの? やっぱ過去資産の量的にCPAN持ちのPerlのが上なんだろか。
>>412 awkで書いてあった在庫管理システムを、PerlとRubyで書き直した事があるけど、これって珍しいのかな?
ふつうじゃないの。
>>397 ruby vs jsでネイティブ実装の対決なのになんでそんなに差が出るんでしょうね
自演乙
その変は設計の思想だと思う node.jsはwebを視野に作られてるけど rubyはwebも出来る盆用的な言語として作られてる訳だし
凡庸的かよ!
どちらかと言うと、煩悩的。
Rubyはやっぱ最高や!
[1].delete 1 # => 1 {1=>2}.delete 1 # => 2 Set.new([1]).delete 1 # => #<Set: {}> Set#delete も削除した要素を返す方が良いような気がするんですが、どう思います?
複数の例外を発生させたい時があるんだけど、どうしたらいい? たとえばこんなの: errors = [] callbacks.each do |callback| begin callback.call(self) rescue Exception => ex errors << ex end end raise errors # 複数のコールバックが例外を発生させたので、それら全部をraiseしたい
>>424 それはできない
というか、例外をジャンプ可能メッセージとして普段遣いすることは、Rubyでもやっぱり好ましくない
「複数の例外発生源を含んでるかもしれません例外」を自力で作ってそれをraiseするしかないな
Rubyはメモリを食うって聞いたことあるんですけどそれは最新版では改善されてますか?
何をしてどれぐらいメモリを喰うのか聞きました?
初心者なのであんまり深く聞いてませんでした
まあそんなもんだと思う メモリ消費量が他の言語に比べて本質的に多めなのは間違いないので、 レンタルサーバ上で1秒間に何十回も起動されうるプログラムとか 空き使用可能メモリが5MBのマシンでも平気で動作するプログラムとか そういうのを作るのにはRubyは向かない
まあメモリそんな気にしてたらLLなんて使ってられないものばかりだ。 PerlやPHP、Pythonに置き換えたところで何も解決しない。
メモリ喰うっていっても普通に使う分には それが問題になることは少ないんじゃないかな。 システム要件で細かくきまってて検討が必要なら 実際にデモとか書いて試したほうがいいよ。Rubyに限らず。
通常のRuby使用圏内では(普通の範囲が初心者とそれ以外では違うのが難点だが) 「起動して速攻終了させれば別に問題ないよね」 「多重起動を避ければどうということはないよね」 「読み込むデータで圧迫されるメモリのほうが遥かに大きいから誤差レベルだよね」 とかいうので片づけられてしまう局面のほうが多いと思う これに対して「ふざけるな」と言わなければならない局面には、Rubyはあんま向かね
パフォーマンスは必要だとしても、 誤差程度のメモリを気にするのは笑っちゃうわな。 気になるなら一からネイティブで書けっての。
434 :
sage :2011/12/16(金) 23:16:18.36
普通に使うって言っても人によって普通は違うからな テキストフィルタとかの用途ならさほど気にする必要無いだろうが 素の状態で1プロセスあたりのメモリがでかい。 何十プロセスも起動すると...
> 普通に使うって言っても人によって普通は違うからな
だよな。だから
>>426 みたいな漠然とした質問されてもまともに答えようがない。
どの言語でも得手不得手があるんだから、複数覚えて、トータルの手間を減らしたら?
というか今時のエンジニアは言われるまでもなく複数の言語使ってると思う。 昔みたいにCOBOLだけで食べてましたなんてのはいないんじゃないのかなぁ。
438 :
デフォルトの名無しさん :2011/12/17(土) 00:10:48.89
二言語目(できれば発想が違う言語)を覚えるまでは、あれだ、 ハンマーを持つと何でも釘に見える。
>>434 Rubyの競合言語に何十プロセスも起動してぜんぜん平気な言語なんてあるの?
競合言語以外と比較しているなら、使い方が悪いだけ。
スパゲティを食べるのにスプーンを使っていたら、そりゃあいろいろ困るだろう。
VMでなくOSのプロセスだお ふつうはブラウザとか動画開くほうがよっぽどメモリ消費すると思うけど どんなスクリプト想定してるんだろ
>>440 あれの「プロセス」は一般的な意味とは少し異なるから
Rubyと用途もあまり被ってないし
443 :
uy :2011/12/17(土) 02:09:08.53
>>439 表現が適当すぎるだろ
皿に乗っかったスパゲティを食べるのに同じ程度の大きさの皿ですくって少しずつ食べるというほうが近い
バージョン1.8.3を使っています。 module AAA BB = <数,(\d)>i end などのようにしておいて、別の場所で @text =~ AAA::BB ? $1.to_i : 0 として@text内の <数,n> の数値nを読み取ることはできましたが、 (\d) to_i などを書き換えて <数,[1,1]> のように数値ではなく配列を読み取らせることはできますか?
バージョン1.8.3を使っています。 module AAA BB = <数,(\d)>i end などのようにしておいて、別の場所で @text =~ AAA::BB ? $1.to_i : 0 として@text内の <数,n> の数値nを読み取ることはできましたが、 (\d) to_i などを書き換えて <数,[1,1]> のように数値ではなく配列を読み取らせることはできますか?
バージョン1.8.3を使っています。 module AAA BB = <数,(\d)>i end などのようにしておいて、別の場所で @text =~ AAA::BB ? $1.to_i : 0 として@text内の <数,n> の数値nを読み取ることはできましたが、 (\d) to_i などを書き換えて <数,[1,1]> のように数値ではなく配列を読み取らせることはできますか?
バージョン1.8.3を使っています。 module AAA BB = <数,(\d)>i end などのようにしておいて、別の場所で @text =~ AAA::BB ? $1.to_i : 0 として@text内の <数,n> の数値nを読み取ることはできましたが、 (\d) to_i などを書き換えて <数,[1,1]> のように数値ではなく配列を読み取らせることはできますか?
バージョン1.8.3を使っています。 module AAA BB = <数,(\d)>i end などのようにしておいて、別の場所で @text =~ AAA::BB ? $1.to_i : 0 として@text内の <数,n> の数値nを読み取ることはできましたが、 (\d) to_i などを書き換えて <数,[1,1]> のように数値ではなく配列を読み取らせることはできますか?
@text[/<数,\[([\d\,]+)\]>/i,1].split(',').map{|e| e.to_i }
あ-35-9 平成21年度民主党第5区総支部(手塚仁雄議員)収支報告書(行番号1151、1204) 報告書73ページ目に、平成21年8月18日 「中山 諭」 250万円ってあるけど、誰だ?wwこいつはww 野田の側近の、手塚首相補佐官殿がお金もらってた中山諭って、 不動産販売会社 ダイナシティの当時社長で、覚せい剤取締法違反で 現行犯逮捕されてる奴だろ?w (共同通信) 2005 年- 6 月29 日 そういえば、レンホーちゃんも仲良しらしいじゃんw それと、手塚っちがレンホーと中山さんと飲み会したって暴露ってるぞ?www ヤクザとずっぶっずぶだなあwミンスはww
「はじめてのRuby」ってなかなかいい本だよ。
こうゆう桁数が膨大な問題はrubyが得意って聞いたんでお願いします 100万種類のトレーディングカードがあり、15枚1セット525円で販売されている。 全ての種類をコンプリートするまで買い続けるとき、かかる費用の期待値はいくらになるか。 ただし、1セットには全て重複なしのバラバラのカードがランダムに入っているものとする
2%
>>452 最終的な計算はRubyにまかせてもいいけど、
場合分けが有限じゃないから自分で計算式考えなきゃだめだよん。
計算式を考えるところはこのスレの対象外。
宿題スレみたいなとこに書きこむと誰か計算式教えてくれるかもね。
WindowsでRuby使う場合ってcygwinで利用するのが一般的でしょうか? あと企業サイトでRubyを使って構築する場合場合は RubyGemsで必要なものをインストールして使うものですか? もしくはgithubなどからソースコードを取ってきて個別にインストールして使うものですか?
github と rubygem の関連性がよくわからんのだけど github にしかなけりゃ github から取ってくるし rubygem にあってそれで足りるなら rubygem から取ってくるわ あと ruby on cygwin は今はマイナーだと思う。公式でバイナリも配布してないし。
Windows Server + cygwin + ruby で企業サイト構築とな?
cygwin環境ありきなら……個人でも少数派だろうな その1人ではあるけど
>>456 windows 7 だけです。
cygwinなし
>>452 クーポンコレクター問題という有名な問題だ
全n種類集めるのに必要な枚数の期待値はn*ln(n)で近似できから
((n*ln(n))/15)*525でおおよその購入金額は計算できる
正確な値が知りたいならググって自分でゴリゴリ計算してくれ
Rationalクラスが組み込みであるから簡単に計算できるはずだ
redmineをダウンロードしてきたのですが redmineのソースに#!C:\ruby1.8.7\bin\rubyを入れて これをapacheのcgi-binに入れたのですが動きません apacheでcgi自体は動作確認済みで動くようになってます redmineはapacheで動かせないのですか?
>>462 まずはApacheのエラーログ出力を見るべきだよん
馬鹿には無理
464先生は天才らしいので皆さん何でも質問してください 天才はすぐ答えがわかりますよ^^
>>465 それはちょっと早計だな。
自己紹介かもしれんじゃないか。
ファイル名を foo_bar_baz.rbにするかfoo-bar-baz.rbにするかfoobarbaz.rbにするか、で迷ってるんだけど、 これってなんか指針とかあったような気がする。 だれかおしえて。
なにかそのスクリプトの中核となるクラスがあるならクラス名をダウンケースにしたものが標準的ではある。
どれもダメ 使い捨てのスクリプトならそれでもかまいませんが そうでないならもっと意味のある語を使いましょう。
>>470 こういうネタなんだかマジレスなんだか判断に苦しむレスが一番困る
ネタが分かってもらえずマジレスされたこっちもつらい
>>468 ですが、
Railsが
・ファイル名はfoo_bar_baz.rb (例: active_support.rb)
・パッケージ名はfoobarbaz (例: activesupport-x.x.x.gem)
だったので、そうすることにしました。
activesupport のオートロードの規則に SomeClass を使う時は some_class.rb を見に行くってのがあるから camel case の区切りのところにアンダーバーを入れるにしておくのが無難。
震災前 /::::::::::::::::::::::::::::::;;::ノ ヽ;::\ /::::::::;;;;;;;;;,,,;;...-‐''"~ ヽ:;::l |:::::::::::| 岡田 異音 |ミ| |:::::::/ ,,, ヽ,、 '|ミ| '|:::::::l '''"" ゙゙゙゙` |ミ| |:::::|. ,,r ‐、 ,, - 、 |/ ,/⌒| ノ ・ _), (. ・ `つ| | ( "''''" |"'''''" | ヽ,,. ヽ | | ^-^_,, -、 | | _,, --‐''~ ) | マニフェストもう守れない。どうしよう・・・・ 'ヽ ( ,r''''''‐-‐′ / 震災後 |:::::::::/ |ミ| |::::::::| ,,,,, ,,,,, |ミ| |彡|. '''"""'' ''"""'' |/ /⌒| -=・=‐, =・=- | | ( "''''" | "''''" | .ヽ,, ヽ .| キリッ | ^-^ | . | ‐-===- | 大震災が起こったのだからマニフェストの破綻も致し方ありません ,\. "'''''''" / 朝鮮民主党 解党
今削除依頼まとめてるからまっててね
>>477 も含めて
items = request_path.split(/¥//) path = nil found = false while (item = items.shift) path ? (path << "/" << item) : (path = item) if File.file?("#{path}/index.html") found = true break end end if found puts "found: path=#{path}" else puts "not found" end これをもっとかっこよく書く方法を教えて下さい。 できればfoundというフラグをなくす方向で。
動いてるんだからそれで十分じゃね?
>>479 前半部分をpathかnilを返すメソッドとして括ってしまえばいいんじゃね?
["a", "b", "c", "d"] から ["a", "a/b", "a/b/c", "a/b/c/d"] という配列を作ってfindする
injectを使ったドヤ顔バージョン result = request_path.split("/").inject([]) {|paths, item| paths.push([paths.last, item].join("/")) }.detect { |path| File.exist? File.expand_path("index.html", path) } if result puts "found: path=#{path}" else puts "not found" end
>>484 実行するとネームエラーになると思われるところもドヤ顔バージョンにふさわしいな。
injectワロス
eachあれば生きていけるし
体重、身長からBMIを求めてBMIから肥満度をa,b,c,dに分類した後、 ・group_byで肥満度毎に分割 ・injectで体重、身長などを合計した後肥満度毎に分割された人数で平均をだす プログラムを作りたいんですが、group_byで分けた後どの様にしてそれぞれの平均を出したらよいのでしょうか?
inje...
WindowsにRubyをバージョン違いでzipからフォルダにおいたんですけど gemで何かインストールしたらレジストリに書き込みとかされますか? あとgemで入れたものって他のバージョンからも使えるのですか?新たにgemでインストールしないとダメなものですか?
>>488 group_byで出てくるハッシュに対してcollectすればいいんでないの
>>490 AというバージョンでインストールされたgemがBというバージョンでも動くかどうかはまったく保障できない
動かなかったとしても、流用のせいで動作しないということを見わけるのはかなり難しいと思う
レジストリは通常は使用しないが、絶対に使用しないとは言い切れない
あと、複数のバージョンのRubyをシステムにインストールするのはあんまりお勧めできない
>>492 Rubyって不便ですね
なんだいつもの奴か Rubyは不便だから別の言語を使えばいいよ
Arrayクラスにfirstとかlastっていうメソッドがありますが、なんでそんなメソッドがあるのでしょうか。 そんなの使わなくてもarray[0]やarray[-1]ですみますよね。 わざわざfirstやlastがある理由を教えて下さい。
配列の先頭と末尾にアクセスすることはよくあるので それに特化したメソッドを設けても別におかしくはないと思われ あとはary.last(2)はary[-2..-1]より書きやすいことぐらいか
>>496 キューやスタックとして使っている場合、インデックスによるアクセスはやりたくない。
いちおう、読み方以上の意味はないとは言える Array#[] での書き方よりも文字数長いし 「「の先頭」「の最後」って書けたほうがわかりやすいよなジョージ」 「そうだねその通りさマイクHAHAHA」 とかいうような考えもないわけではない 出自としては、配列をキューやスタックとみなすメソッド Array#pop や Array#shift なんかと同じ方面
firstは0番目ではなく1番目を返すべき
コード読んでる時に添字に負の数が入ってるの見るとなぜか緊張がはしる
一番目の添え字は0
>>501 地上1階がground floorとかドヤ顔が目に見えるようだ
gem install sqlite3 を実行すると ERROR: Error installing sqlite3: ERROR: Failed to build gem native extension. D:/Ruby/bin/ruby.exe extconf.rb checking for sqlite3.h... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. というエラーが出るのですが、sqlite3.hというファイルが足りないということでしょうか。 またその場合、sqlite3.hはどこに配置すると良いのでしょうか。 環境はwin7の64bitです。
64bit Windows の sqlite3-ruby バイナリは存在しないから、コンパイルしようとしてエラーになるのか sqlite3.dll を SysWOW64 に入れてからだとどうだろう
>>506 ありがとうございます。その方法では不可能でしたが
rubyをクリーンインストールすることですんなりとインストールでき、自己解決しました。
変数の中に変数を入れることは可能ですか? 例えば i=1 diary_1=Hash.new の時に puts diary_1 の1の部分にiを使いたいのですが可能でしょうか?
よくわからんが diary_i で dialy_1 を参照したいってことかね puts eval "diary_#{i}"
最近1.9系を使い始めたのですがgem関係の「セグメンテーション違反」エラーが頻出してくじけそうorz
総相 川端達夫 帰化人。 在日韓国人法的地位向上議員連盟 法相 平岡秀夫 帰化人。 在日韓国人法的地位向上議員連盟 文科相 中川正春 在日韓国人法的地位向上議員連盟 厚労相 小宮山洋子 帰化人。 在日韓国人法的地位向上議員連盟 自身の選挙区の太平建設と談合 国家戦略相 古川元久 パチンコ協会政治アドバイザー 韓国人から賄賂を貰っている野田 韓国人の集いに参加している野田 野田は日本人じゃないだろ
__FILE__ って、必ず絶対パスでしょうか。相対パスになることはありますか。
>>511 もうちょっと詳しく状況を書いた方がいいんじゃないでしょうか。
515 :
511 :2011/12/25(日) 19:06:54.92
rubyのソースコードはCとC++どっちで書かれているのでしょうか?
Cですよ。
了解しました
>>515 1.9.2じゃなくて、1.9.3だとどうなる?
初心者はmailread.rbを読むと練習になるとあったので読んでみたいのですが、 そもそもこのファイルはどこにあってどうやって見たらよいのでしょうか?
521 :
デフォルトの名無しさん :2011/12/26(月) 07:35:41.30
わかりません!
>>520 puts $:
すると表示されるディレクトリのどれかにある
自分の好きなテキスト閲覧できるアプリで嫁
>>523 ありがとうございます!
一つずつ探しても発見できなかったのですが、そもそも無いこととかあったりするんですか?
WindowsでRubyからマウスを絶対座標x100:y100に移動させるっていう処理は実現できますか?
>>524 1.9では標準で添付されなくなったらしいよ。
テストってあるじゃないですか 自分はテストって何をするのかよくわかってないのですが web用途のテストについてどの板のどのスレをチェックしたら良いでしょうか?
スレ見るよりテストの本買ったほうがいいんじゃない?
532 :
511 :2011/12/27(火) 06:10:40.25
>>519 今のところ1.9.3だと問題無く動いています
1.9.2はp180,p290ともに
>>515 で挙げたエラーが出ました
ちなみにgemはデフォルトの1.3.7からgem update --systemで1.8.12に上げていました
p Object,new #=> #<Object:0x29ef640> このコロン以降はなんでしょうか?この部分を個別に取得することは可能ですか?
平松邦夫/民主党 大阪市役所・自治労・大阪市労働組合・日教組・大阪市教育委員会・自民党・共産党・社民党・関西電力・住友グループ ・毎日放送・毎日新聞・関西経済連合・日本原子力発電株式会社 ・ 週刊文春・週刊新潮・NHK・朝日新聞・読売新聞 ・部落解放同盟・朝鮮総連・在日本大韓民国民団・日本遊技関連事業協会・全日本遊技事業協同組合連合会・日本弁護士連合会・生活保護受給者・反日左翼・9条の会・革マル派・中核派 VS 橋下徹/維新の会 大阪市民・みんなの党・国民新党・亀井静香・石原慎太郎・東国原英夫 様子見:公明
Object#object_id で取れる foo = Object.new p foo.object_id 整数値だから、その表示みたいに16進にしたかったら .to_s(16) とか追加して。
申請書クラスを作りたいときクラス名は何にすりゃいい?
rubyでコード書くアルバイトを探したいのですがこういうのってどこの求人サイトを見ると良いでしょうか?
twitterでruby書きてえ書きてえようって訴えてれば拾ってもらえるんじゃないの。
540 :
533 :2011/12/28(水) 00:33:20.43
>>535 o = Object.new
p o #=> #<Object:0x29ef7e4>
p o.object_id #=> 21986290
p o.object_id.to_s(16) #=> "14f7bf2"
まるで一致しないw
これは何を間違えてますか?
・ そこそこの頻度でプログラミングなブログを更新するか、ついったーでコンピュータや仕事に関して有意義な話をする ・ githubで自分のコードを公開する (ユニットテストとreadmeと意味のあるコミットログは人となりならぬ「プログラミングとなり」を知るのに必須なので必ず書くこと) ・ ○○県○○市のへんに住んでます、程度の住所はネットで公開しておく(それ以上の細かい情報はバカだと思われる可能性が大) ・ 近所にLLやネットプログラミング関連の勉強会とか集まりがあったらブログ名やついったアカウントを出しておく ということをしてれば、もしかしたらなんかあるかも Rubyの場合はこれくらいやらないとどうにもならないということでもあるけれど… Rubyっぽくないことに定評のあるRailsならまたちょっと別で、これは根気よく探せば客先派遣や契約社員のようなものは稀にある 学生でもできるようなバイトの仕事はほぼ無い
542 :
デフォルトの名無しさん :2011/12/28(水) 01:21:49.69
>>540 単純にそのままではなかったりします。
Fixnum以外は、左1ビットシフト(2倍)してください。
Fixnumは、さらに最下位ビットを立てます。
(21986290<<1).to_s(16) #=> "29ef7e4"
4バイトアライメントなアーキテクチャでは、ポインタは最下位の2ビットが
1にならないことを利用して、ポインタと整数を同じ領域にマッピングする
テクニック。名前は忘れた。
>>540 俺もずっとobject_idだと思ってたんだけど違うんだ
o = Object.new
puts o.inspect #=> #<Object:0x28322594>
puts (o.object_id * 2).to_s(16) #=> 28322594
なんでこうなってんだろ
RHG読むと判る
>>543 4バイトアライメントなアーキテクチャでは、ポインタは最下位の2ビットが
1にならないことを利用して、ポインタと整数を同じ領域にマッピングする
テクニック。
547 :
デフォルトの名無しさん :2011/12/28(水) 01:48:46.89
false.object_id #=> 0 == 0(2) 0.object_id #=> 1 == 1(2) == 0<<1 | 1 true.object_id #=> 2 == 10(2) 1.object_id #=> 3 == 11(2) == 1<<1 | 1 nil.object_id #=> 4 == 100(2) 2.object_id #=> 5 == 101(2) == 2<<1 | 1 このあとは、末尾2ビットが 01 か 11 なら Fixnum、 00 なら通常のオブジェクト(ポインタ値そのまま)、 10 は未使用だと思う。
548 :
デフォルトの名無しさん :2011/12/28(水) 02:06:59.39
どうせポインタ末尾00なんだから右シフトせずにobject_idにしても いいような気がするのは、なんか勘違いしてる…?
>>542 後半の意味は分からないけど確かに一致した
ありがとうございます
「オブジェクトのIDをそのまま表示してもいいはず」だとは思う というか、これが公開されてないせいで自前で inspect が書かれてるクラスは object_id だったり object_id.to_s(16) だったりして一貫性がない まあ、この書き方だと負になることはないうえに(object_idは負の整数であることもある)一意性が保たれてるんで、こんな変な芸をしてるんだろうけど ユーザーとして欲しいのは具体的なオブジェクトのIDの数値ではなく「オブジェクトaとオブジェクトbが同一かどうかがわかる印」なんだしさ
Ruby1.9にしたら、irbでC-zが効かないんだけど、そんなことない? 当方MacOS X、Ruby1.9.3
RUBY1.9.3でゼロパディングはこう書いても大丈夫ですか? もっと良い書き方がありましたら伝授してください puts 25.to_s.rjust(5, "0")
'%05d' % 25 や sprintf('%05d', 25) とも書けるけど、どれが良いかはおまかせ
■民主党政権になって放送禁止になった言葉一覧■ [道義的責任・進退問題・発言のブレ・閣内不一致・派閥・プライマリーバランス 空気が読めない・庶民感覚・国民目線・バラマキで人気とり・国民に信を問うべき・OECDの貧困率 ワーキングプア・ネットカフェ難民・世襲・料亭・漢字・読み違え・直近の民意・国民の生活が一番、政権交代が最大の景気回復策、公務員改革 ガソリン値下げ、景気回復策、解散総選挙、ホッケの煮付け 世襲制廃止、地域主権、議員定数削減、地球温暖化対策]
1MBなサイズの要素を100個含む配列arrがあったとして arr.mes1.mes2{|x| ... }.mes3 は各メソッドチェーンの部分で最大100MBくらい新たに使用しますか? ガベージコレクションのタイミングが悪いと300MBくらい一時的に占有する?
メソッドの中でその100MBオブジェクトのコピーないしそれに類するものを作ってたりしない限りは、 新たに100MB占有したりはしない。
>>556 「それにRubyが気を遣うことはない」「メソッドが要素そのものを複製改変する動作をする場合は余分にメモリを消費する」でいいと思う
コレクションを扱うメソッドがチェーンしまくってるとハラハラする select だの reject だの map だの繋げまくってると N x N x N...ってオーダーが指数関数的に増えていくって認識はあってるよね?
Rubyでいう大部分のメソッドチェーンは 全部あわせてO(n)に収まると思う もちろんcombinationとかを使い始めると大変だが
Ruby製Zen codingってないですか? javascript製のコードが読めないのでRubyで読みたいのですが
>>560 (1..1000).map {|v| v * 2}.each {|v| print v} なんかも 1000回のループで済んじゃうの?
>>559 100個要素があるArrayに対していくらcollectをつなげても、
処理回数もメモリの使い方も100+100+100+...
みたいな増え方しかしないだろ?
>>562 それのループ回数は2000回だろ?
>>563 ああ・・俺頭悪いわ・・・ 1000 + 1000 だね確かに。
あれー、だれもこのもんだいにあたってないの?おれだけ?
>>552 >Ruby1.9にしたら、irbでC-zが効かないんだけど、そんなことない?
>当方MacOS X、Ruby1.9.3
Leopard、MacPorts版だが普通にC-zが効いてると思うのだが $ ruby1.9 -v ruby 1.9.3p0 (2011-10-30 revision 33570) [i386-darwin9] $ irb1.9 -v irb 0.9.6(09/06/30) $ irb1.9 irb(main):001:0> RUBY_VERSION => "1.9.3" irb(main):002:0> [1]+ Stopped irb1.9 $ fg irb1.9 irb(main):003:0* irb(main):004:0* irb(main):004:0> => nil $
Class#newの使い方がいまいちよく分からないのですが Class#newで生成されたインスタンスが引数を受け取るためにinitializeメソッドを上書きするのでしょうか?
>>567 …ん? Class#new はインスタンスの生成のために日常的に使うものだと思うんだが…
ちなみに Class#new はインスタンスを生成後
生成したインスタンス#initialize
を呼ばれた引数そのままに呼ぶ、それだけだよ
>>568 私の言い方がおかしかったかも
dot.push(Dot.new(rand(10)+75, 0))
で初期値の引数を渡すとき
class Dot
def initialize(x, y) ←ここで受け取ってるんだと思うけど
@x = x
@y = y
end
end
これってinitializeって名前じゃないとダメですよね?
何が言いたいの
Dot.new(0,1) というような形で引数を渡すときメソッドの名前がinitializeじゃなくて別の名前だと受け取れないってことでしょうか? class Dot def nanntoka(x, y) @x = x @y = y end end これだと受け取れませんか?
>>571 そりゃそうだろう。
それで受け取れてしまうと、newしたときにどのメソッドで初期化すればいいかわからない。
どうしても初期化処理をinitialize以外の名前でやりたいなら
def initialize(*args)
hage(*args)
end
def hage(*args)
...
end
とかすれば。
>>572 つまりinitializeは初期化するときのために使われる特別なメソッド名と言うことでしょうか?
>>574 なるほどinitializeが特別な名前だったんですね
答えていただいてありがとうございました
特別な名前って言うか、newがinitializeを呼ぶっていうただそれだけのことなんだけどね
あるプロセスのstdin/stdout/stderrを、すでに起動している別のプロセスに渡すようなことはできますか。 渡す先はすでに起動済なので、パイプは使えません。
入出力を中継するプロセスを作る
Ruby1.9.2か1.9.3で動くプロジェクト管理ってありませんか? 本当はredmine使いたいんですけど1.8.7は入れたくないのです
>>579 >入出力を中継するプロセスを作る
もうちょっと具体的にお願いします。
Rubyで、プロセスの実行ユーザを変更することはできますか。 Apacheだと、rootで起動してもワーカープロセスはdaemonとかwwwだったりしますが、 あれに似たことがしたいです。
>>578 既に起動しているプロセス側に何か仕掛けが出来るなら渡せるんじゃないかな
名前付きパイプなりソケットなり。
>585 setuidは意味が違いますよね。実行ファイルの所有者としてプロセスを実行することだから。
>>587 は?何いってんの?
setuid bit のことじゃなくてシステムコールのことなんだが。
setuidでググッて最初に出てきたwikipediaの最初の数行読んでわかった気になったんだとみた
平松サイド vs 橋下サイド 民主党 大阪市民 自民党 ν速民 共産党 財界 関西電力 連合 自治労 日教組 公務員 毎日新聞 MBS 解同 極左 大阪の敵が濃縮されてわかりやすくなったな
rubyでload("filename")するときに、そのファイルになんらかの引数をあたえる方法はありますか。 やってみたこと: @var = 1 load("filename") #=> @varはnil o = Object.new o.instance_eval do @var = 1 load("filename") #=> @varはnil end できれば$globalvarやCONSTANTを使わない方法を希望します。
ファイルはインスタンスとは違うから@varなんかでは渡せないよ。 なんでそんなことしたいのか分からないけどグローバルスコープのものでしか値は渡せない。 最終的に何をしたいのかとかfilenameの中身がなんなのかとかがわかればもちょっとマシな助言が貰えるかもね。
>>593 o.instance_eval の方で@varがロードしたファイルでnilになるのは当たり前。
loadやrequireはどこでロードしようがトップレベルにロードされる。
oのインスタンス変数@varに1を入れようが向こうの@varにはなんの関係もない。
そこにそのスクリプトの内容を挿入するというようなものじゃない。
o.instance_eval do
@var = 1
end
p @var #=>nil
とかやってんのと同じ。
当たり前だけど、トップレベルで
@var = 1
load("filename")
やったらロードしたファイルでもトップレベルの@varには1が入ってたよ?
>>581 プロジェクト管理についてはどの板のどのスレできいたほうがいいですか?
>>588 Process::Sys.setuid() でできました。ありがとうございます。
できれば最初から「Process::Sys.setuid」だと教えてくれた方が助かります。初心者スレなので。
>>586 >
>>578 >既に起動しているプロセス側に何か仕掛けが出来るなら渡せるんじゃないかな
>名前付きパイプなりソケットなり。
ありがとうございます。起動済のプロセスは自分でいじれます。
「名前付きパイプ」や「ソケット」を使うということですが、
stdin/stdout/stderrを、名前付きパイプやソケットに繋ぎ換えることはできるのでしょうか。
その発想が初心者だよな お前がもともとどこまで知ってるかなんてしらねーよ
>>599 stdin,stdout,stderrはいくらでも繋ぎ変えられるよ。
ゆとり乙
>>599 今調べてみたら ruby は標準では名前付きパイプサポートしてないわ。
rubygem にはあるみたいだけど。暇があったら FIFO で調べてみてね。
んで、ソケットの場合は・・・
起動済みプロセス側:
・入出力用のソケットを作って適当なポートで bind しておく
入出力を渡す側:
・ソケットを作って connect して IO.new で wrap する
・STDIN/STDOUT/STDERR の reopen メソッドで wrap したソケットを開きなおす
でいけるんじゃないかな。
とある状況の変数の内容(データ的には大量)を なるべく読みやすい形でHTMLに書き出したいんですが [a, $b, C].to_htmlfile("debug#{Time.now.to_s}.html") 位簡単に使えるライブラリって無いですか。
railsならrailsスレに行ったほうがいいよ そうじゃないならそんな限定的な需要にこたえるライブラリはないと思う
自作ライブラリですね、わかります
pp の変形みたいなの探せばあるんじゃない?
なんでHTMLなんだろう? csvとかに書き出すのをさっさと自分で書いたほうが早くね
>>611 これじゃだめなの?たいした手間ではないと思うけど....
for x in [a, $b, C]
File.open("debug#{Time.now.to_s}.html") do |io|
io.printf "<html><body>#{x.to_s}</body></html>"
end
end
もしHTML文書を自由にカスタマイズしたいのならERBを使えばいいと思うよ
颯爽と現れてfor文を書いていく回答者
個人的に、質問するときは目の前の問題の解決法だけじゃなく やりたい事そのものも書いたほうが良い示唆を得られると思うぞ。 HTMLダンプしたい根本の理由によっては色々ベストなやり方も変わってくると思う。
>>611 何か問題でも?
each なんて死ねばいい。
そうだそうだ 死ね死ね
PHPのdump_vars()に相当する関数ないですかって質問はちょくちょく見る
>>613 for文は置いとくとしてもちゃんと動くもので回答しろよ
for文を使ってまったく答えになっていないコードを書いていくから 「これだからfor文を使うやつは」って言われるんだよ 書くならもっとちゃんと書いてくれ…
<html><body><code>〜で出来ましたみたいなのは望んでないだろw
Pythonスレから俺たちは関係ないと声明が出されました
user agentを指定したりheaderに指定したデータをつけてGETでページにアクセスしたいのですが なんていうメソッドを使えばこういうのはできるのですか?
open-uri, user-agentでぐぐってみて
趣味でRubyを勉強したいのですが、プログラミングのプの字も知らない初心者なので、皆さんのおすすめの本やサイトがあったら教えてください。
初心者と言ったらNetBeands一択だな。
初めて聞くIDEだな
はじめてのRuby
秀丸で開発できない人、正直言うと軽蔑してます
628 :
デフォルトの名無しさん :2011/12/30(金) 14:52:18.86
Railsなら<%= debug(variable) %>でpreに入ったYAMLが吐ける。 見やすさは主観入るから知らん。
>>624 さん
>>626 さん
ありがとうございます。
調べてみたら初心者でも理解出来そうなので、少しずつ勉強したいと思います。
>>629 (オライリーの)初めてのRubyはプログラミング初心者には無理
寄らば大樹のなんとかでたのしいRuby買ってここで質問するのがいいかと
最低限のプログラミング環境設定はたのしいRubyに書いてあると思う
たのしいRubyはそう馬鹿にしたもんでもないよな
でもあれの練習問題はちょっと Webから見れる解答例がその章ではまだ習ってない知識を利用するものだったりして
そこらへん具体的に指摘すればテンプレに一行や二行入るんじゃないか
>>630 さん
ご指摘ありがとうございます。
勘違いをしていました。
「Ruby はじめてのプログラミング」という本を調べていました。
「初めてのRuby」はプログラミング経験者向けみたいなので、やめておきます。
薦めてくれた方、申し訳ありません。
>>634 Rubyではじめてプログラミング覚えて「たのしいRuby」から入ったよ俺
とりあえず全文通読してから、改めてじっくり初めから読むのがおすすめ
分からない言葉があったらネットとか索引で調べる。
1ページ目から順に進めていくと自然と分かる、というつくりになっていない。
なのでとにかく一回全部読むのがいい。
>>635 さん
ありがとうございます。
「たのしいRuby」は第3版が新しいみたいですね。
本屋で探してみます。
>>597 ありがとうございます
しかしredmineってなんで1.9に対応してくれないのでしょうかね
jsp見たいにhtmlに埋め込んで書いて動かす方法の参考ページってありませんか? <% p 11111111 %>
639 :
デフォルトの名無しさん :2011/12/30(金) 17:04:09.25
rubyinstallerからRuby1.9.3をZIPのほうをダウンロードしてきてC:\Rubyに入れました パスも自分で入れました その後にgemをupdateしたり適当にライブラリを入れました この場合、パスを消してC:\Rubyをフォルダを消すだけで大丈夫ですか? 他のバージョンを入れなおしたいんですがレジストリとか他の場所で消すものとかありますか? ちょっと心配なのがgemでインストールされたものってどこにインストールされてるのかわからないので困ってます
レジストリは気にしなくて良い
DevKitが入ってるバージョンのRubyってRubyInstallerにはないんすか? 別々にいれてくれってことなんすか?
朝日新聞は一時期300人のネット工作員をかかえ、反日工作していた。 捕まった編集者は49歳ですが、こんなカスでも1500万円の年収がもらえるんですよ。 Domain Information: [ドメイン情報] a. [ドメイン名] ASAHI-NP.CO.JP e. [そしきめい] かぶしきがいしゃ あさひしんぶんしゃ f. [組織名] 株式会社 朝日新聞社 −「朝日新聞社は、とある思想やパラダイムに日本の世論を誘導する見返りに、中国から大量の資金を貰っている。」− これはおそらく週刊誌さえ書けない。 「失語症躁鬱ニートは氏ねよ」【ネット】朝日新聞社員(49)ネットで荒らし行為、会社ごとアクセス規制へ 09.3
てんさいです 【東京都渋谷区】 12/31(土) 年忘れしてはならない!紅白さくら祭 みんなで「韓流紅白」をぶっ飛ばせ! 年忘れしてはならない!紅白さくら祭 みんなで「韓流紅白」をぶっ飛ばせ! 12時00分 渋谷駅ハチ公前広場 「街頭演説」(〜13時30分) 13時30分 移動 14時00分 渋谷公会堂前 「街頭演説」(〜14時45分) 15時00分 代々木公園・NHK横「イベント広場」 「年忘れしてはならない!紅白桜祭」 抗議集会・コンサート・炊き出し等々 盛りだくさんでお送りします!(〜21時00分)
>>637 単に手が足りてないんでないの?
あと、この手のシステムってまともに運用始めちゃうと
強力なメリットでもない限りバージョンアップしたくなくなる。
障らぬ神に祟り無し
1.9への移行は簡単とか言われてたんだから、誰かささっとやりそうなもんだけど、 実際はそうじゃなかったということなのか
じゃあ今1.3.0だからマイナーバージョンが0だから1.4は数年後になるってことなんですか? 遅いからこまる
見限るか寄付でもするかコミッタになるか さあどうする?
自分で1.9対応してpull requestすればいいんじゃない。
ファイルには、作成日時、更新日時、アクセス日時が属性としてありますが、 ユーザが任意の属性をつけることはできますか。 具体的には、ファイルのハッシュ値をinodeに保存できないものかと考えてます。
できません。 ファイルシステムに依存しちゃうのでそれは ruby の範疇ではありません。 ruby側のアプローチならinode とハッシュ値の対応表を別に持つほうが現実的。
655 :
デフォルトの名無しさん :2011/12/31(土) 16:20:08.64
1.8のプログラムを1.9でうごかしたら、 warning: variable $KCODE is no longer effective というエラーが出ました。 $KCODEを使わないようにするのがまっとうな手段だとは思いますが、 そんなに重要なスクリプトでもないし、とりあえずエラーがでなければいいので、 1.9でエラーになることなく$KCODEにアクセスする方法を教えて下さい。
ただ無視するだけなら -W0 つければいいんとちゃう?
>>655 こんなのがあるのか。知らなかった
相当便利に使えそうな代物だけどはてさて
便利かぁ? 存在がわかりにくい分、アプリに勝手に追加されまくってたら相当うざいぞ。
つーても、どんなファイルシステムでも、表に出ない属性なんて大体あるんだがな NTFSなんて属性だらけだぞマジで
ファイルにタグ付したりコメントつけたりと普通に便利だな 別のdb等でファイルと付加情報をペアで管理しようとすると ファイルの移動、リネーム等であっさり破綻するし
標準でサポートされてる属性ならまだいいが そのアプリでしか使わん属性とかばら撒かれるとレジストリ汚染並にうっとおしいと思うが。
見もしないのに鬱陶しがれるなんてずいぶん器用だなw
使われてないのがいい証拠だろ。
使われてないってどこ情報よ Linux界じゃ普通に使われてますがなにか レジストリとか言ってるWin糞はひっこんでろ
SELinux以外に使ってるのってあったっけ
拡張属性に親でも殺されたか。
Linux界ってどこにあるんだ?
折角あるんだし使うに越したことはない。 未読管理とかに使いたいなー。
Win糞にはそういう機能ないもんな
File.utime() でアクセス時刻(atime)と更新時刻(mtime)を変更できますが、 ctimeは変更できないのでしょうか。 ばかな質問でしょうが教えて下さい。
民主党党員名簿 (党員資格/代表選選挙人名簿) ※ 党外秘 1. 青木大姫 2. 秋山慶姫 3. 新井正煕 4. 金村成勲 5. 木下勲鍋 6. 佐井明博 7. 豊田檀君 8. 本山舜臣 1. 安藤重根 2. 池田青天 3. 金子佐鎮 4. 金山淑恵 5. 木子奉昌 6. 田山明雲 7. 平山明河 流石反日朝鮮人だらけの政党なだけはあるなw野田も韓国人疑惑があるくらいだし
WindowsでRuby1.9.3です 日本語ディレクトリをRubyから何とかして作る方法はございませんか?
>>677 utimeやchmod等を使ってステータスが変更された時間がctime
ファイル操作なんて全部`mkdirとかwshでやっておしまい
Dir.mkdir "漢字" で普通に作れないっけ・・・ ruby on cygwin 1.9.3 だけどちゃんと作れたよ。
>>680 Windowsユーザなんでctimeはファイル作成時刻のことだと思ってた
windowsではファイル作成時刻のことなので
変更したいなーとか思うときがあって
作成時刻が変更できるCUIのツールで変更してる
ファイラーやファイルコピーツールでは作成時刻も含めて
ファイルコピーするかどうかのオプションがあったりするし
Rubyで作成時刻変更したいときは
上記の外部コマンドを呼び出してる
探せばGemにありそうだし
Win32APIを直接呼んでもいいだろうけど
なんかめんどうなので
684 :
デフォルトの名無しさん :2011/12/31(土) 23:30:45.52
クラス内に列挙型の定義をしたいのです。 そのクラス内でのみ使用する固有の型識別値の列挙を定義するにはどうすればいいでしょうか?
ruby に列挙型はないので昔の Java みたいに new を private にして クラス定数にインスタンスを割り当てるやり方にでもするしかないんじゃないか。 クラス自体を private にする方法はごめんわからん。
686 :
デフォルトの名無しさん :2012/01/01(日) 00:59:00.25
684です。 お返事ありがとうございます。 列挙用メンバ変数のみのシングルトンを作る、ような感じでしょうか? やってみます。 ありがとうございました。
688 :
デフォルトの名無しさん :2012/01/01(日) 12:03:24.02
>>686 値に意味がなく区別さえできればよいケースなら、シンボルを使うという手がある。
列挙型が欲しくなる時っていうとシンボル名でソートしたくなる時ぐらいかなあ。 rubyだと型検査ないから制約の意味での列挙型としては使いづらい。
690 :
デフォルトの名無しさん :2012/01/01(日) 15:33:44.46
正しいHello worldの書き方を教えてください helloworld.rbに print "Hello world" って書いたのですがやり直しって言われました
やり直しって叱ってくれた人に聞けばいいんでない?
rubyでclassメソッド作ってリファクタリングしてメソッド分割すると 分割したメソッドもpublicにしなきゃダメなの? なんなの?
>>692 チャットで言われたのですもうその人には聞けないのです
Rubyの松本は本気でPHPの座を取りたいならマニュアルを分かりやすくまとめるべき 分かりやすいマニュアルさえあればプログラミング初心者を取り囲める あのライバル意識を飛ばしてくるPythonなんて眼中にねえぜ!
メソッドにしろってことじゃないの?
698 :
デフォルトの名無しさん :2012/01/01(日) 21:49:16.69
puts使うか、printなら改行するかしろということかのう。
______ r〃〃〃 f7⌒ろ) l‖‖‖ || f灯 |‖‖‖ || | | |儿儿儿._」⊥厶 〔__o____o_≦ト、 . i / ⌒ ⌒ ヽ ) !゙ (・ )` ´( ・) i/ | (_人__) | \ \ `ー' / / ー- 、 . ,ィ(⊆≧リ≦⊇)〃 / rク\ . / | ̄r少}¨ ̄〃 / /′ ヽ 〃 l | l| | l| 〃 / / └ヽ / l |l | |l/″ / ! 厂 \ く, Y ! l」fレト! / | / 1 丿 | | 丿} じ’ / | / | / l | `¨ / レ′ | 真の思考停 (在位 2009年9月16日〜2010年6月8日) 民主朝の初代考停、言行不一致、虚言、脱税、 そして外交において巨大な負の遺産を築いた。
>>691 とりあえずはそれでいいよ
ruby helloworld.rb
ね
パスが通っていない、ライブラリの位置が指定されていない(環境変数)とかも ありうる
\ ⊂[J( 'ー`)し \/ (⌒マ´ (⌒ヽrヘJつ > _)、 し' \_) ヽヾ\ 丶_n.__ ruby helloworld.rb  ̄ (⌒ ⌒Y⌒
くそこんなんで・・・
こうじゃね? #coding: utf-8 puts "hello world"
>>693 よくわからん。場合によりけりじゃないの。
クラスメソッドからしか呼ばれないクラスメソッドならprivateにできるけど。
>>695 PHP の座は全く欲しがってないと思う。
ブログで敵意むき出してたじゃん
敵意というか嫌いなだけだろう 少なくともPHPの位置は狙っていない
まあ、どちらにせよ初心者スレで語る話題じゃないな
Pythonのがわかりやすい Rubyはキモい
そうですね
普通にインクリメント出来なくてビビった
え?Rubyはi++みたいなのはできないのですか?
え?出来んの?エラー吐かれるんだけど
あるクラスのメソッドすべてに呼び出し元のクラス名を表示する機能を付け加えたいんだけど 各メソッドにハードコーディングする以外に何か良い手ってない? 考えたアイデアはサブクラスつくって メソッドを配列で取得してそれぞれ呼び出し元を表示しsuperを呼ぶようにオーバーライドする方法なんだけど 親のメソッドを取得する時点でつまずいた 親で定義したメソッドが取得できない そもそもこの方法であってるの? 総ruby暦一年未満で環境はruby 1.8.6、RDE
>>714 Fixnum は immutable なオブジェクトである設計になってて
メソッドは変数ではなくオブジェクトに対して作用するものだと考えると
i++ は実装しようがないわな。シンタックスシュガー的な実装はしたくなかったんだろう。
Rubyに致命的な所はマイナーバージョンが1上がるだけで互換性がない事だ この辺が言語仕様の致命的なダメージになる
互換性が無くなるようなコードを書く奴は、何使ったところでそういうコードを書く。 だから世の中に、ライブラリのバージョンを上げるなというプロダクトが山ほどある。
Pythonでいう以下の処理はRubyではなんてライブラリをインポートしたらできますか?
import urllib2
import simplejson
url = ('
https://ajax.googleapis.com/ajax/services/feed/find? ' +
'v=1.0&q=Official%20Google%20Blog&key=INSERT-YOUR-KEY&userip=INSERT-USER-IP')
request = urllib2.Request(url, None, {'Referer': /* Enter the URL of your site here */})
response = urllib2.urlopen(request)
# Process the JSON string.
results = simplejson.load(response)
require 'net/http' require 'json' 調べる気皆無だろ
>>719 >Rubyに致命的な所はマイナーバージョンが1上がるだけで互換性がない事だ
具体的に、どんな互換性が損なわれたの?
いままでそんなことに当たったためしがないから、知っておきたい。
>>680 >utimeやchmod等を使ってステータスが変更された時間がctime
そうなんですか?試してみよう。
irb(main):001:0> File.ctime('foo.txt')
=> 2012-01-02 23:49:18 +0900
irb(main):002:0> File.utime(Time.now, Time.now, 'foo.txt')
=> 1
irb(main):003:0> File.ctime('foo.txt')
=> 2012-01-03 00:51:53 +0900
utime() 呼び出したらほんとうに ctime が変更されてるー!
しらなかった。どうもありがとうございました。
ruby でこういう表現をするときの a = 0 print "a の中身は #{if(a==0) then "0です" end}" #{} ←部分の呼称ってあるんでしょうか? 他の言語でも同じようなことができるか調べたかったので 名前があれば知りたいのですが。
728 :
デフォルトの名無しさん :2012/01/03(火) 09:05:51.15
JISだと挿入文字並び(interpolated character sequence)らしいけど、 普通変数展開とか式展開(変数じゃなくても式ならOKなので)かなー。 Perl由来の言い方だと variable interpolation だったと思う。
式展開とかstring interpolationとか言う 変数でなく任意の式が文字列中に埋めこめるのは Ruby以外ではちょっと浮かばない(探せばあるだろうけど)
プログラミングRubyのRubyベタボメっぷりにRubyを使い始めて早10数年、使えば使う程にRubyって駄目だなと痛感する Rubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、数年も使えばそのどうしようもない互換性のなさにウンザリする しかも互換性が無くなることをマズいと思っていない集団がRubyを制作しているのでどうしようもない 1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、1.6→1.8ではそれが顕著になり、1.9など何のエラーも出さずに前のコードが動く方が珍しいほど それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、そして始まるPlain RubyとREEの方言問題 例えばPassengerもREEの方がうまく動いたり、かと思えば特定のバージョンだとPlainじゃないとまともに動かなかったりと、とても面倒臭い 美しいコードを求める為の副作用、という名の互換性のなさはRuby界全体に蔓延していて 例えばあれだけもてはやされたRailsも、Rails2とRails3の互換性のなさに誰しも苦労したのは記憶に新しいところ 誰もが互換性のなさに辟易し、俺ライブラリを量産するため、gemで探すと似たような事をする終わったプロジェクトがわんさか引っかかる 諸処の小さなプロジェクトだけがそんな現状ならば許せるが、dbiアダプタでさえそんな現状なので バージョンが変わるとデータベースにすら接続できなくなったとか、dbiのAPIバージョン変わったのにアダプタ側の更新ないな、 とか思ってるとアダプタ作者がRubyから足洗ってたとか余裕 身内同士でRubyはコードが美しいと四六時中自画自賛しているが、実はそれこそがRubyのガン その美しいコードという名のオナニーの為に一体どれだけの互換性と人的リソースが失われていったことか Rubyのコードは美しい、Railsスゲー、ベタボメする人は沢山いたがいつも一過性の人気しか得られないのはそこにあるし ベタボメしていた人達もしばらくするとウンザリしてRuby界から消えてしまうのも原因は実はそこにある 達人プログラマーはRubyをベタボメしなくなったし、Mongrel作者はRailsどころかRubyに見切りをつけちゃったしね ああいう熱狂的なRuby信者でもRubyから足を洗っているのを見ると、tDiaryがRubyに見切りつけてPythonで全部書き直したとか言われても驚かないだろう自分がいる
tl;dr
733 :
デフォルトの名無しさん :2012/01/03(火) 10:47:26.99
「他の言語だとあんまりない」のは「変数ではなく式」を埋め込むってとこ。
正確に言えば、「文字列の中に式を入れるという変態仕様」をしないってこと 見た目(文字列)とプログラムがきちんと分離されていない。
>>724 こういうのってマニュアルでどう探したらよいでしょうか?
二項演算子的なー
a = m[3].nil? ? hoge : m[3] って書いているところがあるんだけどm[3]を二度書いてるのが不満です どう修正できますか?
ごめんなさい自己解決しました a = m[3] || hoge でできました
739 :
デフォルトの名無しさん :2012/01/03(火) 11:31:14.74
falseも偽なのでちうい。
>>735 リファレンスマニュアルのライブラリ一覧でhttpだのjsonだののキーワードで検索するだけじゃん。
ruby http json とかでぐぐっても出るし。
だから調べる気皆無だろと。
初心者スレで説教すか笑
説教されたくなければ よそに行くといいよw
>>737 m[3]がnilでもfalseでも構わないなら
a = m[3] || hoge
説教できるならスルーも出来るようになってほしい(´・ω・`)
答えもせずに説教するならアレだけど 解答も入ってるんだから我慢しろよこのチンカス野郎
>>744 断るw
ここはオレが自由きままに書きこむ場所だ。
去年、俺はRuby王になると宣言した者だけど 未だに配列をforeachで出力する方法が何パターンもあって覚えられない
俺はRuby使ってないけど、 1日あれば覚える自信がある。
別に全パターン覚える必要ないだろ 好きな方法で適当に使っていればいい あとからもっといい方法が見つかれば乗り換えたり使い分ければいいだけ
>>739 falseが入ることはないので大丈夫です
ありがとう
>>743 の
a = m[3] || hoge
ってaにm[3]を代入
ただしm[3]がnilまたはfalseの場合はhogeを代入
って捉え方でもあってる?
752 :
715 :2012/01/03(火) 16:56:22.77
あれからいろいろ試したらせっかく教えてもらった力技を使わずじまいになっちゃった ちなみに下記の通り class A def hoge1{} def hoge2{} ... end class B < A (public_instance_methods - superclass.superclass.methods).each{ | overwride_name | define_method(overwride_name){ p caller() ; super} } end それで途中いろいろ試してて、 上記の親クラスのメソッドのオーバーライドの処理を子クラスのメソッドにしようとしたら上手くいかなかったんだけど、 クラス定義内でかつメソッド定義の外で記述された処理の省略されているレシーバ(self)は何を指してるの? klassのインスタンス(クラスオブジェクト)? また、クラスの中のメソッド定義内のレシーバ(self)はそのクラスから生成されたインスタンスオブジェクト? 動的にオーバーライドさせる機能のメソッド化ってrubyの仕組み上できるの?
>>751 m[3]が真ならm[3]を、偽ならhogeを代入
aに m[3] || hoge の返り値を代入するだけだから、その捉え方はちょっと遠回り
>>734 Perlも式展開できるよ。別にRubyだけ特殊というわけじゃない。
$a = 2;
print "$a x $a = @{[ $a*$a ]}\n";
755 :
デフォルトの名無しさん :2012/01/03(火) 17:25:12.51
5からリファレンスつっこめば可能なんだったな。
>>752 もはや図に書かないと何言ってんのかわからないレベル
757 :
715 :2012/01/03(火) 17:33:40.11
要はクラスBの (public_instance_methods - superclass.superclass.methods).each{ | overwride_name | define_method(overwride_name){ p caller() ; super} } をメソッド化したいだけなんだ
もう全然わからんから define_class_method とか define_instance_method とかどうなのよってのはどうなの {instance,class,module}_exec とかでスコープ変えて define_methodとか 色々禿げあがるまで試すしかない
>>725 1.9.2から1.9.3は結構非互換多いよ。単純に入れ替えたら動かなくなったし。
バグかも知らんけど。
継承しないで alias してオーバーラップするのはだめなん?
>>751 >>753 も言ってるけど、
「“m[3]が真ならm[3]、偽ならhoge”を代入」であってそのとらえ方は順序が違う
って
>>737 の自分が言うのもあれだけど
あと三つほどわからない所があるんですが よろしいですか?
よろしいですわ
よろしいですわ ///
よろしくてよ
Rubyの互換性の低さはどうにかならないのでしょうか? REEが正統な本家になるといいです。 モルモン教は嫌いです。 の三本です。
769 :
デフォルトの名無しさん :2012/01/03(火) 20:58:15.41
質問ひとつしかねーじゃねーか。 JISが出来た。ISOも提出されてるからその範囲では規格に従うんじゃねーの。
互換性が低いという奴は、具体的にどの辺が問題なのか教えて欲しいな。
互換性がない新しいRuby使うぐらいなら 他の言語に乗り換えてもいいじゃないかって 開発者が去っていくこと
一緒に去ればいいじゃん。 何の問題もない。 COBOL時代でもないんだしフットワーク軽くしろよ。
その結果、重要な開発者が去ってdbiのAPIバージョン変わったのに アダプタ側の更新ないなって問題が発生する。
単に自分がはまったから騒いでるだけじゃねーか
775 :
デフォルトの名無しさん :2012/01/03(火) 21:14:05.38
ライブラリ作者が去っていくと さらに普通の利用者も去りやすくなるな
だから一緒に去ればいいだけなのに。 どんだけRuby愛してるんだよ。
ダメにきまっとる
Rubyが世界に相手にされてなくて不憫です(´;ω;`)
プログラミング言語 インデックス 備考
1 Java 17.561 17ヶ月連続1位
2 C 17.057
3 C++ 8.252
4 C# 8.205 インデックス値を大きく増やす
5 Objective-C 6.805 6位から5位へ浮上。上昇傾向
6 PHP 6.001 5位から6位へ下落。2ヶ月連続の下落
7 (Visual)Basic 4.757
8 Python 3.492
9 Perl 2.472 10位から9位へ戻る
10 JavaScript 2.199 9位から10位へ下落
11 Ruby 1.494
12 Delphi/Object Pascal 1.245
【ν速パソコン部】C,C++はもう古い。これからはC#
http://ikura.2ch.net/test/read.cgi/news/1325583758/
Cが2位とかJavaScriptが10位とか色々おかしくないかそのランキング。 Rubyはそんなもんだろうけど。
>>752 のサンプルコードはちゃんと動いてるように見えるけど
何がどう上手くいかなかったのか、聞きたい事がなんなのか要領を得ない
「メソッド化」とかどういう意味?
単に検索された数だからな JavaはJavaScriptと混同してて CとC++はゲーム作りたいんだけどとりあえずCってのをやればいいんだろ?ってノリなだけ
>>768 1.8系でも使ったら?もう変わることはないよ。
>>779 何を数値化したのか知らんが、初心者スレで語る話じゃないな。
>>783 初心者スレとは名ばかりでアンチとシンパの魂をぶつけ合うスレだから。ここは。
>>784 いや、本スレよりよっぽど質問とか来るスレなんだが…
追い出しはよくないな
'追い出し' => '初心者の追い出し' ね
>>757 def create_debug_methods(klass)
klass.instance_eval do
superclass.public_instance_methods(false).each do |meth|
define_method(meth) { p caller() ; super }
end
end
end
class A
def hoge ; p :hoge ; end
def hello(name) ; p name ; end
end
class B < A ; end
create_debug_methods(B)
b = B.new
p b.hoge
p b.hello(:foo)
>>759 で、きみが困った非互換とは具体的に何だったの?
おれはかなりrubyを使っているんだがそういうのに直面したことが、大昔の1.6−>1.8のcgi.rbぐらいなので、
みんな何に困ってるのか知りたい。
%w記法で空文字列はどのように表現すればいいのでしょうか? %w(foo ?? bar) => ["foo", "", "bar"]
%w(foo \ bar) やってみたらできただけで仕様上動作が保証されてるかは知らない
あ、ごめん。空文字列じゃなくて " " になってた
>>790 はなかったことに
793 :
デフォルトの名無しさん :2012/01/04(水) 10:27:28.73
あまり綺麗じゃないけど、 %W(foo #{''} bar) くらいしか思いつかん。(大文字Wね)
794 :
デフォルトの名無しさん :2012/01/04(水) 10:30:24.19
796 :
715 :2012/01/04(水) 11:29:35.27
トップレベルに記述してそれを子クラスに使いたかったわけじゃないんだ 子クラス内に記述し、メソッドとして定義して、 インスタンス化後に任意のタイミングで使用して親メソッドをラップするようにしたいんだ 最初は呼び出し元を表示する機能の付加だけを考えてたんだけど(トレースでの方法とか色々教えてもらったけど) 任意のタイミングで機能するラッパーにしたら他にも利用できそうだからいろいろ試してたんだ でも、define_methodがクラス内の記述する場所によって通ったりエラー(NoMethodErr、Undefined等)をだしたりするから、 アクセス制限関連で省略されてるレシーバが実はクラス内でも違うんじゃないかと考え至った それでそもそも上記のような事がrubyの仕組み上で出来るのかどうかや 自分の現段階での理解があってるかどうかが気になって再度質問したんだ 記述を子クラスにこだわるのはクラスの事は出来るだけそのクラス内でまとめたいから
class A def hoge ; p :hoge ; end def hello(name) ; p name ; end end class B < A def self.debug_on instance_eval do superclass.public_instance_methods(false).each do |meth| define_method(meth) { p caller() ; super } end end end def self.debug_off superclass.public_instance_methods(false).each do |meth| remove_method(meth) end end end b = B.new b.hoge B.debug_on b.hello(:foo) B.debug_off b.hello(:bar)
>>797 修正
class B < A
def self.debug_on
superclass.public_instance_methods(false).each do |meth|
define_method(meth) { p caller() ; super }
end
end
def self.debug_off
remove_method(*superclass.public_instance_methods(false))
rescue
end
end
______ r〃〃〃 f7⌒ろ) l‖‖‖ || f灯 |‖‖‖ || | | |儿儿儿._」⊥厶 〔__o____o_≦ト、 . i / ⌒ ⌒ ヽ ) !゙ (・ )` ´( ・) i/ | (_人__) | \ \ `ー' / / ー- 、 . ,ィ(⊆≧リ≦⊇)〃 / rク\ . / | ̄r少}¨ ̄〃 / /′ ヽ 〃 l | l| | l| 〃 / / └ヽ / l |l | |l/″ / ! 厂 \ く, Y ! l」fレト! / | / 1 丿 | | 丿} じ’ / | / | / l | `¨ / レ′ | 真の思考停 (在位 2009年9月16日〜2010年6月8日) 民主朝の初代考停、言行不一致、虚言、脱税、 そして外交において巨大な負の遺産を築いた。
このスレはレベル高いよな PHPスレとかバカの溜り場と化してる
50歩100歩
rubyでコマンドラインアプリを作っています。 そのアプリは多数の外部ライブラリ(rubygems)を利用しています。 コマンドラインのオプションによっては、ライブラリAを使ったり使わなかったりします。 ですので、ライブラリAをインストールされていなくてもアプリが動くようにしたいです。 ですが、先頭でrequire 'A'をした場合、エラーが起きてしまいます。 どうやって解決するのが良いでしょうか?
動的に読み込む関数使えばいいんじゃねーの? PHPならincludeみたいなの。 ま、Ruby知らないから何使うのかしら無いけどw でも的中しているはずだから俺のことを信じて頑張って。
>>802 先頭で require しなければいいだけでは。
もしくは使われた時に初めて require される autoload を使う。
require 'foo' # class Hoge と class Hage が入ってるとする
a = Hoge.new
...
↓
autoload :Hoge, 'foo'
autoload :Hage, 'foo'
a = Hoge.new # ここで初めてロードされる
...
>>802 条件判断してからrequireしたらいいんでないの
806 :
デフォルトの名無しさん :2012/01/05(木) 01:38:34.01
あるいは、それぞれのrequireごとに個別にLoadErrorをrescueして無視する。
807 :
デフォルトの名無しさん :2012/01/05(木) 01:39:31.46
ですよね
808 :
デフォルトの名無しさん :2012/01/05(木) 11:36:12.58
プログラムの文字リテラルのデフォルト文字コードを途中から変えたいのですが Encoding.default_internalへの代入では変更できないのでしょうか? すべての文字リテラルの末尾に.tosjisをつけなければならない状況になりそうなので 方法があれば教えて欲しいです Ruby 1.93です # -*- coding: utf-8 -*- puts "".encoding Encoding.default_internal="Shift_JIS" puts "".encoding
>>808 リテラルは UTF-8 で全部書いてあるんでしょ?
それじゃ内部コーディング変更したらまずいんでないの?
別ファイルに分けたらどうかと思ってやってみたら見事文字化けしたぜ
すまん
>>809 をちょっと訂正
別ファイルに分けたらちゃんと encoding わかれてたよ。
in euc.rb
# -*- coding: euc-jp -*-
puts "漢字".encoding
load "utf.rb"
in utf.rb
# -*- utf-8 -*-
puts "漢字".encoding
=>
EUC-JP
UTF-8
同じファイル内に複数エンコーディングのリテラル混在は無理でしょ。
そんな器用な保存出来るエディタもないだろうし。
811 :
デフォルトの名無しさん :2012/01/05(木) 12:20:51.44
ファイルはUTF-8で保存しています エディタというかRuby内部でリテラルのエンコードを途中から変えてくれる機能はないのでしょうか? 具体的にやりたいことは function1("文字列") function2("文字列") と、あって UTF-8で渡していいようには作られていないライブラリの関数だったので function1("文字列".tosjis) function2("文字列".tosjis) ↑こんな記述を大量に書かなければいけない状況です なのでこの.tosjisをはずしたいのですが
>>811 ラッパー書けばいいじゃん
def wrap_function1(str)
function1(str.tosjis)
end
813 :
デフォルトの名無しさん :2012/01/05(木) 12:36:25.12
その手がありました ありがとうございます ちなみにこんな感じに alias func2 func def func t func2 t.tosjis end
>>811 内部リテラルのエンコードってのは、
内部リテラルが何で記述されているか、を示しているわけだから
UTF-8で保存されているのをsjisとみなすのは無理だよ。
シンプルに shift_jis で漢字を記述したファイルつくって
-*- coding: utf-8 -*- で encoding 出してみればわかる。
>>812 みたいにしたり、継承したり特異メソッド作ったりするのが正攻法だと思うけど。
class ExternalLib
def something(shift_jis_string)
# do something
end
end
class CustomLib < ExternalLib
def something(any_string)
super(any_string.tosjis)
end
end
class A ... end class B < A def method @@x = self.class class << self p @@x.superclass =begin この特異クラス記述部分からAクラスを参照したいんだけど 普通にself.superclassやったらClassを参照しちゃう 直書きやクラス変数で渡す以外に何か手はない? シングルトンクラスからオブジェクトを参照するメソッドがあっても良い様に思えるんだけど 探しても見つからなかったよ =end end end end
>>816 class B < A
def method
class << self ; self ; end.class_eval do
#
end
end
end
>>817 初心者スレなんだからもうちっとわかりやすく書こうぜ。
class B < A
def method1
singletonclass = (class << self; self; end)
singletonclass.class_eval do
# ここは単なるブロックなのでAを参照できる
end
end
end
つうか単に ::A とすれば済む話かもしれない。
東京にある6つのキー局の内、製作から財務まで一貫して朝鮮人が行ってるテレビ局が1つ 中国共産党から毎年大量の反日工作費が流れているテレビ局が2つ もろに北朝鮮と繋がっているテレビ局が1つ 年寄はまだまだテレビという外国人に騙され続ける
820 :
uy :2012/01/07(土) 08:55:01.19
rubyの開発環境作ってまじではやく RDEでやるのはそろそろ限界ぽ 文字コード周りでまた新たなバグがでてきた なんでこんなにゴミッカスなんだよ 俺様に作れっていってんの ざけんなカス
821 :
uy :2012/01/07(土) 08:56:36.17
今俺様はそれなりに忙しい プログラミングなんてやっている暇はない ああ面倒くさい 1日で作れるんかな つうか作るとしたら前々から思ってた ifやforの記号化をしたいから アアアアアアアアアアアアアアアアアアもううwぁぁあああああああああああああああああああああ
822 :
uy :2012/01/07(土) 08:58:27.72
欲しいのは色分けなんだよ マクロ機能は 毎日ゴミグラミングやってる奴だったら、自分が登録したマクロは覚えているんだろうけど 俺様は1ヶ月に1回くらいしかもうやっていないから自分がそのとき登録したマクロなんて 1ヵ月後まで覚えちゃいないからマクロはいらない 色分けさえ出来てればはっきりいって満足 こだわらずやれば1日でいけるか やらねーよカス
823 :
uy :2012/01/07(土) 08:59:50.53
つうかUTF-8ってなんだよ すべての元凶はここにあるだろ 文字コード 世界で最初に文字コード作った奴等がすべて悪い
824 :
uy :2012/01/07(土) 09:03:02.76
ハハハッ
再帰もかけないゴミカスがこのレスを読んでるwwwwwwwwwwwwwwwwww
必死にレスを考えてるwwwwwwwwwwwwww
>>825-999 9999999
チョッギルルルッリリリィィイイイイイイイィィwwwwwwwwwwwwwwwwwwwwwwww
xyzzyを使って、どうぞ
>>824 再帰なんか書くゴミグラマーは死滅しろよw
forとかつかわねーなあ
ifやforの記号化で思い出したけど APLとかJとか使ってる人って今もいるんだろうか
>>831 >チョッギルルルッリリリィィイイイイイイイィィ
これはどういう意味なんだろ....
アナタハニホンジンデスカ? >> uy
外部サイトから取得してきた文字列を変数pに入れます この文字列の文字コードが何かを調べる方法はありませんか? それとこの文字コードをUTF-8に変換する方法を伝授してください p = "ここに文字コードが分からない文字列が入っている"
gemでインストールしたパッケージを削除したいのですが依存も含めて削除するにはどうやるのでしょうか? WindowsでRubyをインストールした状態のときのgemのときに戻したいのです 単純にgem uninstallってやったら ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) ってエラーになりました
>>830 kconv.guess(p)
p.toutf8
>>830 変数名として p はかなり悪い部類に入る
文字列の変数名として特になにも思いつかない場合は str か s を使うとよい
で、日本語の文字コーディングシステム(文字コード、文字エンコード)の推定をするライブラリで精度が高いのは今のところ NKF しかない
これのせいで NKF を捨てられない人多数
# Ruby 1.8.x 用
require 'nkf'
%w[UNKNOWN ISO-2022-JP CP932 NOCONV BINARY us-ascii UTF-8 '' UTF-16 '' '' '' UTF-32][NKF.guess('にほんご')]
# Ruby 1.9.x 用
require 'nkf'
p NKF.guess('にほんご').name
変換に使うライブラリは、「推定が間違っていた場合どうするか」と「変換エラーな文字をどうするか」で結構違う
Ruby 1.9.x なら String#encode でいいと思うけど、1.8.x の場合はどうしよう
>>831 gem ディレクトリばっさり削除でいいんじゃなかろうか
835 :
デフォルトの名無しさん :2012/01/07(土) 14:15:12.47
>>831 * gem dependency とやって、依存がないものから消していく。
(development dependencyがあっても無視していい)
* rubyに付いてくる(ダミー)gemは
bigdecimal/io-console/json/minitest/psych/rake/rdoc
なので、それ以外を消す。
ただし、「Windowsでインストールしたときの状態」が他に有用そうなものを
同梱したパッケージングになっているかもしれないな。
* gem-orphan というgem拡張gemを入れて gem orphan を実行。(判定はわりと適当気味?)
マリオに出てくるアレか
それはテグザー
Windows版Ruby1.9.3のFileあたりのバグって直りそう?
どんなバグあったん? cygwin だと ~ の expand がおかしかったから手を入れてごまかしたが。
ninja
842 :
デフォルトの名無しさん :2012/01/08(日) 00:03:37.83
rubyのソースコードをきれいに整形するものってどこかにないですか? eclipseのRDTだとある程度きれいにしてくれるけど、例えば a=b.method(1,2) みたいなのを a = b.method(1, 2) みたいなレベルできれいにしてくれるものがあったら精神衛生上非常に良いのだけど。
インデント系のしかしらないなぁ・・もっともそんなのエディタレベルで充分やってくれるもんね。 1.9から ripper 標準搭載になったわけだし誰かしら作っててもよさそうなもんなんだけど。
22 名前:名無し募集中。。。[] 投稿日:2012/01/06(金) 23:40:34.39 0 AKB=金正恩 この意味わかるか AKBという捏造ブームの裏に何があるか見えるか?
Rubyでは何がキレイなコードなのか 明快な合意が得られないような気がする Cでも例えば if (expr) か if ( expr ) かとか 細かい流派の違いがあったりするし
他言語でよくあるタイプのだとそういう細かい整形ルールを予め設定出来るのが多いよね。 eclipse 上の Java とかそんな感じだ。プロジェクト毎に統一するわけやね。
>>840 前スレ参照
foreachだかでイテレータ作るとバイナリモードの指定が無視されるとか
ある文字列集合に特定の文字列が含まれているかどうか知りたいとき、 以下の方法で速度は違う?あるいはハッシュを使った方が早い? a = ["apple", "banana", "orange"] a.index("orange") #OK a.index("lemon") #NG a = {"apple" => 1, "banana" => 1, "orange" => 1} a["orange"] #OK a["lemon"] #NG
ハッシュの方が明らかに速い。 indexは線形探索。
850 :
848 :2012/01/08(日) 12:45:43.48
了解です。ありがとうございます。
一応 set ってのもあるけど微妙に使いづらいんだよな。
Array#index や Array#include? はコレクションの先っちょから順番に探すので、 Array のほうが毎回確実に速いというパターンはありうるけど、あんまし頻繁にある事象ではないな… ちなみに一番時間がかかりうるのが String#equal? だったずなので、 長大な文字列ばっかりでどーしても遅いという場合はどうにかするといい
853 :
デフォルトの名無しさん :2012/01/08(日) 13:34:04.84
もし〜〜の結果がnilじゃなかったら実行するって時に効率よいやり方知ってる?例えば以下の感じ。 for i in 0..18 do result = [] result << Date.MONTHNAMES[i] if Date.MONTHNAMES[i] end result<< の部分でDate.MONTHNAMESを2回も書きたくないわけよ。
>>852 ハッシュの場合はまずハッシュ値で探すから長大な文字列かどうかはあんまり関係ないよ。
>>853 ちょっと思いつかないな・・・
自分は大人しく適当な短めの変数に受けてニ回書いてる気がするわ。
forは使うな(迫真) この手の問題は結構みんな困ってて、 result = [] 0.upto(18) do |i| if s = Date.MONTHNAMES[i] result << s end end とか条件のとこで変数代入したりしてごまかしてる でも今これ単体で試したら警告が出るな… > warning: found = in conditional, should be ==
lisp の anaphoric if みたいのが欲しいということかな? (aif (hoge) ;; (hoge) の結果が it という変数に束縛される。 it)
858 :
デフォルトの名無しさん :2012/01/08(日) 13:59:42.05
>> 855, 856, 857 ありがとう、わかりました。やっぱりここはある程度しょうがないのね。。
foo.bar if foo ↓ foo..bar くらいは欲しい所
>>853 result = Date.MONTHNAMES.select{|e| e} とか書けるよ
そのくらい知ってるならスルーで
そこまでして無理矢理にやりたいわけじゃないだろw
>>857 elisp でそのマクロ設定したら超はかどった記憶がある。
>>853 (0..18).map{|i| Date.MONTHNAMES[i]}.compact
でいいんじゃないの?
MONTHNAMESが18もあるわけないからnilが6つばかし無駄になるぞ
というかあくまで
>>853 のは単なる一例でループしてるのはとかはあんまり関係なくて、
if の条件部分が二度出るようなケースをどうにかならんのかって話だと思ったんだが。
>>866 そんな難しい隠れた条件読めるはずないじゃないですかやだー!
>>852 探索に強い偏りがあるなら自己再構成リストはアリかもしれない
発見した要素をArrayの先頭に挿入しなおす
……RubyのArray実装って、先頭を操作すると
全体がコピーし直されたりするんだっけ?
もしそうなら効率は逆に悪化してしまうかもだが
いわゆる aif のようなアナフォラが許されるなら result << it if Date.MONTHNAMES[i] と書けるんじゃないかっていう話か Groovyとかでは出来ないのかなあ
Arrayってなんてよむの?
荒井
(it = Date.MONTHNAMES[i]) && (result << it) みたいな書き方はたまにしてしまうけど イマイチなんだよなぁ
>>870 英単語読みとしても歴史的カタカナ読みとしてもアレイとお読み下さい
アクセントは「レ」にお願いします
>>867 >>853 >もし〜〜の結果がnilじゃなかったら実行するって時に効率よいやり方知ってる?
>>868 unshift のことならしっかり memcpy で移動してるよ。
array なんぞ使わずに普通に連結リストで実装すればいいんじゃないの。
>>853 >for i in 0..18 do
> result = []
> result << Date.MONTHNAMES[i] if Date.MONTHNAMES[i]
>end
これって
result = []
for i in 0..18 do
result << Date.MONTHNAMES[i] if Date.MONTHNAMES[i]
end
の間違い?もしそうだとして、
x = nil
result = []
for i in 0..18 do
result << x if (x = Date.MONTHNAMES[i])
end
と書けるはず。最初にxを初期化することでxがローカル変数であるとRubyに認識させるのが大事らしい。
まあこの場合なら
(0..18).collect {Date.MONTHNAMES[i]}.compact
がいいだろうけど。
>>866 そういう話だと一発で看破できるかどうかが、ぶっちゃけけっこう分かれ目だとは思う
どうせ一回しか書かないんだから我慢して書いちゃえよw
クラスフルパスやメソッドチェーンがすっげぇ長いとか、実行に際して副作用があるので1回しか実行させたくないとか、けっこう該当場面はある 言語レベルでサポートしてもらえたなら、まあ、そりゃ素敵ではあるが…
震災前 /::::::::::::::::::::::::::::::;;::ノ ヽ;::\ /::::::::;;;;;;;;;,,,;;...-‐''"~ ヽ:;::l |:::::::::::| 岡田 異音 |ミ| |:::::::/ ,,, ヽ,、 '|ミ| '|:::::::l '''"" ゙゙゙゙` |ミ| |:::::|. ,,r ‐、 ,, - 、 |/ ,/⌒| ノ ・ _), (. ・ `つ| | ( "''''" |"'''''" | ヽ,,. ヽ | | ^-^_,, -、 | | _,, --‐''~ ) | マニフェストもう守れない。どうしよう・・・・ 'ヽ ( ,r''''''‐-‐′ / 震災後 |:::::::::/ |ミ| |::::::::| ,,,,, ,,,,, |ミ| |彡|. '''"""'' ''"""'' |/ /⌒| -=・=‐, =・=- | | ( "''''" | "''''" | .ヽ,, ヽ .| キリッ | ^-^ | . | ‐-===- | 大震災が起こったのだからマニフェストの破綻も致し方ありません ,\. "'''''''" / 朝鮮民主党 おわり
ちょっと違うけど
Groovyにある ?: 演算子みたいなのがあるといいね
メソッドで作ると
class Object
def 真ならレシーバーを偽なら引数を返すメソッド(arg=nil)
if block_given?
(yield self) ? self : arg
else
self ? self : arg
end
end
end
foo = ''
foo.真ならレシーバを偽なら引数を返すメソッド( '偽' )
foo.真ならレシーバを偽なら引数を返すメソッド( '空文字列' ){|e| !e.empty?}
見たいなのが標準装備されんかな
>>859 Groovyの ?. 演算子とか
メソッドチェーンを途中で打ち切る演算子だから
こればっかりはメソッドではどうにもならないなぁ
メソッドチェーンを打ち切りたかったら 例外出せばいいよ。
>>808 Encoding.default_internal はリテラルのエンコードを示しているわけじゃないよ。
何かと入出力するときのデフォルトの内部コードを示しているだけ。
ファイル開いたりした時に内部エンコード指定を省略するとその値が使われる。
884 :
デフォルトの名無しさん :2012/01/09(月) 15:49:59.64
逆引きrubyのサイト、荒らされてね。。。?
記事消失だな
やったね!
887 :
デフォルトの名無しさん :2012/01/09(月) 16:54:05.04
民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している 野田内閣は過半数が帰化人 野田はどうだろうか 韓国人から賄賂を貰い、韓国人の集いに出席している野田は
>>889 そこのリンク先見ればわかるけど、 1.9 系は最初から問題ないっす。
> All Ruby 1.9 series are not affected by this kind of attack.
>>890 まじすか
アンインストールしてしまいました
また入れなおします
英語リソースのほうが充実しているのはいつものことなのでもうなんとも思わん
せめて英語公式にあるものくらいは日本語に訳して置いておいて欲しいとは思う そんなに人員足りないのだろうか
自分で英語読める場合、一々翻訳しておいておこうって意欲がわかんしな。
翻訳が間に合わないにしても原文へのリンクぐらいは置いとくべきだわな 開発陣のセキュリティ意識の低さが如実に現れたね
>>897 というか、Ruby本家公式サイトは今も昔も英語版のほうなので…
899 :
デフォルトの名無しさん :2012/01/10(火) 18:24:06.90
訳すも何もmputが最初から英文オンリーで投稿してるわけで。
本格的に使い始めたら、どっちみち英語ページとか見る事になるから、英語読めるようになっといた方がいいんじゃないの?
英語も読めないプログラマーなんているの?(笑い)
あのサイト構成でそれはないわ
あんたは世間知らずだな。大勢いるよ
たしかになあ。 Accept-Language が ja だと強制的に日本語ページに飛ばされる上に 英語ページへのリンクはフッタまで見ないと辿れないという。
まあ、パッチ作った人は、日本語メインページの編集権を持って 無かったのだろうな
ていうか、これがこれであれなんだし、最初は用意できてなくても仕方ないとしても、そろそろできていいよね
MLとかいろんなモノの 翻訳プロジェクトみたいなのがなかったっけ?
>>906 重要度はわりと上で話題にもなってるので、Rubyとしての日本語リソースをなんとかしてくれるとホントは嬉しいな
しかも初心者スレの話題じゃねえ
このタイミングで日本語ページなんて作ったら俺が2ちゃんねらだってバレるじゃないかっ…!
に、2ちゃんねるを見た人に頼まれたんだよ! という体でひとつ
今年は丑年! みんな夜露死苦ね
>>904 yes, and
ふだん日本語のページしか見に行ってないから
情報が英語ページにだけあるというのは想定外だった。
そう知ってれば英語ページも見に行くのだろうが。
rubyにはお世話になっています。
__________ | 見ろよ! | ./::::::::::::::::::ノ、ヽ | 民主党支持者がいるよ!w | ./:::::::;;;-‐‐''"´ |:::| \____ ________/ |:::::::| 。 .|:::| ノ´⌒ V _____ .|::::/ ⌒ ⌒ ヽ:| γ⌒´ ヽ, / _____) |:::| /・\ /・\|| // ""⌒⌒\ ) | / ヽ げひひw .|´ ⌒_ ヽ⌒ | . i / ⌒ ⌒ヽ ) | 〉 ⌒ ⌒ | .| :::⌒(__人_)⌒| !゙ /・\ /・\i/ |/. /・\ /・\ヽ ⊂ ̄ヽ___ ヽ \__| ⊂ ̄ヽ_ | :::⌒(__人_)⌒⊂ ̄ヽ_ | ::::⌒(__人_)⌒:: | <_ノ_ ヽ_ _/ <_ノ_. \ \__| / .<_ノ_ \ ´ \__| ノ い〜ひっひw
Emacsで書いてる時に、 array = [ "foo", "bar", "baz", ] ↑こうなって欲しいのに、実際には↓のようになってしまう。 array = [ "foo", "bar", "baz", ] これを直して、上のようなインデントにするにはどうしたらいい? emacs-versionは22.3.1です
いや、Emacsスレいけよそれは。
それはRubyスレで聞くことではない
それはできたような気がするが、残念ながらあんまり一般的ではないので注意 他の人の書いたスクリプト読み込むと再インデントしにくくなるぞ
どこにもない。あえて言うならソース。似ているので良ければメソッド呼び出し
それ多重代入になってないんじゃないの
>>914 NetBeandsだとちゃんと上のようになるからEmacsのバグっぽいな。
>>921 Emacs の Ruby 用スクリプトを書いている人の趣味かもしれないので、
バグかどうかは分からないのでは?
>>918 なんだけど、
lvar = *rvar
では、
・rvarがArrayのときは lvar = rvar と同じ
・rvarがそれ以外の時は lvar = [rvar] と同じ
という理解でいいでしょうか。
これら以外の場合分けがあるのか教えて下さい。
>>915 ,916
rubyのソースにruby-model.elがついてくるんだから、ここで聞くほうがいいと思うよ。
ruby-modeで独自に設定してるわけじゃないので、やっぱEmacsスレのほうがいいと思うけどなあ
>>924 >>914 が Emacs のバージョンしか明示していないので、
Emacs に付属している ruby-mode を使っているのかな。
その場合はどうなんだろう?
うちの ruby-mode は普通に↑のケースになったから
>>914 の設定が変なだけだろ。
キーワードのあとにある閉じていないカッコのあとに改行をした場合 直前のキーワードの終わりの深さにインデントを揃えるという設定自体は ruby-mode に書かれてると思う ということで ruby-deep-indent-paren を nil ただしこれは method_name(long_arg1, long_arg2, long_arg3) も method_name(long_arg1, long_arg2, long_arg3) にしてしまう
ruby-deep-indent-paren から [] に関する情報削ればいいんじゃね
何スレだよ emacsよりIDEを語れよ
>>928 その設定でいけました。たいへんさんくすです。
>>927 emacs22.1.1 + ruby-mode.el (ruby-1.9.3-p0付属) でも
emacs22.3.1 (CarbonEmacs) でも同じ結果だったから
変なのはそっちの環境だと思う。
>>929 これどうやって削るんだかさっぱりわかんにゃい
? ってなんで書いてあるんだ
>>931 M-x describe-variable ruby-mode-version いくつ?
>>935 931に
> ruby-mode.el (ruby-1.9.3-p0付属)
ってかいてあるじゃん
937 :
デフォルトの名無しさん :2012/01/11(水) 22:22:11.91
>>936 ruby-mode は ruby 1.9.3 に付属の方が emacs 本体付属よりバージョン低いのに内容が新しいという
わけわからん状態になっていてだな。
emacs使ってる奴は一周回って情弱
>>923 class Test
def initialize(*arg) ; @ary = arg ; end
def to_a ; [0] + @ary + [-1] ; end
end
t = Test.new(1,2,3,4,5)
a = *t #=> [0,1,2,3,4,5,-1]
>>940 なにがいいたいのかわかんない。コミュ障?
>>928 むしろメソッド呼び出しは下のが好きな俺は異端?
正確には最初の引数から既に次の行に書くのだけれども
>>928 みたいな引数改行インデントのどんなのがかっちょええか見やすいか便利か論理的かというのはぶっちゃけ答が出ない
理屈としてはカッコ開始にインデント揃えたほうがよさげなのだが、
実際に書くときはかなり書きづらいし、ものによっては文字通り「浮いて」て見映えもアホっぽい
2chやニコニコ動画に民主党から反日工作費が流れていることが知られるようになってきた。 民主党が用意した資金で工作員が2chを荒らしていることもだんだんと知られるようになってきた
Ruby/tkの入力関係について質問です WindowsでTkEntry等へ日本語入力を行うと動作が停止してしまいます. 軽く検索をかけてみても良さげな解決策が見つかりませんでした. Windows7の64bit,rubyのバージョンは1.8.7,ActiveTclは8.6.0.0を使用しています. もしバージョンのかみ合わせが悪いだけならうまく動く組み合わせを教えていただけませんか?
Ruby1.9で、パースした結果のバイトコードをファイルにキャッシュする方法ってなかったっけ? ちょうどPythonみたいな感じ。
まだない
>>947 ./configure時のオプションで指定するとかできませんでしたっけ?
なんでそこで粘るのかね 即レスだったから? YARVに吐かせたバイトコードを保存して再度YARVに渡すことで理屈的には同じことができるはずだが、おそらく望んだものではないと思う
forkした子プロセスにタイムアウトを指定して、何秒以上たったら強制的に終了させたい。 どういう方法がいいでしょうか。
951 :
uy :2012/01/13(金) 20:31:17.53
スレッド作って スレッド内でforkして スレッド内で秒数数えて スレッドからプロセスexitして スレッドもexitする
require 'resolv' しなければどうにもなんないというパターンも意外と多い
>>949 じゃないけど、ないと言われて不満に思って粘るぐらいなら自分で調べた方がいいと思うの
957 :
uy :2012/01/13(金) 23:39:48.88
>>945 xp、ruby1.9.3でやったら別になんともなく動いた
Tkはupdateしたから最新だと思われる
ただボタンクリック時に謎のエラー(動作は停止しないけど謎のエラー)が出やがったりしたし
Ruby/Tkなんてそんなレベルのものだと思う
958 :
uy :2012/01/13(金) 23:46:16.75
959 :
uy :2012/01/13(金) 23:55:19.07
rubiniusのwindows版が見つからない 動かそうって努力はしてるみたいだが uy様ありがとうございますとか、レスあっても良いよ
uyって恥ずかしい奴って知ってた? 効いてるw効いてるwって書くと顔真っ赤にしてファビョリだすから面白いな Rubyはネタキャラが豊富でうらやましいで
最近ム板に来たお客様?
963 :
uy :2012/01/14(土) 03:04:48.86
はいはいわろ どんだけ工作しようが 一回広まった言語はずっと残るよ パイソンはIDEあればRuby以上だけど メモ帳でプログラミングやったら パイソンじゃRubyにかてんよ おつおつ
964 :
デフォルトの名無しさん :2012/01/14(土) 16:46:47.45
反日ネット工作員 朝日新聞社→社員約300人 民主党とその取り巻きの資金が入った反日工作会社→数社約450人 朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが 民主党が用意した反日工作会社はほぼ24時間体制で工作を行っている 工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。
マニュアルの見方がよくわからず学習が進みません Ruby覚えるならこれおすすめっていう入門書ありますか?
とりあえずは「たのしいRuby 第3版」でいいと思う。 ちょっと1.8と1.9でごちゃごちゃしてるから躓くかもしれないけど、本を見てわからないところがあったらここで質問すればいい
プログラミング経験者でもなければいきなり言語のマニュアルなんて読めないしね どこぞのチュートリアルか入門書一冊読んで語彙を増やしてからマニュアル読むのが定石 お金があるなら逆引き本は早めに買ったほうがいいよ
968 :
デフォルトの名無しさん :2012/01/14(土) 21:08:41.28
日本語を含んだJSONをファイルに保存すると日本語の文字列が正しく保存されていないようです。 何が原因かわかりますでしょうか? ruby1.9.1 / ubuntu require 'json' open('test.json', 'w') do |f| JSON.dump({:a=>"ほげほげ"}, f) end 結果 {"a":"\u307B"}
とりあえず最初はルール守ってプログラム作ってくれ それはマルチバイトの関係で「実行できない」はずだ
なにもしてないのに日本語のところでエラーが起きないのは何故ですか、という質問なのだろ
>>968 スクリプトの文字コードは何?iso-2022-jpとかじゃない?
>>971 #!/usr/bin/ruby1.9.1 -Ku
# -*- coding: utf-8 -*-
といれてますし、
nkf -g でUTF-8になっていることは確認しています。
なんだろね。 うちの環境では何の問題もなかった。 ruby -v => ruby 1.9.3p0 (2011-10-30) [i386-cygwin]
974 :
968 :2012/01/14(土) 21:41:36.75
やっぱり環境の問題っぽいですね。。。 ちょっとソースから入れ直してみます。
>>974 そのまえにhexdump -C yourscript.rb とかしてみてくれまいか
NKFが自動判別失敗してるかもしれない
976 :
968 :2012/01/14(土) 22:53:20.13
>>975 ****# hexdump -C test.rb
00000000 23 21 2f 75 73 72 2f 62 69 6e 2f 72 75 62 79 31 |#!/usr/bin/ruby1|
00000010 2e 39 2e 31 20 2d 4b 75 0a 23 20 2d 2a 2d 20 65 |.9.1 -Ku.# -*- e|
00000020 6e 63 6f 64 69 6e 67 3a 20 55 54 46 2d 38 20 2d |ncoding: UTF-8 -|
00000030 2a 2d 0a 0a 72 65 71 75 69 72 65 20 27 6a 73 6f |*-..require 'jso|
00000040 6e 27 0a 0a 6f 70 65 6e 28 27 74 65 73 74 2e 6a |n'..open('test.j|
00000050 73 6f 6e 27 2c 20 27 77 27 29 20 64 6f 20 7c 66 |son', 'w') do |f|
00000060 7c 0a 20 20 4a 53 4f 4e 2e 64 75 6d 70 28 7b 3a ||. JSON.dump({:|
00000070 61 3d 3e 22 e3 81 bb e3 81 92 e3 81 bb e3 81 92 |a=>"............|
00000080 22 7d 2c 20 66 29 0a 65 6e 64 0a 0a |"}, f).end..|
0000008c
977 :
968 :2012/01/14(土) 22:58:37.11
978 :
968 :2012/01/14(土) 23:14:16.44
JSON.dump <-> JSON.loadで日本語の読み書きはできるので、とりあえず問題なさそうです。 ただ、JSON.dumpすると、ファイルの末尾に '0a' という謎のゴミが付加されていて 気になりますが。。。
979 :
968 :2012/01/14(土) 23:18:38.22
あ、改行コードか。。。自己解決しました。お騒がせしました
macでrubyいれるのってlinuxみたいにコンパイル作業が必要ですか? 当方windowsしかつかったことありまsん
981 :
デフォルトの名無しさん :2012/01/15(日) 00:44:28.89
古いのなら最初から入っている。
982 :
968 :2012/01/15(日) 01:02:43.78
>>980 MacPortsつかえば1.9.3とかも簡単にいれることできます。
MacならBrewが便利。
985 :
uy :2012/01/15(日) 13:43:43.64
986 :
uy :2012/01/15(日) 13:44:11.69
非公開MLってかいてあるじゃねーか死ね
ねらーなら修正パッチ書いてここで晒して取り込めないようにするのが筋だろ
>>985 そこのページは、
「(RubyのRedmineのアカウントを持っていなければ作成し)Redmineにログインする。」
という重要な手順が抜けている。そうしないとNew Issuesが出てこないんだよな。
989 :
デフォルトの名無しさん :2012/01/15(日) 15:31:31.94
security@は、セキュリティに関係するものはredmineには報告せず ここ宛てに送ってくれ、対応策が出来てから公開するから、という話。
990 :
uy :2012/01/15(日) 17:30:11.67
とりあえずRedmineには登録してみた 3.以下のページを開き、New Issues をクリックする。 1.9 で再現するバグを報告する場合: [[Ruby 1.9:]] 1.8 と 1.9 の両方で再現する場合: [[Ruby 1.9:]] に登録し、1.8 でも再現した旨を記す。 1.8 で再現するバグを報告する場合: Ruby 1.8 以下のページってどこだひょおおおおおおおおおおお
991 :
uy :2012/01/15(日) 17:38:13.04
あ、わかった 自己解決しました 「チケット」っていう言葉の定義を変えてたわけね
Ruby覚える前に英語覚えろよ
人の道を勉強しろや
Rubyの互換性切り捨てる馬鹿を どうすれば言うことを聞かせられますか?
死ぬほど便利なキラープロダクトを作って 新しいバージョンで互換性無視されてたら動かないような作りにしとく。
>>995 あ、それいいなw
んで、Twitterみたいに
Ruby使ってたけど、Scalaに乗り換えました。
Ruby互換性切ったから使い物になりません。とか
書いておけばいいな。
Ruby本体や添付ライブラリで「急に使えなくなった」ものはほとんどないんだけどね 移行周知期間だけで言えば3年やそこらはあったはずだし、これからもまあ実質2年くらいはあるだろ 1.9.0や1.9.1を見てて、自分には関係ないって思っていたのだったら、それは本気で正直どうよと思う
まあここでそんなことわめいてる奴にそういう製品が作れるとは思えないけど
http://www.kaoriya.net/blog/2011/09/20110913 自分で運用しているredmineが依存性の問題で動かなくなったので、腹いせ&八つ当たりでrubyをdisってみることにしました。
redmineが動かなくなりました。背景はこうです。
FreeBSDにportsでredmine入れて快適だぜ!
セキュリティとか怖いからなるべくportsは新しくするぜ!
あれredmineが動かくなったぜ? なんでだぜ?
結論からいうとruby-gemsとrailsのバージョンがコンフリクトしたのが原因でした。もともとこのFreeBSD boxにはredmine 1.2.1と
ruby-gems 1.7が入っていました。そしてある時portsでruby-gemsが1.8にアップグレードされたのです。redmine 1.2.1には
rails 2.3.11がバンドルされています。このrails 2.3.11、実はruby-gems 1.7以前でないと動かないというモノでした。
正確にはruby-gemsが1.8で後方互換性を捨てており、それを使っていたrails 2.3.11が動かなくなっていました。
このことがわかった時リアルに声を張り上げました「ふざけんな!」
ただソレ以外にもredmineには問題があります。
古いruby 1.8でしか動かない
古いrails 2.3.11でしか動かない
(rails 2.3.11は)古いruby-gems 1.7でしか動かない
こんなことは他の言語やライブラリではまずお目にかかれません。特に問題だと指摘したいのはruby-gemsという
rubyのエコシステムを構築する重要なツールが、バージョンアップに伴いあっさり後方互換性を捨て去っていることです。
新しいツールやライブラリが常に良いものだというわけではありませんが、古いツールに依存し続けるのも解せません。
いや…ライブラリがバージョンアップに伴い後方互換性がなくなってしまうので、各種プロダクトは古いライブラリに依存し続けるしかない、
そうとも考えられるかもしれません。
だとすればrubyという言語そのものにプログラマが「後方互換性を捨てたくなってしまう、実際に捨てさせてしまう」
そんな性質があるといっても過言ではないでしょう。仮にこのような性質がruby自身にあるのだとしたら、
いや私の視点からは実際にあるように見えるのですが、本当に問題です。少なくとも今後rubyで書かれたプロダクトは使いたくない、
そう思うには十分な理由となりえるでしょう。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。