5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Rubyについて Part 35

1 :デフォルトの名無しさん:2009/03/28(土) 07:52:30
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

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

= 前スレ
Rubyについて Part 34
http://pc12.2ch.net/test/read.cgi/tech/1233686068/

過去スレ・関連スレは >>2-

2 :デフォルトの名無しさん:2009/03/28(土) 07:54:15
Ruby 初心者スレッド Part 26
http://pc12.2ch.net/test/read.cgi/tech/1235727504/

【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc11.2ch.net/test/read.cgi/tech/1155031689/

Rubyの宿題教えてください。2限目
http://pc11.2ch.net/test/read.cgi/tech/1200175247/

Ruby>>>>>Java
http://pc11.2ch.net/test/read.cgi/tech/1158807229/

愛国Ruby
http://pc11.2ch.net/test/read.cgi/tech/1233033091/


【↓アンチ系】

Rubyについて(アンチ専用) Part003
http://pc11.2ch.net/test/read.cgi/tech/1207233348/

Rubyは難しすぎ
http://pc11.2ch.net/test/read.cgi/tech/1156496224/

【カルト】Ruby開発者Matz【モルモン】
http://pc11.2ch.net/test/read.cgi/prog/1148712641/

3 :デフォルトの名無しさん:2009/03/28(土) 07:54:58
Rubyリファレンスマニュアル刷新計画
ttp://doc.loveruby.net/
ライブラリ一覧
ttp://doc.loveruby.net/refm/api/
RubyExtensionProgrammingGuide
ttp://i.loveruby.net/w/RubyExtensionProgrammingGuide.html
Ruby Hacking Guide
ttp://i.loveruby.net/ja/rhg/
Symbol < Stringも止める。
ttp://www.rubyist.net/~matz/20061107.html#p03
クラスローカルインスタンス変数
ttp://www.rubyist.net/~matz/20061117.html#p02
クラス変数
ttp://www.rubyist.net/~matz/20070104.html#p03
ローカル変数
ttp://www.rubyist.net/~matz/20070112.html#p04
可視性メモ
ttp://www.rubyist.net/~matz/20070208.html#p04
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/30107
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/30275
YARV without 1.9
ttp://www.rubyist.net/~matz/20070215.html#p01
ttp://www.atdot.net/~ko1/diary/200702.html#d22
ttp://i.loveruby.net/d/20070223.html#p01
JSON
ttp://json.rubyforge.org/
ttp://webos-goodies.jp/archives/51019710.html
ttp://webos-goodies.jp/archives/51071565.html
YAML
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=YAML
ttp://jp.rubyist.net/magazine/?0009-YAML
ttp://www.namikilab.tuat.ac.jp/~sasada/prog/yaml.html

4 :デフォルトの名無しさん:2009/03/28(土) 07:55:49
Ruby/Gtk+
ttp://www.unixuser.org/~haruyama/software/goRua/
ttp://takeposo.sakura.ne.jp/windows/environment/rubygtk.html
ttp://ruby-gnome.sourceforge.net/
ttp://ruby-gnome.sourceforge.net/programming/intro.html
ttp://ruby-gnome2.sourceforge.jp/
ttp://psux1.kek.jp/thitoshi/ruby/gtk/
ttp://www.rubycgi.org/ruby_gtk_book/
ttp://ruby.gfd-dennou.org/products/cygwin/index-j.html
ttp://www.magicianmaster.jp/tdiary/?date=20040912

5 :デフォルトの名無しさん:2009/03/28(土) 07:58:13
Ruby on Rails
http://pc11.2ch.net/test/read.cgi/tech/1191381506/
ttp://jp.rubyist.net/magazine/?0004-RubyOnRails
ttp://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html
ttp://kyotosanga.com/gaku/archives/2006/01/ruby_on_rails_a.html
ttp://blog.hacklife.net/archives/50190377.html
ttp://www.metadata.co.jp/web20/ohba/060718_Rails/
ttp://japan.cnet.com/news/ent/story/0,2000056022,20089986,00.htm
ttp://japan.cnet.com/interview/story/0,2000055954,20094959,00.htm
ttp://journal.mycom.co.jp/articles/2006/07/31/radrails/
ttp://www.atmarkit.co.jp/fjava/column/andoh/andoh29.html
ttp://www.atmarkit.co.jp/fjava/column/andoh/andoh30.html
ttp://www-06.ibm.com/jp/developerworks/linux/050708/j_l-rubyrails.html
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060209/228940/
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060424/236113/

6 :デフォルトの名無しさん:2009/03/28(土) 08:00:36
テンプレここまで、かな。

7 :デフォルトの名無しさん:2009/03/28(土) 10:38:40


8 :デフォルトの名無しさん:2009/03/28(土) 10:41:58
乙ぱい

9 :デフォルトの名無しさん:2009/03/28(土) 11:43:09
前スレの話題の続きだけど…
marcでruby-list,ruby-devのミラーやってくれないかなぁ

10 :デフォルトの名無しさん:2009/03/28(土) 14:57:32
bladeはスレッド表示が深くなりすぎないように工夫してるところがいいんだよ

11 :デフォルトの名無しさん:2009/03/28(土) 21:53:47
今1.9.1覚えようとしてるのですが、文字コードについて分かる方教えてください

参考にしてるテキストは「初めてのRuby」で、
5.5.1で外部エンコーディングについて、
読み書きしようとする外部リソースのエンコーディングであって、
リソースに文字列データを書き込む際には外部エンコーディングに変換されます。
と説明があります。
しかし、実際に異なるエンコーディングで試してみると以下の(2)のように文字化けします。
これは書き方が悪いのでしょうか、それとも仕様でしょうか

#encoding: Shift_JIS
require 'stringio'
p Encoding.default_internal #=> nil
p Encoding.default_external #=> #<Encoding:Windows-31J>
s = gets() # "日本語"を入力
p '1:'+s #=> 1:日本語
p s.encoding #=> #<Encoding:Windows-31J>
e = s.encode('euc-jp')
p '2:'+e #=> 2:(文字化け)
p e.encoding #=> #<Encoding:EUC-JP>
buffer = "".encode('Shift_JIS')
sio = StringIO.new(buffer)
$stdout = sio
puts '3:'+s #=> 3:日本語
puts '4:'+e #=> 4:日本語 (StringIOを経由するとエンコード変換される)
$stdout = STDOUT
puts buffer

OS: Vista
version: ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32]

12 :デフォルトの名無しさん:2009/03/28(土) 22:33:55
>>11
Encoding.default_external は
「外部から File.open などでファイルを読み込むときにとりあえず使われるファイルのエンコーディング」だ
EUC-JP な文字列を SHIFT_JIS に自動変換して表示するご利益はない

13 :デフォルトの名無しさん:2009/03/28(土) 22:46:55
>>12
ありがとう、了解です

では、本の説明にある
「文字列データを書き出すときには外部エンコーディングに変換されます。」
の説明自体が適切でない、のか、執筆時点で仕様がゆれてたか、ということで理解しておきます

14 :デフォルトの名無しさん:2009/03/28(土) 22:54:58
あー、すまん、それバグっていうか 1.9.1 の仕様なんだ
$stdout と $stderr は IO の仲間だが、特別に external_encoding (や、ruby -E)の影響を受けない
画面表示時に自動変換されてしまうと困るから、このへんだけ意図的に仲間外れになってる
Ruby 1.9.2 では違ったことになるかもしれないけどね
すくなくとも 1.9.1 では、画面表示するときは従来のように文字コードを変換しておくれ

これ以外の IO オブジェクト(のようなもの)は Encoding.default_external と同じものが設定される

15 :デフォルトの名無しさん:2009/03/28(土) 23:02:31
ごめん、ちょっと訂正

> すくなくとも 1.9.1 では、画面表示するときは従来のように文字コードを変換しておくれ

$stdout.set_encoding(Encoding.default_external)
$stderr.set_encoding(Encoding.default_external)

とすることで、お望みのことはできる
これが自動で行われないのが 1.9.1
ただ、これはグローバルな変更なので、ほかのライブラリに悪影響を及ぼす可能性はあるので注意
(実際的な悪影響は無いとは思う)

16 :11:2009/03/28(土) 23:34:34
>>14,15
追加の情報ありがとうございます

どうしても自動変換したいというわけでもなくて、
Yuguiさんの本は嘘が少ないと聞いていたので、本の説明と実際の
挙動が違うように見えたのが気持ち悪くて質問しました

で、1.9.1の挙動詳細と標準入出力だけが特別扱いされてることが分かったので、
スッキリしました
ありがとうございました

17 :デフォルトの名無しさん:2009/03/31(火) 21:21:57
Ruby 1.8.6-p368 アゲ

18 :デフォルトの名無しさん:2009/04/01(水) 02:38:01
これって
http://redmine.ruby-lang.org/issues/show/1332
これ?
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45911

19 :デフォルトの名無しさん:2009/04/01(水) 19:10:56
何年か前のエイプリールフールで、
Ruby の資格試験ができると、ウソをついたけど。

Ruby技術者認定試験 公式ガイド (単行本(ソフトカバー))
伊藤忠テクノソリューションズ (著), ITpro (編集), Rubyアソシエーション (監修)
価格: ¥ 2,100
単行本(ソフトカバー): 256ページ
出版社: 日経BP社; A5版 (2009/3/25)
ttp://www.amazon.co.jp/dp/4822234304/

20 :デフォルトの名無しさん:2009/04/02(木) 14:16:00
ttp://www.theregister.co.uk/2009/04/01/twitter_on_scala/
Twitterは「Rubyで手早く作る→高速で繁盛する→Rubyの壁にぶち当たる→じっくり置き換える」の成功例

21 :デフォルトの名無しさん:2009/04/02(木) 19:18:55
>>19
あれ?この間松江でやってたのはなんだったの?

22 :デフォルトの名無しさん:2009/04/03(金) 16:17:01
blade直ったー

23 :デフォルトの名無しさん:2009/04/03(金) 17:32:52
中の人乙であります

24 :デフォルトの名無しさん:2009/04/03(金) 22:31:26
うぉおおおよっしゃああああ復活乙!!

25 :デフォルトの名無しさん:2009/04/05(日) 16:44:06
最新版スナップショットで教祖様がthread.cを書き換えてるのはいいのだが
WIN32でmake通りませんよ?

26 :デフォルトの名無しさん:2009/04/05(日) 19:18:17
ここに書けばフィードバックされると思うなよ

27 :デフォルトの名無しさん:2009/04/05(日) 21:46:23
>>25
ttp://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23136
次のスナップショットでは直ってるはず

28 :デフォルトの名無しさん:2009/04/05(日) 22:20:24
>>26
25程度の件はMLやredmineに書き込む価値はないよ

29 :デフォルトの名無しさん:2009/04/05(日) 23:11:56
別に書いてもいいよ

30 :デフォルトの名無しさん:2009/04/06(月) 09:29:29
MLに比べてredmineは敷居が高い気がするな。

31 :デフォルトの名無しさん:2009/04/06(月) 09:36:11
簡単な報告ならircをお勧めする
開発者も常駐してリアルタイムに見てくれる

32 :デフォルトの名無しさん:2009/04/06(月) 09:51:08
現代においてはIRCというもの自体が異常に敷居が高いと思うんだがどうか

いや、IRCがイッパンに対して気軽だった時代なんてついぞ来なかったが…

33 :デフォルトの名無しさん:2009/04/06(月) 09:57:25
Webページを見るとIRCに繋がるプロキシみたいなのなかったっけ。

そもそもRubyのチャンネルがIRCNetにあるのかどうかが問題だが。

34 :デフォルトの名無しさん:2009/04/06(月) 10:58:43
http://www.lingr.com/room/ruby-no-kai 閑古鳥の繁殖期だが
IRCなら #ruby:*.jp


35 :デフォルトの名無しさん:2009/04/06(月) 11:03:42
>>32
・LimeChatを入れる
・ircnetに繋ぐ
・#ruby:*.jpに入る

他に煩雑な手順ってあったっけ?

36 :デフォルトの名無しさん:2009/04/06(月) 11:25:24
>>30
redmineに登録すればMLにも流れるんだが…って逆か。
MLの方が敷居が低いなら、Subjectの頭に[BUG:1.9]ってつけてruby-devに投げればいいよ。


37 :デフォルトの名無しさん:2009/04/06(月) 11:44:06
ネラーもrubyに期待しているってことで
Rubyist@2chマンセー

38 :デフォルトの名無しさん:2009/04/06(月) 11:57:21
ircは、挨拶は「こん」とか、敬称は「○○さ」とかいまだにそんな感じでしょうか。

39 :デフォルトの名無しさん:2009/04/06(月) 12:33:08
挨拶は「もいん」

40 :デフォルトの名無しさん:2009/04/06(月) 14:17:03
つーか挨拶する暇があったら要件を言え

41 :デフォルトの名無しさん:2009/04/06(月) 14:23:57
yugui!俺だー!!け(ry

42 :デフォルトの名無しさん:2009/04/06(月) 15:58:52
ここが一番敷居が低くてええわ

43 :デフォルトの名無しさん:2009/04/06(月) 19:04:43
>>35
#ruby:*.jp って今もありますか?
ChatZilla で ruby で検索しても見当たらないのですが。

44 :デフォルトの名無しさん:2009/04/06(月) 20:43:35
>>43
IRCNetではチャンネル検索できない(しようとすると切れる)ので注意。
チャンネルは今まさに生きている(つかなぜこれが終了してるなどと思ってるのかがわからんが)ので、
そのまま入っちゃってOKです。


45 :デフォルトの名無しさん:2009/04/06(月) 20:44:54
>>43
あとChatZillaのデフォルトではUTF-8になっててIRCNetでは文字化けするので、ISO-2022-JPに変えてください。

46 :デフォルトの名無しさん:2009/04/07(火) 00:13:44
>>40
ネチケット(死語)にやたらとうるさい古参がいたりとかしない?

47 :デフォルトの名無しさん:2009/04/07(火) 00:15:33
もしそんな人がいても、人がいることに対して喜べばいいと思うんだ

48 :デフォルトの名無しさん:2009/04/07(火) 09:26:21
>>46
態度が悪い奴はどこへ言っても嫌われるが、常識の範囲内であれば文句は言われない。

49 :デフォルトの名無しさん:2009/04/08(水) 01:03:30
ねーよw

50 :デフォルトの名無しさん:2009/04/08(水) 14:30:04
http://pc12.2ch.net/test/read.cgi/tech/1238632943/145
> 式の一部になれないのが文だっけ?

( ) で囲めばなんでも式の一部 (primary) になる。

51 :デフォルトの名無しさん:2009/04/08(水) 14:49:12
ifを式と呼んだほうがよいというのは否定しない。
あくまで「ifを文と呼ぶのが間違い」という主張を否定してる。

厳密に言えば文の返値を利用した時点で全体が文になり
文だった部分は式に成り下がるだろうから
「返値を持つ文」は存在し得ないかもしれない。
ただそれでも概念としては式⊂文。

用語重要なのは同意。文章書く側に「if式と書け」と言うのもわかる。
でも読み手に対して「文は返値を持たない」と言い切ってしまうのはよろしくないかと。
一般論的にも「文」にそこまで明確な定義はないはず・・・ないよね?

52 :デフォルトの名無しさん:2009/04/08(水) 15:01:20
ttp://en.wikipedia.org/wiki/Statement_%28programming%29
このへんは誰かが定義したものを採用して使ってる状態

53 :デフォルトの名無しさん:2009/04/08(水) 15:01:59
alias とかは文(stmt)だけど、nil という値がある。

54 :デフォルトの名無しさん:2009/04/08(水) 15:04:30
Rubyでは文であろうが値がある。

Rubyにおいて、何が文で何が式かという定義は、
parse.y で stmt になってるものが文で、expr になってるものが式、
としか言いようがない。確かRHGの頃と今とでは結構変わってた
気がするけど。

55 :デフォルトの名無しさん:2009/04/08(水) 15:23:35
おまえらこういうことになると盛り上がるよな

56 :デフォルトの名無しさん:2009/04/08(水) 16:57:59
自転車置場の議論ですから。

57 :デフォルトの名無しさん:2009/04/08(水) 16:58:39
それが楽しいんじゃないか

58 :デフォルトの名無しさん:2009/04/10(金) 20:32:01
Rubyオワタ(RoR

Twitter、Ruby on RailsからScalaへ
http://slashdot.jp/developers/09/04/10/0421223.shtml

59 :デフォルトの名無しさん:2009/04/10(金) 20:53:53
>>20


60 :デフォルトの名無しさん:2009/04/10(金) 21:13:26
>>58
Railsを完全駆逐するわけでもないみたいだよ。

61 :デフォルトの名無しさん:2009/04/10(金) 21:34:21
9日遅れで笑いに来たつもりとは笑わせる。


62 :デフォルトの名無しさん:2009/04/10(金) 21:38:34
スラドJも反応速度落ちたなw

63 :デフォルトの名無しさん:2009/04/12(日) 12:11:08
IRCの話があったけど,rubyのチャンネルとかって別にみんないちいち挨拶なんてしてなくない?

64 :デフォルトの名無しさん:2009/04/12(日) 12:15:52
時々このスレでの話題タレコむ香具師いるけどいちいち挨拶しないしな

65 :デフォルトの名無しさん:2009/04/13(月) 13:41:10
http://anchorage.2ch.net/test/read.cgi/liveplus/1239578230/38,52,61,165
Ruby落ちすぎワロタ
PHPならこんなことはありえない

66 :デフォルトの名無しさん:2009/04/13(月) 13:48:12
__send__ を使うか、send を使うか、の件

67 :デフォルトの名無しさん:2009/04/13(月) 14:11:14
>>63
挨拶する暇があれば本題を言え、っていう空気

68 :デフォルトの名無しさん:2009/04/13(月) 14:13:58
もう __self__ を笑えなくなってしまったな。

69 :デフォルトの名無しさん:2009/04/13(月) 14:16:29
>>68
いや全然
というかあのプギャーの本質わかってなかったのか?

70 :デフォルトの名無しさん:2009/04/13(月) 14:20:21
初心者スレの続きならもうちょっと前置きなり誘導なりしろよ

71 :デフォルトの名無しさん:2009/04/13(月) 20:09:13
>>65
1.8.5でSEGVは出したことないな
何をやってそうなったのか見てみたいけどソースないの?

72 :デフォルトの名無しさん:2009/04/15(水) 08:57:24
助けて本スレ
ttp://pc12.2ch.net/test/read.cgi/tech/1238632943/421-


73 :デフォルトの名無しさん:2009/04/16(木) 08:27:43
ruby-1.8.7-p160 アゲ

74 :デフォルトの名無しさん:2009/04/16(木) 15:12:59
Rubyのリファレンスってさ、どうなってんの?
公式サイトのは3年以上放置されてるし、
新しい奴もRDのままでしかもファイル多杉、chmとかいらないし、
普通のHTML形式も無いのかよ

あと新しい奴のテーブル状のレイアウト正直見にくい
長いメソッド定義折り返されてごちゃごちゃになる

ダメダメだろ

75 :デフォルトの名無しさん:2009/04/16(木) 15:31:24
今更なにを・・・

76 :デフォルトの名無しさん:2009/04/16(木) 15:44:37
春休みに書いてくれれば暇な人が出たかも
出ないかも

というかナニがダメでナニがネックになってるのかの調査すらないからな
「俺ら」は使わないからかなりひどい状態だ

77 :デフォルトの名無しさん:2009/04/16(木) 17:19:37
メソッド一覧が無いから使い難いんだよな

すぐ Programming Ruby の方しか見なくなった

78 :デフォルトの名無しさん:2009/04/16(木) 18:10:13
>>74
> 普通のHTML形式も無いのかよ

ttp://doc.loveruby.net/refm/api/view/index これは?

79 :デフォルトの名無しさん:2009/04/16(木) 18:12:32
>>78
ローカルに落としてPDAで見たかったんだ

wgetで落としたらすげえ時間がかかった…

80 :デフォルトの名無しさん:2009/04/16(木) 18:15:13
金出すからもう本でいいよ

81 :デフォルトの名無しさん:2009/04/16(木) 18:52:18
> 普通のHTML形式も無いのかよ
BitClustのToDoに入ってるんだよな。

82 :デフォルトの名無しさん:2009/04/16(木) 19:31:59
ゆきひろ氏が、アジアの才能あふれる若者「Next Generation Asia」として表彰された。
http://www.itmedia.co.jp/news/articles/0904/16/news055.html

83 :デフォルトの名無しさん:2009/04/16(木) 20:54:04
英語版の使いやすさはガチ

Ruby Core Reference
http://www.ruby-doc.org/core/

Ruby Standard Library Documentation
http://www.ruby-doc.org/stdlib/

84 :デフォルトの名無しさん:2009/04/16(木) 21:06:57
これたまに使うのだが、
「Classes」をクリックしても「Methods」が変わらないよな

85 :デフォルトの名無しさん:2009/04/16(木) 21:24:30
Methods は全クラスのメソッド一覧だからだろ
クラスのメソッド一覧は Classes からクラスを選択したときに
当のクラスのページ頭にある

86 :デフォルトの名無しさん:2009/04/16(木) 21:28:46
あ〜、あれか、真ん中の Classes をクリックすると右上の Methods が更新されて
クリックしたクラスの持つメソッドが一覧になるとかか

んな洒落た機能はねえ

87 :デフォルトの名無しさん:2009/04/16(木) 21:36:50
あった方が便利なんだが。

と思ったら、こっち(ttp://www.ruby-doc.org/stdlib/)は
左メニューでボールドになってるやつが
素敵にメソッドが絞り込まれるな。

ソースが見られるのは秀逸。

88 :デフォルトの名無しさん:2009/04/16(木) 22:00:02
>84
俺もそれに激しく違和感を感じる。
普通、あのレイアウトになってりゃ、Smalltalkのそれと同じようになっていると
期待するもんだろ?

89 :デフォルトの名無しさん:2009/04/16(木) 22:10:11
どっちにしてもあの3ペイン+1のRDoc形式は時代遅れ

90 :デフォルトの名無しさん:2009/04/16(木) 22:21:24
そうそう
時代は Darkfish-RDoc
ttp://rdoc.rubyforge.org/RDoc/Generator/Darkfish.html

小奇麗なCSSとJavaScriptで読む気にさせてくれてソース表示とクリックしたメソッドを強調表示し
ドキュメントを書いてないメソッドに至っては赤枠で目立たせて ( N o t D o c u m e n t e d ) と煽ってくれる親切機能つき

rdoc の実行ファイルのバージョンが古いと rdoc -f darkfish hoge.rb したときに
uninitialized constant RDoc::Error (NameError) で落ちることがあるので
その場合は 2.x の rdoc (/usr/bin/rdoc とかにあるはず)を明示的に使ってくれ

91 :デフォルトの名無しさん:2009/04/16(木) 22:31:14
Darkfishは確かに綺麗だが、以前の3ペインの方が利便性は上だし
全メソッドの一覧がないのが致命的だから使う気になれん

92 :デフォルトの名無しさん:2009/04/16(木) 22:34:42
hannaはどうか?


93 :デフォルトの名無しさん:2009/04/16(木) 22:36:56
rspecのrdocがhannaでフォーマットしてるな。
http://wiki.github.com/mislav/hanna
http://gitrdoc.com/mislav/will_paginate/tree/master

94 :デフォルトの名無しさん:2009/04/17(金) 10:42:25
http://www.ruby-doc.org/stdlib/status.html
lib/finalize.rb なんてまだドキュメント化しようとしてるのかよ。
あることすら忘れてた。

95 :デフォルトの名無しさん:2009/04/17(金) 19:34:02
>>92-93
これいいな
綺麗だし探しやすいし、RDoc標準とほぼ同じ感覚で使える

96 :デフォルトの名無しさん:2009/04/17(金) 21:27:46
YARVって何だったんだろうね。

97 :デフォルトの名無しさん:2009/04/17(金) 21:46:32
>>96
その心は


98 :96:2009/04/18(土) 01:11:17
YARV結局捨てられたじゃん

99 :デフォルトの名無しさん:2009/04/18(土) 01:12:19
>>98
え。
そうなの?
よければkwsk

実は俺、ささださんファンだったんだ・・・

100 :デフォルトの名無しさん:2009/04/18(土) 01:13:19
YARVはrubyになりました

101 :デフォルトの名無しさん:2009/04/18(土) 01:19:12
捨てられたって、おれのサーバーでいきいき動いてるんだが

102 :デフォルトの名無しさん:2009/04/18(土) 01:23:56
YARVはRuby本体に取り込まれて、Yet AnotherではないThe VMになりましたが。


103 :デフォルトの名無しさん:2009/04/18(土) 01:27:56
それなら捨てられてないじゃん
それならいいんだが(?)、>>98はガセでおk?

104 :デフォルトの名無しさん:2009/04/18(土) 01:38:10
ChangeLogより

Mon Jan 1 00:00:00 2007 Koichi Sasada <ko1@atdot.net>

* Merge YARV

当時は、狙ってコミットしやがったなとツッコミまくりだった。


105 :デフォルトの名無しさん:2009/04/18(土) 09:26:24
もしかしてJavaみたいに、.classファイルにコンパイルする方式になるとか、
Pythonみたいに.rbcファイルが作られるとか、そういうのを期待していた?

予定は無くは無いらしいが。

106 :デフォルトの名無しさん:2009/04/18(土) 10:01:49
jrubyつかえ

107 :デフォルトの名無しさん:2009/04/18(土) 11:09:42
プリコンパイルは、CGIアプリケーションだと真剣に欲しくなるな
あとはごく小さなツールとかの起動が早くなるのも期待できる

108 :デフォルトの名無しさん:2009/04/18(土) 11:22:27
Pythonで書かれたMercurialは、バイトコンパイルしてないと、
遅くて使い物にならない。

109 :デフォルトの名無しさん:2009/04/18(土) 12:15:40
>>107
Rubyスクリプトは(まあ、最近はRubyに限らないんだけど)大量のライブラリファイルを読み込んでるのがちょっとイヤ
インストール時にライブラリ1ファイルとかにまとめてくれればいいのに
まとめたファイルは require 'hoge' で、個々のファイルだけでいいときには require 'hoge/foo' とかさー

110 :デフォルトの名無しさん:2009/04/18(土) 12:33:25
LLもう飽きた。
やみくもに柔軟性追うんじゃなく即時実行もできるけど基本コンパイルを前提にして
記述性と動作速度を両立しつつも後者寄りな言語がそろそろ出てきて欲しい。
IDEとの親和性がよくないことのデメリットももっと強調されるべき。
初プログラミングがEclipse/Visutal Studio/Xcodeでemacs/vimどっぷりじゃない若い人に期待。

111 :デフォルトの名無しさん:2009/04/18(土) 12:42:39
それをMSが作ろうとしてるんじゃないの?

112 :デフォルトの名無しさん:2009/04/18(土) 12:46:34
Scalaがその辺を狙ってる感じはする
あとは、オプショナルな型指定で動作速度を補強するというと、
まあCommon Lispとか?

113 :デフォルトの名無しさん:2009/04/18(土) 12:56:01
Emacsで文字列としての単純な略語展開を使ってるのは速いからに過ぎない
IDEの文脈補完がEmacs並に速ければ世界はまた違うと思う

PCの処理速度に関係なく一定に遅いとかなんなの

114 :デフォルトの名無しさん:2009/04/18(土) 13:00:55
>>113
CPU1個の人はプログラミング禁止とかになんねーかなーと思うことはある
開発したい人はCPU2個以上必須
CPU1個のマシンは実行専用機

なんかもう富豪的に超スゴイんだけど並のマシンでは全く動きゃしねえというプログラミング環境が欲しい
PCゲームだって推奨PCがあるんだし、プログラミング推奨PCとかあってもよくね

115 :デフォルトの名無しさん:2009/04/18(土) 13:16:49
デュアルディスプレイが欲しいと思う
デュアルじゃなくてもいいけど、とにかく「2画面分」欲しい
Alt+Tabとかで画面切り替えるとかもうありえん

116 :デフォルトの名無しさん:2009/04/18(土) 13:20:01
デュアルディスプレイは勝手に買えばいいじゃんw
Rubyとはもはや関係ないし

117 :デフォルトの名無しさん:2009/04/18(土) 13:41:35
>>109
無駄なもの読み込むか、それを嫌って結局一つずつ読み込むことになりそうだけど

>>114
昔のgemみたいに低スペックマシンでまともに動かないものができあがるぞw


118 :デフォルトの名無しさん:2009/04/18(土) 13:51:50
>>110
俺も静的型付が好み。
Booにちょっと期待。

119 :デフォルトの名無しさん:2009/04/18(土) 14:34:21
高度に補完の効くIDEが好きな若者がハッカーになるわけないだろ


120 :デフォルトの名無しさん:2009/04/18(土) 14:38:03
もう時代は変わったのだよ

http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/03/02.html
林氏:Cyanを着想したのは高校1年の春です。本当は高校1年のときにU-20 プロコンに応募しようと思ったのですが、
完成が間に合いませんでした。Cyanの開発言語はC#ですが、高校1年の夏休みの間はJavaで書いていました。

121 :デフォルトの名無しさん:2009/04/18(土) 14:44:52
>>117
コンピュータ界で3番目に遅いと称されるファイル読み書きの回数が減ることはいいことだと思う
ちなみに2番目が画面出力で、1番遅いのが人間の入力

122 :デフォルトの名無しさん:2009/04/18(土) 14:53:24
>>110
最後の行が「GUIじゃないと死んじゃう若い人に期待」とも読める件

123 :デフォルトの名無しさん:2009/04/18(土) 14:55:29
実際問題としてGUIメインとCUIメインは両の車輪だろ
これが混ざったら世界がマジで変わるパラダイムシフトだ

124 :デフォルトの名無しさん:2009/04/18(土) 16:46:13
JavaなんてWindowsで開発して、Webブラウザからwarファイルを登録するだけだからな。
昨今はどこもかしこも開発端末と実行端末が別々でも問題ない状態にあると思う。

125 :デフォルトの名無しさん:2009/04/18(土) 16:54:35
>>118
俺はF#かな
Rubyでちょっと大きめのツール書いたとき動的の限界を感じた

遅いところを見つけては拡張ライブラリ化…を繰り返してると
不毛な気分になってくる
>>110の飽きた、という気持ちもなんとなく分かる


126 :デフォルトの名無しさん:2009/04/18(土) 17:33:54
http://redmine.ruby-lang.org/issues/show/1163
http://redmine.ruby-lang.org/issues/show/1350
#1163のパッチ当ててほしいな。

activesupport-2.3.2のvendor.rbで
gem 'memcache-client', '>= 1.6.5'
とか書いてあるところが軒並アウト。


127 :デフォルトの名無しさん:2009/04/18(土) 18:21:45
なんでもかんでもRubyでやってしまう状態の人は稀に見る
お前は何のためにRubyを学んだのかと小一時間

128 :デフォルトの名無しさん:2009/04/18(土) 19:08:06
>>126
memcache-client以外は ~> だからとりあえずセーフだな。



129 :デフォルトの名無しさん:2009/04/18(土) 19:11:40
>>99
ファンだったってなんで過去形なの?

130 :デフォルトの名無しさん:2009/04/18(土) 19:23:36
>>129
日本語勉強中?
「そうだったのか!それは知らなかった」
この「だった」と同じ用法だけど、ニュアンス分かる?

131 :デフォルトの名無しさん:2009/04/18(土) 19:26:30
どうでも良い

132 :デフォルトの名無しさん:2009/04/18(土) 19:29:38
>>129ではないが文法的に明確な説明をたのむ

133 :デフォルトの名無しさん:2009/04/18(土) 20:00:02
>>132
「た」は過去・完了・確認・存続の4つに分けられることになっているらしい。
「Ruby 1.9.1って安定版だったよね?」
これは確認の助動詞としての「った」だ。

134 :デフォルトの名無しさん:2009/04/18(土) 20:42:36
なんでどこの初心者スレもバカが暴れるんだ?

135 :デフォルトの名無しさん:2009/04/18(土) 20:49:12
>>134
そう思うのはあなたが年をとって忘れっぽくなって昔を思い出せないだけ

136 :デフォルトの名無しさん:2009/04/18(土) 21:10:25
どうでも良い

137 :デフォルトの名無しさん:2009/04/18(土) 21:19:23
イテレーターを習得した!

138 :デフォルトの名無しさん:2009/04/18(土) 21:47:30
補助呪文
効果:ほかの呪文を連続でかけられるようになる

139 :デフォルトの名無しさん:2009/04/19(日) 15:05:34
>>126
r23208 でなかださんが当ててくれたっぽ。



140 :デフォルトの名無しさん:2009/04/21(火) 13:51:42
ruby1.9になってからhelpがつかえなくなっています。

mona@2ch:~$ irb
irb(main):001:0> help "String"
NameError: undefined method `execute' for module `IRB::ExtendCommand::Help'
from (eval):4:in `instance_method'
from (eval):4:in `irb_help'
from (irb):1
from /home/mona/app/bin/irb:12:in `<main>'
irb(main):002:0>


141 :デフォルトの名無しさん:2009/04/21(火) 13:58:22
むしろ help というのを今知った

irb> help "String"
TypeError: invalid subclass
    from /usr/lib/ruby/1.8/yaml.rb:133:in `transfer'
    from /usr/lib/ruby/1.8/yaml.rb:133:in `node_import'
    from /usr/lib/ruby/1.8/yaml.rb:133:in `load'
    from /usr/lib/ruby/1.8/yaml.rb:133:in `load'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:72:in `deserialize'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_reader.rb:54:in `get_class'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_reader.rb:54:in `open'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_reader.rb:54:in `get_class'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_reader.rb:52:in `each'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_reader.rb:52:in `get_class'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_driver.rb:68:in `report_class_stuff'
    from /usr/lib/ruby/1.8/rdoc/ri/ri_driver.rb:104:in `get_info_for'
    from (eval):3:in `irb_help'
    from (eval):9:in `send'
    from (eval):9:in `help'
    from (irb):1
    from :0irb>

ぬう


142 :デフォルトの名無しさん:2009/04/24(金) 17:23:58
help String

143 :デフォルトの名無しさん:2009/04/24(金) 17:55:48
メールはよく読めこのやろう

144 :デフォルトの名無しさん:2009/04/24(金) 18:18:07
それってもしかして ruby-list の鋭敏な人の話?w

145 :デフォルトの名無しさん:2009/04/25(土) 10:50:38
櫟本で「いちのもと」って読むのか。
「くぬぎ」かと思った。

146 :デフォルトの名無しさん:2009/04/28(火) 21:03:53
Rack 1.0 リリース記念 sage

147 :デフォルトの名無しさん:2009/04/28(火) 21:18:41
今ごろ「鋭敏な人」の意味を理解した俺。


148 :デフォルトの名無しさん:2009/04/29(水) 10:40:01
いまだに理解できてないおれに説明を。

149 :デフォルトの名無しさん:2009/04/29(水) 11:13:28
しゃーぷ。
あとは最近のruby-listのアーカイブを参照。


150 :デフォルトの名無しさん:2009/04/30(木) 22:18:00
『Rubyによるデザインパターン』立ち読みしてきた

ターゲットは脱初心者〜中級者ぐらいまでだろうと思われる
デザインパターンの概略・Rubyの基礎から始まり、GoFの一部をRuby流に解説、
その後Ruby特有のパターンについて

さすがピアソンだけあって悪くない
読んだ限りでは良解説で、変なことは書いてなかったと思う
ただ、もしかしたら上級者の方は物足りないと感じるかもしれない

151 :デフォルトの名無しさん:2009/04/30(木) 22:30:13
ピア村は昔いい本出してたけど、最近は縮小傾向だったな
久しぶりに買ってみようかな
Amazonで見る限り、純粋なRubyのGoF本ってわけじゃないのだろうか

152 :デフォルトの名無しさん:2009/05/01(金) 13:57:18
表紙とか紙の質とかが残念だけど良書だと思う。

153 :デフォルトの名無しさん:2009/05/01(金) 16:45:17
>>152
どういまいちなの?

154 :デフォルトの名無しさん:2009/05/01(金) 16:50:37
>>151
Rubyで純粋なGoFって無駄多すぎじゃない?

155 :デフォルトの名無しさん:2009/05/01(金) 17:03:19
Ruby自体が旧来言語から見たデザインパターンの塊だからな

156 :デフォルトの名無しさん:2009/05/01(金) 17:13:20
>>154
そうなんだけど、
「GoFにそってコーディングするとこうなるけど、
Rubyの機能(Singletonとかイテレーターとか)を使うとこうなります」
みたいな感じのもいいかなと思って。

Rubyのよさもわかるし、コーティングするのはRubyだけとは限らないし。
まあGoFをやりたかったら、Javaの本でも読めと言われればそうなんだが。

157 :デフォルトの名無しさん:2009/05/01(金) 17:38:40
そこで The Design Patterns Smalltalk Companion ですよ。
余力があれば、Ruby 向けに書き直すのもよし。

158 :デフォルトの名無しさん:2009/05/09(土) 18:03:41
Rail3がどーたらこーたら
http://www.computerworld.jp/topics/osst/144809-2.html

159 :デフォルトの名無しさん:2009/05/10(日) 08:55:54
いつのまにか、るりまのクラスリファレンスの表示形式が変わって見やすくなってるな
(旧リファレンスのような一括表示になってる)
るりまチームの人お疲れ様です

160 :デフォルトの名無しさん:2009/05/12(火) 13:04:17
if (a = foo) != nil

end



if a <- foo

end

って書ける様にしてくれ。
イコールで代入とか全国の数学者が混乱するだろ。

161 :デフォルトの名無しさん:2009/05/12(火) 13:08:13
は?

162 :デフォルトの名無しさん:2009/05/12(火) 13:32:32
それより//演算子だろ

163 :デフォルトの名無しさん:2009/05/12(火) 14:24:35
>>160
そういう文法の言語をお前が作れ

164 :デフォルトの名無しさん:2009/05/12(火) 14:34:23
>>160はどこかからの受け売りと予想

165 :デフォルトの名無しさん:2009/05/12(火) 14:50:09
>>160
その記法、俺には foo が a を参照している、という状態を表しているように見え、
代入という操作を表現しているようには見えない。

166 :デフォルトの名無しさん:2009/05/12(火) 14:53:45
代入は
a := foo
でいいよもう

167 :デフォルトの名無しさん:2009/05/12(火) 15:01:17
>>160
> イコールで代入とか全国の数学者が混乱するだろ。

だとしたら、この世に存在する殆ど全ての言語を作り直す必要が発生するね。
Cもそうだしネ!

ここは寧ろ混乱して困っている数学者氏にご登場願いたいくらいだ。

168 :デフォルトの名無しさん:2009/05/12(火) 15:21:59
数学者は計算機を計算に使わない。

169 :デフォルトの名無しさん:2009/05/12(火) 15:33:17
数学者はRubyを計算機での計算に使わない。

170 :デフォルトの名無しさん:2009/05/12(火) 15:34:36
使うよw
四色定理の証明とか

171 :デフォルトの名無しさん:2009/05/12(火) 15:53:04
数学なんて定義を明確にして積み上げていくシロモノなんだから
数学者は、むしろ適応早いと思うんだが

172 :デフォルトの名無しさん:2009/05/12(火) 16:20:05
> if (a = foo) != nil

なんでこんな無駄なこと書いてるんだ?

173 :デフォルトの名無しさん:2009/05/12(火) 16:33:14
>>172
自分の成功体験で「若し変数 a に foo を代入した結果が nil でないならば」と読み下せるからだろう
なんでわざわざ新しい言語を覚えようと思ったのかが理解不能だ

174 :デフォルトの名無しさん:2009/05/12(火) 17:04:28
>>172
if文ブロック内で、aがそのまま使えるからじゃね

175 :デフォルトの名無しさん:2009/05/12(火) 18:03:11
いや、 if (a = foo) とか unless (a = foo).nil? とかあるじゃん? という話だと思う

176 :デフォルトの名無しさん:2009/05/12(火) 18:28:16
foo が false だったら 真として扱いたいんじゃないか?

177 :デフォルトの名無しさん:2009/05/12(火) 18:31:57
fooがfalseだったら偽だろ

unless (a = foo).nil
は気持ち悪い

178 :デフォルトの名無しさん:2009/05/12(火) 18:33:49
if a == false

if a == nil
を区別したいんだろ

179 :デフォルトの名無しさん:2009/05/12(火) 18:41:31
>>174>>178は同じやつで、最初のレスのやつだったりしてな
どう見ても素人まるだし

!= nil
== nil

Rubyでこんなこと書くやつはそうそういない

180 :デフォルトの名無しさん:2009/05/12(火) 18:42:56
>>174だけど違うよw

181 :デフォルトの名無しさん:2009/05/12(火) 18:43:57
a.nil? はともかく、 !a.nil? は字面がなんか嫌だ

182 :デフォルトの名無しさん:2009/05/12(火) 18:44:33
>>179
RubyなんてPerlとかからの移行が多いんだから、普通に一杯いるだろ

183 :デフォルトの名無しさん:2009/05/12(火) 18:44:45
unlessやnil?を無理やり使ってこそ真のRubystだろうが

184 :デフォルトの名無しさん:2009/05/12(火) 18:51:32
>>172の「なんで」から始ったレスなのに、
レスした奴まで素人扱いかよw

というか、その程度のことで素人認定するお前はRubyしか知らない素人なんじゃねーの?

185 :デフォルトの名無しさん:2009/05/12(火) 19:12:01
こっちのほうが初心者スレになってきた件

186 :デフォルトの名無しさん:2009/05/12(火) 20:20:11
if not obj.nil? then
はまれに使うな

187 :デフォルトの名無しさん:2009/05/12(火) 21:18:11
>>184
ソースは言葉よりはるかに雄弁
あとやたら「w」つけるやつで優秀な奴はまずいない(おれ個人の経験則だが)

188 :デフォルトの名無しさん:2009/05/12(火) 22:17:42
変ながんばり方だなw

189 :デフォルトの名無しさん:2009/05/13(水) 01:54:17
unless obj.nil? != false とか。


190 :デフォルトの名無しさん:2009/05/14(木) 16:35:24
rspecで、fixture をキャッシュさせない方法はないでしょうか

fixtures :product
で product.yml でデータを products テーブルに投入しますが、
*_spec.rb を単発で実行するときはテストが通るけど、
rake test 等でまとめて実行するとき、Aという機能のspecファイルで :product を投入し、
次に Bという機能の specファイルで、:product というシンボル名だけど別のディレクトリにある product.yml を
投入したいのですが、名前が同じだと2回目は読んでくれないようです。

言い方を変えると、describe ごとに fixtures で入れたデータをロールバックしてほしい

spec_helper.rb で
config.use_transactional_fixtures = true
を falseにすると、ロールバックされるようになったが、逆にテストメソッドの中で実行した insert や delete は
コミットされるようになってしまった

191 :デフォルトの名無しさん:2009/05/15(金) 17:00:04
>>190

別のディレクトリにあるproduct.ymlっていうのがよくわからない。
AとBで読み込んでるfixtureは同じじゃないのか?

とりあえずfixtureを読み直してくれないという意味で捕えるけど
データベースエンジンがMySQLのMyISAMだったらロールバックしない。
InnoDBだったらロールバックするよ。

fixtureを読み直したりはしてないんじゃないかね。
ロールバックよりは遅そうだし。

192 :デフォルトの名無しさん:2009/05/15(金) 18:29:38
>>191 レスどうもありがとうございます。
> 別のディレクトリにあるproduct.ymlっていうのがよくわからない。
> AとBで読み込んでるfixtureは同じじゃないのか?

たとえば Rails で二つコントローラがあって、
 RAILS_ROOT/app/controllers/foo_controller.rb
 RAILS_ROOT/app/controllers/bar_controller.rb

それぞれの spec ファイルは以下の通り。
 RAILS_ROOT/spec/controllers/foo_controller_spec.rb
 RAILS_ROOT/spec/controllers/bar_controller_spec.rb

それぞれの spec で異なるテストデータを使いたいので、以下のようにfixtureのymlファイルを配置し、
 RAILS_ROOT/spec/fixtures/controllers/foo/product.yml
 RAILS_ROOT/spec/fixtures/controllers/bar/product.yml

それぞれのスペックファイルの describe の先頭で、以下のようにやっています。
self.fixture_path = RAILS_ROOT + '/spec/fixtures/controllers/foo/'
fixtures :product

193 :192の続き:2009/05/15(金) 18:30:02
> とりあえずfixtureを読み直してくれないという意味で捕えるけど
> データベースエンジンがMySQLのMyISAMだったらロールバックしない。
> InnoDBだったらロールバックするよ。

こちらでも MySQL を使っていて、InnoDBです。
で、テストを動かす前にテーブルの中身を全て truncate した後、テストを動かして、
もう一度テーブルの中身を覗くと、fixture でいれたデータが残っている。
自分のビジネスロジックで insert したり delete したトランザクションはロールバックされるようです。

spec_helper.rb では以下のようにしています。
config.use_transactional_fixtures = true
config.use_instantiated_fixtures = false

私が思うに、fixtures :product のシンボル名でキャッシュするようで、
foo_controller_spec.rb が動いた後、 bar_controller_spec.rb が動くときに、
bar_controller_spec.rb で指定した fixture :product が再読込されないようです。
だから spec コマンドで foo_controller_spec.rb や bar_controller_spec.rb を
単発で動かすときはきちんとテストが通るけど、rake spec してテストを全て実行した場合、
bar_controller_spec.rb のテストが失敗する。これを何とかしたい。

lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/fixtures.rb に
reset_cache というクラスメソッドを見つけたが、*_spec.rb の中に
Fixtures.reset_cache と書いてもうまくいかなかった。

みなさんは、rake spec して全部のテストを通すとき、全ての spec ファイルで
整合性がとれるような fixture のテストデータを用意しているのでしょうか?

194 :デフォルトの名無しさん:2009/05/16(土) 12:36:46
controller の spec では mock してる。

195 :デフォルトの名無しさん:2009/05/16(土) 13:06:08
NetBeans新バージョンってRubyサポート周りでなんか改善あった?

196 :デフォルトの名無しさん:2009/05/17(日) 20:48:00
なんだよ、未だにsqlite3-rubyって1.9対応になってねえのかよ
だせえなあ

197 :デフォルトの名無しさん:2009/05/17(日) 22:18:52
そういやみんなはなんでPerlやPythonじゃなくてRuby使ってるの?
漏れはPerl使ってたら、研究室の先生にRubyを猛プッシュされたからなんだけど。
ちょうどPerlになんか嫌気がさしてたころだったし。

198 :デフォルトの名無しさん:2009/05/17(日) 22:56:32
Ruby Rubyしようよって上司に言われまして。
キモかったので渋々使うようになりました。

199 :デフォルトの名無しさん:2009/05/17(日) 23:00:11
むかし(15年くらい前)はPerl使ってた。OOで書けるスクリプト言語は
ないもんかなーと思いはじめた頃にPerl5が登場して、似非OOできるように
なった。少し遅れてPythonを知り習得。selfのウザさとスコープの貧弱さに
面倒を感じはじめた頃にRubyがfjで発表され、飛びついた。


200 :デフォルトの名無しさん:2009/05/17(日) 23:35:43
やっぱり上からプッシュはそこそこあるのかね。
仕事ならまあ仕方ないんだろうけど。

>>199さんはRubyへの飛びつきはええw

201 :デフォルトの名無しさん:2009/05/17(日) 23:46:01
数年前に、RPGツクールに搭載されてたRGSSから飛びついたような記憶がある

202 :デフォルトの名無しさん:2009/05/18(月) 00:27:11
>>199とちょっと似たような感じだが、Pythonは通らなかった。
Perl4->Perl5->Ruby


203 :デフォルトの名無しさん:2009/05/18(月) 19:22:37
RGSS という文字列を見ると○motiを思い出してしまう…。
かなり俺の心に深い傷となって残ったようだ。

204 :デフォルトの名無しさん:2009/05/19(火) 11:17:20
少し前に MoonW○lf の投稿を見て、ああ、と思った

205 :デフォルトの名無しさん:2009/05/19(火) 13:00:33
最近見ないのは鬱期なのかな。お大事に。

206 :デフォルトの名無しさん:2009/05/19(火) 13:11:15
いや普通は「忙しい」が来るもんだと思うんだが
他にすることもあるだろうしRubyコミュニティにかまけてばかりでもなかんべ

207 :デフォルトの名無しさん:2009/05/19(火) 15:34:54
普通じゃないから

208 :デフォルトの名無しさん:2009/05/19(火) 21:30:19
まつもとゆきひろ コードの世界~スーパー・プログラマになる14の掟
http://www.amazon.co.jp/exec/obidos/ASIN/4822234312/

この表紙Matzはどう思ったかなw

209 :デフォルトの名無しさん:2009/05/19(火) 21:33:07
WBSに出演したときは割と普通だった

210 :デフォルトの名無しさん:2009/05/19(火) 21:36:11
World Baseball ...Senior ?

211 :デフォルトの名無しさん:2009/05/19(火) 22:03:07
>>208
http://twitter.com/yukihiro_matz/status/1834174414


212 :デフォルトの名無しさん:2009/05/19(火) 23:12:31
>>208
よく言えば、やり手の経営立て直し屋だな

213 :デフォルトの名無しさん:2009/05/20(水) 00:48:50
Hashのキーをタプルしたいけどできません
なんでですかね?

214 :デフォルトの名無しさん:2009/05/20(水) 00:51:14
>>213

「タプルしたい」とは?
「できない」とは?

タプルという言葉はわかる。


215 :デフォルトの名無しさん:2009/05/20(水) 00:58:19
>>213
h = {'a'=>'aaa', 'b'=>'bbb'}
h.each do |t|
 p t #=> ['a', 'aaa'] ...
end

こういうこと?違うならkwsk

216 :デフォルトの名無しさん:2009/05/20(水) 09:15:19
>>215
それだとキーだけじゃないだろ。
Hash#keysじゃないかとESP。

217 :デフォルトの名無しさん:2009/05/20(水) 15:06:12
デフォルトイテレータ変数いつになったら付くんだよぅ

218 :デフォルトの名無しさん:2009/05/20(水) 16:35:45
なんだそりゃ。
推測で言うと100年経っても付かない方に10**20 ZWD。

…と思ったら今流通してないのか、ZWD。


219 :デフォルトの名無しさん:2009/05/21(木) 09:04:07
要素が多いEnumerableなオブジェクトがあったとして、
最初の1つを除いた残りを配列作らずにイテレーションしたい場合、
どう書いたらいいですか

Lisp の cdr 的な何かというか
drop(1) の Enumerator 版? でも enum_for(:drop, 1) はダメだし、
each_cons(2) {|_, i| ... } とかかなあ

220 :デフォルトの名無しさん:2009/05/21(木) 09:38:55
「最初」があるならそれは普通に配列だと思います

221 :デフォルトの名無しさん:2009/05/21(木) 09:41:21
素直にフラグを立ててもいいと思います

222 :デフォルトの名無しさん:2009/05/21(木) 13:14:54
Rubyにまともな外部イテレータがあればよかったのに

223 :デフォルトの名無しさん:2009/05/21(木) 17:15:00
自分はEnumeratorというかFiberで事足りてるけど
今どこがまともじゃなくて、どうなるとまともになるの?

224 :デフォルトの名無しさん:2009/05/21(木) 18:41:03
そんなことばかり言ってるやつは、
何を提供されてもまともなものなんて一つも作れない

225 :デフォルトの名無しさん:2009/05/21(木) 19:54:42
まあなんだ、
Rubyユーザーがあんまり計算量のこと考えてないのはわかった

>>220
それは違うだろ
Enumerable#first は配列でなくても使えるわけで

しかしEnumerableのメソッドってブロックの有無で
イテレートor配列返す、イテレートorEnumerator返す、ブロック無視して値を返す
とバラバラなんだな…


226 :デフォルトの名無しさん:2009/05/21(木) 20:19:19
Rubyにどういう風に外部イテレータを実装すれば、
どのように計算量的に良いのか説明してもらおうか。

227 :デフォルトの名無しさん:2009/05/21(木) 20:19:22
インデックスが「0」の場合に、
IFで分岐させるなり読み飛ばすなりするのはコストが高いと考えてるのか?

228 :デフォルトの名無しさん:2009/05/21(木) 20:30:15
34329487億回ループするとしたら相当なコストになるな

229 :デフォルトの名無しさん:2009/05/21(木) 20:41:49
>>228
そんだけ回せるのかどうかは置いておいて・・
全部やっちゃって最初の1回を捨てろよw

230 :デフォルトの名無しさん:2009/05/21(木) 21:00:23
Ruby逆引きハンドブック
http://www.amazon.co.jp/gp/product/4863540221/

231 :デフォルトの名無しさん:2009/05/21(木) 21:28:45
うわ、るびきちかよ。パスパス。

232 :デフォルトの名無しさん:2009/05/21(木) 21:34:54
マイコミでいいな

233 :デフォルトの名無しさん:2009/05/21(木) 21:55:24
>>228
試してみたの?この手のコストなんて、
ネットワークやディスクアクセス(特にランダムアクセス)に比べたら無視できる程度だよ。
あと描画もコストが高いね。3Dに比べれば2Dは低いけど、それでも相当。


234 :デフォルトの名無しさん:2009/05/21(木) 21:55:39
***** 1億ループの簡単なプログラム *****

puts begin_time = Time.now

increase = 0

1.upto(100000000) do |index|
#if index == 1 then
# puts 'start'
#else
increase += 1
#end
end

puts "result:#{increase}"

puts end_time = Time.now
puts (end_time - begin_time)


コメントなしはIFあり、コメントありはIF文なしになる



235 :デフォルトの名無しさん:2009/05/21(木) 21:56:01
+++++結果+++++
■IF文あり

2009-05-21 21:39:23 +0900
start
result:99999999
2009-05-21 21:39:31 +0900
8.213671268 ***** ここ *****

2009-05-21 21:39:33 +0900
start
result:99999999
2009-05-21 21:39:41 +0900
8.093124567 ***** ここ *****

2009-05-21 21:39:43 +0900
start
result:99999999
2009-05-21 21:39:51 +0900
7.639575222 ***** ここ *****

2009-05-21 21:39:53 +0900
start
result:99999999
2009-05-21 21:40:01 +0900
7.589390724 ***** ここ *****

2009-05-21 21:40:06 +0900
start
result:99999999
2009-05-21 21:40:13 +0900
7.058708883 ***** ここ *****

236 :デフォルトの名無しさん:2009/05/21(木) 21:56:13
■IF文なし

2009-05-21 21:40:33 +0900
result:100000000
2009-05-21 21:40:40 +0900
7.123794219 ***** ここ *****

2009-05-21 21:40:43 +0900
result:100000000
2009-05-21 21:40:50 +0900
7.459420084 ***** ここ *****

2009-05-21 21:40:53 +0900
result:100000000
2009-05-21 21:40:59 +0900
6.4174587 ***** ここ *****

2009-05-21 21:41:04 +0900
result:100000000
2009-05-21 21:41:11 +0900
6.222126519 ***** ここ *****

2009-05-21 21:41:13 +0900
result:100000000
2009-05-21 21:41:19 +0900
5.950009081 ***** ここ *****


237 :デフォルトの名無しさん:2009/05/21(木) 21:57:06
結論

1億ループでIF文あるなしは、1秒ほど差が出る
(おれ環境では。メモリ1G割り当てのVirtualBoxでCentOS利用。Ruby1.9.1。別件でEclipseも立ち上げてた)


これが許容できなかったらRubyはやめた方がいい。
3000万ループとかコンピュータにとってはそれほど大したことないから。
3000万がものすごいっていうのは日常の感覚だから、感覚を修正した方がいいよ。


238 :デフォルトの名無しさん:2009/05/21(木) 22:02:05
benchmark.rb 使ってやれよw

239 :デフォルトの名無しさん:2009/05/21(木) 22:04:11
>>237
3000万ってどっから出てきたんだ?

240 :デフォルトの名無しさん:2009/05/21(木) 22:09:29
>> 34329487億回ループするとしたら相当なコストになるな

おっと、すまん。「億回」かよ。
「億」にするなら「兆」にしてくれ。

それならRubyを使うことの方がおかしいと思う。

241 :デフォルトの名無しさん:2009/05/21(木) 22:21:43
>>238
今調べた。便利なものを教えてもらった。サンクス

242 :デフォルトの名無しさん:2009/05/21(木) 22:27:55
Rubyを使うのがおかしいつーか億は書きミスだろ
1日で86400秒なのに分散処理したとしてもどんだけかかんのよw

243 :デフォルトの名無しさん:2009/05/21(木) 22:30:44
プログラマならせめてCPUクロックで例えろよ

秒って

244 :デフォルトの名無しさん:2009/05/21(木) 22:32:30
個人的にRubyで作るかどうかを決めるときに100万回以上ループするかを基準にしてる。

245 :デフォルトの名無しさん:2009/05/21(木) 22:36:36
>>240
むしろ、それだけループさせるデータの、最初の特別な一つに
なりうる何かに非常に興味がある。

246 :デフォルトの名無しさん:2009/05/21(木) 22:45:04
コストのことはさておき
enum.inject {|_, x| ... }
というのを思いついた


247 :デフォルトの名無しさん:2009/05/21(木) 23:06:53
cookbook系より使いやすいライブラリリファレンス出してくれ

248 :デフォルトの名無しさん:2009/05/21(木) 23:47:23
>>245
それはCSVファイルでタイトル行とかだろ

249 :デフォルトの名無しさん:2009/05/21(木) 23:51:15
>>245
スクリプト言語って効率気にしたら負けだから、
仮にそうなら open('|sed 1d < hoge') とかしちゃいそうな俺。



250 :デフォルトの名無しさん:2009/05/22(金) 00:01:02
>>248
一レコード10byteとして、30PBのCSVファイルとか
おそらくいままで存在したこと無いと思う
俺の世界が狭いのか

251 :デフォルトの名無しさん:2009/05/22(金) 00:03:29
>>243

RISCとかCISCとかはもう死語か。ボトルネックとかも死語かもな
クロック数だけならPen4系のCeleronでも最新のマシンと遜色ないな

252 :デフォルトの名無しさん:2009/05/22(金) 00:05:49
プログラマなら既にクロックとかFLOPSがもうあまり信用できるもの
じゃないことは皆知ってるはずだが。時間で測るのが一番信頼できる。

253 :デフォルトの名無しさん:2009/05/22(金) 00:17:46
盛り上がってるなw
最初レスしたやつはさくっと「next if 〜」とかやって寝てるんだろうな

254 :デフォルトの名無しさん:2009/05/22(金) 00:25:50
>>219
> でも enum_for(:drop, 1) はダメだし、
ダメってどういう意味で?

255 :デフォルトの名無しさん:2009/05/22(金) 00:32:35
>配列作らずに

256 :デフォルトの名無しさん:2009/05/22(金) 01:48:24
Enumeratorだから配列は作らん。

257 :デフォルトの名無しさん:2009/05/22(金) 01:51:09
結論としてはLisp使っておけば万事解決ってことでいいのかな。

258 :デフォルトの名無しさん:2009/05/22(金) 03:47:52
Rubyって効率より「こんな風に書けると便利」って理由で
メソッドが増えて行ってるような気がしないでもない

>>254
drop(1) がイテレータメソッドじゃないからかと。
実際に (1..10).enum_for(:drop, 1).to_a とかやってみればわかる。

つか、Enumerable にブロックつき slice があればいいんじゃね?

259 :デフォルトの名無しさん:2009/05/22(金) 23:54:10
>>219,234
これでOK?

a = (1..10**8).map

#if index == 1 then
# a.next
#end

increase = 0
puts begin_time = Time.now

begin
while a.next
increase += 1
end
rescue
puts end_time = Time.now
puts (end_time - begin_time)
puts "result:#{increase}"
end

260 :デフォルトの名無しさん:2009/05/23(土) 00:59:56
わざわざmapする理由を書いてくれなきゃOKかどうかわからん。
遅そうだなと思って試したら2分ほどかかるね。こうした意味はなんなの?

261 :デフォルトの名無しさん:2009/05/23(土) 15:34:21
【調査】 あまり気にかけたことのない都道府県ランキング…1位は島根。関東のあの県も5位内に★9
http://tsushima.2ch.net/test/read.cgi/newsplus/1243005492/1

(´・ω・) カワイソス

262 :デフォルトの名無しさん:2009/05/23(土) 15:38:22
>>261
意味不明
Rubyとその島根?っていう県は関係ないだろ
Ruby関係でその島根っていう県のことを聞いた記憶は全くない

263 :デフォルトの名無しさん:2009/05/23(土) 15:42:12
どうでもいいがきちんと確定してくれ
島根? とかいらん
島根だ

264 :デフォルトの名無しさん:2009/05/23(土) 15:43:41
島根県を知らないというのは日本で発言するのは少し恥ずかしいことかと
思いますので、勉強をお勧めいたします。

265 :デフォルトの名無しさん:2009/05/23(土) 15:49:13
>>263-264
島根の自演乙
特に>>264は他人に島根を強制する前に日本語を学べ

266 :デフォルトの名無しさん:2009/05/23(土) 15:53:39
まあ、本スレだしどう遊んでもいいけど…

267 :デフォルトの名無しさん:2009/05/23(土) 16:01:44
そんなことより鳥取しようぜ

268 :デフォルトの名無しさん:2009/05/23(土) 16:04:12
>>265
> 他人に島根を強制
美しい日本語乙w

269 :デフォルトの名無しさん:2009/05/23(土) 17:45:20
47都道府県の位置とおおざっぱな形と県庁所在地くらい、小学校でならうだろ。
覚えてないやつの方が異常。


270 :デフォルトの名無しさん:2009/05/23(土) 17:50:14
習ったこと全部覚えてたら苦労しねーよ・・・orz

271 :デフォルトの名無しさん:2009/05/23(土) 17:52:07
>>262が本当にそうかどうかは置いておいて、それでも大学入って卒業できたりするんだぜ

272 :デフォルトの名無しさん:2009/05/23(土) 17:58:26
教養がないのはまだしも、その自覚もないと恥をかくっていう見本でいいじゃないか

273 :デフォルトの名無しさん:2009/05/23(土) 18:00:14
なるほど、ふいんきを得意満面で訂正するアホはこういう人間か

274 :デフォルトの名無しさん:2009/05/23(土) 18:01:48
そんな俺文化を押しつけられても

275 :デフォルトの名無しさん:2009/05/23(土) 18:23:07
「鳥取って何ですか?」ネタが知識不足の話になってしまうあたりに隔世の感があるな

276 :デフォルトの名無しさん:2009/05/23(土) 18:30:35
>>262,265がそれなの?
えらく高度なネタだと思うが、本当に世代のせいだけか?w

277 :デフォルトの名無しさん:2009/05/23(土) 18:42:04
「鳥取県は存在しない」とかかな
結局あれどうなったんだ

278 :デフォルトの名無しさん:2009/05/23(土) 18:56:08
ネットでの鳥取いじりはもうマジに取られるご時世なのか
うへえおっかねえ

279 :デフォルトの名無しさん:2009/05/23(土) 19:02:17
鳥取≠島根

280 :デフォルトの名無しさん:2009/05/23(土) 19:06:38
たいして変わらんと思う

281 :デフォルトの名無しさん:2009/05/23(土) 19:07:58
もういっそまとめてRuby県にしようぜ
確かどっちかが作者の出身県でどっちかが住んでる県でどっちかが自治体で推進してるんだったはず

282 :デフォルトの名無しさん:2009/05/23(土) 20:30:23

鳥取と島根、荻原と萩原は、どっちで呼んでも、
正しいってことにしました。

283 :デフォルトの名無しさん:2009/05/23(土) 20:57:13
本当に鳥取と島根を混同してた奴がいそうな気配

284 :デフォルトの名無しさん:2009/05/23(土) 21:00:34
一応言っておくが、
出雲大社とか宍道湖とか玉造温泉とか加茂岩倉遺跡とか石見銀山とかある方が島根で、
・・・えーっと、梨とか西瓜とかで有名なのが鳥取だからなw

285 :デフォルトの名無しさん:2009/05/23(土) 21:32:56
砂丘があるのが鳥取、無いのが島根。

286 :デフォルトの名無しさん:2009/05/23(土) 21:50:06
オープンCMSを作ってから偉そうなこと言えよ>鳥取

287 :デフォルトの名無しさん:2009/05/23(土) 21:55:30
20世紀なしと同程度にはメジャーな特産品作ってから
口をきこうな>島根

288 :デフォルトの名無しさん:2009/05/23(土) 21:58:24
ttp://www.do-dle.tv/movie/2006/10/post_27.html
はい、この話題は終わり。

289 :デフォルトの名無しさん:2009/05/24(日) 00:02:30
Android携帯そろそろ出るね
Ruby使って何か面白いことできないかな

290 :デフォルトの名無しさん:2009/05/24(日) 03:59:07
>>259
map じゃなくて each の間違いかな


291 :デフォルトの名無しさん:2009/05/26(火) 00:16:56
http://www.rubyist.net/~matz/20090523.html#p02

292 :デフォルトの名無しさん:2009/05/26(火) 12:09:31
>と思ったら、私、ビジネス分野で成功してないじゃん。書けないじゃん。
ww
Linusみたいな自伝書くしか

293 :デフォルトの名無しさん:2009/05/26(火) 16:08:46
Rack で Errno::ESPIPE の例外が出るバグの FIX まだー
CGI 用途舐めると痛い目見るよシュッシュだよシュッシュ

294 :デフォルトの名無しさん:2009/05/26(火) 16:15:27
rack 使ったフレームワーク(まあ、最近の全部だな)が CGI として動作させられないってバグだっけか
報告あったのずいぶん昔だし 1.0.0 で直ってんじゃねえの

295 :デフォルトの名無しさん:2009/05/26(火) 20:43:30
イテレータで使う局所変数が、外部変数と衝突するというマヌケ極まる仕様が放置されてるのが信じられない。

296 :デフォルトの名無しさん:2009/05/26(火) 20:45:13
1.9でそのへんのスコープ変わらなかったっけ

297 :デフォルトの名無しさん:2009/05/26(火) 20:52:28
変わった

298 :デフォルトの名無しさん:2009/05/26(火) 20:53:58
1.9でがらっと変わって、1.8とは「非互換」になってしまった。
http://www.oreilly.co.jp/community/blog/2009/05/changes-on-ruby-1-9.html

1.9を実用してる人って今、この宇宙のどこかに一人でもいるんだろうか?

299 :デフォルトの名無しさん:2009/05/26(火) 20:57:16
変わったのはブロックのパラメータの仕様であって、>>295が恨んでる仕様は
そのままじゃないか?

300 :デフォルトの名無しさん:2009/05/26(火) 20:58:19
Matzの本は漏れみたいなへたれではたたかえないぜ・・

301 :デフォルトの名無しさん:2009/05/26(火) 20:59:51
なんか変わったらしいね。まだよく理解してないが

302 :デフォルトの名無しさん:2009/05/26(火) 21:02:00
x = 0
100.times{
x = 100
}
p x

これが 100 で

100.times{
x = 100
}
p x

これが NameError (つまり x 未定義)なのがヘボいってことだろうな

303 :デフォルトの名無しさん:2009/05/26(火) 21:11:29
アホか

304 :デフォルトの名無しさん:2009/05/26(火) 21:24:52
なんでそれがヘボいんだ?
NameErrorにならん方が気持ち悪いと思うんだが。
スコープを理解してないだけじゃねえの?


305 :デフォルトの名無しさん:2009/05/26(火) 21:26:55
このどびっくり仕様擁護しちゃうのかw

306 :デフォルトの名無しさん:2009/05/26(火) 21:30:01
スコープが狭いことに文句言う人初めて見た

307 :デフォルトの名無しさん:2009/05/26(火) 21:43:23
自分もいまいち必然性がわからないけど
これは実装上の都合なの?
実装的にはどっちも簡単に出来るけど
仕様はこうあるべきという判断でこの挙動になってるの?

308 :デフォルトの名無しさん:2009/05/26(火) 21:46:05
仕様はこうあるべきでこうなってる。
わからなけりゃCのスコープ勉強しろって。


309 :デフォルトの名無しさん:2009/05/26(火) 21:46:06
>>302
たまにこのNameErrorでハマることはあるし、不満ではあるけど
これって何かいい解決方法あるの?
(まだCとRubyしか触ったことないから、他の言語がどうやってるのかよく知らないんだが)

310 :デフォルトの名無しさん:2009/05/26(火) 21:48:03
Cの仕様に準じているからというのは無理ありすぎ

311 :デフォルトの名無しさん:2009/05/26(火) 21:50:54
>>304=>>306
勘違いしたって素直に言えばいいのに

312 :デフォルトの名無しさん:2009/05/26(火) 21:51:36
>>309
外側の環境にその名前を束縛しておくこと、つまり>>302の前者が一番無難

313 :デフォルトの名無しさん:2009/05/26(火) 21:54:43
・ 前者は0を返し、後者はNameError
・ 前者は100を返し、後者も100を返す

やっぱどっちかで統一されてたほうが見た目わかりやすいよな

314 :デフォルトの名無しさん:2009/05/26(火) 21:58:30
ブロックを実行し終えて、そのためにスタックに積んでたフレームごと
片付けられる、みたいなイメージを後者からは受ける

ので NameError がいい

315 :デフォルトの名無しさん:2009/05/26(火) 22:12:07
ていうか「ブロックの下の層」に対してはブロック内からはリードオンリーにしようぜ
前者が100になるってやっぱりおかしいだろ
素直にメソッド作れって話ではあるんだけどさ

316 :デフォルトの名無しさん:2009/05/26(火) 22:16:56
>>315
ブロック内でブロック外と同名のローカル変数を定義した場合の動作が変ということであって、
そのへんを下手にいじると

h = Hash.new
data.each do |e|
 h[e] = make_value(e)
end

このタイプの処理ができなくなるぞ

317 :デフォルトの名無しさん:2009/05/26(火) 22:19:42
ブロック内で好き勝手にローカル変数を命名出来ないと。

x = 0
100.times{|; x|
 x = 100
}
p x #=> 0

1.9でその辺が直された。

318 :デフォルトの名無しさん:2009/05/26(火) 22:19:43
ブロック内外で変数名が被ったときの動作が気になるよ問題は
Rubyが有名になり始めたころに海外で議論されてたような気がする

319 :デフォルトの名無しさん:2009/05/26(火) 22:20:54
外の変数を読み書きできるってのはクロージャとしては普通な挙動だと思う


320 :デフォルトの名無しさん:2009/05/26(火) 22:21:57
>>319
ブロックがサブルーチンのように使われてることもあるってことじゃね

321 :デフォルトの名無しさん:2009/05/26(火) 22:27:49
どっかで読んでからずっと気になってたんだけど
>>298
> グローバル変数を置こうとするともうダメ。
> これまではオブジェクトの属性に代入できたり、配列のスライスを呼び出せたのも、できなくなりました。
こういうのをブロックパラメータでどうにかするって具体的にどんな処理?

322 :デフォルトの名無しさん:2009/05/26(火) 22:42:30
PowerShell

1..10 | %{ $a += $_ }
$a

55

やっぱこれが直感的かつ自然だな

323 :デフォルトの名無しさん:2009/05/26(火) 23:45:46
ブロックローカルなスコープは無しにして、外で定義しようが中で定義しようが
一緒くたに扱ってしまうのが、統一感もあって一番いいんじゃないだろうか

つまり>>313でいう
>・ 前者は100を返し、後者も100を返す
の動作

ブロックローカルなスコープがないと困る場合って、どんな場合があるだろう

324 :デフォルトの名無しさん:2009/05/26(火) 23:51:02
ブロックローカルな変数が使いたいとき

325 :デフォルトの名無しさん:2009/05/27(水) 00:04:11
逆になんでブロックローカルの概念を忌み嫌うんだかわからない。
普段どんなコード書いてるんだ?と勘ぐってしまう。


326 :デフォルトの名無しさん:2009/05/27(水) 00:11:30
ブロックローカルが無いと、ブロックをマルチスレッドで
並列に動かそうとすると悲惨なことになりそうだ

327 :デフォルトの名無しさん:2009/05/27(水) 00:36:53
>>321
こんなの
require 'optparse'
require 'ostruct'
opt = OptionParser.new
opt.on('-v') {|$verbose| }
o = OpenStruct.new
opt.on('-f') {|o.force| }

328 :デフォルトの名無しさん:2009/05/27(水) 01:28:57
キモーイ

329 :デフォルトの名無しさん:2009/05/27(水) 04:58:24
>>327
吐いた

330 :デフォルトの名無しさん:2009/05/27(水) 05:08:23
初期のごちゃ鍋Rubyっぽい

331 :デフォルトの名無しさん:2009/05/27(水) 05:52:57
>>294
$ cat public_html/cgi-bin/test.cgi
#!/usr/local/bin/ruby -Ku
# -*- mode: ruby; coding: utf-8 -*-
require 'rubygems'
require 'sinatra'

Rack::Handler.register 'Webrick', 'Rack::Handler::WEBrick' # damn

set(:run => false, :environment => :cgi)

get '' do
"hello!"
end

Rack::Handler::CGI.run Sinatra::Application

$ w3m http://localhost/~my/cgi-bin/test.cgi
$ sudo tail -n 2 /var/log/apache2/error.log
Errno::ESPIPE - Illegal seek:
/home/my/public_html/cgi-bin/test.cgi:14127.0.0.1 - - [27/May/2009 05:47:25] "GET HTTP/1.0" 500 30 0.0072


332 :デフォルトの名無しさん:2009/05/27(水) 06:43:25
>>324
ブロックローカルな変数って、(ブロックパラメータ以外で)そんなに必要になることある?

>>325
別に忌み嫌ってはないし、今でもそれほど困っているわけではない
でも統一感がないように感じるのは確か
覚えたての頃にはよくハマったしな

333 :デフォルトの名無しさん:2009/05/27(水) 08:06:44
ブロックが外側のローカル変数を参照できなきゃ
クロージャにならないじゃんw

そんなことしたらブロック付き呼び出しっていう Ruby の利点が
完全に死ぬだろ


http://capsctrl.que.jp/kdmsnr/wiki/bliki/?Closure

http://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%82%B8%E3%83%A3


334 :333:2009/05/27(水) 08:08:24
焦りすぎスマソ
そんなこと=ブロックが外側のローカル変数を参照することを禁止しちゃう

335 :デフォルトの名無しさん:2009/05/27(水) 08:25:36
> ブロックが外側のローカル変数を参照することを禁止しちゃう

何を見てこの結論になったの?

336 :デフォルトの名無しさん:2009/05/27(水) 08:31:28
>>331
Rack1.0.0 のほうでは直したって言ってるけど、 Rack1.0.0 を利用するライブラリ経由では直ってないってとこらしいな

337 :デフォルトの名無しさん:2009/05/27(水) 12:31:28
>>332
作業用の一時変数

338 :デフォルトの名無しさん:2009/05/27(水) 18:13:49
一時変数って、別にブロックローカルでなくてもあまり困らないような

339 :デフォルトの名無しさん:2009/05/27(水) 18:26:21
バッティングの心配がないという点でおれは好きだが

340 :デフォルトの名無しさん:2009/05/27(水) 18:36:47
そりゃ、たとえば、全ての変数を変数表で管理するのなら
変数のスコープ制限なんていらんよ、そりゃあね

341 :デフォルトの名無しさん:2009/05/27(水) 18:42:08
それなんてCOBOLw

342 :デフォルトの名無しさん:2009/05/27(水) 20:00:29
ブロックの外側を参照する場合は

../x

ですべて解決

343 :デフォルトの名無しさん:2009/05/27(水) 20:36:22
トークン被らないし、面白いかなあとか一瞬思ってしまったw

344 :デフォルトの名無しさん:2009/05/27(水) 21:04:40
正規表現と被るよ


345 :デフォルトの名無しさん:2009/05/27(水) 21:08:00
それに多重にネストした場合は ../../x か?
ブロックを深くした場合はすべて ../ を追加してくのか?

というかruby-coreあたりで散々あきるほど議論された話で、
>>342に類するものも当然出ている。
文法論議をしたいならruby-devとruby-core位は全読してから出直せってことだ。


346 :デフォルトの名無しさん:2009/05/27(水) 21:20:12
そんなことより a++ の話しようぜ

347 :デフォルトの名無しさん:2009/05/27(水) 21:45:37
>文法論議をしたいならruby-devとruby-core位は全読してから出直せってことだ。
ハードル高けーよ。

348 :デフォルトの名無しさん:2009/05/27(水) 23:01:31
えーとつまりRubyのうんこ仕様はずっと放置というのが結論なの?

349 :デフォルトの名無しさん:2009/05/27(水) 23:07:52
うんこ仕様とか思ってる方がおかしいというのが結論。

350 :デフォルトの名無しさん:2009/05/27(水) 23:08:43
ブロックローカルがうんこ仕様なら大半の言語がうんこだろ
例外はCOBOLとかBASICとか?

351 :デフォルトの名無しさん:2009/05/27(水) 23:13:41
例外はあと関数ローカルまでしかやってないLL系か?
javascriptも関数ローカルまでしか実装してないはず。


352 :デフォルトの名無しさん:2009/05/27(水) 23:17:52
クロージャがあるからいいんじゃね

353 :デフォルトの名無しさん:2009/05/28(木) 07:54:16
C言語もブロックローカルじゃないぞ

354 :デフォルトの名無しさん:2009/05/28(木) 10:20:32
1.8までの、ブロックパラメータがローカルじゃない、というのが仰天仕様。
「驚き最小の法則に反する」と断言して問題ない珍しい例だ。

355 :デフォルトの名無しさん:2009/05/28(木) 10:45:39
ローカルだよ
ただ、ブロック外にある変数と同じ名前の場合はそれが再利用されるだけ

a = 0
[1,2,3].each{|a| a}
p a #=> 3

[1,2,3].each{|b| b}
p b #=> NameError

これが適用されない「独立した」スコープになるendつき構造はメソッド定義とクラス定義くらい
メソッド定義とクラス定義(とモジュール定義)の終端は end 以外にしたほうが
スコープ区別的によかったんじゃねーかという話は思い出したように聞く

356 :デフォルトの名無しさん:2009/05/28(木) 10:55:21
たとえば、Perlだったらこんな感じなんだが、これはどういう理屈でそうなってるの?
(あえて、forの一時変数$aの my を省略してみた場合)
んで、Rubyでこれをすると具合が悪いのだろうか。
詳しい人解説してくれたら嬉しい

#! perl

use strict;
use warnings;

my $a = 'a';
my $b = 'b';

for $a (1..10){ # ← ここの$aがよくわからん(自動的にmy?)
print $a, "\n"; #=> 1, 2, 3, ...
print $b, "\n"; #=> 'b'
}
print $a, "\n"; #=> 'a'
print $b, "\n"; #=> 'b'


357 :デフォルトの名無しさん:2009/05/28(木) 11:07:13
ブロックの外の変数が読め、つまりはブロック内変数が共有され、なおかつブロック内スコープを作る(each)
ブロックの外の変数が読め、つまりはブロック内変数が共有されるが、ブロック内スコープは作らない(if)
ブロックに見かけが似ているがブロックではないのでブロック外は読めずブロック内スコープのみ(def)

まあめんどくさいっちゃめんどくさい

358 :デフォルトの名無しさん:2009/05/28(木) 11:12:29
>>353
何十年前からの使者か知らんが
ttp://www.geocities.jp/KY_webid/c/022.html

359 :デフォルトの名無しさん:2009/05/28(木) 11:15:51
てかCのブロックと違ってRubyのブロックはクロージャだからなぁ

360 :デフォルトの名無しさん:2009/05/28(木) 11:18:05
どう見ても不自然で不統一なのに
これこそ完璧な驚愕最小の仕様!と言い張るから絡まれるだけという気がしてきた。
問答無用で覚えろ。とだけ言っておけばいいんだよ。

361 :デフォルトの名無しさん:2009/05/28(木) 11:18:57
そうなんだよね、Rubyは
「従来言語の○○に見えるが実は全く違う××で実装されておりそれゆえ挙動も微妙に違う」
というのがどうにも多い

最初からフェイスフルオープンで教えられれば違うものの擬態だと認識できるのかもしれないけど
「いわゆる○○ですよー」と教えた後で「でも実はちょっと違います」というのはまあ若干卑怯っぽくもあり

362 :デフォルトの名無しさん:2009/05/28(木) 11:20:12
>>360
驚き最小うんちゃらーは物凄く昔に破棄された概念です

363 :デフォルトの名無しさん:2009/05/28(木) 12:23:31
久しぶりに聞いたよね

364 :デフォルトの名無しさん:2009/05/28(木) 12:25:18
>>354

365 :デフォルトの名無しさん:2009/05/28(木) 13:09:44
matz驚き最小の法則で上書きされたんだっけ
それも破棄された?

366 :デフォルトの名無しさん:2009/05/28(木) 19:54:25
最初からオレオレ驚き最小の法則だったからな。
話が噛み合なくて当然。

367 :デフォルトの名無しさん:2009/05/28(木) 21:17:07
ruby1.8.6です。win32oleで質問です。
ttp://d.hatena.ne.jp/elm200/20071006/1191661248 を実行してセルの内容を
取得しようとしていますがエラーになります(下記)。

C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require':
no such file to load -- win32/clipboard (LoadError)
from C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'

目的は、上記HPにあるように
a\tb\r\n
c\t\d\r\n

の形での(タブ区切りか何かの形での)取得です。 ※特にHPの記述に拘りません。

現在のところ、下記の方法で列の取得は成功しております。
require 'win32ole'

xl = WIN32OLE.new('Excel.Application')
fso = WIN32OLE.new('Scripting.FileSystemObject')
book = xl.Workbooks.Open(fso.GetAbsolutePathName("Book1.xls"))

sheet = book.Worksheets(1)
cells = sheet.Range("A1:A5") # セルA1〜A5を取得
cells.each {|cell|
puts cell.Value
}

368 :デフォルトの名無しさん:2009/05/28(木) 21:36:29
そのエントリをきちんと最後まで読んでください。
あと初心者スレっぽいです。

Ruby 初心者スレッド Part 28
http://pc12.2ch.net/test/read.cgi/tech/1242436010/

369 :デフォルトの名無しさん:2009/05/28(木) 21:54:13
>>368
Thx


370 :デフォルトの名無しさん:2009/05/28(木) 22:15:38
http://github.com/judofyr/nokogirl/tree/master ワロチ


371 :デフォルトの名無しさん:2009/05/28(木) 22:39:38
これはひどいまちがいさがし

372 :デフォルトの名無しさん:2009/05/28(木) 22:47:56
>>370
そうか。外人にはnokogiriは覚えにくいのかw

373 :デフォルトの名無しさん:2009/05/28(木) 23:02:44
karaokeやharakiriやkaroushiが憶えられて
nokogiriが憶えられないってこともあるまいに

きっと趣味だろ。そのうち萌えキャラになるに違いない

374 :デフォルトの名無しさん:2009/05/28(木) 23:18:54
harakiriは、間違ってharikariと綴られることがあるな。

いめーじきゃら?
ttp://www.h4.dion.ne.jp/~acetone/display%20kotonoha.html



375 :デフォルトの名無しさん:2009/05/29(金) 01:05:24
けぶんりっじに通じるものがあるな

376 :デフォルトの名無しさん:2009/05/29(金) 05:34:13
>>374
ぶっちゃけnokogiriもこれでいいんじゃないか?

377 :デフォルトの名無しさん:2009/05/29(金) 08:57:31
nokogiriが日本語由来だという認識がないんだろう
日本のnokogiriだという紹介が一般的になりまくればそう思ってもらえるはず
(子音+母音)+(子音+母音)+(子音+母音)+(子音+母音) だからこれもしかして日本語なんじゃね、
という推測ができるのはマニアだけ


378 :デフォルトの名無しさん:2009/05/29(金) 09:54:51
というかiとl間違えてるだけじゃん。。
日本語とか関係ないし(むしろ日本人のほうがよく間違える)

379 :デフォルトの名無しさん:2009/05/29(金) 10:00:21
sudoka とか sudoko でググれ

380 :デフォルトの名無しさん:2009/05/29(金) 11:10:54
harikari て harakiri だったか
前にどこかで見て ??? だった記憶がある

381 :デフォルトの名無しさん:2009/05/29(金) 11:41:58
いや、単純な読み間違いというレベルじゃなくて、英語圏の人には
ほんとに nokogiri って読みにくいし、言いにくいみたいだぞ

証拠映像(1:40〜を参照)
http://www.youtube.com/watch?v=4OCm8eBvEPU

382 :デフォルトの名無しさん:2009/05/29(金) 11:58:20
まあなんでノコギリなんだというそもそもの問題を感じないわけでもない
フランク・シナトラが出てくるSinatraよりはマシだが

383 :デフォルトの名無しさん:2009/05/29(金) 12:01:33
Rubyに言われたくはないだろうけどな

RubiとかRubieとかShimaneとかの実在しないようなものにすればよかったのに

384 :デフォルトの名無しさん:2009/05/29(金) 12:56:59
島根非存在説

385 :デフォルトの名無しさん:2009/05/29(金) 13:00:19
Rubyが誕生した時点ではmatzと島根には特別な接点ないしなあ

386 :デフォルトの名無しさん:2009/05/29(金) 13:03:06
>>377
http://groups.google.co.jp/group/ruby-talk-google/browse_thread/thread/bb844b018c126ca8
しっかり漢字で書いてる。
まぁ中国語と思われたり、そもそも漢字と認識できてなかったりというのも多そうだが。

387 :デフォルトの名無しさん:2009/05/29(金) 13:10:27
>>386
いやNokogiri作者が日本語をカタコトで知っているのは知ってるし
MLに誰も望んでなゲフ折に触れたメールを作者が流してるのも知ってる
Nokogiriを使う人がNokogiriを日本語だと思ってないんじゃねーかなーという話だ

388 :デフォルトの名無しさん:2009/05/29(金) 13:10:54
よく知らんのだが、欧米圏のPCに漢字や日本語のフォントとか普通に入ってるものなの?

389 :デフォルトの名無しさん:2009/05/29(金) 13:12:17
>>385
そういや米子だったな。
あらかじめいっとくと、米子は鳥取県で鳥取は島根の右、兵庫の左、岡山の上だ

390 :デフォルトの名無しさん:2009/05/29(金) 13:24:25
鳥取じゃないのが島根で、
島根じゃないのが鳥取と覚えておくだけで十分。

391 :デフォルトの名無しさん:2009/05/29(金) 13:32:48
米子って言ってもお前らは糞田舎の一つとしか認識してないのかもしれないが、
山陰ワールドの中では米子とか津山は、トーキョー、ニューヨーク並みの
大都会だから。

392 :デフォルトの名無しさん:2009/05/29(金) 13:44:12
県同士は仲が悪いけど、テレビ局は相乗りしてるのがうらやましいな、とテレ朝系が写らない富山県民は思うのであった

393 :デフォルトの名無しさん:2009/05/29(金) 14:09:53
>>392
お前は俺か

394 :デフォルトの名無しさん:2009/05/29(金) 15:47:44
>>391
たぶん津山の人は山陰扱いされるのを嫌がると思う。
どう見ても山陽ではないけど。

395 :デフォルトの名無しさん:2009/05/29(金) 16:11:40
>>388
普通入ってない。外国人が大勢いる対都市圏のネットカフェなら結構入ってる。

396 :デフォルトの名無しさん:2009/05/29(金) 16:14:18
>>381
ノコギリなのか、ノコジリなのかわかんなかったんじゃないかな。

397 :デフォルトの名無しさん:2009/05/29(金) 18:09:29
>>394
山間だろ


398 :デフォルトの名無しさん:2009/05/29(金) 23:00:43
https://grp03.id.rakuten.co.jp/rms/nid/vc
↑のサイトに自動でID、パスワードを入力して
ログインする処理を行いたいのですが、どうすれば
よいのでしょうか?色々検索してhttpclientやopen-uriで
試行錯誤してみたのですが、ダメでした。
やりたいこととしては、みんなの就職活動日記という
サイトから書き込みを検索&抽出をしたいです。
しかしそのためには上記のサイトにログインしなければ
いけないのです・・・

399 :デフォルトの名無しさん:2009/05/29(金) 23:12:18
そのURLにアクセスすると見つかりませんと言われるので様子がわからん。

HTTPのBASIC認証ならopen-uriで
:http_basic_authentication = [ user, password ]
オプションを付けるのが簡単。

ログインフォームなら、要求されているパラメータを付けてセッションクッキーを得るなどする。

HTTPSだが、ホスト証明書を検証するためには、
OpenSSL::X509::DEFAULT_CERT_FILE
で指されるパスにルート証明書を一式置いておく。


400 :デフォルトの名無しさん:2009/05/29(金) 23:15:31
ブラウザ操作感覚で使えるMechanizeというのもある。


401 :デフォルトの名無しさん:2009/05/29(金) 23:19:52
>>399
すいません確認不足でした。
BASIC認証ではありません。
例えば、
http://www.nicovideo.jp/にアクセスしてログインしたあとで、マイページに
アクセスしてHTMLソースコードを取得するといったことがしたいです。

402 :デフォルトの名無しさん:2009/05/29(金) 23:21:23
>>398
FirefoxのLive HTTP Headersとかでブラウザと鯖のやりとりを見て真似すればいい

403 :デフォルトの名無しさん:2009/05/29(金) 23:21:47
じゃあMechanizeをすすめます。


404 :デフォルトの名無しさん:2009/05/29(金) 23:28:22
ありがとうございます
Mechanize検索してみましたがなかなか良さそうですね
ためしてみます!

405 :デフォルトの名無しさん:2009/05/30(土) 00:02:05
http://www.moongift.jp/2009/05/rored/#more-15769

406 :デフォルトの名無しさん:2009/05/30(土) 00:19:30
>>392
テレ朝系が見れるのは、DAIGOのじっちゃのおかげだって、
ばっちゃが言ってた。

407 :デフォルトの名無しさん:2009/05/30(土) 00:26:05
気に入ってるソフトウェアのRDocが次々とDarkfishになってて
Darkfish嫌いの俺としては非常に哀しい
やっぱり人気あるのかな、あれ

408 :デフォルトの名無しさん:2009/05/30(土) 00:53:17
レイアウトはCSSが標準になって、フレーム自体がもう流行らない

409 :404:2009/05/30(土) 01:35:43
ダメだ・・
require 'rubygems'
require 'mechanize'

agent = WWW::Mechanize.new
page = agent.get('https://www.nikki.ne.jp/?action=login')
p page.root
とかって色々試してみたけどドキュメントが取れない・・
誰か助けてください

410 :デフォルトの名無しさん:2009/05/30(土) 02:18:40
自分で解決する気ゼロだな。それは初心者スレがいいと思う。

411 :デフォルトの名無しさん:2009/05/30(土) 02:28:50
WebProg板の方がいいとか思ったが、あっちにはRubyの適当なスレ無いのな
Railsのが一つだけ?
これでは汎用エロ動画収集スクリプトの名が泣くじゃないか

412 :デフォルトの名無しさん:2009/05/30(土) 02:32:05
えっ、おまえらそんなことに使ってたの?・・・

413 :デフォルトの名無しさん:2009/05/30(土) 02:32:32
>>410
ニコニコやgoogleで試した限りではできたのですが、
このサイトだけはできなかったんです。
問題を削っていった結果、>>409のagent.getの時点で取得出来ていないことが分かりました。

414 :デフォルトの名無しさん:2009/05/30(土) 02:38:49
HTMLソースには「&SERVICE_ID=1」なるものがついてるのだが、それはいらないの?
これないと普通のブラウザでもはじかれるのだが。

415 :デフォルトの名無しさん:2009/05/30(土) 03:25:45
おれはシェルスクリプトと正規表現と wget のオプションは
エロ画像ダウンローダを自作していて覚えたぞ。

気がついたら、超パフォーマンスの悪い HTML パーサーができあがっていた。

416 :デフォルトの名無しさん:2009/05/30(土) 04:01:35
別にHTML全部を解析してたわけじゃなくて、エロいとこだけだろ
それはエロパーサーだw

417 :デフォルトの名無しさん:2009/05/30(土) 05:35:35
wget を Ruby スクリプトから呼び出すのは初期のデフォだろ
動作のログを元に何かしようとして wget のログを読もうとするものの
読む方法がそもそもわからんなにこれというのもデフォだ

418 :デフォルトの名無しさん:2009/05/30(土) 06:37:10
>>400 >>403
WWW::Mechanizeは日本語の処理がうんこなので勧めたくないなあ
ASCII以外は基本化けるとかいつの時代のライブラリだよ

419 :デフォルトの名無しさん:2009/05/30(土) 11:12:45
いろいろとあれなのは知ってる。
代替があるなら教えてほしいのだが。

420 :デフォルトの名無しさん:2009/05/30(土) 15:33:34
git と github を勉強すればスクリプト作るの便利そうだと思った

421 :デフォルトの名無しさん:2009/05/30(土) 15:39:08
バージョン管理システムは便利だと思う
全く導入してないなら個人ででも導入お勧め

422 :デフォルトの名無しさん:2009/05/30(土) 16:28:26
リリースして 2ヶ月も経ってるのに test スクリプトに動かないのあんじゃねーかなめんなオラっていうか誰か気づけ

423 :デフォルトの名無しさん:2009/05/30(土) 16:40:09
* どうしても気付いてほしいなら報告しろよ。
* プラットフォームは?
Debian以外は、いくつかテストが通らなくても構わないと明言されている。


424 :デフォルトの名無しさん:2009/05/30(土) 16:50:25
開発版使ってると推測

425 :デフォルトの名無しさん:2009/05/30(土) 21:44:24
>>414
こちらの環境ではSERVICE_IDはあってもなくても関係ないようです。。
IEコンポーネントを用いて目的の機能は達成したものの、mechanizeの
便利さに感動したのでなんとかこれを使って目標を達成してみたい。。

426 :デフォルトの名無しさん:2009/05/30(土) 22:03:41
p agent.page.parser (または、root) してみて HTMLがほとんど表示されない場合は95パーセントまでこれが原因だ
ttp://d.hatena.ne.jp/kitamomonga/20090307/ruby_mwchanize_0_9_2_out
HTML が内部で UTF-8 に勝手に変換されてるのを全く考慮せずに HTML パーサが動いてる
get や click や post した直後に毎回 agent.page.encoding="utf-8" しろ
次のバージョンの Mechanize では誤動作の原因になるが、ライブラリ作者が悪いと割り切っとけ

427 :デフォルトの名無しさん:2009/05/30(土) 22:31:03
>>426
なんか、その記事読んでたら使うのをちょっとためらうな。
まあHTTPヘッダのエンコード指定さえあれば問題なさそうに見えるけど

その次の記事の冒頭がイカしてる
(RubyのWWW::Mechanizeの次バージョン0.9.3とcharset)

> 迷走しまくって使用に支障があるレベル(穏当な表現)だった、Ruby の
> WWW::Mechanize ライブラリの charset と encoding の問題が解決に向かいます。

かなり入れこんでたんだなあw

428 :デフォルトの名無しさん:2009/05/30(土) 22:42:04
よしんばやむを得ず文字コードの自動判別をするとして、
現状NKF.guess以外に選択肢は無いのか?
思ったよりこの辺進んでないのな

429 :デフォルトの名無しさん:2009/05/30(土) 22:59:32
NKFは、選択候補が日本語用という前提のロジックだからなー。
数多あるエンコーディングから推測するのは無茶じゃなかろうか。


430 :デフォルトの名無しさん:2009/05/31(日) 05:50:42
>>427
> HTTPヘッダのエンコード指定さえあれば問題なさそう
つまり使い物にならないってことだな

431 :デフォルトの名無しさん:2009/05/31(日) 06:26:21
あれは最初に Apache 作った人が悪いんだよ

「クライアントは、HTML について文字エンコードの手がかりが何もないときは iso-8859-1 として処理をする」
というクライアントの仕事を
「サーバーは、charset トークンが空のときはとりあえず iso-8859-1 にセットして HTML を送出する」
というサーバの仕事に置き換えてしまった

とか言っていまどき charset を空にしてると XSS で引っかかるからなんか書け死ぬぞという話もあったな
めんどいのー

432 :デフォルトの名無しさん:2009/05/31(日) 11:04:34
>>431 うわひでぇ

433 :デフォルトの名無しさん:2009/05/31(日) 12:40:25
RFC2068から:

The "charset" parameter is used with some media types to define the
character set (section 3.4) of the data. When no explicit charset
parameter is provided by the sender, media subtypes of the "text"
type are defined to have a default charset value of "ISO-8859-1" when
received via HTTP. Data in character sets other than "ISO-8859-1" or
its subsets MUST be labeled with an appropriate charset value.
charsetが無いときは、ISO-8859-1として扱う。

Some HTTP/1.0 software has interpreted a Content-Type header without
charset parameter incorrectly to mean "recipient should guess."
Senders wishing to defeat this behavior MAY include a charset
parameter even when the charset is ISO-8859-1 and SHOULD do so when
it is known that it will not confuse the recipient.
charsetが無いときにエンコーディングを推測する不正な動きをしてしまう
ソフトウェアに対抗するために、本来必要じゃなくてもISO-8859-1を
指定してもよいし、混乱がないならばそうすべきだ。

Apacheはこのへんの挙動やデフォルトを変更することやMultiviewsなんかの
対応もちゃんとできているので、非難される謂われはないよ。

434 :デフォルトの名無しさん:2009/05/31(日) 13:08:29
一本釣り

435 :デフォルトの名無しさん:2009/05/31(日) 13:12:06
>>434
わかってる人に説明してもらえるんだからいいことだよ

436 :デフォルトの名無しさん:2009/05/31(日) 16:36:47
最近はRFCもまともに読まれないのか。

437 :デフォルトの名無しさん:2009/05/31(日) 16:47:33
ま、あんだけ莫大になりゃな
どのRFCがいつどこでどう上書きされてるかとか却下されてるかとかちょっと見ただけではよくわからんし

438 :デフォルトの名無しさん:2009/05/31(日) 17:37:33
RFC読むより2ちゃんで聞いたほうが早い
ちょっと釣りっぽく書けばお人好しのアホが答えてくれるしw

439 :デフォルトの名無しさん:2009/05/31(日) 17:39:38
お人好しに答えてもらうつもりなら普通に聞けばよくね?
釣りっぽく書けばアホが答えてくれるというのは否定しないが

440 :デフォルトの名無しさん:2009/05/31(日) 17:45:57
普通に聞いたら本当に何も知らん人が偉そうに「ぐぐれ」だのと答える
それが2ch

441 :デフォルトの名無しさん:2009/05/31(日) 17:48:27
まー、正誤判定とキーワードくらいはもらえるからな
疑問があるってことはそもそもがよく知らなかったってことだし、
経緯は酷くても最終的に知見が増えるなら世界は少しだけ賢くなると思う

442 :デフォルトの名無しさん:2009/06/01(月) 00:03:43
文字コードを自作すればよい

443 :デフォルトの名無しさん:2009/06/01(月) 14:14:22
RDoc の HTML 書き出しのメソッドへのリンクって連番だよね?

Range#each が
ttp://rdoc.sourceforge.net/doc/classes/Range.html#M000006
じゃなくて
    rdoc.sourceforge.net/doc/classes/Range.html#each
のように傍目にわかりやすいアンカーになるような実装ってないかしらん?

444 :デフォルトの名無しさん:2009/06/01(月) 16:34:11
rdocはそろそろattr_*の特別視をやめるべき
あれはただのメソッドだ

445 :デフォルトの名無しさん:2009/06/01(月) 16:45:00
>>444
でも

 attr_reader 10個くらい
 attr_accessor 10個くらい

とか書くと、あーこれプロパティだな、と思うことがないわけでもない
これが30個全部メソッドとしてマニュアルで分解記述されたらたぶん吐く

どっちかというと、「変数アクセスメソッド」というカテゴリを追加する記述がないのがダメなんだと思う

def value=(v) # :writer:
@v = if v then v else 0 end
end

と書いたら Attributes に value [w] として追加されるとかそういうの

446 :デフォルトの名無しさん:2009/06/01(月) 16:59:16
attr_ってあたたリーダとかあたたアクセサって読んでるの俺だけ?

447 :デフォルトの名無しさん:2009/06/01(月) 17:05:55
あなただけ

448 :デフォルトの名無しさん:2009/06/01(月) 17:07:34
頭の中では"あっとる"または"あとぅる"って読んでる
なぜ"ぅ"なのか自分でも謎

449 :デフォルトの名無しさん:2009/06/01(月) 17:17:08
あたー りーだー
あたー あくせさー

どうでもいいけど、
char → 「ちゃー」
varchar →「 ばーちゃー」

「ばーきゃら」という人も多いね

C言語でも、char は「ちゃー型」

450 :デフォルトの名無しさん:2009/06/01(月) 17:21:28
コードの世界って読む価値あるか誰か答えてくれ

451 :デフォルトの名無しさん:2009/06/01(月) 17:42:23
小学校の頃は国語の教科書の朗読でいつも「感情がこもっている!」と
先生に褒められていたのを最近はずっと忘れていた。

そうか、初心に返ってコードを読むときも気持ちを込めなくては。

りた〜ん りざるとでりーとぬるじょいんたぶ! えんどえんど。

452 :デフォルトの名無しさん:2009/06/01(月) 19:20:22
おまいらRubyKaigiのチケット買ったか?

453 :デフォルトの名無しさん:2009/06/01(月) 19:22:09
Nice Kayakが出たけど、買えた。


454 :デフォルトの名無しさん:2009/06/01(月) 19:41:59
「きゃら(くたー)」がなんで「ちゃー」になるんだ?

455 :デフォルトの名無しさん:2009/06/01(月) 19:51:59
>>454
char だからとしか言いようがない

456 :デフォルトの名無しさん:2009/06/01(月) 19:55:57
pronounce char でぐぐるといっぱいでてくるぞ
とりあえず「キャラと読め」派は無視してよさそうだ

457 :デフォルトの名無しさん:2009/06/01(月) 20:18:20
おれも「ちゃー」ってすごい違和感あるんだが。
もとの単語の発音おもいっきり無視じゃん。
別にRoRみたいに頭文字を組み合わせたとかでもないのに。

458 :デフォルトの名無しさん:2009/06/01(月) 20:22:35
intは?

459 :デフォルトの名無しさん:2009/06/01(月) 20:29:14
ほらよ

http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=charset+%E3%83%81%E3%83%A3%E3%83%BC%E3%82%BB%E3%83%83%E3%83%88&num=50

460 :デフォルトの名無しさん:2009/06/01(月) 20:30:50
ちゃーほど崩れてない

461 :デフォルトの名無しさん:2009/06/01(月) 20:34:53
height→ヘイトが圧倒的優勢でワロタw

462 :デフォルトの名無しさん:2009/06/01(月) 20:42:50
>>460
それは首尾一貫していないよ。
charaならともかくaが抜けたcharまでキャラと読みうるのは、元の
characterという単語の発音に従っているからでしょう。
であればinteのみならずintだってintegerの発音に従って「インテ」
と読むべきでしょ。

元の単語の発音に忠実であるべきならキャラ・インテ。
単に表記のアルファベットの並びに従うならチャー・イント。

463 :デフォルトの名無しさん:2009/06/01(月) 20:49:40
この話題定期的に出るNE!

464 :デフォルトの名無しさん:2009/06/01(月) 20:53:29
つまり、発音記号に従えばrubyは「ルービ」だよな

465 :デフォルトの名無しさん:2009/06/01(月) 20:56:42
はいはいがいしゅつがいしゅつ

【char】変な読み方するな その3【ちゃー】
http://pc11.2ch.net/test/read.cgi/prog/1242268027/

466 :デフォルトの名無しさん:2009/06/01(月) 20:58:31
>>462
頭の発音が同じなら省略されても割とわかる。
全く違う発音になるとcharはもう慣れたが普通わからない。
言葉は意思疎通ができるかどうかが重要であって、それゆえ多くのルールや例外がある。

それにchaを「ちゃ」と読むのはローマ字の発音だしね。

467 :デフォルトの名無しさん:2009/06/01(月) 21:10:10
>>466
うん。目的が意思疎通なのだから、要はその発音がどれだけ
共通認識として普及しているかが問題。
ちゃ〜は十分普及の域に入っていると思うよ。問題なし。

>それにchaを「ちゃ」と読むのはローマ字の発音だしね。
色々あるけど、例えばchartは?
末尾のtを外せば殆どそのまま「ちゃ〜」だよ。

468 :デフォルトの名無しさん:2009/06/01(月) 21:17:09
どうでもいいよ

469 :デフォルトの名無しさん:2009/06/01(月) 21:23:16
rubykaigi チケット買いそびれた。。。
朝まで覚えていたのに帰って風呂は言ったらすっかり頭から抜け落ちていたわ。


470 :デフォルトの名無しさん:2009/06/01(月) 21:28:12
もう売り切れ?

471 :デフォルトの名無しさん:2009/06/01(月) 21:30:54
抽選終わったって聞いた

472 :デフォルトの名無しさん:2009/06/01(月) 21:32:18
>>470
http://twitter.com/kakutani/status/1990589711

473 :デフォルトの名無しさん:2009/06/01(月) 21:38:20
そんなに盛況なのか。なめてたわ

474 :デフォルトの名無しさん:2009/06/01(月) 22:23:04
追加チケットない?
ustはあるよね?


475 :デフォルトの名無しさん:2009/06/01(月) 22:31:00
>>474
http://rubykaigi.tdiary.net/20090601.html#p03

フィード登録しとけ。


476 :デフォルトの名無しさん:2009/06/02(火) 00:32:00
蒸し返して悪いけどw

きゃら → 日本語脳
ちゃー → 英語脳

477 :デフォルトの名無しさん:2009/06/02(火) 00:49:59
脳内で「きゃー」と呼んでいる俺涙目

478 :デフォルトの名無しさん:2009/06/02(火) 01:03:42
Mechanize→めちゃないずw

479 :デフォルトの名無しさん:2009/06/02(火) 01:08:13
..... ('A`)

480 :デフォルトの名無しさん:2009/06/02(火) 01:15:01
伸びてるから何かホットな話題かなと思えばおまいらは・・・

481 :デフォルトの名無しさん:2009/06/02(火) 01:26:05
strは「すとら」だよな。すとらこんぷにすとらこぴー。

482 :デフォルトの名無しさん:2009/06/02(火) 01:27:46
いや「すとあ」だろう。

483 :デフォルトの名無しさん:2009/06/02(火) 01:28:29
蒸し返すなよ。なんとか脳の根拠もわからんし

484 :デフォルトの名無しさん:2009/06/02(火) 04:14:58
>>480
話題がないから仕方ないよ。
住人の10割が1.9には金輪際触れない、1.8と心中するって決心しちゃったことだし。

485 :デフォルトの名無しさん:2009/06/02(火) 06:03:54
いやいや、おれは使ってるぞ
ただ初心者スレもそうだけど書き込むとからまれるから書かないだけで

486 :デフォルトの名無しさん:2009/06/02(火) 06:12:09
そうそう、>>484みたいに1.9アンチがいる状況で1.9の話題振っても仕方がない

487 :デフォルトの名無しさん:2009/06/02(火) 06:19:13
chaはチャ、キャ発音が多いよ。
カ、キャ発音の方がまれと言えばまれ。

488 :デフォルトの名無しさん:2009/06/02(火) 07:27:30
うるせーよ

489 :デフォルトの名無しさん:2009/06/02(火) 07:48:43
chaでカと読む単語はmocha以外に思いつかない。

490 :デフォルトの名無しさん:2009/06/02(火) 07:58:01
>>457
そりゃそうなんだけど。「キャ」で行こうとすると、最後に母音つけないと発音しにくいがそうすると
今度はcharというスペルとの間に違和感が生じる。強いて説明するとすればそんな感じ。

というわけで俺もチャーと言ってしまう。

491 :デフォルトの名無しさん:2009/06/02(火) 08:00:57
>>476
逆だろ普通w

492 :デフォルトの名無しさん:2009/06/02(火) 08:52:10
>>489
>>478

493 :デフォルトの名無しさん:2009/06/02(火) 10:39:47
>>491がcharmをなんと読むのか聞いてみたい

494 :デフォルトの名無しさん:2009/06/02(火) 11:35:55
きゃーんぅ><

495 :デフォルトの名無しさん:2009/06/02(火) 11:41:35
おっさんたちはつまらない事で楽しめるねぇ。
脳細胞が死滅してくると幼児化が進んでくるってことなのか。
後何年か経つと笑点眺めてゲラゲラ笑う能力を獲得できそうだ。

496 :484:2009/06/02(火) 13:28:02
>>486
いい子だ

497 :デフォルトの名無しさん:2009/06/02(火) 15:16:37
>>493はめそっどちゃいんを使ってないようだな
個別でそんなこと言ってきりがないの分からないの?バカなの?
はっきり言って気持ち悪い

498 :デフォルトの名無しさん:2009/06/02(火) 19:14:42
1.8と1.9をそれぞれ北斗の拳に例えるとどうなりますか?


499 :デフォルトの名無しさん:2009/06/02(火) 20:35:34
めでたく 1.3.0 が公開された Nokogiri の開発に近い人いる?

irb> p Nokogiri::HTML.parse('<html></html>', nil, 'ISO-8859-1').encoding
nil

これって意図した挙動?
引数で文字エンコーディングを陽に指定した場合は
その値が Nokogiri::XML::Document#encoding で返るべきだと思うんだけどどうだろ。

500 :デフォルトの名無しさん:2009/06/02(火) 21:49:14
なんでメイリングリストじゃなくてここにそういうことを書くかなぁ...

501 :デフォルトの名無しさん:2009/06/02(火) 21:56:58
そんな個々のプロジェクトのローカルルールなんて知らんよ。
RubyForgeに共通のBTSがない時点で開発参加には興味がない

502 :デフォルトの名無しさん:2009/06/02(火) 22:01:57
そんなこと言わずに書いてやれよ。
http://github.com/tenderlove/nokogiri/issues

503 :デフォルトの名無しさん:2009/06/02(火) 22:02:04
あれはGitHub型の開発手法と果てしなく相性が悪いからなあ
IRCとGitHubによるブランチどさーチャットどわーコミットどばーマージもさーの開発にはちょう不適

504 :デフォルトの名無しさん:2009/06/02(火) 22:06:03
Nokogiriは動作マニュアルがないからさっぱりわからんのだ
仕方なくソースみても確実にCの部分にぶつかる
RubyForgeに降ろすときくらいはマニュアル整備して欲しいなと思う

505 :デフォルトの名無しさん:2009/06/02(火) 22:06:45
Ruby開発者でこのスレ見ていない人はいないから
報告はここで大丈夫だよ。

506 :デフォルトの名無しさん:2009/06/02(火) 22:09:52
             _,,..r'''""~~`''ー-.、
            ,,.r,:-‐'''"""~~`ヽ、:;:;:\
           r"r          ゝ、:;:ヽ
   r‐-、   ,...,, |;;;;|       ,,.-‐-:、 ヾ;:;ゝ
   :i!  i!  |: : i! ヾ| r'"~~` :;: ::;",,-‐‐-  `r'^!
    !  i!.  |  ;| l|  ''"~~   、      i' |
     i! ヽ |  | |    ,.:'"   、ヽ、   !,ノ
    ゝ  `-!  :| i!  .:;: '~~ー~~'" ゙ヾ : : ::|
   r'"~`ヾ、   i! i!   ,,-ェェI二エフフ : : :::ノ~|`T <イエーイ tenderlove 見てるー?
  ,.ゝ、  r'""`ヽ、i! `:、   ー - '" :: : :/ ,/
  !、  `ヽ、ー、   ヽ‐''"`ヾ、.....,,,,_,,,,.-‐'",..-'"
   | \ i:" )     |   ~`'''ー---―''"~
   ヽ `'"     ノ

507 :デフォルトの名無しさん:2009/06/02(火) 22:14:52
>>507
外人は見ないだろw ・・・たぶん

508 :デフォルトの名無しさん:2009/06/02(火) 22:18:08
いいから買えよ
http://www.rubyist.net/~matz/20090523.html#p02

509 :デフォルトの名無しさん:2009/06/02(火) 22:22:28
あーろんなら見て読めないことはないから一概に否定できんな。


510 :デフォルトの名無しさん:2009/06/02(火) 22:24:21
日本語のスラングでなければ読めてそうな気もするね
書き込めなくてもアクセスだけならできるはずだし

511 :デフォルトの名無しさん:2009/06/03(水) 00:26:32
久しぶりに大きい本屋に行ったからうろうろ本を覗いたが、
「Rubyでつくる検索エンジン」ってものすごいクソ本だな。
ソースコードをプリントアウトして本にしたみたいな感じ。

タイトルが面白そうだったから、
あやうく中身を確認しないでAmazonでぽちっとするところだったぜ。
あぶね〜

512 :デフォルトの名無しさん:2009/06/03(水) 00:30:26
ソースが物凄く読みやすくて特にコメントする必要がないのなら興味ある

513 :デフォルトの名無しさん:2009/06/03(水) 01:14:09
>>511
興味があったので、買ってみたよ。
とりあえずサンプルが動く環境を整えたところまでやったけど、
ソースの中身はまだ見てない。

この本の内容がそのまま実用になるとは思わないので、
実際に検索エンジン作ろうとするなら、
クロールの戦略とテーブル構成とかを参考にしつつ
自分でアレンジする方向になるんだろうね。


514 :デフォルトの名無しさん:2009/06/03(水) 05:45:41
>>512
オープンソースらしいから落としてみれば?
ttp://hoshizawa.no-ip.com/suzaku/index.html

515 :デフォルトの名無しさん:2009/06/03(水) 06:30:13
うへあ、このご時世にわざわざクローラ併用タイプの検索エンジンかよ
データは自前で持ってて検索API/CGIだけ提供するタイプじゃないのか

516 :デフォルトの名無しさん:2009/06/03(水) 07:30:22
クローラーとかマジ基地だろw
著者はドアホだなw

517 :デフォルトの名無しさん:2009/06/03(水) 07:59:54
# 字句の読み込み
def token()
 # コメントおよび空白文字をスキップ

 # 最初の文字が'<'か?
  n = @buf.getc()
  if n == nil
   return false
  end
  c = n.chr
  if c == '<'
   @str = c
   # 最初の文字が'<'の場合
   # '>'が見つかるまで、読み込みを続ける

   # 最初の文字が'<'ではない場合
   # '<'が見つかるまで、読み込みを続ける
end

# Log : ログクラス
class Log

# Url : URL解析クラス
# URLを host, port, abs_path, query, fragment に分解する
# "http:" "//" host [ ":" port ] [ abs_path ] [ "?" query ] [ "#" fragment ]

…そ、そっから全部作るのかよ手作りかよ

518 :デフォルトの名無しさん:2009/06/03(水) 08:12:01
まあサイトで公開されてるのは2年前のらしいし、書籍のは手直しが入ってるらしいし、
書籍に載ってるバージョンはきちんと既存ライブラリを活用したものになってるはず

ttp://book.mycom.co.jp/MYCOM/html/book/978-4-8399-3149-0/index/978-4-8399-3149-0.html
> 5-3 ロボットを実現するクラス(1) 
>  Rubyでのネットワークプログラミング 
>  Httpクラスの実装 
>  おもなレスポンスコード一覧 
>  Urlクラス 
>  FileConvertクラス 
>  Logクラス 
> 5-4 ロボットを実現するクラス(2) 
>  Perserクラスの概要 
>  Bufferクラス 
>  Parserクラスのコンストラクタと初期設定メソッド 
>  Parserクラスの処理内容 
>  WebDBクラス 

そうでもなかった

519 :デフォルトの名無しさん:2009/06/03(水) 10:25:19
立ち読み吟味必須の微妙本ということでよろしいか

まあ理論面や実践面でいいこと書いてあるかもしれないしさー

520 :デフォルトの名無しさん:2009/06/03(水) 11:06:25
1.9 専用の本は何になるだろうね

521 :デフォルトの名無しさん:2009/06/03(水) 12:35:07
検索エンジンの基本的な作り方を通してRubyを学ぼうというコンセプト
ならありじゃね

522 :デフォルトの名無しさん:2009/06/03(水) 12:49:33
でも、標準添付されてるライブラリを無視して車輪の再発明するのはどうなんだろ
今回に限って言えば回り道してるようにしか見えない

523 :デフォルトの名無しさん:2009/06/03(水) 12:59:22
逆だろ、学習本なんだから今回に限って言えば回り道したほうがおk、
実アプリなら標準添付ライブラリを使え、でいい

524 :デフォルトの名無しさん:2009/06/03(水) 13:06:25
>>522
ごく普通には、悪
Rubyのコンセプトから言っても、既存ライブラリ同等のフルスクラッチは完全に悪
初心者への教育上は、もうみなぎる感じに悪

初心者に教えるべきなのはクラスの作り方ではなくクラスの探し方と使い方
メジャーなライブラリがないとき、機能が足りないときに新規クラスを作る
そんな機会はウンコのごとく大量に訪れるのに、わざわざ既存クラスで勉強させる理由はない

「URLを操作するクラスを作ってみましょう」は不可
そこはとっととURIライブラリを使うべきで、たとえば、その次の、
「URLへのアクセス情報を保存管理するクラスを URIライブラリを利用して作ってみましょう」
みたいなものに労力を割くべき。そっちのほうが Ruby の勉強になる


525 :デフォルトの名無しさん:2009/06/03(水) 13:12:16
うーん。例えばURIの処理ならその専門の必要な処理があるわけで、
それを同時に勉強させるという観点なら悪くないかも。

と思ったが、それをRFCも引かずに中途半端にやるくらいなら、
きっちりやってるライブラリを使い、「これくらいきっちりやるもんだよ」って
いうのを最初に印象づける方がよりいいかも知れない、とも思う。

526 :デフォルトの名無しさん:2009/06/03(水) 13:12:39
そだな、 Log クラスを作るくらいなら Logger の使い方覚えたほうが潰しが利く
完全にゼロから Log クラスを考え付いて実装したならともかく、
なんらかのテキストからお着せで渡されても学習効果はゼロかもしれない

527 :デフォルトの名無しさん:2009/06/03(水) 13:18:23
これを自力で作った人は勉強になったと感じたことだろう
が、それを人に渡した時点で、それは勉強にまったく役立たない

528 :デフォルトの名無しさん:2009/06/03(水) 13:24:49
まあライブラリ呼ぶだけの本にしたところで
結局同じくらい文句言ってただろうけどなw

529 :デフォルトの名無しさん:2009/06/03(水) 14:29:09
>>528
そんなわけねーだろ

530 :デフォルトの名無しさん:2009/06/03(水) 15:10:29
なんか盛り上がってる。元レスはおれだがたぶん文句言うと思う。
ろくに説明もなく黙々と作者が作ったプログラムと同じものを打ち込むだけだもん。
検索エンジンを作るのに必要な技術とか考え方とか背景とか、
そういうのが詰まってるものを期待したのだが。
あれはRuby関連に限らず今年最低の技術書になると思う。ひどすぎ。

531 :デフォルトの名無しさん:2009/06/03(水) 15:13:52
なんか去年、図書館で似たような本を見たな……
「誰が入れたんだこんな本」と思ったものだったが

532 :デフォルトの名無しさん:2009/06/03(水) 15:38:59
書籍になったくらいだから見るものがあるんだろう、という幻想が破られるいい時代になったと思った

っていうか編集の人とか何やってんの
文字としての誤植のチェックしかしないの

533 :デフォルトの名無しさん:2009/06/03(水) 15:40:08
「編集」の仕事のクオリティはここ何年か下がりっぱなしです。

534 :デフォルトの名無しさん:2009/06/03(水) 16:14:27
たくさん本出さないと食べていけなくなったからねえ
傍から眺める限りでは、誰も嬉しくない状態に陥ってるという感じに見える

535 :デフォルトの名無しさん:2009/06/03(水) 21:19:15
かといって他に検索エンジン関係でめぼしい本もないしなぁ…

536 :デフォルトの名無しさん:2009/06/04(木) 09:10:19
あまりにナチュラルなのでしばらくご利益に気づかなかったが、RSpecのエラー時の表示方法が

expexted: "ほげらほげらほげらむげむげ", got: "ほげらほげらほげらむげらむげ"

という1行詰め込み式から

expexted: "ほげらほげらほげらむげむげ",
    got: "ほげらほげらほげらむげらむげ"

という複数行に変わってるな
ステキだ

537 :デフォルトの名無しさん:2009/06/04(木) 09:22:28
expectedな。

538 :デフォルトの名無しさん:2009/06/04(木) 14:48:10
>>502
なにこれ激烈に重い

閲覧だけプレーンなHTMLでできるとかそういうのないの
これをこんだけキラキラさせる意味ってなんかあんの

539 :デフォルトの名無しさん:2009/06/04(木) 15:04:27
>>502 >>538
w3mでそのページ見たら噴いた

540 :デフォルトの名無しさん:2009/06/04(木) 19:55:02
JavaScript切ったらお約束のように閲覧すらできないなw

541 :デフォルトの名無しさん:2009/06/04(木) 20:05:43
>>539
時代はweb2.0なんだよ

スタバでMacBookを開いてSafariを使ってない非ギョーカイ人はgithub使うな

542 :デフォルトの名無しさん:2009/06/04(木) 20:07:13
気が付いたら初期JavaScript並みに嫌がられてましたとさ

543 :デフォルトの名無しさん:2009/06/04(木) 20:14:15
ギョーカイ人(笑

544 :デフォルトの名無しさん:2009/06/04(木) 23:07:22
「Rubyでつくる検索エンジン」って本、前のスレみて興味が
わいたので読んでみた。この本にのってるソフトにはちょっと
驚いた。

net/http、MySQL、Chasenなどを使って書かれているが、
それ以外の部分はクローラーなんか、全部いちから
コーディングされていて、ブラックボックス的な部分が
まるでない。

それなのに、ダウンロードしたプログラムのライン数を
カウントしてみると、全部合計してもたったの5500行ほど
しかない(コメント込みで)。
こんな小さな規模のプログラムで、検索エンジンが動くとは
予想外。基本的なものなら、思ったよりも簡単に作れる
もんなんだ。


545 :デフォルトの名無しさん:2009/06/04(木) 23:17:32
なんせRubyだから

546 :デフォルトの名無しさん:2009/06/05(金) 05:42:22
5500行なら550行×10枚とか、1100行×5枚とか考えると・・・
そんなに小さくもなくね?

使ってるライブラリの行数は入ってないだろうし。

547 :デフォルトの名無しさん:2009/06/05(金) 06:11:00
chasenにぶん投げてる時点で小さいもないもんだ、と思う

548 :デフォルトの名無しさん:2009/06/05(金) 06:25:05
まあ中程度の典型的規模のライブラリだよね
この形にまとめたのはいいことだが、これを小さいと評価するのはなんか違う

549 :デフォルトの名無しさん:2009/06/05(金) 07:56:34
if cond で、比較演算子または述語のようなものが必須なのが若干不評なもよう

550 :デフォルトの名無しさん:2009/06/05(金) 08:01:00
>>549
別に必須じゃないぞ

551 :550:2009/06/05(金) 08:02:11
書いてから気付いたけど、「0がtrueとして判定されてしまう」とかそういう話?

552 :デフォルトの名無しさん:2009/06/05(金) 08:08:32
このへんの話かな
ttp://blog.livedoor.jp/dankogai/archives/51220619.html

nil? を if の条件判断で使ってくれてれば楽しかったのにな、とはちらっと思わんでもない

class Array
def nil? ; self.empty? ; end
end
puts "EMPTY!" unless Array.new


EMPTY!

553 :デフォルトの名無しさん:2009/06/05(金) 09:17:25
実際サンプルを検索してみたが、ひどい精度だな。
これならNグラムでインデックスを全部なめて、
最新のページを表示させるだけの方がマシな気がする。
スコアなるものがあるようだが、どういう計算だ?

554 :デフォルトの名無しさん:2009/06/05(金) 22:26:44
ライブラリというよりは、1つのアプリケーションだった。この種の
アプリケーションのソースコードって初めてみたけど。

5500行ほどのRubyのプログラムのうち、全文検索のフロントエンド
(検索用の画面)が600行、管理者用の画面が意外とあって2300行、
画面用の共通ルーチンが300行。でも、これらは所詮よくあるCGIの
プログラムで、本質的なものではない。

本当の検索エンジンのコア部分は、クローラーが1200行、全文検索
エンジンが600行、それらの共通ルーチンが500行。随分とコンパクト
に思えたが、そうでもない?
テキストデータの処理ってRubyの得意分野だからと思ったのだが。

555 :デフォルトの名無しさん:2009/06/06(土) 10:58:58
>>499は結局報告されたの?
それともLibXML2のバージョン固有の問題とかそういうので放置?

556 :デフォルトの名無しさん:2009/06/06(土) 11:05:04
> LibXML2のバージョン固有の問題とかそういうので放置
そういうのやだなあ…
複数バージョンのサポートもめんどくさいだろうなとは思うんだけどね

557 :デフォルトの名無しさん:2009/06/06(土) 11:14:15
てか、この報告システムってどうやって使うの?
ここの部分の解説サイトとかない?

558 :デフォルトの名無しさん:2009/06/06(土) 12:05:48
>>557
githubの?

英語の動画だけど
http://github.com/blog/411-github-issue-tracker

559 :デフォルトの名無しさん:2009/06/07(日) 01:25:13
V2が到達点か。
v1.9.9の後はv1.9.10と言う手もあるし、
v1.9.99の後はv1.9.100もあるわな。

構造化なんとか、なんてのは30年くらい昔からあるんだが、完成しない。
ソフトのバージョン上げても、金物の処理が追いつかないからね。
マーフィーの法則も怪しくなって久しいし。

でもまぁ、1.9はちょっと良さそう。
加減乗除の比較はまだだけど、代入はとても速くなった。
頭が大文字の、定数なんて、とても速くなった。(前の(v1.8.7)が遅すぎ)
でも(1.9でも)、速いのが良い人は、0とか0.0とかをコードに埋め込んだのが良いみたい。
変数名は短いのが良い。


560 :デフォルトの名無しさん:2009/06/07(日) 12:09:29


561 :デフォルトの名無しさん:2009/06/07(日) 12:44:20
>>559
何を言ってるか理解できない。

562 :デフォルトの名無しさん:2009/06/07(日) 14:23:52
頭ではなく心で理解した

563 :デフォルトの名無しさん:2009/06/07(日) 14:35:20
峠を攻めたりするような人たちの中の「達人」みたいなにおいは感じる

564 :デフォルトの名無しさん:2009/06/07(日) 14:41:31
マーフィーの法則w

565 :デフォルトの名無しさん:2009/06/07(日) 17:56:59
1.9の次は、普通1.10だよな。
2.0のベータが1.99になることが多いような気がする。
まあ、共通のルールがあるわけじゃないから、メンテナの気分次第だが。

566 :デフォルトの名無しさん:2009/06/07(日) 18:01:37
理解者、現る

567 :デフォルトの名無しさん:2009/06/07(日) 18:08:34
いい加減1.9系を2.0って名乗っちゃえばいいのに。
毎年+1.0するくらいの方が勢いが感じられるよ。

568 :デフォルトの名無しさん:2009/06/07(日) 18:46:09
こだわりがあるんだろ

「2.0」はそれまでのRubyの欠点を補いかつさらに進歩した、
すばらしいものでなければならない!みたいな

569 :デフォルトの名無しさん:2009/06/07(日) 19:01:07
それはるびきちが4ヶ月前に通った道だ
ttp://d.hatena.ne.jp/rubikitch/20090213/1234471677

570 :デフォルトの名無しさん:2009/06/07(日) 19:17:51
周回遅れのさらに周回遅れかよw


571 :デフォルトの名無しさん:2009/06/07(日) 21:19:36
>>567
一桁を越えるとソートがうまくいかなくなるので
番号は大切に使いたいらしい

572 :デフォルトの名無しさん:2009/06/07(日) 22:24:43
総統もソートに相当苦労しているようで(笑)

573 :デフォルトの名無しさん:2009/06/08(月) 00:56:01
Rubyに下品な男などいらん。

574 :デフォルトの名無しさん:2009/06/08(月) 01:49:52
早々にRuby2.0をリリースしてWeb2.0との親和性をアピールするといった戦略練る
マーケティングアドバイザーがRubyコミュニティに必要だと痛感する今日この頃。

575 :559:2009/06/08(月) 02:11:48
>>564
うけてくれて、ありがとう。
マーフィーは別のやつだった。

>>559 は変数の代入をン万回して、その Process.timesをン百個集めて、
分散分析とクラスカル・ウォリス分析をした結果です。
Bartlett による等分散の検定で棄却されるので、
クラスカル・ウォリス分析すると、それでも有意な差があると出ました。
検定の多重性については、よそでやってね。

linuxと比べると、winは何故か分散が大きい。

今日は、Rのpnormを移植するのに忙しくて、他は何もしていない。
うちのqnormはpnormに依存してるのだが、やってみるとqnormの精度があがってない。
来週は、qnormの移植かと。
やだ。


576 :デフォルトの名無しさん:2009/06/08(月) 14:45:55
>>575
>今日は、Rのpnormを移植するのに忙しくて、他は何もしていない。
エーッ、Ruby で統計数学が使えるようになるのか
wktk

577 :デフォルトの名無しさん:2009/06/09(火) 07:48:36
複数言語のRDocを管理するようなプロジェクトってない?

578 :デフォルトの名無しさん:2009/06/09(火) 14:19:25
それは英語と日本語と中国語と・・・という意味?
聞いたことないけど、きっと要望としてはあがってると思う。


579 :デフォルトの名無しさん:2009/06/09(火) 14:27:47
とりあえずは、英語とサブ言語の2つだけあればなんとかなりそうだ
オリジナルのスクリプトから何種類もの言語のhtmlを生成できる必要はあんめえ
オリジナルは英語のRDocで、jaファイルやjaディレクトリに日本語マニュアルが書いてあって、
rdoc -lang ja とすると通常の代わりに ja のマニュアルが使われる(足りないところはオリジナルを参照)みたいな感じ

580 :デフォルトの名無しさん:2009/06/09(火) 18:41:47
rubyforgeとかgithubのgemを.deb化してる商用サイトあったよね(使うのは確か無料)
自分はソースから入れる派だから使わないけど

581 :デフォルトの名無しさん:2009/06/09(火) 21:40:20
>>579
特定のファイルやディレクトリを特別扱いにするのは
後々面倒なことになりそうな気がする(ja/foo.rbとか)。
代わりに複数の言語を併記するのではだめかな。
# @ja ほげほげ
# @en hogehoge
みたいな。


582 :デフォルトの名無しさん:2009/06/09(火) 22:14:20
UTF-8強制計画ですね。わかります。

583 :デフォルトの名無しさん:2009/06/10(水) 13:03:25
>>581
ひとつのメソッドに対して何種類もの言語のマニュアルコメントがつく状態を避けたいんだよ
スクリプトソース本体のマニュアルコメントは英語、または作成者の母国語(日本語とか)
class Foo
 # do hoge and returns hage
 def hoge
  ...

で、どっかのファイルに

Foo => ...
  :"#hoge" =>
          :ja => "hoge します。hage が返ります。" ,
          :cn => "アイヤーhogeアルネソシテhageアルヨ"

こんな感じで書いてあって、rdoc --lang ja を指定すると
"do hoge and returns hage" の代わりに "hoge します。hage が返ります。" が使われるとかさー

584 :デフォルトの名無しさん:2009/06/10(水) 13:08:01
ドキュメントはソースから離れるほどメンテされず放置になるの法則。

585 :デフォルトの名無しさん:2009/06/10(水) 13:15:42
いいんだよ、マニュアルファイルの形式でわかると思うけど、これ自動生成だから

ドキュメント書く人は自分の言語でスクリプト内にマニュアルコメントを書けばいい
マニュアルファイルへの登録とマージは(言語指定をした)コマンドがやってくれる
なんというか、国別マニュアルがライブラリごとにデータベースになってて、rdoc でHTML等を生成するときに
クラス名&メソッド名と希望言語をキーにしてマニュアル文字列を大量に取ってくる形になるとかそんな感じ

586 :デフォルトの名無しさん:2009/06/10(水) 13:23:51
で、できなきゃ諦めもつくかと思って一応やろうと思って、 RDoc の処理に割り込むのが近道だと思ったんだよ
でも、RDoc が メソッド => マニュアル文字列 の対応をどこでつけてるのか俺の実力ではよくわからなくてやめた
RDoc のマニュアルがわかりにくいって本末転倒のアホっぽくていいよね

587 :デフォルトの名無しさん:2009/06/10(水) 13:26:22
>>586がRDocのマニュアルをリライトするスレがあると聞いて


588 :デフォルトの名無しさん:2009/06/10(水) 13:35:06
他の言語ではどうしてるんだろうね。
JavaDocでも複数言語での記述はできなかったはず。

589 :デフォルトの名無しさん:2009/06/10(水) 19:10:33
この世界には英語しか存在しません。
映画を見て見なさい。宇宙人もみな英語を話しています。

というsolution


590 :デフォルトの名無しさん:2009/06/10(水) 19:20:10
オッス、オラ悟空。
オラの映画みたら、インディアンっぽいのが日本語しゃべってた。
でもおっぱいに気をとられて台詞は聞いてなかった。

591 :デフォルトの名無しさん:2009/06/10(水) 23:28:09
朝から、「たのしいRuby」を読み始めて、先ほど読了。
こういう言語を発明できる人は、すごいなw

592 :デフォルトの名無しさん:2009/06/11(木) 00:02:34
>>591
いやいや、1冊読んだくらいで洗脳されちゃダメだってw

そうやって簡単に「Rubyすげえ Matzすげえ」とか思い込んじゃう人が
的外れな他言語批判とか始めて結果迷惑だったりするので一応釘刺し。

593 :デフォルトの名無しさん:2009/06/11(木) 00:10:28
良い所もあるんだろうけど、微妙なところが放置されてたりして
結構あれでなに。まぁ、発展途中なんだろうけどね。
というか公開されてから、もう10年以上たってんだなー

594 :デフォルトの名無しさん:2009/06/11(木) 00:41:57
そんなに言語仕様で微妙な所ってあったっけ?
まあ確かに、多重代入の辺りとかは怖くて触れないけど

595 :デフォルトの名無しさん:2009/06/11(木) 00:56:59
へ?

596 :デフォルトの名無しさん:2009/06/11(木) 01:04:09
仕様だけはいいけど、実装と文書がクソ
Matzは英語圏で活躍すべきだった

597 :デフォルトの名無しさん:2009/06/11(木) 02:48:38
>>591
おまえ読むの早いな。1ページ2分くらいで読むのか。

598 :デフォルトの名無しさん:2009/06/11(木) 03:15:17
>>591
本読むだけでなく、実際に書かないと。

599 :デフォルトの名無しさん:2009/06/11(木) 07:53:10
本を書くって意味かとオモタ

600 :デフォルトの名無しさん:2009/06/11(木) 13:48:37
>>596
どこに仕様なんてもんがあるんだ?

601 :デフォルトの名無しさん:2009/06/11(木) 14:36:13
実装によって実現されているものが仕様

602 :デフォルトの名無しさん:2009/06/11(木) 14:59:28
>>592
でも的外れなRuby批判と、本当のPythonユーザが喜ばないPython礼賛は許されている不思議

603 :デフォルトの名無しさん:2009/06/11(木) 18:13:39
>>602
「的外れなRuby批判」って言うけど、間違ってることを言わない限りは
批判は常に歓迎されるもんだろう。
たまにキチガイも沸くけど、病気は許す許さないじゃなくて受け入れる
しかないしな。

Python礼賛はよその話だから知ったこっちゃねえ。

604 :デフォルトの名無しさん:2009/06/11(木) 18:58:22
>>602
>本当のPythonユーザが喜ばないPython礼賛は許されている不思議
kwsk

605 :デフォルトの名無しさん:2009/06/11(木) 19:34:20
スレチだろ、詳しくとかいらんわ
どうしてもやりたいなら他でやってくれ

606 :デフォルトの名無しさん:2009/06/11(木) 20:44:56
知識が要らない話題には、知識を持たない奴らが、喜んで食い付いてくる。
これは何処のスレでも、普遍の法則w

607 :デフォルトの名無しさん:2009/06/11(木) 22:44:59
初心者スレの痛いやつがここまできたか
こっちまで荒らしにくるなよ

608 :デフォルトの名無しさん:2009/06/11(木) 22:57:34
逆だ逆

609 :デフォルトの名無しさん:2009/06/11(木) 23:15:59
プログラミングには知識も必要だが、考え方の方が重要だと思うが。
今の言語は覚えること多いけど。

610 :デフォルトの名無しさん:2009/06/11(木) 23:35:33
ふつーのコーダには、知性も知能も実はそんなにいらないってことで。

上の方の人は、知能にふさわしい知識と知性があるからあんまり問題に
ならんことが多いんだろけど、私ら中流以下はとりあえず知識か根性が
多少あればなんとかなるので、そこにいろいろな人種がいるわけです。

611 :デフォルトの名無しさん:2009/06/11(木) 23:36:03
PHPだとEC系を含め、結構CMSが充実してるのだがRubyって少ないよな。
あっても機能的な面で考えると完成度が低かったり。

XoopsくらいのCMSがあればうれしいのだが、なんかないかな?
もうPHPやりたくないんだけど、結局PHPをやっちゃってる。
EC系のプラグインとかあるやつだとうれしいのだが。

612 :デフォルトの名無しさん:2009/06/11(木) 23:40:23
Rubyスクリプトの配布パッケージっていうと、HikiとtDiaryと影舞とRedmineしか知らない。
というか、未だにMySQLやSQLiteのドライバが定着・安定せずうんちゃらかんちゃら
言ってるような言語でお手軽CMSは不可能だと思う。

613 :デフォルトの名無しさん:2009/06/12(金) 00:02:11
>>612
サンクス。やはりtDiaryになるのか。さびしいなあ。

614 :デフォルトの名無しさん:2009/06/12(金) 05:05:42
Rubyは大規模プロジェクトには向かないというのはもう共通認識でいいと思うんだが、
別言語の大規模ソフトウェアをサポートするようなプログラムってRubyで作れませんかね

615 :デフォルトの名無しさん:2009/06/12(金) 05:38:49
でもRubyで作るのは簡単なんだから、大規模でも安定するように改良するほうが
プログラマとしては正しい。他人がつくったものを無料で利用してるくせに、
使いこなせないときはブーブー豚みたいにわめくってのは・・・いやいや、世の中は豚だらけだから仕方ないか


616 :デフォルトの名無しさん:2009/06/12(金) 05:51:32
その共通認識はおれにはないが、サポートするようなプログラムってどんなものだ?
漠然としすぎてイメージがわかないのだが

617 :デフォルトの名無しさん:2009/06/12(金) 06:00:03
>>614
何をもって大規模といってるのかわからん。
どんなターゲットを想定してるのかもわからん。
こんな漠然とした定義で「向かないというのはもう共通認識でいい」って、あんたバカ?

618 :デフォルトの名無しさん:2009/06/12(金) 06:45:34
タイプセーフでない言語は大規模開発には向かないよ

619 :デフォルトの名無しさん:2009/06/12(金) 06:52:52
コンパイル通ってもバグだらけで火を噴いてるJavaプロジェクトは山ほどあるわけだが。
結局は作ってるやつらの腕次第だろ。
負荷的にJavaじゃないとさばけないというのなら分かるが。

620 :デフォルトの名無しさん:2009/06/12(金) 07:03:40
>>619
つまり、大規模開発が破綻する例はどの言語でも非0である、
だから言語そのものの大規模開発に対する向き不向きはすべて等価なのだ、
という意見?

621 :550:2009/06/12(金) 07:07:51
そもそも「大規模開発」と「大規模アプリ」とは別だろう
Rubyで大規模開発が難しかったとしても、大規模アプリが難しい理由にはならん

さらに言うと「タイプセーフでないと大規模開発が困難」って節からしてかなり怪しい

622 :デフォルトの名無しさん:2009/06/12(金) 07:08:42
だから大規模の定義をしろよ。
開発人数なのか
画面数なのか
機能数なのか
利用者数なのか
分野によって大規模の意味が全然違うだろ。

623 :デフォルトの名無しさん:2009/06/12(金) 07:12:04
>>622
とりあえず、そのどれについてもRubyは向いてないな。

624 :デフォルトの名無しさん:2009/06/12(金) 07:12:29
「非0である」←ちゃっかり一般的なことを、さも例外的なことであるように置き換えるな

625 :デフォルトの名無しさん:2009/06/12(金) 07:20:03
Rubyは書いて楽しむものであって
有効なソフトウェアを作るためのものではないから
作るという作業においてどう不向きだって別にいいんだよ

626 :デフォルトの名無しさん:2009/06/12(金) 07:20:21
>>622
開発人数→柔軟すぎるRubyは大人数だと厳しいかも
画面数→問題なし
機能数→素早く追加できるので、むしろRuby有利
利用者数→?
分野→速度が非常に重要なアプリや、GUIアプリは厳しい。それ以外ならおおよそOK

627 :デフォルトの名無しさん:2009/06/12(金) 07:24:33
>>625
全然よくない
言語の魅力は、有効なソフトウェアが作れてこそのものだろう(教育用言語などを除けば)
Rubyの価値は「楽しく、しかも有効なソフトウェアが作れる」ところにある

628 :デフォルトの名無しさん:2009/06/12(金) 07:28:44
>>624
>>619の一行目の詭弁を剥がしただけでしょ。
「バグだらけで火を噴いてるJavaプロジェクトは山ほどある」
これは、アメリカは日本より凶悪犯罪に出会いやすい、という話をしている時に、
「日本でも凶悪犯罪に巻き込まれた人は山ほどいる」
って返すようなもの。

最も少ない部類に属していても十分「山ほど」と言えてしまう「何か」があって、
その上でその「何か」の程度の違いについて語っているとき、
「あっちにだって山ほどあるぞ!」という返しには何の意味ないわけ。

629 :デフォルトの名無しさん:2009/06/12(金) 07:32:52
食べログはRails製。
という事は、Rubyで同時接続数や速度の面も立派にスケールできている。と言える。
俺も難点は開発者数が100人以上のときに問題になる、Rubyの記述の柔軟性だけだと思う。

630 :デフォルトの名無しさん:2009/06/12(金) 07:34:06
>>628
どうでもいいけど普通に多いから

PHPやRubyは工数がでかいプロジェクトにあまり採用されないから比べられないだろ

631 :デフォルトの名無しさん:2009/06/12(金) 07:41:39
PHPでコンソールアプリケーションを作るようなむず痒さを感じる

632 :デフォルトの名無しさん:2009/06/12(金) 07:45:30
食べログってRailsだったのか。知らんかった

633 :デフォルトの名無しさん:2009/06/12(金) 08:05:53
> どうでもいいけど普通に多いから

朝からワロタw

634 :デフォルトの名無しさん:2009/06/12(金) 08:16:23
プログラム以外の話になると加速するスレ

635 :デフォルトの名無しさん:2009/06/12(金) 09:21:25
どういう場面でRubyを使うのがいいのかって、
仕事でやるならそういう話題も大切だよ。
ひたすらプログラムを打ち込むだけじゃないし。

636 :デフォルトの名無しさん:2009/06/12(金) 10:48:12
>>611
www.ruby-lang.orgが使ってるRadiantがあるじゃない。

637 :デフォルトの名無しさん:2009/06/12(金) 11:45:23
>>628
>「バグだらけで火を噴いてるJavaプロジェクトは山ほどある」
やー、これはほんとだろ。
Javaは型があるから大規模開発に向くといわれても、これだけJavaのプロジェクトで失敗しているものが多いと、
型があったところで大規模プロジェクトには関係ないんじゃないのと思う。
Javaの失敗プロジェクトに関わった経験からそう思う。
型の効果がないわけじゃないんだけどさ、なんつーの、車持ってたらモテる!ぐらいの効果しかない。


638 :デフォルトの名無しさん:2009/06/12(金) 12:01:58
その山ほどある火を噴いているプロジェクトの原因のすべてが Java ではないと思う
でかい案件だから上流工程で失敗していることも多い
→要件定義がいつになっても終わらない
→仕様がどんどんふくらむ、設計が終わらない
など。

あと、大規模 → Spring + Hibernate とか ibatis を使う
→ フレームワーク知らないけど Java 経験ありと履歴書に書かれたスキルの低い要員が集められる
→ アーキテクトが綺麗な方式を作っても、業務側が使いこなせない
→ よれる

というのはあるかな。

639 :デフォルトの名無しさん:2009/06/12(金) 13:40:12
いや、車があるのとないのとでは、モテ方にかなり差があるぞ

640 :デフォルトの名無しさん:2009/06/12(金) 14:03:41
大規模プロジェクトっつたらふつー開発人数の事だろ、画面数=人月、機能数=人月
利用者数が多いのは大規模プロジェクトなんて呼ぶかね?
秀丸の利用者数は半端無いけど、大規模プロジェクトとは呼ばんだろ

で、開発人数が多ければ技術レベルはピンキリになるわけで
開発環境が支援しやすいタイプセーフな言語が選択されるのは明らか

あと、プロジェクトレベルで失敗するなんてのは言語じゃなくて
>>638みたいな設計とか組織とか人間関係とかの方に問題があるんだと思う

641 :デフォルトの名無しさん:2009/06/12(金) 14:19:16
最も火を噴きやすい言語xと、最も火を噴きにくい言語yがあったとして、
x.火の噴きやすさ - y.火の噴きやすさ
の値が、火を噴くという現象全体にとってどれくらい大きい(あるいは小さい)のか、
という各人の経験と皮膚感覚についての話題だよな、つまりこれ。

642 :デフォルトの名無しさん:2009/06/12(金) 14:38:01
未だにtypoと戦ってるrubyには関係のない話ですな

643 :デフォルトの名無しさん:2009/06/12(金) 14:41:47
うん、だから大規模開発で本当に問題なことをおざなりのままにして、
「Javaは大規模開発に向く」とかいってるのがおもしろおかしいよねという話。
型がある・ないってのは、プロジェクトが成功するかどうかに大した影響はもたない。
車があってもキモオタはモテないし、車がなくてもイケメンやさわやか君はモテる。
ほんとに大事なポイントには触れず、些細なことを一生懸命議論しているのがかわいい。

644 :デフォルトの名無しさん:2009/06/12(金) 14:44:10
千言万語費やしたところで
Rubyは大規模開発には向かないし
Javaは大規模開発にも耐えうるという現実は変わらないんだけどね。

645 :デフォルトの名無しさん:2009/06/12(金) 15:15:34
千言万語費やしたところで、そんな証明は不可能というほうが現実なんだけどなw

646 :デフォルトの名無しさん:2009/06/12(金) 15:16:45
>>643
> うん、だから大規模開発で本当に問題なことをおざなりのままにして、
> 「Javaは大規模開発に向く」とかいってるのがおもしろおかしいよねという話。
別にそこはおもしろおかしくないよ。だってここ言語スレだもの。

大規模開発を語るスレ、なんて名前のスレがあって、そこでこの話題が延々続いているなら、
そりゃー確かに「もっと重要な物事を差し置いて、言語ばかり語ってもなぁ」って感想になるけれども、
そうじゃなくて、さてRubyの話をしよう、今のお題は何だ? なるほど「大規模開発」か、って状況なわけね。
大規模開発における言語の差の意味の大小が、話題の成立・不成立に関わることは無い。

> ほんとに大事なポイントには触れず、
ほんとに大事なポイントはRubyだから、「大規模開発において真に重要なのは・・・」云々の理屈で
言語ごとの差に一所懸命触れまいとする人のほうが「かわいい」と思う。
よっぽど言語の差の話を進めて出てくるであろう結論を見たくないのかな、とか、色々想像しちゃうよね。

647 :デフォルトの名無しさん:2009/06/12(金) 15:51:18
また暴れてるのか。
「色々想像しちゃうね」とか妄想がどんどんひどくなっていくな。

648 :デフォルトの名無しさん:2009/06/12(金) 16:01:40
何も反論できない人に煽られるのは気分が良いや。もっと泣いて。

649 :デフォルトの名無しさん:2009/06/12(金) 16:06:20
おれは今帰ってきたのだが・・・

650 :デフォルトの名無しさん:2009/06/12(金) 16:14:01
お前の生活なんて知らんよ、そんなこと。
まさか、他の誰かであると認定されたとでも思ってるのか?
もしそうなら、そういうのを「妄想がひどい」っていうんだよ。
他人が自覚的に想像してるのを妄想と言い換えて煽る前に、
自分の無自覚な、ほんまもんの妄想を何とかしたほうがいい。もしそうなら、ね。

651 :デフォルトの名無しさん:2009/06/12(金) 17:01:38
>>650 妄想がひどいな

652 :デフォルトの名無しさん:2009/06/12(金) 17:12:24
俺の妄想の方がひどいぜ

653 :デフォルトの名無しさん:2009/06/12(金) 17:27:20
香ばしいな。

654 :デフォルトの名無しさん:2009/06/12(金) 17:36:38
>>646
何言ってるのかわかんないんだけど、大規模プロジェクトが成功する要因として型の有無はあんまし関係ないという事実がスレによって変わるのか。


>よっぽど言語の差の話を進めて出てくるであろう結論を見たくないのかな

その結論は知りたいねえ。ぜひ語ってくれたまえ。スレ違いとか気にするな。
スレのみんなも、ちょっとばかりすれ違いになるかもしれんが、許してあげてくれ。



655 :デフォルトの名無しさん:2009/06/12(金) 17:38:11
オナニー理論はブログでやってくれ。
URL貼り付けりゃ見に行ってやるから。

656 :デフォルトの名無しさん:2009/06/12(金) 17:49:10
優しいな、いちおう見に行ってあげるなんて。

657 :デフォルトの名無しさん:2009/06/12(金) 17:53:20
>>654
> 何言ってるのかわかんないんだけど、
何言ってるかわかんない人が無理して絡まなくていいのでは。

> 大規模プロジェクトが成功する要因として型の有無はあんまし関係ないという事実が
> スレによって変わるのか。
どのくらいの割合の人が、何を事実だということにしたいのか、がスレによって変わるのでは。

> その結論は知りたいねえ。ぜひ語ってくれたまえ。
会話の結論は、会話を続行しなくては辿り着けないし、会話は一人でするものではないから、
ろくに物を言わず他力本願で待ちモードに入るのは違うのでは。

658 :デフォルトの名無しさん:2009/06/12(金) 18:20:56
じゃあやめようぜw

659 :デフォルトの名無しさん:2009/06/12(金) 19:43:47
>>644
大規模開発よりも
中小規模開発の方がずっとパイがでかい訳だが(´∀` )9im プゲラッチョwwwwwwww

660 :デフォルトの名無しさん:2009/06/12(金) 20:02:31
>>657
わかりにくい文を書いたのはそちらなんだが。
自分でわかりにくい文を書いておきながら、読み手を非難されてもなあ。

>会話の結論は、会話を続行しなくては辿り着けないし、会話は一人でするものではないから、
>ろくに物を言わず他力本願で待ちモードに入るのは違うのでは。

いやだから、型があってもプロジェクトの成否にはあんまり関係ないよと言ったでしょ。
なんでろくに言わずとなるんだろうか。
きみがいう "言語の差の話を進めて出てくるであろう結論" というのが知りたいからぜひ語ってくれとお願いしただけなんだな。
場所も用意したし、思う存分語ってくれたまえ。

661 :デフォルトの名無しさん:2009/06/12(金) 20:04:35
>>659
わらうとこなのか?
中小規模開発がどんなに多くても、数×金額で考えれば、大規模開発のほうが合計金額は大きいだろうよ。
それに、数が多いことはここじゃ別に重要じゃないだろ。



662 :デフォルトの名無しさん:2009/06/12(金) 20:35:16
Rubyの本スレなのにプログラムコードが一つもない件

お前ら暇だったらこれがなんなのか推理しよーぜ
http://www.atdot.net/fp_store/f.i7zxkk/file.%2596%25B3%2591%25E8.png

663 :デフォルトの名無しさん:2009/06/12(金) 20:52:11
>>661
パイを=金額と解釈するゆとり


664 :デフォルトの名無しさん:2009/06/12(金) 20:53:17
悔しかったらRubyで人工衛星の姿勢制御プログラム作ってみろや

665 :デフォルトの名無しさん:2009/06/12(金) 21:04:05
>>662
大量にメモリを喰うベンチマークを走らせた時の、メモリ消費内訳か何か?
以前に、「Rubyのメモリ戦略では、なかなかメモリを解放しない!」
とか問題になってた記憶が

666 :デフォルトの名無しさん:2009/06/12(金) 21:11:50
>>665
いや、横軸のgc.cのオブジェクトってのはすぐわかるんだが
問題は縦軸だろ・・・

667 :デフォルトの名無しさん:2009/06/12(金) 21:12:37
>>664
そんなの、サッカーでホームラン打ってみろやって言う様な物
適材適所って言葉しらんのかね?
ゆとり乙

668 :デフォルトの名無しさん:2009/06/12(金) 21:12:55
>>663
成熟した知的な大人なら、おっぱいのことだとすぐわかるはずだよな。

669 :デフォルトの名無しさん:2009/06/12(金) 21:15:28
>>667
> 適材適所って言葉しらんのかね?
Rubyは大規模開発に向かないっていう適材適所の話なんだから、
知らんのかねも何も、むしろ適材適所の概念を強調したいレスでしょ。

670 :デフォルトの名無しさん:2009/06/12(金) 21:31:08
そもそもRubyで大規模開発って実例がほとんど無いんではないか
(最近は数百万行級のプロジェクトもあるという噂だが)

言語仕様として、Rubyが大規模開発を支援しようとしているようには見えない
しかしRubyのメリットってのも確かにあるわけで、
それがどう相互作用するかは「やってみないと分からない」に近いと思うんだが

671 :デフォルトの名無しさん:2009/06/12(金) 23:35:31
"言語の差の話を進めて出てくるであろう結論" マダー?


672 :デフォルトの名無しさん:2009/06/12(金) 23:44:21
ここは役に立たない

673 :デフォルトの名無しさん:2009/06/12(金) 23:47:28
うは!これから彼を「Ruby暴威」と名付けよう

674 :デフォルトの名無しさん:2009/06/13(土) 00:08:02
Rubyにはひとの脳を破壊する物質があるって婆っちゃがいってた

675 :デフォルトの名無しさん:2009/06/13(土) 00:12:02
夢にMatzが出てきそうだ

676 :デフォルトの名無しさん:2009/06/13(土) 00:15:16
牧師は信用できません

677 :デフォルトの名無しさん:2009/06/13(土) 08:33:23
>>674
固定観念を破壊します。

678 :デフォルトの名無しさん:2009/06/13(土) 11:33:45
ほんとだ。脳を破壊されたやつがわいてきた。

679 :デフォルトの名無しさん:2009/06/13(土) 17:42:50
まあ、言語によらずプロジェクトが大規模な人月の開発になった時点で、そのプロジェクトはほぼ失敗なわけだが。

680 :デフォルトの名無しさん:2009/06/13(土) 18:36:51
>>679
妄想ならちらしの裏にでも書いとけ

ハイ次の方

681 :デフォルトの名無しさん:2009/06/13(土) 21:43:17
国産対決は惨敗か
http://www.google.co.jp/trends?q=Ruby%2C%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0

682 :デフォルトの名無しさん:2009/06/13(土) 22:40:27
失敗=リリースできない、ではないだろう。

PMBOK風に言えば、主にTime、Cost、Quality面で、
当初の目標を達成できない場合の方が多いんじゃないだろうか。
目標を大きく下回った時点でプロジェクトとしては失敗と言っていいと思う。
たとえばリリースできても金がかかり過ぎて、最悪赤字だったり、
リリースがものすごく延期になったりしたらとても成功とは言えない。品質面もしかり。
失敗の率は8割を超えるように思う。ものすごく適当だが。

Scopeは大抵譲れないから、そこだけは死守するんだけどね。

683 :デフォルトの名無しさん:2009/06/14(日) 01:09:08
もっと暴威が理解できるように書けよ

684 :デフォルトの名無しさん:2009/06/14(日) 01:18:24
rubyの良い点って何?

685 :デフォルトの名無しさん:2009/06/14(日) 01:54:30
Perlよりプログラム書いたときの見た目がなんかしっくりくるところ。

686 :デフォルトの名無しさん:2009/06/14(日) 02:40:48
柔軟だけど厳格さもある点が気に入ってる

PHPみたいに「とりあえず0ということにする」みたいなことはない
Javaみたいに目の前のコンビニに行きたいだけなのに、
近所をぐるっと回らされるようなのも嫌だ

687 :デフォルトの名無しさん:2009/06/14(日) 04:21:12
Ruby=ママチャリ
Python=タケコプター

688 :デフォルトの名無しさん:2009/06/14(日) 04:29:34
>>687
それは、Pythonの方が高性能ってこと?
rubyがなんか楽とういか庶民的に読めるけど…

689 :デフォルトの名無しさん:2009/06/14(日) 04:39:39
メソッドチェーンでずるずる書けるとこ

690 :デフォルトの名無しさん:2009/06/14(日) 04:44:12
rubyがママチャリならpythonもママチャリだし
pythonがタケコプターならrubyもタケコプターだ
どっちで作っても同じ動作をする成果物は作れる、実装の仕方が違うだけ
あー、rubyは少し動作が遅いかもしれん

691 :デフォルトの名無しさん:2009/06/14(日) 05:05:46
ruby2.0には高速性も考慮するとか書いてたよね。
って、rubyってそんな遅いの?

もうちょっとこう、PHP程度にドキュメント充実してほしいな。

692 :デフォルトの名無しさん:2009/06/14(日) 06:10:18
>>691
他のスクリプト言語と比べて、言われてるほどには遅くない
ソフトウェアの種類にもよるが、遅過ぎて死ぬようなことはそうそうないはず

693 :デフォルトの名無しさん:2009/06/14(日) 09:25:41
書き方にもよるな
Cを逐語訳したようなのは概して遅い

694 :デフォルトの名無しさん:2009/06/14(日) 10:12:39
たとえば、332546行のApacheのログがあって、この中からGooglebotにマッチする行を
カウントする処理をRubyとPerlで書いてみた。
-- Ruby --
s = Time.now
count = 0
File.open(ARGV[0]){|f|
while(line = f.gets)
  line.chomp!
  if line =~ /Googlebot/
   count += 1
  end
 end
}
e = Time.now
puts "count=#{count} (#{e - s}sec)"

695 :694:2009/06/14(日) 10:13:30
-- Perl --
use strict;
use warnings;

my $s = time();
my $count = 0;
open(LOG, $ARGV[0]);
while(my $line = <LOG>) {
 chomp($line);
 if($line =~ /Googlebot/) {
  $count++;
 }
}
close(LOG);
my $e = time();
printf("count=%d (%fsec)\n", $count, $e - $s);

696 :694:2009/06/14(日) 10:14:21
実行結果はこんな感じ。
Perl :count=52948 (0.000000sec)
Ruby:count=52948 (0.422137sec)

案の定、Rubyのほうが遅いけど、
気になるほど、遅くはないかなと個人的には思う。

697 :デフォルトの名無しさん:2009/06/14(日) 10:36:42
乙、できればそれぞれのバージョンとプラットフォームも書いてけろ
もしWinなら"rb"で開くだけで全然違うんじゃないかと
それとPerlの方、0secだとあれなんで適当にループさせてみてほしいな

698 :デフォルトの名無しさん:2009/06/14(日) 10:39:26
ていうか、ファイルにアクセスして改行ごとに読み込んで正規表現で比較したのに
経過時間が0ミリ秒という時点で何かおかしいと思って欲しい


699 :デフォルトの名無しさん:2009/06/14(日) 10:41:42
>>694-696
面白いな。
Rubyはもっと簡潔に書けるけど。つかchompいらんだろ。

count = 0
File.open(ARGV[0]){|f|
 while(line = f.gets)
  count += 1 if line =~ /Googlebot/
 end
}

Enumerable のメソッドを使えばさらに簡潔に。

count = nil
File.open(ARGV[0]) do |f|
 count = f.count {|line| line =~ /Googlebot/ } # 1.8
 #count = f.each_line.count {|line| line =~ /Googlebot/ } #.19
end


700 :デフォルトの名無しさん:2009/06/14(日) 10:44:12
うわああああ、countへの代入なんかいらんかった。

count = File.open(ARGV[0]) do |f|
 f.count {|line| line =~ /Googlebot/ } # 1.8
 #f.each_line.count {|line| line =~ /Googlebot/ } # 1.9
end

すみませんすみませんすみません

701 :694:2009/06/14(日) 10:51:28
>>698
sleep(1);
my $e = time();
printf("count=%d (%fsec)\n", $count, $e - $s);
こうすると、ちゃんと1秒と表示されるから単純に処理が早いのではないか?と考えてる
count=52948 (1.000000sec)

time()の精度が秒単位なんだろうな。
Perl久しぶりに触ったからこのへんよく分からない。
ミリ秒単位で速度図るようにちょっと修正してみる。


702 :694:2009/06/14(日) 10:54:58
>>697

Ruby 1.8.7-p72
Perl 5.8.8
Redhat 5.3 (64bit)
CPU Core(TM)2 Duo CPU T8100 2.10GHz
メモリ 4GB



703 :デフォルトの名無しさん:2009/06/14(日) 10:56:11
>>701
sleep(0.0001)
とかしてみたら?それで0.0になるようならtimeの精度じゃないかな

704 :デフォルトの名無しさん:2009/06/14(日) 11:01:38
timeコマンド使ったら?
後1.9も試して欲しいな

705 :694:2009/06/14(日) 11:06:52
>>701
timeの精度のようです。
とりあえず、
use Time::HiRes qw(time);
としたら、ミリ秒単位で取れるようになった。
再実行結果
Perl count=52948 (0.343007sec)
Ruby count=52948 (0.479245sec)



706 :デフォルトの名無しさん:2009/06/14(日) 11:07:34
アンカミス。750は703への返信です。

707 :694:2009/06/14(日) 11:08:39
>>704
1.9か。しばらく使う予定ないけど、とりあえずコンパイルして入れてみる。

708 :デフォルトの名無しさん:2009/06/14(日) 11:08:39
普通メモリが十分にあるなら、

ガツンと一括読み込み

改行コードでスプリット

ループ

の方が圧倒的に速いわけだが、
Rubyは内部的にそれをやってくれてるのか?
差を試してみたいがいま死んでてできん。
余裕があったら試してほしいな。

709 :デフォルトの名無しさん:2009/06/14(日) 11:12:16
>>707
たぶん1.9のほうが遅くなるんじゃないかな。
理由は、このスクリプトならIO処理と正規表現がメインだから。

710 :デフォルトの名無しさん:2009/06/14(日) 11:16:29
>>708
やってないというか、それをやらないとRubyは遅い
メモリを潤沢に使うことでCPU時間を減らすのがRuby

よって、

s = Time.now
count = 0
File.open(ARGV[0]).readlines do |line|
count += 1 if line =~ /Googlebot/
end
e = Time.now
puts "count=#{count} (#{e - s}sec)"

が Ruby では妥当

711 :694:2009/06/14(日) 11:17:51
>>709
とりあえず、実行しました。
>>709の予想通りになってますね。
Ruby1.8.7-p72  0.491655sec
Ruby1.9.1-p129 0.600195sec
Perl 5.8.8     0.345018sec

712 :694:2009/06/14(日) 11:20:06
>>710のソースでも実行してみた。
たしかに早くなった。
Ruby1.8.7-p72 0.367141sec
Ruby1.9.1-p126 0.378081sec

713 :デフォルトの名無しさん:2009/06/14(日) 11:29:36
ほんとにIO遅いんだな1.9
ここまでわかりやすいと泣けてくる
ネイティブスレッドの関係だっけ?

714 :デフォルトの名無しさん:2009/06/14(日) 11:45:44
>>710
Rubyに限らず大抵の言語で共通じゃないかな?
逐次データを取ってくるのが遅いのは、ディスクIOの問題だから。
おれがこのやり方を覚えたのは10年くらい前にVBをやってた頃だし。

>>711
サンクス参考になった。想像したより差が出ないなあ。

データが多いほど差が顕著になるのだが、今のコンピュータは速いな。
正規表現は遅いというイメージがあるのだが、
include?とかの方が高速というのはないのかね。さりげなく要求して申し訳ないのだが。。。

715 :デフォルトの名無しさん:2009/06/14(日) 11:51:32
>>714
include?というのは、
if line.include?("Googlebot")という事?
1.8.7-p72  0.631488sec
1.9.1-p129 0.706928sec
さらに遅くなった・・・

>>710のソースでも
1.8.7-p72  0.360617sec
1.9.1-p129 0.393522sec


716 :デフォルトの名無しさん:2009/06/14(日) 11:59:04
>>715
たびたびサンクス。
鬼車速いなあ。

シーケンシャルアクセスの方は速度低下が顕著だけど、
スプリットさせてる方はほとんど変わらないから、
なんかあるのかもね。

ではおれは心置きなく死に続けることにするよ。

Excelで開発とかさっぱりわからん。全然進まない・・・

717 :デフォルトの名無しさん:2009/06/14(日) 12:29:38
>>710
>やってないというか、それをやらないとRubyは遅い
んなわけない。思い込みよくない。

>が Ruby では妥当
んなことない。readlines使うなら
File.open(ARGV[0]).readlines.count {|line =~ /Googlebot/ }
が妥当。



718 :デフォルトの名無しさん:2009/06/14(日) 12:30:31
>>712
700のソースでもやってみて。

719 :デフォルトの名無しさん:2009/06/14(日) 12:44:02
>>700のソースは以下のようなエラーで動かない。
せめて動く状態で貼り付けてほしい
Invalid char `\343' in expression
Invalid char `\200' in expression
Invalid char `\200' in expression
Invalid char `\343' in expression
Invalid char `\200' in expression
Invalid char `\200' in expression

720 :デフォルトの名無しさん:2009/06/14(日) 12:46:03
>>719
ヒント:全角空白

721 :デフォルトの名無しさん:2009/06/14(日) 12:48:06
>>720
了解。ちょっと試してみる

722 :デフォルトの名無しさん:2009/06/14(日) 12:50:32
>>710のソースの結果
1.8.7-p72  0.645904sec
1.9.1-p129 0.580029sec

面倒なので、どちらも#1.8の行の処理で試した。
f.count {|line| line =~ /Googlebot/ } # 1.8
#f.each_line.count {|line| line =~ /Googlebot/ } # 1.9

723 :デフォルトの名無しさん:2009/06/14(日) 12:51:42
>>719
アハハハハハハ
初心者にはこのエラーメッセージじゃわからないんだ。気をつけよう。

724 :722:2009/06/14(日) 12:53:33
アンカミス。
>>700のソースの間違い。

725 :デフォルトの名無しさん:2009/06/14(日) 12:56:53
>>723
初心者で申し訳ない。
しかし、大笑いされるほどの事なのか?

726 :デフォルトの名無しさん:2009/06/14(日) 13:13:02
自分でミスして、人に実行させといてその言いぐさはないだろう
頭おかしいんじゃねーか?

727 :デフォルトの名無しさん:2009/06/14(日) 13:54:23
>>725-726
2chってホワイトスペースの変換処理してないから、HTML仕様に則って1つにまとめられるんだ
だからコードの読みやすさ優先で、スレに貼り付けるときに
わざとインデントを全角スペースにすることはけっこう一般的

つまり誰のミスかと言えば、コード貼った人ではなくてスレからコピペした人

728 :デフォルトの名無しさん:2009/06/14(日) 13:55:40
いわゆる全角英数字で書いて実行できないというのと同じようなものだと思う

729 :デフォルトの名無しさん:2009/06/14(日) 13:57:08
そりゃエラーメッセージみりゃすぐわかることを
>せめて動く状態で貼り付けてほしい
なんて書いてるんだから、笑われてもしょうがない


730 :デフォルトの名無しさん:2009/06/14(日) 13:58:03
貼るほうは半角スペース一個+&nbsp; x2に変換しろ

count = File.open(ARGV[0]) do |f|
   f.count {|line| line =~ /Googlebot/ } # 1.8
   #f.each_line.count {|line| line =~ /Googlebot/ } # 1.9
end

731 :デフォルトの名無しさん:2009/06/14(日) 13:59:21
まあ2ch特有の問題だから、知らないと対応できないかもしれん
エラーメッセージも見慣れないだろう

何にせよ。枝葉末節
次から気をつければいいだけの話

732 :デフォルトの名無しさん:2009/06/14(日) 14:00:57
 

733 :デフォルトの名無しさん:2009/06/14(日) 14:07:33
>>730
マンドクセーよ
動かす前にエディタで全角→半角変換してくれ

734 :デフォルトの名無しさん:2009/06/14(日) 14:09:07
私女だけど全角空白も見抜けない男の人って…

735 :デフォルトの名無しさん:2009/06/14(日) 14:10:29
また暴威だろ。
自分では理屈が通ってると思ってるんだろうけどもはや基地外。
聞いてきたから教えたってわけでもないのに。

しかも速度遅くなってるのが笑えるw(1.9は誤差の範囲っぽい)
なぜあれが速くなると考えたのか理由を聞いてみたい

736 :デフォルトの名無しさん:2009/06/14(日) 14:14:18
>>730
実体参照されるとJaneStyleからコピペしたときに
&nbsp;だらけになって嫌

737 :デフォルトの名無しさん:2009/06/14(日) 14:21:14
これはもう何度でも何度でも言うが、&nbsp; は Ruby が許可する「空白」ではない
C2A0 を空白として使うのは全角空白を使うのと何も変わらない
C2A0 はきちんとした非空白の文字だ

738 :725:2009/06/14(日) 14:22:04
いろいろ教えてくれてありがとう。
今回の事で覚えたから、次は大丈夫だ。
しかし、同じようにエラーで実行できないと考える人は出てくるだろうから、
その時は>>720のように一言教えてあげるようにする。
少なくとも笑う必要はない。

元々は>>691のRubyってそんなに遅いの?という発言に対して、
実行結果を示すだけのつもりだったのが、思ったより長くなった。
書き方を工夫すれば、Rubyでもある程度の速度を出せるという事でどうだろうか。

739 :デフォルトの名無しさん:2009/06/14(日) 14:29:38
>>735
笑われたからといってそう怒るなよ

740 :725:2009/06/14(日) 14:33:07
>>739
>>735は自分ではないぞ。
全角空白の話はもう終わりしよう。


741 :735:2009/06/14(日) 14:45:17
スプリットとinclude?を頼んだのがおれだが

>>740は大人だな。おれも見習わないといかんな。

742 :デフォルトの名無しさん:2009/06/14(日) 16:03:02
で、何でinclude?の方が遅いの?

743 :デフォルトの名無しさん:2009/06/14(日) 22:45:54
>>742
include? は律儀に先頭から一文字ずつ比較するからだと思う。
正規表現がどんな魔法を使ってるかはしらない。

744 :デフォルトの名無しさん:2009/06/14(日) 22:50:58
File.open(ARGV[0]).grep(/Googlebot/).count
が速かったりしないかな。

745 :デフォルトの名無しさん:2009/06/15(月) 00:29:13
>743
じゃ、何でrubyは、アルゴリズム本に載ってるようなBM法とかを実装しないの?

746 :デフォルトの名無しさん:2009/06/15(月) 00:52:19
ruby遅いと聞いたからphpと対比してみた。

ruby

starttime = Time.now

for i in 1..10000

end

time2 = Time.now
p endtime.to_f - starttime.to_f

---------
php

$start = microtime();

for($i=1; $i<=10000; $i++)
{

}

$end = microtime();
echo $end - $start;

----
ruby -> 0.05
php -> 0.02 - 0.03位

747 :デフォルトの名無しさん:2009/06/15(月) 00:59:00
うわ、ミスってるし俺
time2 -> endtimeね…ダメポ

748 :デフォルトの名無しさん:2009/06/15(月) 03:04:44
microtime(true)で実数として取得しないと結果がおかしな事になる場合があるよ。

749 :デフォルトの名無しさん:2009/06/15(月) 08:33:30
ttp://capsctrl.que.jp/kdmsnr/wiki/bliki/?RubyAtThoughtWorks
遅さを認識すれば使いやすい

750 :デフォルトの名無しさん:2009/06/15(月) 10:54:28
>>744
>File.open(ARGV[0]).grep(/Googlebot/).count

それは厳密には行ごとのカウントじゃなくなるから。
今回の場合なら該当文字列は1行に1回しかでてこないと期待できるだろうけど。

751 :デフォルトの名無しさん:2009/06/15(月) 11:13:44
http://www.google.com/search?q=%22rails+2.3.2%22&hl=ja&lr=lang_ja&safe=off&num=100&newwindow=1&start=500&sa=N
"rails 2.3.2" に一致する日本語のページ 277 件中

railsって時代遅れでしょうか?
もしそうならrubyでcgi作るには何がオススメですか?

752 :デフォルトの名無しさん:2009/06/15(月) 11:17:54
CGIでとりあえず何かしたい、ってだけならinclude 'cgi'しとけ。

railsはWebアプリフレームワークだ。時代遅れなんてことはないが。

753 :デフォルトの名無しさん:2009/06/15(月) 11:20:14
>>752
じゃあ2.3.2対応の解説ページください

754 :デフォルトの名無しさん:2009/06/15(月) 11:46:33
rubyでCGI自体がオススメではない。

755 :デフォルトの名無しさん:2009/06/15(月) 12:01:50
CGI ライブラリで大量の何か(訪問者、データ等)を素早く捌くというのは Ruby はあんまり得意ではないな
CGI という状態でないならまだ我慢できるレベルなんだが

1分に 1回くらいしか使われないような裏方 CGI とかそういうのにはまだ向いてる

756 :デフォルトの名無しさん:2009/06/15(月) 12:35:33
せっかくRubyやんだからRailsやっとけ。
流行りものだし、まあそれなりに作りやすいし、「Railsで作りました!(キリッ」
って言っとけばハッカー受けはいいからアクセスは稼げるし
IT企業にヘッドハントされるかもしれない。

どちらにせよ今時CGIはない。せめてramazeとかにしとけ。

757 :デフォルトの名無しさん:2009/06/15(月) 12:38:40
>>756
らめぇもシナトラも CGI としてきちんと動くようになってから代替を口にしてください

758 :デフォルトの名無しさん:2009/06/15(月) 12:46:58
あれは Rack がいけないんだよ
Rack がきちんと CGI に対応さえすれば薔薇色の未来が

759 :デフォルトの名無しさん:2009/06/15(月) 14:18:42
>>753 何から何まで解説してあるページが最新のブツにあるわけないだろ。

何から何まで解説してあるページがほしいならPerlでも使ってなさい。

760 :デフォルトの名無しさん:2009/06/15(月) 14:21:10
>>750
> それは厳密には行ごとのカウントじゃなくなるから。
1.8のIO#eachは行ごとにyieldするから、行ごとのカウントだよ。

>File.open(ARGV[0]).grep(/Googlebot/).count
それとは別に、ファイルをオープンしっ放しでGCまかせというスタイルは非常にお勧めしない。


761 :デフォルトの名無しさん:2009/06/15(月) 16:10:19
>>760
その通りでした。ごめんなさい。

762 :デフォルトの名無しさん:2009/06/15(月) 17:22:54
railsのscaffoldって楽だけど、ただの雛形だよね?
それに、メソッドとテンプレートが対応してるのはいいんだけど
制約という風に受け取ってしまうんだが…やりようがあるのかな

763 :デフォルトの名無しさん:2009/06/15(月) 17:43:14
流れ見て思い出した、やむを得ずCGI使うとしてCGIAltってどう?
ニコ動も使ってるらしいしcgi.rbにダメだしするようなるびま記事書いてるぐらいだから
少し期待してるんだけど、まだ出番が無くて


764 :デフォルトの名無しさん:2009/06/15(月) 18:43:52
>>763
使いたかったら使えばいい。多少改善さているけどそう大きな違いはない。

>ニコ動も使ってるらしいし
さすがにこれはガセだろ。あそこがCGIスクリプト使ってたら大笑いだわ。

765 :デフォルトの名無しさん:2009/06/15(月) 18:45:20
>>762
>railsのscaffoldって楽だけど、ただの雛形だよね?

うんそう。

>制約という風に受け取ってしまうんだが…やりようがあるのかな

routerの設定でいかようにもできる。デフォルトがそうなっているというだけ。

766 :デフォルトの名無しさん:2009/06/15(月) 18:46:09
ごめん、メソッドとテンプレートの対応だったね。
それこそ使いたいテンプレート名をrenderの引数で指定できる。


767 :デフォルトの名無しさん:2009/06/15(月) 18:49:10
Ruby使ってるのは大百科のほうじゃなかったっけ
ttp://dic.nicovideo.jp/a/ruby#h2-5

768 :デフォルトの名無しさん:2009/06/15(月) 18:52:52
>>764
サンクス
ニコ動って言ったのは語弊がありすぎたスマン
ttp://d.hatena.ne.jp/tasukuchan/20090417/nicopedia_hardware
>ニコニコ大百科は、ほとんどのコンテンツが静的になるように注意深く設計してあります。
>Ruby標準のcgiモジュールは使わず、桑田誠さんがリライトしたcgi/cgiextモジュールを改造


769 :デフォルトの名無しさん:2009/06/15(月) 19:01:28
ニコニコ大百科の記事見た
なんでもオブジェクトって言うのもうやめようぜ
ifもendも括弧も変数もブロックもオブジェクトじゃないじゃん

770 :デフォルトの名無しさん:2009/06/15(月) 19:10:01
変数に代入できるものはなんでもオブジェクトなので、
(例えばJavaなんかはそうじゃない)
first class object == 「オブジェクト」ってのは、一応Rubyの特徴と言っていいと思うんだけど。

771 :デフォルトの名無しさん:2009/06/15(月) 19:17:57
>>769
「carとcdrとconsとcondとatom、あとquoteとeqとdefunさえあればLispは記述できるっていったのに
これだけじゃ肝心のカッコが書けないじゃないか!」
とかそういうのと似たようなニオイを感じなくもない

まあ基本はどうでもいいんだが

772 :デフォルトの名無しさん:2009/06/15(月) 19:19:19
オブジェクト以外は全部オブジェクトです、というような微妙なアレを感じるのは確かだ
if とかの制御構造もオブジェクトだったらよかったのに、と思うことはある

動作遅いと思うけど

773 :デフォルトの名無しさん:2009/06/15(月) 19:22:14
> if とかの制御構造もオブジェクトだったらよかったのに、と思うことはある
これ例えばどうだったらよかったの?

774 :デフォルトの名無しさん:2009/06/15(月) 19:26:21
Kernel#if(cond, lambda{then}, lambda{else})

こんなん? これだとメソッドか

775 :デフォルトの名無しさん:2009/06/15(月) 19:27:36
>>771
正直言うと俺もどうでもいいし、そんな所を厳密にして遅くなられるのはごめんだけどさ
ブロック=Procだと思ってたり、変数にメソッド付ければ++できるんじゃねとか思ったり
そういうことが初心者のときにあったもんでつい書いちゃった

776 :デフォルトの名無しさん:2009/06/15(月) 19:41:33
Smalltalkがまさにifもメソッド呼び出しだったとおもったけど、
あれって速度的には動なんだっけ?

777 :デフォルトの名無しさん:2009/06/15(月) 19:45:09
cond.if(then, else)

これなら勝つる

(NOW < time).if {
 puts "timeは新しいです"
},{
 puts "timeは古いです"
}


778 :デフォルトの名無しさん:2009/06/15(月) 20:24:00
>>768
CGIAltとcgiextは同じものだっけ?

779 :デフォルトの名無しさん:2009/06/15(月) 20:28:57
>>778
別物
階層の/と見間違えるけど、組み合わせ的な意味じゃないかな

780 :デフォルトの名無しさん:2009/06/15(月) 22:30:25
>>776
Smalltalkでは実際にはifでメソッドを呼び出してはいないわけだけれど(コンパイル時に
条件付きGOTO文に置き換えている)、Matzによればちゃんとメソッド呼び出しにしても
さほど速度面での違いはないらしい。もっともMatzの言うことだから話半分ということで。

781 :デフォルトの名無しさん:2009/06/15(月) 22:38:35
>>777
三項演算子と実質なんも変わらんな

782 :デフォルトの名無しさん:2009/06/16(火) 04:05:26
メソッド名の付け方で質問です。
true/falseを返すメソッドは最後に?を付けるのがRubyの慣習ですが、
同時にtrue/falseを設定できるものの場合、?を付けるのか付けないのか。
標準ライブラリを調べたところ、foo?/foo=という組み合わせは存在せず、
GCモジュールとThreadクラスにfoo/foo=というのはありました。
true/falseを返すのに?を付けないのは正しいのでしょうか。

例えば両方ある場合はfoo/foo=にするのが望ましいのなら、
先にfoo?を作ってしまった場合、あとからfoo=を追加したくなったら
どうすればいいのでしょうか。

慣習であり明確なルールが見当たらないので解釈や感覚の話になるとは思いますが、
みなさんの考えをお聞かせ願えればと思います。

783 :デフォルトの名無しさん:2009/06/16(火) 05:04:28
なんでもいい
いわゆる述語はメソッドの動作を一切規定しない
末尾が ? だからといって真偽に関わる値を返さなくてもいいし
末尾が = だからといって変数に代入を行わなくてもいい
foo= というメソッドだからといって @foo への代入を行わなければならないというわけでもない
値のセットはありうるが外部提供はしそうにないのなら foo= だけ作って foo はなくてもいい
どこで聞いても名前重要と言われるだけだと思うから、そのとき自分がわかりやすいと思うルールで作ればそれでいい

慣習というほどの強い何かがあるわけじゃない
好きにするといい

784 :782:2009/06/16(火) 05:28:46
>>782です。
書き忘れておりました。
自分で作って自分で使うスクリプトならどんな名前でもいいとは思いますが、
オープンに公開する拡張ライブラリの場合はそうも言ってられないと思うのです。
Rubyの慣習からかけ離れた自分ルールで作ってしまうと非常に使いにくくなりそうで、
とはいえその慣習に従おうと思っても、実際どうすればいいのかな?と。

785 :デフォルトの名無しさん:2009/06/16(火) 05:55:58
従うも何も慣習なんてねえって

786 :デフォルトの名無しさん:2009/06/16(火) 06:00:27
慣習は接尾子の役割だけだな
それをどう運用するかは自由だ
どっちかってえとメソッドの名前自体のほうがウェイトが大きい
接尾子は些細な問題に過ぎん

787 :デフォルトの名無しさん:2009/06/16(火) 06:58:15
>>782
俺の意見では
foo
foo?
foo=
の3つを全て定義するのがベスト

788 :デフォルトの名無しさん:2009/06/16(火) 07:08:07
? つきメソッドは立ち位置が微妙すぎて困る
少なくとも、ユーザーに提供するために ? つきメソッドで作るのはかなりビミョー
というかそもそもそういう条件分岐を内包したメソッドを提供しろ

789 :デフォルトの名無しさん:2009/06/16(火) 07:11:03
>>782
foo? と foo= の両方を提供していいと思います。
foo? を定義したら foo= は定義しないなんて規約は特に存在しません。

790 :デフォルトの名無しさん:2009/06/16(火) 07:20:17
> というかそもそもそういう条件分岐を内包したメソッドを提供しろ


791 :デフォルトの名無しさん:2009/06/16(火) 07:28:12
真偽値を返すのではなく、その真偽値を使用する処理も
メソッド自体にかいて、真偽値以外を返せってことだろ

792 :デフォルトの名無しさん:2009/06/16(火) 07:36:40
>>788
そうは言っても、真偽値も普通に必要になるし

793 :デフォルトの名無しさん:2009/06/16(火) 07:45:09
とりあえず、foo?というメソッドを作るのであれば、真偽値を返してほしい。
それ以外のfoo=/fooは必要に応じて定義すればいいんじゃないの?


794 :デフォルトの名無しさん:2009/06/16(火) 08:59:01
真偽値が必要ということは「切り出された判断」が必要だとみなされたってことだけど、
それの多くは「真偽判断だけを切り出したことが間違い」だと思う
よっぽどプリミティブな汎用ライブラリなら問題ないかもしれんが、おそらくそんなライブラリは作らんだろう

795 :デフォルトの名無しさん:2009/06/16(火) 09:04:35
ユーザーに if 文を書かせるライブラリは糞ライブラリだという思想には賛成する

が、そんなライブラリ作るのは手間がかかって面倒じゃのう
全メソッドpublicにするから適当に見繕って改造したり継承したりして使ってくれってのじゃ駄目かいね

796 :デフォルトの名無しさん:2009/06/16(火) 09:16:06
>>794-795
ウインドウシステムを組んだとして
あるWindowが表示されてるかどうか、どうやって判断するんだ
普通は Window#shown? とかそんな風に書くだろう

さらに言えば、設定をまとめるためのConfigクラスを作ったときは?
こういうクラスのメソッドは、真偽値を返すものだらけだぞ

797 :デフォルトの名無しさん:2009/06/16(火) 09:19:13
IF文書かせてクソならActiveRecordなんてクソ中のクソだな

798 :デフォルトの名無しさん:2009/06/16(火) 10:10:58
>>796
Window#shown?で判定するなら
Window#showとWindow#hideで状態を変化させる
Window#shown=とするのが間違っているのではあるまいか。

799 :デフォルトの名無しさん:2009/06/16(火) 11:14:39
個別例で言えば、>>798の言ってることは納得がいくな。
背景抜きでfoo?/foo/foo=と抽象化されてしまうと、必要なものを定義しろとしか言いようがないが。

800 :デフォルトの名無しさん:2009/06/16(火) 11:26:31
> ユーザーに if 文を書かせるライブラリは糞ライブラリ
モノによるというつまんない結論をすっ飛ばすなら、まあ間違ってはいないな
それくらいは最大限の努力でもって遮蔽しろということなのだろう
ユーザー任せが多すぎるなあとは思わなくもない

801 :デフォルトの名無しさん:2009/06/16(火) 11:27:34
>>782
Hash#compare_by_identity
Hash#compare_by_identity?
というのがあるっぽい

802 :デフォルトの名無しさん:2009/06/16(火) 11:30:45
>>798
それは画面の描写という副作用を伴うよね。
(変数への代入以外の)そういう副作用はなしに
apartment.pet_allowed = true
apartment.pet_allowed?
というようなのもあっていいんじゃない?
apartment.allow_pet / apartment.disallow_pet
はなんか不自然。



803 :デフォルトの名無しさん:2009/06/16(火) 13:13:34
メソッドじゃなくて予約語だがdefined?はtrueじゃなくて名称を返す。

804 :デフォルトの名無しさん:2009/06/16(火) 13:39:40
Numericクラスのnonzero?はゼロの時にnil、ゼロ以外でselfが返るな。

805 :デフォルトの名無しさん:2009/06/16(火) 20:27:25
>>804
defined?は特殊だからいいけど nonzero? はちょっと違和感があるなあ

806 :デフォルトの名無しさん:2009/06/16(火) 20:36:50
ケント・ベック的にはBoolean Property Setting Methodパターンだな。

http://www2a.biglobe.ne.jp/~seki/ruby/best_practice.html#Boolean.20Property.20Setting.20Method

807 :782:2009/06/16(火) 23:41:06
>>782です。
色々な回答をありがとうございます。
Rubyのユーザーの方々がどんなイメージを持っているのかが、なんとなくわかってきました。
そういったイメージの集合体が、いわゆる慣習というものなんでしょうね。
なるべく違和感なく自然に扱えるようなメソッド構成、メソッド名にしていけるよう、
よく考えてみます。

あ、特に話題がなければそれなりに面白い話だと思うので引き続きどうぞ。

808 :デフォルトの名無しさん:2009/06/17(水) 01:33:24
ケントベックとか超久しぶりに聞いたな。
最近は何か別のネタでもあるのかな。

809 :デフォルトの名無しさん:2009/06/17(水) 02:30:26
>>808
http://blogs.itmedia.co.jp/hiranabe/2009/04/junit-max---ken.html

810 :デフォルトの名無しさん:2009/06/17(水) 11:42:42
ttp://www.ruby-lang.org/en/downloads/
のページだけど、Ruby1.9のダウンロードリンクはあるんだけど、1.8のがない。
そりゃたしかに安定版の最新は1.9.1かもしれんけど、世の中で広く使われているのはいまだ1.8系なんだから
1.8系へのリンクはあっていいよな。
こういう不親切さがRubyへの不満となるんだよ。

811 :デフォルトの名無しさん:2009/06/17(水) 11:59:55
日本語のページとはかなり違うな。
ttp://www.ruby-lang.org/ja/downloads/


812 :デフォルトの名無しさん:2009/06/17(水) 12:03:43
1.8.7 のパッチレベル増えたなあ
俺まだ p72 だ

813 :デフォルトの名無しさん:2009/06/17(水) 12:36:03
>>810
1.8とかいつの話だよ

814 :デフォルトの名無しさん:2009/06/17(水) 12:43:38
え?

815 :デフォルトの名無しさん:2009/06/17(水) 12:47:48
>>812
俺も p72だー
よろしくね

816 :デフォルトの名無しさん:2009/06/17(水) 20:44:07
github で fork ボタンを押した
てきとうに手元で commit して git push "Your Clone URL"

おー history に俺の名前ばっかだ
無理した感じの英語で書いたコミット説明がずらっと並んで痛々しい

ところで fork ボタンを押すと fork されたよって連絡が行くって本当ですか
怖くて fork しにくいじゃないか

817 :デフォルトの名無しさん:2009/06/17(水) 20:54:08
blade で UTF-8 メールが化けちゃうのはなんとかならんのか
ruby-list:46090 とかのアナウンスが読めなくて悲しい

818 :デフォルトの名無しさん:2009/06/17(水) 21:05:17
UTF8はWindows界隈で広く使われているので全力で妨害します。

819 :デフォルトの名無しさん:2009/06/17(水) 21:20:18
>>816
いじる前にはforkする必要ないよ。
怖いんならいじり終わってmergeしてもらいたいときだけforkすればよろし。

820 :デフォルトの名無しさん:2009/06/17(水) 21:45:51
>>818
さっさとそうなっていてくれていいのに…っていうドザの願いを踏みにじる無神経なレスだなw

821 :デフォルトの名無しさん:2009/06/17(水) 22:03:45
Windows界隈で広く使われてるのが本当にUTF-8だったらよかったのに…
と思ってるWindows使いは星の数ほど居る。

822 :デフォルトの名無しさん:2009/06/17(水) 22:35:46
俺SJISでしか使ったことないや

823 :デフォルトの名無しさん:2009/06/17(水) 22:41:30
MS様の庇護を離れた場所で使う場合、
・よっぽど知り尽くして使うか、
・よっぽどてけとーに使うか、
どちらかでない限り必ず間違いなく絶対にいつか
"理不尽な"トラブルに出くわす、それがSJIS・CP932クオリティ

824 :デフォルトの名無しさん:2009/06/17(水) 22:58:47
まっつんはeucが廃れつつあることに腹を立て
それならばいっその事とascii以外の全ての文字コードを切り捨て
一方Guidoは90%のユーザーの利便性を考えUTF-8を採用した。

825 :デフォルトの名無しさん:2009/06/17(水) 23:08:55
切り捨てたんじゃないよ平等に扱うことにしたんだよ
文字列って言ったって所詮はバイト列さ!
エンコーディングなんつまりはバイト列の付加情報さ!

826 :デフォルトの名無しさん:2009/06/18(木) 00:17:32
デフォルトのスクリプトエンコーディングはUTF-8でいいと思うんだ
ファッキンなSJISとか使いたい奴だけマジックコメント書けよ

827 :デフォルトの名無しさん:2009/06/18(木) 01:05:21
>>824=>>825

828 :デフォルトの名無しさん:2009/06/18(木) 01:25:06
デフォルトのエンコーディングを決めといてくれればよかったのに。
とは思うなー

829 :デフォルトの名無しさん:2009/06/18(木) 02:07:59
デフォルトはASCIIだろ

830 :デフォルトの名無しさん:2009/06/18(木) 06:45:27
デフォルトがないっていうのは「エンコーディング情報がありません」と言って
読み込み時にFATALで死ぬような状態を言う
嘘でも冗談でもスクリプトは読み込まれて実行されるんだから、デフォルトエンコーディングは一応存在はしているぞ

831 :デフォルトの名無しさん:2009/06/18(木) 06:49:59
なーなー
gemライブラリで書いたテストをRuby1.9で実行するとEncodingの関連でエラーが出るんだよー
1.9用のテストだけ別ディレクトリ掘って作っていいよなー

832 :デフォルトの名無しさん:2009/06/18(木) 07:06:41
それやると
「1.8用の文字列関連のテストファイル」と
「1.9用の文字列関連のテストファイル」と
「文字列関連のテストが入ってそうだが実際は取り除かれているテストファイル」
の3つを管理しなければならなくなって苦痛だぞ

833 :デフォルトの名無しさん:2009/06/18(木) 07:32:24
test_hogehoge.rb
test_hogehoge_encoding_18.rb
test_hogehoge_encoding_19.rb

の3つを作って、test_hogehoge.rb の先頭で

if RUBY_VERSION >= '1.9.0' then
 require 'test_hogehoge_encoding_19.rb'
else
 require 'test_hogehoge_encoding_18.rb'
end

とか書くのか
めんどっちいのう

834 :デフォルトの名無しさん:2009/06/18(木) 08:01:28
それだと 1.8 で「test/test_* を全部実行」みたいな一斉テストをしたときに
Ruby1.9 用の test_hogehoge_encoding_19.rb を読んでしまってエラーになる気がする

835 :デフォルトの名無しさん:2009/06/18(木) 08:06:01
require じゃなく、でっけぇ if 文を test_hogehoge.rb の中に入れるのが無難なのか

836 :デフォルトの名無しさん:2009/06/18(木) 08:42:21
うっひょー
Nokogiri を Ruby1.9 で動かしたらコアダンプした

837 :デフォルトの名無しさん:2009/06/18(木) 09:16:36
>>836
よくあること

838 :デフォルトの名無しさん:2009/06/18(木) 12:12:12
CでRuby1.9.1用の文字列を作る場合、エンコード情報を付加する関数を
呼ばないといけないんだけど、1.8.xにはそんな関数無いよね。
1.8.x/1.9.1でソースを共通にしたかったら、どんなふうに書けばいいんだろう。
1.9でversion.hが無くなってちょっと困ってる。

839 :デフォルトの名無しさん:2009/06/18(木) 12:36:51
ヒント: でっけぇ if 文

840 :デフォルトの名無しさん:2009/06/18(木) 12:50:39
1.9拡張の話はあまり出てないね
世界中で困ってるんじゃないかな

…いや、世界の人は困ってないか

841 :デフォルトの名無しさん:2009/06/18(木) 12:57:39
perl の
ttp://blog.livedoor.jp/dankogai/archives/51224106.html
にしても、本当に日本語で UTF-8 使っている奴って何人いるんだろうと思ってしまう。

842 :デフォルトの名無しさん:2009/06/18(木) 13:29:43
GitHubのpull requestって「自信作だけ見てもらう」ってできないの?
世界で自分くらいしか喜ばないような魔改造を含んだ
大量のcommitを作者にぶんなげるのは心苦しいんだがっていうか邪魔じゃん?

843 :デフォルトの名無しさん:2009/06/18(木) 13:45:35
>>842
あー、うん、いますぐブランチ切れ
git branch makaizou
git checkout makaizou
git-emacs では M-x git-branch で makaizou を選べば読んでるファイルが makaizou ブランチのものになる
保存してないファイルがどうなるかは知らんので
ブランチ切る前に Emacs で保存だけはしておけ(コミットする必要はない)

このへんの迷惑かけないような使い方って解説あんまないよね

844 :デフォルトの名無しさん:2009/06/18(木) 14:02:25
>>843
おー

っていうかgitの使い方はスレ違いだな
でもgithubにもう送っちゃったんだよね
今からでもこの最初の3つくらいの変なコミット取り消せないかな
まあいいや
ありがとう

845 :デフォルトの名無しさん:2009/06/18(木) 14:09:57
>>841
Linuxの最近のディストリビューションとか、日本語でインストールしたらデフォルトで
LANG=ja_JP.UTF-8 になってるんじゃないの? 知らんけど。

846 :デフォルトの名無しさん:2009/06/18(木) 14:31:04
Eric入れましたよ いいですねこれ ウヒヒ

847 :デフォルトの名無しさん:2009/06/18(木) 15:16:39
ひげの山男何やってんだwww
ttp://github.com/tenderlove/enterprise/tree/master



848 :デフォルトの名無しさん:2009/06/18(木) 16:49:13
Ruby会議の追加販売、昨日の昼からスタートしたけど、まだ残っているよ

初回販売だと2時間半で終わったのに、まだ残っているんだな

849 :デフォルトの名無しさん:2009/06/18(木) 17:25:06
>>845
日本でLinuxを日本語を使う環境として使ってる奴って何人いるんだ、
という話なのかもしれない。

850 :デフォルトの名無しさん:2009/06/18(木) 22:16:33
>>838
have_func("rb_enc_str_new")
#ifdef HAVE_RB_ENC_STR_NEW


851 :デフォルトの名無しさん:2009/06/18(木) 22:50:31
>>850
なるほど・・・なんだかすごい仕組みだなあ
ともかくこれでできそう。
ありがとう!

852 :デフォルトの名無しさん:2009/06/19(金) 09:14:03
ところで、Hash に値をセットして self を返すメソッドがないのはなんでなんだぜ?

というか、(1..3).inject {|h, x| h.store(x, true) } みたいにやってハマった
[].push(1).push(2).push(3) はできるんだから、
{}.store(1, true).store(2, true).stoe(3, true) ができてもいいと思う


853 :デフォルトの名無しさん:2009/06/19(金) 10:04:10
>>852

(1..3).inject({}) {|h, x| h.merge(x => true) }
{}.merge(1 => true, 2 => true, 3 => true)

で我慢してくれ。



854 :デフォルトの名無しさん:2009/06/19(金) 10:05:46
2つめ間違えた。
{}.merge(1 => true).merge(2 => true).merge(3 => true)
がより元のコードに近いか



855 :デフォルトの名無しさん:2009/06/19(金) 10:12:30
>>852
Hashはimutableなモデルを模倣することをハナから放棄しているからじゃないかな。
素直にeachで破壊的にやれと。

856 :デフォルトの名無しさん:2009/06/19(金) 12:24:12
や、これはruby-devにでも投げて見るといいんじゃない?
obj['hoge'] = val を評価した値が #[]= の実装に依存していた
ころならともかく、今だったらself返すようにしてくれって言っても通るかも。

857 :デフォルトの名無しさん:2009/06/19(金) 12:28:26
>>852
1.9系では、
(1..3).each_with_object(h){|x, memo| memo.store(x, true) }

858 :852:2009/06/19(金) 12:33:24
>>853
いや…代用にはならんでしょ

require 'benchmark'
N = 10000
Benchmark.bm do |r|
 r.report('store') { (1..N).inject({}) {|h, x| h.store(x, 0); h } }
 r.report('merge') { (1..N).inject({}) {|h, x| h.merge(x => 0) } }
end

user system total real
store 0.015000 0.000000 0.015000 ( 0.015625)
merge 71.547000 1.391000 72.938000 ( 72.968750)

話にならん

859 :デフォルトの名無しさん:2009/06/19(金) 12:53:24
merge!/update で

860 :デフォルトの名無しさん:2009/06/19(金) 13:27:37
>>859
おお、そうだった。merge! 使わないとフェアじゃないね。
より正確に bmbm でやってみた。

user system total real
store 0.032000 0.000000 0.032000 ( 0.031250)
update 0.047000 0.000000 0.047000 ( 0.046875)
merge! 0.047000 0.000000 0.047000 ( 0.046875)

update と merge! は実体同じだから一緒。
引数で毎回 Hash 作るコストはそんなでもないのかな。


861 :デフォルトの名無しさん:2009/06/19(金) 13:37:27
>>857
これいいね。ちょっと記述量は増えるけど。
1.9.1p129 で、inject 版とまったく同じタイムになった。

862 :デフォルトの名無しさん:2009/06/19(金) 14:59:46
1.9.1あたりから、小さいArrayやHashを生成するときの処理が
軽くなったという話をどこかで聞いたような

863 :デフォルトの名無しさん:2009/06/19(金) 16:38:13
Ruby作者のいる会社の社長って
きっとさらにすごい経歴の持ち主なんだろうけど
どういう経歴の人なの?

864 :デフォルトの名無しさん:2009/06/19(金) 17:46:44
>>862
Rubyのダイエット
http://cvs.m17n.org/~akr/pub/ruby-diet-lc2007lt.pdf

865 :デフォルトの名無しさん:2009/06/21(日) 19:50:05
>>864
それだ! ありがとう

866 :デフォルトの名無しさん:2009/06/21(日) 20:56:43
>>863
東大卒、東大助教授を止めて松江に戻って起業したら松本さんが
社長と一緒に働くために松江にやってきた。
これくらいしか知らん。

867 :デフォルトの名無しさん:2009/06/22(月) 13:54:10
またか。至る所で見るなその流れ。
マジで社長の自演じゃないかと思ってしまう。

868 :デフォルトの名無しさん:2009/06/22(月) 15:00:45
>>867
ヒント:全部age・「東大卒」「東大助教授」

これで理解できなければ2chから今すぐ離れたほうがいい

869 :デフォルトの名無しさん:2009/06/22(月) 15:21:45
ソースは無いみたいだな

870 :デフォルトの名無しさん:2009/06/22(月) 16:27:56
情報処理学会誌にMatzが書いてたコラムがあったが、
確かまだ売れっ子でない時代に「言語開発者」って肩書きで
雇ったんじゃなかったか?先見の明があったのか何なのか

871 :デフォルトの名無しさん:2009/06/22(月) 17:59:16
なんという自演

872 :デフォルトの名無しさん:2009/06/22(月) 19:41:53
自演乙とか本人乙とか言われてそうだった試しがない

873 :デフォルトの名無しさん:2009/06/22(月) 19:50:19
>>868
本当に東大卒なのか?
あやしい

874 :デフォルトの名無しさん:2009/06/22(月) 20:04:42
>>873
実際はどうでもいいんだろ
評判が落ちればそれで問題ない
はっきり言え


875 :デフォルトの名無しさん:2009/06/22(月) 21:05:59
東大っつったって、毎年3000人から卒業してるんだ(昭和27年からで累計15万人)
そんなに珍しくないぜ?

876 :デフォルトの名無しさん:2009/06/22(月) 21:08:16
どうでもいいよ

877 :デフォルトの名無しさん:2009/06/22(月) 21:10:31
京大も同程度のものだと考えれば、むやみに否定してかかるほど
希少価値のあるもんでもないわな

878 :デフォルトの名無しさん:2009/06/22(月) 21:18:15
昔は東大卒というのは特別の価値があったんだよ。競争率も今とは違うしね。
長く会社にいると分かるけど大学卒業という学歴に対する評価がすごく変わった。
最近じゃうちのような中小企業でも東大卒の子を普通に落とすけど昔じゃあり得んかった。
まぁ景気の問題もあるけどね。

879 :デフォルトの名無しさん:2009/06/23(火) 15:50:15
あるサイトをMechanizeでクロールしたのですが,
checkboxをうまくパースできないようなので(サイトの方の問題だと思います)
checkboxを追加したいのですが,やり方がわかりません。
fieldの場合はadd_field!のメソッドがあるのですが,checkbox(radiobutton)にもそのようなものはありませんか?

ためしてみたのはつぎのようなものです。
agent.get(SOMEURL)
form = agent.page.forms[0]
WWW::Mechanize::Form::CheckBox.new('chkA', '01', true, form)
WWW::Mechanize::Form::CheckBox.new('chkA', '02', true, form)

ruby 1.8, mechanize 0.9.3です。
よろしくアドバイスをお願いします。

880 :デフォルトの名無しさん:2009/06/23(火) 16:44:14
あ、悪い、それも add_field! で動作するよ
ttp://d.hatena.ne.jp/kitamomonga/20080402/ruby_www_mechanize_form#add_field!
> 入力欄や選択リストを任意に作成してフォームに追加します。
って書いてあるけど、チェックボックスがどういうデータを送るかがわかっていればそれが使える

うまい例がないんだが、以下の「ブログフィルタ」っていうチェックボックスで試すと
ttp://search.yahoo.co.jp/web/advanced?ei=UTF-8&p=&meta=vc%3D&fl=0&fr=sfp_as
HTML が <input type="checkbox" id="blog" name="blf" value="1" > なので
これをチェックすると、POST するクエリでは name=value であるところの blf=1 というデータになる
つまり、「name が blf で value に 1 が入ってる入力欄」と同じことになる

require 'rubygems'
require 'mechanize'

uri = 'http://search.yahoo.co.jp/web/advanced?ei=UTF-8&p=&meta=vc%3D&fl=0&fr=sfp_as'
agent = WWW::Mechanize.new
agent.get(uri).form_with(:name => 'as'){|f|
f.field_with(:name => 'va').value = 'dankogai'
}.click_button

if agent.page.links_with(:text => '404 Blog Not Found').empty? then p "NO BLOG!!" else p "blog found" end

agent.get(uri).form_with(:name => 'as'){|f|
f.field_with(:name => 'va').value = 'dankogai'
# ブログフィルタをチェックする代わりに入力済み入力欄として追加
f.add_field!('blf', '1')
}.click_button

if agent.page.links_with(:text => '404 Blog Not Found').empty? then p "NO BLOG!!" else p "blog found" end

881 :デフォルトの名無しさん:2009/06/23(火) 16:45:48
>>879
つまりその例だと

agent.get(SOMEURL)
form = agent.page.forms[0]
form.add_field!('chkA', '01')
form.add_field!('chkA', '02')

で動くと思われ

882 :879:2009/06/23(火) 17:34:54
>>880
ありがとうございました。
ttp://mechanize.rubyforge.org/mechanize/
があまり役に立たなくって...

883 :デフォルトの名無しさん:2009/06/23(火) 18:23:20
Mechanizeに関しては>>880のサイトでなんとかなるだろ
ライブラリ本体は便利なのにオフィシャルマニュアルがうんこだという典型的Rubyライブラリだ
誰かが解説しないとソース読み込める奴以外誰も使えないから流行らないというネガティブスパイラル

884 :デフォルトの名無しさん:2009/06/24(水) 02:22:36
>>878
>昔は東大卒というのは特別の価値があったんだよ。競争率も今とは違うしね。
法学部と、他の学部に格差が

885 :デフォルトの名無しさん:2009/06/24(水) 19:56:15
GitHubで公開されてるそこそこ人気のライブラリをforkしました
なんかすっごい注目されたりとかしたらどうしよう、みたいに思ってましたが
1週間経ってもwatchersは自分1人のままです
世の中そんなもんだと思うので気軽にforkして公開するのがいいと思います

886 :デフォルトの名無しさん:2009/06/24(水) 20:45:13
Rubyのライブラリに限らないけど、
注目されるプログラムとかソフトの割合はかなり低いと思うよ。
ベクターとかでも大量にソフトがあるけどほとんどはたいして使われない。
ベクターか窓の杜にはおれが10年くらい前に作った残骸があるかも。
注目してくれたら当たりくらいに思った方がいいよ。
アップするときは注目される気マンマンなんだけどね。

887 :デフォルトの名無しさん:2009/06/24(水) 22:57:11
CSVに10万件のデータを書き込もうと思うのですが、以下の方法でメモリはパンクしないですか?
いったんファイルに書いたほうがよいでしょうか?
  report = ''
  CSV::Writer.generate(report, ',') do |csv|
   csv < < ['項目1', '項目2', '項目3']
   Mydata.find(:all).each do |mydatas|
    csv << [mydatas.field1, mydatas.field2, mydatas.field3]
   end
  end

  send_data(NKF.nkf('-U -s -Lw', report),
   :type => ‘text/csv; charset=shift_jis; header=present’,
   :filename => “report-#{Time.now.strftime(’%Y%m%d’)}.csv\")


888 :デフォルトの名無しさん:2009/06/25(木) 05:24:37
そもそも付属の csv.rb では1万超したら処理が遅いと思う
fastercsv とかインストールしてそっち使えと思ったがこれ Ruby1.9 か

まあ若干メモリ圧迫するとは思うがそのかわり速いぞ

889 :デフォルトの名無しさん:2009/06/25(木) 05:46:04
>>887
csv生成よりもsend_dataの方が問題な気がする

890 :デフォルトの名無しさん:2009/06/25(木) 05:53:29
>>887
一件あたりのデータサイズがどのくらいになるのかわからないからなんともいえない。
でもいったんファイルに書いた方が安心だとは思う

891 :デフォルトの名無しさん:2009/06/25(木) 06:59:14
>>888>>889>>890

ありがとうございます。
参考になりました。

892 :デフォルトの名無しさん:2009/06/25(木) 11:44:59
>>887
ちょうど1万件ちょっとでやってみたことがあるが、
上半分(csv につめるところ)は、速度は気にならなかった。
ただしあなたがきにしているのはメモリがパンクするかどうかなので、その検証はあまりしていない。

# >>887 の例だとカラムが3つぐらいなので、そのカラムの長さにも寄るけど、10万件ぐらいだったら大丈夫な気もするけど

よく fastercsv の方が速いというが、すでにある CSV をパースするときはそうかも知れないけど、
既存のデータを csv 煮詰めるところは、あまり変わらないように思う。

893 :デフォルトの名無しさん:2009/06/26(金) 12:04:45
fastercsv の方がオプションが充実してる

894 :デフォルトの名無しさん:2009/06/26(金) 16:16:17
ちょっとおたずねしますが
Ruby作者のいる会社って女性はノースリーブで通勤は可ですか?

895 :デフォルトの名無しさん:2009/06/26(金) 16:39:33
すいません。無職板の誤爆でした。

896 :デフォルトの名無しさん:2009/06/26(金) 18:15:10
ノースリーブ禁止のとこなんてあるのか?

897 :デフォルトの名無しさん:2009/06/26(金) 18:34:03
俺の勤務先(N11ズ)は禁止だよ

898 :デフォルトの名無しさん:2009/06/26(金) 18:43:33
>>897
わかんねーよw

899 :デフォルトの名無しさん:2009/06/26(金) 18:45:16
>>894
本人にきけ

>>897
なぜにそんなもったいないことを?

900 :デフォルトの名無しさん:2009/06/26(金) 20:01:31
俺の会社はなぜか夏になると皆短パンになることを推奨してる
リラックスして肩の力を抜こう、ということらしいが…

901 :デフォルトの名無しさん:2009/06/26(金) 20:05:15
NaclはMatz以外全員六尺角刈り

902 :デフォルトの名無しさん:2009/06/26(金) 20:17:53
>>900
冷房を弱めるから服装も、とかそういう意味でなくて?

903 :デフォルトの名無しさん:2009/06/26(金) 22:20:40
>>901
寝言はおごちゃん(辞めたけど)の髪を見てから言え。

904 :デフォルトの名無しさん:2009/06/27(土) 03:06:37
rubyの実装はどうしてこんなに汚いんだ…
外から見ると綺麗に見えるのに中身はごっちゃごちゃ
もう一度練り直してほしいなぁ

905 :デフォルトの名無しさん:2009/06/27(土) 03:10:05
つまり全員六尺角刈りは冷房を弱めるためなんですね!

906 :デフォルトの名無しさん:2009/06/27(土) 07:31:13
>>904
たぶん練り直しが2.0.0になるんだろうな

907 :デフォルトの名無しさん:2009/06/27(土) 07:35:17
>>904はすぐに自分でやらないといけないことに気づき、やがてヒーローとなる。


908 :デフォルトの名無しさん:2009/06/27(土) 08:47:15
>>904は実はMatz本人

909 :デフォルトの名無しさん:2009/06/27(土) 09:12:18
Rubyが遅いって言われてるのも、処理系の実装が悪いから?
JRubyの方が速いなんて言われてるし。

910 :デフォルトの名無しさん:2009/06/27(土) 09:13:52
>>904
どうせなら仕様もなんとかしてほしい.
変数の種類だけで五種類もあるなんて、無駄すぎる。CやLISPは一種類だぜ。
あとスコープが関数と変数で違っていて意味不明。

911 :デフォルトの名無しさん:2009/06/27(土) 09:17:25
>>909
rubyはインタープリタとしてはそんなに遅くはないだろ。むしろ頑張ってる方。

912 :デフォルトの名無しさん:2009/06/27(土) 09:40:21
>>910
関数って何ですか?

913 :デフォルトの名無しさん:2009/06/27(土) 09:53:55
>>912
メソッドやらサブルーチンやらプロシージャやらと同類の処理の固まりです。
言語によって呼び方も定義も中身も違いますので、単にそれらっぽいものの
総称で使われることもある便利な言葉です。少し頭やわらかくして下さい。

914 :デフォルトの名無しさん:2009/06/27(土) 09:59:42
>>913みたいな人がRubyの仕様固めろとか言ってるのが笑える

915 :デフォルトの名無しさん:2009/06/27(土) 10:06:11
おれは思いつくまま好き勝手に書き散らすからお前らが正しく解釈しろ

916 :デフォルトの名無しさん:2009/06/27(土) 10:20:30
>変数の種類だけで五種類もある
そりゃそれぞれ役割が違うから

917 :デフォルトの名無しさん:2009/06/27(土) 10:22:58
別に変数の種類1個にしてもいいけど、そうするとコンテキスト依存性が最強になるぞ
どこで変数が最初に定義されたかでスコープが決まるんだからな
それでもよければ

918 :デフォルトの名無しさん:2009/06/27(土) 10:27:05
そんなん、全ての変数にブロックつければいいんだよ

str=('Hello'){
puts str #=> Hello
}

略記

str = hello {
puts str #=> Hello
}


919 :デフォルトの名無しさん:2009/06/27(土) 10:44:11
> 変数の種類だけで五種類もあるなんて、無駄すぎる。CやLISPは一種類だぜ。

Cの場合はグローバル、ファイルローカル、関数ローカル、静的ローカル、
さらにRubyのインスタンス変数に相当する、構造体メンバ、...

どこから見ても1種類じゃありませんが。

920 :デフォルトの名無しさん:2009/06/27(土) 12:05:07
そもそもおれは「変数の種類」という意味がわからん
具体的に五種類はなんだ?

921 :デフォルトの名無しさん:2009/06/27(土) 12:34:24
こういうのはどうせマニュアルしか見てないんでマニュアルから引こう

・ ローカル変数
・ インスタンス変数
・ クラス変数
・ グローバル変数
・ 疑似変数(selfやtrueや__FILE__など)

の5種類だと思われる

922 :デフォルトの名無しさん:2009/06/27(土) 12:40:28
他言語からRubyに来たらシンプルさに驚くと思うのだけど

923 :デフォルトの名無しさん:2009/06/27(土) 12:43:23
関数厨は放っておけ

924 :デフォルトの名無しさん:2009/06/27(土) 13:12:09
Rubyがシンプルって何の冗談だ。

925 :デフォルトの名無しさん:2009/06/27(土) 13:25:40
>>921
そういうことかよ!それを一種類ってバカじゃないのか?
これを言ったやつのプログラムソースが見てみたい。

926 :デフォルトの名無しさん:2009/06/27(土) 13:27:11
シンプルって何を見てシンプルって言ってんだ。
少なくともrubyより実装が複雑な言語を見たことがない。
素人同然が作った言語を計画性無しに拡張しまくったからもう後戻りできない感じ。
基本的に他言語のパクリの繰り返しなのでスタイルも糞もない

927 :デフォルトの名無しさん:2009/06/27(土) 13:34:17
>>926が実装をきれいにしてくれる事を期待w


928 :デフォルトの名無しさん:2009/06/27(土) 13:34:55
>>921
ローカル、インスタンス、クラス、グローバル、定数、だと思う
var @var @@var $var VAR

で、@ や $ を外すためには変数宣言時に変数の種類を指定する必要が出てくるわけだが
きっと>>910はそんなこと考えてないんだろうな

929 :デフォルトの名無しさん:2009/06/27(土) 13:36:05
全くの素人なんだけど、実装ってどうやったら読めるの?
Rubyをインストールしても中身を見れるのはインタプリタではなくてライブラリだけですよね。
そもそもインタプリタ自身は何の言語で書かれてるの?やっぱりC言語かな?

930 :デフォルトの名無しさん:2009/06/27(土) 13:38:17
http://www.ruby-lang.org/ja/downloads/
Rubyのソースコードをどうぞ。

http://i.loveruby.net/ja/rhg/book/
古いバージョンだが、解説もある。


931 :デフォルトの名無しさん:2009/06/27(土) 13:40:20
クラスライブラリのC実装部分(StringとかArrayとか)はかなり読みやすい。
メソッドと1:1対応に近い感覚で読めたりする。

言語のコア部分は、RHGに沿って読むなら1.9だと全く違ってくるので
1.8系かそれ以前のがいいかな。


932 :デフォルトの名無しさん:2009/06/27(土) 13:49:12
おおありがとうございます。気合入れて読んでみます。
たぶん無理だけどw

933 :デフォルトの名無しさん:2009/06/27(土) 14:00:56
実装の部分はやり方を変えて整えたのが1.9なんじゃないの?
1.9の実装も複雑なのか?
まあ玄人な>>926にすこぶる美しい実装を期待したいな。
部分的に見るだけなのと、膨大な全体を作るのとでは全く勝手が違うことに気づくだろう。

934 :デフォルトの名無しさん:2009/06/27(土) 14:18:14
>>926
PerlがRubyよりシンプルなところを5点以上挙げよ

935 :デフォルトの名無しさん:2009/06/27(土) 14:21:44
・ソースコード
・ソースコード
・ソースコード
・ソースコード
・ソースコード

936 :デフォルトの名無しさん:2009/06/27(土) 14:25:37
Perlのソースコードほど、わかりやすくダメ出しされた例を、俺は知らない

937 :デフォルトの名無しさん:2009/06/27(土) 14:27:24
一応補足すると、開発者に向かって
「あんたはPerlのソースを書くな」って言われたっていう例でってことでね。
大半の人は知ってると思うから蛇足だけど。

938 :デフォルトの名無しさん:2009/06/27(土) 14:31:58
>>933
1.9はYARVを使ってるから、RHGと照し併せては読めない部分がある。


939 :デフォルトの名無しさん:2009/06/27(土) 14:44:26
変数のスコープ云々は、宣言出来るようにすれば見通し良くなるのに

940 :デフォルトの名無しさん:2009/06/27(土) 14:50:19
>>933
抽象構文木の生成までは複雑すぎるので触らずに
バイトコードを吐かせるようにしたのが1.9だったと思う

Ruby言語(とリファレンス実装でもあるMRI)は複雑だと言われていたが、
最近ではJRubyを初め雨後の筍のごとく多数の実装が出てきたのを見ると、
言語処理系の専門家でも手に負えないというレベルではないようだ

941 :デフォルトの名無しさん:2009/06/27(土) 14:52:14
× バイトコード
○ ワードコード

942 :デフォルトの名無しさん:2009/06/27(土) 15:43:31
>>940
複雑≠困難

943 :デフォルトの名無しさん:2009/06/27(土) 16:07:16
def tenpre926(lang_name)
print <<EOS
シンプルって何を見てシンプルって言ってんだ。
少なくとも#{lang_name}より実装が複雑な言語を見たことがない。
素人同然が作った言語を計画性無しに拡張しまくったからもう後戻りできない感じ。
基本的に他言語のパクリの繰り返しなのでスタイルも糞もない
EOS
end

tenpre926 'C++'
tenpre926 'Java'
tenpre926 'Perl'
tenpre926 あなたの好きな言語名


944 :デフォルトの名無しさん:2009/06/27(土) 16:09:52
なんでローマ字と英語が中途半端に混ざってるんだよw

945 :デフォルトの名無しさん:2009/06/27(土) 16:17:46
「プロ」が作った言語を挙げてみようか。



946 :デフォルトの名無しさん:2009/06/27(土) 16:18:16
C#

947 :デフォルトの名無しさん:2009/06/27(土) 16:20:54
Java

948 :デフォルトの名無しさん:2009/06/27(土) 16:24:00
Action Script

949 :デフォルトの名無しさん:2009/06/27(土) 18:29:37
>>929
YARVつーか1.9のVMはこの辺見ながらだと分かりやすいよ

YARVソースコード勉強会 - ひとり勉強会
ttp://d.hatena.ne.jp/hzkr/19000101
YARVアーキテクチャ
ttp://www.atdot.net/yarv/yarvarch.ja.html

950 :デフォルトの名無しさん:2009/06/27(土) 19:33:24
自作データクラスにHashを継承するな
後々改造する人がめんどくさいから

Hashでなくてもよくなったときに、Hash時代との互換性のために
Hashクラスにある全部のメソッドを新クラスに定義する羽目になるぞ

951 :デフォルトの名無しさん:2009/06/27(土) 19:52:14
>>945
javaのジェネリクス機能はプログラミング言語を専門にする研究者が開発した、理論的にも美しい機能。
しかもそれは日本人。
日本が世界に誇る言語はもしかしてjavaなんじゃなかろうか。

952 :デフォルトの名無しさん:2009/06/27(土) 20:05:07
まあなんだ。2ch的にはこのへんを貼っておけば適当に満足する人はいそうだな

ttp://blog.livedoor.jp/dankogai/archives/50974637.html
ttp://www.itmedia.co.jp/enterprise/articles/0712/26/news015_2.html

953 :926:2009/06/27(土) 20:29:06
なんかわけのわかんないことになってるけど…

>>927>>933
そんなもんは俺なんかに頼らなくても元々の開発者たちが意識していないといけないこと。

>>934
あんたに5点挙げろとか指図されるいわれはない。
一言だけ言わせてもらえれば、Perlはバージョンアップごとに仕様もソースコードも慎重に整理されてる。
Rubyと比べれば利用率が半端ないし、開発者もその自覚があるからね。

954 :デフォルトの名無しさん:2009/06/27(土) 20:33:07
>>951
GJの理論付けは日本人だけど、デザインはWadlerだろ。

955 :デフォルトの名無しさん:2009/06/27(土) 20:48:25
とりあえず953が、説明しようとせずに主張だけをする人間だというのは分かった

956 :デフォルトの名無しさん:2009/06/27(土) 20:51:57
>>950

いきなりだれに言ってるんだよ。
そんなことしないし、しようと思ったこともない。

>>953
> 俺なんかに頼らなくても

おまえだれだよ。わけわからんのはおまえだ。

なんでいきなり変のがウヨウヨわいてくるんだ?

957 :デフォルトの名無しさん:2009/06/27(土) 22:32:16
>>950は面白いからOK
>>953は文句言うだけで何もできないから×
できるのかもしれないけど、やらないよね。絶対。
できないのとやらないのは同じ。

958 :デフォルトの名無しさん:2009/06/28(日) 02:40:57
>>926
>少なくともrubyより実装が複雑な言語を見たことがない。

・・・はぁ?
PerlやC++のほうがよっぽど複雑なんだけど。
海外では「Rubyの実装はシンプルすぎる(高速化の工夫が足りない)」と言われているのに。

ちなみにどのへんの実装が他の言語より複雑なのさ?具体的に指摘してみようぜ。


>>953
>一言だけ言わせてもらえれば、Perlはバージョンアップごとに仕様もソースコードも慎重に整理されてる。
>Rubyと比べれば利用率が半端ないし、開発者もその自覚があるからね。

だからどうした?慎重に管理されているから複雑じゃないとでもいうのか?

959 :デフォルトの名無しさん:2009/06/28(日) 02:58:36
>>958
必死なのはわかりますが、人に根拠や具体性を求めたかったら
まず持論に根拠や具体性を持たせましょう。

960 :デフォルトの名無しさん:2009/06/28(日) 03:11:43
rubyに工夫が足りないなんて分かりきってること。
シンプルの意味を勘違いしてるんじゃね?
たとえ1000行のコードでもスキル無い奴が書けばすごく複雑になる。

961 :デフォルトの名無しさん:2009/06/28(日) 05:45:16
>>960
>1000行
こーゆー所とかの話?

962 :デフォルトの名無しさん:2009/06/28(日) 07:15:29
Ruby派もアンチもいい加減抽象的な議論はやめてください

963 :デフォルトの名無しさん:2009/06/28(日) 08:19:52
議論するならちょっぴりでもプログラムソースでも貼り付けて、
どこがどうとかまともにやってくれ。水掛け論じゃんかよ。
流れを図におこしてPerlと比較するとか。どうせできないんだろ?

964 :デフォルトの名無しさん:2009/06/28(日) 08:38:00
偉そうなこと言う前にお前がまず具体的なソースを出せば?

965 :デフォルトの名無しさん:2009/06/28(日) 08:46:36
ああ、やっぱできないんだね。

そ れ す ら w

966 :デフォルトの名無しさん:2009/06/28(日) 08:57:32
th->cfp->lfp[0]みたいなむき出しの記述がそこかしこにあったり
PUSH_TAGが散在しすぎだったりで、ソース整理して欲しいと思うことはある
こういうのは複雑というのとはちょっと違うか

967 :デフォルトの名無しさん:2009/06/28(日) 09:17:20
コーディングスタイルも統一されてないしね

968 :デフォルトの名無しさん:2009/06/28(日) 09:18:15
>>965
お前の番だよ

969 :デフォルトの名無しさん:2009/06/28(日) 09:25:11
そんなズバリ言うと、いかに今が自分のターンではないかという
大演説が始まっちゃうよw

970 :デフォルトの名無しさん:2009/06/28(日) 09:27:28
rubyも->演算子あんの?

971 :デフォルトの名無しさん:2009/06/28(日) 09:27:29
その程度のことで複雑だの素人だの言ってたのか。
得意げに「お前の番だよ」とかすげー笑えるw

どこが複雑なのかさっぱりわからんし、
どうすればいいかも書いてない。レスしようにもレスできないw

972 :デフォルトの名無しさん:2009/06/28(日) 09:29:36
理解できないなら口出さない方がいいのでは?

973 :デフォルトの名無しさん:2009/06/28(日) 09:30:13
なんだこいつw

974 :デフォルトの名無しさん:2009/06/28(日) 09:30:16
>>971
> レスできない
ああ、やっぱりできないんだね。

975 :デフォルトの名無しさん:2009/06/28(日) 09:31:35
>>971
お前はよく頑張った。もう休んで良いぞ。

976 :デフォルトの名無しさん:2009/06/28(日) 09:34:43
肥大した自意識に知恵がまるで追いついてない子が
必死のやりくりで「俺はお利口設定」を維持しようとしている時の
言動見てる時って、不思議なワクワク感があるよねw

977 :デフォルトの名無しさん:2009/06/28(日) 09:36:50
どっちかというとおなか痛くなる流れだ。
人の記憶の暗黒面をつっつくような、痛がゆい醜さと既視感と。

978 :デフォルトの名無しさん:2009/06/28(日) 09:41:16
Rubyの処理系の全体を把握してるようなやつが、
こんなところでくだを巻いてるわけがない。
そういう人は自分で作ったり、Rubyのメンテナとかをやって、
ある程度不満をどうにかできるからな。

あと、連続投稿ならやめてほしい。うっかりチェックしてしまう。

979 :デフォルトの名無しさん:2009/06/28(日) 09:54:10
自転車置き場の話はいいよ

980 :デフォルトの名無しさん:2009/06/28(日) 10:14:48
おまえら、はじめは日本経済について高らかに論じてたくらいだったのに、
いざ具体的な話になると行きつけのコンビニ店員の態度に
文句をつける程度になるとはどういうことだ。

981 :デフォルトの名無しさん:2009/06/28(日) 10:21:06
それはただの認識不足だろ。
終始文句をつけてるだけだ。

982 :デフォルトの名無しさん:2009/06/28(日) 10:22:11
意味分からん。
rubyのスレだからrubyについて各自思うことを論じ合えばいい。
無知な馬鹿ほど外から文句付けたがるのは仕方ないこと。

983 :デフォルトの名無しさん:2009/06/28(日) 10:26:23
2chがそもそも「外」だからな。

外から文句を付けたがる無知な馬鹿同士、もっと仲良くしようぜ。

984 :デフォルトの名無しさん:2009/06/28(日) 10:36:26
Javaスレでも似た流れがあったなぁ
アノテーションの意義が話題になってて
内容を理解できない馬鹿がソースコードで示せって喚いてたっけ

985 :デフォルトの名無しさん:2009/06/28(日) 10:43:57
Railsのスレが無いんですけど…
Rubyスレ量産するぐらいならRailsスレ作りません?
作っても需要無い?

986 :デフォルトの名無しさん:2009/06/28(日) 10:45:20
http://www.domo2.net/search/search.cgi?word=rails&tnum=50&sort=res+desc

987 :デフォルトの名無しさん:2009/06/28(日) 10:50:12
「意義」が話題ならコードはいらんが、「実装」が話題ならコードは必要だろ。
まあきりがないから別の話題で。特に振るものもないが。

988 :デフォルトの名無しさん:2009/06/28(日) 12:13:46
>>985
http://pc11.2ch.net/test/read.cgi/php/1241100447/

989 :デフォルトの名無しさん:2009/06/28(日) 12:43:03
負け犬ほどよく吠える

990 :デフォルトの名無しさん:2009/06/28(日) 12:49:00
>>989
吠え返せない奴の典型的捨て台詞だね。

991 :デフォルトの名無しさん:2009/06/28(日) 14:05:04
吠え返せてないのは誰でしょう
自分で「具体的に」なんて話題振っておきながら。

992 :デフォルトの名無しさん:2009/06/28(日) 14:32:19
もう埋めようぜ

993 :デフォルトの名無しさん:2009/06/28(日) 14:34:06
次スレはなしでいいよね

994 :デフォルトの名無しさん:2009/06/28(日) 14:50:13
994

995 :デフォルトの名無しさん:2009/06/28(日) 15:01:25
995

996 :デフォルトの名無しさん:2009/06/28(日) 15:43:12
なんだこりゃ?またRuby暴威か?

997 :デフォルトの名無しさん:2009/06/28(日) 15:47:35
997

998 :デフォルトの名無しさん:2009/06/28(日) 15:55:51
998

999 :デフォルトの名無しさん:2009/06/28(日) 16:13:22
>>991
> 吠え返せてないのは誰でしょう
あなたですね。

1000 :デフォルトの名無しさん:2009/06/28(日) 16:14:19
1000

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

222 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)