Rubyについて Part 16

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
: Rubyについて Part 15
http://pc8.2ch.net/test/read.cgi/tech/1108159084/
2デフォルトの名無しさん:2005/05/21(土) 18:29:15
前スレには気合の入ったURLのリストがありましたが、
16でも書いておいた方がいいかな
3デフォルトの名無しさん:2005/05/21(土) 18:36:18
#!/usr/bin/ruby
print "デ"

というファイル(名前は samp.rb)を作成して
実行すると、
$ ruby ./samp.rb
./samp.rb:2: unterminated string meets end of file

となってしまいます。
普通に表示されるようにするにはどうすればよいでしょうか
4デフォルトの名無しさん:2005/05/21(土) 18:38:10
オープンソースは問題が明らかになってから修正されるまでは確かに早いが
ソースが公開されてしまっているが故に解析されやすい
また、頻繁に修正を繰り返すためエンバグもしやすい
また商用と異なり、メンテ人員の意識レベルの低さから新たな問題へと繋がりやすい

5デフォルトの名無しさん:2005/05/21(土) 18:44:46
だがそれがいい
6デフォルトの名無しさん:2005/05/21(土) 18:46:58
>>3
文字コードは?
Shift_JIS なら一行目を
#!/usr/bin/ruby -Ks
euc-jp なら
#!/usr/bin/ruby -Ke
7デフォルトの名無しさん:2005/05/21(土) 18:47:45
大人しくUNICODEにしろよ
8デフォルトの名無しさん:2005/05/21(土) 18:56:53
せめて関連リンクぐらいは貼ろうぜ
そのくらいしか存在価値無いんだし

= 関連リンク
: ruby-doc
http://www.ruby-doc.org/
: リファレンスマニュアル
http://www.ruby-lang.org/ja/man/
: Ruby hotlinks
http://www.rubyist.net/~kazu/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine
http://jp.rubyist.net/magazine/
: RCRchive
http://www.rcrchive.net/
: RAA - Ruby Application Archive
http://raa.ruby-lang.org/
: RubyForge
http://rubyforge.org/
: Ruby Garden Wiki
http://www.rubygarden.org/ruby
: Matzにっき
http://www.rubyist.net/~matz/
: Matz 日記(linux.com分室)
http://japan.linux.com/~matz/diary/
9デフォルトの名無しさん:2005/05/21(土) 20:51:39
>>6
1.9なら
# -*- coding: shift_jis -*-
でもいけるはず。
10デフォルトの名無しさん:2005/05/21(土) 21:00:26
へー、elisp や Python みたいだな
11デフォルトの名無しさん:2005/05/21(土) 21:20:40
3です。
#!/usr/bin/ruby -Ke
としてできるようになりました。

1.9もためしてみましたが、1.9は
-Keなしでできてしまうので、
# -*- coding: shift_jis -*-
の効果は不明です。
(shift_jisはeuc_jpでやりましたが表示はできる)

みなさん、ありがとうございました。
12デフォルトの名無しさん:2005/05/22(日) 12:33:23
MWがやる気マンマンな件について
13デフォルトの名無しさん:2005/05/22(日) 12:47:21
MWの騒動が終わりかけの頃にこのスレに来たから
MWの人となりは基本的にruby-*でしか知らないんだけど、
やっぱりこっちでもあんな調子だったの?
14デフォルトの名無しさん:2005/05/22(日) 13:51:03
なに? ネタはどこ?

ttp://devlog.moonwolf.com/20050522.html
とりあえず、懲りてないっつーか、
困らせるのが楽しくてしょうがないことは分かった。
でも、自分が困るのは勘弁らしい。
15デフォルトの名無しさん:2005/05/22(日) 14:07:28
なんでMatzのやりかたはよくてMWのやりかたはだめなの?

A: 病気だから
16デフォルトの名無しさん:2005/05/22(日) 15:13:18
>ふたたび「Ruby1.8.2以降のリリースエンジニアリングはどのように改善されたのか?」とかつついてみるとかどうだろう?( ̄ー ̄)ニヤリ
つっても、[ruby-dev:25299]の通り
「彼の甚大な努力にもかかわらず、結局組織化できなかったので(原因はどこにあるのだろう)」で流されちゃってるので、
どうにもならんと思うけど。
17デフォルトの名無しさん:2005/05/22(日) 18:09:36
テスト結果の判断のしかたについてお聞きしたいのです。

Railsをgemで入れました。
# gem install rails

activerecordのテストをしようとして、下準備をしました。
・PosgreSQLのcreatedbやテーブル作成
・active_record.rb の修正(rescue節に require 'active_support' を追加)
・書き込みできるdebug.logファイルの作成(:>debug.log;chown postgres debug.log で作成)

それからテストを実行したのですが、Failします。
----------------------------------------
$ cd /usr/lib/ruby/gems/1.8/gems/activerecord-1.10.1/test
$ sh ./all.sh "connections/native_postgresql"
(略)
1) Failure:
test_has_and_belongs_to_many(DeprecatedAssociationsTest) [./deprecated_associations_test.rb:185]:
<"David"> expected but was
<"Jamis">.

2) Failure:
test_has_and_belongs_to_many(HasAndBelongsToManyAssociationsTest) [./associations_test.rb:719]:
<"David"> expected but was
<"Jamis">.

445 tests, 1433 assertions, 2 failures, 0 errors
----------------------------------------
このFailは気にすべきなんでしょうか?
18デフォルトの名無しさん:2005/05/23(月) 20:57:51
ブロックを実行した回数 (?) を返す特殊変数が欲しいなあと思ったり。

i = 0
text.each_line { |l| p [i, l] }

を、こんな風に書きたい。

text.each_line { |l| p [$|, l] }
19デフォルトの名無しさん:2005/05/23(月) 21:00:39
あ、前のはこうですた。

i = 0
text.each_line { |l| p [i, l]; i += 1 }
20デフォルトの名無しさん:2005/05/23(月) 22:07:39
text.split("\n").reject{|s|(s=="")}.each_with_index{|l, i| p [i, l]}
21デフォルトの名無しさん:2005/05/24(火) 11:55:07
>>18
text.each_with_index { |l, i| p [i, l] }
22デフォルトの名無しさん:2005/05/24(火) 12:33:42
Hashでやりたい
23デフォルトの名無しさん:2005/05/24(火) 12:34:51
>>21
なるほど、 String#each の場合は each_with_index が使えますね。
ただ、 each に限らずもうちょっと一般的な方法があればなあ、という願望です。

>>20
reject は何のために?というか得られる結果が違うし。 split でいくならこうかと。
text.split(/^/).each_with_index{ |l, i| p [i, l] }
24デフォルトの名無しさん:2005/05/24(火) 15:03:45
>>23
すまん単なる勘違い。 Strin#each_with_index も存在を忘れてた。スレ汚しスマソ。
25デフォルトの名無しさん:2005/05/24(火) 18:29:24
>>23
Enumerator
26デフォルトの名無しさん:2005/05/24(火) 19:27:27
>>23
気持ちはわかるが、特殊変数増やすほどのことかなぁとも思う。
二重ループのときはどうしたらいいかな。
これにいいアイデアがあるなら賛成したくなるかも。

>>25
eachに限らずって言ってるのに。
each以外でこの特殊変数が使いたくなる場合があるかどうかは微妙だけど。
27デフォルトの名無しさん:2005/05/24(火) 19:43:38
>>26
二重ループのときは i = $| とかして保存しておく、ですかね。イマイチですが。

というか、 >>25 さんので私のやりたいことはできる気がしてきました。
かなり記述は繁雑になりますが……。
二重ループだとこんなんで。

Enumerable::Enumerator::new(text, :each_line).each_with_index { |l, i|
Enumerable::Enumerator::new(l, :each_byte).each_with_index { |c, j|
p [i, j, c]
}
}
28デフォルトの名無しさん:2005/05/24(火) 20:32:30
>>27
enum_for使えば。
29デフォルトの名無しさん:2005/05/24(火) 20:48:57
>>28
ガーソ!見落としてました。かなりスッキリ書けますね。
30デフォルトの名無しさん:2005/05/28(土) 22:11:10
シコシコして逝く瞬間にティッシュを取ろうと
思ったのですが1枚もありません。
チンコの皮を思いっきり引っ張り皮の中に精子を
貯めトイレにダッシュしたのですが段差でつまづき
精子を廊下にブチ撒けた瞬間に母に見つかりました。
慌ててカルピスを溢したと言い訳したのですが
どう見ても精子です。
本当にありがとうございました。
31デフォルトの名無しさん:2005/05/28(土) 22:30:22
コピペ乙
32デフォルトの名無しさん:2005/05/29(日) 20:40:52
sage
33デフォルトの名無しさん:2005/05/31(火) 23:10:16
Rails day って4日にあるみたいだけど、どういうグループが参加するかって、わかるの??
だれか、XOOPSみたいなの作ってくれないかなぁ。
34デフォルトの名無しさん:2005/06/01(水) 18:11:31
C でコーディングするときに、こうすると快適なことに気づいた。

#define elsif else if
35デフォルトの名無しさん:2005/06/01(水) 18:33:54
MMXレジスタにアクセスする方法を教えてください。
36デフォルトの名無しさん:2005/06/01(水) 21:14:35
>>34
ギャフン
37デフォルトの名無しさん:2005/06/01(水) 22:43:20
>>34
それは良い事をしましたね。
次のようにすると、もっと快適になりますよ。

#define if if(
#define then ){
#define end }
38デフォルトの名無しさん:2005/06/02(木) 00:15:32
>>36
デファン
39デフォルトの名無しさん:2005/06/02(木) 02:23:15
>>37
ありがとう、さらにこれでもっと快適になっていますよ。

#define unless(expr) if (!(expr))
40デフォルトの名無しさん:2005/06/02(木) 09:07:04
>>39
いやいや、>>37と組み合わせればこれで充分ですよ。

#define unless if!

unlessの後ろも空けられます。
41デフォルトの名無しさん:2005/06/02(木) 19:28:48
なんか「C言語経験者のためのRuby入門」って本になりそうだな(笑
42デフォルトの名無しさん:2005/06/02(木) 20:10:37
逆じゃないか?
43デフォルトの名無しさん:2005/06/04(土) 14:08:56
Rails Dayが始まったみたいだね。
ところで、Railsの本って日本語訳の予定あるのかなぁ。
http://www.amazon.co.jp/exec/obidos/ASIN/097669400X/qid%3D1117861706/250-5254301-6761062
44デフォルトの名無しさん:2005/06/09(木) 11:45:59
http://www.rubyist.net/~matz/20050607.html#p02
のとおりにQu風にすると、

a = [1, 2, 3]
last = a.length - 1
a.each_with_index do |n, i|
 if i == 0
  print "[", n, ","
 elsif i == last
 print n, "]"
 else
  print n, ","
 end
end

が、

a = [1, 2, 3]
last = a.length - 1
a.each_with_index do |n, i|
 if i == 0
  print "[", n, ","
 elsif i == last
 print n, "]"
 else
  print n, ","
 ;;
;;


となる。あ、ちょっといいかもとおもた。
45デフォルトの名無しさん:2005/06/09(木) 21:44:49
どこがいいのかさっぱり。
46デフォルトの名無しさん:2005/06/09(木) 22:12:17
vi ユーザの俺的には end も ;; も嬉しくない。 { } で統一して欲しい。
47デフォルトの名無しさん:2005/06/10(金) 05:02:11
>>44
matzは冗談で言ってるんだよな?
コメントに踊らされてその気になったりしないことを祈る。

>>46
俺も主にvi使ってるがendでいいよ。
if ... then ... else ... endのバランスが好きだし。
48デフォルトの名無しさん:2005/06/10(金) 05:19:36
今まで必死にendの良さを布教してきた信者がかわいそうだな
ま、教祖ってのはそういうものか
49デフォルトの名無しさん:2005/06/10(金) 07:51:04
>>48
>今まで必死にendの良さを布教してきた信者がかわいそうだな
あー、そう。それで?
50デフォルトの名無しさん:2005/06/10(金) 08:14:12
>>49
いや、別に。
51デフォルトの名無しさん:2005/06/10(金) 08:14:26
俺も ;; は嬉しくない・・・って言うか見づらくない?
今のまま end でもいいけど、
>>46の言うように { } で統一されるのもいいな。
52デフォルトの名無しさん:2005/06/10(金) 08:33:22
たしかに見づらい。
;;なんてやるくらいだったら、インデントだけで判断すればええやんとも思う。
53デフォルトの名無しさん:2005/06/10(金) 08:36:04
>>52
>;;なんてやるくらいだったら、インデントだけで判断すればええやんとも思う。
Pythonをおすすめします。
54デフォルトの名無しさん:2005/06/10(金) 10:26:25
良かった。>>51, >>52 みたいな感想を持った自分に自信を無くしかけてたよ。
でも、{} での統一は望まない。
55デフォルトの名無しさん:2005/06/10(金) 10:58:04
{} で統一はダサすぎる。 () にしろ。
56デフォルトの名無しさん:2005/06/10(金) 11:02:14
そか?
「読みやすさ」というよりは「入力が楽」って部分で結構いいと思ったんだが。
それは俺がEmacs + JISキーボードでやってるからか?
57デフォルトの名無しさん:2005/06/10(金) 11:13:44
endの羅列は視覚的にウザい。「;;」導入マジ歓迎。
58デフォルトの名無しさん:2005/06/10(金) 11:19:28
「;;」でも「end」でも機能的にはどちらも同じなら、二者択一ッて訳じゃないんだから別にいいんでないの?
「;;」を導入したから「end」が無くなるわけでも無いし。
59デフォルトの名無しさん:2005/06/10(金) 11:59:30
;; は一行に収めようとしたときに崩壊するな
いや普通に { } 使えばいいんだが、doが好き、けどendは嫌いです
とかいう亜種が発生したらどうすんのよ

[1..9].each do |i| [1..9].each do |j| print "%2s"%(i*j);;;;;;
File.open(file) do |f| f.each do |line| puts line ;;;;;
60デフォルトの名無しさん:2005/06/10(金) 12:04:27
元デルフィアンなので全く気にならんなあ。
61デフォルトの名無しさん:2005/06/10(金) 12:33:09
>>55
{ } でも ( ) でもどっちでもいいよ。
とにかく、括弧で括れるってとこが重要なわけだし。
6246:2005/06/10(金) 12:48:43
>>47
あれ?そう? vi でも % 使わない派?
63デフォルトの名無しさん:2005/06/10(金) 13:03:20
>>59
>亜種が発生したら
読みやすいコードかけって普通に注意するなり仕事振らないなりすれば?。
一人でやってる分にはそいつの勝手。どうとでもすればいい。
64デフォルトの名無しさん:2005/06/10(金) 14:17:51
絶対いないとは言い切れないけど、
それって相当珍しい亜種じゃないか・・・?
65デフォルトの名無しさん:2005/06/10(金) 14:27:57
珍種・・・・・・・・・・。
6647:2005/06/10(金) 14:59:17
>>46
使わない派。
ブロック端から端へジャンプしなきゃつらいほど大きなブロックは書かない。
showmatchしてるから対応はわかるし。

さらにmatzが今まで言ってきたように、{}の問題点は節が多い時。
rescueがあるRubyで{}に統一するのはやはり無理だろう。
67デフォルトの名無しさん:2005/06/10(金) 15:05:56
OCamlも使う俺としては、
;;はendの位置に書くよりendの直前の行の末尾に書くのが普通。
ary.each do |x|
 p x;;
インデントに意味があるっぽくて読みにくい。
でも;;が正式採用されたら癖でこう書くだろうな…。

>>59
scheme使いがそんな風に書きそう。閉じ括弧のイメージで。
68デフォルトの名無しさん:2005/06/10(金) 15:51:36
便利かもしれないが、これから Ruby を始めるプログラミング初心者が混乱するだけな気がする
やるなら、互換切ってスッキリさせるなりしないと、すっげー悪評になりそ
便利さをとってグダグダになってきたら Perl を笑えなくなるな
69デフォルトの名無しさん:2005/06/10(金) 15:56:32
もともとグダグタじゃないっけ?

そこが好きなんだけどね。
70デフォルトの名無しさん:2005/06/10(金) 17:48:28
File(afile).open do |af|
 File(bfile).pen do |bf|
  af.each do |line|
   bf.puts(line) if line.match(/regex/);;;;;;;;

プログラムの行数の短さを考慮するようなpython使いなんかも
ネストが深くなったときにこうしたいと思ってもおかしくない気がする
71デフォルトの名無しさん:2005/06/10(金) 20:33:26
File(afile).open do |af|
 File(bfile).pen do |bf|
  af.each do |line|
   bf.puts(line) if line.match(/regex/) oddd
72デフォルトの名無しさん:2005/06/10(金) 22:55:38
>>71
>oddd
?
73 ◆m7YeytgDFE :2005/06/10(金) 23:27:54
>>72
"do〜od"という形式で、"od"が連続する場合は回数分だけ"d"を繰り返して
"oddd"と書ける、ということでしょう。きっと。
74デフォルトの名無しさん:2005/06/10(金) 23:30:04
いや、そこまで原点回帰するならdoの閉じはdoneじゃないか?
75デフォルトの名無しさん:2005/06/10(金) 23:34:54
doneeee

dodododododone

dondondondondone

donedonedonedonedone

done done done done done
76 ◆m7YeytgDFE :2005/06/11(土) 00:02:28
>75
「end end end end」の方が良く思えるのは慣れのせい?
77デフォルトの名無しさん:2005/06/11(土) 00:26:18
File(afile).open DO |af| 
 File(bfile).pen do |bf| 
  af.each do |line| 
   bf.puts(line) if line.match(/regex/)
END
78デフォルトの名無しさん:2005/06/11(土) 00:49:00
>>77
COBOLへ帰れ。
79デフォルトの名無しさん:2005/06/11(土) 01:18:50
Ruby に goto が無いのは何故なんでしょうか?
80デフォルトの名無しさん:2005/06/11(土) 01:36:22
Javaにgotoが無いのと同じ理由だから、Javaスレで聞け。
81デフォルトの名無しさん:2005/06/11(土) 02:11:09
>>79
実装するのが面倒くさいから
82デフォルトの名無しさん:2005/06/11(土) 02:36:15
どうやって実装するんだろ。
ラベルがあるのと同じフレームへの大域脱出とブランチの組み合わせか?
あんまり面倒でもなさそうな気がする。

83デフォルトの名無しさん:2005/06/11(土) 06:48:42
gotoがあるとごちゃごちゃししてみにくいからじゃないのか?
84デフォルトの名無しさん:2005/06/11(土) 08:10:02
>>79
必要ないから && 面倒だから。
85デフォルトの名無しさん:2005/06/11(土) 10:56:11
>>79
けがれるから。
86デフォルトの名無しさん:2005/06/11(土) 11:33:18
>>79
某兄弟と紛らわしいから。
87デフォルトの名無しさん:2005/06/11(土) 12:46:22
pが受け取った値を表示した後、nilでなくその値を返してくれたら嬉しくないかな。

ary.map do { |x| x * 2 + 1 }
の場合
ary.map do { |x| z = x * 2 + 1; p z; z }
と書いていたところを
ary.map do { |x| p x * 2 + 1 }
と書けて幸せだと思うんだけど。
pがnilを返すことを意図的かつ合理的に使うプログラムはほとんどないだろうし。
88デフォルトの名無しさん:2005/06/11(土) 13:08:40
そういうメソッドを別途定義すればいいだけだと思う。
89デフォルトの名無しさん:2005/06/11(土) 13:15:18
>>87
デバッグ目的に使うメソッドを正規のロジックの一部とするのは
勧められないかと。
90デフォルトの名無しさん:2005/06/11(土) 14:49:51
>>87
賛成に一票。

>>89
> デバッグ目的に使うメソッドを正規のロジックの一部とする
んじゃなくて、

まず正規のロジック
ary.map do { |x| x * 2 + 1 }
があって、何かおかしいから p を使ってデバッグしたいなあ、という時に
ary.map do { |x| p x * 2 + 1 }
と p を書くだけで目的が実現できて便利、という話かと。

p の返り値を積極的に利用しているケースが思いつかないので、
仕様変更に伴うデメリットは(ほとんど)無いと思う。
91デフォルトの名無しさん:2005/06/11(土) 15:14:23
だからその用途ならメソッドを定義すればいいだけで、
わざわざ現在の挙動を変える必要はないだろう。
92デフォルトの名無しさん:2005/06/11(土) 15:34:28
ちょっと話はそれるんだけど・・・、
たしかmapって { } 使うんならdoいらなくね?
93デフォルトの名無しさん:2005/06/11(土) 19:37:02
むしろ、 p が nil を返すのは何故なのかと?
94デフォルトの名無しさん:2005/06/11(土) 21:03:01
特に返すべきものがないからでしょ
95デフォルトの名無しさん:2005/06/11(土) 21:56:15
teeコマンドっぽいからpeeでどうですか
9687:2005/06/11(土) 21:57:39
>>90
>p を書くだけで目的が実現できて便利、という話かと。
その通りです。
>>92
その通りです…(恥
>>91
その通りだけど、あくまでデバッグ用なので長い名前は嫌ですね。いい名前あります?
この仕様変更で動かなくなるプログラムは行儀が悪いということで切り捨てちゃってもいいかなと…。

>>95
おお、いいかも。
97デフォルトの名無しさん:2005/06/11(土) 22:48:12
p 1, 2, 3
は何返すんよ?
98デフォルトの名無しさん:2005/06/11(土) 23:33:34
(1, 2, 3)が返す値でいいじゃまいか
99デフォルトの名無しさん:2005/06/11(土) 23:34:30
>87
こんな感じでどうよ?
def pee(*args)
   args.each{ |e|
      p e
   }
   args
end
100デフォルトの名無しさん:2005/06/11(土) 23:58:59
p *args
101デフォルトの名無しさん:2005/06/12(日) 00:33:09
一つならそれ、複数なら配列を返すってことなら、こうかねぇ。

def pee(*args)
p *args
return *args
end
102デフォルトの名無しさん:2005/06/12(日) 02:38:14
マジな話、>>87 の提案はそのまま採用されていいと思う。
ruby-list に参加してる人、投げてみない?

なんで誰も気がつかなかったんだろうね。
pee とか言わず p のデフォルト動作にしちゃっていいよ。
103デフォルトの名無しさん:2005/06/12(日) 03:05:07
いらないと思うんだけどなあ。
104デフォルトの名無しさん:2005/06/12(日) 03:42:46
まあ、いるかいらないかを最終的に判断するのは俺らじゃなくてmatzなので、
投げてみてもいいんじゃない?意外に採用されるかもしれないし
105デフォルトの名無しさん:2005/06/12(日) 05:55:44
いらないと思うんだけどなあ。
106デフォルトの名無しさん:2005/06/12(日) 11:29:39
>>102
> pee とか言わず p のデフォルト動作にしちゃっていいよ。
実のところ、自分で使ってるrubyはこうしてる。
正確には、引数があるときには最後の引数、なければnilを返す。

これで困るのは、irbで p foo とかやっちゃうと二重に出てきちゃってうざっ
たいこと。
107デフォルトの名無しさん:2005/06/12(日) 15:48:47
>>106
irb だと p foo じゃなくて単に foo ってすればいいんじゃね?
108デフォルトの名無しさん:2005/06/12(日) 22:43:52
「いらないと思う」程度なら「あっても困らない」と思うんだけどなあ。
積極的に反対する理由ってあるの?
109デフォルトの名無しさん:2005/06/12(日) 22:55:19
>>107
分かってるんだけどついやっちゃうんだよ。なぜか。
110デフォルトの名無しさん:2005/06/13(月) 00:19:29
欲しけりゃ自分でMLに投稿したら?

出力に失敗した場合はどういう挙動するんだろね?
111デフォルトの名無しさん:2005/06/13(月) 00:21:31
>>110
上司に欲しくないタイプだな
112デフォルトの名無しさん:2005/06/13(月) 01:01:00
>欲しけりゃ自分でMLに投稿したら?
>>87よろしくー。

>出力に失敗した場合はどういう挙動するんだろね?
え?IOErrorが投げられるだけじゃないの?現状のpは違うの?
113デフォルトの名無しさん:2005/06/13(月) 01:08:50
ささださんの日記によると、過去に提案したけど reject されたそうな。
Matz のお気に召さないのかもね。
11487:2005/06/13(月) 01:44:00
う、ふられましたか。
思ったより反対意見が多いようで、様子見というか尻込みというか(笑
もともと「こうならいいなぁ」程度の希望だったんで、
ちょっと面倒ですが毎回自分で定義するので満足しておきます(´・ω・`)

>>113
あ、既出でしかもreject済みでしたか。どこでしょう?
115デフォルトの名無しさん:2005/06/13(月) 01:50:39
ttp://www.namikilab.tuat.ac.jp/~sasada/diary/200506.html#d12
blade で -list と -dev を検索してみたけど見つけられず。
116デフォルトの名無しさん:2005/06/13(月) 02:19:14
このスレを見て思い出したっぽい?w
117デフォルトの名無しさん:2005/06/13(月) 11:06:29
たしかIRCで軽く議論したような記憶はあるんだが、反対したのは誰だっけ。
118デフォルトの名無しさん:2005/06/13(月) 11:56:41
IRCでも開発してるんだ。
119デフォルトの名無しさん:2005/06/13(月) 12:35:08
たったいま、 Ruby の開発体制の閉鎖性の一端を垣間見た気がした。
120デフォルトの名無しさん:2005/06/13(月) 12:51:19
開発じゃなくて雑談だろ?
そもそもS氏はコミッタじゃないんだし。
121デフォルトの名無しさん:2005/06/13(月) 13:16:41
>>117
中の人キター(AA略

ちゅかデバッグの意味で最後にp retvalとかして、メソッドの戻り値がnilになってはまることの方がよくありそう。
だまってreturnちゃんと書けやっていうのも正しい話だけど。
122デフォルトの名無しさん:2005/06/13(月) 13:24:04
>>101
やるなら統一して一つでも複数でも引数を配列として扱うべきだと思います。
でないと引数が複数なのか配列一個なのか区別が付きません。
def pee(*args); p *args; return [*args]; end

とかいろいろ考えてたらめんどくさくなっていらない気がしてきた・・・
123デフォルトの名無しさん:2005/06/13(月) 13:36:15
最後の値を返すとかでいいんじゃない?
def pee(*args); p *args; return args[-1]; end
返値の直前にpを書くだけでデバッグ出力できる!というのが動機なんだから、
複数の値を与えたときどういう挙動をするかは重要じゃないよ。
どのみちpの挙動を正規のロジックとするのが好ましくないのは前述の通りだし。
124デフォルトの名無しさん:2005/06/13(月) 13:46:18
>Gauche の場合、まさに値を返す p が #?= というリーダーマクロがあって便利です。まぁ、S式という構造に非常にマッチしているというのがあるんですが。
>他の言語だとどうなんでしょうね。

「文が式」と言われるRubyにおいてはOKだよね。
125デフォルトの名無しさん:2005/06/13(月) 17:39:35
kagemaiでバグに加えて機能追加なんかの要望もできるテンプレが欲しいです
126デフォルトの名無しさん:2005/06/13(月) 20:22:54
まぁ、教祖様が嫌がって本体にコミット見込みがないんなら、
peeが欲しい人でpee.rb書いておいて
require 'pee'
で幸せになれば(・∀・)イイ!!のでわ。
127デフォルトの名無しさん:2005/06/13(月) 20:25:59
pee1 /p・/
《略式》慥イ《またa 〜》小便
go for [have] a pee  おしっこをする.
━ 曠昿小便する(piss).
peed off 《俗》怒った,いらいらした.
128デフォルトの名無しさん:2005/06/13(月) 22:26:01
>>127
みんなそれを知った上で話してるんだよ
129デフォルトの名無しさん:2005/06/14(火) 00:38:32
まぁ、教祖様が嫌がって本体にコミット見込みがないんなら、
おしっこが欲しい人でおしっこ.rb書いておいて
require 'おしっこ'
で幸せになれば(・∀・)イイ!!のでわ。
130デフォルトの名無しさん:2005/06/14(火) 01:07:23
>>129
ガキかお前?
131デフォルトの名無しさん:2005/06/14(火) 01:11:39
132デフォルトの名無しさん:2005/06/14(火) 01:36:16
require 'うんち'
133デフォルトの名無しさん:2005/06/14(火) 22:13:40
>>130
レス改変くらいで切れんな!ぶっ殺すぞボケ!
134デフォルトの名無しさん:2005/06/15(水) 16:01:58
p で self を返して欲しいってことはその後にメソッド書きたいからだと思うが
ならObject#pはパブリックメソッドにして引数があるなら引数を inspect して表示、
引数がないなら self を inspect して表示にすりゃいいんじゃないのかな
135デフォルトの名無しさん:2005/06/15(水) 16:48:36
pでselfを返して欲しいなんて誰も言ってないぞ。
引数を返して欲しいんだ。
136デフォルトの名無しさん:2005/06/15(水) 17:35:52
p x を x.p と書きたいという別の話だよね。
もし表示する値を返してくれるのなら、
p (p (p obj).func1).func2 が obj.p.func1.p.func2.p と書けて、
メソッドをだらだらつなげて書く派の人 (=私) にはすごくいいかも。
137デフォルトの名無しさん:2005/06/15(水) 17:41:15
>>136
うわー、気持ち悪いけど便利そうー。
138デフォルトの名無しさん:2005/06/15(水) 20:00:47
それ見たあとで現状

p obj
x = obj.func1
p x
x = x.func2
p x
x

を見ると泣きたくなってくるな
139デフォルトの名無しさん:2005/06/15(水) 20:22:54
>>138
現状でも普通はそこまでひどくはしないやろ。

p obj
p x = obj.func1
p x = x.func2
x
140デフォルトの名無しさん:2005/06/15(水) 20:48:09
>>136
それいいな。
141デフォルトの名無しさん:2005/06/15(水) 21:39:43
>>136
いいなそれ。
142デフォルトの名無しさん:2005/06/15(水) 21:47:38
>>136
Object#display よりは使い手がありそう

というか Object#display 使ってる人いる?
143デフォルトの名無しさん:2005/06/15(水) 22:37:49
>>142
初めて知った。
inspectじゃなくto_sで、やっぱりnilを返すんだな。
144デフォルトの名無しさん:2005/06/15(水) 22:40:04
lispのなんたらモードみたいに評価結果をダラダラ垂れ流すモードがあればいいんだよ
145デフォルトの名無しさん:2005/06/15(水) 22:55:58
SmalltalkやSelfのようなインスペクタがあればいいんだよ
146デフォルトの名無しさん:2005/06/15(水) 23:29:39
147デフォルトの名無しさん:2005/06/16(木) 02:32:37
irb で我慢しといたる
148136:2005/06/16(木) 12:52:10
>>146
それだね。
どっちも本家に取り込まれないかなぁ。
149デフォルトの名無しさん:2005/06/16(木) 19:07:09
Gems って、 gem でインストールしたものをどこでどうやって管理するんでしょうか?

FreeBSD ports で devel/ruby-gems をインストールしたのですが、
gem でインストールしたものが pkg_delete や portupgrade などでどうなるのか、
これらのコマンドとの相性みたいなものがどうなのかが心配で、
なかなか Rails をインストールする勇気が出ません。
150デフォルトの名無しさん:2005/06/16(木) 19:42:22
>>149
gemでインストールされたものは/usr/lib/ruby/gemsとかに置かれ、portsなどのパッケージシステムとは関係ない。
portsと関係するのはRubyGemだけなので、Railsについて心配することはない。
151デフォルトの名無しさん:2005/06/16(木) 20:02:24
>>150
つまり、 ruby-gems を pkg_delete したり再度 ruby-gems を install したりしても、
何か不整合や不具合が起こったりはしないということでしょうか?
152デフォルトの名無しさん:2005/06/16(木) 20:07:43
と聞くよりやってみた方が早そうなのでとりあえず gem install rails してみます。
>>150 さんの感じだと特に問題は起こらなそうな感じですので。

何か問題が起こったらまたこちらにうかがいます。
153デフォルトの名無しさん:2005/06/16(木) 23:22:55
Gemsは>150のように独自のディレクトリを掘ってそこに管理する。
ruby-gems 経由で何かをインストールした後で ruby-gems を pkg_delete とか portupgrade
すると、 gems が作成したディレクトリが(空でないので)削除できず、エラーになる筈。といっても
気にするような問題にはならないだろう。
しかし、折角だから rails の ports を作成すると嬉しい人が多いんじゃないかな(内部で gems を
呼ぶだけなので、たぶん簡単に作れるよ)。
154デフォルトの名無しさん:2005/06/17(金) 00:58:11
最近のFreeBSDなら問題の起こりそうなことをする前に
ファイルシステムのsnapshotをとっとくといいかも。
自動で元に戻せたりはしないけど。
155デフォルトの名無しさん:2005/06/21(火) 01:10:01
156デフォルトの名無しさん:2005/06/21(火) 17:18:42
157 ◆m7YeytgDFE :2005/06/21(火) 17:42:40
>>156
なるほど、そういう風にしてHTMLタグを表示させることができる、と。
158デフォルトの名無しさん:2005/06/21(火) 22:06:29
教祖が見捨てても儲に愛されるRD?
159 ◆m7YeytgDFE :2005/06/21(火) 22:26:36
>>158
個人的にはRDを常用・愛用してますが、世間一般ではどうなんでしょう?
手元ではDebianなのでサクッと使えちゃうんですけど、
Windowsで利用環境を作るのは手間なんでしたっけ?
160デフォルトの名無しさん:2005/06/21(火) 22:41:07
他形式に変換することを前提にしないで、そのまんま使ってる。
RDtoolにかけることを考えなかったら、好きなように細かいルールを変更して
いいわけだし、なかなか便利。
161デフォルトの名無しさん:2005/06/21(火) 22:43:31
結局Ruby標準のドキュメンテーションのフォーマットとツールってどれなの?
162 ◆m7YeytgDFE :2005/06/21(火) 22:59:14
>>161
Rubyスクリプトについての文書であれば、RDocなんですかね?
163デフォルトの名無しさん:2005/06/21(火) 23:09:23
コード中に書くならRDocが標準。ツールも標準添付。

そうじゃないなら標準はないが、国内ではRDがデファクト的地位を持つ、と。
164デフォルトの名無しさん:2005/06/21(火) 23:28:56
>>159
今はracc runtimeが標準添付だからとくに手間じゃないと思うけど。
165 ◆m7YeytgDFE :2005/06/22(水) 06:10:00
>>164
う゛、そうなんですか?それは試してみなければ。
最近はcoLinux+Debianの環境で作業することが多くて、
Windows上ではRDを扱ってませんでした。
mswin32版のRubyは使ってるんですけどね。不勉強だったなぁ...。
166デフォルトの名無しさん:2005/06/23(木) 01:50:50
ruby をコンパイルするとき、/usr/local/{include,lib} にあるものをみつけ
させるためにはどうすればよいでしょうか?
167 ◆m7YeytgDFE :2005/06/23(木) 07:08:37
>>166
とりあえずコンパイルする環境などの情報を出した方が良いかと。
configureを使うのであれば、オプションで指定できませんか?
168デフォルトの名無しさん:2005/06/23(木) 09:35:17
>>166
普通に CPPFLAGS と LDFLAGS を適切に設定して ./configure すれば通る筈。
ただしこれだけでは mkmf.rb は上手く認識してくれなかった記憶があるので、
openssl とかを /usr/local に入れている場合は面倒くさい。

その時は mkmf.rb を弄るか、いったん make するとコンパイルエラーになる
ので(コンパイル自体は停止しない)、しかるのちに当該ディレクトリの
Makefile を弄って再度 make とかする必要がある。
169デフォルトの名無しさん:2005/06/23(木) 18:23:07
>>168
俺はこれで問題なくいけてるけど?

% ./configure \
--with-openssl-include=/usr/local/ssl/include \
--with-openssl-lib=/usr/local/ssl/lib \
--with-zlib-include=/usr/local/include \
--with-zlib-lib=/usr/local/lib
170168:2005/06/23(木) 18:56:07
>169
そんなオプションあったのか。単にこっちが無知なだけでした。スマソ。
ところでそれってどこに書いてあったの? 他の ext なモジュールも指定できる?
171デフォルトの名無しさん:2005/06/23(木) 19:09:52
>>170
それは ./configure --help を見れば・・・、と思ったら無いのね。
リファレンスマニュアルの mkmf の configure オプションのあたりかな。
ext なモジュールの側で arg_config() とかで定義するものみたいね。
172デフォルトの名無しさん:2005/06/24(金) 00:07:45
>>169
それならこのほうが簡単。

$ ./configure \
--with-openssl-dir=/usr/local/ssl \
--with-zlib-dir=/usr/local

あるいは --with-opt-dir=/usr/local でもいいけど。
173デフォルトの名無しさん:2005/06/24(金) 03:20:38
>>172
おお、マジか!そういうことはもっと早く教えてくれよ!
174デフォルトの名無しさん:2005/06/24(金) 09:03:08
ここにもなんどか書いてるような気がする。
175デフォルトの名無しさん:2005/06/24(金) 12:20:49
http://lolipop.jp/?mode=info&state=mainte&info_month=200506#824
【モジュール追加】
・Perl関連 ・PHP関連
- SOAP::Lite - XSLT
- Time::HiRes
- DBD::SQLite ・ruby関連
- Crypt::DH - ruby (1.8.2)
- Net::Amazon - Ruby-Mysql


尚、バージョンアップの際、該当のサーバーを30分程停止し、作業を行う為、
Web及びメールの送受信が出来ない場合があります。
その際は、メンテナンス完了後、再度ご利用をお願い申し上げます。

サーバーのバージョンアップが完了次第、随時【インフォメーション】にて
ご報告致します。
http://lolipop.jp/?mode=info&state=mainte

サーバーのバージョンアップ、モジュール追加作業のメンテナンスへ、
ご理解と、ご協力の程、宜しくお願いします。
176デフォルトの名無しさん:2005/06/24(金) 12:46:02
質問した人です。i昆布をリンクさせたかったので、

>>172
> あるいは --with-opt-dir=/usr/local でもいいけど。

を使いました。ありがとです。
177デフォルトの名無しさん:2005/06/24(金) 17:17:34
「さくらのレンタルサーバ」では、以下Rubyモジュールをご利用いた
だけるようになりました。
http://www.sakura.ne.jp/news/20050614-001.news
 ▽今回追加したRubyモジュール一覧

  ・MySQL/Ruby
  ・Ruby-DBI
  ・Uconv
  ・Nora
  ・htree

MySQL/Ruby 及び Ruby-DBI モジュールの追加によりRubyプログラムより
MySQL(※)への操作が可能になります。

今後ともさくらインターネットをどうぞよろしくお願い申し上げます。


※ MySQL はスタンダード以上のプランで利用可能です。
178デフォルトの名無しさん:2005/06/24(金) 20:01:14
-rwxr-xr-x 2 root other 42K 2005-06-18 22:13 /usr/local/bin/perl
-rwxr-xr-x 1 root other 1.2M 2005-06-24 12:47 /usr/local/bin/ruby
179デフォルトの名無しさん:2005/06/24(金) 20:15:55
>>178
何が言いたいかわからんけど、とりあえず --enable-shared しとけと。

-rwxr-xr-x 3 root wheel 9420 2 20 14:22 /usr/local/bin/perl
-rwxr-xr-x 2 root wheel 3084 3 5 02:43 /usr/local/bin/ruby
180デフォルトの名無しさん:2005/06/24(金) 20:38:15
>>179
わかってるじゃん。
181デフォルトの名無しさん:2005/06/26(日) 09:26:11
http://www.ruby-lang.org/
Generated by tDiary version 1.5.7と、書いてありますがどうすればこういうデザインにすることができますか?
182デフォルトの名無しさん:2005/06/26(日) 12:29:27
blogkit
あとcsファイル見れ
183デフォルトの名無しさん:2005/06/26(日) 16:22:16
それだけだっけ?
なんか独自のプラグインを使わないと完全に同じにはできなかったような
いや一回試そうとしたんだよね、俺も。真似できないかなーって
でもなんかblogkitだけでは無理そうだった
184デフォルトの名無しさん:2005/06/27(月) 01:35:09
俺も調べたが同じにはできなかったな。
プラグインも見つからなかった。
結局ヘッダ・フッタのとこにメニュー表示のためのタグを書いた。
185デフォルトの名無しさん:2005/06/27(月) 14:11:27
http://www.vworkers.com/vruz/stuff/ruby.graphics/ruby-home.png

これは、何?

すごくモダンで今のホームページよりはイイと思うけど。
186デフォルトの名無しさん:2005/06/27(月) 17:06:52
引数が即値でない場合に、
その値でなく変数名とかシンボル名だとかを
なんとか得る方法はないでしょうか?
187デフォルトの名無しさん:2005/06/27(月) 17:46:01
instance_variables #=>配列を返す
instance_variable_get, instance_variable_set

みたいなものかな? あと、eval とか。
だとしたら、以前も言われてたけど結構何度も質問されるネタだな。
上手い文章で FAQ か何かに入れとくと良いかもね。
188デフォルトの名無しさん:2005/06/27(月) 18:50:53
Ruby 1.8.1 [i386-mswin32]
MSYS 1.0.10
MinGW 3.1.0-1
GSL 1.6
Ruby/GSL 1.6.3

Ruby/GSLをWindowsで使いたいのですがMSYS+MinGWでGSLをコンパイル/インストール後
ruby setup.rb config
とするとmswinビルドは想定外らしくUNIX環境と誤認するのでextconf.rbの/mingw/を/mswin/にしてconfig後
ruby setup.rb setup
を実行すると
---> ext
nmake
setup.rb:535:in `command': 'system nmake ' failed (RuntimeError)
…〜
と止まってしまいます。
どうしたらmswin/mingwビルド上のRubyでRuby/GSLを使えますか?
189デフォルトの名無しさん:2005/06/27(月) 23:22:58
>>186
どうゆー話なのかよく分かんない。

def foo(arg)
 ここで 12345 ではなく :hogehoge を知りたい
end

hogehoge = 12345
foo(hogehoge)

ってこと?
190デフォルトの名無しさん:2005/06/28(火) 00:21:15
>>189
そのとおりです。
191 ◆m7YeytgDFE :2005/06/28(火) 04:17:52
>>190
Rubyの変数は値(オブジェクト)への参照ですから、
メソッド側では参照しているオブジェクトしか渡らないのでは?
なので、189の例のfooはhogehogeという名前を知り得ないような。

Object#object_idでオブジェクトを特定しても、
それを指している変数は1つと限らないので、名前の特定は無理?

具体的に、どういった実装を想定しているのでしょう?
とても興味があります。
192デフォルトの名無しさん:2005/06/28(火) 10:03:31
Rubyガールキタ━━━━━━(゚∀゚)━━━━━━ !!
http://akiba.ascii24.com/akiba/news/2005/06/25/656621-000.html
193デフォルトの名無しさん:2005/06/28(火) 14:06:29
>>190
Cで引数にポインタを渡して関数側で値を書き換えるような
処理をしたいんだと思われ。

Rubyなら普通、オブジェクトを渡してセッターメソッドで値を換えるんじゃないか
194 ◆m7YeytgDFE :2005/06/28(火) 16:14:53
>>193
なるほど。とりあえず配列を使ってみると、例えばこんな感じ?
C++で言うところの参照渡しに相当することをやりたいと想定してます。
ほんとなら適宜、クラスを定義するんでしょうね。

def func( x )
 x[ 0 ] += 1
end

a = [ 0 ]
func( a )
195デフォルトの名無しさん:2005/06/28(火) 17:47:59
>>186
> 引数が即値でない場合に、
> その値でなく変数名とかシンボル名だとかを
> なんとか得る方法はないでしょうか?

無理。

……これだけだと身も蓋もないので。
どういう状況でこの機能が欲しくなったかを書いてくれると、
うまい別のやり方が見つかるかも。
196デフォルトの名無しさん:2005/06/28(火) 18:40:21
>>186
そんな事が必要になる設計が悪い。
以上。終了。
197デフォルトの名無しさん:2005/06/28(火) 18:49:55
質問した人間じゃないけどコールスタックの情報って取れないの?
198デフォルトの名無しさん:2005/06/28(火) 19:44:13
>>197
caller じゃなくて?
199デフォルトの名無しさん:2005/06/29(水) 01:37:05
横から失礼。

いまのcallerって今いち使いづらい気がする。
メソッド名を知りたい時に文字列マッチングが必要だったり、
別クラスの同名メソッドの見分けがつかなかったり。

スタックフレームオブジェクト(そんなのないけど)とまでは言わないが、
せめて、[[呼び出し元の self, :method_name], ...] みたいなのを返してくれるとうれしいなあ。

(スタック関連のメソッドはわざと用意してないって話を聞いた気がするけど詳細は忘れた)
200デフォルトの名無しさん:2005/06/29(水) 10:35:34
>>199
そこまで高度なことを考えられるならRubyをハックした方が早くないか?
eval.c: static VALUE backtrace(lev)を書き換えるか同じようなメソッドを定義すれば出来る気がするが。
201デフォルトの名無しさん:2005/06/29(水) 23:56:55
>>199
あんまり使わない方がいいメソッドは
使いにくい方が良いと思う。
202デフォルトの名無しさん:2005/06/30(木) 01:03:47
gsub!がnilを返すみたいに?
203デフォルトの名無しさん:2005/06/30(木) 01:21:48
gsub!がnilを返すメリットとメソッドを繋げれないデメリットって、
天秤にかけるとなんだかな。
204デフォルトの名無しさん:2005/06/30(木) 02:26:01
メソッドチェーンなら!じゃないgsub使えばいいんでない?
205デフォルトの名無しさん:2005/06/30(木) 03:27:47
変更されたのか否か、ってのが気になること多いもんね。!系は。
だからgsub!が無変更時にnilを返すのは、至極まっとうで合理的と思うんだが。
206デフォルトの名無しさん:2005/06/30(木) 04:56:06
メモリとか気になるけど一時的な変数使わずに簡潔に書きたい、とか。
207 ◆m7YeytgDFE :2005/06/30(木) 08:15:34
>>206
メモリの使用量が気になるのであれば、
適当なタイミングでGC.startを実行するとか?
自分用にということなら、文字列を返すgsub!相当のメソッドを
Stringクラスに追加しちゃうとか。
208デフォルトの名無しさん:2005/06/30(木) 09:12:32
>>206
それって、本当にメモリを気にしてるのかな?
209デフォルトの名無しさん:2005/06/30(木) 12:19:33
String#gsub! をメソッドチェーンできる破壊的メソッドにして、
現行の String#gsub! を String#gsub!? にしてほしい。

そのまえにメソッド名で "!?", "?!" が使えるようにしてほしい。
210デフォルトの名無しさん:2005/06/30(木) 12:27:27
(str.gsub!||str) でよくない?
メソッド増やすまでもないと思うけど。(しかも互換性捨ててまで)
211デフォルトの名無しさん:2005/06/30(木) 12:32:51
(str=str.gsub)という手もあるか
212デフォルトの名無しさん:2005/06/30(木) 12:51:58
>>210
メソッドチェーンするとカッコの嵐になってあまりうれしくない希ガス。
213 ◆m7YeytgDFE :2005/06/30(木) 12:53:48
>>211
それだと代入前までstrが指していた文字列が、
ガベージコレクションまで宙ぶらりんになってメモリを浪費(?)するのでは?
というのが206の気にしている点なのかな?
214デフォルトの名無しさん:2005/06/30(木) 12:57:15
メモリつーか、コピーが発生するので、
文字列操作を大量に行う場合にはパフォーマンス悪くなるっちゅー話では?
215デフォルトの名無しさん:2005/06/30(木) 13:03:01
gsub! なら「メモリの浪費」とか「コピー」はないの? 実装の話になるけど。

216デフォルトの名無しさん:2005/06/30(木) 13:06:02
破壊的メソッドの方がパフォーマンス良いというのは良く言われる話。
ttp://www.loveruby.net/w/OptimizingRubyProgram.html
217215:2005/06/30(木) 13:19:07
rubyのソース眺めてみました。>>213の言うとおり
gsub!なら、メソッドの中で元の文字列のメモリーを解放してるみたいですね。
コピーについては、まぁあまり変わらん気が。。。

>>216
gsubを使う部分に関して言えば、gsubの方がメモリを解放しない分、高速と。
ただ、GCに残ったメモリ処理を委ねてしまう部分で、全体のパフォーマンスが
落ちる可能性もある、ということですね。参考になりました。
218デフォルトの名無しさん:2005/07/01(金) 13:58:55
C/C++の関数の一部をRubyに投げたいんだけど何か参考になりそうな実装例ってありますか?
C/C++側はDLLです

hoge.cpp
 void hoge(int foo)
 {
  int ret;
  ret = A.ruby_hoge(foo);
  return ret;
 }

hoge.rb
 class A
  def ruby_hoge(foo)
   foo++
   〜
   foo
  end
 end
こんな感じでRubyの方は出来ればクラス化したいです
219デフォルトの名無しさん:2005/07/01(金) 14:39:48
>>218
とりあえず README.EXT.ja と ext の下を見てみればいいのでは。
220218:2005/07/01(金) 15:10:15
あぅ…API関数はわかったけどこれらをどう使ったらいんだかわからない…orz
何かサンプルでもあれば教えてくれると嬉しいかも…
221デフォルトの名無しさん:2005/07/01(金) 15:20:32
Rubyの組み込みはこの世で最も面倒なことの一つだな
222デフォルトの名無しさん:2005/07/01(金) 15:34:31
「C/C++の関数の一部をRubyに投げたい」の意味が分からない。
C/C++で書かれたプログラムをRubyから呼びたいってことなら、わりと簡単。
Rubyで書かれたプログラムをC/C++から呼びたいなら、わりと面倒くさい。

いずれにせよREADME.EXT.jaでわからないなら
RHGをかじるか、Rubyのソースを読むのがいいかと。
223デフォルトの名無しさん:2005/07/01(金) 15:40:15
Ruby *ruby = new Ruby();
ruby->Source("puts(\"hello,world\")");
ruby->Compile();
ruby->Run();
これくらい簡単に出来てもバチは当たらないと思うので誰か作ってください。
224218:2005/07/01(金) 15:48:16
>>222
親アプリ ⇔ hoge.dll ⇔ hoge.rb

てな感じでhoge.rbを書き換えるとhoge.dllの動作も変えられるみたいなことをしたいです
225デフォルトの名無しさん:2005/07/01(金) 16:50:25
226デフォルトの名無しさん:2005/07/01(金) 17:47:43
Array#shuffle が標準でないのは何故?また名前?
227デフォルトの名無しさん:2005/07/01(金) 19:08:27
random と組み合わせたメソッドは無いので、そういうポリシーなんじゃないかな。
他に思いつくのは「配列の中からランダムに要素を選ぶ」くらいだけど。


random ついでに便乗質問。内部で random を使ってるメソッドのユニットテストって
どうやるといいんでしょう。
228デフォルトの名無しさん:2005/07/01(金) 19:16:47
>>227
srand(aFixnum) してからテストするとか?
229デフォルトの名無しさん:2005/07/01(金) 19:18:29
いや、ダメか。 srand したあとどういう乱数系列が得られるかは実装依存なのかな。
230デフォルトの名無しさん:2005/07/01(金) 19:22:26
>223
ActiveScriptRub...
231デフォルトの名無しさん:2005/07/01(金) 23:24:44
Ruby-talkがなんだか和やかだな。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40891
232 ◆m7YeytgDFE :2005/07/01(金) 23:55:58
>>299
試してみました。それぞれの環境では同じ繰り返しです。

$ ruby -v
ruby 1.8.2 (2005-04-11) [i386-linux]
$ ruby -e 'srand( 0 ); 10.times { p rand; }'
0.548813503927325
0.715189366372419
0.602763376071644
0.544883182996897
0.423654799338905
0.645894113066656
0.437587211262693
0.89177300078208
0.963662760501029
0.383441518825778

C:\>ruby -v
ruby 1.8.2 (2004-12-25) [i386-mswin32]
C:\>ruby -e 'srand( 0 ); 10.times { p rand; }'
0.548813502304256
0.592844616388902
0.715189364971593
0.84426574409008
0.602763370377943
0.857945619849488
0.544883177382872
0.847251737257466
0.423654796788469
0.623563696397468
233 ◆m7YeytgDFE :2005/07/01(金) 23:56:31
ごめん! >>229 でした。
234218:2005/07/02(土) 03:23:09
改めてREADME.EXT.jaみているけど…
CからRubyのメソッドを呼び出す関数って見あたらないような…

>** Rubyの初期化・実行
の関数がCからRubyスクリプトを実行する物っぽい?けどこれで出来るのは単なる実行みたいだし…

そもそもCからインタプリタの内部メソッド(関数)を呼び出そうとすること自体無謀?
それとも処理系によってはそういうことも可能なのかな…?
235218:2005/07/02(土) 03:23:39
また上げちゃった…orz
スマソ
236デフォルトの名無しさん:2005/07/02(土) 05:45:43
手元の README.EXT.ja だと、モロに
> 2.2.3 CからRubyのメソッドを呼び出す
という項目があるわけだが。
237デフォルトの名無しさん:2005/07/02(土) 09:32:07
ruby の rand は環境依存は無いんじゃないの?
環境によらず random.c (Mersenne Twister) 使ってるわけだし。
238デフォルトの名無しさん:2005/07/02(土) 12:05:52
>>231
それはruby-listっていうメーリングリストだ
ruby-talkだと思い込んでつい見に行っちまったじゃねえか
239 ◆m7YeytgDFE :2005/07/02(土) 13:10:52
>>237
ありゃ?ということは>232は方法がよろしくない?
同じ1.8.2でも日付が違うから、ってことはありませんよね?
LinuxとWindowsで同じ乱数列を得られるのであれば、ぜひ助言をお願いします。
240デフォルトの名無しさん:2005/07/02(土) 13:40:46
>232
Linuxがよくねーんじゃね?

% ruby -v
ruby 1.8.2 (2004-12-25) [i386-freebsd5]
% ruby -e 'srand(0); 10.times{p rand;}'
0.548813502304256
0.592844616388902
0.715189364971593
0.84426574409008
0.602763370377943
0.857945619849488
0.544883177382872
0.847251737257466
0.423654796788469
0.623563696397468
241デフォルトの名無しさん:2005/07/02(土) 13:41:20
>>239
ChangeLog 見たら2005年1月に random.c にいろいろ変更が入ってるので
バグ取りとかあったのかも。

ruby 1.9.0 (2005-06-08) [i386-cygwin]
ruby 1.9.0 (2005-06-24) [i686-linux]
では、どちらも >>232 の前者と同じ出力だった。
242デフォルトの名無しさん:2005/07/02(土) 13:44:35
srandも自動で呼んでくれないこんな世の中じゃ
243デフォルトの名無しさん:2005/07/02(土) 13:46:00
自動で呼ばれますけど何か
244デフォルトの名無しさん:2005/07/02(土) 13:47:36
たぶん、double(だいたい64bit)に、32bitの乱数を1つだけ食わせて
生成するのが修正されて、乱数を2つから生成するようになったんだと思う。
245デフォルトの名無しさん:2005/07/02(土) 13:50:58
//CVS版random.c
genrand_real(void)
{
unsigned long a=genrand_int32()>>5, b=genrand_int32()>>6;
return(a*67108864.0+b)*(1.0/9007199254740992.0);
}

//1.8.2版random.c
genrand_real()
{
unsigned long y;

if (--left == 0) next_state();
y = *next++;

/* Tempering */
y ^= (y >> 11);
y ^= (y << 7) & 0x9d2c5680UL;
y ^= (y << 15) & 0xefc60000UL;
y ^= (y >> 18);

return (double)y * (1.0/4294967296.0);
/* divided by 2^32 */
}
246デフォルトの名無しさん:2005/07/02(土) 13:51:47
247218:2005/07/02(土) 15:18:30
>>236
上の方か…下の方ばかり見てた…orz
もう一回読んでみる…
248デフォルトの名無しさん:2005/07/02(土) 17:57:28
うはwwwwwこの夏の集中講義楽しみwwwww

おkwwwwwwwwwwwwwww
249218:2005/07/02(土) 19:24:53
う〜ん…拡張書くことを前提に書いてあるのでわかりにくいけど…

方針的にはこんな感じで良いのかな…
・ruby_init→rb_eval_stringでRubyソースを流し込む
・rb_funcall関数を呼んで該当メソッド実行

class内のメソッドを呼ぶ方法は無いみたい…?
呼びたければrb_eval_stringで該当コードを実行するしかないのかな
250デフォルトの名無しさん:2005/07/02(土) 19:32:01
インスタンスはどうするつもりなのか?
251デフォルトの名無しさん:2005/07/03(日) 15:15:51
252218:2005/07/03(日) 17:08:47
Win32APIでRubyのDLL呼びながら実験中

>・ruby_init→rb_eval_stringでRubyソースを流し込む
>・rb_funcall関数を呼んで該当メソッド実行
で一応Ruby内のトップレベルのメソッドを呼ぶことは成功
引数与えて返り値も取れることを確認

クラス内のメソッドの呼び方が相変わらずわからん。
rb_funcallの第一変数でクラスオブジェクトを指定すれば呼べそうな感じなんだけどこの値の取得のしかたがよくわからん…
README.EXT.ja見てもRubyコード内部のクラスを初期化してオブジェクトを取得する関数はないようだし…
Rubyソースでクラスを初期化してそのオブジェクトを取得するにしてもどうすれば…

これ以上はCで解析するか…
253デフォルトの名無しさん:2005/07/03(日) 19:39:59
>>252
>クラス内のメソッド
の意味がよく分からんが rb_class_new_instance とかではなかろうか。

README.EXT.ja を見るのもいいけど、
ext/ 以下の拡張ライブラリのソースも参考になると思う。
254218:2005/07/03(日) 22:29:50
class FOO
 def hoge
  〜
 end
end
ってなRubyのコードのhogeをCから呼びたいです

Rubyで書けば
c_foo = FOO.new
c_foo.hoge
となる訳だけど…

>rb_class_new_instance
肝心のnewするクラス名の指定のしかたがわからない…
argc:多分*argvのサイズ
*argv:多分クラス初期化の引数
klass:よくわからない。初期化するクラス?返り値のポインタ???
拡張ライブラリのソースも検索してみたけどrb_class_new_instanceに引数になっているのが変数ばかりで
どのクラスをどう初期化しているんだかよくわからなかった
255デフォルトの名無しさん:2005/07/04(月) 00:29:10
VALUE foo = rb_const_get(rb_cObject, rb_intern("FOO"));
VALUE c_foo = rb_class_new_instance(0, 0, foo);
VALUE result = rb_funcall(c_foo, rb_intern("hoge"), 0);
256デフォルトの名無しさん:2005/07/04(月) 00:30:28
>>255
> VALUE foo = rb_const_get(rb_cObject, rb_intern("FOO"));
VALUE foo = rb_path2class("FOO");
のが楽かな。
257218:2005/07/04(月) 17:07:35
出来ました
ありがとう〜
258デフォルトの名無しさん:2005/07/04(月) 17:33:18
259デフォルトの名無しさん:2005/07/04(月) 19:46:32
A.中村、guion、G7、戯はスルーしる!>matz
260デフォルトの名無しさん:2005/07/04(月) 21:34:02
subversionのannotateってあんなに遅いのが普通なの?
261218:2005/07/05(火) 01:40:49
RubyってDLL内から動かすのって無理?
EXEからならちゃんと動くコードがDLLに入れると不正終了する

rb_eval_stringでRubyソースを流し込んだあと
rb_class_new_instanceとかrb_funcallを呼ぶと駄目な模様

コンパイルはMinGW
Rubyをコンパイルすると出来るlibmsvcrt-ruby18.aで実験しています
262デフォルトの名無しさん:2005/07/05(火) 06:54:35
>>259
全部同一人物じゃねえか(笑)
しかし激しく同意。
263>>261:2005/07/05(火) 09:14:10
win32ではruby本体も格調ライブラリもDLLなんだが。
「DLLから動かす」ってのがどうやったのかと。
264218:2005/07/05(火) 16:34:38
何となく原因がわかってきた…
DllMainでruby_init、rb_eval_stringして
エキスポート関数でrb_class_new_instanceとかrb_funcallを呼ぶと駄目っぽい
エキスポート関数内でruby_initから書くと動く
DllMainのruby_initで初期化されたメモリとかが勝手に解放されちゃうっぽい???
でもエキスポート関数呼ばれる度にRuby初期化、スクリプトのロードするのはかなり効率悪いし
Ruby内でのグローバル変数が使い物にならない…orz
どうしたら良いだろう?

あ、一応訂正
>>261
×:libmsvcrt-ruby18.a
○:libmsvcrt-ruby18.dll.a
--disable-shared付けてビルドしたlibmsvcrt-ruby18.aだとリンクは出来るけどなぜか動かないっぽい
265デフォルトの名無しさん:2005/07/05(火) 17:11:48
>>264
DllMainの中でどうやって呼んでるか、だね。
DllMainの第2引数の値が何である時に処理させてる?
266218:2005/07/05(火) 17:51:37
ぎゃー
DllMainエキスポートしていないだけでした…
そりゃDllMain実行されない罠…il||li ○| ̄|_

スレ汚しスマン
267デフォルトの名無しさん:2005/07/05(火) 23:17:16
数学的に解決するのはかっこいいね。あこがれるぅ。
268218:2005/07/06(水) 01:16:10
Rubyのスタティックライブラリってどうやってコンパイルすればいい?
msvcrt-ruby18.dll相当の物で良いんだけど…
269デフォルトの名無しさん:2005/07/06(水) 09:26:05
>>268
途中で-static.aてのができてるはず。
270218:2005/07/06(水) 14:56:42
--enable-sharedを付けて作った
libmsvcrt-ruby18.a
libmsvcrt-ruby18-static.a
をリンクした物を実行するとアプリケーションエラーになります…
271218:2005/07/06(水) 15:01:30
libmsvcrt-ruby18-static.aだけリンクすると undefined reference to エラーが大量に出るので
何か足らないと思ったけど足すのはlibmsvcrt-ruby18.aじゃなくて-lwsock32なのね…
動くようになりました
272デフォルトの名無しさん:2005/07/06(水) 18:30:20
>>271
必要ないかもしれんが、そのプログラムは普通に作った拡張ライブラリは
ロードできないから、そのつもりで。
273218:2005/07/06(水) 23:02:38
>>272
あ、ホントだ…というか$:が空だ…orz
ロード可能にする方法もあるんですか?
274デフォルトの名無しさん:2005/07/07(木) 01:13:26
>>273
> あ、ホントだ…というか$:が空だ…orz
ruby_init_loadpath()呼んでる?

> ロード可能にする方法もあるんですか?
WindowsではDLLからimportされるシンボルはそのDLL名も含んでいるので、普
通にコンパイルされた拡張ライブラリはlibmsvcrt-ruby18.dllからexportされ
たシンボルにリンクされている。それをスタティックリンクされたexe/DLLか
らロードすると、>>270と同じ状況になる。

だから、考えられる方法はこの辺かな。
(1) スタティックリンクライブラリじゃなくてlibmsvcrt-ruby18.dllを使う
(2) 作るDLLの名前をlibmsvcrt-ruby18.dllにする
(3) (2)と似ているけど、Forwarding DLLを使う
(4) 必要な拡張ライブラリは全部コンパイルし直す
(5) DLLの外部参照をロード時にマッピングし直すコードを実装して、ruby-devに投げる
275デフォルトの名無しさん:2005/07/07(木) 09:25:44
>>274
libmsvcrt-ruby18.dll じゃなくて msvcrt-ruby18.dll ね。
しかしあんた詳しいな。
276デフォルトの名無しさん:2005/07/07(木) 16:08:17
次は、Rubyで長方形のクラスを定義し、インスタンスを一つ作り出しているものです。C言語で同様のプログラムを作成しなさい。
class Rectangle
def initialize(x1,y1,x2,y2)
@x1 = x1
@y1 = y1
@x2 = x2
@y2 = y2
end
attr_accessor :x1,:y1,:x2,:y2
end

rect1 = Rectangle.new(10,10,20,20)
p rect1

printf("長方形の対角の座標は(%d %d)と(%d %d)です。\n",rect1.x1,rect1.y1,rect1.x2,rect1.y2")
277デフォルトの名無しさん:2005/07/07(木) 17:11:32
宿題は別のスレの方がいいと思うよ
しかもC言語だし。
278デフォルトの名無しさん:2005/07/07(木) 19:02:47
まずRubyインタプリタを作ればいいのかな?
279218:2005/07/07(木) 19:07:15
>ruby_init_loadpath()呼んでる?
呼んでいませんでした。ソースも探したつもりだったんだけど見落としていたか…il||li ○| ̄|_
やってみます

>WindowsではDLLからimportされるシンボルはそのDLL名も含んでいるので
なるほど、Windowsの仕様って事ですか…
ファイルが増えるのは好きじゃないんだけどやるとすれば無難に(1)かな…

hash.cってstaticなの多いね…
ハッシュの全要素を取り出すのに何か良い方法はあるかな?
rb_hash_keys(Hash#keys)で全キーを取って…と考えたけどstaticみたいだし…orz
static取っちゃって大丈夫かな…?
280デフォルトの名無しさん:2005/07/07(木) 19:30:55
Cでコールバック関数を定義して、rubyに登録しといて、
んで、"hash.each{|h,v| cfunc(h,v);}"をevalのではいかんのか
281218:2005/07/07(木) 20:15:01
>>280
うぐ…気分的問題だけどRuby側ではRuby標準搭載以外の機能はあまり使いたくないので…
どっちみちスマートじゃないけど全キーリストを定数のキーで一緒に渡すのも手か…
わがまま言ってスマソ
282デフォルトの名無しさん:2005/07/07(木) 20:49:55
rb_iterate()とrb_each()
283218:2005/07/07(木) 21:38:41
sizeメソッドってHashもArrayもCからは使えないのね…il||li ○| ̄|_
Rubyからの戻り値のサイズでメモリを確保する場合は…
Ruby上で数えてその値をもらうかC上でnilが出るまでArrayを読むかしかないのか…

>>282
Cからイテレータを回す?
rb_iterate(rb_each, ?, rb_ary_entry, ?)???
selfは…?スマソ さっぱりわからん…orz
284デフォルトの名無しさん:2005/07/07(木) 21:52:56
そろそろ218がウザくなってきた件について
ext/**/*.cくらい読めよ
285デフォルトの名無しさん:2005/07/08(金) 00:08:09
>>283
RHASH(hash)->num_entries
RARRAY(array)->len

>>282についてはenum.cを嫁。
286218:2005/07/08(金) 01:14:59
>>285
なるほど…staticな関数でも中は公開されている関数で組まれていることもあるのか

>>>282についてはenum.cを嫁。
わかったようなわからんような…一部コピペして動かしてみればわかるかな…
どうしても必要になったらやってみる
287デフォルトの名無しさん:2005/07/12(火) 16:44:56
組み込みの話が出ているのでついでに教えてくれい
Rubyを組み込んだアプリを配布する場合のライセンスってどうなるんだ?
本家のライセンス読んでもよくわからん
3.a:バイナリの再配布時にはソースコードを入手可能にすればいいように読める。その適用範囲は…?
3.b:「機械可読なソースコード」って何?
5.を読むとRuby本体以外の部分は一切制限を受けないようにも読める
288デフォルトの名無しさん:2005/07/12(火) 19:44:52
問題ないだろ。RGSSって例もあることだし。
289デフォルトの名無しさん:2005/07/12(火) 22:45:27
>>288
3.d その他の配布条件を作者と合意する
の可能性もあるわけで…
290デフォルトの名無しさん:2005/07/13(水) 01:03:04
>>287
Matzを訴えなければ大丈夫。
291デフォルトの名無しさん:2005/07/13(水) 01:48:34
>>290
えっ?
それってどういう…
292デフォルトの名無しさん:2005/07/13(水) 02:02:36
>>290
これか。

[ruby-talk:24727] Re: license terms (Re: Re: kill rdtool?)
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/24727

> p.s.
>
> Here's the terms from inside of my heart:
>
> Permission is granted to anyone to use this software for any purpose,
> including commercial applications, and to alter it and redistribute it
> freely, subject to the following restrictions:
>
> 1. DO NOT SUE ME.
> 2. DO NOT EVEN THINK ABOUT SUING ME.

(いい加減な訳)
以下の条件を守れば、どんな目的に使ってもいいし(商用も可)変更・再配布も自由。
 1. 訴えないで。
 2. 訴えようと考えないで。
293デフォルトの名無しさん:2005/07/13(水) 13:50:43
294デフォルトの名無しさん:2005/07/13(水) 15:20:05
>>292-293
なるほど。訴えない限りはよっぽど変なことに使わない限り大丈夫って感じで良いのかな?
295デフォルトの名無しさん:2005/07/13(水) 15:21:46
訴えるななんてライセンスは法的には無意味だろ
296デフォルトの名無しさん:2005/07/13(水) 15:34:14
だから、2 があるんでは?
297デフォルトの名無しさん:2005/07/13(水) 15:34:45
>>295
もちろんそんなことはライセンス条項には書いていないけどね。
298デフォルトの名無しさん:2005/07/13(水) 15:40:18
そういや LEGAL の nkf が ext/nkf/nkf1.7/nkf.c のままだね。
299デフォルトの名無しさん:2005/07/14(木) 13:49:11
[ruby-core:5420]
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/5420

> Sydney is an experimental fork of ruby 1.8.2 that implements a number
> of new features, such as Native OS threads, Backtrace and Frame
> objects, more event hooks, and many more.

試してないけど、>>199 がお望みの Ruby かもしれませんよ。
300デフォルトの名無しさん:2005/07/14(木) 13:51:26
リファレンスマニュアルに README.EXT (相当) の記述が無いのはなんでだろ?
301デフォルトの名無しさん:2005/07/15(金) 00:00:43
正確にはよくわからんけどWin32APIって
func = Win32API.new(〜)

func.call(〜)
の間にopenとか挟むと.callが失敗することがあるのね…数時間ハマったよ…il||li ○| ̄|_
302デフォルトの名無しさん:2005/07/15(金) 08:46:31
>>301
問題のコード(と Ruby のバージョン)を貼ってはくれまいか。
303デフォルトの名無しさん:2005/07/15(金) 09:10:26

655 名前:仕様書無しさん[sage] 投稿日:2005/07/14(木) 15:15:51
2ch にだけバグレポート書くのやめてほしい。
orz とかいってないでメール出せ。メール。


656 名前:仕様書無しさん[sage] 投稿日:2005/07/14(木) 15:25:54
そしてそれを元にバグフィックスしたら「作者見てるだろ」と言われる罠。


657 名前:仕様書無しさん[sage] 投稿日:2005/07/14(木) 16:21:22
あるなそのジレンマw
304デフォルトの名無しさん:2005/07/15(金) 09:42:52
>>303
ワロタ
305デフォルトの名無しさん:2005/07/15(金) 09:47:21
306デフォルトの名無しさん:2005/07/15(金) 11:09:04
>>301 は GC とか絡んでる悪寒
307デフォルトの名無しさん:2005/07/15(金) 11:14:48
require 'Win32API'
require 'win32ole'

大文字小文字が揃ってないのが気持ち悪い
308デフォルトの名無しさん:2005/07/15(金) 15:29:58
ruby-1_8 なんですが、openssl-0.9.8 だと
"/usr/local/include/openssl/md5.h", line 108: syntax error before or at: size_t
"/usr/local/include/openssl/md5.h", line 108: warning: undefined or missing type for: size_t
"/usr/local/include/openssl/md5.h", line 110: syntax error before or at: size_t
"/usr/local/include/openssl/md5.h", line 110: warning: undefined or missing type for: size_t
"/usr/local/include/openssl/md5.h", line 110: warning: undefined or missing type for: unsigned
"md5ossl.c", line 17: warning: argument #1 is incompatible with prototype:
prototype: pointer to char : "/usr/include/iso/stdio_iso.h", line 183
argument : pointer to unsigned char
cc: acomp failed for md5ossl.c
とかでてコンパイルできないんですが、ソースをどのように▼変更すればよかですか?
309デフォルトの名無しさん:2005/07/15(金) 17:19:26
今日、筑波大でまつもとさんの講義見てきた。
310デフォルトの名無しさん:2005/07/15(金) 17:20:53
せめてあと二・三行くらいなんか書けw
311デフォルトの名無しさん:2005/07/15(金) 17:36:06
今もヒゲ?
312デフォルトの名無しさん:2005/07/15(金) 18:12:28
>>311
無精ひげ
313デフォルトの名無しさん:2005/07/15(金) 21:59:12
第一印象は?
314デフォルトの名無しさん:2005/07/16(土) 00:08:07
/:|)
315デフォルトの名無しさん:2005/07/16(土) 01:45:18
GUIでtk使おうと思ってtk.rbリクワイアしたらtk.rb中でリクワイアしてるtcltklibが見つからずエラー出る
コンフィギュア時 --with-tcllib --with-tklib --with-tcl-include --with-X11-include 全部設定して入れなおした。
だめだった。
なんでじゃーあんちゃんなんでじゃー
グギギ…
316デフォルトの名無しさん:2005/07/16(土) 13:19:35
>>315
ちゃんと必要なものは全部コンパイルされたのか?
317デフォルトの名無しさん:2005/07/17(日) 01:30:34
>>306
エラーの内容もわからんのではっきりしたことはいえんのだけど、
funcが開放されるまではDLLは掴んでいるはず。
318デフォルトの名無しさん:2005/07/17(日) 03:27:24
なぁ、↓これ買いたいんだけどさ、なんで倍近い値なんだよ。

Rubyソースコード完全解説
ttp://www.amazon.co.jp/exec/obidos/ASIN/4844317210/

ここまで値段が吊り上がるぐらいなんだから、増刷してくれたっていいじゃんか。
319デフォルトの名無しさん:2005/07/17(日) 05:39:28
ttp://i.loveruby.net/ja/rhg/index.html

普通に、俺ンちの近くの本屋では売ってた記憶があるけど。
320デフォルトの名無しさん :2005/07/17(日) 16:28:15
問題文生成システムを作りたいんだけど。。
コーパスとかから語彙を拾ってきて、その語彙を含む問題文を生成するシステムなんだけど、rubyでどうやって作ればいいのかなぁ。
プログラム例がないとちょっと手がつかない。。
321デフォルトの名無しさん:2005/07/17(日) 18:09:50
>>320
よくわからないけど、ここより自然言語処理スレのほうがいいんじゃないかな。
http://pc8.2ch.net/test/read.cgi/tech/1011988273/l50
322デフォルトの名無しさん:2005/07/17(日) 23:17:40
>>318
それって、オンラインで公開されてないか?
323デフォルトの名無しさん:2005/07/18(月) 00:21:55
>>318
知らんかった。とりあえず買っといて良かった…。
2回くらい開いたけど、忙しくなってちゃんと読んでないわ。
まぁ、そのうち増刷されるのでは?
324デフォルトの名無しさん:2005/07/18(月) 00:22:34
>>319じゃないんか?
325デフォルトの名無しさん:2005/07/18(月) 22:08:37
>>308
解決済みだったらごめん。
そこだけじゃないし、コンパイル通るようにしてもCygwin上ではtest-allが刺さるし、他でもたぶんテスト通らないと思う。
あとリンカがエラー吐く場合はossl_engine.cの該当部分を#ifdef OPENSSL_NO_DYNAMIC_ENGINE
で囲むといけるっぽいけど。
テスト通らないし直し方もわかんないのでメール投げたりしてません。ごめんなさい。


Index: ext/digest/md5/md5ossl.h
===================================================================
RCS file: /src/ruby/ext/digest/md5/md5ossl.h,v
retrieving revision 1.1
diff -r1.1 md5ossl.h
5a6
> #include "defs.h"
Index: ext/digest/rmd160/rmd160ossl.h
===================================================================
RCS file: /src/ruby/ext/digest/rmd160/rmd160ossl.h,v
retrieving revision 1.1
diff -r1.1 rmd160ossl.h
5a6
> #include "defs.h"
Index: ext/digest/sha1/sha1ossl.h
===================================================================
RCS file: /src/ruby/ext/digest/sha1/sha1ossl.h,v
retrieving revision 1.1
diff -r1.1 sha1ossl.h
5a6
> #include "defs.h"
326デフォルトの名無しさん:2005/07/18(月) 23:08:11
>>325
いや、ありがとうございます☆
327デフォルトの名無しさん:2005/07/20(水) 00:47:43
328デフォルトの名無しさん:2005/07/20(水) 00:56:10
>Rubyist のための他言語探訪 【第 1 回】 Python
こういうの好きだねぇ・・・
329デフォルトの名無しさん:2005/07/20(水) 01:04:03
akr氏の写真初めて見た。 「core な人として著名な」にワロタよ。
330デフォルトの名無しさん:2005/07/20(水) 14:01:03
>>328
あらら、また危い橋渡ってるのか (w
つか、もうちょっと垂れ流さずに日本語選んで書いた方が良いよな。
煽りが入ってる思われてもしょうがない部分が、ちらほらあちこちところどころばらばらわらわらと。
331デフォルトの名無しさん:2005/07/20(水) 15:01:18
Matzの真のライフワークにケチつけるなよ
332デフォルトの名無しさん:2005/07/20(水) 15:29:54
煽りは Matz にあるんじゃない、煽りだと思って読む人の中にあるんだ!
333デフォルトの名無しさん:2005/07/20(水) 16:18:18
どっちが面倒とか醜いとか言わずに、単にRubyユーザも視野を広げて色々な言語を
知って欲しいという点だけで紹介を書けばいいのになあ。
Rubyを引き合いに出すのはそれで理解がはやくなる場合だけにしておけばいいのにね。
334デフォルトの名無しさん:2005/07/20(水) 16:32:06
HSP, Perl, Java とシリーズ化したら matz はネ申
あぼーんが大活躍すること間違いナシ
335デフォルトの名無しさん:2005/07/20(水) 17:55:01
>>333
Matz が Ruby ユーザーのために書くのに、
Ruby をひきあいに出すなってのは無理かと。
336デフォルトの名無しさん:2005/07/20(水) 18:10:32
ネタをネタと見抜ける人でないと(るびまを読むのは)難しい
337デフォルトの名無しさん:2005/07/20(水) 18:19:17
どこに Ruby をひきあいに出すなと書いてあるか、ポインタきぼんぬ > 信者
338デフォルトの名無しさん:2005/07/20(水) 20:33:38
X 言語ユーザのための雑誌で、X 言語以外の言語を
X 言語の作者が X 言語の作者として、X 言語との比較ですらなく
ただただ紹介するだけなんてありえないだろ。
339デフォルトの名無しさん:2005/07/20(水) 21:10:52
るびまって結局日本での内輪化を進めるものにしかなってないよね
340デフォルトの名無しさん:2005/07/20(水) 21:13:17
>>339
どのあたりが?
341デフォルトの名無しさん:2005/07/20(水) 22:38:49
>私はとにかく物を作るのが好きなのです。人間は、その創造主のかたちに似せて作られました。ですから、人間は元から
>創造者なのです。私は絵かきや音楽は得意ではありませんが、ソフトウェアを作ることはできます。だからソフトウェア
>を作るのです。

まつもとさんキリスト教徒だったのか・・・
しらんかった
342デフォルトの名無しさん:2005/07/20(水) 22:41:09
>>341
それは普通のキリスト教徒に怒られる発言かも。
343デフォルトの名無しさん:2005/07/20(水) 22:44:22
板違い
344デフォルトの名無しさん:2005/07/20(水) 23:07:42
>>342
普通のキリスト教徒などいない。
345デフォルトの名無しさん:2005/07/20(水) 23:16:42
>>344
そか?
俺キリスト教徒じゃないけど、
普通のとカルトの違いはわかるぞ

どうせなら、
るびまにその辺の説明書いて欲しいな
346デフォルトの名無しさん:2005/07/21(木) 01:09:55
>>337

>>336 みたいなこともそうだよね

後、rubyistのためのと言ってるわりには、日本語だけってのも
それはしょうがないと思わなくもないけど

全般的に内輪臭しない?
347デフォルトの名無しさん:2005/07/21(木) 01:14:31
>>336は言ってみただけだろう。そんな含みがあったとは思えない。

開発陣での内輪化の臭いは確かにする。るびまに限らずRuby全般的に、昔から。
しかし特にるびまが日本での内輪化を進めているとは思わない。
348デフォルトの名無しさん:2005/07/21(木) 01:57:14
日本のキリスト教徒は変な奴ばっか(平均すると。まともなのもいる。少ないけど)
日本での信者数が1パーセント程度というのも、むべなるかなという感じがする。
349デフォルトの名無しさん:2005/07/21(木) 09:54:15
牧師はレイパーばっかだしな
350デフォルトの名無しさん:2005/07/22(金) 02:24:18
ということは日本のキリスト教徒はチョンばっかということか
351デフォルトの名無しさん:2005/07/22(金) 04:51:06
モルモン、エホバ、統一教会
352デフォルトの名無しさん:2005/07/22(金) 14:24:03
(・∀・)moonwolf!!
353デフォルトの名無しさん:2005/07/22(金) 15:37:13
cygwinから-mno-cygwin付けてuconvコンパイルしたいんだけど
>ruby extconf.rb
Makefileのccをgcc -mno-cygwin -O2に
>make
gcc -mno-cygwin -O2 -DUSE_EUC -DUSE_SJIS -I. -I/usr/lib/ruby/1.8/i386-cygwin -I/usr/lib/ruby/1.8/i386-cygwin
-I.  -c e2u.c
/usr/lib/ruby/1.8/i386-cygwin/ruby.h:22 から include されたファイル中,
         uconv.h:11 から,
         e2u.c:10 から:
/usr/lib/ruby/1.8/i386-cygwin/defines.h:124:25: win32/win32.h: No such file or directory
uconv.h:11 から include されたファイル中,
         e2u.c:10 から:
/usr/lib/ruby/1.8/i386-cygwin/ruby.h:61:20: alloca.h: No such file or directory
In file included from uconv.h:11,
         from e2u.c:10:
/usr/lib/ruby/1.8/i386-cygwin/ruby.h:687: error: 構文解析エラー before "rb_nativethread_t"
/usr/lib/ruby/1.8/i386-cygwin/ruby.h:687: 警告: data definition has no type or storage class
make: *** [e2u.o] エラー 1

-mno-cygwin付けなければ正常にコンパイルできる。MinGWパッケージでDOS窓から手動でコンパイルしても問題なく
ビルドできるようなのでソース自体がおかしいわけでもない模様。手動でのコンパイルはめんどくさいけど

どうしたらextconf.rb使って-mno-cygwinなバイナリをコンパイルできますか?
354デフォルトの名無しさん:2005/07/22(金) 16:25:53
-mno-cygwinなrubyでextconf.rbを実行。
355デフォルトの名無しさん:2005/07/22(金) 19:51:59
OSSコミュニティの「日本病」
・本家原理主義。
・しかしながら妙に独自主義
・コミュニティが分断されている
・開発コミュニティとユーザーコミュニティが悪い意味で分断されている。
 コミュニティとはあまり関係なく、個人が本家にフィードバックするだけ。
 悪くすればローカライズに特化した組織になるか、ユーザー間の交流会止まり。
 集団化すりゃいい、という問題でもないがコミュニティでしかできないことを
 日本のOSSコミュニティが提供できているか、というとそういうわけでもない。
・日本なんとか会(法人組織)の排他性。中間法人格などを取得していても、
 組織の運営実態がイマイチ把握できない。ディスクロジャーの欠如、
 法人協賛会員への過度の財政的依存、役員選定基準の不明確さなど
 一見して誰のための何の組織なのか理解不能。
 しかも、コミュニティとの繋がりが希薄なので、情報を求めにきたビジターは肩透かしを食らう。
 一方で恒常的な財政問題を抱えている
・開発者やユーザーは、似たようなコミュニティの間を渡り歩くか、
 現実的な成果を上げるにはコミュニティとは無関係に活動せざるを得ない
・日本のOSSコミュニティにおけるアクターはコミュニティではなく、キーパーソン的な個人
356デフォルトの名無しさん:2005/07/22(金) 22:00:13
>>355
rubyには当てはまらないような。
もっと別な大きな問題はあるが。
357デフォルトの名無しさん:2005/07/22(金) 22:31:35
>>355 が日本人というのはよくわかった。
358デフォルトの名無しさん:2005/07/22(金) 22:45:48
359デフォルトの名無しさん:2005/07/23(土) 01:47:11
>>356
その問題を詳しく。
360デフォルトの名無しさん:2005/07/23(土) 03:56:21
先発のPythonの方が優れた言語であるというのは大問題だな。
361デフォルトの名無しさん:2005/07/23(土) 04:15:33
そういうあからさまな燃料はあんまり燃えないよ(´・ω・`)
362デフォルトの名無しさん:2005/07/23(土) 08:46:08
燃料ってのはこういうのをいうんだ
ttp://www2s.biglobe.ne.jp/~akjr/glossary.html
363デフォルトの名無しさん:2005/07/23(土) 09:54:01
>>362
> プログラミング用語解説? ジョークはジョークとして受け取ってください...
ホビープログラマの俺には、どこかしこもジョークにしか見えなかった。
> とりあえず、デタラメは書いてないつもりなので...
ホビープログラマの俺には、どこかしこもデタラメにしか見えなかった。

ちうか、かなり痛ぇな。とりえあず、Perl信者らしきことは分かった。
文脈的にWebプログラマか何かなんだろうが、すげぇ低レベルだ。仕事あんのかコイツ。
364デフォルトの名無しさん:2005/07/23(土) 10:15:07
>>362
> とりあえず、デタラメは書いてないつもりなので...
それは本気で言ってるのかMithran
365デフォルトの名無しさん:2005/07/23(土) 10:45:28
@{[]}なんて昔はなかったよな。いつからできるようになったんだ?
というかなんで二重に囲むの?
366デフォルトの名無しさん:2005/07/23(土) 10:55:06
367デフォルトの名無しさん:2005/07/23(土) 11:50:13
ヒアドキュメントの中で #{} 使うのは自分的にちょっと目新しかった。
今度使おうっと。

Perlの @{[]} は
@{[
$a = 1;
$b = 2;
]}
とかかくと落ちるようだから、代りにはならない気がするんだがどうなのかな。
368デフォルトの名無しさん:2005/07/23(土) 12:34:48
>>363
素人、乙。
369デフォルトの名無しさん:2005/07/23(土) 14:30:51
確かに燃料になっているようだ
370デフォルトの名無しさん:2005/07/23(土) 14:53:17
ジャパンはanonymousが多いからpersonは必然的にkeyだねミンナキレイダヨー
371デフォルトの名無しさん:2005/07/23(土) 20:14:58
>>367
ほんとだ。つーかなんか行番号がずれてるような気がする。

$ perl -e 'print "
@{[
$a = 1;
$b = 2;
]}
"'
syntax error at -e line 2, near "1;"
syntax error at -e line 4, near ";
]"
Execution of -e aborted due to compilation errors.
372デフォルトの名無しさん:2005/07/23(土) 21:53:38
>>371
ネタか?
373デフォルトの名無しさん:2005/07/24(日) 12:16:00
知識もないのに評価するってのがどれだけ痛いことなのか良く分かるな。

Perlの@{[]}の中には式しかかけないので;を書いたら構文エラーになるのは当たり前。
文を書きたいならdo{}を入れればよい。
print "@{[do{ $a = 1; $b = 2; $a + $b; ]}";
print "${\do{ $a = 1; $b = 2; $a + $b; }}";
374デフォルトの名無しさん:2005/07/24(日) 12:28:56
なんでrubyってローカル変数が無いの?
375デフォルトの名無しさん:2005/07/24(日) 12:32:27
376デフォルトの名無しさん:2005/07/24(日) 13:11:03
>>373
> 知識もないのに評価するってのがどれだけ痛いことなのか良く分かるな。
すまんorz。

> Perlの@{[]}の中には式しかかけないので;を書いたら構文エラーになるのは当たり前。
> 文を書きたいならdo{}を入れればよい。
なるほど。thnx。
あまりしっくりくる書き方には思えないが、できることは分かった。

でも行番号がずれてるってのは??
377デフォルトの名無しさん:2005/07/24(日) 19:15:35
>またあまり推奨はされませんが -K オプションを指定すれば日本語文字の識別子も使用でき、それはローカル変数とみなされます。
これには賛同しかねるな。
むしろ積極的に日本語の識別子でソースを汚染させるべきだと思うがいかがか?
378デフォルトの名無しさん:2005/07/24(日) 19:47:16
なんか無記名関数を
->(x) { ... }
とか
\\(x) { ... }
などで表そうと言ってるのだが。

なんでクラスやメソッドを定義するときは class 〜 とか def 〜 とか読める単語で書くのに
関数のときだけ変な記号なんだ?
379デフォルトの名無しさん:2005/07/24(日) 20:03:56
lambda だと文字数が多いからと書かれてたような?
適切で type 数の少ない単語があるなら blog に特攻したら?
380デフォルトの名無しさん:2005/07/24(日) 20:49:52
こういう時は、lambdaでも、->でも
functionでも、subでも、defでも何でもokにしてしまうのがperl
381デフォルトの名無しさん:2005/07/24(日) 21:04:43
メソッドが def なんだから lam でいいじゃん
打ちやすいし。
382デフォルトの名無しさん:2005/07/24(日) 21:06:44
関数だから kan だな…
383デフォルトの名無しさん:2005/07/24(日) 21:53:31
いや、 fun だろう。
384デフォルトの名無しさん:2005/07/24(日) 22:26:53
やっぱλだな。
385デフォルトの名無しさん:2005/07/24(日) 23:03:23
>lambdaはわりと広く使われていますからねえ。
>予約語を増やすのはローカル変数とぶつかったときに悲しいので、最後の手段にしたいです。
>lambdaでなくてfuncとかなら名前としてはそんなにダメじゃないと思うんですけどねえ。

ローカル変数もだけど、組み込み関数がすでにあることのほうが問題じゃねえ?
でもfuncは俺がローカル変数として結構使うからやめてくれw
386デフォルトの名無しさん:2005/07/25(月) 04:20:43
もうsubしか残ってないぜ
387デフォルトの名無しさん:2005/07/25(月) 05:01:22
{ x, y ->  ... }

\{ |x, y|  ... }
388デフォルトの名無しさん:2005/07/25(月) 05:24:58
{ x, y -> ... }はyaccで扱えない。正確には相当がんばれば扱えそうだけど、
多分ほとんど自力で状態管理することになるのでyaccを使う意味がなくなる。

\{ |x, y| ... }は引数のデフォルト値として"|"を含む式が書けないという
根本的な問題が解決されていない。
389デフォルトの名無しさん:2005/07/25(月) 09:13:33
>予約語を増やすのはローカル変数とぶつかったときに悲しいので、最後の手段にしたい
というのは理解できるが、関数はかなり重要な部分だから
予約語を増やしてでもソースの見通しを良くした方がいいんじゃね?
ブロックが {...} じゃなくて begin...end な時点で rubyの方向性は決まってるんだし。
390デフォルトの名無しさん:2005/07/25(月) 10:12:21
proc = lambda(x) { ... }
この例ならキーワード使ったほうが見通しいいかもしれないが
ary.each lambda(x) do
 ...
end
これだとかえって見通しが悪くなってるからなあ。
メソッド名でも変数名でもないことをアピールするために
予約語じゃないほうがいいような気がする。
とはいえ->とか下手な記号列で記号だらけにすると、PerlやHaskellのように、
素人には推測不可能で検索もしにくい言語になっちゃうんだよな
391デフォルトの名無しさん:2005/07/25(月) 14:03:26
矢印(->)じゃなくて三角(|>)はどうかな。
ちょっとΛっぽくね?
392デフォルトの名無しさん:2005/07/25(月) 14:33:32
なんだか変な方向に進んできたなあ
393デフォルトの名無しさん:2005/07/25(月) 14:42:33
ラル大尉最強
394デフォルトの名無しさん:2005/07/25(月) 15:05:01
うち、λっちゃ。
395デフォルトの名無しさん:2005/07/25(月) 17:48:49
フイタ
396デフォルトの名無しさん:2005/07/25(月) 22:09:24
λこりゃ
397デフォルトの名無しさん:2005/07/25(月) 22:18:00
λ無駄無駄無駄無駄無駄無駄無駄無駄!
398デフォルトの名無しさん:2005/07/25(月) 22:25:19
コレハツマンネ
399デフォルトの名無しさん:2005/07/26(火) 00:02:25
大本営落ちてます?つながんないや…
400デフォルトの名無しさん:2005/07/26(火) 00:15:32
Ruby は Perl と違ってそういう「変な記号」を好まない方向で来たんだから
無理せず英字でいいと思うけどなぁ
401デフォルトの名無しさん:2005/07/26(火) 00:17:07
もうすでにぐっちゃぐっちゃだから、
どうでもいいと思うな。

体は慣れるよ。
402デフォルトの名無しさん:2005/07/26(火) 00:20:44
変にこねなくてもlambdaでいいと思う。見た目に区別がつきにくいなんていってるけど、今時はシンタックスカラーリングがあたりまえだから関係ないだろ。
それにしばらくみてればifやforみたいに浮かんで見えるようになるって。
403デフォルトの名無しさん:2005/07/26(火) 00:36:32
いろんな部分Perlからパクってんじゃねーかよ。
Perlからの転向ユーザ狙おうとかきたねーこと考えずにもっと思想に忠実に作ればよかったんだよ。
なにがPerlより優れているだよ。
そのむき出しの対抗心どうにかしろよ。
キモいんだよ狂信者が
404デフォルトの名無しさん:2005/07/26(火) 00:39:07
そうだそうだ。避妊しろよ。
405デフォルトの名無しさん:2005/07/26(火) 01:02:42
>>376
解析器の仕様じゃない?Perlに限らず他の言語でも場合によってはトンデモな所を指してエラーが出たりするし
406387:2005/07/26(火) 01:30:33
>>388
>yaccで扱えない。……yaccを使う意味がなくなる。
たしかに、これを書けるようにすると、かなり先(->)まで読まないと
確定出来ないか。

>デフォルト値として"|"を含む式が書けない…
この問題を知らなかった。"|"は括弧と違って対になってないから
そういう問題が起こるのかな?

ツッコミありがとう。

# \{ x,y -> ... }とかも考えてみたけど、パーサ内のモードが増えそうな予感。
407デフォルトの名無しさん:2005/07/26(火) 08:59:28
話の流れからすると -> と sub を使えってことだな。
Perl6的に。
408デフォルトの名無しさん:2005/07/26(火) 09:05:48
ここ
ttp://shootout.alioth.debian.org/benchmark.php?test=all&lang=all&sort=fullcpu
とか見るとPythonと比べてRubyが酷いのがよくわかる。
409デフォルトの名無しさん:2005/07/26(火) 09:36:28
>>403
Ruby って Perl っぽい Smalltalk じゃないの?
410デフォルトの名無しさん:2005/07/26(火) 09:37:30
でも、Perlよりいいんだね。
Rubyが言語の綺麗さ以外でPerlに勝ってる点があるとは思わなかったよ。


For every complex problem, there is a solution that is simple, neat, *and wrong*.
411デフォルトの名無しさん:2005/07/26(火) 09:44:07
ああ、それ気のせい。
よく見たら全部負けてるから
412デフォルトの名無しさん:2005/07/26(火) 10:01:10
>>408
面白いね、それ。でもmissingは0点扱いか。
Pythonってほとんど実装してるわりに…(^^;
413デフォルトの名無しさん:2005/07/26(火) 11:19:25
rubyはユーザーとコミュニティが腐ってるから糞、という人がいる。
そこでユーザーとコミュニティを取り除いてみたとする。
やっぱり糞だ。
414デフォルトの名無しさん:2005/07/26(火) 13:05:01
このスレではすでにお馴染みRuby叩き
415デフォルトの名無しさん:2005/07/26(火) 13:36:47
>>413
素でワロタ
416デフォルトの名無しさん:2005/07/26(火) 21:54:01
http://shootout.alioth.debian.org/benchmark.php?test=all&lang=ruby&sort=fullcpu
めちゃ遅いじゃん…
PerlとPythonは互角ぐらいなのに
Riteで早くなるの?
417デフォルトの名無しさん:2005/07/26(火) 22:12:43
速いに越したことはないけれど、はやけりゃいいってもんでもないんだよな。
スクリプト言語的には。
418デフォルトの名無しさん:2005/07/26(火) 22:13:36
速いに越したことはないけれど、はやけりゃいいってもんでもないんだよな。
スクリプト言語的には。
419デフォルトの名無しさん:2005/07/26(火) 22:14:07
速いに越したことはないけれど、はやけりゃいいってもんでもないんだよな。
スクリプト言語的には。
420デフォルトの名無しさん:2005/07/26(火) 22:27:06
速くても使いにくいのでは魅力減

使いやすさは人によって違うのであまり突っ込んで討論しても無駄
速さも目的によって大きく左右されるので同
421デフォルトの名無しさん:2005/07/26(火) 23:02:00
でも、別にrubyが使いやすいというわけでもない罠。
422デフォルトの名無しさん:2005/07/26(火) 23:11:36
速く書けるのがいい。 コーディングの時間的にも、チューニングの余地的にも
423デフォルトの名無しさん:2005/07/26(火) 23:12:32
速く書けるのがいい。 コーディングの時間的にも、チューニングの余地的にも
424デフォルトの名無しさん:2005/07/26(火) 23:30:32
「俺はRubyが使いやすい」
それで十分だろ
425デフォルトの名無しさん:2005/07/26(火) 23:32:33
「俺はRubyが使いやすい」
それで十分だろ
426デフォルトの名無しさん:2005/07/27(水) 00:00:58
ヤッホー
427デフォルトの名無しさん:2005/07/27(水) 00:02:33
ヤッホー
428デフォルトの名無しさん:2005/07/27(水) 08:29:54
>>425
なのにるび厨は変に理由つけたがるからなー
で、他言語貶して批判を買う。
性能ほかいろいろ責められるのは自業自得。
429デフォルトの名無しさん:2005/07/27(水) 08:50:47
モルモンの教えですから。
430デフォルトの名無しさん:2005/07/27(水) 09:10:29
>>428
「変に理由つけたがる。他言語貶して批判を買う」
から「るび厨」なのであって、因果関係が逆じゃない?

まぁ、そんなやつは少数だと思うけど。
431デフォルトの名無しさん:2005/07/27(水) 15:18:17
rb_class_new_instanceの引数なんですがどんな感じで生成したらいいですか?
VALUE argv[1];
argv[0] = rb_str_new2("hoge");
rb_class_new_instance(1, argv, klass);
みたいにやってOK?
432デフォルトの名無しさん:2005/07/27(水) 16:37:34
OK
433デフォルトの名無しさん:2005/07/27(水) 16:56:34
NG
434デフォルトの名無しさん:2005/07/27(水) 22:25:05
>>431
ext/**/*.cでrb_class_new_instanceをgrepしてみればすぐ分かるだろ。
435デフォルトの名無しさん:2005/07/27(水) 23:00:48
>>434
スマソ。探したつもりが見落としていた…orz
わかりました
436デフォルトの名無しさん:2005/07/28(木) 15:46:29
自分でGCしないとSegmentation faultするコードが出来ちゃった…il||li ○| ̄|_
rb_gc()すれば問題なく動くみたいなのでRuby側の問題だと思うんだけどたびたびrb_gc()呼ぶのは遅くなるような…
CからRubyを使っていて手動でGCしないとまずい事態って起こりうるものなの?

検証用のソースはあるんだけどちょっとでかい…
437デフォルトの名無しさん:2005/07/28(木) 16:45:50
markし忘れとかdouble freeとかなんかそういうバグじゃないの?
438デフォルトの名無しさん:2005/07/28(木) 17:31:30
>>437
グローバルで使っているVALUEをmarkしてみたけどあまり変わらなかった…
根本的に何か間違っているのだろうか…
ちょっとでかいけど検証したソースです

>test.rb
class A
 def initialize(str)
  @str = str
 end
 def read
  @str
 end
end

class B
 def func1(x)
  p x.read[0,2]
 end
end
439デフォルトの名無しさん:2005/07/28(木) 17:32:25
>test.cpp
#include <windows.h>
#include <stdio.h>
#include "ruby.h"

VALUE obj1;

void ruby_load()
{
 HANDLE hFile = CreateFile("test.rb", GENERIC_READ, 0, 0, OPEN_EXISTING, 0, NULL);

 DWORD file_size = GetFileSize(hFile, NULL);
 DWORD lpNumberOfBytesRead;

 char *scr;
 scr = (char *)calloc(file_size + 1, sizeof(char));

 ReadFile(hFile, scr, file_size, &lpNumberOfBytesRead, NULL);
 CloseHandle(hFile);

 ruby_init();
 ruby_init_loadpath();
 rb_eval_string((const char *)scr);

 VALUE klass = rb_path2class("B");
 obj1 = rb_class_new_instance(0, 0, klass);
 rb_gc_mark(obj1);

 free(scr);
 return;
}
440デフォルトの名無しさん:2005/07/28(木) 17:33:27
void func_call()
{
 char *data;
 int size = 7000000;
 data = (char *)calloc(size, sizeof(char));
 if(data == NULL){printf("no memory\n");return;}

 VALUE klass = rb_path2class("A");
 VALUE argv[1];
 argv[0] = rb_str_new(data, size);
 VALUE obj2 = rb_class_new_instance(1, argv, klass);
 rb_funcall(obj1, rb_intern("func1"), 1, obj2);

 free(data);
// rb_gc();
 return;
}

int main()
{
 ruby_load();

 func_call();
 func_call();
 func_call();
 func_call();
 func_call();
 return 0;
}

rb_gc()をコメントアウトした状態だとfunc_callを4回呼んだくらいでSegmentation faultしてしまう。rb_gc()を
コメントアウトしなければ10回呼んでも問題ないみたいです
441デフォルトの名無しさん:2005/07/28(木) 21:28:57
なんでrb_gc_markなんか呼んでるんだよ。という辺りの勘違いが原因じゃないかな。

442デフォルトの名無しさん:2005/07/28(木) 22:00:43
ツッコミどころてんこもりだな。
443デフォルトの名無しさん:2005/07/29(金) 02:09:04
-rb_gc_mark(obj1);
+rb_global_variable(&obj1);
としたらrb_gc呼ばなくても動くようになった…
けど、>>442ツッこんでくれると嬉しい…il||li ○| ̄|_
444デフォルトの名無しさん:2005/07/29(金) 02:24:23
礼も言わずに要求だけは一人前。
445デフォルトの名無しさん:2005/07/29(金) 02:50:39
形式だけの礼などいらんから(形式的に自虐的に見せる「il||li ○| ̄|_」もいらん)
「初心者がハマりやすい罠」みたいな文章にまとめてくれる方がうれしい。

446デフォルトの名無しさん:2005/07/29(金) 03:39:49
> 「初心者がハマりやすい罠」

ドキュメントをまともに読まない
447デフォルトの名無しさん:2005/07/29(金) 04:03:52
ドキュメントをまともに読まないと使えない言語。
448デフォルトの名無しさん:2005/07/29(金) 04:11:14
略して、ドキュンな言語。
449デフォルトの名無しさん:2005/07/29(金) 05:25:56
>>447-448
バカ?

450デフォルトの名無しさん:2005/07/29(金) 08:49:07
結論:スクリプト言語なのに初心者が普通にセグメント違反起せるRubyは糞言語。
451デフォルトの名無しさん:2005/07/29(金) 08:55:13
拡張ライブラリの話だから、RubyじゃなくてCだ。
452デフォルトの名無しさん:2005/07/29(金) 10:07:14
そういうマジレス大好きです
453デフォルトの名無しさん:2005/07/29(金) 11:28:59
拡張ライブラリじゃなくて、Ruby組み込みアプリの話だ。
どっちにしろCではあるが。
454デフォルトの名無しさん:2005/07/29(金) 12:21:37
そんな理由なんてなくてもRubyは糞言語なのは使ってる人を見れば分かります
455デフォルトの名無しさん:2005/07/29(金) 12:40:55
>>450=454
反論されたらいきなり「そんな理由なんてなくても」かよ。
煽るなら煽るで、もうちょっと頭使えよな。
456デフォルトの名無しさん:2005/07/29(金) 18:44:19
Rubyってなんで変数とメソッドが同じ書式なの?
変数の前に$が無いと、区別がつかなくなるんじゃないの?
457デフォルトの名無しさん:2005/07/29(金) 18:46:34
ヒント:品詞
458デフォルトの名無しさん:2005/07/29(金) 18:50:54
先頭にドットが付くのがメソッド、付かないのが変数
459デフォルトの名無しさん:2005/07/29(金) 18:52:32
普通は文法的に区別が付くだろうし、変数名やメソッド名を工夫すれば良いだけだろ。

というか、なぜ Ruby を名指し?
記号で区別している言語の方が少なくないか?
460デフォルトの名無しさん:2005/07/29(金) 18:57:57
>記号で区別している言語の方が少なくないか?
数の多少はともかくC/C++系のメソッド呼び出しのfoo()に慣れてるんだろ。
461デフォルトの名無しさん:2005/07/29(金) 19:07:31
>>456
PerlやPHPはスクリプト言語だから、その場で書いてすぐテストする開発スタイル。
だから、いちいち変数名を工夫しなくてもいい仕様になっている。
Rubyはそれとは違って
最初に変数の名前を厳密に計画してからプログラムしていく開発スタイル。
うっかり名前が重なると変数のスコープも変わってしまう。
つまり、頭に$を付ける言語とRubyとは、想定している開発スタイルが違うんだ。
だからRubyのスタイルに慣れると気にならなくなるよ。
462デフォルトの名無しさん:2005/07/29(金) 19:29:52
変数名とメソッド名が分からなくなるという状況が分からない。
適当に書いてたってまず重ならんし、他人の書いたソースを
読むときでもメソッドか変数か意識しないと処理の流れが
分からないなんて事はまずないし。

要するに変数に型がなくて、データに型があるというRubyの
特長によるものなんだとおもうけど、おれはこれはRubyの
長所だと思ってる。
463デフォルトの名無しさん:2005/07/29(金) 23:57:11
UNIT GenieList;

INTERFACE

USES
SANE, DialogUtils, GFiles, GCommonDec;

PROCEDURE MAIN (lMessage: INTEGER;
lSelect: BOOLEAN;
lRect: Rect;
lCell: Cell;
lDataOffset, lDataLen: INTEGER;
lHandle: ListHandle);

IMPLEMENTATION

PROCEDURE MAIN (lMessage: INTEGER;
lSelect: BOOLEAN;
lRect: Rect;
lCell: Cell;
lDataOffset, lDataLen: INTE

これ何言語かわかりますか?
464デフォルトの名無しさん:2005/07/30(土) 00:12:42
Ruby=朝日
465デフォルトの名無しさん:2005/07/30(土) 00:22:25
多分Pascalだろうな。ってか、何でここで聞くかなぁ。
466デフォルトの名無しさん:2005/07/30(土) 01:19:26
アカヒは敵。
本当はモルモンも敵。
しかし言語には別に罪はない。
467デフォルトの名無しさん:2005/07/30(土) 04:53:13
そういえば、オウムもmatzだな。
468デフォルトの名無しさん:2005/07/30(土) 08:17:08
>>461
なるほど。パッと書いてパッと実行できるスクリプト言語の良さをあえて無くし、
最初からいちいち変数の名前を厳密に計画してからプログラムしていかなければならないように工夫した言語なわけですね。
さすがRuby、ますます好きになりました。
469デフォルトの名無しさん:2005/07/30(土) 09:31:13
>>468
少しでも頭を使うことを「計画」というのなら、
そうでしょうね。
470デフォルトの名無しさん:2005/07/30(土) 14:06:09
もし>>469=>>461だとしたらトンでもないあふぉだな
471デフォルトの名無しさん:2005/07/30(土) 18:24:02
普段は威勢のいい事言っていてもふたを開けると
こんなレベルだからRuby使いは馬鹿にされるんだよ。
472デフォルトの名無しさん:2005/07/30(土) 18:32:09
(470..471).delete!
473デフォルトの名無しさん:2005/07/30(土) 18:35:18
信者が必死だなw
474デフォルトの名無しさん:2005/07/30(土) 18:49:01
ここ十数レスは、アンチ比率が高い(7割以上?)んだが。
475デフォルトの名無しさん:2005/07/30(土) 20:11:59
>>463
Modula-3かなんかか?
476デフォルトの名無しさん:2005/07/30(土) 22:09:01
必死に流そうとする信者と、つい反応してしまう信者。

どっちもがんばれ。
477デフォルトの名無しさん:2005/07/30(土) 22:32:52
>>475
UNIT, INTERFACE, IMPLEMENTATION ときたらTurbo Pascalに決まってるだろ。
478デフォルトの名無しさん:2005/07/30(土) 22:42:32
決まってはないだろ。
それだけを取り上げるなら、ObjectPascal(Delphi)もそうだ。
479デフォルトの名無しさん:2005/07/30(土) 22:45:13
先頭行にrequire "PasEmu"して無理やりRubyで動かせないかな
480デフォルトの名無しさん:2005/07/31(日) 08:29:30
rubyにpythonでいうジェネレータみたいなのってある?
481デフォルトの名無しさん:2005/07/31(日) 14:36:53
>>480
残念ながらない。2.0あたりで追加されないかな。
482デフォルトの名無しさん:2005/07/31(日) 16:25:10
VALUE hoge(VALUE val1, VALUE val2)
{
 return val1;
}

int main()
{
 rb_define_global_function("func", hoge, 2)
 return 0;
}
ってな感じで書くと。VALUE (*)(long unsigned int, long unsigned int)はVALUE (*)(...)に変換できないって
怒られるんだけどどうしたら良いですか?

ext/下の拡張のソースを見ても同じように使われている感じで原因がよくわかりません
483デフォルトの名無しさん:2005/07/31(日) 17:44:28
よくわからないならエラーメッセージくらいはそのまま書こうな。
484482:2005/07/31(日) 18:28:09
>>483
すみません

test.cpp: In function `int main()':
test.cpp:7: invalid conversion from `VALUE (*)(long unsigned int, long  <rb_define_global_functionがある行
  unsigned int)' to `VALUE (*)(...)'
ってなエラーが出ます
485デフォルトの名無しさん:2005/07/31(日) 18:44:30
> VALUE hoge(VALUE val1, VALUE val2)
ここ、引数の数一個足りなくないですかね。
エラーとは関係なさそだけど。
486デフォルトの名無しさん:2005/07/31(日) 18:52:25
C++かいな。
単にキャストすれば通る。
487デフォルトの名無しさん:2005/07/31(日) 21:11:31
>>481
callccで実装できないかな?
488デフォルトの名無しさん:2005/08/01(月) 03:05:27
489482:2005/08/01(月) 19:01:51
>>485
rb_define_global_functionの第3引数は渡す関数の引数の数らしいので2個で良いと思いったのですが…

>>486
関数のキャスト書き方がわからないのですがどう書いたらいいですか?
知り合いに聞いたら出来ないって言われた…orz
490デフォルトの名無しさん:2005/08/01(月) 19:10:45
Cで書けば。
491デフォルトの名無しさん:2005/08/01(月) 19:16:28
そのまま、
typedef VALUE RubyFuncType(...);
rb_define_global_function( "func", (RubyFuncType*)hoge, 2 );
とかやれば?
492482:2005/08/01(月) 19:41:29
>>490-491
ありがとう。出来ました
493485:2005/08/01(月) 20:21:50
>>489
rubyスクリプトでの引数が2個なら、Cでは
VALUE hoge(VALUE self, VALUE val1, VALUE val2)みたいに
3つ引数がついたんじゃなかったかな。つまり、一個多くなるってことで。

最近拡張ライプラリの勉強始めたばっかりなので
適当言ってるかもしれん。
494482:2005/08/01(月) 20:35:18
あ、書き忘れ…orz
>>493
その通りです。よくよくソースを確認したらそうなっていました
495デフォルトの名無しさん:2005/08/02(火) 09:12:24
>>491
そういうtypedefってできたっけ?
つーかRUBY_METHOD_FUNC使えや。
496デフォルトの名無しさん:2005/08/02(火) 14:28:27
>>488
いや、文法要素としてのジェネレータが欲しいのかと思ったので。

というのは嘘で、忘れてた。
497デフォルトの名無しさん:2005/08/02(火) 16:31:10
[ruby-list:40974]
498デフォルトの名無しさん:2005/08/02(火) 17:06:43
触るなって
499デフォルトの名無しさん:2005/08/05(金) 18:32:14
RAA死んでない?困るな
500デフォルトの名無しさん:2005/08/05(金) 19:47:04
そういえば、今回がどうなのかはわからないけど、
先日止まってたときは、調査のために止めてたそうだけど、
事前/停止中のアナウンス無しで止めてしまうってのは正直どうかと思う。
501デフォルトの名無しさん:2005/08/05(金) 20:01:17
おれにとって
もうRubyは影舞だけのために存在してるよ
502デフォルトの名無しさん:2005/08/05(金) 20:20:45
もう Trac でいいじゃない
503デフォルトの名無しさん:2005/08/05(金) 21:43:21
Tracダウンロードできねーでやんすよ
504デフォルトの名無しさん:2005/08/05(金) 23:06:46
うあ、なんか日本語版ぽいの見つけたけど
SQLiteとか色々必要だとかでインスコメンドクサス

しかしpython周辺は楽しそうだなあ・・
505デフォルトの名無しさん:2005/08/09(火) 03:47:20
もうRubyなんか見放して楽になろうぜ
506デフォルトの名無しさん:2005/08/09(火) 13:54:53
>>505
もう素直にRubyを使って楽になろうぜ
507デフォルトの名無しさん:2005/08/10(水) 23:52:56
ruby-list はマナー論をやらないのがえらいなぁ。
508デフォルトの名無しさん:2005/08/11(木) 18:45:09
自然消滅はしなそうだなー。
引き続き、固まり連続メールがくるだろう。
509デフォルトの名無しさん:2005/08/11(木) 23:43:44
>>508
いや、じきに消えるだろ。
そんなに根気があるようには見えない。
510デフォルトの名無しさん:2005/08/12(金) 11:20:03
http://d.hatena.ne.jp/naoya/20050809/1123563794

誰かこれの、Ruby版はもう書いたかな?
ちなみに Perlだとワシはレベル 7くらい。
8 くらいと言えなくもないけど、バグレポートとか表に出るようなことは滅多にしないからな。
511デフォルトの名無しさん:2005/08/12(金) 11:25:52
2ちゃんかっつーの
512デフォルトの名無しさん:2005/08/12(金) 13:13:44
>>511
ruby-list のこと?
513デフォルトの名無しさん:2005/08/12(金) 13:25:01
>>510
その表、レベルの高いとこ、スキルと関係ないことを求めてる気がするが
コミュニティへのContributionとか、別にやりたい人がやればって感じだよな。
514デフォルトの名無しさん:2005/08/12(金) 13:28:43
>>510
8から急に一般性を失っていってる気がするな。
7くらいはプログラマとしては当然なレベルだし、表としてあまり面白くない。
515デフォルトの名無しさん:2005/08/12(金) 13:35:31
そんでもって、Lv.4 までは無意味な気がした。
516デフォルトの名無しさん:2005/08/12(金) 13:38:26
>512
^..^
517デフォルトの名無しさん:2005/08/12(金) 13:58:46
あとrubyはレベル7の敷居がperlに比べて低いからな。偏見?
518デフォルトの名無しさん:2005/08/12(金) 15:26:07
evalごときがレベル9かよ。
519デフォルトの名無しさん:2005/08/12(金) 18:24:32
レベル8くらいじゃエバれないってことですね。
520デフォルトの名無しさん:2005/08/12(金) 18:57:37
DBI使えたくらいじゃねぇ・・・
521デフォルトの名無しさん:2005/08/12(金) 19:30:03
漏れ、レベル10余裕で達成したんだけど。
522デフォルトの名無しさん:2005/08/12(金) 19:31:15
レベル6じゃ「無能」もいいところだな。
523デフォルトの名無しさん:2005/08/12(金) 22:03:11
>>521
是非 naoya さんのお友達になってあげてください。
524デフォルトの名無しさん:2005/08/12(金) 23:45:00
画像をいじるライブラリでお勧めがあったら教えて下さい
入力:JEPG、GIF、PNG
出力:PNG、(GIF)
加工:拡大縮小、減色をそれなりの品質で行える
みたいな感じのを探しています

でかい画像を携帯向けに縮小するようなCGIを組むのに使おうと思っています
525デフォルトの名無しさん:2005/08/13(土) 00:02:50
netpbm
を IO.popen なんかで使え。
526デフォルトの名無しさん:2005/08/13(土) 01:18:33
ruby-python + PIL
527デフォルトの名無しさん:2005/08/13(土) 01:54:27
>>525
JPEG、PNGは扱えない…?

>>526
以前にMinGW環境でruby-pythlonビルドしようとして撃沈した記憶が…・il||li ○| ̄|_
Cygwin上で-no-cygwin付けてpythenビルドしようとしたらエラーったような
もう一度やってみる
528デフォルトの名無しさん:2005/08/13(土) 03:19:33
GDを扱う拡張ライブラリがあったね。
529 ◆m7YeytgDFE :2005/08/13(土) 07:59:21
>>524
RMagickはいかがですか?
webカメラの画像を携帯電話向けに縮小するCGIに使ってます。
530デフォルトの名無しさん:2005/08/13(土) 22:54:49
結局誰も Ruby版は作らんかったのか。ならワシが作ってやろう。

レベル1:
 Perl とは違うけれども近いものらしいとは知っている。
 Python は名前だけ聞いたことがある。
レベル2:
 関数型メソッドだけでスクリプトを書ける。
 まだ文末にいちいちセミコロンを付けてしまう。
レベル3:
 組み込みクラスを使って、インスタンスを生成したりメソッドを呼べたり出来る。
 まだ main メソッドを作ってしまう。
レベル4:
 標準添付のライブラリをいろいろ使えるようになる。
 変数が参照に過ぎないことをようやくきちんと理解する。
レベル5:
 いくつか簡単なクラスを作れるようになる。
 イテレータを活用出来る。

531デフォルトの名無しさん:2005/08/13(土) 22:56:21
レベル6:
 名前空間を意識するようになり、自作のクラスをモジュールに入れ整理したりする。
 標準添付以外のライブラリも試してみる。
レベル7:
 特異メソッドや例外処理も活用できるようになる。
 定数参照の優先順位に悩む。
レベル8:
 自作のクラスに each メソッドを用意して、include Enumrable をやってみて楽しむ。
 Object#__send__ を使う機会が増える。
レベル9:
 eval でメソッドを動的に追加したり出来る。
 $SAFE の設定に気を使う。
レベル10:
 単なる eval の代わりに module_eval と instance_eval を使い分けるようになる。
 Thread を使ってみる。

いかん、レベルを細かく分けすぎたな。
この分だと、ライブラリを作れる人がレベル 20くらいで、Cで作れる人が 30くらい、
Cでデバッグできる人が 40くらいかな。ワシは 28くらい。
532デフォルトの名無しさん:2005/08/13(土) 23:21:03
なんか順序がイマイチな気がする。
Perl や C を知らなきゃレベル2まで不要だし。
適当な Ruby 本買ってくれば、レベル5から始まると思う。
俺は、慣れたらすぐ Thread や例外も使ってた記憶あるしなぁ。
Ruby の場合、名前空間を意識してる人少なそう……
533デフォルトの名無しさん:2005/08/13(土) 23:36:11
>>532
どうも、ありがとう。
確かにイマイチかも。

ワシは逆に、Threadは今でも使っていないくらいです。
534デフォルトの名無しさん:2005/08/14(日) 01:08:55
なにをしたいかで順序なんて大幅に変わるし
535デフォルトの名無しさん:2005/08/14(日) 02:27:21
せっかく書いてくれたのに水を差して悪いが、「xxxプログラマのレベル10」の
ポイントは、「xxx 界の有名人・権威みたいな人が書く」ところにあると思う。

どうせ誰がレベル分けしたって異存が出まくるに決まってる(特に高いレベルは)。

書いた人が何者か分からないと、意見の違いが不毛な論争になりがちで
せいぜい「そんな考え方の人もいる」と分かるだけ。

書いた人の普段のコーディングスタイル・開発スタイル・ポリシーなどが
表に出てると「あの人ならそうレベル分けするよね」みたいに納得できる、
あるいは「あの人はこういう考え方なのか」という知見が得られる。
536デフォルトの名無しさん:2005/08/14(日) 14:50:40
>>535
まったくそのとおり。
537デフォルトの名無しさん:2005/08/14(日) 22:02:26
まぁ堅いこというなよ。
とりあえずこのスレでのポリシーってことでどうよ?

レベル1:
 [BUG]の文字列を見ると燃える。
538デフォルトの名無しさん:2005/08/14(日) 22:29:21
GC絡みだとうざいだけで原因はしょうもなかったりするけどなあ。
539デフォルトの名無しさん:2005/08/14(日) 22:57:32
レベル2:
 GCに執念を燃やす。
540デフォルトの名無しさん:2005/08/14(日) 23:45:00
レベル3:
 commit 回数が matz を上回る。
541デフォルトの名無しさん:2005/08/15(月) 11:39:00
もうその時点で、世の中に一人しかいなくなるじゃん。
542デフォルトの名無しさん:2005/08/15(月) 13:06:14
レベル4:
 forkしてxrbというディストリビューションを(ry
543デフォルトの名無しさん:2005/08/15(月) 14:23:00
レベルが急降下したな。
544デフォルトの名無しさん:2005/08/15(月) 14:50:02
リファラが Ruby hotlinks だと表示できないことに気付いた<MW
545デフォルトの名無しさん:2005/08/15(月) 16:33:37
ほんとだ。いつもnoreferer経由だったから気づかなかった。
546デフォルトの名無しさん:2005/08/17(水) 15:40:22
http://www.poignantguide.net/ruby/
これおもしれえ
日本語訳版書いたらどこか出版してくれるだろうか
547デフォルトの名無しさん:2005/08/18(木) 16:10:48
フリーのとこに置いてトラバでもしてみたら。
548デフォルトの名無しさん:2005/08/18(木) 16:21:56
_why のギター侍の録画って無いのかな?
549デフォルトの名無しさん:2005/08/18(木) 17:02:14
BasicSocket::do_not_reverse_lookup はデフォルト true にして欲しい。

俺の場合、デフォルト true だったせいでハマったことはあっても、
デフォルト false で良かったと思ったためしがないんだけど、
みなさんはいかが?
550デフォルトの名無しさん:2005/08/18(木) 17:26:20
>>549
それってどちらにしてもダメだったってこと?w
551デフォルトの名無しさん:2005/08/18(木) 17:39:28
何の話かと思ったら、[ruby-dev:26817] 絡みかな?
俺は別にデフォルト true でいいと思うんだが。
552デフォルトの名無しさん:2005/08/18(木) 17:40:38
>>550
ああ、スマン、間違った。けど文脈でわかるだろ。
553デフォルトの名無しさん:2005/08/19(金) 04:57:29
プロクシチェッカを作りたいんですが、何か良い方法があったら教えて下さい

串経由で適当なHTMLを読み込んで読み込めない or タイムアウトなら串じゃないと判定するようなのを考えたんだけど
妙にタイムアウトに時間がかかる…orz

ports = [80, 3128, 443, 8080]
r_addr=調べるIPアドレス
ports.each{|port|
 http = Net::HTTP.start('www.hoge.com', r_addr, port)
 http.open_timeout = 1
 http.read_timeout = 1
 〜if http.get('index.html').body == check_data <実際にはbegin〜rescueでエラーをフック
}
ってな感じのコードだが終了するまで1分以上も掛かる…1秒でタイムアウトなら遅くとも8秒以内には終了しないと
おかしいはずなのだが…Rubyはruby 1.8.2 (2004-12-25) [i386-mingw32]です。
554 ◆m7YeytgDFE :2005/08/19(金) 12:07:31
>>553
スレッド切り替えの関係で、timeoutが意図通りに機能しない場合があるとか。
これには該当しませんか?
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=trap%3A%3Atimeout;em=cygwin
555デフォルトの名無しさん:2005/08/19(金) 13:08:35
Net::HTTP.start で時間がかかってるだけだったりして。
556デフォルトの名無しさん:2005/08/19(金) 14:34:04
ruby -rprofile ってこゆときに使えないの?
557デフォルトの名無しさん:2005/08/19(金) 15:43:55
>>554
thx
そこに書いてあるとおりWinなのが原因のようです…
Winで運用するわけではないし開発時はあきらめるしかないのか…orz
558 ◆m7YeytgDFE :2005/08/19(金) 16:05:54
>>557
Linux機を用意するか、Windows上でcoLinuxを使ってみては?
Windows XP+coLinux+Debianという環境で開発できてますよ。
サーバとクライアントを1台のPCで賄えて便利です。
559デフォルトの名無しさん:2005/08/20(土) 21:52:10
こう、何か勘違いしてるようなとこに「さんせんとかがや」いてもなぁ。
と思うのはオレだけ?
560デフォルトの名無しさん:2005/08/20(土) 23:34:27
>>556
やってみればわかる
561デフォルトの名無しさん:2005/08/23(火) 00:33:36
>>553
ちょっと違うが、以前似たような問題(*1)に遭遇した時の解決方法を書いとく。
※念のため言っとくと、マルチスレッドなOSじゃないと使えない方法。

forkして、子供側でマッチを行う。完了したら終了ステータスでマッチに成功したかだけを返すようにする。
で、親側は子供の終了をn秒待って、それまでに終了しなかったら、子供をkillして「マッチ失敗」を返す。
n秒以内に帰ってきたら終了ステータスを元に結果を返す。

(*1)複雑な正規表現に文字列がマッチするかだけをチェックする処理で、たまにマッチが終わらなかった。
※正規表現のマッチ中はrubyのスレッドが切り替わらないのでtimeoutが使えない。
562デフォルトの名無しさん:2005/08/23(火) 08:07:58
>>561
マルチスレッドじゃなくてマルチプロセスだろ。
563デフォルトの名無しさん:2005/08/23(火) 13:53:32
いまどきマルチプロセスじゃない OS ってあるんかいな?
564デフォルトの名無しさん:2005/08/23(火) 13:57:43
DOSは今でもあるぞ
565デフォルトの名無しさん:2005/08/23(火) 14:11:11
ああ、忘れてた。 Ruby を DOS で使ってる奴いるのかな?
566デフォルトの名無しさん:2005/08/23(火) 15:04:27
いないだろうなあ
567デフォルトの名無しさん:2005/08/23(火) 16:02:59
RubyでDOSを書いた奴の方が多そうだ。
568561:2005/08/23(火) 22:21:42
>>562
そうですorz
569デフォルトの名無しさん:2005/08/24(水) 17:44:15
Ruby Gem で、拡張ライブラリをインストールする時、
どうやって extconf.rb に引数を渡すのか誰か教えてくれ。

インストールしたいのは、mysql で、

# gem install mysql
Attempting local installation of 'mysql'
[SNIP]
Building native extensions. This could take a while...
ERROR: While executing gem ... (RuntimeError)
ERROR: Failed to build gem native extension.
Gem files will remain installed in /path/to/gems/mysql-2.6 for inspection.
ruby extconf.rb install mysql\nchecking for mysql_query() in -lmysqlclient... no

# gem install mysql --with-mysql-dir=/usr/lib/mysql
ERROR: While executing gem ... (OptionParser::InvalidOption)
invalid option: --with-mysql-dir=/usr/lib/mysql

# gem install mysql -- --with-mysql-dir=/usr/lib/mysql
Attempting local installation of 'mysql'
[SNIP]
Building native extensions. This could take a while...
ERROR: While executing gem ... (RuntimeError)
ERROR: Failed to build gem native extension.
Gem files will remain installed in /path/to/gems/mysql-2.6 for inspection.
ruby extconf.rb install mysql -- --with-mysql-dir=/usr/lib/mysql\nchecking for mysql_query() in -lmysqlclient... no

となるんだけど。
570デフォルトの名無しさん:2005/08/24(水) 23:22:17
>>569
誰か教えてたもれ〜。 ・・・ Gems は止めとくかな。
571デフォルトの名無しさん:2005/08/26(金) 00:15:47
気の短いやつだな。
今日はもう眠いから明日調べるよ。
572デフォルトの名無しさん:2005/08/26(金) 14:35:23
直接渡す方法はないような気がする。
configure_args=--with-mysql-dir=... gem install mysql
かねぇ。
573デフォルトの名無しさん:2005/08/26(金) 17:07:20
すまん、環境変数名は大文字で。
574デフォルトの名無しさん:2005/08/26(金) 23:30:14
お、ありがと。

結局 mysql は Gems 以外で入れたけれども、今度そんなときがあったら試してみるよ。
どれが環境変数を読んでいるのかも、調べてみるわ(mkmf.rb ?)。
575デフォルトの名無しさん:2005/08/27(土) 00:07:26
>>574
mkmf.rbの頭の方の
unless defined? $configure_argsのブロック。
576デフォルトの名無しさん:2005/08/27(土) 14:33:28
LLDN二つ目終わり。
577デフォルトの名無しさん:2005/08/27(土) 15:17:34
寝坊していきそこねた。無念。
578デフォルトの名無しさん:2005/08/27(土) 16:38:40
>>577
花園神社はこれからだよもん。
579デフォルトの名無しさん:2005/08/27(土) 19:03:06
LLDNどうだった?
580デフォルトの名無しさん:2005/08/27(土) 19:47:12
sfがすごかった。rubyもSqueakも霞みまくり。
581デフォルトの名無しさん:2005/08/27(土) 20:49:51
花園神社は40人ぐらい集まったので神主に追い出されたとか。
582デフォルトの名無しさん:2005/08/28(日) 02:56:16
[ruby-dev:26894]ってことはRubyのバージョンは9.9.9で打ち止めなのね。
アポトーシスみたい。
583デフォルトの名無しさん:2005/08/28(日) 03:49:25
どこら辺が?
584デフォルトの名無しさん:2005/08/28(日) 14:32:31
sfって何?
発表者一覧(言語名のアルファベット順)
見ても分からん。
585デフォルトの名無しさん:2005/08/28(日) 17:26:47
発表者の所属でぐぐればわかるよ。
……まあ、すくなくとも、公開している場所は見つかる。
586デフォルトの名無しさん:2005/08/28(日) 17:42:57
ttp://www.nasuinfo.or.jp/FreeSpace/kenji/
ぼかす意図がよくわからんのだが、これ?
587デフォルトの名無しさん:2005/08/28(日) 19:26:44
らしい。
ま、内輪ごっこで優越感に浸ってるオコサマ連中のやることだから、
そっとしといてやんな。
588デフォルトの名無しさん:2005/08/28(日) 22:03:30
>>580
禿同。あんなダメダメなプレゼン、生まれて始めて見たよ。
ていうか規定/自由の解説は全然しないし。オナニー言語は放っとけ。
589デフォルトの名無しさん:2005/08/29(月) 06:16:10
なんでrubyは
array.each
{|item|

}
とは書けないのですか?

array.each{|item|

}
だとブロックの対応が分かりにくいように感じるのですが?
590デフォルトの名無しさん:2005/08/29(月) 07:20:14
>>589
>array.each
>{|item|
>
>}

array.each{
|item|
...
}

と、書く事はできるんだけど、 それじゃだめなのか?
591デフォルトの名無しさん:2005/08/29(月) 09:48:22
>ブロックの対応が分かりにくいように感じるのですが?
君のインデント次第じゃないかな。
592デフォルトの名無しさん:2005/08/29(月) 10:17:50
>>588
> ていうか規定/自由の解説は全然しないし。オナニー言語は放っとけ。 
http://www.fang-lang.net/archives/000121.html
によると「デモ自慢」から移動されたみたいですね。
LLDには行かなかったのでどれくらいひどいのかは知りませんが。
593デフォルトの名無しさん:2005/08/29(月) 11:08:07
>>592
どこにでもイタい人はいる、と思った。
ま、あんまり人のことは言えんけどな。
594デフォルトの名無しさん:2005/08/29(月) 13:18:23
>>589
array.each で改行しちゃうと、arrayのeachメソッドを引数なしで
呼んでいる、という解釈になってそのあとの{...}が解釈できなく
なってエラーになるのかな。
array.each \
{
#
}

ならイケルね。
595デフォルトの名無しさん:2005/08/29(月) 13:56:35
some_obj.method # 何かのメソッド呼び出し
{
} # 空のハッシュ

と、区別がつかないからかな。
596デフォルトの名無しさん:2005/08/29(月) 15:22:30
理由はあるのだろうけど、ださいね。
597デフォルトの名無しさん:2005/08/29(月) 15:56:24
598デフォルトの名無しさん:2005/08/29(月) 16:46:53
RAA の Category に Library/Acme きぼんぬ。
599デフォルトの名無しさん:2005/08/29(月) 17:11:47
Application/JOKE なら昔からあるんだけどね。
マイナーカテゴリは自由に作れるので自分で何か登録してくれ。
600デフォルトの名無しさん:2005/08/29(月) 21:43:04
やっぱRuby遅すぎ

だめだわぁ
601デフォルトの名無しさん:2005/08/29(月) 21:53:06
CPUの進化が遅すぎるんだよ
602デフォルトの名無しさん:2005/08/29(月) 22:35:46
誰か影舞を速い言語に移植してくれ。
遅くてかなわん。
603デフォルトの名無しさん:2005/08/29(月) 22:49:31
前から気になっていたんだがAcmeって何の略?
604デフォルトの名無しさん:2005/08/29(月) 23:04:48
>602
じゃObjective-Cでよろしい?

……ゴメンナサイウソデツGNU Objective-Cナンテカケラモシリマセンorz
605デフォルトの名無しさん:2005/08/29(月) 23:51:01
>603
何でも語呂合わせで「A Company that Makes Everything」
の頭字語でもあるらしいが……
2ch風に云えばVIPみたいな意味なのかと勝手に介錯してみるテスト。
606デフォルトの名無しさん:2005/08/30(火) 00:21:29
「なんでもやる課」みたいなもん課?
607デフォルトの名無しさん:2005/08/30(火) 01:08:44
>>602
mod_ruby と PostgreSQL で使ってるけど、
これだと 1000 件くらいバグ登録してもそんなに遅くないよ。
608デフォルトの名無しさん:2005/08/30(火) 03:37:06
知らなかったんだが

ruby -ve 'p $LOADED_FEATURES'
ruby 1.9.0 (2005-08-26) [i686-linux]
["enumerator.so"]

と、1.9 に enumerator が組み込まれてる。しかも、Enumerableの一部のメソッドはブロックなしで、このオブジェクトを返してる。

p [1,2,3].each_with_index
#<Enumerable::Enumerator:0xb7f079bc>

p [1,2,3].each_with_index.to_a
[[1, 0], [2, 1], [3, 2]]

しかし、reject とかがそうなる必要ってあるの?使いどころがわからない

p (1..7).reject
#<Enumerable::Enumerator:0xb7f0ea0c>

Array#reject は今までどおりなのも?

p [1,2,3].reject
-:1:in `reject': no block given (LocalJumpError)
from -:1
609デフォルトの名無しさん:2005/08/30(火) 05:02:01
Thu Jul 15 00:11:36 2005 Nobuyoshi Nakada <[email protected]>
* enum.c (enumeratorize): create new enumerator for current method if
no block is given.

* enumerator.c: moved from ext/enumerator.
610デフォルトの名無しさん:2005/08/30(火) 07:59:09
>>608
> しかし、reject とかがそうなる必要ってあるの?使いどころがわからない
$ ruby -e 'p (1..7).reject.with_index {|x,i|i==3}'
[1, 2, 3, 5, 6, 7]

> Array#reject は今までどおりなのも?
Enumerableなメソッドって結構各クラスで再定義されてるのも多いから、
まだそこまで直してないだけ。
611デフォルトの名無しさん:2005/08/30(火) 08:07:03
>603
お笑いパソコン日誌 2002年6月 2002/6/5 AM 4:36
http://www.interq.or.jp/silver/chic/nikki88.html
>Rube Goldberg や Heath Robinson が好んで注文するような、妙ちくりんで精巧で非実用的な発明品
>を提供する標準ブランド。何らかの X を、"Acme X" と表現すると、X が「異常にすごい(insanely
>great)」という意味か、より一般的には「話の上では異常にすごそうだが、実際に使うとまず間違い
>なくひどい目に遭う」という意味になる。pistol と比較せよ。
612デフォルトの名無しさん:2005/08/30(火) 22:42:35
誰かさ、[ruby-talk: 153672] からのスレッドの概略を説明してくれんかね?
面白そうなんだけどさ、翻訳しながら読むのがしんどくてさ。

素直に http://www.rubyweeklynews.org/ を待つかな。
613デフォルトの名無しさん:2005/08/31(水) 07:17:27
Kernel#sendをprotected/privateメソッドを呼べるのと呼べないのに分けよう。
という話になってる。
614デフォルトの名無しさん:2005/08/31(水) 07:49:57
ありがと。
じゃ、それって、咳さんが言ってたのと同じだよね。

僕も賛成 += 1
615デフォルトの名無しさん:2005/08/31(水) 08:12:53
1.9最新だとすでに send(...) と recv.send(...) を分けるようになってる。

$ ruby -e 'class X;private; def x;end;end; X.new.send(:x)'
-e:1:in `send': private method `x' called for #<X:0x40343430> (NoMethodError)
from -e:1

$ ruby -e 'class X;private; def x;1;end;end; p X.new.instance_eval{send(:x)}'
1
616デフォルトの名無しさん:2005/08/31(水) 12:25:04
つまり、オブジェクトの中から呼び出すと、private も呼べるけど、
外からだと呼べないってこと?

確かに良い案かも。
617デフォルトの名無しさん:2005/08/31(水) 18:38:27
初心者質問スレが次スレたつ前に終わってしまった件について。
618デフォルトの名無しさん:2005/08/31(水) 18:52:17
いらないってことじゃないかな。
619デフォルトの名無しさん:2005/08/31(水) 19:56:44
分ける意味も無くなってる気がするし統合で良いと思う。
620デフォルトの名無しさん:2005/08/31(水) 22:40:12
>>610
なかださんが直したね。いつも迅速な対応、恐れ入ります。

んでこれも単にpendingな話かもしれないんだけど、なぜに
せっかくext/から移動して来たEnumeratorは組込みじゃないんだ
ろう。やっぱりまだってだけでしょか。
621デフォルトの名無しさん:2005/09/01(木) 09:13:44
組み込みだけど?
622デフォルトの名無しさん:2005/09/01(木) 13:31:49
>>621
ああ、読み違えてた。なんで$"に.so入ってるんだ、って意味で言ったんだけど
> /* for backward compatibility */
なのね。失礼しました m(_ _)m
623デフォルトの名無しさん:2005/09/02(金) 01:32:53
624619:2005/09/02(金) 14:35:50
スルーかよ・・・orz
625デフォルトの名無しさん:2005/09/02(金) 15:23:25
>>619
そこで「クソスレ立てんな」ですよ
626デフォルトの名無しさん:2005/09/02(金) 15:33:18
こんな下がってると見つけられないんだろう
初心者だからw
627デフォルトの名無しさん:2005/09/03(土) 05:58:57
RD->tex への変換って直接はできないの??
昔できるってどっかで読んだ覚えがあったのに、
それに関するページがまるでみつからん。

っていうか、RD の本家?(Just Another RD Site)のページの更新が
3年とまってるのもえらいきになる。
628デフォルトの名無しさん:2005/09/03(土) 11:43:26
オープンソースの利点は
どのプロジェクトにもあらゆる人が流入してきて活発に開発が進み
仮に停滞・放置されたプロジェクトでも誰かが引き継いで再開されることにある。
ということを考えるとRubyは実はオープンソースじゃないのではないか
という仮説を立ててみたが、いかがだろうか。
629デフォルトの名無しさん:2005/09/03(土) 12:20:28
http://dada.perl.it/shootout/reversefile.html
rubyって何でこんなに遅いの?
将来のバージョンで改善される予定はあるの?
Source Code CPU (sec) Mem (KB)
cygperl 0.70 15380
python 0.90 11268
ruby 21.07 19584
630デフォルトの名無しさん:2005/09/03(土) 12:28:35
いつのデータだよ
631デフォルトの名無しさん:2005/09/03(土) 12:38:56
こっちの方が新しいですね。失礼しました。
でもあまり変わってないような。
http://shootout.alioth.debian.org/benchmark.php?test=all&lang=ruby&lang2=python&sort=fullcpu
632デフォルトの名無しさん:2005/09/03(土) 13:24:41
>>629
Rite (ruby2.0) で VM 化される予定。
その候補として YARV がある。
現在の YARV でも、
shootout にあるような数値計算系のプログラムは
ruby1.8.2 比で 2-10 倍くらい速くなっているよ。
633デフォルトの名無しさん:2005/09/03(土) 13:30:17
>>627
TeXじゃなくてLaTeXだけど:

前田さんがlatex変換できるようにしたものがあるようだ。
http://shugo.net/archive/rd2latex/

ここの一番下にも別実装ぽいものがあるな。(中見てないけど)
http://mikilab.doshisha.ac.jp/~junjis/programming/
634デフォルトの名無しさん:2005/09/03(土) 20:03:28
Ruby2.0っていつリリースされる予定?
635デフォルトの名無しさん:2005/09/03(土) 21:35:21
>>631
ずいぶん変わってると思うが。
そもそも、>>629 のリンク先に各言語のソースもあるんだから自分でやってみりゃいいじゃん。
自分で実行もせずに、何でと聞くのは愚かしいよ。
636デフォルトの名無しさん:2005/09/03(土) 22:27:11
「何で」 というのは処理系の実装を知らないと分らないでしょ。
637デフォルトの名無しさん:2005/09/03(土) 22:31:51
「何でと聞く」というのは処理を実行し(たこと)ない奴には関係ないでしょ?
何のために答えを求めてるのかわからない聞き方をするのがアッパラパーなんですよ。
638デフォルトの名無しさん:2005/09/03(土) 23:39:10
>>634
しょうもない話だけど、Ruby2.0 というのは、Ruby の(次世代の)仕様のことで、
その実装は Rite という名前。その実装の方がいつリリースか、って話でしょ?

まあ、仕様と実装はほぼ一緒に出来るだろうから、別にいいんだけどね。

で、リリースされる予定は決まっていない(決めていないはず)。
Matz は確か、ここ2〜3年、毎年始めに「今年こそは実装を始めよう」と言っているけど、
今年も無理だろうから、「数年先」くらいのスパンなんじゃないかな。
639デフォルトの名無しさん:2005/09/03(土) 23:41:36
君が1冊を1万冊分の値段で買ってくれるのなら、
今年中に出版されるんじゃないのかな。
640デフォルトの名無しさん:2005/09/03(土) 23:51:38
何の話かよくわからんが、そういうのは出版と言わず特注という。
641デフォルトの名無しさん:2005/09/04(日) 00:13:49
require って、やればやる程スクリプトの動作速度って遅くなるもんなんだろうか?
requireしたファイルの中味の分量や、処理の内容などに寄るのだろうか。
642デフォルトの名無しさん:2005/09/04(日) 00:19:32
正直今のままでも十分便利なんで、変な記号やら構文追加するより
高速化してほしい。回りに中規模以上の Ruby アプリが増えてきた
こともあって余計そう感じる。
643デフォルトの名無しさん:2005/09/04(日) 01:08:37
おれもそう思う。
目標はバイトコードをVMで動かしつつJITとか。
644デフォルトの名無しさん:2005/09/04(日) 08:36:00
>>638
Ruby2.0が仕様というのは言語仕様って事?C99とかみたいな。
で、RiteがそのMatz氏版処理系。gccとかみたいな。
YARVはそのRiteに取り込まれる可能性があるって事かな。
645デフォルトの名無しさん:2005/09/04(日) 09:36:02
requireしたコードを評価する分はもちろん時間を食う。
起動してしまえば後は関係ない。

Railsやってる香具師なら、FastCGIありとなしで露骨に反応が
変わるのを知っていると思う。(Railsはrequireしまくる)

メモリ消費して仮想メモリのスワップ多発するほどコード量が
膨大ならまた別だが、それはコードサイズの問題であってrequire
のせいではない。
646デフォルトの名無しさん:2005/09/04(日) 10:54:51
VMで動かすとか聞くとJavaみたいにメモリ大食らいになりそうで心配だ
647デフォルトの名無しさん:2005/09/04(日) 18:11:44
は?
648デフォルトの名無しさん:2005/09/04(日) 19:18:29
>>642
作者が「速度を求める用途には向かない」って
最初から逝ってるジャン。
道具の使い方を間違えると期待した効果が
得られないのは当たり前のことだよ。
649デフォルトの名無しさん:2005/09/04(日) 19:27:58
その作者はバカだな
650デフォルトの名無しさん:2005/09/05(月) 02:32:19
      ,, -‐''''''''''‐- 、
    ,ィ´: : : : : : : : ノ、:\   
   ../:::: : : : : : :;' ツ  ゙i: :i,               
    |::::: : ; ''' ´       l: :l        /      ̄/ _/_  ─┼─  /
    l  i ,. --、__, -- 、 l ノ.     /      /|   /  /    ゝ   /
    `>l‐'、:::::ノ l、::::::ノ〈i      /___|  /  |   /  /  ヽ_  /⌒ヽ_ノ
     { j    ' '    /       
       l  -‐ー‐-  l   
        l    `  /   
       `'‐-ー--'
  -‐─ -、
  / /゙;. /ヽ ヽ
  l V / ノ  .i
 ヽ- '"ヽ,,,.. 
    ,− ''''--, ;-; ._ ;-;_    ,-------,,---, , -、
   、= ,..x.., =,‐ ‐// //    / 二二 // / ;`' = ヽ
   '二二 ̄コ/.//,/ /i l,‐、___ ;=======./  ;ノ`' '=゙
  /~。~// / < ',/"'~l゙l`ソ;_゙; ;'゙/ 二二' // /./_ ゚ ゚_/
 , '==',/ /,''゙,., l,-'"/,゙; o ;‐/ ─‐ .// ;v, '゙,.-、ヽ
/. -─-、,/.'゙゙  "‐'".`" '‐‐' '─── ' '‐' '"゙   v'
  ,i┐     i┐          : i..,    i┐ .__、  ...,,.    ._、 ,, 、
,i--バ--、 .i 、:|│   .,r'"´\  .__|::{,,,.,、  / .¨''| .,、|  .:!..,,. !   ,!:| |│
,!.iーi ./'j ;! :| | |:.゙‐''i /.,i'L,!゙.l l :|,,, .,,/ヾ>.l,iュ:|,゙| |.| |  ! ! .,,゙、 .i-"."'" .,゙}
,!.凵; 凵│ .}.!.|; |''''" .! ! ,!.| .! ! ../ `´゙゙リ !,,、_,}.|.| | .! '"_,,, ゙l, .シッ /'コ !
|_,i-,i-i_,|  ! !.|; !   ! |,// ./ l /,iil:|: . ! |  / l,! !.! ! !..ノ゛ l: }  .| :!:|,,ノ
  |; !   i バ ! =....、 .l、/.i'"./ : |:゙!゙.,[`'"/ ./ ,i'i,,l `゙ ,!  i--‐゙./  .l "''''''''!
  ∪   ―――ー″ ″ ""  .゙ー'゙ `''" .∨  !''!゙‐'  .―‐'゛   .`'ー¬'′
651デフォルトの名無しさん:2005/09/05(月) 04:00:57
>>650
乙。
652デフォルトの名無しさん:2005/09/05(月) 10:11:13
Module#append_features(mod)とModule#included(mod)について質問です。

module Foo
 def append_features(mod)
  super(mod)
  ... 何かの処理 ...
 end
end



module Foo
 def included(mod)
  ... 何かの処理 ...
 end
end

との違いって、何かありますか?
Foo#included(mod)を使っていたのですが、これは1.8からの機能であって、1.6では動かないそうです。
なので、もし上の2つの例が同じことであれば、append_features(mod)のほうを使おうと思っています。
653デフォルトの名無しさん:2005/09/05(月) 10:49:37
MW復活の悪寒
654デフォルトの名無しさん:2005/09/05(月) 10:57:25
空のモジュールを定義すると、インスタンスメソッドがまったくありません。

module Mod
end
p Mod.instance_methods #=> []

しかしModはObjectのサブクラスであるはずなので、Objectクラスのインスタンスメソッドをすべて引き継ぐはずだと思います。
なぜModにはインスタンスメソッドがないのでしょうか。というか、どうやってインスタンスメソッドを「消して」いるのでしょうか。

何か勘違いしてますかね。
655デフォルトの名無しさん:2005/09/05(月) 12:40:23
>>652
基本的には同じ。
includedを呼ぶようなappend_featuresを、
unless Module.method_defined?(:included)のときだけ定義して、
実際の処理はincludedに書いておけばいいんじゃないかな。
656デフォルトの名無しさん:2005/09/05(月) 14:09:52
モジュールは Object のサブクラスじゃないよ。
657デフォルトの名無しさん:2005/09/05(月) 14:15:55
>>654
>しかしModはObjectのサブクラスであるはずなので
ここが間違い。だいたいモジュールなんだからサブ「クラス」なわけないだろ。
658デフォルトの名無しさん:2005/09/05(月) 14:19:58
かぶったorz

なのでもうちょと解説すると、rubyのModule定数で参照されるものは
Moduleという名前のクラスなので、これは確かにObjectのサブクラスだ。
しかしmodule Mod; endで作成したものはこのModuleクラスのインスタンス。
したがってObjectのサブクラスのインスタンスなわけだね。Objectのサ
ブクラスそのものではない。分かる?
659652:2005/09/05(月) 18:28:18
>>655
ありがとうございます。基本的には同じということで安心しました。
ところでsingleton.rbを見るとappend_featuresとincludedの両方を使ってるんですけど、
これはなぜでしょうか。どちらか一方だけでいいように思えるのですが。
660デフォルトの名無しさん:2005/09/06(火) 10:26:22
モジュールにインスタンスメソッドあるわけないじゃん...
661デフォルトの名無しさん:2005/09/06(火) 10:58:11
mod.append_features(klass)

は、include の実体。klass に影響を与える。ユーザが再定義すべきでない(と思う)。

mod.included(klass)

は、include が呼ばれたときに実行されるフック。mod が include されたときに mod に影響を与えるなどなどの用途に使用。ユーザが再定義する。
662デフォルトの名無しさん:2005/09/06(火) 11:02:07
モジュールにインスタンスメソッドはあるに決まってる

module M
def m
end
end

p M.instance_methods
["m"]
663デフォルトの名無しさん:2005/09/06(火) 11:10:52
["m"] ←顔文字みたいでかわいい
664デフォルトの名無しさん:2005/09/06(火) 11:48:13


 ["m"]


  -‐─ -、
  / /゙;. /ヽ ヽ
  l V / ノ  .i
 ヽ- '"ヽ,,,.. 
    ,− ''''--, ;-; ._ ;-;_    ,-------,,---, , -、
   、= ,..x.., =,‐ ‐// //    / 二二 // / ;`' = ヽ
   '二二 ̄コ/.//,/ /i l,‐、___ ;=======./  ;ノ`' '=゙
  /~。~// / < ',/"'~l゙l`ソ;_゙; ;'゙/ 二二' // /./_ ゚ ゚_/
 , '==',/ /,''゙,., l,-'"/,゙; o ;‐/ ─‐ .// ;v, '゙,.-、ヽ
/. -─-、,/.'゙゙  "‐'".`" '‐‐' '─── ' '‐' '"゙   v'
665デフォルトの名無しさん:2005/09/06(火) 11:49:50
すべてのファイル (*.*)

これも結構可愛いよな。
666デフォルトの名無しさん:2005/09/06(火) 23:50:47
Omoti ←芋虫みたいでかわいい
667デフォルトの名無しさん:2005/09/07(水) 00:03:38
class Face
def T
end
end
T = Face.new

(T.T)

……しょーもなくてすまそ
668デフォルトの名無しさん:2005/09/07(水) 15:49:57
Omoti = 0721; class Face; def T; 0; end; end; T = Face.new;

(T.T)/~~Omoti
669デフォルトの名無しさん:2005/09/07(水) 17:03:05
ワロタ
670デフォルトの名無しさん:2005/09/07(水) 19:12:30
JARHみたいになってきたな。
671デフォルトの名無しさん:2005/09/08(木) 23:51:31
$ ruby -W0e '$c=Class.new;def $c.m a;puts a;end;def _ a=$c;a;end;def m a;a;end
m(_ _).m :Sorry
'
672デフォルトの名無しさん:2005/09/09(金) 01:05:57
basecampの画面ってかっこいい。
guestアカウントまだー
673デフォルトの名無しさん:2005/09/09(金) 03:57:51
>>671
もうちょいキモくしてみた

$ ruby -W0e 'public;def _ p=p;p and puts p;end;alias m _
m(_ _).m :Sorry
'

puts を p にしたらさらにキモくなるな(出力形式が変わるけど)
674671:2005/09/09(金) 19:30:16
>>673
さらにキモくしてみた。
$ruby -W0e public';def method_missing pp,p=p;p and p "'"$PpP#"'{p}";end
m(_ _).m :Sorry'
675デフォルトの名無しさん:2005/09/09(金) 22:31:33
この速度なら言える



      ,, -‐''''''''''‐- 、
    ,ィ´: : : : : : : : ノ、:\   
   ../:::: : : : : : :;' ツ  ゙i: :i,               
    |::::: : ; ''' ´       l: :l        /      ̄/ _/_  ─┼─  /
    l  i ,. --、__, -- 、 l ノ.     /      /|   /  /    ゝ   /
    `>l‐'、:::::ノ l、::::::ノ〈i      /___|  /  |   /  /  ヽ_  /⌒ヽ_ノ
     { j    ' '    /       
       l  -‐ー‐-  l   
        l    `  /   
       `'‐-ー--'

    | /  i     __ヽ_.  |      L__|__」      ─┼─
   ヽ|/  ニ|ニ     / ┌┼┐   ┌‐┐┌‐┐   ┼  lニlニlニl
    フ|ヽ '''ニニ''   /|ヽ.├┼┤   ├-┤├-┤    |  ─┼─
   / | ` |ニニ|     |  └┼┘   ├‐┤├-┤   / ,.イ\/
      |  ノ  、|     |    |     ノ  、| ノ  、|       レ \
676デフォルトの名無しさん:2005/09/10(土) 03:21:45
_why の描くキャラクターが、2ちゃんねるのキャラクター (モナーとか) に似ている気がする件。
677デフォルトの名無しさん:2005/09/10(土) 13:48:24
いつのまにか Iconv が追加されてた
http://www.sakura.ne.jp/news/20050905-003.news
678名無しさん@そうだ選挙に行こう:2005/09/11(日) 20:22:38
CGI::escapeでスペースが%20でなく+になってしまうんですが、
%20を使わせるにはどうしたらいいのでしょか。
679名無しさん@そうだ選挙に行こう:2005/09/11(日) 21:30:44
>>678
なんでそうなるのか背景はよくわからないが、とりあえず
class CGI
alias :CGI::_orig_escape CGI::escape
def CGI::escape(string)
string.gsub(/%20/, '+')
CGI::_orig_escape(string)
end
end
と上書きしちゃうとか。
680名無しさん@そうだ選挙に行こう:2005/09/11(日) 21:53:04
amritaで
<span id="hoge">
クリックで最大化→<img id="piyo">
</span>

x[:piyo]=a(:src=>'mona.gif') if x[:hoge]
みたいなことやりたいんだけどid入れ子にするとimgの属性って操作できないの?
681デフォルトの名無しさん:2005/09/12(月) 14:23:44
>>678
そもそも、+でなくて%20に(しなくちゃいけない|したい)理由って何?
682デフォルトの名無しさん:2005/09/12(月) 15:35:53
そんなこと聞くアフォがいるのはやっぱりRubyスレだからですか?
683デフォルトの名無しさん:2005/09/12(月) 15:55:01
>>682
ヒント:トルストイ 三人の息子
684デフォルトの名無しさん:2005/09/12(月) 16:26:42
>>678
URI::escape じゃダメなんだっけ?
685デフォルトの名無しさん:2005/09/12(月) 16:39:03
URI::unescape(CGI::escape(' '))
686デフォルトの名無しさん:2005/09/13(火) 04:23:36
>>685
これってURIとCGIのどっちがいいの?
687デフォルトの名無しさん:2005/09/13(火) 09:58:06
>>686
何を何のためにどうしたい場合の話?
688デフォルトの名無しさん:2005/09/13(火) 10:10:14
yieldがよくわかないんですけど、次の2つの違いって何かありますか?

def foo1(arg)
yield(arg)
end

def foo2(arg, &block)
block.call(arg)
end

どちらも同じように思うのですが、もし同じならyieldを導入した意味は何でしょう?
689デフォルトの名無しさん:2005/09/13(火) 10:46:57
690デフォルトの名無しさん:2005/09/14(水) 00:00:46
↑ブラクラ
691デフォルトの名無しさん:2005/09/14(水) 00:03:52
>>689
それはブロックつき呼び出しと、Procオブジェクトを引数として渡すことの違いでは?
質問しているのは、yield(arg)で呼び出すのとblock.call(arg)で呼び出すことの違いです。
692デフォルトの名無しさん:2005/09/14(水) 01:13:28
693デフォルトの名無しさん:2005/09/14(水) 09:00:36
↑ブラクラ
694デフォルトの名無しさん:2005/09/14(水) 13:08:07
>>692
それはブロックつき呼び出しと、Procオブジェクトを引数として渡すことの違いでは?
質問しているのは、yield(arg)で呼び出すのとblock.call(arg)で呼び出すことの違いです。
695デフォルトの名無しさん:2005/09/14(水) 14:01:16
696デフォルトの名無しさん:2005/09/14(水) 14:16:01
↑ブラクラ
697デフォルトの名無しさん:2005/09/14(水) 14:20:37
空気読まずに済みませんが、 OptionParser ってまんどくさくありませんか?
コマンドラインオプションの処理で最近のオススメはどれでしょうか?
698デフォルトの名無しさん:2005/09/14(水) 15:33:49
>>695
この URL、オフィシャルサイトのだと思うんだけど、
ブラクラなん?
699デフォルトの名無しさん:2005/09/14(水) 15:45:38
>>697
文句があるなら自分でつくれ
700デフォルトの名無しさん:2005/09/14(水) 16:40:14
>>699
何か気に障ることを言ってしまったでしょうか?

おじいちゃんが「自分で実装してる暇があったら既存のを探せ」と言い遺したので、
自分ではつくれないのです。
701デフォルトの名無しさん:2005/09/14(水) 16:43:29
getopts.rb が deprecated なのは、グローバル変数使ってるからなんでしょうか。

getopts() -> GetOpts.getopts()
$OPT_XXX, $OPT['XXX'] -> GetOpts['XXX']

みたいに置き換えて、存続してくれるといいのに。
702デフォルトの名無しさん:2005/09/14(水) 16:51:49
>>697
> 空気読まずに済みませんが、 OptionParser ってまんどくさくありませんか?
まんどくさいと思う人は少なからずいるよ。
実際何度か「まんどくさいよ」という意見が(2chはruby-listとかで)出てるよ。
けど、そのたび「慣れればまんどくさくないよ」と回答されているよ。

> コマンドラインオプションの処理で最近のオススメはどれでしょうか?
でもオススメはOptionParserだよ。
オフィシャルが OptionParser 一押しだから、たぶん類似ライブラリを開発・メンテしてる人はいないよ。
703デフォルトの名無しさん:2005/09/14(水) 16:54:06
そうですか。
これからアンチになります。

Rubyは糞!
Rubyは糞!
Rubyは糞!
704デフォルトの名無しさん:2005/09/14(水) 17:02:41
>>702
そうですか。
せめてもうちょっと lite な wrapper とかあればという気もしますが、
仕方ないので OptionParser で慣れることにします。
705デフォルトの名無しさん:2005/09/14(水) 20:14:43
>>701
getopts.rbからの乗り換えなら、roptsでも試してみたら。

ほかにも[ruby-talk:145713]とか[ruby-talk:154715]とか[ruby-talk:155941]とか。
706デフォルトの名無しさん:2005/09/14(水) 22:45:02
こっそりと 1.8.3 preview2 が出てた
707デフォルトの名無しさん:2005/09/14(水) 23:07:45
RTypeの感想どうぞ↓
708デフォルトの名無しさん:2005/09/14(水) 23:08:37
>>701
getopts って deprecated なの?
俺、Ruby1.4 の頃からの小さいスクリプトにかなり使ってるんだが…
その後は getoptlong のラッパー書いて使ってるけど、まだ 1.8 に
なってない環境もあるんで OptionParser 使う気にはなれんし。

つうかさ、実験的に入れた機能を削除するのは構わんけど、
ある程度使われてるのをなぜ obsolete/deprecated にするんだ。
納得できん。
昔から、Array#filter->map! とか Array#indices->select->values_at
とか iterator?->block_given? とか Object#type->class とか、
その度に既存スクリプト修正してきたけど、正直もううんざりだよ。
709デフォルトの名無しさん:2005/09/15(木) 01:20:15
Rubyらしい書き方が確立してきたので
CやPerlの文化から継承した汚物を捨てたくなる気持ちはわかる。
でも過去のコードを動かそうとしたとき
警告出たり動かなかったりしてきれたくなる気持ちはもっとわかる。

下位互換性を望むなら、Ruby使っちゃだめなんだろうね。
毎回コードを書いて使い捨てるか、気合入れて保守するか。
710デフォルトの名無しさん:2005/09/15(木) 01:26:46
> つうかさ、実験的に入れた機能を削除するのは構わんけど、
> ある程度使われてるのをなぜ obsolete/deprecated にするんだ。

それが Matz の信念だから。

「それで困るケースがあるのは承知してるが、それでもよくない仕様(主に名前?)の
変更は柔軟に行なってよい。むしろ行うべきだ。」みたいなことを、1,2年前の日記で
書いてた……気がするんだが、探し出せなかった(ので↑はあまり信用しないで)。

Array#indexes → Array#values_at なんかは典型かな。
「index と似てる名前なのに動作が逆なのは良くない」という理由だった。

Matz は異論を承知の上で行なってるので、今後も行われることだろう。
・直接説得する。
・あきらめる。
・Ruby とサヨナラする。
くらいしかないと思うよ。
711デフォルトの名無しさん:2005/09/15(木) 02:12:42
>>710
それとは違うかも知らんが、 "Broken Window Theory" とか言ってた日記があった。
712デフォルトの名無しさん:2005/09/15(木) 04:45:02
1.6系、1.8系とかを並行して使えばいいんじゃないの?
以前に書いたものを無理して最新のRubyで動かすこともあるまいに。
713デフォルトの名無しさん:2005/09/15(木) 08:04:04
バージョンアップ時に詳しい変更点のリストを提供してくれれば
仕様が変わることに文句はないな。
714デフォルトの名無しさん:2005/09/15(木) 08:12:51
>>713
shimを見る、というのも一つの手かも。
715708:2005/09/15(木) 09:59:46
>>712-713
いや、自分だけで使う限りではそれでぜんぜん問題ないんだけどね。
Ruby便利だってことで、作ったツールを社内で使う場合とかに面倒
になる。プログラマ以外のやつが使うこともあるし。
さらに作ったやつが辞めてたりするとさらに面倒に。まあこれは
Rubyに限った話でもないかもしれんが…。

そういう使い方にはあまり適さない言語だという気がしてきたよ。
好きなところも多い言語だが、そろそろ他への乗り換えも考えて
みようかと思ってる。
716デフォルトの名無しさん:2005/09/15(木) 10:33:58
色々使って、自分の気に入るのにすればいいやん。
無理して Rubyだけにこだわらんでよろし。
717デフォルトの名無しさん:2005/09/15(木) 10:46:11
>>715
配った先の環境もずっとアップデートしてんの?
718デフォルトの名無しさん:2005/09/15(木) 13:15:58
>>714
shim の更新が止まって以降の変更もでかすぎくなってきて辛くなってきてる。
719デフォルトの名無しさん:2005/09/15(木) 15:31:38
正直、 Ruby のバージョンに 4桁目 (patchlevel) を導入して欲しい。
720デフォルトの名無しさん:2005/09/15(木) 15:41:27
>>719
各ディストリビューションが付けてるやつで良いんじゃないの?

でも気持ちは良く分かる。1.8.3 も「なだれこみリリース」っぽいしね。
最近のリリースはだんだん、安定性が無くなってるな。

1.8.4 は basecamp 効果が表れるかな?
721デフォルトの名無しさん:2005/09/15(木) 15:44:49
ディストリビューションが同じ環境でしか意味持たないんじゃどうにも。
722デフォルトの名無しさん:2005/09/15(木) 18:06:10
「外部的な事情」ってのが気になる。
723デフォルトの名無しさん:2005/09/15(木) 19:32:32
WindowsとUnix系とで改行コードが異なりますが、putsでは自動的に判別して適切な改行コードを出力しているみたいです。
これってどうやってるんでしょうか。
今、なんらかのメッセージを出すのにヒアドキュメントを使っているんですが、よく考えたらWindowsだとうまく出力されないのかなーと思って。
msg = <<EOS
メッセージ
メッセージ
メッセージ
EOS
$stderr.print msg
こうではなく
$msg.puts "メッセージ"
$msg.puts "メッセージ"
$msg.puts "メッセージ"
と書くべきでしょうか。
724デフォルトの名無しさん:2005/09/15(木) 22:53:56
puts が判別してるわけじゃないから、気にせずそのままでいい。
725デフォルトの名無しさん:2005/09/15(木) 23:23:57
環境変えてもCRLFじゃなくてLFで出力したい場合にヒアドキュメントは?
726デフォルトの名無しさん:2005/09/16(金) 00:51:17
output.binmode
output.puts <<EOS
メッセージ
メッセージ
メッセージ
EOS
727デフォルトの名無しさん:2005/09/16(金) 02:33:21
それはソースがCRLFだとLFのみにならないから

output.binmode
output.puts <<EOS.delete("\r")
メッセージ
メッセージ
メッセージ
EOS
728デフォルトの名無しさん:2005/09/16(金) 07:26:16
>>727
ソースがCRLFで書いてあっても内部的には改行はすべて"\n"。
出力するまでは関係ない。
729デフォルトの名無しさん:2005/09/16(金) 13:25:35
>>728
うおー、 >>727 じゃないけど、それは知らんかった。
そういうのってどっかに書いてある?
730デフォルトの名無しさん:2005/09/16(金) 13:42:41
>>729
Rubyのソース
731デフォルトの名無しさん:2005/09/16(金) 14:02:40
実行すればわかる。
732デフォルトの名無しさん:2005/09/16(金) 14:20:23
>>730 >>731
んなアホな。って、マジで undocumented なんすか?
733デフォルトの名無しさん:2005/09/16(金) 14:35:23
そこまで親切なドキュメントが揃ってる言語があるなら試してみたい
734デフォルトの名無しさん:2005/09/16(金) 14:55:16
http://ruby-lang.org/ja/man/index.cgi?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB#a.a5.d2.a5.a2.a5.c9.a5.ad.a5.e5.a5.e1.a5.f3.a5.c8.20.28.b9.d4.bb.d8.b8.fe.ca.b8.bb.fa.ce.f3.a5.ea.a5.c6.a5.e9.a5.eb.29

> ヒアドキュメントは `<<識別子' を含む行の次の行から `識別子' だけの行の
> 直前までを文字列とする行指向のリテラルです。例えば、
>  print <<EOS # 識別子 EOS までがリテラルになる
>   the string
>   next line
>  EOS
> これは以下と同じです。
>  print " the string\n next line\n"

「ソースの改行コードとは関係ナシに \n になる」と読むのが自然かな。
一言断わっておいた方がいいとは思うけど。
735デフォルトの名無しさん:2005/09/16(金) 15:06:23
思うなら書いておいてくれ。
736デフォルトの名無しさん:2005/09/16(金) 15:57:56
「リテラル」と「字句構造」に書いといた。
文句ある奴はなおしてくれ。
737723:2005/09/16(金) 17:27:41
回答いただき、ありがとうございました。
ヒアドキュメントのままWindowsで出力させても問題ないとのことなので、putsに書き直すのはやめました。
ありがとうございました。
738732:2005/09/16(金) 17:44:17
>>734-736
おお、ありがとー。

>>733
というわけで、 Ruby が良さそうですよ。
739デフォルトの名無しさん:2005/09/17(土) 11:39:55
OSCいくかー。
740デフォルトの名無しさん:2005/09/17(土) 15:40:48
1.8.3は無事リリースされますか?
741デフォルトの名無しさん:2005/09/17(土) 16:27:39
1.8.3は無事リリースされるけど、それを手にするお前らは無事ではない。
742デフォルトの名無しさん:2005/09/17(土) 16:39:11
>>741

爆笑
743デフォルトの名無しさん:2005/09/17(土) 17:20:11
Rubyとかの個人ヲタが作ってる
言語は大事な業務に使わない方がいいよ。
なんせバグが出ても責任取ってくれないからね。
744デフォルトの名無しさん:2005/09/17(土) 17:50:51
PerlとかPyhtonとかPHPなら責任取ってくれますか?
745デフォルトの名無しさん:2005/09/17(土) 18:44:16
>>743
JavaやVCでバグが出てもSunやMSは責任取ってくれないって知ってたか?
ライセンス条項にちゃんと入ってるぞ。
746デフォルトの名無しさん:2005/09/17(土) 19:07:23
Windows とか個人のヲタが作っ (ry
747デフォルトの名無しさん:2005/09/17(土) 19:17:54
責任云々はともかく多くの人に使われてるほうがいいよ
748デフォルトの名無しさん:2005/09/17(土) 19:51:52
そういうヤツは一生シェアNo.1スクリプトのPHPでもつかっとれ。
749デフォルトの名無しさん:2005/09/17(土) 21:15:00
Omotiがおとなしくなったとおもったら、Wildernessのヤツもいい加減ウザい。
750デフォルトの名無しさん:2005/09/17(土) 23:12:38
でもまあ、そういうやつがいないと、特に ruby-list なんかは「無投稿期間」が更新されていくわけで。
751デフォルトの名無しさん:2005/09/18(日) 01:01:59
ruby-listよりruby-talkの方がいい話題が多い
752デフォルトの名無しさん:2005/09/18(日) 01:33:38
次の挙動をどなたか説明していただけますか?

> ruby -v
ruby 1.8.2 (2004-12-25) [i386-mswin32]

> ruby -e 'p 2**2**2**2'
65536

> ruby -e 'p 2**2**2**2**2'
2003529930406846464979072351560255750447825
(省略)
22087777506072339445587895905719156736
# 19729桁

> ruby -e 'p 65536**2'
4294967296

> ruby -e 'p 2**2**2**2**2**2'
c:/programs/ruby/1.8.12-15/lib/ruby/1.8/rational.rb:365: warning: in a**b, b may be too big
c:/programs/ruby/1.8.12-15/lib/ruby/1.8/rational.rb:365: warning: Bignum out of Float range
Infinity

つまり2^4、2^5、2^6の結果を出力させているんですけど、
2^5を 2**2**2**2**2として実行したときにわけわからん出力になります。
2^6のときは警告はですんですが。
これってバグですか?仮にバグだとしてなぜこんな出力になっちゃうんでしょう?

ちなみに、
ruby 1.8.2 (2004-12-25) [i386-cygwin]
ruby 1.8.1 (2003-12-25) [i686-linux]
ruby 1.8.2 (2004-12-25) [i686-linux]
でも同じ結果でした。
753デフォルトの名無しさん:2005/09/18(日) 01:51:53
>>752
ヒント : 適当に括弧を付けてみれ

あと^の記号は普通そういう意味では使わない。2^4は一般的には2*2*2*2のことを表すだろう
754デフォルトの名無しさん:2005/09/18(日) 01:53:00
とりあえず、ちょっと待て。
2^4 は 2**4 で、当然 16 だぞ?
755デフォルトの名無しさん:2005/09/18(日) 03:22:36
a**b**c == a**(b**c)

数学でもカッコなしで(図がずれてたらすまん。右肩に乗ってるつもり)
  c
 b

って書いたら
○ a の(b の c 乗)乗
× (a の b 乗)の c 乗
756デフォルトの名無しさん:2005/09/18(日) 13:11:11
>>753,754,755

ありがとうございます。

なるほど
2**2**2**2**2 = 2**(2**(2**(2**2))) = 2**65536
ってことですね。たしかに言われてみれば累乗の累乗って
後ろから計算しないといけませんよね。すっかり忘れてました。。。
それと、2^xなんたらというのは完全に頭いかれてました orz

Rubyのバグと疑ってしまい関係者の皆様申し訳ありませんでした。
757デフォルトの名無しさん:2005/09/18(日) 13:15:21
こんなとこ関係者見てんのか?
758デフォルトの名無しさん:2005/09/18(日) 13:32:02
2ch かっつーの
759デフォルトの名無しさん:2005/09/18(日) 15:38:56
Rubyはうんこ
760デフォルトの名無しさん:2005/09/18(日) 17:32:33
誰でも垂れ流しているのか、いつのまにそんな普及率になったんだ
761デフォルトの名無しさん:2005/09/18(日) 19:15:13
age
762デフォルトの名無しさん:2005/09/18(日) 20:48:18
ttp://jp.rubyist.net/magazine/?0009-lldn-report
だめ自慢「2ch とイナモデでしか健全な批判が行われていない」
763デフォルトの名無しさん:2005/09/18(日) 21:16:17
こういうのを「健全な批判」というとは知らなかった。
感動した。
764デフォルトの名無しさん:2005/09/18(日) 22:00:57
オープンソース関連の中でもrubyはかなり2ch率高いでしょ。
教祖も見てるし。
765デフォルトの名無しさん:2005/09/18(日) 22:09:45
そもそも2chで暴れたから有名になったという感じがする
キチガイも沢山飼ってるし
766デフォルトの名無しさん:2005/09/18(日) 22:13:43
教祖は見てないでしょ
767デフォルトの名無しさん:2005/09/19(月) 00:35:15
>>765
それは MW タンですか? Omoti タン ですか?
768デフォルトの名無しさん:2005/09/19(月) 00:56:24
>>767
MWタン。だってあの顔は一度見たらもう忘れられないよ。
769デフォルトの名無しさん:2005/09/20(火) 16:12:31
画像のURLはご無用に願います...。
770デフォルトの名無しさん:2005/09/20(火) 17:34:41
「リリース前日に怒涛のコミットが...。」なんて、想定の範囲内じゃないのかよ・・・
771デフォルトの名無しさん:2005/09/20(火) 20:27:05
でさ、何でリリースが 21日必須なの?
理由って、どっかに書いてあったっけ?
772デフォルトの名無しさん:2005/09/20(火) 21:03:05
外部の事情とかなんとか言ってたけど、それが何を指すのかは説明されてない。
773デフォルトの名無しさん:2005/09/20(火) 21:06:53
まぁ、宇宙人だな。
774デフォルトの名無しさん:2005/09/20(火) 21:43:27
21日にRuby1.8.3がリリースされるの?
775デフォルトの名無しさん:2005/09/20(火) 21:50:11
な?だろ?そう思うだろ?どうせネタだろとか誰もが思ってるだろ?
776デフォルトの名無しさん:2005/09/20(火) 23:01:24
リリースするまで説明できないような理由じゃない。
777デフォルトの名無しさん:2005/09/20(火) 23:30:31
落ち着いていこう
まだあわてるような時間じゃない
778デフォルトの名無しさん:2005/09/20(火) 23:47:50
>>741になりそうな感じだな
779デフォルトの名無しさん:2005/09/20(火) 23:58:52
とりあえずリリースされてから48時間は寝かせないと
MD5が変わらなくなってからが食べ頃だw
780デフォルトの名無しさん:2005/09/21(水) 01:49:08
>>779
リリースするほうが無事じゃすまんよ、それ。
781デフォルトの名無しさん:2005/09/21(水) 03:01:15
ttp://makimo.to/2ch/pc5_tech/1100/1100533226.html

の 960 あたりからを読め
782デフォルトの名無しさん:2005/09/21(水) 03:40:10
F5押したら実行してエラー表示してくれるような開発環境ない?
783デフォルトの名無しさん:2005/09/21(水) 03:46:38
>>782
emacs
784デフォルトの名無しさん:2005/09/21(水) 04:46:04
RDE ならできるんじゃなかろうか
785デフォルトの名無しさん:2005/09/21(水) 10:17:10
おいおい、ほんとに出ちゃったよ。
786デフォルトの名無しさん:2005/09/21(水) 10:43:32
まだだ、まだ終わらんよ!
787デフォルトの名無しさん:2005/09/21(水) 10:44:33
1.8.3p1がすぐに出る悪寒。
788デフォルトの名無しさん:2005/09/21(水) 11:17:34
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/27251

1.8.2以前のRubyには脆弱性があります。これがリリースを急いだ
理由だったりするんですが、このレポートの英訳を手伝ってくださ
る方はいらっしゃいませんか。誰もいなきゃ私がやるしかないんで
すが。日本語レポートは以下の通りです。

---
セーフレベルの設定が回避可能となる脆弱性

公開日: 2005-09-21

対象バージョン:

リリース版(1.8.x) - 1.8.2以前のすべてのバージョン(1.8.3で修正)
過去のリリース版(1.6.x) - 1.6.8以前のすべてのバージョン
開発版(1.9.0) - 2005-09-01版以前のすべて(2005-09-02版で修正)

概要:

対象バージョンのRubyにはセーフレベルによるチェックを回避して任意のコードを
実行できる脆弱性があります。

(以下略)
789デフォルトの名無しさん:2005/09/21(水) 11:23:13
脆弱性対策のために1.8.3を急いで出したのか…
790デフォルトの名無しさん:2005/09/21(水) 11:39:04
791デフォルトの名無しさん:2005/09/21(水) 13:23:36
こんな真面目な理由で急いでいたとは誰も思っていなかった。
792デフォルトの名無しさん:2005/09/21(水) 13:57:52
Ruby がクリスマス以外でリリースされたら脆弱性と思え。
793デフォルトの名無しさん:2005/09/21(水) 15:34:59
Ruby においてリリースマネージメントが機能しない脆弱性
794デフォルトの名無しさん:2005/09/21(水) 15:43:37
Ruby のソースパッケージの MD5 チェックサムがすり替えられてしまう脆弱性
795デフォルトの名無しさん:2005/09/21(水) 16:08:05
Rubyもhaskellで書き直してもらった方がいいんじゃねーか
796デフォルトの名無しさん:2005/09/21(水) 16:13:25
9/2でパッチ出来てるんなら、もっとはやく脆弱性のアナウンスしろよなぁ………
797デフォルトの名無しさん:2005/09/21(水) 16:13:42
>>795
RTypeを知ってて言ってるのか、知らないでわざと言ってるのか、どっち?
798デフォルトの名無しさん:2005/09/21(水) 16:16:34
もちろん知らないで言ってるに決まってんじゃん馬鹿?
つーかあるんならそのRTypeとやらを説明してくれよ
嫌な奴だな
799デフォルトの名無しさん:2005/09/21(水) 16:19:56
これか
ttp://mono.kmc.gr.jp/~oxy/hiki.cgi?rtype
もうRubyのことはこいつにまかせよーぜ
800デフォルトの名無しさん:2005/09/21(水) 16:27:00
そうだな。

1) まつもとが変態言語仕様を提案する

2) RType陣営がそれを実装してみる

3) だめ→まつもとを袋叩き 1)に戻る

4) Rubyリリース

という流れかな。
801デフォルトの名無しさん:2005/09/21(水) 16:55:57
>>798
知らないで言ってるお前が馬鹿だろ。
802デフォルトの名無しさん:2005/09/21(水) 17:05:18
>>801
ちがうちがう、797がイヤミだと言う事に
気付かないって方が。
803デフォルトの名無しさん:2005/09/21(水) 17:10:26
最近の2ちゃんねるはイヤミにキレがないザンス
804デフォルトの名無しさん:2005/09/21(水) 17:24:53
これでいいのだ
805デフォルトの名無しさん:2005/09/21(水) 17:35:11
41才の秋だから〜
806719:2005/09/21(水) 17:40:46
げげ、半分冗談のつもりで言ったのに・・・
807デフォルトの名無しさん:2005/09/21(水) 18:10:53
案の定、ruby-dev にごたごた来てる訳だが (w

つか、クリスマスにも、ちゃんと出す予定なのね。
808デフォルトの名無しさん:2005/09/21(水) 23:40:00
ruby-list止まってる??? 記事が流れてこないんだが。
809デフォルトの名無しさん:2005/09/21(水) 23:50:25
で今回のバージョンはどんなもん?
1.8.2はスナップショット扱いされてたけど。
810デフォルトの名無しさん:2005/09/21(水) 23:53:33
Matz は「1.8.2よりマシ」って言ってたけど、同等か、もっと悪いくらいなんじゃない?
なんてったって、Rails が動かないし。

もうすぐ 1.8.3.1 が出るっしょ。
811デフォルトの名無しさん:2005/09/22(木) 00:12:09
>なんてったって、Rails が動かないし。

うへ_| ̄|○
無理にバージョン上げずにセキュリティパッチとして配布……ってのは無理だったのかなぁ
812デフォルトの名無しさん:2005/09/22(木) 00:30:02
>>811
いちおうソースレベルのパッチはでてるね。[ruby-dev:27267]
813デフォルトの名無しさん:2005/09/22(木) 01:17:46
Rails動かないのはいくらなんでもマズいだろ。
パッチにせず無理矢理リリースとか、リリースエンジニアリングの
だめなのはわかっちゃいたけど。

1.8.3はとりあえず1.8.2を元に脆弱性の回避だけ施したものとして出して
(つまりはEmacsの21.4方式)、1.8.3にする予定で進めたコードは1.8.4として
ゆっくりやればよかったんじゃないのかね。
814デフォルトの名無しさん:2005/09/22(木) 02:41:23
で、現時点ではっきりしている 1.8.3 の問題って何々?
815デフォルトの名無しさん:2005/09/22(木) 03:05:51
Railsが動かない。
816デフォルトの名無しさん:2005/09/22(木) 03:13:45
loggerのインターフェイスが変わったのは、
Rails側で対応して貰うしかないよね。
その時間的余裕が全然なかったのはRubyのせいだけど。

他の問題は?
リリース間際に田中氏が大量に投げてたバグ報告とか、
全部対応されたんだろうか。
817デフォルトの名無しさん:2005/09/22(木) 04:34:31
メソッドの名前とかインターフェース面での変更とか、
リリースエンジニアリングに色々難があるな。
そういうのは、2.0でまとめてやってほしいよ。
Rubyは現状を見るかぎりはまともなstableなソフトとは言えない。
818デフォルトの名無しさん:2005/09/22(木) 04:56:28
それが Ruby。どんどんやってくれ。
819デフォルトの名無しさん:2005/09/22(木) 07:16:24
RailsというよりActiveSupportだが、
これはActiveSupportのやってることのほうが変。
820デフォルトの名無しさん:2005/09/22(木) 08:07:40
>>741になったな
821デフォルトの名無しさん:2005/09/22(木) 08:10:38
なんですかこのスクリプト言語は。
メジャーバージョンがいつまでも0のままの某言語にそっくりですね、
822デフォルトの名無しさん:2005/09/22(木) 08:41:42
>>815
Rails以外に問題はある?

>817
>リリースエンジニアリングに色々難があるな
1.8.4では何とかしようとしているみたい。
1.8.3でも色々議論してたけどさ。

>>819
>これはActiveSupportのやってることのほうが変。
Logger のクラスを消すんだもんな。
ActiveSupport は全体にやりすぎ
823デフォルトの名無しさん:2005/09/22(木) 08:56:57
>>816
ruby_1_8に関係しないものも多々あったかと。
824デフォルトの名無しさん:2005/09/22(木) 10:13:52
JVN#62914675:
「Ruby」においてセーフレベル4がサンドボックスとして機能しない脆弱性
http://www.ipa.go.jp/security/vuln/documents/2005/JVN_62914675_Ruby.html

結局、これが公知されるのが 9/21 に決まってたから、9/21リリースにこだわってたんだろうね。
825デフォルトの名無しさん:2005/09/22(木) 10:56:14
>>812
消えてる・・・
826デフォルトの名無しさん:2005/09/22(木) 14:04:47
>>808
そういえば 1.8.3 リリースのアナウンスすら送られてこないね。
脆弱性の報告が開発者 ML (ruby-dev) にしか流れてないというのはまずい気がするが。
827デフォルトの名無しさん:2005/09/22(木) 15:12:04
>>826
ホームページのトップに書いてあるが。
828デフォルトの名無しさん:2005/09/22(木) 15:14:41
高橋氏をはじめとしてリリースエンジニア候補は結構いるのに、
何で一向に改善しないの。
829デフォルトの名無しさん:2005/09/22(木) 15:18:16
>>827
ruby-listに存在意義ないな…。
830デフォルトの名無しさん:2005/09/22(木) 15:19:13
Matzがボスだから。w
そういう人を連れてきてMatzと同格以上の立場に持ってこないとダメだと思うよ。

それにしてもMatzも仕事のやり方が間違ってるよね。
1.8.3としての通常のバージョンアップのついでの形で修正を含めたいとしても
まず手数や問題が小さいと見込める1.8.2の脆弱性だけ修正したものを用意して、
それから本来の1.8.3のリリースエンジニアリングに掛かるべき。
そうやって保険があれば、わざわざ急ぎすぎてヘマすることも減るし、
英語の文書が間に合わないとかもないだろうに。
831デフォルトの名無しさん:2005/09/22(木) 15:23:58
>>829
ruby-talkにもまだアナウンスなさそう。
ruby-coreにはそっけないアナウンスがあった。
どちらも脆弱性についてのメールもなさそう。
しかしruby-talkって流量すごいね。
832デフォルトの名無しさん:2005/09/22(木) 16:03:26
>>831
そのためだけに ruby-talk 取ったの?

アナウンスは、英文が揃い次第かな。
833デフォルトの名無しさん:2005/09/22(木) 16:13:41
>>827
ホームページのトップを毎日チェックしろってか?
それなら ruby-dev や ruby-core へのアナウンスも要らなかったな。
834デフォルトの名無しさん:2005/09/22(木) 16:22:52
リリース一週間くらい前には tar.gz を -preview とか -RC とか付けずに置いといて、
一週間くらい経っても問題の報告がなければそのまま正式リリースのアナウンスする、
とかでいいのでは。
835デフォルトの名無しさん:2005/09/22(木) 16:26:55
836デフォルトの名無しさん:2005/09/22(木) 17:48:18
>>827
なんでそういう結論になるのかまったくわからん。
837デフォルトの名無しさん:2005/09/22(木) 18:12:23
Content-Type: text/html; charset=ISO-8859-1
となってるから、MLアーカイブ見るの面倒。
838デフォルトの名無しさん:2005/09/22(木) 18:30:03
脆弱性発見するたびにリリースしてたら1.8.9じゃ足りなくならないか?www
839デフォルトの名無しさん:2005/09/22(木) 18:42:45
>>837
日記にだけ書けば十分ですよ
840デフォルトの名無しさん:2005/09/22(木) 19:09:56
[ruby-dev:27268]を見るに、数字一桁というのは事実上撤回しましたな。
小数点がついたら、そりゃ10未満ではあっても一桁とは言わんだろうw
841デフォルトの名無しさん:2005/09/22(木) 19:55:41
BaseCamp の Ruby Development って RSS feed 以外は
アカウント持ってないと見れない?

ttp://matz.seework.com/login
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/5757
842デフォルトの名無しさん:2005/09/22(木) 20:07:38
>>840
少数点? ハァ?
843デフォルトの名無しさん:2005/09/22(木) 20:18:44
>>840
バージョン番号を区切る '.' は「小数点」とは言わない (言えない) だろう。
844デフォルトの名無しさん:2005/09/22(木) 20:45:32
>>842,843
[ruby-dev:27268]とversion.hを見てから言ってくれ。
845デフォルトの名無しさん:2005/09/22(木) 20:51:33
>>844
見てから言っていますよ? "1.8.3" が小数とは言えないでしょう?
846デフォルトの名無しさん:2005/09/22(木) 21:01:38
>>845
ハァ?バカ?
847デフォルトの名無しさん:2005/09/22(木) 21:03:21
相変わらずrubyコミュニティは痛い香具師ばっかだな
848デフォルトの名無しさん:2005/09/22(木) 21:06:18
>>846
845は目が見えないんだよきっと。壮絶に頭が悪いだけかも知れないが。

849デフォルトの名無しさん:2005/09/22(木) 21:07:41
Rubyを勉強しようかと思いましたが、
このスレを見てやめました。
ごめんなさい。
850デフォルトの名無しさん:2005/09/22(木) 21:08:43
とてつもないバカが一匹いるな…
851デフォルトの名無しさん:2005/09/22(木) 21:30:27
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 3

いまのところ MAJOR, MINOR, TEENY はそれぞれ一ケタの整数だった。
[ruby-dev:27268] のように(TEENY を小数に)すると、それは崩れることになる。

ところで、matzは「MAJOR, MINOR, TEENY の各数値は、数字一桁で行く」って宣言してたんだっけ?
(MAJOR と MINOR の話は見たことある気がするが、TEENY は覚えてない)
852デフォルトの名無しさん:2005/09/22(木) 21:31:20
ruby1.8.3でセキュリティ対策がされているようなのでVC++7.1でコンパイルしようと思ったらこんな感じで止まってしまったのですが、
どうしたらコンパイルできますか?
コンパイルオプションはこんな感じでいくつか付け足しました。
$(OPTFLAGS) = /O2 /arch:SSE /GL /GF /G6
$(LDFLAGS) = 元の物に /LTCG追加

cl -nologo /LTCG -LD /LTCG -Fe../../.ext/i386-mswin32/Win32API.so Win32A
PI.obj msvcr71-ruby18.lib kernel32.lib oldnames.lib user32.lib advapi32.lib wso
ck32.lib -link -incremental:no -opt:ref -opt:icf /LTCG -dll /LTCG -libpath:"../
.." -def:Win32API-i386-mswin32.def -implib:Win32API-i386-mswin32.lib -pdb:Win32A
PI-i386-mswin32.pdb
cl : コマンド ライン warning D4002 : 不明なオプション '/LTCG' を無視しました。
cl : コマンド ライン warning D4002 : 不明なオプション '/LTCG' を無視しました。
ライブラリ Win32API-i386-mswin32.lib とオブジェクト Win32API-i386-mswin32.exp
を作成中
Win32API.obj : error LNK2001: 外部シンボル "_rb_scan_args" は未解決です。
Win32API.obj : error LNK2001: 外部シンボル "__imp__rb_cObject" は未解決です。
Win32API.obj : error LNK2001: 外部シンボル "_rb_str_new3" は未解決です。
Win32API.obj : error LNK2001: 外部シンボル "_rb_define_method" は未解決です。
Win32API.obj : error LNK2001: 外部シンボル "_rb_ary_push" は未解決です。
Win32API.obj : error LNK2001: 外部シンボル "_rb_uint2inum" は未解決です。
Win32API.obj : error LNK2001: 外部シンボル "__imp__rb_eRuntimeError" は未解決で
す。
Win32API.obj : error LNK2001: 外部シンボル "_rb_string_value" は未解決です。
(中略)
../../.ext/i386-mswin32/Win32API.so : fatal error LNK1120: 外部参照 24 が未解決
です。
NMAKE : fatal error U1077: 'cl' : リターン コード '0x2'
Stop.
NMAKE : fatal error U1077: '.\miniruby.exe' : リターン コード '0x1'
Stop.
853デフォルトの名無しさん:2005/09/22(木) 21:41:30
>>852
自分でコンパイルも通せない香具師にrubyを使う資格は無い
854デフォルトの名無しさん:2005/09/22(木) 21:44:39
>>851
だからTEENYの「3.1」のドットは「小数点」ではないって。
「小数点 = .」と思ってるのか?
TEENYが「3.1.1」に絶対ならない保証があるとでも?

> ところで、matzは「MAJOR, MINOR, TEENY の各数値は、数字一桁で行く」って宣言してたんだっけ?

そんなことは言ってないだろ >> 26894
855デフォルトの名無しさん:2005/09/22(木) 21:54:37
> だからTEENYの「3.1」のドットは「小数点」ではないって。
ソースは?
856デフォルトの名無しさん:2005/09/22(木) 21:58:38
>>855
おまえやっぱりピリオドと小数点の違いわかってないだろ
857デフォルトの名無しさん:2005/09/22(木) 22:01:03
ttp://www.rubyist.net/~matz/20050615.html#p01
> Rubyでは、いつのころからか「1.8.3のような各数字はすべて1桁」というルールに統一している。
858デフォルトの名無しさん:2005/09/22(木) 22:09:12
>>854
3.1.1なんかCの数値として書けないじゃん。
RUBY_VERSION_TEENYを3のままでさらに枝番をつけるという意図なら
「TEENYを3.1にする」というような書き方でわざわざ注釈を入れたりはすまいよ。
859デフォルトの名無しさん:2005/09/22(木) 22:15:21
>>852
その余計なことを元に戻して試してから出直してくれ。
860851=855=857:2005/09/22(木) 22:16:24
>>856
スマン、言い方がマズかった。
TEENYの「3.1」のドットが「小数点」なのかどうかは提案したmatz本人にしか
分からないはずなのに、なぜ「『小数点』ではない」と断定できるのか、
を疑問に思っただけ。

>>858
定義はしてるけどどこでも参照してないみたいだから、
 #define RUBY_VERSION_TEENY 3.1.1
としても問題は起きない気もする。
C の数値として書けるかどうかは、あまり関係ないのではなかろうか。
861デフォルトの名無しさん:2005/09/22(木) 22:42:23
>>845
アホか。"1.8.3" は String オブジェクトだろ。

p "1.8.3".class #=> String

と、ちゃんと返ってくるぞ。
862デフォルトの名無しさん:2005/09/22(木) 22:45:01
>>859
自分でコンパイルするのは辞めて
ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.8.3-i386-mswin32.zip
を落としてきたのですが、
D:\>ruby
print "test"
ruby: no such file to load -- ubygems (LoadError)

と何を実行しようとしても落ちてしまいます。
irbも起動した瞬間
ruby: no such file to load -- ubygems (LoadError)
で落ちてしまいます。
みなさんはうまく動いているのでしょうか?

863デフォルトの名無しさん:2005/09/22(木) 22:46:25
すいませんOne Click Installerのせいでした。
アンインストールしたのに環境変数が書き換えられっぱなしだったみたいです。
One Click Installerはうんこですね
864デフォルトの名無しさん:2005/09/22(木) 23:34:22
結局うまくコンパイルできました。test/runner.rbも標準版よりかなり高速に終わりました。
原因は/GL,/LTCG使うと止まってしまうだけのようなのでそれだけ外しました。
自己満足に付き合って頂いてありがとうございました。
個人的にはrubyが遅いと言われてるのは、
コンパイルオプションに標準で/Og-が入ってるせいなのもあると思います。
865デフォルトの名無しさん:2005/09/22(木) 23:40:17
はいはいわろすわろす
866デフォルトの名無しさん:2005/09/23(金) 00:03:08
TEENY を 3.1 にするんじゃなくて
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
#define RUBY_VERSION_TEENY 3
#define RUBY_VERSION_PATCH 1
にするんかと思ってた。
TEENY を 3.1 にするなんてありえなくね?
867デフォルトの名無しさん:2005/09/23(金) 00:15:51
はいはいわろすわろす
868デフォルトの名無しさん:2005/09/23(金) 07:23:26
なんで日本語のMLでチマチマやってるの?
869デフォルトの名無しさん:2005/09/23(金) 08:12:27
つruby-talk
870デフォルトの名無しさん:2005/09/23(金) 10:03:16
つruby-core
871デフォルトの名無しさん:2005/09/23(金) 10:08:08
872デフォルトの名無しさん:2005/09/23(金) 10:56:36
module_functionはmodule内でしか使えずclass内では使えないようなんですが、class内でmodule_function使うにはどうしたらいいですか。

module Foo
 def test
  puts "Foo#test()"
 end
 module_function :test  #=> OK
end

class Bar
 def test
  puts "Bar#test()"
 end
 module_function :test  #=> undefined method `module_function' for Bar:Class (NoMethodError)
end
873デフォルトの名無しさん:2005/09/23(金) 11:28:55
>>872
そりゃ、BarはModuleじゃないからmodule_functionになれるわけないわな。

class Bar
def self.test
...

class Bar
def Bar.test
...
があなたのやりたいこと??
874デフォルトの名無しさん:2005/09/23(金) 12:12:39
>>873
やりたいことはそうなんですが、classはmoduleでもあるんだから、moduleでできることはたいがいclassでもできるはずですよね。
だからclassではmodule_functionが使えないのはなぜだろう、と思ったわけです。
875デフォルトの名無しさん:2005/09/23(金) 13:06:51
>>874
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Class

…と書いてしまえば一言なんだけど、なぜだろう、というのを問い詰められると自分のレベルでは分からないかも知れない。スマソ。
それでも説明するとすれば例えば、Classはincludeできないでしょ?、くらいでしょか。
876デフォルトの名無しさん:2005/09/24(土) 00:29:27
>>875
マニュアルに書いてあるのね。ありがとさん。でも理由は書いてないのか。
877デフォルトの名無しさん:2005/09/24(土) 02:25:32
878デフォルトの名無しさん:2005/09/24(土) 02:31:04
そういうことはちゃんとドキュメント化しとけよボケナス
とは思わないのか?
879デフォルトの名無しさん:2005/09/24(土) 02:48:10
>>878
それをruby-devで言ってきて。
880877:2005/09/24(土) 02:51:40
俺に言われても。
まあ、細かい理由までは書かなくてもいいんじゃないか?とは思う。
むしろ、こんないい加減な仕様でいいのか、っていう方が気になる。

module は何を仮定してよくて、何を仮定してはいけないんだろう。
module のメソッドは常に module_function される可能性を
意識してないといけないのか? 例えば
> module Enumerable; module_function :all?; end; Enumerable.all?
は可能だけど、やる方が悪いんじゃないか。だったら
> class String; module_function :gsub; end; String.gsub
も、やる方が悪い、でいいんじゃないだろうか。
もしこれが可能だったとしたらどうなるんだ?
881デフォルトの名無しさん:2005/09/24(土) 03:44:17
ttp://www.rubyist.net/~matz/20050921.html#p01
> [Ruby] Ruby 1.8.3 リリース
> むしゃくしゃしてリリースした。新しいものならなんでも良かった。
> 今は反省している。

ちょwwwおまwwwwwwwwww
882デフォルトの名無しさん:2005/09/24(土) 06:14:19
2ch かっつーの
883デフォルトの名無しさん:2005/09/24(土) 13:29:04
>>880
> module は何を仮定してよくて、何を仮定してはいけないんだろう。
仮定してはいけないものはinclude/extendされる対象の構造。
884デフォルトの名無しさん:2005/09/24(土) 15:15:00
>>881
ワロタ
885デフォルトの名無しさん:2005/09/24(土) 15:27:08
反省してるってことなら、大目に見てやろう。
886877:2005/09/24(土) 16:00:21
>>883
Enumerable は、対象が「"each" という名の、ブロックを受け取るメソッドを持つ」
という構造だと仮定してるけど、それはいいの?
「構造」の定義がないから勘違いしてるのかな。
887デフォルトの名無しさん:2005/09/24(土) 19:16:01
三ヵ月前のリリースくらい大目にみてよ〜
888デフォルトの名無しさん:2005/09/24(土) 21:35:45
>>886
それは「インターフェース」。
構造というよりも、「eachが内部でどう実装されてるかに依存してはいけない」
といったほうがいいかな。

[ruby-dev:10340]でいってるのも、Cレベルでの構造というか実装の詳細に強
く依存するメソッドを、ClassのインスタンスであるStringに適用することは
できないということ。
889デフォルトの名無しさん:2005/09/24(土) 23:13:39
なにやら哲学的で難しいのぉ…
890デフォルトの名無しさん:2005/09/25(日) 00:17:37
つーかアレじゃね? こっそり依存するのがまずいって話じゃね?
「Enumerable は each を仮定してます」って明示してるからオッケー。



……って、それが「インターフェイス」ってことだよな。
891デフォルトの名無しさん:2005/09/25(日) 00:30:03
>>881
> 追記
> 上のように書いたら「本当にむしゃくしゃしてリリースした」と思う人が出る始末。
> 冗談も書けない。余計に落ち込む。

っ旦
892デフォルトの名無しさん:2005/09/25(日) 00:37:24
マジレスをスルーできない人は(冗談を書くのは)難しい
893デフォルトの名無しさん:2005/09/25(日) 00:39:50
まつまとがTPOをわきまえてないだけでは
894デフォルトの名無しさん:2005/09/25(日) 00:41:38
>>837
> はら (2005-09-24 14:29)
> 直してみました。(ruby-devなど)
895デフォルトの名無しさん:2005/09/25(日) 00:42:25
本当に「本当にむしゃくしゃしてリリースした」と思う人が出たと思われてしまう始末。
冗談も書けない。余計に落ち込む。
896デフォルトの名無しさん:2005/09/25(日) 00:43:35
上のように書いたら「本当に落ち込んだ」と思う人が出る始末。冗談も書けない。
897デフォルトの名無しさん:2005/09/25(日) 00:43:42
単にギャグとして面白くない
898デフォルトの名無しさん:2005/09/25(日) 00:48:21
そこはオヤジなんだから勘弁してやれ
899デフォルトの名無しさん:2005/09/25(日) 01:56:16
つか、本家サイトが落ち込んだ?
900デフォルトの名無しさん:2005/09/25(日) 07:35:58
>>895
コメント欄に「本当にむしゃくしゃしてリリースした」と思った(っぽい)人が出てるな。
あれ以上冗談っぽくってどうすればいいんだ?
901デフォルトの名無しさん:2005/09/25(日) 07:38:50
本人乙
902デフォルトの名無しさん:2005/09/25(日) 08:26:03
リリースエンジニアリングを批判されてる状況で、
寒いジョークを書いてる馬鹿だからなあ。

俺Rubyはリリースエンジニアリングのマズさ以外はいい言語だと思ってるけど、
プロジェクトリーダーがこんな馬鹿じゃちょっと哀しいよ。
903デフォルトの名無しさん:2005/09/25(日) 08:36:08
本人乙
904デフォルトの名無しさん:2005/09/25(日) 08:53:44
なぜ脆弱性が発見されてから20日以上もリリースを引き延ばしたかとか
結果どうだったとか、どこをどう反省しているかw とか、
本人が総括して語ってれば冗談で済むけど、
それを全くしないであんなこと書かれてもなあ。
905デフォルトの名無しさん:2005/09/25(日) 08:53:53
>>902
そうだな。
リリースというのは、ソフトとその作者にとって
一世一代のお披露目なんだから、
緊張感持ってきっちりやるべきだよな。
普段はおちゃらけてていいから。
906デフォルトの名無しさん:2005/09/25(日) 09:44:25
とりあえず2.xは書いたスクリプトの互換性が無くなる事はやめてほしいな。
つか、1.0以降を名乗るプロジェクトがそれはやっちゃいかんだろ。
907デフォルトの名無しさん:2005/09/25(日) 11:11:50
>>905
リリースに興味がないのはしょうがないけど、
それならせめてリリースエンジニアを指名して、
リリース作業全てを一任するくらいの謙虚さは欲しいね。


>>906
メジャーバージョンアップなら許されるだろう。

マイナーバージョンアップどころかティーニーバージョンアップでも
互換性無くなってる現実とは関係なく。
908デフォルトの名無しさん:2005/09/25(日) 11:52:29
日本ではティーニーというのか
909デフォルトの名無しさん:2005/09/25(日) 11:58:38
突っこまないであげればいいのに…
910デフォルトの名無しさん:2005/09/25(日) 13:48:35
冗談の解説ほど寒いものはないな・・・
911デフォルトの名無しさん:2005/09/25(日) 15:43:41
>>904
セキュリティの何かの修正に、かなり時間が掛かったとか、
IPA での広報を期限にリリースしたとか、どっかに書かれてたと思うが。

どっかに。
912デフォルトの名無しさん:2005/09/25(日) 16:10:54
ttp://tmtm.org/ja/tdiary/?date=20050921#c01

> まつもと (2005-09-23 (金) 15:26)
>
> 脆弱性への対応をしたことがなかったのでパッチだけで良いものか
> わからなかったのがひとつ。実際にはIPAからの報告を受けた後でもう一つ別の
> 脆弱性報告があり、それへの対応に時間がかかったのがひとつですから、
> 「こんなに時間がかかることはなかった」というのは正直(私にとっては)
> 厳しすぎる評価です。
913デフォルトの名無しさん:2005/09/25(日) 16:21:32
Rails使ってる有名サイトってどっかあるの?
914デフォルトの名無しさん:2005/09/25(日) 16:57:23
FEEDBRINGER とか?
915デフォルトの名無しさん:2005/09/25(日) 17:50:13
恥を恐れず聞くが、俺もTEENYは「ティーニー」だと思ってたんだけど、違うの?
916デフォルトの名無しさん:2005/09/25(日) 17:59:19
ttp://dictionary.goo.ne.jp/search.php?MT=teeny&kind=ej
teeny [ti:ni]

ティーニーで別に悪くないと思うけど
917デフォルトの名無しさん:2005/09/25(日) 18:03:27
tinyと勘違い?
918デフォルトの名無しさん:2005/09/25(日) 18:12:55
>>916 >>917
だよね。安心した。サンクス
919デフォルトの名無しさん:2005/09/25(日) 19:09:09
自信ないけど、普通リビジョンとか言わない?っていう話かと思ってた。
ティーニーって今まで聞いたことないよ。
920デフォルトの名無しさん:2005/09/25(日) 19:14:40
winだとmajor, minor, release, buildだね。自分もティーニーははつみみです

しかしみんなmatz氏への物言いがきっついなー
素直に乙といってあげたい
まだ落としてないけどww
921デフォルトの名無しさん:2005/09/25(日) 19:42:48
見聞が狭いだけだろ。試しに「major minor teeny」で検索してみな。

>>920
違う筋のものをごちゃまぜにしているような。
releaseは知らないが、buildは関係ないだろ。
922デフォルトの名無しさん:2005/09/25(日) 20:09:39
>>921
"major minor teeny"で検索したら
Ruby関連の記事がたくさん引っかかるんだけど。
923デフォルトの名無しさん:2005/09/25(日) 20:37:07
だから何?
924デフォルトの名無しさん:2005/09/25(日) 20:38:21
お前はもう消えていいよって事
925デフォルトの名無しさん:2005/09/25(日) 20:44:25
また変な虫が涌いてきた
926デフォルトの名無しさん:2005/09/25(日) 20:58:19
ruby を検索対象から外す方法も知らんのかね。
927デフォルトの名無しさん:2005/09/25(日) 21:00:26
tiny --> teeny なのに…
928デフォルトの名無しさん:2005/09/25(日) 21:01:34
rubyばっかり上位に来るほど流行ってないって事だろ
929デフォルトの名無しさん:2005/09/25(日) 21:37:14
自分の無知を正当化するために見たいものしか見ようとしない人には言っても無駄。
930デフォルトの名無しさん:2005/09/25(日) 21:50:25
お、良い言葉だな。
機会があったらコピペしよう。
931デフォルトの名無しさん:2005/09/26(月) 04:13:48
おさまりましたかね。

ruby-mode.elなんすけど、M-;で桁位置揃えるのがなんか右揃えなんすけど、
これ、どうにかなんないすかね。つらつらelを眺めたけどいまいちなんとも…。

特定の桁位置で左揃え(#が縦にずらっと並ぶ)ようになって欲しいんです。
932929:2005/09/26(月) 12:06:09
ちなみに>>929の「〜としない人」は>>928みたいな人のことだよん
933デフォルトの名無しさん:2005/09/26(月) 12:08:16
どうでもいいから
934デフォルトの名無しさん:2005/09/26(月) 16:18:15
>>912
おい、発表されてない脆弱性があったってことか?心配でRubyつかえねーじゃんかよ
935デフォルトの名無しさん:2005/09/27(火) 00:13:09
再就職早々
http://pc8.2ch.net/test/read.cgi/tech/1111363360/342-343
のような状況に行き当たってしまったらどうすればよいでしょう。

期間は1人月。(現在順調に進捗遅延中。)・・・_| ̄|○
936デフォルトの名無しさん:2005/09/27(火) 00:26:19
Security Advisoryも高橋メソッドで発表してくれないかな。
937デフォルトの名無しさん:2005/09/27(火) 00:51:24
>>935
同情しといてやったぜ。感謝しなw
938デフォルトの名無しさん:2005/09/27(火) 01:06:28
ありがとう。>>937
残業してあがいて見たけど頭の頭痛が痛くなってきたのでそろそろ帰るよw
939デフォルトの名無しさん:2005/09/27(火) 01:35:29
Rubyのまともな開発環境が欲しい。
emacsでやってる人いる?
940デフォルトの名無しさん:2005/09/27(火) 01:49:13
vim オンリー
941デフォルトの名無しさん:2005/09/27(火) 08:37:34
>>939
オレオレ
942デフォルトの名無しさん:2005/09/27(火) 08:39:10
>>931
> 特定の桁位置で左揃え(#が縦にずらっと並ぶ)ようになって欲しいんです。
デフォルトでなるけど。
右揃えにするほうが難しいよ。
つーか、右端がどこに揃えられるんだ?
943デフォルトの名無しさん:2005/09/27(火) 09:01:21
今回の件で、Rubyは、実装に脆弱性があるばかりではなく、
開発者にも脆弱性があることが分かりました。
944デフォルトの名無しさん:2005/09/27(火) 09:08:00
世界中の人間から邪心を取り除けば脆弱性など問題になりません。
さあキリスト様に祈るのです。
945デフォルトの名無しさん:2005/09/27(火) 09:28:12
ガンダムもそういう展開だったな
946デフォルトの名無しさん:2005/09/27(火) 10:50:33
>つーか、右端がどこに揃えられるんだ?

因果地平。
947デフォルトの名無しさん:2005/09/27(火) 11:08:50
そろそろ産まれる?
948デフォルトの名無しさん:2005/09/27(火) 11:46:05
949デフォルトの名無しさん:2005/09/27(火) 14:35:03
今後の展開でフレームになるかもしれないが、(いい意味での)議論の種だと思う。
950デフォルトの名無しさん:2005/09/27(火) 15:01:21
coreではとっくにフレーム化
951デフォルトの名無しさん:2005/09/27(火) 15:02:43
そんなことより.msiをサポートしてくれ
952デフォルトの名無しさん:2005/09/27(火) 15:50:22
MSIってWiX使えば作れるんだっけ?
953デフォルトの名無しさん:2005/09/27(火) 15:56:15
次スレは誰が建てるの?>>950
954デフォルトの名無しさん:2005/09/27(火) 16:00:58
書いていないなら言い出しっぺじゃん?
955デフォルトの名無しさん:2005/09/27(火) 16:06:32
980くらいでいいんじゃね?
956デフォルトの名無しさん:2005/09/27(火) 18:36:59
そんなことより「頭の頭痛が痛くなってきた」
957デフォルトの名無しさん:2005/09/27(火) 19:01:12
うむ、半端だったな。
「頭の頭部の頭痛が痛みで痛くなってきた。」
くらいにはしておくべきだったか。
958デフォルトの名無しさん:2005/09/27(火) 19:39:43
産まれてたのね〜おめ。
959 :2005/09/27(火) 20:35:50 0
>>956
「どうしてセリエの人気が低下したのはなぜ?」みたいなものか。
960980:2005/09/27(火) 20:44:29 0
>>955
了解。俺が立てとくよ。まかせとけ。

↓テンプレのドラフトをよろしく
961デフォルトの名無しさん:2005/09/27(火) 22:03:22 ID:0
なんでやねん、と思いつつも、テンプレ

オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
: Rubyについて Part 16
http://pc8.2ch.net/test/read.cgi/tech/1116667484/
962デフォルトの名無しさん:2005/09/27(火) 22:04:57 ID:0
= 関連リンク
: ruby-doc
http://www.ruby-doc.org/
: リファレンスマニュアル
http://www.ruby-lang.org/ja/man/
: Ruby hotlinks
http://www.rubyist.net/~kazu/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine
http://jp.rubyist.net/magazine/
: RCRchive
http://www.rcrchive.net/
: RAA - Ruby Application Archive
http://raa.ruby-lang.org/
: RubyForge
http://rubyforge.org/
: Ruby Garden Wiki
http://www.rubygarden.org/ruby
: The RWiki
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=top;navi=top
: Matzにっき
http://www.rubyist.net/~matz/
: Matz 日記(linux.com分室)
http://japan.linux.com/~matz/diary/
963デフォルトの名無しさん:2005/09/27(火) 23:50:32
今更だが、作者とはいえ個人サイト直リンはOKなのか?
964デフォルトの名無しさん:2005/09/28(水) 00:19:18
アンテナにリンク貼ればそれでおkってことかい?
つーかPlanet Rubyがあれば(げほげほ
965デフォルトの名無しさん:2005/09/28(水) 01:11:25
個人サイトとはいえ、時々言語仕様に関する重要な情報がぽろっと書いてあったりするからな。
ま、公人ってことでいいんジャマイカ? どうせここで言及されるんだし。
966デフォルトの名無しさん:2005/09/28(水) 01:14:24
Matz日記に直リンがマズいって理由がわからん。(2ch で直リン禁止と言われるのは、
負荷か感情的な(儀礼的無関心?)理由だろうけど、この場合どっちも問題になるとは
思えないので)

それはともかく
* 分室イラネ(更新されてないし)
* blade が欲しい(URL は ruby-talk.org の方がいい?)
967デフォルトの名無しさん:2005/09/28(水) 02:23:48
>>966
分室はどうせRubyの話題でもないし、確かにいらないね。
こんなもんか?

= 関連リンク
: ruby-doc
http://www.ruby-doc.org/
: リファレンスマニュアル
http://www.ruby-lang.org/ja/man/
: Ruby Hotlinks
http://www.rubyist.net/~kazu/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine
http://jp.rubyist.net/magazine/
: RCRchive
http://www.rcrchive.net/
: RAA - Ruby Application Archive
http://raa.ruby-lang.org/
: RubyForge
http://rubyforge.org/
: blade (ML archive)
http://blade.nagaokaut.ac.jp/ruby/
: Ruby Garden Wiki
http://www.rubygarden.org/ruby
: The RWiki
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=top;navi=top
: Matzにっき
http://www.rubyist.net/~matz/
968デフォルトの名無しさん:2005/09/28(水) 03:20:20
リンク名が説明になってなくて固有名詞のものは、括弧書きで
説明をつけてくれると嬉しい。
Ruby Hotlinks (Ruby関連のページや日記のアンテナ)
Rubyist Magazine (日本人有志によるwebzine)
RCRchive (Rubyの仕様変更提案(RCR)と議論のアーカイブ)
RAA (Rubyで書かれたプログラムやライブラリの登録場所)
RubyForge (Rubyで作るオープンソースプロジェクトをホスティング)
Ruby Garden Wiki (RubyについてのWiki。英語)
RWiki (Rubyで書かれたWiki、Rubyについての話題もあり)
とかでどうだろう。
ruby-doc は何て説明すればいいのかよくわからんので誰か考えて。
969デフォルトの名無しさん:2005/09/28(水) 03:45:48
The RWikiの末尾の「;navi=top」は削ってほしいです。
970デフォルトの名無しさん:2005/09/28(水) 04:08:12
お前ら自分でやれよ!
こんなもんでどうだ。

: ruby-doc (ドキュメント群:英語)
http://www.ruby-doc.org/
: 日本語リファレンスマニュアル
http://www.ruby-lang.org/ja/man/
: Ruby Hotlinks (Ruby関連のページや日記のアンテナ)
http://www.rubyist.net/~kazu/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine (日本Rubyの会有志によるwebzine)
http://jp.rubyist.net/magazine/
: RCRchive (Rubyの仕様変更提案(RCR)と議論のアーカイブ)
http://www.rcrchive.net/
: RAA (Rubyで書かれたプログラムやライブラリの登録場所)
http://raa.ruby-lang.org/
: RubyForge (Rubyで作るオープンソースプロジェクトをホスティング)
http://rubyforge.org/
: blade (Ruby関連MLのアーカイブ)
http://blade.nagaokaut.ac.jp/ruby/
: Ruby Garden Wiki (RubyについてのWiki:英語)
http://www.rubygarden.org/ruby
: The RWiki (Ruby関連の話題が豊富なWiki)
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=top
: Matzにっき
http://www.rubyist.net/~matz/
971デフォルトの名無しさん:2005/09/28(水) 05:30:26
いや、別にここにはパッチ貼っといて次スレ立てる時にマージすればいいだけの話だし。

とは言え>>970乙。
972デフォルトの名無しさん:2005/09/28(水) 07:22:15
Rubyって2ch発(だか関連の強い)のwikiがないんだな
テンプレくらいそこにペロッと貼っておければいいのに
973デフォルトの名無しさん:2005/09/28(水) 07:55:33
いや、2ch発でなくても、こっそりペロっと・・・

関連リンクとしてRubyで書かれたアプリ集って作れん?
974デフォルトの名無しさん:2005/09/28(水) 09:12:32
>>973
RAA
RubyForge
975デフォルトの名無しさん:2005/09/28(水) 11:17:21
そういう有象無象のよせあつめじゃなくて、
有名どころとかこれはおさえとけってのはあってもいいんじゃないか?
976デフォルトの名無しさん:2005/09/28(水) 11:22:34
っ 言いだしっぺの法則
977デフォルトの名無しさん:2005/09/28(水) 11:30:32
んじゃ誰でも思いつく2件から

tDiary
http://www.tdiary.org/
Ruby on Rails
http://www.rubyonrails.com/

あとは他のえろい人よろ
978デフォルトの名無しさん:2005/09/28(水) 13:21:53
>>975
RubyForgeのTop Project DownloadsとかTop RubyGem downloadsに出ているやつを
挙げればいいんじゃまいか?つうわけで

RubyGems
http://docs.rubygems.org/
979デフォルトの名無しさん
Railsがらみでトップ独占っていうのがなんとも