Rubyについて Part 30 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
08/01/12 11:47:53
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
URLリンク(www.ruby-lang.org)

= 前スレ
Rubyについて Part 29
スレリンク(tech板)

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


2:デフォルトの名無しさん
08/01/12 11:49:04
Ruby 初心者スレッド Part 16
スレリンク(tech板)

【ActiveScript】RubyをWindowsで使うスレ【GUI】
スレリンク(tech板)

RUBYの宿題教えてください。
スレリンク(tech板)

Ruby>>>>>Java
スレリンク(tech板)

Rubyは難しすぎ
スレリンク(tech板)

【カルト】Ruby開発者Matz【モルモン】
スレリンク(prog板)

Python厨とRuby厨が仲直りするスレッド
スレリンク(tech板)

3:デフォルトの名無しさん
08/01/12 11:51:27
Rubyリファレンスマニュアル刷新計画
URLリンク(doc.loveruby.net)
ライブラリ一覧
URLリンク(doc.loveruby.net)
RubyExtensionProgrammingGuide
URLリンク(i.loveruby.net)
Ruby Hacking Guide
URLリンク(i.loveruby.net)
Symbol < Stringも止める。
URLリンク(www.rubyist.net)
クラスローカルインスタンス変数
URLリンク(www.rubyist.net)
クラス変数
URLリンク(www.rubyist.net)
ローカル変数
URLリンク(www.rubyist.net)
可視性メモ
URLリンク(www.rubyist.net)
URLリンク(blade.nagaokaut.ac.jp)
URLリンク(blade.nagaokaut.ac.jp)
YARV without 1.9
URLリンク(www.rubyist.net)
URLリンク(www.atdot.net)
URLリンク(i.loveruby.net)
JSON
URLリンク(json.rubyforge.org)
URLリンク(webos-goodies.jp)
URLリンク(webos-goodies.jp)
YAML
URLリンク(www.ruby-lang.org)
URLリンク(jp.rubyist.net)
URLリンク(www.namikilab.tuat.ac.jp)

4:デフォルトの名無しさん
08/01/12 11:55:02

Ruby on Rails
スレリンク(tech板)


5:デフォルトの名無しさん
08/01/12 19:15:14
>>1-4
スレ立て乙です

6:デフォルトの名無しさん
08/01/12 20:22:39

Ruby/Gtk+
URLリンク(www.unixuser.org)
URLリンク(takeposo.sakura.ne.jp)
URLリンク(ruby-gnome.sourceforge.net)
URLリンク(ruby-gnome.sourceforge.net)
URLリンク(ruby-gnome2.sourceforge.jp)
URLリンク(psux1.kek.jp)
URLリンク(www.rubycgi.org)
URLリンク(ruby.gfd-dennou.org)
URLリンク(www.magicianmaster.jp)


7:デフォルトの名無しさん
08/01/12 20:23:17
Ruby on Rails
スレリンク(tech板)
URLリンク(jp.rubyist.net)
URLリンク(www.onlamp.com)
URLリンク(kyotosanga.com)
URLリンク(blog.hacklife.net)
URLリンク(www.metadata.co.jp)
URLリンク(japan.cnet.com)
URLリンク(japan.cnet.com)
URLリンク(journal.mycom.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www-06.ibm.com)
URLリンク(itpro.nikkeibp.co.jp)
URLリンク(itpro.nikkeibp.co.jp)


8:デフォルトの名無しさん
08/01/13 00:09:18
rubyの宿題すれてあるけど、一体誰が出題してるんだ?
職場の先輩かw

9:デフォルトの名無しさん
08/01/13 10:11:03
学校の授業で良く使われるよ
rubyはどんなバカでも理解できる低級言語だから

10:デフォルトの名無しさん
08/01/13 10:20:45
けなしてるように見えて凄いほめ言葉だなw

11:デフォルトの名無しさん
08/01/13 10:39:41
プログラミングで「低級言語」と言うと
「ハードウェアやメモリ等、マシン寄りの言語」ってイメージがある。
マシン語やアセンブリみたいな。

12:デフォルトの名無しさん
08/01/13 14:28:08
たぶんそのうち監獄で出題されましたとかあるんだろうな

13:デフォルトの名無しさん
08/01/13 14:31:50
「低級言語」っていうのは
low level と low class を間違えた
誤訳らしいけどね

14:デフォルトの名無しさん
08/01/13 19:21:20
ほう それぞれどう訳せばいいのかね

15:デフォルトの名無しさん
08/01/13 19:23:40
「下層言語」…の方がしっくり来そう。やっぱいやな響きだけど

16:デフォルトの名無しさん
08/01/13 19:42:00
違う言語を駆使する者同士が共存するのは非常に困難。
わしゃ疲れた・・・。
誰ぞ、画期的な処方を!

17:デフォルトの名無しさん
08/01/13 19:45:18
さあ、これを授けよう・・・これさえあればなんでも実現できるぞよ・・

つ lambda


18:デフォルトの名無しさん
08/01/13 19:48:54
つparrot

19:デフォルトの名無しさん
08/01/13 23:22:34
rubyのlambdaはそこまで万能じゃないような気がする

20:デフォルトの名無しさん
08/01/13 23:45:31
>>17
rubyならラムダはどういうときに活用すればいいでしょうか。

21:デフォルトの名無しさん
08/01/14 19:10:34
つ JVM

22:デフォルトの名無しさん
08/01/14 20:54:16
>>12
以前そういう話があったけど
結局そのプロジェクトは中止になったんじゃなかったっけ?

23:デフォルトの名無しさん
08/01/14 22:44:07
>>20
eachとか使ったことあるなら、既に使ってるはずだが

24:デフォルトの名無しさん
08/01/14 23:25:43
>>23
使ってねーよ叱咤か

25:デフォルトの名無しさん
08/01/14 23:36:45
イテレータは意味的にはラムダ式になってるがな。
それを Ruby 内の用語でラムダと呼ぶかどうかは別として。

26:デフォルトの名無しさん
08/01/14 23:39:40
rubyはしょせんは手続き言語なんでw

27:デフォルトの名無しさん
08/01/14 23:54:40
Amrita2はいつ正式リリースされるのだろう
いい意味でも悪い意味でも楽しみにしてるんだが

28:デフォルトの名無しさん
08/01/15 02:25:32
テンプレートエンジン自体があまり流行りじゃ無いような……
自作するのも良いかもね。

29:デフォルトの名無しさん
08/01/15 02:29:52
今リリースにかかってるって作者の人は言ってるよ。ブログで。

30:デフォルトの名無しさん
08/01/15 10:05:22
>>29
詳しく
gem戦記しか見てなかったから、最新情報が分からないんだ

31:デフォルトの名無しさん
08/01/15 17:23:52
ゲム戦記?

32:デフォルトの名無しさん
08/01/15 20:31:04
>>30
これかな
URLリンク(rmind.g.hatena.ne.jp)

でも初めてAmritaのテンプレート見たけど、ぶっちゃけどう読んでいいのか
わからなかったw

33:デフォルトの名無しさん
08/01/15 21:22:17
>>32
Amrita1 とは別物だねえ。
Amrita1 は id 属性とマッチングさせる仕組で、
テンプレート自体は素の HTML として扱えるものだった。

34:デフォルトの名無しさん
08/01/16 03:31:56
テンプレートは全部自前ならいいんだけど、
第三者が書いたラフな書式のHTMLの加工を考えると
HTMLパーサベースがいいというわけで開発中。

サイボウズなど既存のサイトのデータを
吸い出して加工するとかできたほうがいい。

35:デフォルトの名無しさん
08/01/17 17:32:48
まーたruby-lang.org落ち取る
ruby-lang.orzに変えたらどうだ?

36:デフォルトの名無しさん
08/01/17 17:35:53
g が一瞬ウンチに見えた

37:デフォルトの名無しさん
08/01/17 17:57:15
>>32
あれはAmXMLという専用記述形式
Amrita2は一応XMLも扱える(というかXMLが基本?)

しかしAmXMLは何度見ても読める気がしねえ……

38:デフォルトの名無しさん
08/01/17 17:57:27
>>35
いつものことなのでいちいち落ちてるの報告しなくても良いよ

39:デフォルトの名無しさん
08/01/17 18:00:18
>>38
お前は嫌な奴のようだな

40:デフォルトの名無しさん
08/01/17 18:08:20
>>38
いちいち報告してうざがられる事に意味があるんですよッ
だったら早くなおさんかーい!

41:デフォルトの名無しさん
08/01/17 18:10:38
Googleに無料でスクリプト技術を提供するからと持ちかけて
代わりにホスティングさせればすべて解決。

42:デフォルトの名無しさん
08/01/17 18:13:20
>>41
googleにrubyを?

43:デフォルトの名無しさん
08/01/17 18:22:28
ミラーサイト募集とかはされているのでしょうか?

44:デフォルトの名無しさん
08/01/17 20:40:42
>>41
Shumidt「ジャップがなんかもちかけて来たwww どうするページ」
Larry「Pythonあるしなぁ。俺のボーイングでも掃除させる?」
Guido「哀れRuby・・・人間、そこまで墜ちたくはないものだ」

45:デフォルトの名無しさん
08/01/17 20:45:54
日本語ドキュメントが多いからRubyを使ってるけど
同じように、英語圏の人間ならPythonを選ばない理由は無いだろうと思う

46:デフォルトの名無しさん
08/01/17 20:55:17
とりあえずruby-lang上でリファレンス読ませちゃあかんなあのサイトは
ダウンロードだけにして本家から切り離した無料webスペースにでも静的ファイルで置いとけって感じ


47:デフォルトの名無しさん
08/01/17 21:49:03
>>46
ぜひやってください
おながいします

Rubyコミュ一同

48:デフォルトの名無しさん
08/01/17 21:56:48
URLリンク(ns103.net)
これなくなっちゃった・・・
だれか保存してたらうpして欲しいんだけども・・・

49:デフォルトの名無しさん
08/01/17 23:49:32
無料webスペース(笑)

50:デフォルトの名無しさん
08/01/18 01:18:11
dmyencoding.cが入ったときからx86-64_linuxでビルド出来なくなったんだけど。

具体的にはminirubyが
abort()
一行で落ちる。エンコーディング回りはまだいじりまくってくるみたいだから
しかたないけどメインプラットフォームのLinuxでビルドできないとかやめてほしいなあ。

あと気づいたけど、Continuationが外部ライブラリになったんで -rdebugしたら
callccがなくて終了しちゃうね。 -rcontinutaion -rdebugとしなきゃだめ。


51:デフォルトの名無しさん
08/01/18 02:31:16
>>50
backtraceくれ。
dmyencoding.cでってのがよくわからんが。


52:デフォルトの名無しさん
08/01/18 02:38:48
(gdb) run -ve 'abort'
Starting program: /home/fugafuga/ruby/miniruby -ve 'abort'
[Thread debugging using libthread_db enabled][New Thread 47622444985680 (LWP 1553)][New Thread 1073756496 (LWP 1556)]
ruby 1.9.0 (2008-01-18 revision 0) [x86_64-linux]
[Thread 1073756496 (LWP 1556) exited]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 47622444985680 (LWP 1553)]
0x000000000078e860 in ?? ()
(gdb) bt
#0 0x000000000078e860 in ?? ()
#1 0x00000000004173a4 in rb_enc_precise_mbclen (p=0x2b4ff604ef50 "status",
e=0x2b4ff604ef56 "", enc=0x785a40) at encoding.c:755
#2 0x00000000004a6037 in coderange_scan (p=0x2b4ff604ef50 "status",
len=<value optimized out>, enc=0x785a40) at string.c:137
#3 0x00000000004a60a7 in rb_enc_str_coderange (str=<value optimized out>)
at string.c:161
#4 0x0000000000418414 in rb_enc_compatible (str1=<value optimized out>,
str2=<value optimized out>) at encoding.c:657
#5 0x00000000004a5da3 in rb_str_cmp (str1=47622429929296, str2=47622429929302)
at string.c:1427
#6 0x00000000004a2055 in st_lookup (table=0x77c710, key=140736226213792,
value=0x7fffb4c53f98) at st.c:294
#7 0x0000000000464390 in rb_intern3 (name=0x4f862d "status", len=6,
enc=0x785a40) at parse.y:8910
#8 0x00000000004bd80c in rb_iv_get (obj=47622429695480,
name=0x2b4ff604ef56 "") at variable.c:1925
#9 0x000000000043113e in sysexit_status (err=47622429929296)
at eval_error.c:229
#10 0x00000000004361ea in ruby_cleanup (ex=1) at eval.c:191
#11 0x0000000000436242 in ruby_run_node (n=0x2b4ff6016000) at eval.c:258
#12 0x0000000000416cfd in main (argc=3, argv=0x7fffb4c54298,
envp=<value optimized out>) at main.c:35

53:デフォルトの名無しさん
08/01/18 02:42:44
こんな感じ。追っかけてみると
miniprelude.cを読んで、abortを読んで、メインスレッドが終了して、
それから正常終了するはずなんだけど、なぜかstatusというのを読もうとして
コアを吐く。ううむ・・

54:デフォルトの名無しさん
08/01/18 13:01:10
>48
作者です

家に帰ったら探してみます
どこにアップすれば良いですか?


55:デフォルトの名無しさん
08/01/18 15:12:05
>>54
恐れ入ります
ここはどうでしょうか?
URLリンク(www11.axfc.net)
# *.gzに対応してるみたいです。

ちなみに元に有った場所に再公開はありませんか?
リンクしているサイトも多いようですし・・・

56:デフォルトの名無しさん
08/01/18 16:06:31


57:デフォルトの名無しさん
08/01/18 16:24:46
>>53
p enc_tableしてみて。
あと環境変数LANGとかLC_ALLとかは?


58:デフォルトの名無しさん
08/01/18 20:22:49
>>57
(gdb) p enc_table
$2 = {list = 0x7d07f0, count = 78, size = 80, names = 0x7d0d00}

LANG=Cにしてるけど、関係ないんじゃないかなあ。
[ruby-dev:33099]の変更でdmyencoding.cが入ったからとにかく
エンコーディングに関係してるのはわかるけど・・・

ちなみに鳥はUbuntu gutsyで、setarch i386してビルドするとちゃんと
出来るんだよね。まったく!

59:デフォルトの名無しさん
08/01/18 21:28:05
win32版ruby1.9だけど
>ruby19 -ve "g=ThreadGroup.new;t=Thread.new{sleep 5};z=0;begin g.add t;z+=1;Thread.pass end until g.list.include?(t);p z"
ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32]
6 #こいつは実行するたびに違う、本来なら1で無ければならないはず
スレッドを作ってすぐには、スレッドグループの変更ができない
どう書く?orgの「ワーカスレッドを安全に終了させるまで待機」のお題を1.8で解いたので
1.9でも動かしてみたらさっぱり動かんのでいろいろ試したら ThreadGroup#addが機能してなかった
真にスレッドグループの変更が成功するまでThreadGroup#addを行うと1.9でも動くようになった


60:デフォルトの名無しさん
08/01/18 21:54:22
1.9でネイティブスレッド化したので標準入力からのgetsがキャンセルできるか試してみたら
>ruby19 -rtimeout -ve "s='';timeout(5){s=gets};p s"
ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32]
-e:1:in `gets': execution expired (Timeout::Error)
エラーが出るので、自前でやると
>ruby19 -ve "s='';t=Thread.new{s=gets};n=Time.now;Thread.new{sleep 5;puts %!sleep #{Time.now-n}!;t.kill};t.join;p s"
ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32]
sleep 0.0
""
いきなり終了してsleep 5が機能していない
時間を計って5秒待つとうまくいく
>ruby19 -ve "s='';t=Thread.new{s=$stdin.gets};Thread.new{n=Time.now;sleep 0.01 while Time.now - n < 5;puts %!sleep #{Time.now-n}!;t.kill};t.join;p s"
ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32]
sleep 5.0
""


61:デフォルトの名無しさん
08/01/19 00:00:38
1.9のsprintf
>ruby19 -Ks -ve "p sprintf('%s','ソ').encoding"
ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32]
#<Encoding:Shift_JIS>
でも幅を指定すると
>ruby19 -Ks -e "p sprintf('%10s','ソ').encoding"
#<Encoding:ASCII-8BIT>
ん?そして
>ruby19 -Ks -e "p sprintf('%10s%s','ソ','ソ').encoding"
-e:1:in `sprintf': character encodings differ (ArgumentError)
なんでやねん!
しかし、文字の幅もバイト数じゃなくて本当の文字の数で計算されるので
フォーマット文字列の%sの幅指定はあまり使い道がなくなったような…
まあUTF8だともともと使えなかったんだろうけど


62:デフォルトの名無しさん
08/01/19 00:08:25
>>58
> (gdb) p enc_table
> $2 = {list = 0x7d07f0, count = 78, size = 80, names = 0x7d0d00}

>>52をみると#1,#2のencの値が妙に小さいんで、レジスタの最適化で消えちゃっ
てのかと思ったが、enc_tableの中身も同じような感じだな。

ついでに、この#1,#2のencの中身は?

念のために聞くけど、最新版で起きるんだよね。


63:デフォルトの名無しさん
08/01/19 01:20:48
>>62
ども。rb_enc_precise_mbclenにbreakpointを設定して
p enc->name
するとASCII-8BITを返す。
> 念のために聞くけど、最新版で起きるんだよね。
少なくともr15052以降ずっと起きてる

64:デフォルトの名無しさん
08/01/19 07:15:07
>>32
亀レスだけどありがとう、助かりました

65:デフォルトの名無しさん
08/01/19 12:34:02
>>55

アップしました
キーワードはrubytkです

>ちなみに元に有った場所に再公開はありませんか?


確か新年早々にハード故障したとか聞きました
リプレースは済んでるらしいのですがデータは消えたのかも知れません
確かにアクセスできませんね
復旧予定は未定ですスミマセン

しかしこの文書まだ見てる方がいるとは思いませんでした

66:デフォルトの名無しさん
08/01/19 17:26:45
>>65
アップありがとうございます
1ページに集約してるのが気に入ってよく利用してました

67:デフォルトの名無しさん
08/01/19 18:12:56
URLリンク(builder.japan.zdnet.com)
Rubyヤバス

68:デフォルトの名無しさん
08/01/19 18:29:57
これはRuby公式サイトのリファレンスマニュアルが503ばっかり出すせいだな
そうにちがいないッ


69:デフォルトの名無しさん
08/01/19 18:45:10
ようやくAmrita2.0.0のリリースが来たー!と思ったら
先頭にこんな記述があった

require 'rubygems'
require 'hpricot'

CGIスクリプトから使おうと思ってた俺涙目w

70:デフォルトの名無しさん
08/01/19 18:52:05
自分とこでgems使うんならいいけどライブラリでgems使うとかやめちくれ

71:デフォルトの名無しさん
08/01/19 18:56:53
それぐらい自分で改編しろよ
簡単だろ

72:デフォルトの名無しさん
08/01/19 19:00:03
直書きせずに、ユーザー環境の -rubygems に頼るべき

73:デフォルトの名無しさん
08/01/19 19:13:31
いちいちrequire 'rubygems'なんて書かないといけないのが問題

74:デフォルトの名無しさん
08/01/19 19:25:36
>>> python > ruby
True

75:デフォルトの名無しさん
08/01/19 19:55:06
irb(main):001:0> python > ruby
NameError: undefined local variable or method `python' for main:Object
from (irb):1
from :0

76:デフォルトの名無しさん
08/01/19 19:56:35
irb(main):007:0> puts ["python", "Ruby", "perl", "php"].sort.join(" > ")
Ruby > perl > php > python

77:デフォルトの名無しさん
08/01/19 20:02:23
(;`Д´)・・・・・

78:デフォルトの名無しさん
08/01/19 20:05:30
>>74-76
本すれで下らないからやめてくれる?

79:デフォルトの名無しさん
08/01/19 20:05:58
perl(ruby, python) > php

80:デフォルトの名無しさん
08/01/19 20:07:32
>>78
半年ROMれ

81:デフォルトの名無しさん
08/01/19 20:12:14
>>> {'Ruby':'ruby','Python':'python','Perl':'perl'}
{'Python': 'python', 'Ruby': 'ruby', 'Perl': 'perl'}


82:デフォルトの名無しさん
08/01/19 20:16:59
>>78
たぶんテスト期間の大学生が、ストレス発散しに来てるんだよ
温かい目であぼーんしてあげようぜ

83:デフォルトの名無しさん
08/01/19 21:13:50
>>69-74

俺は以下のようにしてるけど、これなら ok だよね?

begin
 require "hpricot"
rescue LoadError
 require "rubygems"
 require "hpricot"
end

84:デフォルトの名無しさん
08/01/19 21:17:13
vm_opts.hの最適化スイッチを全部onにして-O6でコンパイルしたら
かえって遅くなっちゃった(´・ω・`)

85:デフォルトの名無しさん
08/01/19 21:32:28
hpricotって流行ってるの?
前試したら文法が変態的なのとXPathでエラーも出さずに
とんでもない挙動を示した覚えがあるんだが

86:50
08/01/19 21:39:30
x86-64だと、abort/exitで落ちるバグはakrさんのr15127のコミットで直りますた。
ありがとうありがとう。

ところで、x86-64は青木さんが毎日checkbuildしてたはずなんで参考になるかなと
思って見たんだけど、どうでもいいエラーで止まってて吹いた。
Ruby-Statusのところで結構ビルドしっぱいしてるけど、内容見るとくだらない
ミスなんだよなあ。たまにチェックとかしないんだろうか。


87:デフォルトの名無しさん
08/01/19 21:51:22
>>70-71
rubygemsの方は、自分で書き換えれば何とかなるけれど
hpricotの方はどうしようもないな
速度を考えてhpricotにしたんだろうか

88:デフォルトの名無しさん
08/01/20 00:07:05
Ruby のテストについて質問させてください。

DHCP の設定ファイルを生成するようなプログラムの受け入れテストを書いているんですが、
テストを実行するホストのネットワーク情報に応じて、テスト内容を変えたいと思ってます。

具体的には、dhcpd.conf に書き込む IP アドレス、ゲートウェイアドレス、ネットマスクをテストを
実行するホストと同じにしたい (IP アドレスだけは、ホストと同じネットワークの空いてる IP アドレスを
自動的に割り当てたい) んですが、うまい方法はあるでしょうか。ネットワーク系のテストを簡単に
してくれるような RSpec のプラグインとかがあれば最高なんですが。。。




89:デフォルトの名無しさん
08/01/20 01:22:42
今日Ruby試験だったね。受けた人いる?

90:デフォルトの名無しさん
08/01/20 01:53:17
>>88
NICが何枚も刺さってる場合は?

91:デフォルトの名無しさん
08/01/20 02:32:49
公式サイトのインストールガイド(MacOSX)に平然と1.9を勧めてるのはいかがなものか。
1.9でirbが普通に通るようになったのは嬉しいけど。

92:デフォルトの名無しさん
08/01/20 02:34:19
マカはコードかかねーから無問題
BSD上がりの奴は1.9がなんなのか心得てるだろうしw

93:デフォルトの名無しさん
08/01/20 02:49:35
1.8は最初から入ってるから1.9の紹介してるのかね?



94:デフォルトの名無しさん
08/01/20 02:59:54
rubyはとんだスイーツ言語

95:デフォルトの名無しさん
08/01/20 05:27:10
>>94
syntax sugarがかかってるもんね。おいしいけど。


96:デフォルトの名無しさん
08/01/20 11:24:36
>>95
しかしそんなとこには虫が湧くんだよな。

97:デフォルトの名無しさん
08/01/20 13:03:36
Syntactic sugar causes cancer of the semicolon.
    -- Alan Perlis

98:デフォルトの名無しさん
08/01/20 13:08:13
SICPだっけ?
セミコロンは湧かないけどendがね・・・

99:デフォルトの名無しさん
08/01/20 17:58:04
[ruby-list:44517]
> 503 Service Unavailableで見えないことが多くなっていた
> www.ruby-lang.org/ja/man/ を /ja/man/html/ 以下においた
> 静的HTMLへのリダイレクトに変更しました。

さっそく見に行ってみたけど、本当に軽くなってて感動した
でもこれどうやって編集すればいいんだろう

100:デフォルトの名無しさん
08/01/20 18:26:37
>>99
とりあえずの急場しのぎにはいいんじゃね?
googleでのサイト内検索ボックスくらいつけてほしいけど・・・

503は、人多すぎで出してるんだっけか
サーバー増強千ならんのかねえ

101:デフォルトの名無しさん
08/01/20 18:27:31
どっちにしろミラーサイトはいるな

102:デフォルトの名無しさん
08/01/21 01:51:51
編集リンクだけwikiにしてあとは性的HTMLにすればいいのにね。

103:デフォルトの名無しさん
08/01/21 01:53:20
つまりエロが足りないんですね。

104:デフォルトの名無しさん
08/01/21 02:03:24
ミラーサイト勝手に作ったら怒られる?

105:デフォルトの名無しさん
08/01/21 02:08:35
URLリンク(www.ruby-lang.org)

106:デフォルトの名無しさん
08/01/22 15:21:41
Ruby 1.9のジェネレータって

def fib(max=1000)
a = b = 1
loop {
raise StopIteration if b > max
yield b
a, b = b, a + b
}
end

g = enum_for(:fib)
loop { p g.next }

みたいにメソッド作らないと使えない?
あとend?とかって無くなった?

107:デフォルトの名無しさん
08/01/22 15:23:59
補足
1.8のGeneratorみたいなのが欲しい

108:デフォルトの名無しさん
08/01/22 15:35:54
Rubyのジェネレータってcall/cc使ってて、
1.9ではcall/ccが動くんだかどうだか妖しいらしいという話があった気がするので、
すごく、こわいです。

109:デフォルトの名無しさん
08/01/22 19:00:29
今さっき気づいたんだが
アンサイクロペディアって「Ruby」の項目はないのに「eRuby」の項目はあるのね

110:デフォルトの名無しさん
08/01/22 22:32:00
>>108
伝聞で怖がる暇で確認すりゃいいのに。
動くよ。結局コアから外れたってだけ

111:デフォルトの名無しさん
08/01/23 05:25:55
>>108
1.9はFiberじゃないの?

112:デフォルトの名無しさん
08/01/24 22:45:36
1.9のEnumeratorはFiberを使ってる
そして、Enumeratorにnextとrewindメソッドが追加されて外部イテレータとしても使えるようになった

>あとend?とかって無くなった?
ジェネレータライブラリは1.9でもそのまま残ってるのでそれを使えといいたい所だが
エラーで動かない
1.9付属のジェネレータはcall/ccじゃなくてThreadを使うようになっているが
(YARV化で?)Thread.criticalが無くなったせいで動かなくなったようだ
そのうちFiber化するか、あるいは重複機能となったgenerator.rb自体が消滅するか…
ちなみにcall/ccを使っている1.8付属のジェネレータは1.9でも動く


113:デフォルトの名無しさん
08/01/24 23:37:46
Rubyの拡張モジュール作ってて、Rubyのメインスレッドとは別のスレッド
を複数使ってる。これらのスレッドはシステムコールでブロックすること
がある。

ユーザがたとえばCTRL-C押したり、killしたりしたときに、それぞれの
スレッドのブロックを解除してあげたくて、シグナルを補足して投げて
あげたい。

だけど、あるシグナルのsigactionは他のスレッドで呼ばれるかもしれないし、
どうしたらいいか悩んでます。皆さん、どうしてます?

114:デフォルトの名無しさん
08/01/25 00:33:48
> 1.9のEnumeratorはFiberを使ってる

もしよれければ、その辺の利点をkwsk

Fiberってプリエンティプティブスレッドというか、コルーティンンのことだよね?

115:デフォルトの名無しさん
08/01/25 14:41:38
1.9.1まだあああああああああああああああああああああああああああああああああああ

116:デフォルトの名無しさん
08/01/25 21:44:25
再帰呼び出しを伴うようなアルゴリズムの可視化ってどうやったら良いんでしょうか?

たとえば、バブルソートみたいなループのアルゴリズムを表示する場合だと、

# Model
class Bubble
def sort
# ソートのループを一度だけ実行
end
end

# View
b = Bubble.new([3, 5, 8, 1, ...])
while(not b.finished) do
b.sort
show b # GUI に表示
end

などとできると思うのですが、クイックソートみたいな再帰だと、この仕組みでできますか?
なお、できるだけソートアルゴリズムの方には描画処理を入れたくないので、Model と View に分けてます。


117:デフォルトの名無しさん
08/01/25 22:14:27
>>116
Kernel#set_trace_func を使えば出来ると思うけど
使った事ないんで詳細は自分で調べてくれ

118:デフォルトの名無しさん
08/01/26 00:10:57
ソートにブロック渡せるようにすれば?

119:デフォルトの名無しさん
08/01/26 00:23:47
ネイティブスレッド使えれば、とか
描画イベント用の delegate渡す的なことを思ったけど、

rubyでなら >>118 が楽そうだ

120:デフォルトの名無しさん
08/01/26 02:30:01
>>115
1ヶ月以上バイナリストリングの話をしてるのに出せるわけないだろwww

121:113
08/01/26 22:42:40
自己レスですが、ドライバのclose処理をいじって、システムコールでブロック
しているスレッドを起床させることにしました。

なので、シグナルは補足しないことに。

122:デフォルトの名無しさん
08/01/27 07:52:25
世界的にそこそこ有名な国産プログラミング言語ってrubyだけか?

123:デフォルトの名無しさん
08/01/27 08:05:40
というかほかに、和製のプログラミング言語って存在するのか?
(なでしこ等の日本語プログラミング言語は別として)

124:デフォルトの名無しさん
08/01/27 08:13:21
>>123
activebasicとか

125:デフォルトの名無しさん
08/01/27 08:57:16
>>123
なんで「なでしこ」を別扱いするんだよw

126:デフォルトの名無しさん
08/01/27 09:10:34
HSP(笑)

127:デフォルトの名無しさん
08/01/27 09:19:13
>>125
日本語プログラミング言語は、海外の人が使えるものじゃないだろう

128:デフォルトの名無しさん
08/01/27 09:32:19
>>127
そんなマジレス返ってくると思ってなかった・・・

129:デフォルトの名無しさん
08/01/27 10:58:43
perlで @a = (0..9, 15, 20..29) と書くと「..」を展開した配列が得られますが、rubyで[0..9, 15, 20..29]と書くと「..」の部分はRangeオブジェクトになってしまいます。
これを展開した配列にする、最もシンプルな書き方を教えてください。
自分で考えた範囲では、
[0..9, 15, 20..29].map {|e| e.respond_to?(:to_a) ? e.to_a : e}.flatten
ですが、あまりにもうざい……。

130:デフォルトの名無しさん
08/01/27 12:39:35
>>129
a = [(0..9).to_a, 15, 20, (20..29).to_a].flatten

もしくは

a = (0..9).to_a + [15, 20] + (20..29).to_a

131:129
08/01/27 17:18:57
>>130
やっぱその手の方法しかないですか。
何よりも見た目が美しくないのが気にいらないのですが、仕方がないのかなぁ。


132:デフォルトの名無しさん
08/01/27 17:21:17
要素がRangeなら展開するラッパー書くしか

133:デフォルトの名無しさん
08/01/27 17:42:18
respond_to?(:to_a) で判定してると
[ "hello", 1, 2, 3, 4..5 ] が [ ?h, ?e, ?l, ?l, ?o, 1, 2, 3, 4, 5 ]
になったりせんのかと危惧して試してみたら、
"hello".to_a は [ "hello" ]
なのか。


134:デフォルトの名無しさん
08/01/27 20:04:41
[*0..9, 15, 20, *20..29] こんなのどうでしょう

135:デフォルトの名無しさん
08/01/27 20:16:20
>>134
syntax error

136:デフォルトの名無しさん
08/01/27 20:46:45
>>135
む、すまん、1.9 専用ってことで

137:デフォルトの名無しさん
08/01/27 21:22:19
ruby/tkのサンプル
/ext/tk/sample/tkextlib/treectrl/demo.rb
を実行してみたもののtreectrlがバージョン2に上がったときに切り捨てたオプションがいっぱい使ってあってどうにもならんorz

138:デフォルトの名無しさん
08/01/27 23:16:37
>>114
> Fiberってプリエンティプティブスレッドというか、コルーティンンのことだよね?
*ノン*プリエンティプティブスレッド


139:デフォルトの名無しさん
08/01/27 23:47:21
マイクロスレッドとも言うね。
外部イテレータを実装するなら一番シンプルな解決法だと思う。

140:デフォルトの名無しさん
08/01/27 23:58:44
>>138
うおw ノンつけてなかった、失礼した

141:デフォルトの名無しさん
08/01/28 09:47:20
イテレーターからbreakしたか/しなかったか判別する方法ある?
こんなことしたい

min.upto(max) { |y|
 min.upto(max) { |x|
  return if breaked?(yeild(y, x))
 }


142:デフォルトの名無しさん
08/01/28 09:49:05
例外投げる

143:デフォルトの名無しさん
08/01/28 10:50:25
trunk/ruby/doc以下ってほとんど無意味だよね
rdの文書はなんかさっさと本体に埋め込むべきだし、役に立つ情報は
ほとんどない。リファレンスマニュアルを本家svnで配ればいいのに。

144:デフォルトの名無しさん
08/01/28 11:09:57
>>143
誰かruby-devあたりで提案してみたら?

145:デフォルトの名無しさん
08/01/28 12:41:18
例外って本当にエラーが起こったときだけ使いたい。

146:デフォルトの名無しさん
08/01/28 13:03:40
LANG=ja_JP.UTF-8にしてるとベンチマークの
reverse_complementが遅い遅すぎる。というか、10分くらいたっても終了しない。
sliceに異常に時間がかかってる。LANG=Cとか-Knしておくと10秒くらいなのに。

これは・・・(;´Д`)
ふだんはみんな-KsかEUC-JPで使ってるのかなあ


147:デフォルトの名無しさん
08/01/28 15:54:48
>>141
returnでtrue/falseかなんか返せば。


148:デフォルトの名無しさん
08/01/28 16:43:51
Array#eachって順番保障されてたっけ?

149:デフォルトの名無しさん
08/01/28 17:34:31
されるだろ常考

150:デフォルトの名無しさん
08/01/28 17:46:43
>>148
何か配列にトラウマでもあるのか

151:デフォルトの名無しさん
08/01/28 20:41:00
>>145 じゃ例外じゃない何かを投げる。具体的には throw して catch。

152:デフォルトの名無しさん
08/01/29 03:22:11
というかbreakされたかどうかのyield側の判別機構ってなかったのか。
できればつけて欲しいところだなぁ

153:デフォルトの名無しさん
08/01/29 16:52:27
d言語でrubyのライブラリかける?

154:デフォルトの名無しさん
08/01/29 18:10:50
>>153
みたことないが、Cとリンクできるオブジェクトを作れるならできるはず。
マクロとかがどうなるか疑問だが。

155:デフォルトの名無しさん
08/01/29 18:13:34
>>152
いや、breakされたらそもそもyield側に戻ってこない。


156:デフォルトの名無しさん
08/01/29 20:24:20
Dって共有オブジェクトファイル(.soとか.dll)つくれるの?

157:デフォルトの名無しさん
08/01/29 20:46:14
なぜ Ruby スレで D

158:デフォルトの名無しさん
08/01/29 22:58:18
:D

159:デフォルトの名無しさん
08/01/29 23:22:52
URLリンク(d.hatena.ne.jp)

160:デフォルトの名無しさん
08/01/29 23:27:50
共有オブジェクトがつくれたらrquire "dl"で無理矢理使えるからね。
ところで1.9からdlの仕様がだいぶ変わったんだけど全くドキュメントがなくて
困った。いや、外部のドキュメントよりもrdocで埋め込んでほしい。

161:デフォルトの名無しさん
08/01/30 01:05:01
>>152
そんなの普通は要らないと思うが、どうしてもやりたいなら
できないことはない。おすすめはしない。

def foo
 0.upto(10) do |x|
  begin
   f = true
   yield x
   f = false
  ensure
   return if f
  end
 end
end

foo do |x|
 p x
 break if x == 5
end

162:129
08/01/31 01:22:00
>> "abcdef".scan(/(.).(.)/) {|*a| puts a.join(", ")}
a, c
d, f
=> "abcdef"
>> "abcdef".gsub(/(.).(.)/) {|*a| puts a.join(", ")}
abc
def
=> ""
誰だ、こんな腐れ仕様にしたやつは……。gsubもscanと同じと思っておもくそハマったやんけorz

163:デフォルトの名無しさん
08/01/31 01:23:52
しまった、名前欄orz

164:デフォルトの名無しさん
08/01/31 01:34:53
馬鹿自慢か

165:デフォルトの名無しさん
08/01/31 02:15:30
>162
regexオブジェクト使うところは素直にmatchオブジェクトを渡せと言いたいところだよな。
この手の腐れ仕様けっこうあるよね。

166:デフォルトの名無しさん
08/01/31 08:03:00
1.9ってこういう一貫性の欠如は改善するの?

167:デフォルトの名無しさん
08/01/31 08:18:33
$ ./ruby1.9 -e ' %Q|abcdef|.gsub(/(.).(.)/) {|*a| p a}'
["abc"]
["def"]
$ ./ruby1.9 -e ' %Q|abcdef|.scan(/(.).(.)/) {|*a| p a}'
[["a", "c"]]
[["d", "f"]]
だそうだ。

$1, $2しか使ってないから気づかなかったな。
$&は両方"abc", "def"だな。


168:デフォルトの名無しさん
08/01/31 08:22:31
教訓:gsubやscanのブロックパラメータに頼るべきではない

169:デフォルトの名無しさん
08/01/31 08:41:54
これは一貫性がないというより
単にscanがきわめて特殊なメソッドなんだというべきだろう

「matchでいいじゃん」には同意する

170:デフォルトの名無しさん
08/01/31 08:44:03
ドビックリ最大限の法則

171:デフォルトの名無しさん
08/01/31 16:12:41
gsubだけじゃなくてscanもMatchDataにすりゃいいんだ
scanが渡す配列の最初にマッチ全体を入れてさえいれば[n]のアクセスで整合性がとれてたのに
もう1.9からは別物として作り直しちゃえよ

172:デフォルトの名無しさん
08/01/31 17:24:08
1.9からは別物として作っているので、その程度の非互換は問題なかったはずなのだが、
すでに1.9.0をリリースしてしまっているが、
今からでも遅くないから変更してしまえという主張もありだと思うので、
その旨MLでレスするといいと思う

173:デフォルトの名無しさん
08/01/31 17:27:30
いえーい、まっつん見てるー?

174:デフォルトの名無しさん
08/01/31 18:07:12
Rubyは今のまま糞であり続ければいいよ

175:デフォルトの名無しさん
08/01/31 20:21:04
MatzがPHPにけんかを売ってるとのことでこのスレッドに来ました
他のことなぞ気にせず粛々とやりたいことを実装し続けてればいいのに

176:デフォルトの名無しさん
08/01/31 20:31:14
ボロクソに言う=喧嘩を売る、ではないと思うよ。

177:デフォルトの名無しさん
08/01/31 20:55:17
Matz is nice, so we are nice.

178:デフォルトの名無しさん
08/01/31 20:59:25
Matz is nice, we are so nice.

179:デフォルトの名無しさん
08/01/31 21:05:10
RubyはPHPを相手にする程度の言語

180:デフォルトの名無しさん
08/01/31 21:08:22
Rubyについて(アンチ専用) Part002
スレリンク(tech板)

181:デフォルトの名無しさん
08/01/31 21:19:00
ここでいいよ

182:デフォルトの名無しさん
08/01/31 23:09:41
>>171
scanをMatchDataにする場合、全体スキャンした後でイテレートすることになるん?

183:デフォルトの名無しさん
08/01/31 23:18:01
Cアプリへの組み込み用スクリプトとして使おうかと思ってるんだけど、公式ドキュメントにCからの呼び出しについて全く記述がないんだけど、APIリファレンスとかないの?

184:デフォルトの名無しさん
08/01/31 23:20:07
URLリンク(doc.loveruby.net)

185:162
08/01/31 23:56:51
>>182
??? >>171 は単に $~ をブロックパラメータとして渡せと言ってるだけだと思うが。
で、俺もそれに一票。

186:デフォルトの名無しさん
08/01/31 23:57:30
Matz is not nice.

187:デフォルトの名無しさん
08/02/01 00:52:55
うーん、RubyのC-APIってこういうのか。。。
公式ドキュメントとして、組み込みの手順を説明してたりってのはないのか。
例えば Python を組み込むときに使う Py_Initialize を Google で検索すると
リファレンスマニュアルがすぐに見つかるけど、
ruby_init で検索してもドキュメントらしきものは見つからず。日本で生まれたのに、
どうしてこんなにドキュメントが少ないんだろう?
RubyをCに入れるって事がマイナーな事なのか?




188:デフォルトの名無しさん
08/02/01 01:08:09
README.EXT.ja
URLリンク(svn.ruby-lang.org)
URLリンク(www.ync-net.co.jp)
URLリンク(wiki.livedoor.jp)

189:デフォルトの名無しさん
08/02/01 01:10:14
README.EXT.ja は読んだ?

...と思ったら、CにRubyを組み込むほうか。ない。

一応、「オブジェクト指向スクリプト言語Ruby」の 9.9 と、
「プログラミングRuby」の 21.7 が少しは参考になるかと。

190:デフォルトの名無しさん
08/02/01 01:11:56
system("ruby hoge.rb");

191:デフォルトの名無しさん
08/02/01 01:13:36
Rubyの初期化・実行

192:デフォルトの名無しさん
08/02/01 01:16:49
>>187
ドキュメントなんてないよ
そんなのを書くぐらいなら本を書いて売るのがRubyのやり方

193:デフォルトの名無しさん
08/02/01 01:27:48
純粋な質問なのだけど、「CにRubyを組み込む」ってどういうときに
使う?CでRubyを拡張ならよくやるのだけど。いや、CにRubyを
組み込めるのはシッテルガ。いまいち用途がピンとこないのよね。

194:デフォルトの名無しさん
08/02/01 01:29:08
Cで書いてあるアプリのプラグインをRubyで書けるように、とか

195:デフォルトの名無しさん
08/02/01 01:36:00
Ruby じゃなくて Python の例になるけど、
Civilization IV には Python が組み込まれていて、ゲームの進行やルール、チュートリアルの流れはそれで記述してある。
体験版をダウンロードすれば、なかに python の DLL とライブラリ一式が入ってるのが分かる。

3D グラフィックスツールの Blender やベクター画像ツールの Inkscape では
プラグインを Python で書くようになってるよ。
編集中のデータが入ったオブジェクトがプラグイン側の関数に引数として渡されるので、
好きなだけいじくり回してやれば良い。



196:デフォルトの名無しさん
08/02/01 01:52:18
>>187
○○がしたい

ドキュメントない

コードを読んで把握

○○できた

で終わるので。

197:デフォルトの名無しさん
08/02/01 01:56:16
String#s
String#sg
String#sc
ダサさが加速して行く…

198:デフォルトの名無しさん
08/02/01 02:06:46
愕然としたね

199:デフォルトの名無しさん
08/02/01 02:17:48
あんだけ普段、「名前は重要」って言っておいて
これはないだろw

200:デフォルトの名無しさん
08/02/01 02:27:29
袋だたき撤回パターン

201:デフォルトの名無しさん
08/02/01 02:28:16
できないからこそ言ってるんじゃないか

202:デフォルトの名無しさん
08/02/01 02:39:09
何でクソ仕様大会になってんだ。俺にも言わせろ。
StringIO#stringにしたやつ出て来い。何でto_sにしなかったのか100万回説明してもらおう。
Webでmultipart使うとき面倒ったらありゃしない。


203:デフォルトの名無しさん
08/02/01 02:40:36
>>197
え、こんなメソッドできたの?
マジで名前を見ても何をするのか全然分からんぞ。

204:デフォルトの名無しさん
08/02/01 02:41:40
よその言語のこといえないじゃんな

205:デフォルトの名無しさん
08/02/01 02:43:28
いやこれはMatzの釣りかもしれん

206:デフォルトの名無しさん
08/02/01 02:44:05
>>203
URLリンク(blade.nagaokaut.ac.jp)
このことだろ

207:デフォルトの名無しさん
08/02/01 02:45:05
一番痛いのはこいつだけどwww
URLリンク(blade.nagaokaut.ac.jp)

208:デフォルトの名無しさん
08/02/01 02:48:21
Airemixのなるせたんか。
この人も色々あれなんだよなあ。

209:デフォルトの名無しさん
08/02/01 03:59:00
>>202
どういう風に面倒?

210:デフォルトの名無しさん
08/02/01 05:46:09
>>179 は至言

211:デフォルトの名無しさん
08/02/01 07:20:56
そして俺らはRubyを相手にする程度のプログラマか・・・

212:デフォルトの名無しさん
08/02/01 07:36:12
>>187
公式のは見たことないなあ。
昔 C MAGAZINE に載ったのを見たことあるくらい。
URLリンク(shugo.net)
URLリンク(shugo.net)

213:デフォルトの名無しさん
08/02/01 08:19:20
CからRuby呼び出したことあるけど、ドキュメントが必要なほど難しいことでは
なかったな。初期化済んだらそのまんまメソッドの実装を呼ぶだけだったから。


214:デフォルトの名無しさん
08/02/01 08:21:41
なんかCからRuby呼ぶってすげー逆な気がするんだがそういうニーズも有るんだな

215:デフォルトの名無しさん
08/02/01 08:48:39
>>197
叩くよりもどんな名前がいいのか考えようぜ

>>202
あれはIOにto_sがないのに合わせてるんだろう

216:デフォルトの名無しさん
08/02/01 08:55:41
>>187
vimのrubyインターフェースのソースが参考になったよ。


217:デフォルトの名無しさん
08/02/01 09:03:32
>>215
>あれはIOにto_sがないのに合わせてるんだろう
IO#stringもないので、そんなことが理由になるわけがない。


218:デフォルトの名無しさん
08/02/01 09:04:56
to_matzはありますか?

219:デフォルトの名無しさん
08/02/01 09:50:57
>>197
すげええええええええええええええwww

220:デフォルトの名無しさん
08/02/01 09:59:03
浮気相手の趣味に影響を受けるのはよくある話。
きっと相手はプロゴルファーなんだろう。

221:デフォルトの名無しさん
08/02/01 12:01:18
雲を裂き嵐を呼んで夢を勝ち取る人かな

222:デフォルトの名無しさん
08/02/01 14:31:09
>>202
> Webでmultipart使うとき面倒ったらありゃしない。
StringになったりStringIOになったりすることなんてあったっけ?
TempfileになったりStringIOになったりはあっても。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5371日前に更新/208 KB
担当:undef