- 1 名前:デフォルトの名無しさん [2009/10/24(土) 06:18:12 ]
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では多くの有名ライブラリやアプリが 1.9.1 に完全対応していないためです。) 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
- 136 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:05:18 ]
- 拡張モジュールの中で struct FRAME や struct RNode を触りたいんですけど、ruby.hには含まれていなくて困っています。
今はnode.cから extern strct RNode { ... }; を自分のソースにコピーしていますが、 もっといい方法があると思うので、ぜひ教えてください。
- 137 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:42:49 ]
- rbbrのツリーってタブおしたら落ちない?再現率100%なんだけど
- 138 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 16:56:22 ]
- >>136
node.cって何? 1.8ならenv.h、node.hが普通にあるはず。 1.9なら方法はないので諦めてください。
- 139 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 19:18:40 ]
- 拡張ライブラリのソースを ext/foo/foo.c に置いたら、extconf.rb も同じ場所に置かないといけない?
それともextやREADMEと同じ場所においておくもの?
- 140 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 19:21:51 ]
- gem なら Rakefile に gem.extensions = 'ext/extconf.rb' とか直接書く
- 141 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 20:42:02 ]
- >>139
基本的には同じところに置かないといけない。 別のところにも置くことはできるけど、それを聞いてくるということは、説明してもしかたなさそう。
- 142 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:54:07 ]
- >>136
何のために? 99%方針が間違ってる。
- 143 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:06:54 ]
- htmlファイルの読み込みについてなんですが、
マッチングでマッチした文字列以降を表示させるにはどうすればいいですか?
- 144 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:13:22 ]
- HTML あんま関係ないな
簡単なのは「キーとなる文字列の直後から必要な別のキーの直前まで」をマッチさせること $1 とか $2 とかの正規表現の勉強をするといい # <title></title>で囲まれた文字列 /<title.+?>(.+?)<\/title>/i =~ html puts $1
- 145 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:14:47 ]
- >>143
コードを書いて実行すればいいよ
- 146 名前:143 mailto:sage [2009/10/29(木) 17:26:50 ]
- >>144-145
あざっす!!
- 147 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:17:28 ]
- フォームから入力されたユーザー名とパスワードで
Kerberos認証をしたいのですが何か方法はありますでしょうか? (ApacheのBasic認証にKerberosを利用するのではなく、 Rubyで作成したCGIの任意の箇所で認証処理をしたいです。) ライブラリ等あればいいのですが…。 Kerberos認証を行うシェルを作成して、 CGIからユーザー名とパスワードを渡して実行させるしかないですかね?
- 148 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 20:26:46 ]
- >>143
$'
- 149 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 21:34:35 ]
- >>147
使ったことないけど、rubyforge.org/projects/krb5-auth/ とかかな。
- 150 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 10:12:29 ]
- 質問
Time#to_i の秒数って、時差というかタイムゾーンとかどうなってますか?
- 151 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 11:07:10 ]
- そのオブジェクトが地方時か協定世界時かにかかわりなく、
to_iが返すのはUnixタイム。
- 152 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 11:11:15 ]
- あのへんは UTC とはなんぞやということを外部で習ってるということ前提だからな
Ruby で初めて意識したという人にとってはやや不親切だ
- 153 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 11:19:13 ]
- to_i で整数にして計算して at で戻すと一瞬わけわからんことに
- 154 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 04:36:09 ]
- 教祖がデビアン住人だしな。世界の外の事は知らない。
- 155 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 07:35:31 ]
- >>154
どういう意味?
- 156 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 10:27:39 ]
- 教祖とか宗教とかモルモンとかそういう単語の入ったレスは読み飛ばしてOK
NGにしておいても一向に損をしないことを保証する
- 157 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 16:53:54 ]
- Pentium4(HT)のWindowsXP環境で
CPUを100%使い切って計算しようとおもったら、マルチスレッド対応にしないとだめかな? タスクマネージャーみたら、なんかCPUに余力が有るみたいなんだが・・・
- 158 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 17:05:46 ]
- 複数プロセス同時に動かすのは?
- 159 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 21:12:16 ]
- >>157
HTは、1コアを2コアに見せかける技術だから、1コアをもし使いきっているなら、 タスクマネージャでどう表示されようが、100パーセント使い切ることになるように思うけど、どうだろう。 ファイルやネットワークの入出力がある場合は100パーセントになりにくいけど、 非同期I/Oを使って頑張れば100になるんじゃないかなー。 最近のCPUは2コアが普通だから、158のように複数プロセス起動しないとだめだろうね。
- 160 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 23:49:32 ]
- そんなことまで考えてプログラミングしてるのか
すごいなお前ら
- 161 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 00:06:26 ]
- "begin a,b,a,a,b end"
のような、中身が繰り返しているような文字列のマッチはどんなふうにするのがいいでしょうか? /begin ((a|b),)*(a|b) end/ とすればできましたが、2回同じこと(a|b)を書いているのがちょっと気になります あと、できれば繰り返しの部分を$1,$2,$3・・・のようにあとで取得したいのですが、可能でしょうか?
- 162 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 04:12:38 ]
- >>161
>2回同じこと(a|b)を書いているのがちょっと気になります 正規表現なら我慢して書くしかないように思う。 >繰り返しの部分を$1,$2,$3・・・のようにあとで取得したい マッチする個数がわからないと難しい。 /begin ((a|b)(,(a|b))*) end/ として、 $1.split(/,/) とするぐらいか? あと (a|b) は、もしほんとにaとbを使うだけなら[ab]のほうがいい。 /begin ([ab](,[ab])*) end/
- 163 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 08:00:11 ]
- ここはRubyスレなので、Rubyの正規表現なら、という話なら、
(?<名前>任意の表現) と \g<名前> の組み合わせでできる。 /begin ((?foo<(a|b)>),)*\g<foo> end/
- 164 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 08:06:53 ]
- Rubyの正規表現と称して>>163がOniguruma実装限定の正規表現持ち出してきたのが笑える
- 165 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 08:23:44 ]
- begin 〜 end だけ抽出しておいてそれに (a|b) の scan かけるんじゃだめなん
- 166 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 10:51:59 ]
- >>164
1.9ならOnigurumaが標準だろ
- 167 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 10:55:27 ]
- そんな寝言は1.8.7を撲滅してからほざくがよいぞ
それまでは両バージョン用併記か注釈で対応バージョン明記
- 168 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 10:58:37 ]
- スレとしては 1.8.7 が推奨バージョンなんだから、
1.9 限定動作は「1.9.1 だとこれで一発」みたいなコメントはつけとくべきかもな
- 169 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:04:48 ]
- 普段く1.9の質問したら、氏ね、1.8使えと煽るくせに、
正規表現は1.9で書き込むとか、 ここの住人はダブルスタンダードだな、おい
- 170 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:24:05 ]
- 1.9でレスしてもいいんだがそうと明記すべきだぬ
- 171 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:24:40 ]
- いつの話だよ
さすがに今1.9を使うなって奴はいないだろ
- 172 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:28:12 ]
- >>169
だって君の言う「ここの住人」って、一人しか居ないわけでもなければ、 まったく同じ考え方をする集団ってわけでもないもの。 ダブルスタンダード認定は、前者と後者が同じ人間によって書き込まれたことを 確認してからでないと。
- 173 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:32:48 ]
- 初心者が使用すべきものと熟練者が使用して便利なものとは違うということをいまさら講釈しないといかんのか
- 174 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 16:05:25 ]
- 1.9はsp2出るまで町だな。
- 175 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 16:27:06 ]
- 1.9.3のこと?
- 176 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 17:33:30 ]
- 2.0マダー
- 177 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 17:39:55 ]
- >>171
います
- 178 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:01:12 ]
- >>168
>1.9 限定動作は「1.9.1 だとこれで一発」みたいなコメントはつけとくべきかもな だな。1.8.7からの新機能の場合もその旨書いておいてほしいよね。 今度から>>1に追加しといてもらおう。 >>171 >いつの話だよ >さすがに今1.9を使うなって奴はいないだろ おまえはまず>>1を声だして100回読め
- 179 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:27:12 ]
- >>158-159
繰り返しの計算処理なんだわ 具体的には、ニューラルネットの実装やってる はんぱない回数の計算が学習には必要なんだけど 1プロセスだと、スレッド分けしても、複数CPUは使ってくれないってことかな? だとすると、プロセス間通信とかを眼中にいれて設計しないとダメってことかな? ってことは、向かうところはdRubyあたり?
- 180 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 01:06:18 ]
- ほう、膨大な計算量を必要とする分野にも進出してるんだなあ
- 181 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 03:07:06 ]
- >>180
実用とか研究とかじゃなくて趣味だけどね。 Rubyでやってもいいんじゃない?ってかんじで
- 182 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 06:53:38 ]
- Rubyの入門書では、サンプルプログラムの出力を大抵以下のように書いてます。
puts 'Hello World!' ですがたまに以下のように書き方も見かけます。 $stdout.puts 'Hello World!' どっちも正しいと思いますが行儀の良い書き方という意味では後者になるのですか?
- 183 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 07:07:13 ]
- 意味不明。内部でやってることは同じだし後者には何のメリットも無い。
- 184 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 07:16:11 ]
- printf("Hello World\n");と
fprintf(stdout,"Hello World\n");の違いみたいなもんだぞ 簡略できるようにしてあるのにあえて冗長に書く必要はないと思う
- 185 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 07:48:49 ]
- 冗長に書く意味があることはありうる
が、これに限ってはまず無いだろうな 前者の関数的メソッド puts の出力先を捻じ曲げるためには $stdout をいじるしかないわけだが それをすると後者の $stdout.puts も捻じ曲がるんで意味がない Ruby における 関数的メソッド puts と $stdout は不可分だ(C の puts を知ってると引っかかるかも) もしなんらかの気の迷いで関数的メソッド puts の出力先の $stdout が標準出力以外になってるなら それは putserr とか putsfile とかなんかメソッドを新たに作るべき むしろ後者を書かれるとがっかりだ むしろそのサイトなり解説書なり晒せ
- 186 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:15:02 ]
- バッチファイルの作成を自動化できないものかと思い、eruby がつかえそうだと思いました。
REM ******************************************* REM * 作成者:ビル・ゲイツ(マイクロソフト) * REM ******************************************* のようなファイルをつくりたいのですが、 REM ******************************************* REM * 作成者:<%=PERSON%>(<%=COMPANY>) * REM ******************************************* と定義して、行の末尾の '*' の位置を変えないことってできますか?
- 187 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:17:47 ]
- つか $stdout なら write すべきだと思うんだが
$stdout が指してるオブジェクトに puts というインスタンスメソッドが定義されてる可能性はそれほど高くない
- 188 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:20:47 ]
- >>186
文字列なんだから String のマニュアルをダメもとで読め ttp://www.ruby-lang.org/ja/man/html/String.html#ljust
- 189 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:30:54 ]
- >>187
それはputsに応答しないオブジェクトを$stdoutに入れたヤツが悪くないか? STDOUTがIOのインスタンスなんだし、IOやそのサブクラスのインスタンスであるか 相応のduck typingができることを期待するのは当然だと 実際に期待できない例にはどんなのがある?
- 190 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:46:20 ]
- $stdoutっていずれ廃止になるんだろ?
なるべく使わない方がいいんじゃねーの
- 191 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:48:21 ]
- $stderrなら警告メッセージのテストで使うことあるな。
begin class << (stderr = "") alias write << end # テスト $stderr, stderr = stderr, $stderr ensure $stderr, stderr = stderr, $stderr assert_match(/.../, stderr) end
- 192 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:49:05 ]
- >>190
廃止された$defoutと混同してないか?
- 193 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 12:24:41 ]
- >>190が代わりに何を使う気だったのかがちょっと気になる
- 194 名前:182 mailto:sage [2009/11/03(火) 18:12:54 ]
- たくさんのレスありがとうございます。勉強になりました。
公式も見てみましたが、 単にputsとした場合はKernelモジュールのputsを指し、 そのputsはデフォルトで$stdoutに対して出力をするようですね。 やっぱり冗長なだけなようですね。 >>187 >むしろ後者を書かれるとがっかりだ >むしろそのサイトなり解説書なり晒せ 具体的には、「JavaプログラマのためのRuby入門」という本の初っ端の例文が $stdout.puts 'hello world !'.upcase となっていました。 著者のartonさんはコミッタですよね?
- 195 名前:182 mailto:sage [2009/11/03(火) 18:13:57 ]
- >>187ではなく>>185でした。すいません。
- 196 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 18:16:55 ]
- >>194
それはJavaのSystem.out.printlnになじんだ者が類推しやすいように そう書いてあるんじゃあないか?
- 197 名前:182 mailto:sage [2009/11/03(火) 18:36:50 ]
- おおなるほど、そういうことだったのかな…。
- 198 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 19:36:32 ]
- その本は読んでないけど、読んだ者が混乱するような記述なら困りものだな
後ろの章を読めばわかるのかなとは思うけど
- 199 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 20:34:50 ]
- モジュールの場所を知るコマンドはありますか?
perlでいう perldoc -l のような。
- 200 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 20:55:12 ]
- >>199
ri refe 他にもなんかあったような気がするけど忘れた
- 201 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:01:03 ]
- >>199
gem の場合は gem which $ gem which nokogiri (checking gem nokogiri-1.3.3 for nokogiri) /home/me/.gem/ruby/1.8/gems/nokogiri-1.3.3/lib/nokogiri.rb 標準ライブラリの場所を探す方法はあれば知りたい いちいち「/usr …のどこだっけ」と試行錯誤するのは面倒
- 202 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:23:14 ]
- >>199
gem whichはgem以外にも使えたはず
- 203 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:44:58 ]
- ほんとだ知らなかった
いいこときいた
- 204 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:54:21 ]
- $ gem which uri
/usr/lib/ruby/1.8/uri.rb ほほう String とか Regexp とか rb のファイルになってないものは駄目っぽいな
- 205 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:11:29 ]
- >>200-202
あざっす。
- 206 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:26:20 ]
- ライブラリもいけるみたいだな。
$ gem which Readline /usr/local/lib/ruby/1.9.1/x86_64-darwin10.0.0/Readline.bundle >>204 StringやRegexpでどのファイルに出てきて欲しいんだw
- 207 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 08:30:58 ]
- >>186
>と定義して、行の末尾の '*' の位置を変えないことってできますか? <%= str = "#{person} (#{company)" %> REM * 作成者:<%= '%-50s' % str %> * とするしかない。
- 208 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 08:31:51 ]
- 間違えた。
<% str = "#{person} (#{company)" %> REM * 作成者:<%= '%-50s' % str %> *
- 209 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 09:23:58 ]
- Rubyの文字列は
"hello"と'hello'のように書けますが、皆さんはどちらをメインに使っていますか? もちろん二つの書き方には違いがあることは理解してますが、 多くのケースではどちらの書き方でも可なので、そういう場合にどちらの書き方をすべきか迷っています。 個人的にはシングルクォートをメインにして、"my name is #{name}"のような変数展開を使う場合のみダブルクォーテーションにしています。 というのもHTMLと一緒にrubyを使うことが多く、HTMLタグの値にダブルクォーテーションを使うからです。 ただ入門書やネットに転がってるサンプルなどを見ると大抵ダブルクウォーテーションのようです。 CやJavaなどの習慣でダブルを使う人が多いのでしょうか?あるいは他にメリットがあったりしますか?
- 210 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:13:32 ]
- そもそもとして、" " でも ' ' でも処理負荷的にはたいして変わらない
文字列を数まんことか大量に使用すれば若干違うかもしれんが、たぶん他の部分チューニングしたほうが速い よって、それ以外が効いてくることになる で、まあ、" " が人気があるのは 変数展開を入れようとしたときにクオート部分をわざわざ書き換えなくてもいいとか \n とかがそのまま利用できて面倒がないとか 大部分のフォントで '' の文字見栄え的な安定性が低くて使っててガッカリだからとか そういう理由だと思う 'hello\nworld' と書いてそのまま \n が表示されて「ん?」となるのは一度や二度ではない
- 211 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:27:08 ]
- 俺は両方使い分けてるな
別にダブルクォートで統一してもいいとは思うんだけど 最近、なんとなくシングルクォートの方がきれいに見えるようになった あとシングルクォートだと「ここでは変数展開をしません」という宣言にもなる
- 212 名前:209 mailto:sage [2009/11/04(水) 10:28:08 ]
- >>210
おおなるほど…分かりやすい説明ありがとうございます。 それだけ例を示されると確かにダブルクウォーテーションのほうが理にかなってますね。
- 213 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:29:56 ]
- >>211
ダブルクォートを最終的にシングルクォートに書き換えることはよくある それはやっぱり意思表示だな
- 214 名前:209 mailto:sage [2009/11/04(水) 10:32:10 ]
- >>211
ありがとうございます。 >あとシングルクォートだと「ここでは変数展開をしません」という宣言にもなる これは自分も思っていました。 変数展開が必要になった時にダブルクウォーテーションを使った方が目的がはっきりするというか。
- 215 名前:209 mailto:sage [2009/11/04(水) 10:42:19 ]
- ついでにRailがgenerateで吐くコードを調べてみました。
シングルクォート flash[:notice] = 'Profile was successfully created.' <%= link_to 'New profile', new_profile_path %> ダブルクォート format.html { render :action => "new" } どっちも使ってる…。どういう基準で分けてるのかさっぱり分からない。 ただ適当なのか、何かちゃんとした理由があるのかな。
- 216 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:49:28 ]
- アトリビュートとみなせる(小さな)文字列はダブルクォートであることが多い
ハッシュのキーとか値とか、配列の短い文字列とか あるいは生成されて埋め込まれた文字列とか irb> 1.upto(10).to_a.map{|e| e.to_s} ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] ←この部分をコピペ 深い意味は何もない 打ってる途中で 「あーシングルクォートでよかったなーと思ったが修正面倒なのでこのままダブルで閉じる未来の俺訂正よろしく」 とか普通なので気にしてたら禿げるぞ
- 217 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 11:08:33 ]
- String#inspect が吐く文字列がダブルクオートというのは意外と
強い動機になるよね。
- 218 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 14:10:01 ]
- >>209
>個人的にはシングルクォートをメインにして、"my name is #{name}"のような変数展開を使う場合のみダブルクォーテーションにしています。 このルールでいいと思う。あとは ¥n をいれるときとか。
- 219 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:36:31 ]
- そのルールに何の意味も無いだろ
面倒だし両方の表記が入り乱れることになるだけ なんでダブルクウォーテーションだけで済ませるのが嫌なんだ?
- 220 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:48:35 ]
- 変数(というか、式)展開やバックスラッシュ記法の有効化は、すこし機能が強すぎる
その機能を使用しないのなら、そもそも機能が有効になっていないほうが好ましい めんどいからダブルでいーじゃん、というのでももちろん構わないし スクリプトに直接リテラルで書くぶんには実際上の問題は何もないが、 慎重にシングルとダブルを使い分けるという姿勢は賞賛されるべき
- 221 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:51:52 ]
- >>219
>なんでダブルクウォーテーションだけで済ませるのが嫌なんだ? べつに嫌いとまでだれも言ってないけど。>>213が書いたように、シングルクォートを使うことで、 式展開もなにもありませんという意思表示をしているだけ。 なんでこんな曲解するやつがいるんだろうね。
- 222 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 20:03:43 ]
- Railsマンセーな俺は>>215>>216辺りを見てシングルを主に使っていこうと決めた
アトリビュートというかシンボルに置き換えられるのようなケースではダブルを使ってる気がする
- 223 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:01:01 ]
- Windows環境だとパス区切りがバックスラッシュな関係で
文字としてのバックスラッシュを扱いたい場合は多いな >>210 とは逆に、バックスラッシュが解釈されるせいで「ん?」と思う場面のが多い
- 224 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:19:40 ]
- 考え方は>>220に同感だけど、職場ではダブルクォートで統一されてる。
ネットで拾うサンプルも大抵ダブルクォートだ。 単純に、ダブルクォートで文字列を表現する言語が多いという理由だけの気がする。 コーディングスタイルにおいて慣習ってのは大きな要素なんじゃないかな。 ○○にすべきだ、という100%正しい解釈があったとしてもそれが慣習に反していれば採用するのはやっぱり難しい。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:30:24 ]
- 100%正しい解釈などない
- 226 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:31:39 ]
- >あったとしても
- 227 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:34:04 ]
- 信念を持って慣習を破るのは悪いことじゃないな。
- 228 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:34:12 ]
- Rubyの場合%表記使うことも多いからダブルクォートに対するこだわりなんか全くない
- 229 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:34:35 ]
- 無意味な仮定ってことだろ
- 230 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:10:31 ]
- > 慣習
こないだ '%s' % str したらMatzの写真で踏み絵させられた わかる人にはわかるらしい ちなみに初めてのRuby的には 「後述のエスケープ文字や式展開を含まない場合、 一重/二重のどちらの引用符を用いるかは好みの問題です」(p.58) だって
- 231 名前:デフォルトの名無しさん [2009/11/04(水) 22:50:02 ]
- Ruby1.8.7でsqlite3を使いたく、環境を構築しました。
sqlite3-ruby(1.2.5) dbi(0.4.3) dbd-sqlite3(1.2.5) sqlitedll-3_6_19 上記の環境でDBI経由だと ERROR DBI::InterfaceError: Unable to load driver 'SQLite3' (underlying error: uninitialized constant DBI::DBD::SQLite3) というエラーが発生します。 ドライバが見つからないと言うようなエラーだと思うんですが、全部最新です。 何が原因でしょうか?
- 232 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 23:50:35 ]
- ドライバを入れろ
- 233 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 00:06:05 ]
- >>231
×SQLite3 ○sqlite3 db = DBI.connect("DBI:sqlite3:#{filename}")
- 234 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 00:44:56 ]
- >>231
ごめん>>233は間違い うちは db = DBI.connect("DBI:SQLite3:test.db") で接続できた ドライバはdbd-sqlite3で Unable to load driver だから sqlite3自体がインストールされてない?
- 235 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 02:13:52 ]
- >>209
>個人的にはシングルクォートをメインにして、"my name is #{name}"のような変数展開を使う場合のみダブルクォーテーションにしています。 >というのもHTMLと一緒にrubyを使うことが多く、HTMLタグの値にダブルクォーテーションを使うからです。 正解
- 236 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 04:09:19 ]
- %!hogehoge! 使うべさ
- 237 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 06:34:11 ]
- 俺はハッシュの値とかも含めて基本全てシングル使ってるぞ
変数展開したい時だけダブル これで特に困ったことは無い 空文字が''になるので、他人にソース見せる時に突っ込まれることはあるが。
- 238 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:22:34 ]
- ダミアン先生によると空文字は、%{}にしたほうがわかりやすいと
- 239 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:36:12 ]
- まあ''と"と"'と'''と''''と'"'と""と'"'と'''''の区別は咄嗟にはつけにくいからな
いちばんわかりやすいのは String.new だが 余談だが俺は配列も Array.new だしハッシュも Hash.new だ 自分から [] や {} を使うことはゼロ
- 240 名前:231 mailto:sage [2009/11/05(木) 08:39:55 ]
- >>232
>>231に書いた以外に必要なドライバがあれば ドライバ名を教えてください。 >>234 一応 gem search を実行すると全部インストールされているんですが sqlite3-ruby をインストールするときにリンク先のような状態になったのが 気になりました。 ttp://www.rubylife.jp/railsinstall/other/index1.html そのほかはバージョンもそろえてるしSQLite3の本体も入ってるし、 もうどうすればいいのか・・・
- 241 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:51:14 ]
- 新しく配列作る時って Array.new と [] って一般的にどっちがいいとかある?
好みの問題くらいでどっちでもいい?
- 242 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:12:05 ]
- 初期値の存在しないふつうの空の配列を作るならどっちでもよい
10万個くらい Array.new と [] が書いてあったら、後者のほうがパース完了は遅いとは思うが
- 243 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:23:13 ]
- >>240
DBI.available_driversで使えるドライバがわかる そこに"dbi:SQLite3:"が無ければインストールに失敗してる
- 244 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:06:41 ]
- 初期値が無い場合は
var = Array.new 初期値がある場合は var = ["hoge", "hogege"] って感じだな。 特に理由は無いけどこういうパターンで書く人が多い気がする。
- 245 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:13:01 ]
- [] でいいじゃん
- 246 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:36:36 ]
-
- 247 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 14:25:20 ]
- Array.new, Hash.new はメソッド呼び出しが入るので遅い。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 15:03:37 ]
- >>244
そうかあ?初期値がなくても [] と {} を使うほうが多いと思うけど。 デフォルトの初期値が必要な場合だけHash.newとかを使うんじゃないか。
- 249 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:51:24 ]
- 配列からある値を一つだけ削除って簡単にできる?
- とかdeleteだと複数あった時に全部消えちゃう
- 250 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:58:30 ]
- delete_at
- 251 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:01:43 ]
- >>249
簡単にはできない 若いの1個だけ消したいと予測 arr = ["a", "b", "c", "b", "a"] arr.delete_at(arr.index('b')) p arr ["a", "c", "b", "a"]
- 252 名前:231 mailto:sage [2009/11/05(木) 18:21:11 ]
- >>243
driver = DBI.available_driversしてみました ArrayEmptyでした orz=3 一度アンインストールしてインストールし直しても同じです どうやればインストール成功するんでしょうか(´;∀;)
- 253 名前:249 mailto:sage [2009/11/05(木) 18:50:35 ]
- >>250,251
なるほどね見つけてから_atで消すのね ありがとう
- 254 名前:231 mailto:sage [2009/11/05(木) 19:19:05 ]
- sqlite3-ruby dbi dbd-sqlite のバージョンを下げたりしてみたけど
やっぱりドライバが認識されませんでした 同じコードとドライバでも1.9.1だと動きまする・・・
- 255 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 19:24:01 ]
- インストール手順を示さないとアドバイスしようがないと思ふ
- 256 名前:231 mailto:sage [2009/11/05(木) 20:05:44 ]
- 解決しました。いや、解決はしてませんが、ドライバが原因では無いことはわかりました。
NetBeans6.7.1でデバッグをすると「ドライバがないぞゴルァ」って言われるんですが コンソールから実行すると何事もなかったように動きます。 どうもお騒がせしました。
- 257 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 21:30:32 ]
- えええええw
- 258 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 22:32:30 ]
- コンソールから使ってるRubyとNetBeansから使ってるRuby
が違うんでないかい?
- 259 名前:231 mailto:sage [2009/11/05(木) 22:41:01 ]
- >>258
自分もそう思って確認したんですが インストールされてるバージョンは1.8.7-p72と1.9.1-p243の二つしかなく コンソールもねとびーんも1.8.7-p72を使ってました。 ねとびーんのGemマネージャにも、きちんとドライバは登録されていました。 その後も色々試していますが、未だに原因がわかりませんです。
- 260 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:03:10 ]
- printf("%d %d\n", n, n+1)の出力にマッチする正規表現は書けますか?
- 261 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:29:25 ]
- 動的に正規表現を生成するのでも構わないのなら
n = 3 "%d %d\n" % [n, n + 1] =~ Regexp.new("%d %d\n" % [n, n + 1]) #=> 0 ところで以下には驚いた。勉強しなおさないとだ '%d %d\n' % [n, n + 1] =~ Regexp.new('%d %d\n' % [n, n + 1]) #=> nil "%d %d\n" % [n, n + 1] =~ Regexp.new('%d %d\n' % [n, n + 1]) #=> 0
- 262 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:40:43 ]
- >>261
s = '%d %d\n' p /#{s}/ # /%d %d\n/と等価 文字列として\nが解釈されなくても、正規表現をパースする段階で解釈される 似たような話としては、String#gsubで引数に\を渡そうとすると ダブルクォートの場合はエスケープの都合で\の個数がキモいことになる
- 263 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 02:17:32 ]
- >>262
サンクス。完全に間違って理解してた > 文字列として\nが解釈されなくても、正規表現をパースする段階で解釈される よく覚えとくよ で、>>261でなんではまったかと思ったら普段あまり使わないRegexp.new使ってるからだった '\n' にマッチする正規表現をリテラルで作ろうとしたら /\\n/ って直感的に書けるけど Regexp.new で作ろうとすると相当キモイことになるね
- 264 名前:デフォルトの名無しさん [2009/11/06(金) 06:35:26 ]
- 質問です。
さくらインターネットのスタンダードプランでrubygemをインストールしたのですが, gemコマンドを打ち込んでも gem: command not found と、出てしまいます。 これはインスト失敗しているのか、単に環境設定がうまくいってないのか…。 ご教授願います。 インスト時には wget rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz tar zxvf rubygems-1.3.1.tgz cd rubygems-1.3.1 ruby setup.rb --prefix $HOME で、 RubyGems installed the following executables: /home/hogehoge/bin/gem18 と出ていました。
- 265 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 06:38:37 ]
- じゃあ/home/hogehoge/bin/gem18って打ち込めば
- 266 名前:260 mailto:sage [2009/11/06(金) 08:02:12 ]
- >>261
動的でもいいんですがnの値は不明です。 一旦nを求めて式展開するしかないでしょうか? 一回で line =~ /(\d+) #{\1.to_i + 1}/ みたいには書けない?
- 267 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:08:12 ]
- 実効上のご利益がないのでどうでもいいのだが正規表現を先に書いてくれると嬉しい
/re/ =~ str
- 268 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:22:50 ]
- >>264
PATHの設定。
- 269 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:23:59 ]
- それと、 gem じゃなくて gem18 と入れることか。
- 270 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:29:54 ]
- >>264に足りないのは(PC-)UNIXの知識だな
Ruby関係ないシリーズの筆頭だ はいそこさくらが使ってるFreeBSDがUNIX4文字で包括されうるかどうか議論しない
- 271 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:32:18 ]
- ruby2.0はいつ出るのじゃ
- 272 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:35:10 ]
- >>271
その質問には意味がない
- 273 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:43:54 ]
- 新しいバージョンを待つ香具師は、そのバージョンが出たら
その次のバージョンを待つことになる。
- 274 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 10:46:28 ]
- 1.9もまだ満足に移行出来てない状況でw
- 275 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 11:09:59 ]
- 2.0になった場合の変更予定点とかってもう案があったりするの?
- 276 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 12:45:25 ]
- >>275
それこそ1.8の出る前からある。
- 277 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 16:43:52 ]
- だから待ち焦がれてる椰子が多いんだよ。
Ruby2.0が出たらそのサブセットをどっかで標準化したりするのかね。
- 278 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:15:47 ]
- 2.0はこうなる!
みたいな解説どっかにある?
- 279 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:26:11 ]
- ないでもないけど(Ruby Riteで検索すれといくつか)大昔のものなので、
1.9で実現しちゃったもの(YARVとか)もあれば、方針転換があったりしたものが (たとえば括弧の省略があまりできなくなる方向で動いてたのを、断念しちゃったり) あったり、全く刷新の気配もないもの(GCとか)とかで、全然参考にならない。
- 280 名前:231 mailto:sage [2009/11/06(金) 19:33:23 ]
- 必要ないかも知れないですが経過報告です。
全く違う別のPCで1.8.7-p72、NetBeans6.7.1という同じ環境を構築して SQLite3をDBI経由で読んでみましたがコンソールからだと問題無く動くコードが 同じエラーになりました。ドライバが認識出来ないようです。 同じコードでも1.9.1だとNetBeans6.7.1でも問題無く動作するので環境の問題のようです。 もし上の環境でDBI経由でSQLite3が使えてる人がいたらアドバイスください。
- 281 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:50:20 ]
- txt = open('hoge.txt').read
ってするとオープンされたファイルのストリームは開いたままですか?
- 282 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:03:17 ]
- >>281
えーーーーと、 クラスメソッド File.open は File オブジェクトを返すだけ 関数的メソッド open も File オブジェクトを返すだけ インスタンスメソッド File#read はストリームを閉じない クラスメソッド File.read は File オブジェクトを開いて File#read して閉じて read 結果を返すユーティリティ的メソッド File.open(path).read は不完全 open(path).read も不完全 File.read(path) は安全 File.open(path){|f| f.read} は安全 open(path){|f| f.read} も安全 ブロックつきメソッドで書けるメソッドは、ブロック作らないと危険 ブロックつきメソッドで書く意味がなさそうなメソッド(File.read、File.readlines 等クラスメソッド)はブロック作らなくても安全 クラスメソッドは「便利メソッド」として作られてることが多い
- 283 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:05:12 ]
- >>281
GCされるかスクリプトが終了するまで開いたまま ちゃんと閉じるか閉じてくれる書き方をするクセをつけたほうがいい 手っ取り早いのはこれ txt = File.read('hoge.txt') 本当はIO.read、ただし1.9系じゃないとこの方法でbフラグ付けるのは無理
- 284 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:39:33 ]
- IO.binreadは1.9だっけか
- 285 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 01:20:25 ]
- String::squeezeの使い道が分からない
- 286 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:19:12 ]
- 1.9はvistaの様に飛ばして、2.0のsp2が出るまで1.8で耐えた方が良さそうw
- 287 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 05:32:37 ]
- 今までrubygemsで取得できるもので済んでいたのですが、
tar.gzで配布されているruby-clusterやruby-gnome(gtk?)を使うことになり、 Emacsでのanythingやauto-complete-rubyでも↑のライブラリを読み出して欲しいと思って調べたのですがわかりませんでしたので質問させてもらいます。 anythingではfri -lやrefe -lの結果から候補を、auto-complete-rubyではrcodetoolsからどうにかして候補を出しているみたいなのですが、 そのソースとなるのはtar.gzがもつドキュメントorコードから生成されたドキュメント(?)を元にしているみたいなのです。 そのようなドキュメントを生成するのはrdocなんでしょうか?そうだとしたらどのように生成すればいいでしょうか? rdoc --riとやって.rdocの中に色々とできているのですが、そこをLOAD_PATHに加えればいいのでしょうか? 長くなってすいません。
- 288 名前:デフォルトの名無しさん [2009/11/07(土) 16:37:36 ]
- Rubyで外部コマンドを単純に実行したいときで質問。
変数hogeにデータが入っていてこれを引数としてコマンドを実行したい。 system("command", hoge) なら安全? 例えば、パイプでつなげられてrm -rfされる心配はないか、とか。
- 289 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:50:01 ]
- はい
sysytem 等の第2引数はシェルを介しません irb> system('ls', '-la|date') ls: invalid option -- '|' 詳しくは `ls --help' を実行して下さい. irb> system('ls -la|date') 2009年 11月 7日 土曜日 16:42:32 JST ls が | についてのエラーを返していることに注目です | を含んだ引数を ls コマンドに直接渡している証拠です ただ、この場合、第1引数は完全に正しい実行可能文字列でなければなりません オプションとかなんか余計なものを含んでいた場合はエラーです irb> system('echo ', 'hello!') false irb> system('echo', 'hello!') hello! 「echo 」という末尾に空白を含んだ実行ファイルは存在しないためコマンドが実行されず、system が false を返しています
- 290 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:55:35 ]
- >>289
ありがとう。
- 291 名前:デフォルトの名無しさん [2009/11/08(日) 10:16:43 ]
- テンプレに
・Ruby 1.9.0 不安定にして先鋭機能が超満載の開発版バージョンだったもの 1.9.x は本来全てが開発版の呼称だったのだが、事情が変わって(ここ笑うところ) とありますが、どう事情が変わったのでしょうか? "1" + 1 とするとエラーが出てしまいます。 エラー内容的には 整数を文字列に出来ないよ。 ということだと思っています。 しかし、 1.to_s を実行すると "1"が返ってきて、1.to_s.classはStringだと言っています。 数値の 1 を文字列に変換することは出来ているのに上記のようなエラーが出る理由が分かりません。 教えてください。
- 292 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:23:14 ]
- Rubyは、その種の暗黙の変換はしないので、
"1".to_i + 1 #=> 2がほしいとき "1" + 1.to_s #=> "11"がほしいとき
- 293 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:53:20 ]
- オブジェクトが違ってるということはプログラミングの手順が間違ってるということがほとんどなわけで
こういう場面では暗黙の変換をしてもらわないほうが多くの場合は便利 動作と投入値のとり得る全てを事前に完全把握してる場合は暗黙の変換をしてもらったほうが面倒ないけどな まあそういう時はRubyにこだわらず適当にそういう動作の言語使ってだらっとプログラム書けばええ とりあえずRubyはその手の変換は行わないようにメソッドが作られてることが多い 困ったことに + 系のメソッド内でクラス比較して変換かけてるパターンもあるけどな >>291 > どう事情が変わったのでしょうか? このままだとバージョンナンバーを普通に使い切ってしまい 栄光のバージョン2.0が普通の1.9の上位バージョンになってしまうという危惧 1.9.0を元にした安定版を出す際に、通常のバージョンのつけ方なら ・ 1.9.x … 開発版 ・ 2.0.x … 安定版 となるはずだし従来はこの予定だったのだが、2.0の名には値しないと判断されて、無理矢理 ・ 1.9.0 … 開発版 ・ 1.9.1 … 安定版 とされたということ
- 294 名前:デフォルトの名無しさん [2009/11/08(日) 15:19:36 ]
- じゃあ、1.9.1は2.0ってことですか
- 295 名前:デフォルトの名無しさん [2009/11/08(日) 15:23:13 ]
- matzを罵ってやる!
- 296 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:28:41 ]
- Rubyでは、2.0は人参と呼ばれている。
「開発者のモチベーションを引っ張り続けるが到達できないもの」 来世紀くらいには追いつけるかもしれないがユーザーが待つのは馬鹿。
- 297 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:46:26 ]
- まあ10年くらいしたらなんとかなんじゃねえの、とは思う
少なくとも5年では無理
- 298 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:47:49 ]
- なにが人参だか。どうでもいいわ
- 299 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:01:55 ]
- RubyにはRubyしか知らない人が多いというのはやっぱり真実なのだと思う
ようはPerl6と同じことだろ
- 300 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:23:16 ]
- >>285
String#squeezeはたぶん正規化じゃないかなぁ require 'jcode'; $KCODE = "s" # 1.9なら不要 Words = %w(google キター).map {|s| s.squeeze } def exist?(s); Words.index(s.squeeze); end p exist?("goooooogle") p exist?("キターーーー")
- 301 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:23:36 ]
- PHP6、Perl6、Ruby2のうち一番早くリリースするのはどれですか?
- 302 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:48:32 ]
- やっぱり1.9sp2まで待ちだな。
- 303 名前:ダーク藤本 ◆ULFoMaooII mailto:sage [2009/11/08(日) 17:12:54 ]
- SB3.5改
ttp://ux.getuploader.com/clonegameup/download/56/SB3.5%E6%94%B9.zip Rubyは多次元配列の仕様が糞すぎる まぁ多次元配列なんてWEBプログラマーには不要なもんだがw
- 304 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:29:27 ]
- Rubyの多次元配列?
それなんていうライブラリ?
- 305 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:42:01 ]
- ruby 1.9.3あたりが安定版になっても俺は驚かない
驚かないが、「またユーザーを混乱させるのか・・・」と思う
- 306 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:56:09 ]
- >>305
1.9.1 以降は全部、1.9 系列の安定版だよ 1.9.2 が出たとしたら、それは1.9系列の最新安定版 1.9.3 が出たとしたら、それは1.9.2より新しい、1.9系列の安定版 開発版は常に 1.9.0 パッチレベルが上がるんだったかなんだったかで区別するとかしないとか 1.8.5やそれ以前のような「とりあえずリリース」はない tenny(バージョン x.y.z の z)が 0 でないときは必ず安定版リリース この理屈だと Ruby 2.0.0 は 2.0 系列の開発版ということになるが、まあそういうことなのだろう 情報の古いうっかりさんが「これが Ruby2.0 か」とか勘違いして 2.0.0 をインストールしてシステム壊すとかそういうの希望 まー 1.9.1 の中でもパッチレベルが違うと動作違うけどな(正しくなっただけなのだが) 1.8.6 でもあったが、なかなか酷い
- 307 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:57:08 ]
- 驚き最小の法則w
- 308 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:59:44 ]
- >>307
情報の古いうっかりさんこんばんは
- 309 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:01:51 ]
- ja.wikipedia.org/wiki/驚き最小の原則
結城浩は1996年、この原則を人間関係を円滑にすすめるための心得に拡張し、「驚き、最小の法則」として紹介した。 たとえば、プログラムを顧客に納品する際に、判明しているバグがあるのなら、それを伝えておいたほうが顧客に とっても利用時の戦略を立てやすくなる、といったものである。「『どうしようかな?』と思ったときには、 相手の 『驚き』を最小にするような選択をすべき」であるという[1]。 プログラミング言語 Ruby は、一時期「驚き最小の原則」とともに語られることが多かった。ただし、作者のまつもと ゆきひろはこの原則を Ruby の設計哲学として採用したことはないと述べている[2]。Ruby については、「さまざまな バックグラウンドの人々すべてを驚かせないことではなく、Ruby のやり方に十分に慣れた人が持つ常識が一貫して通用 するという意味」[3][4]であるとして、「Matzの驚き最小の原則」という言い方も提案された[3]。現在では Ruby が 「驚き最小の原則」とともに語られることは少なくなっている[5]。
- 310 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:04:35 ]
- 驚きの連続w
- 311 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:09:19 ]
- >>309
コミュニティ内では「Rubyらしい動作」という言葉で語られる概念だな Rubyらしい動作をするクラスやメソッドは推測が利いて使いやすい、という程度の意味
- 312 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:10:14 ]
- 一時期のruby-talkとかひどかったもんな。
いろんな言語バックグラウンドを持つ香具師が、想定外の挙動に対して 「これは驚き最小に反している!」 そして「おめーにとってはそうだろうがよ」と総ツッコミ。
- 313 名前:305 mailto:sage [2009/11/08(日) 18:19:50 ]
- >>306
説明ありがとう! 1.9.1からルールが完全に変わったんだな > ruby 2.0.0 は 2.0 系列の開発版 そうなるのか? ruby 2.0.0 からまた元のルールに戻るとかじゃなくて? そうなるんだとすると、本当に訳が分からなくなりそうだ
- 314 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:23:52 ]
- >>313
2.0 系列の開発版は常に 2.0.0 2.0.0 で安定版が作れたと思ったら 2.0.1 としてリリース 2.0.1 がパワーアップしたら 2.0.2 としてリリース 2.0 系列の次のバージョンの開発版を作る場合は 2.1.0 でやる こんだけ x.y.z の y だか z だかが奇数のときは開発版で偶数は安定版、みたいな 冷静に考えるとへんてこなルールと実質上は何も変わらない
- 315 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:32:54 ]
- >>314
ソース求む。 どこにもそんな話、なかったと思うんだが。
- 316 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:46:28 ]
- ruby 1.9.3あたりが安定版になっても俺は驚かない
驚かないが、「またユーザーを混乱させるのか・・・」と思う
- 317 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:40:14 ]
- 順調に迷走してるね、この言語。
- 318 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:17:13 ]
- 迷走してるのはおまえの脳みそだろw
- 319 名前:デフォルトの名無しさん [2009/11/09(月) 02:02:57 ]
- すくなくとも驚き最小の原則を標榜している言語が
脳みそを掻き回したらいかんだろ
- 320 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 02:09:56 ]
- >>319
Rubyのことなら、標榜してないよ。
- 321 名前:デフォルトの名無しさん [2009/11/09(月) 02:13:44 ]
- よそから飛んできたんでひょっとしたら320は空気が読めてなかったかもしれない
- 322 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 02:18:43 ]
- ruby厨WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
- 323 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 08:23:38 ]
- 一時期のRuby厨が荒らしてたPythonスレみたいになってるw
- 324 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:33:42 ]
- 2.0が出てもみんな1.8.7を使いつづけるというオチでは?
- 325 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:44:20 ]
- そこはJRubyでしょ
- 326 名前:デフォルトの名無しさん [2009/11/09(月) 11:24:20 ]
- C言語みたいにクラス定義を別ファイルに書きたいのですが
#include "MyClass.h" に相当するRubyの命令がわかりません。 手持ちの本にも載っていません。 誰か教えてください。
- 327 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:27:40 ]
- require
- 328 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:12:07 ]
- >>326
require "myclass" # myclass.rb を読み込む
- 329 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:50:19 ]
- この言語って他の言語にある程度慣れてる人が多い?
プログラミングはRubyからです!って人は少なそう。
- 330 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:01:19 ]
- >>329
Ruby から始めましたが。 理由は、基本的な構文はどの言語も似ていると思ったので...
- 331 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:27:41 ]
- VBA → ちょっとだけJavaScript → VB.NET → C# → Ruby
- 332 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:14:56 ]
- rubyから始めましたってのはニート出身のPGとかだけだろ
学歴ある奴はあり得ん
- 333 名前:330 mailto:sage [2009/11/09(月) 21:19:51 ]
- >>332
大学で始めてプログラミングやった子なのかな?(^^;
- 334 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:20:44 ]
- >>332
なにその根拠のない自信?ホントにプログラマ?
- 335 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:21:53 ]
- >>332
ム板池よITドカタ
- 336 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:21:59 ]
- おまいら釣られすぎですよ
- 337 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:56:53 ]
- マジレスすると大学で覚えるプログラミングなんて大したことなくね?
いいとこの大学でもC言語を基礎から教えてたりするわけだし、そんな状態から4年間での伸びしろなんてたかが知れてる。 その周りの専門知識は大学じゃないと勉強するのは難しいかもだけど、実務で生かせてる知識がどれほどあるか。、 自分の大学生活が薄っぺらかっただけなのかな? 中卒高卒でも小さい頃から趣味でプログラミングやってた奴らには勝てる気がしないんですよ。 なんというか、雑学というか知識の幅というか、そこら辺が埋めようの無い差を感じる。
- 338 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:01:57 ]
- 安心しろ、ラジオを分解すらしたことがなくても
電気電子系の学科に進学する、という人が増えている。 今はそういう時代。
- 339 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:02:52 ]
- モチベーションの差とかもあるかな
大学出てない奴は少なからず劣等感を持ってると思う うちの会社に大学中退者が何人かいるんだが彼らのハングリー精神は恐れ入るよ
- 340 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:28:33 ]
- >>337
小さい頃からプログラミング続けてる人はベースが完璧にできあがってるし そういう基礎的な部分で苦労しない分、応用とか開発にリソース使えるんだろうね
- 341 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:15:40 ]
- 小さい頃からプログラムやってる人はうらやましいね。
田舎だとそういう情報もハードも少なくて外で走り回ってるくらいだったよ。 その年頃でマイコンとかやってる奴とかいるかと思うと・・・。 まだ、勉強し続けなきゃならないな
- 342 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 02:17:28 ]
- あとは環境かねぇ。
親の環境次第で当時、高価なPCを買えたかどうかとか。
- 343 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:48:57 ]
- 子供の頃、親が遊びに投資してくれたかどうかで
将来がだいぶ変わるよな ゲームばっかすんなとか言うけど そこからプログラムに入れば職業につながる可能性だってあるんだしね 遊びの価値を理解してない人が多い気がする 自分の場合、学校で教わったことなんかより 遊んだ分の知識の方がメシの種になってる 勉強し倒したか、遊び倒したかという極端な人ほど 「使える」人になってる気がする >>342 今は高価な PCじゃなくても、そこそこの性能で 今の子供はうらやましいよね
- 344 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 05:24:12 ]
- そう言われてみれば、消防ん時からプログラミングやってる俺は
親がオーバークロックとか日常茶飯事な自作erだなあ 物心ついた時には周りにPCパーツ転がってたし 俺がPCに興味持ったと知るや、いきなりパーツ屋連れてかれたなw ま、結局それはあんまり肌に合わなくて PCじゃなく、ソフトウェアを組む方にハマったんだが
- 345 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 05:52:33 ]
- 今の子供は羨ましくもあるが、
ネットも無く毎日外で秘密基地とか作って遊んでた自分の小学生時代はこれはこれで良かったと思ってる。
- 346 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 06:23:59 ]
- 一方小学生の>>344はアメリカの某サーバにバックドアを仕掛けた
|

|