8 :
デフォルトの名無しさん :2008/01/13(日) 00:09:18
rubyの宿題すれてあるけど、一体誰が出題してるんだ? 職場の先輩かw
学校の授業で良く使われるよ rubyはどんなバカでも理解できる低級言語だから
けなしてるように見えて凄いほめ言葉だなw
プログラミングで「低級言語」と言うと 「ハードウェアやメモリ等、マシン寄りの言語」ってイメージがある。 マシン語やアセンブリみたいな。
たぶんそのうち監獄で出題されましたとかあるんだろうな
「低級言語」っていうのは low level と low class を間違えた 誤訳らしいけどね
ほう それぞれどう訳せばいいのかね
「下層言語」…の方がしっくり来そう。やっぱいやな響きだけど
16 :
デフォルトの名無しさん :2008/01/13(日) 19:42:00
違う言語を駆使する者同士が共存するのは非常に困難。 わしゃ疲れた・・・。 誰ぞ、画期的な処方を!
さあ、これを授けよう・・・これさえあればなんでも実現できるぞよ・・ つ lambda
つparrot
rubyのlambdaはそこまで万能じゃないような気がする
>>17 rubyならラムダはどういうときに活用すればいいでしょうか。
つ JVM
>>12 以前そういう話があったけど
結局そのプロジェクトは中止になったんじゃなかったっけ?
>>20 eachとか使ったことあるなら、既に使ってるはずだが
イテレータは意味的にはラムダ式になってるがな。 それを Ruby 内の用語でラムダと呼ぶかどうかは別として。
rubyはしょせんは手続き言語なんでw
Amrita2はいつ正式リリースされるのだろう いい意味でも悪い意味でも楽しみにしてるんだが
テンプレートエンジン自体があまり流行りじゃ無いような…… 自作するのも良いかもね。
今リリースにかかってるって作者の人は言ってるよ。ブログで。
>>29 詳しく
gem戦記しか見てなかったから、最新情報が分からないんだ
ゲム戦記?
>>32 Amrita1 とは別物だねえ。
Amrita1 は id 属性とマッチングさせる仕組で、
テンプレート自体は素の HTML として扱えるものだった。
テンプレートは全部自前ならいいんだけど、 第三者が書いたラフな書式のHTMLの加工を考えると HTMLパーサベースがいいというわけで開発中。 サイボウズなど既存のサイトのデータを 吸い出して加工するとかできたほうがいい。
まーたruby-lang.org落ち取る ruby-lang.orzに変えたらどうだ?
36 :
デフォルトの名無しさん :2008/01/17(木) 17:35:53
g が一瞬ウンチに見えた
>>32 あれはAmXMLという専用記述形式
Amrita2は一応XMLも扱える(というかXMLが基本?)
しかしAmXMLは何度見ても読める気がしねえ……
>>35 いつものことなのでいちいち落ちてるの報告しなくても良いよ
39 :
デフォルトの名無しさん :2008/01/17(木) 18:00:18
>>38 いちいち報告してうざがられる事に意味があるんですよッ
だったら早くなおさんかーい!
Googleに無料でスクリプト技術を提供するからと持ちかけて 代わりにホスティングさせればすべて解決。
42 :
デフォルトの名無しさん :2008/01/17(木) 18:13:20
ミラーサイト募集とかはされているのでしょうか?
>>41 Shumidt「ジャップがなんかもちかけて来たwww どうするページ」
Larry「Pythonあるしなぁ。俺のボーイングでも掃除させる?」
Guido「哀れRuby・・・人間、そこまで墜ちたくはないものだ」
日本語ドキュメントが多いからRubyを使ってるけど 同じように、英語圏の人間ならPythonを選ばない理由は無いだろうと思う
とりあえずruby-lang上でリファレンス読ませちゃあかんなあのサイトは ダウンロードだけにして本家から切り離した無料webスペースにでも静的ファイルで置いとけって感じ
>>46 ぜひやってください
おながいします
Rubyコミュ一同
無料webスペース(笑)
dmyencoding.cが入ったときからx86-64_linuxでビルド出来なくなったんだけど。 具体的にはminirubyが abort() 一行で落ちる。エンコーディング回りはまだいじりまくってくるみたいだから しかたないけどメインプラットフォームのLinuxでビルドできないとかやめてほしいなあ。 あと気づいたけど、Continuationが外部ライブラリになったんで -rdebugしたら callccがなくて終了しちゃうね。 -rcontinutaion -rdebugとしなきゃだめ。
>>50 backtraceくれ。
dmyencoding.cでってのがよくわからんが。
(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
こんな感じ。追っかけてみると miniprelude.cを読んで、abortを読んで、メインスレッドが終了して、 それから正常終了するはずなんだけど、なぜかstatusというのを読もうとして コアを吐く。ううむ・・
>48 作者です 家に帰ったら探してみます どこにアップすれば良いですか?
あ
>>53 p enc_tableしてみて。
あと環境変数LANGとかLC_ALLとかは?
>>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してビルドするとちゃんと
出来るんだよね。まったく!
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でも動くようになった
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 ""
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だともともと使えなかったんだろうけど
>>58 > (gdb) p enc_table
> $2 = {list = 0x7d07f0, count = 78, size = 80, names = 0x7d0d00}
>>52 をみると#1,#2のencの値が妙に小さいんで、レジスタの最適化で消えちゃっ
てのかと思ったが、enc_tableの中身も同じような感じだな。
ついでに、この#1,#2のencの中身は?
念のために聞くけど、最新版で起きるんだよね。
>>62 ども。rb_enc_precise_mbclenにbreakpointを設定して
p enc->name
するとASCII-8BITを返す。
> 念のために聞くけど、最新版で起きるんだよね。
少なくともr15052以降ずっと起きてる
>>55 アップしました
キーワードはrubytkです
>ちなみに元に有った場所に再公開はありませんか?
確か新年早々にハード故障したとか聞きました
リプレースは済んでるらしいのですがデータは消えたのかも知れません
確かにアクセスできませんね
復旧予定は未定ですスミマセン
しかしこの文書まだ見てる方がいるとは思いませんでした
>>65 アップありがとうございます
1ページに集約してるのが気に入ってよく利用してました
これはRuby公式サイトのリファレンスマニュアルが503ばっかり出すせいだな そうにちがいないッ
ようやくAmrita2.0.0のリリースが来たー!と思ったら 先頭にこんな記述があった require 'rubygems' require 'hpricot' CGIスクリプトから使おうと思ってた俺涙目w
自分とこでgems使うんならいいけどライブラリでgems使うとかやめちくれ
それぐらい自分で改編しろよ 簡単だろ
直書きせずに、ユーザー環境の -rubygems に頼るべき
いちいちrequire 'rubygems'なんて書かないといけないのが問題
>>> python > ruby True
irb(main):001:0> python > ruby NameError: undefined local variable or method `python' for main:Object from (irb):1 from :0
irb(main):007:0> puts ["python", "Ruby", "perl", "php"].sort.join(" > ") Ruby > perl > php > python
(;`Д´)・・・・・
perl(ruby, python) > php
>>> {'Ruby':'ruby','Python':'python','Perl':'perl'} {'Python': 'python', 'Ruby': 'ruby', 'Perl': 'perl'}
>>78 たぶんテスト期間の大学生が、ストレス発散しに来てるんだよ
温かい目であぼーんしてあげようぜ
>>69-74 俺は以下のようにしてるけど、これなら ok だよね?
begin
require "hpricot"
rescue LoadError
require "rubygems"
require "hpricot"
end
vm_opts.hの最適化スイッチを全部onにして-O6でコンパイルしたら かえって遅くなっちゃった(´・ω・`)
hpricotって流行ってるの? 前試したら文法が変態的なのとXPathでエラーも出さずに とんでもない挙動を示した覚えがあるんだが
86 :
50 :2008/01/19(土) 21:39:30
x86-64だと、abort/exitで落ちるバグはakrさんのr15127のコミットで直りますた。 ありがとうありがとう。 ところで、x86-64は青木さんが毎日checkbuildしてたはずなんで参考になるかなと 思って見たんだけど、どうでもいいエラーで止まってて吹いた。 Ruby-Statusのところで結構ビルドしっぱいしてるけど、内容見るとくだらない ミスなんだよなあ。たまにチェックとかしないんだろうか。
>>70-71 rubygemsの方は、自分で書き換えれば何とかなるけれど
hpricotの方はどうしようもないな
速度を考えてhpricotにしたんだろうか
Ruby のテストについて質問させてください。 DHCP の設定ファイルを生成するようなプログラムの受け入れテストを書いているんですが、 テストを実行するホストのネットワーク情報に応じて、テスト内容を変えたいと思ってます。 具体的には、dhcpd.conf に書き込む IP アドレス、ゲートウェイアドレス、ネットマスクをテストを 実行するホストと同じにしたい (IP アドレスだけは、ホストと同じネットワークの空いてる IP アドレスを 自動的に割り当てたい) んですが、うまい方法はあるでしょうか。ネットワーク系のテストを簡単に してくれるような RSpec のプラグインとかがあれば最高なんですが。。。
今日Ruby試験だったね。受けた人いる?
公式サイトのインストールガイド(MacOSX)に平然と1.9を勧めてるのはいかがなものか。 1.9でirbが普通に通るようになったのは嬉しいけど。
マカはコードかかねーから無問題 BSD上がりの奴は1.9がなんなのか心得てるだろうしw
1.8は最初から入ってるから1.9の紹介してるのかね?
rubyはとんだスイーツ言語
>>94 syntax sugarがかかってるもんね。おいしいけど。
Syntactic sugar causes cancer of the semicolon. -- Alan Perlis
SICPだっけ? セミコロンは湧かないけどendがね・・・
[ruby-list:44517] > 503 Service Unavailableで見えないことが多くなっていた > www.ruby-lang.org/ja/man/ を /ja/man/html/ 以下においた > 静的HTMLへのリダイレクトに変更しました。 さっそく見に行ってみたけど、本当に軽くなってて感動した でもこれどうやって編集すればいいんだろう
>>99 とりあえずの急場しのぎにはいいんじゃね?
googleでのサイト内検索ボックスくらいつけてほしいけど・・・
503は、人多すぎで出してるんだっけか
サーバー増強千ならんのかねえ
どっちにしろミラーサイトはいるな
編集リンクだけwikiにしてあとは性的HTMLにすればいいのにね。
つまりエロが足りないんですね。
ミラーサイト勝手に作ったら怒られる?
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?とかって無くなった?
補足 1.8のGeneratorみたいなのが欲しい
Rubyのジェネレータってcall/cc使ってて、 1.9ではcall/ccが動くんだかどうだか妖しいらしいという話があった気がするので、 すごく、こわいです。
今さっき気づいたんだが アンサイクロペディアって「Ruby」の項目はないのに「eRuby」の項目はあるのね
>>108 伝聞で怖がる暇で確認すりゃいいのに。
動くよ。結局コアから外れたってだけ
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でも動く
Rubyの拡張モジュール作ってて、Rubyのメインスレッドとは別のスレッド を複数使ってる。これらのスレッドはシステムコールでブロックすること がある。 ユーザがたとえばCTRL-C押したり、killしたりしたときに、それぞれの スレッドのブロックを解除してあげたくて、シグナルを補足して投げて あげたい。 だけど、あるシグナルのsigactionは他のスレッドで呼ばれるかもしれないし、 どうしたらいいか悩んでます。皆さん、どうしてます?
> 1.9のEnumeratorはFiberを使ってる もしよれければ、その辺の利点をkwsk Fiberってプリエンティプティブスレッドというか、コルーティンンのことだよね?
1.9.1まだあああああああああああああああああああああああああああああああああああ
再帰呼び出しを伴うようなアルゴリズムの可視化ってどうやったら良いんでしょうか? たとえば、バブルソートみたいなループのアルゴリズムを表示する場合だと、 # 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 に分けてます。
>>116 Kernel#set_trace_func を使えば出来ると思うけど
使った事ないんで詳細は自分で調べてくれ
ソートにブロック渡せるようにすれば?
ネイティブスレッド使えれば、とか
描画イベント用の delegate渡す的なことを思ったけど、
rubyでなら
>>118 が楽そうだ
>>115 1ヶ月以上バイナリストリングの話をしてるのに出せるわけないだろwww
121 :
113 :2008/01/26(土) 22:42:40
自己レスですが、ドライバのclose処理をいじって、システムコールでブロック しているスレッドを起床させることにしました。 なので、シグナルは補足しないことに。
122 :
デフォルトの名無しさん :2008/01/27(日) 07:52:25
世界的にそこそこ有名な国産プログラミング言語ってrubyだけか?
というかほかに、和製のプログラミング言語って存在するのか? (なでしこ等の日本語プログラミング言語は別として)
>>123 なんで「なでしこ」を別扱いするんだよw
HSP(笑)
>>125 日本語プログラミング言語は、海外の人が使えるものじゃないだろう
>>127 そんなマジレス返ってくると思ってなかった・・・
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 ですが、あまりにもうざい……。
>>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 :2008/01/27(日) 17:18:57
>>130 やっぱその手の方法しかないですか。
何よりも見た目が美しくないのが気にいらないのですが、仕方がないのかなぁ。
要素がRangeなら展開するラッパー書くしか
respond_to?(:to_a) で判定してると [ "hello", 1, 2, 3, 4..5 ] が [ ?h, ?e, ?l, ?l, ?o, 1, 2, 3, 4, 5 ] になったりせんのかと危惧して試してみたら、 "hello".to_a は [ "hello" ] なのか。
[*0..9, 15, 20, *20..29] こんなのどうでしょう
ruby/tkのサンプル /ext/tk/sample/tkextlib/treectrl/demo.rb を実行してみたもののtreectrlがバージョン2に上がったときに切り捨てたオプションがいっぱい使ってあってどうにもならんorz
>>114 > Fiberってプリエンティプティブスレッドというか、コルーティンンのことだよね?
*ノン*プリエンティプティブスレッド
マイクロスレッドとも言うね。 外部イテレータを実装するなら一番シンプルな解決法だと思う。
イテレーターからbreakしたか/しなかったか判別する方法ある? こんなことしたい min.upto(max) { |y| min.upto(max) { |x| return if breaked?(yeild(y, x)) } }
例外投げる
trunk/ruby/doc以下ってほとんど無意味だよね rdの文書はなんかさっさと本体に埋め込むべきだし、役に立つ情報は ほとんどない。リファレンスマニュアルを本家svnで配ればいいのに。
>>143 誰かruby-devあたりで提案してみたら?
例外って本当にエラーが起こったときだけ使いたい。
LANG=ja_JP.UTF-8にしてるとベンチマークの reverse_complementが遅い遅すぎる。というか、10分くらいたっても終了しない。 sliceに異常に時間がかかってる。LANG=Cとか-Knしておくと10秒くらいなのに。 これは・・・(;´Д`) ふだんはみんな-KsかEUC-JPで使ってるのかなあ
>>141 returnでtrue/falseかなんか返せば。
Array#eachって順番保障されてたっけ?
されるだろ常考
>>145 じゃ例外じゃない何かを投げる。具体的には throw して catch。
というかbreakされたかどうかのyield側の判別機構ってなかったのか。 できればつけて欲しいところだなぁ
d言語でrubyのライブラリかける?
>>153 みたことないが、Cとリンクできるオブジェクトを作れるならできるはず。
マクロとかがどうなるか疑問だが。
>>152 いや、breakされたらそもそもyield側に戻ってこない。
Dって共有オブジェクトファイル(.soとか.dll)つくれるの?
なぜ Ruby スレで D
:D
共有オブジェクトがつくれたらrquire "dl"で無理矢理使えるからね。 ところで1.9からdlの仕様がだいぶ変わったんだけど全くドキュメントがなくて 困った。いや、外部のドキュメントよりもrdocで埋め込んでほしい。
>>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 :2008/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
しまった、名前欄orz
馬鹿自慢か
>162 regexオブジェクト使うところは素直にmatchオブジェクトを渡せと言いたいところだよな。 この手の腐れ仕様けっこうあるよね。
1.9ってこういう一貫性の欠如は改善するの?
$ ./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"だな。
教訓:gsubやscanのブロックパラメータに頼るべきではない
これは一貫性がないというより 単にscanがきわめて特殊なメソッドなんだというべきだろう 「matchでいいじゃん」には同意する
ドビックリ最大限の法則
gsubだけじゃなくてscanもMatchDataにすりゃいいんだ scanが渡す配列の最初にマッチ全体を入れてさえいれば[n]のアクセスで整合性がとれてたのに もう1.9からは別物として作り直しちゃえよ
1.9からは別物として作っているので、その程度の非互換は問題なかったはずなのだが、 すでに1.9.0をリリースしてしまっているが、 今からでも遅くないから変更してしまえという主張もありだと思うので、 その旨MLでレスするといいと思う
いえーい、まっつん見てるー?
Rubyは今のまま糞であり続ければいいよ
175 :
デフォルトの名無しさん :2008/01/31(木) 20:21:04
MatzがPHPにけんかを売ってるとのことでこのスレッドに来ました 他のことなぞ気にせず粛々とやりたいことを実装し続けてればいいのに
ボロクソに言う=喧嘩を売る、ではないと思うよ。
Matz is nice, so we are nice.
Matz is nice, we are so nice.
RubyはPHPを相手にする程度の言語
ここでいいよ
>>171 scanをMatchDataにする場合、全体スキャンした後でイテレートすることになるん?
183 :
デフォルトの名無しさん :2008/01/31(木) 23:18:01
Cアプリへの組み込み用スクリプトとして使おうかと思ってるんだけど、公式ドキュメントにCからの呼び出しについて全く記述がないんだけど、APIリファレンスとかないの?
185 :
162 :2008/01/31(木) 23:56:51
>>182 ???
>>171 は単に $~ をブロックパラメータとして渡せと言ってるだけだと思うが。
で、俺もそれに一票。
Matz is not nice.
うーん、RubyのC-APIってこういうのか。。。 公式ドキュメントとして、組み込みの手順を説明してたりってのはないのか。 例えば Python を組み込むときに使う Py_Initialize を Google で検索すると リファレンスマニュアルがすぐに見つかるけど、 ruby_init で検索してもドキュメントらしきものは見つからず。日本で生まれたのに、 どうしてこんなにドキュメントが少ないんだろう? RubyをCに入れるって事がマイナーな事なのか?
README.EXT.ja は読んだ? ...と思ったら、CにRubyを組み込むほうか。ない。 一応、「オブジェクト指向スクリプト言語Ruby」の 9.9 と、 「プログラミングRuby」の 21.7 が少しは参考になるかと。
system("ruby hoge.rb");
Rubyの初期化・実行
>>187 ドキュメントなんてないよ
そんなのを書くぐらいなら本を書いて売るのがRubyのやり方
純粋な質問なのだけど、「CにRubyを組み込む」ってどういうときに 使う?CでRubyを拡張ならよくやるのだけど。いや、CにRubyを 組み込めるのはシッテルガ。いまいち用途がピンとこないのよね。
Cで書いてあるアプリのプラグインをRubyで書けるように、とか
Ruby じゃなくて Python の例になるけど、 Civilization IV には Python が組み込まれていて、ゲームの進行やルール、チュートリアルの流れはそれで記述してある。 体験版をダウンロードすれば、なかに python の DLL とライブラリ一式が入ってるのが分かる。 3D グラフィックスツールの Blender やベクター画像ツールの Inkscape では プラグインを Python で書くようになってるよ。 編集中のデータが入ったオブジェクトがプラグイン側の関数に引数として渡されるので、 好きなだけいじくり回してやれば良い。
>>187 ○○がしたい
↓
ドキュメントない
↓
コードを読んで把握
↓
○○できた
で終わるので。
String#s String#sg String#sc ダサさが加速して行く…
愕然としたね
あんだけ普段、「名前は重要」って言っておいて これはないだろw
袋だたき撤回パターン
できないからこそ言ってるんじゃないか
何でクソ仕様大会になってんだ。俺にも言わせろ。 StringIO#stringにしたやつ出て来い。何でto_sにしなかったのか100万回説明してもらおう。 Webでmultipart使うとき面倒ったらありゃしない。
>>197 え、こんなメソッドできたの?
マジで名前を見ても何をするのか全然分からんぞ。
よその言語のこといえないじゃんな
いやこれはMatzの釣りかもしれん
Airemixのなるせたんか。 この人も色々あれなんだよなあ。
そして俺らはRubyを相手にする程度のプログラマか・・・
CからRuby呼び出したことあるけど、ドキュメントが必要なほど難しいことでは なかったな。初期化済んだらそのまんまメソッドの実装を呼ぶだけだったから。
なんかCからRuby呼ぶってすげー逆な気がするんだがそういうニーズも有るんだな
>>197 叩くよりもどんな名前がいいのか考えようぜ
>>202 あれはIOにto_sがないのに合わせてるんだろう
>>187 vimのrubyインターフェースのソースが参考になったよ。
217 :
デフォルトの名無しさん :2008/02/01(金) 09:03:32
>>215 >あれはIOにto_sがないのに合わせてるんだろう
IO#stringもないので、そんなことが理由になるわけがない。
to_matzはありますか?
>>197 すげええええええええええええええwww
浮気相手の趣味に影響を受けるのはよくある話。 きっと相手はプロゴルファーなんだろう。
雲を裂き嵐を呼んで夢を勝ち取る人かな
>>202 > Webでmultipart使うとき面倒ったらありゃしない。
StringになったりStringIOになったりすることなんてあったっけ?
TempfileになったりStringIOになったりはあっても。
>>193 Rubyなら、RPGツクールXP、VX か
本体でできない拡張に使われてる。
標準でできない、無限スクロールを実装したり、
あげくは、戦闘シーンを標準のものを使わず自前で実装したり。
別の言語だが、組み込みでよくつかわれる Lua なんかは、
FarCryというFPSで使われていた。
メニューなどのUI の 定義や、パラメーターの設定など。
ゲームだと Rubyは聞かないが、組み込み用にスクリプト言語がつかわれることが多い。
DelphiにDMonkey(JScript)エンジン組み込んでアプリをユーザーに弄らせるというのはよくやるな。 RubyだとApolloでできるらしいが。 OOoやCivilization4はマクロ言語としてPython搭載だったか。
変に独自言語搭載されると覚えるのだるいしな。
組み込み系はもうちょっとドキュメント周りを整備して普及に努めたほうがいいかもな。 マクロ書く為に覚えればその延長で使うようになるかもしれないし。
>>225 ウィンドウマネージャにlisp構文のスクリプト積むのやめて欲しい
そういや1.9からRubyのスレッドってネイティブになった?
> >222 multipartとそうじゃないのを同一視して受け取ってます。 こんなことやってるんだけど、他に良い方法あります? @cgi = CGI.new @cgi.content_type =~ %r|multipart/form-data| ? @cgi[key].string : @cgi[key].to_s そういやTempFileの時の分岐もいるわな……
StringIOにto_sをつければいいだけじゃねーの?
>>231 拡張モジュールでRubyのスレッド以外から、RubyのAPIじっこうしても
大丈夫?
>>230 だからそれを標準でやってくれよという話ダロ
よくよめ
234 :
230 :2008/02/02(土) 10:43:38
>>233 標準でやるべきというのに異論はないが
>>229 みたいな条件分岐がたくさんあって面倒だというなら、
自前で拡張するのも手段としてはありじゃないの?
だから“クソ仕様”だって。 matzも名前大事とか言いながらこれだからな。どうしようも無いな。
>>235 ERBのresultもto_sであるベッキー?
237 :
235 :2008/02/02(土) 15:55:20
erb使ってないからシラネ。 erb自体がクソな感じがするので触ってない。自分でテンプレートエンジンでっちあげたし。 ただ、 ・プロパティ的/定数的: to_sが良い ・メソッド的/手続き的: resultとかでいいんじゃね? とは思う。
238 :
デフォルトの名無しさん :2008/02/02(土) 22:34:57
to_sとか便利だよねぇ。びっくりした
>>229 CGI 自体が半ば deprecated 気味だからね。代替ないから残ってるけど。
改良して貢献すれば喜ばれると思うよ。
ちなみ俺はこうしてる。これで Tempfile と StringIO の分岐はいらない。
@cgi.multipart? ? @cgi[key].read : @cgi[key]
>>217 >IO#stringもないので、そんなことが理由になるわけがない。
IO#string(またはIO#to_s)に何をして欲しいと思ってる?
よくわからんが、すでにあるし、またディープに組み込まれているto_sという名前を
使わなかった点を言ってるんじゃないのか?
>>202 は
>>240 >IO#string(またはIO#to_s)に何をして欲しいと思ってる?
文字列を返す。それだけ。
おまえは何が言いたいんだ?
243 :
240 :2008/02/03(日) 00:00:56
>>242 どういう文字列を返して欲しいと思ってるかが重要なんだよ。
Stringのインスタンスならなんでもいいの?
>242 ふむ。 じゃあ無条件に""を返してもいいんだな? Stringオブジェクトには違いないぞ。 それが嫌なら「IOが返すべき文字列」ってのを定義してみな。
245 :
244 :2008/02/03(日) 00:02:44
……煽りでケコーンするなんて何という恥 死のう 舌を噛んで死のう
IOをくださ〜いおぅおう IOをくださ〜い
IOの話じゃねーだろ馬鹿
>>243 ,244
なんでIOになるんだ?今はStringIOの話だろ。
StringIO#string の名前は String#to_s にすべきだったという話をしてるのに、
to_sは空文字を返してもいいとかバカじゃねーの。
>>202 をまず読めや。
>>243 >どういう文字列を返して欲しいと思ってるかが重要なんだよ。
そんなもの、StringIO#stringと同じ文字列に決まってるだろ。
これだからゆとりは。
to_sってのは型の変換に用いるもんでしょ。つまり、(Integerインスタンス).to_sとか StringIOってのはストリングのIO化なんだから、IOをto_sしちゃったらおかしいでしょ。
251 :
240 :2008/02/03(日) 00:14:44
>>248 ,249
落ち着け、おれはオサーンだ。
StringIO#stringは確かにto_sでもいいかもしれない。だが、
お前が言ってるようにto_sはとても広く使われているメソッドだ。
StringIO#to_sがあるならIO#to_sもあるのが自然だと考える人も
多い。
>>215 はそれを言ってる。本当にmatzがそう考えたかどうかは
知らないけどね。
んで、IOでStringIO#stringと同じような挙動を実現しようとしたら、
何をしなきゃ行けないか考えてみよう。事実上無理なことがわかるから。
だからIOじゃねーだろアホ
254 :
240 :2008/02/03(日) 00:52:15
>>252 おれも
>>215 ではないので、推測なんだけどね。
答えを言っておくと、読み込んだ文字列を全部保存しとかなきゃ
いけなくて、事実上Rubyでサーバとか書けなくなってしまうわけ
です(書いてもいつかNoMemoryErrorになってしまう)。
そもそも、StringIO#stringは特段の事情がなければ使わない方が
いいと思うよ。String"IO"なんだからIOらしくreadとかしとこう。
>>250 その論理でObject#to_sが説明できるのかな。
今北産業 誰か三行でまとめて
Rubyのto_sは そもそも定義があいまいなので おかしいとかおかしくないという以前の問題
IOがなんでもto_sできたら怪しいけど、
StringをIO化したIOはto_sできてもいいんじゃね。
まあ、to_sじゃないからダメとは思わんけど。
>>235 は「matzどうしようもない」とか言う前に
matzに意見を伝えて議論すべきだな。
政治家や芸能人と違ってMLで直接話せる相手だし。
258 :
235 :2008/02/03(日) 03:28:32
>251 IO#to_s は IO#readと同一視でも構わん気がする。 どうせmatzもセキュリティとか気にして設計しとらんだろうに。 逆にStringの方にreadを用意してもいいんだけどなぁ……。 matzは変なところばかり手を入れるんだから、ついでにここもやってくんないかな。 >254 >そもそも、StringIO#stringは特段の事情がなければ使わない方が リファレンスのメソッドの筆頭にstringがあるのよ。 もし使わない方が良いなら、あのクソリファレンスをどうにかしないとな。 良く良く考えてみたら、フィールドによって戻り値がバラバラのCGI#[]の 仕様が腐ってんだよなぁ…………。PHPに文句付けるヒマがあったら CGIどうにかしろよ。matz。
CGI.rb作ったのは違う人だしなあ ソース見るとわかるが「Ruby学んで超楽しい」時期に書かれたコードだ てか、作った本人も含めて現行Rubyの癌だとはみんな認識してるはず 置き換えとなるモジュールがないだけの話
PerlのCGI用モジュールってどんなんなんだろ 参考にならないかな
>>258 Webrick::CGI
PerlのCGIはcgi.rb以上にカオス
Webrickはプロクシサーバの作り方しか載ってねえよ というか、CGI.rbでやってることと対比させた解説ページ誰か作ってくれ CGI.paramsに該当することが探せなくて挫折した覚えがある
>259 癌だと判っているのにもかかわらず、放置したままPHPをdisってるからたちが悪い。 1.9で少しはマトモになってると思ったんだけどなぁ。cgiはとっととobsoletedにしてほしい。 >261 Webrick::CGIはドキュメントが……良い感じだとは思うけどね。
セッション管理が標準でできるようになったらWebrick::CGI使ってあげるよぉ
>>264 それ以上になると、フレームワークつかえとしか
セッション管理ごときでなんでフレームワークが必要になるほうがおかしい
>>250 >to_sってのは型の変換に用いるもんでしょ。つまり、(Integerインスタンス).to_sとか
>StringIOってのはストリングのIO化なんだから、IOをto_sしちゃったらおかしいでしょ。
こいつほんとにバカだな。
StringIOをStringに変換するんだから、to_sで問題ないだろ
今議論してるのはStringIOであってIOじゃないって何回いったらわかるのか
だれもIO#to_sをつくれといってないだろ。IO#to_sなんかいらん、StringIO#to_sの話をしてる
>>251 >StringIO#to_sがあるならIO#to_sもあるのが自然だと考える人も
>多い。
そんなのお前だけ。子クラスでメソッドを追加したら親クラスにも追加しなきゃいけないと考えるほうがどうかしてる。
ほんとバカばっかだな。
>>254 >
>答えを言っておくと、読み込んだ文字列を全部保存しとかなきゃ
>いけなくて、事実上Rubyでサーバとか書けなくなってしまうわけ
>です(書いてもいつかNoMemoryErrorになってしまう)。
これなんの話?StringIO#stringと何の関係もないよね。
>そもそも、StringIO#stringは特段の事情がなければ使わない方が
>いいと思うよ。String"IO"なんだからIOらしくreadとかしとこう。
本気でいってるのかね。StringIOはIOに見せかけたStringであって、Stringに見せかけたIOじゃない。
だいたい、seekとか関係なしに文字列を得るためにStringIO#stringがあるのに、
なんでreadとか使わないといけないの?アホか。
sio = StringIO.new
sio.write('foo')
sio.write('bar')
sio.read #=> ""
sio.seek(0)
sio.read #=> "foobar"
>StringIOはIOに見せかけたStringであって、Stringに見せかけたIOじゃない。 IOに似てるならIOみたいなもんだよ。アヒルのように動いてアヒルのように鳴くなら そいつはアヒルだ!
StringIOでreadつかう馬鹿はいないだろ
>>254 除いては。
なるほど問題理解 StringIOのカッコいい使い方指南をすればいいんだな 「StringがIOになりましたって何じゃらほい」という疑問が根底にあると見た
StringIO#string= なんてのもあるんだな。 アクセサだったのか。
StringIO#readはIO#readを使ってる場所で代替で使われるものだろ 明示的に使うもんじゃないだろ ファイルを読み込むプログラムだけど文字列を代入することもできるよという場合とか
「面倒だから。短くかけるから」ってだけ批難してるなら golfscriptでもやってろよ。一貫性のほうが重要だろ。 自分の理屈も説明できずに受入れられると思ってるニートがいて困るな
readメソッドの話をしているということにも気づけないほど何を怒ってるのかわからんな
いやもうメーリングリストに書けよ
短いからいいという話をするなという主張なのでは
Zlib圧縮データをInflateして返って来たバイナリデータを StringIOにしてreadしてunpackとかよくやってるなあ 文字列そのままだとファイルポインタが無いから扱いづらいし
>>258 > 良く良く考えてみたら、フィールドによって戻り値がバラバラのCGI#[]の
> 仕様が腐ってんだよなぁ…………。PHPに文句付けるヒマがあったら
> CGIどうにかしろよ。matz。
だから使う側が
>>229 とか
>>239 とかしてて、
その時にメソッド名に「一貫性」が無くて困ってるわけね。
ようやく俺にも状況が見えてきた。
意味が違うものに違う名前を割り当てるのは当然。名前重要。
Ruby開発者として発言しているとき:Ruby教祖まっつん 個人的なblogで個人的な発言をしているとき:モルモン教徒まっつん 名前重要
>>276 >「面倒だから。短くかけるから」ってだけ批難してるなら
だれがそんな非難してるの。だからゆとりなんだよ。
>自分の理屈も説明できずに受入れられると思ってるニートがいて困るな
今までの流れをまったく理解せずに話をすり替えようとしているゆとりがいて困るな
>>285 すまん。結局君は何がいいたいのか明示していただけないだろうか?
今まで発言とかしてないんだが、さすがにわけわからなくなってきた
288 :
202 :2008/02/03(日) 13:53:00
おお、なんか話が進んどりますな。……グルグル回っている気もするけど。 おいらの結論としては ・フィールドを統一的に扱えないCGIはクソ仕様。 - kind_of?とかソース記載の条件で分岐するのはオブジェクト指向らしくないとか 言っときながら、それをせざるを得ない仕様になってるのはどういうことよ。 - セキュリティとかオーバーフローの関係でTempfileとかを使いたかったら、 統一的に&安全に扱えるラッパークラスぐらい用意しとけと。 ・StringIOはStringとIOの性質を合わせ持つのだから、to_sぐらい用意しておいた方が 親切だよね。多態もできるし。名前重要とか言ってるクセに、ろくに考えて無いだろ。matz ・IOはオーバーフロー(メモリ消費)のリスクもあるから、to_sの実装に慎重になるのも理解できる。 つまりPHPをdisるヒマがあったらcgi絡みをどうにかしろと。 Webrick::CGI移行でもいいけど、それならドキュメントをどうにかしろよ、と言いたいよな。
>>288 >Webrick::CGI移行でもいいけど、それならドキュメントをどうにかしろよ、と言いたいよな。
その前にセッションなんとかしろよ。cgi.rbから移行したくてもできないだろ。
>>288 >・IOはオーバーフロー(メモリ消費)のリスクもあるから、to_sの実装に慎重になるのも理解できる。
IOにto_sはいらん。誰もそんなもの必要としてない。いるのはStringIO#to_s。
『StringIO#to_sがいるならIO#to_sも必要』とかほざいてるのはゆとり。
ドキュメント上は、StringIOは IOのように扱えるString(Pseudo I/O on String object.)であって Stringのように扱えるIOではないようだ。 なら StringIO#to_str (Stringを期待する箇所で呼ぶと規定されているメソッド)が あるべきだな、と思った。
>>276 >「面倒だから。短くかけるから」ってだけ批難してるなら
だれが非難してるの?ねえ誰がどこで非難してるの?
>>292 「もしそうなら」という言い方はいわばif文であって、そうかもしれないしそうでないかもしれない言葉を
受けての言い方だから、その質問に対する回答は無いだろう。
そこで回答があったら、絶対に真とわかってる値をわざわざif文で判定するような文を書いていたことになる。
>>288 >統一的に&安全に扱えるラッパークラスぐらい用意しとけと。
>>239 で終了してる。マニュアルにも同様のコードが載っている。
ttp://www.ruby-lang.org/ja/man/html/cgi.html#multipart.3f multipart? とそうでないのを統一的に扱うのはセキュリティ上の問題が
あったような気がするがよく覚えてない。すまん。
>StringIOはStringとIOの性質を合わせ持つのだから、
>to_sぐらい用意しておいた方が親切だよね。
そこは人によって意見の分かれるところ。俺はどっちでもいいと思う。
「to_s であるべき派」は「自分の直感にそぐわない」以外の
合理的な理由を用意した上で、くだまいてないで ML 行って
議論しろ。
ここ数スレで最もトンデモぽい流れになってる気がするのは俺だけか
296 :
240 :2008/02/03(日) 14:35:40
盛り上がってるなあ。おれに当てられたレスに返事だけ。見落としたらスマソ
まず、おれは IO#to_s を実装せずに StringIO#to_s だけ実装するのは
ありだと思ってるよ。
おれは
>>217 に「それは無理な話」と言いたかっただけ。
>267
>そんなのお前だけ。子クラスでメソッドを追加したら親クラスにも
>追加しなきゃいけないと考えるほうがどうかしてる。
ちょっと違うんだな。
まず、StringIOは「StringをIOに見せかけるラッパ」であって、
「StringとしてもIOとしても使えるオブジェクト」として設計されてない。
だからIOにto_sがない以上、StringIOでもto_sを実装する理由がなかった。
ゆえに現状のStringIOはto_sがない。という話なんだよ。
>269
>StringIOはIOに見せかけたStringであって
だから IO として使えばいいんだよん。
>seekとか関係なしに文字列を得るためにStringIO#stringがあるのに
もちろん、いつでもなんでもStringIO#stringのかわりに
readしろとは言わないよ。今回のcgi.rbではseekする必要ないでしょ。
あと、cgi.rbではTempfileまたはStringIOが得られる。
この両者の特徴は「IOに見せかけている」こと。
なので(今回の例では)IOらしくreadすればいいよ、と。
あと、StringIO#stringは「seekとか関係なしに文字列を得るメソッド」
というより「StringIOの元になっている文字列を得るメソッド」だと思う。
>>291 >IOのように扱えるString(Pseudo I/O on String object.)であって
Pseudo I/O on String object はそのまま読めば
「IOのように扱えるString」ではなく「Stringに基づいた疑似IO」だろう。
つまり、StringでもIOでもなく、IOみたいなもの。
to_strが必要な理由にはならないと思うぞ。
>294 マニュアルに載ってるよ…………。しかもサイズチェックも無しかよ。 大きなサイズでTempfileを吐き出す意味があまりねぇ。 (サーバー側の制限・バッファオーバーフローを回避できるメリットはあるけど) ここまで支離滅裂だと嗤うしかないですな。CGI。 >296 どうせ何も考えずに設計しているんだろうけど、StringIO#stringが中途半端すぎるんだよね。 IOとしてしか使わせないならばStringIO#readで統一すべきだし、Stringにもアクセスさせたいの ならばStringIO#to_sを実装しない根拠が薄くなる。 あと、StringIO#to_sが欲しいのはStringと統一的に扱いたいから。別に一度StringIO#read でStringにしてやるだけでいいんだけど…………やっぱりクソ仕様だよね、CGI。
>>288 それCGI.rbとかWebrickCGIが糞なんじゃなくて
もともとhttpの仕様が糞なんだからどうしようもないじゃん
パラメータ毎に型情報持てないんだよ
>>298 > IOとしてしか使わせないならばStringIO#readで統一すべきだし、Stringにもアクセスさせたいの
> ならばStringIO#to_sを実装しない根拠が薄くなる。
方針は「IOとして使わせたい」。
StringIO#to_sがない理由は、内部で呼ばれることもあるto_sでは、疑似IOにし
てはStringとの結び付きが強くなりすぎるだろう、ということ。
StrignIO#stringがあるのは、下位層の情報を完全に隠蔽することを目標にして
いるわけじゃないから。IO#filenoのように、必要ならばアクセスすればよい。
> あと、StringIO#to_sが欲しいのはStringと統一的に扱いたいから。
cgi.rbに関しては、Tempfileもある以上StringIOとStringだけ同じにしても無
意味なので、
>>239 でFAということで。
301 :
202 :2008/02/03(日) 15:43:51
>299 httpがクソなのはわかるんだけど、役に立たない対策をして使い勝手を落としているのは cgiがクソだからだと思うけど? >294 みたいに危険なバッドノウハウをマニュアルに載っけているのなら、そもそも何のために 対策してるのか判らんし。 Webrick::CGIは…………あんまり使ってないからわからん。 ドキュメントをどうにかしてもらわんとなぁ。
302 :
202 :2008/02/03(日) 15:48:40
>300 真面目にやるんだったら、フィールドを統一的&安全に扱えるラッパークラスを用意するべきだな。 >239だと超巨大ファイルの扱いでちょっと危険。 自分のコードは面倒なんでそこまでやらんけどな……
>>302 > >239だと超巨大ファイルの扱いでちょっと危険。
なら、CGI#paramsがStringじゃなくてStringIOを返すようにでもすりゃいいだろ。
class MyCGI < CGI
def params(*args)
String===(par=super) ? StringIO.new(par) : par
end
end
で、無引数のreadは使うな、と。
IO#to_sなしでStringIO#to_sだけ作る選択肢はない。 なぜならIO#to_sはすでにあるから。 $ ruby -e 'a, b = IO.pipe; p a.to_s' "#<IO:0x100300c4>" 正確にはObject#to_sな。 StringIOの時だけ元の文字列を返すのはキモすぎ。 やるならIO#to_sもあわせて作るべき。無理だが。
別にIOのサブクラスじゃないし
>フィールドを統一的&安全に扱えるラッパークラス multipartじゃないときはただの文字列で十分じゃん。 そんな重厚な設計はうざいよ。
308 :
202 :2008/02/03(日) 16:34:41
>306 matzは“Webアプリは危険だ”“「おかしなコードを書くことを助長する言語」”とdisってるんだから、 Webに使うcgiは重厚でも安全な設計にすべきだと思うが? まあ、matzのダブルスタンダードはいつものことだが。
309 :
202 :2008/02/03(日) 16:37:06
>304 そんなこと言うと、String#to_sの挙動も否定することになっちゃうけど? まあ、to_s自体がグダグダなんで、意味付けを追求する意味はないと思うけどね。
stringなんて名前にするくらいならto_sでよかったよ
うーん。 rubyには悪いところもいいところもあって、まだまだ発展途上だなっという気はするが・・・ ただ、どこそかしこで暴れるアンチが非常にキモイな・・・
>>312 それ、よく知らずにチラッと見に来た初心者や未経験者が
「ああ、そうなんだあ」とでも思ってくれることを期待して
真逆のことをしれっと書いてるの?
>>312 長期にわたりRubyを使用し続けると、アンチになる可能性が高まりますので、
短期の使用をおすすめいたします。
そういや[ruby-dev:33564]でcgi見直し提案来てるな。 誰も反応してないけど……
現実を見ないという解決策を選択します
>>313-314 さて、いまからRubyやろうかっと思ってる一見さんなんだが、Rubyのどういうところが最悪なのかkwsk
>>317 これからRubyやろうかと思ってる一見さんが
2chのしかも個人のレスなんかに左右される気満々ではいけません。
>>318 ・・・
左右される気はないんだが、事前に情報をしっとこうと思ったんだが・・・だめなん?
だめです。
Ruby < 信じれば救われる!
もっといい言語が他にいくらでもある。
そのときその瞬間にロクでもないアンチか信者が常駐状態だった、 という悲劇はわりとよくある話。
>>309 String は別に Object に似せようとはしていないが
StringIO は IO に似せようとしている、という大前提が違う
それはstringがいらないという主張であるが、結局の所、 stringなんて名前にするくらいならto_sでいいじゃんってことになる
IOに似せる→stringなんてメソッドいらない string気持ち悪い→to_sでいいじゃん
328 :
デフォルトの名無しさん :2008/02/03(日) 17:41:12
>>308 >Webに使うcgiは重厚でも安全な設計にすべきだと思うが?
安全かつ、簡単なことは簡単にできる設計がベストだろ。
だからこそ、multipartのときはただの文字列で、
multipartの時はIOのようなものが来るようになってる。
要するに、multipartを使う奴は面倒を押しつけてるんだよ。
329 :
デフォルトの名無しさん :2008/02/03(日) 17:42:34
訂正
>>328 ×multipartのときはただの文字列で、
○multipartじゃないときはただの文字列で、
>>327 >IOに似せる→stringなんてメソッドいらない
あってもいいだろ。File#pathみたいなもんだ。
>string気持ち悪い→to_sでいいじゃん
俺の感覚ではto_sのがキモイ。勝手に型変換すんな。
>勝手に型変換すんな。 いや、したくてするんだがw
p StringIO.new("abcd") #=> "abcd" なんてキモすぎだろ。常考
それはpやputsがto_sを呼んでるだけなのでは…
誰がそんなことを望んでるの?
cgi.rb は多少手を入れた程度じゃどうしようもないし、 大きく手を入れるんだったらパッチをつけないと議論できないからなぁ。
木を見て森を見ず vs. 森を見て木を見ず
>>332 どうしてもやるならStringIO#inspectも定義すべきだね
>>333 to_sはそういう風に使われるものだから下手に定義するなってことだろう
inspect定義しちゃいけないのかw
>>331 してほしくない人もいるってことだ。
お前は "foo" + 1 を勝手に "foo1" にして欲しい派?
もしそうならお前は今の Ruby に向いてない。
ところで、cgi.rbがらみでStringIO#to_sを主張するやつは なぜTempfile#to_sの方は主張しないの?
341 :
デフォルトの名無しさん :2008/02/03(日) 18:25:24
「勝手に型変換」はto_strじゃないのか
342 :
202 :2008/02/03(日) 18:38:19
>340 リファレンス見ると StringIO: IO と同じインタフェースを持った文字列クラスです。 --> 本質は文字列クラス IO: IO クラスは基本的な入出力機能を実装します。 --> 本当は文字列関係ありません。(なぜかIO#readで文字列を吐き出せるけど) だけど? まあ、おいらとしてはcgiクソという結論なんであんまり興味なくなったというのが本音。
343 :
202 :2008/02/03(日) 18:42:12
>333 pが呼んでいるのはinspectだと思う。 putsとprintはto_sだね。
>>342 >StringIO: IO と同じインタフェースを持った文字列クラスです。
これはマニュアルが間違いだな。
文字列クラスだとしたら、+だのgsubだの何もかもが足りない。
あと、英語ではちゃんと "Pseudo I/O on String object" になってる。
>IO: IO クラスは基本的な入出力機能を実装します。
> --> 本当は文字列関係ありません。(なぜかIO#readで文字列を吐き出せるけど)
これはさすがにいちゃもんだ。IOは文字列の入出力機能を提供するものだよ。
>344 >これはマニュアルが間違いだな。 あいかわらずリファレンスは酷い、つうことか。 >これはさすがにいちゃもんだ。IOは文字列の入出力機能を提供するものだよ。 いや、IOて文字列よりももうちょっと抽象化の進んだものじゃね? あくまでストリームなんだから、中身は何でも良いはずだよ。 文字列として成立しないバイナリも処理できる訳だし。 #Windowsだとbinmodeを設定する必要あるけど。
346 :
344 :2008/02/03(日) 20:32:53
>>345 >あいかわらずリファレンスは酷い、つうことか。
まあでも、中を見ればStringIOがStringに似せようとしてないことくらい
普通はすぐわかるから、些細なことだとは思う。
仕様書じゃないんだから、厳密すぎる表現を使われても読みにくくなるしね。
>あくまでストリームなんだから、中身は何でも良いはずだよ。
入出力が文字列になるストリーム、という意味。
任意のオブジェクトを流せるストリームではないと。
文字列というか、Stringで表現できるもの、と言うべき?
ていうか、StringIOの基本コンセプトはシェルでいうところの LIST=`ls` だろ 出力を変数に格納する処理
StringIO#string= を StringIO#to_s= にしろとな。 キモすぎるぞそれは
349 :
162 :2008/02/03(日) 22:18:18
cgi.rb がクソと言うやつは、どのような設計ならば素晴しいか具体的に述べてくれ。 (いや、煽りじゃなくてな。MLあたりで提案しないと状況は動かんとは思うが、それをやれとは言わん) 最近本格的にperlから乗り換え始めたんで、CGI.pm のクソさ加減から劇的に改善されたことしか理解できないのよ。
>348 誰もそんなことを言っていないぞよ
351 :
202 :2008/02/03(日) 22:25:51
>349 Webrickを見たけど、あっちの方がずいぶんまともな設計じゃない? 使ってないから何ともいえんけど。 でも、あれも更新止まっちまってる感じなんだよなぁ。
Webrick::CGIはちょっとしたCGIでよく使うけどいいよ。 WEBrick::HTTPResponse や WEBrick::HTTPRequest を見ないといけないうえに、 時々ソースまで見ないといけないのがネックだけれど。
ソースまで見ないといけないのはRuby全般に当てはまる
ネット関係のモジュールはソース見つつ作ると面白いことができるな
356 :
デフォルトの名無しさん :2008/02/03(日) 23:00:02
WEBrickは読みやすいんだけどそれがドキュメントが無い原因の一つなのかも…
>>355 初心者スレで見たんだが
require 'net/http'
uri = URI.parse('
http://www.2ch.net/ ')
response = Net::HTTP.start(uri.host, uri.port){|http|
http.head(uri.path)
}
p response.code_type == Net::HTTPOK
p response.is_a?(Net::HTTPOK)
これ両方ともtrueなんだよな
Net::HTTPOK使うのなんて初めて見たぞ
def code_type self.class end なんだな。
response.code == '200' という半マジックナンバーよりは見かけ健全だな 初心者スレでは response.code == 200 という比較をして動かないってハマってたが
>357 あと、typoをパーザーが見つけてくれるから、response.code == '200'より便利だよ。
>>357-358 それは、rdocにあるように、caseでチェックするため。
case response
when Net::HTTPSuccess then response
when Net::HTTPRedirection then fetch(response['location'], limit - 1)
else
response.error!
end
>>356 どんなドキュメントが欲しい?
リファレンスマニュアルとは別のものかな。
>>362 356じゃないが、チュートリアルというか、こういう時はこういう組み合わせでやれ、みたいな感じの物はほしいな。
るびまにproxy作る例があったけど、あんな感じで。
WEBrickでプロキシを作る例を読むのはもう飽きたお…
レシピブックじゃだめかね。
>>362 Webrickのクラスでセッション管理するドキュメント
Ramazeってよさそうだけど、あれ試してみた人いる?
>>368 最近できたフレームワークですね。
最小限の構成ながら、MVCで、
必須だろうセッション管理やキャッシュ機構もデフォでついてたり、
それでいて、HTTPDやテンプレートやORマッパがすげ替え可能だったり、
よさげではあるな・・・。
てか、OpenID対応とか時代を反映してますな。
Rails はでかいと思う人にはかなりよさげ。
ただ、Railsの次点は Merbだろうし、
使っている人はどれだけいるんだろうか
だからセッション管理が無いなら標準添付のWebrickでいいんだってば
cgi.rb 再構成案 cat > cgi.rb require 'webrick/cgi'
もう1.9.0を出しちゃった以上、インタフェイスレベルでの変更はやめたほうがいいんじゃないの。 デイブトーマスも「開発者は1.9でライブラリ書けよ」って言ってるぐらいだし。それよりはMLで やってるみたいに実装を高速なものに変更するとかがいい。あるいはCgiAltをcgi2って名前で 取り込むとかね。 でもね、それよりはドキュメントをですね、もうちょっと埋め込むとかなんとかして irbのhelpがpythonのhelp()並に情報がでるようにしてほしい。Pixaxe本の記述って ソースコードにコピーしちゃだめなのかな。
1.9.0 はただの snapshot だし。
俺は StringList が欲しかったが StringIO がそれなりに望みの動作に近かったので使ってる 俺みたいな奴には to_s が自然なのかもな IO として使いたい奴には不自然かも知れん
Rubyの公式MLでいい大人が2ちゃんねるの話題だすなよなー ここは便所の落書きですぞ?暗黙的に提案すればいいのに。
最近の「2ch観」は各人でかなり異なるから、一概には言えないよ。 皆、自分のよく読むもの・よく書くことを中心に2chを捉えてるわけだけど、最近はその内容に凄く個人差があるし、 ブログの影響もあって、今や2ch以外も匿名・暴言の山で、2chだけがどうのって感じではなくなってるしね。 別の板も含めた俺の経験では、「2chに関係することを2chの外で口にすること」について 問答無用で「何てイタイんだ!」みたいに反応する奴は、大抵同じIDで草生やしまくってたりする。 あと、基本的に中傷とかの濃度の濃い場所の住人ほど、そういう傾向がある。 たぶんこれは「鏡にどんな人間が映ってますか?」的な話題なんだろう。
>>377-378 気にしなくていいですよ
俺みたいな世代は、2chもネットの掲示板の一つだから
便所の落書きでも、情報源には違いないものです
ああ、あと、
>>378 の後半は余計だと思うがwその辺が2chたる所以かw
そういやもう2chが特別な場所である感覚はないね。
2chが特別だったのはログとってなかった頃まで
お前ら何年いるんだ。
7年くらいかな?
4・5年くらいの人が今は一番多いんじゃね
>>367 WEBRick でのセッション管理はどこに書いてあるんだ?
>>386 「自分で書き加えろ」という遠回しなメッセージではないだろうか
そんなセッションな〜 という駄洒落を思いついた
shingichuu
【判決】 Segmentation fault
その判決はなかったわ
輝き始めるとは失礼だな。 今まで輝いてなかったみたいじゃないか。
輝くどころか、各方言で骨肉の争いが
輝き始めていると表現できるのは確かだが、 同じような紅い輝きがあちこちにあって統一性が感じられないのはなんでだぜ
燃え尽きる直前の煌き
def [(key)]=(value); end みたいに書きたい! def []=(value, *keys); end でもいいけど
1.9ではrubyが無いとbuildできないのか? baserubyを指定しろと怒られる。
>398 insns.defとかの処理でBASERUBYを使ってるね。 他のマシンで処理しておいて、それを持ってくるって方法もあるけど、 1.8も入れておいた方が無難だと思う。 なお、tarballだと処理したものが入れてあるんじゃないかな。
>>387 >「自分で書き加えろ」という遠回しなメッセージではないだろうか
WEBrickにsession機能がないのに、ドキュメント書けるわけないだろアホ
そりゃ
>>376 が何も言わずにリンク先しめすもんだから、勘違いするじゃない
>>400 みたいに言ってくれないと
いやWEBrick自体にセッション管理機能がないのは周知の上で、 自前でかっこよくセッション機能を組み入れる解説が欲しいのでは 実際問題としてWEBrickの目ぼしい弱点ってそこだけだし
403 :
デフォルトの名無しさん :2008/02/07(木) 09:52:18
WEBrickのプロクシサーバって、アクセス先のデータを一回全部読み込んでるみたいだが、 ちょっとずつ読み込みながら返してくるようにしてほしい。
それはあまりRubyっぽい動作ではないな RubyのIO系はメモリに一気に読み込んでから配列にしたりして1単位ずつ返したりするのが主流 Proxyっぽい動作ではないけどな
>>403 ああ、完全に同意。あの動作はクソすぎる。
>>404 メモリに一気に読み込むのを主流だとか馬鹿なことをいうのはやめてくれ。
IO#eachという一番わかりやすいメソッドを見てみろよ。
Net::HTTPResponse#read_body{|str| ...} は全部読み込んでから区切ってた気がする
407 :
デフォルトの名無しさん :2008/02/07(木) 23:32:50
煽りじゃなくて、Scheme(or Lisp)に有って、Rubyに無い機能ってある? あるとしたら、その機能って必要?他の機能で代用可能? いろいろ細かいことも教えて。 (初心者スレから誘導されました。)
409 :
デフォルトの名無しさん :2008/02/07(木) 23:42:40
マクロはRubyの他の機能で代用可能ではないの? あった方が便利?
>>409 何したいのか判らんけど代用可能かどうかの判断つかないんなら聞いても意味無くない?
411 :
デフォルトの名無しさん :2008/02/07(木) 23:47:38
代用可能ではないと判断した。けど、詳しい人なら代用方法を知っているかもしれない。だから聞いている。
代用というからには用途による。 あらゆる用途で同じように使えるなら、それはその機能そのものだ。
414 :
デフォルトの名無しさん :2008/02/08(金) 00:25:30
こういう用途には代用になる、と言えばいい。 すべてを網羅しなくても思いつくだけ述べてくれて構わない。
Schemeのマクロは文法拡張ができる。 Rubyでは文法拡張する方法はない。 でいいの?
416 :
デフォルトの名無しさん :2008/02/08(金) 00:38:31
>>415 それは、例えば新しいif文を定義して、標準のif文と同じように使うことができるようになる、ということ?
それが、Schemeでは出来て、Rubyでは出来ないと。正しい?
eval系列の命令でマクロっぽいことはできる。 attr_reader, attr_accessorもそれ
>>416 可能だが、どこまで自然になればOKなのかは使う人によるからな・・・
Rubyでも DSLは作られるが、
例えば、brainfu*k を再現するのは無理だろう
419 :
デフォルトの名無しさん :2008/02/08(金) 00:50:38
lispってlispのソース上でbrainfu*kを再現できるの?()は出てこないの? インタプリタを作るならlispでもRubyでもできるよね。それとは違うの?
>>418 my_if(proc { cond }, proc { then_clause }, proc { else_clause })
は「文法拡張した」とはさすがに言えないだろう
>>421 いや、だから人によるってば
>>419 インタプリンタつくって、文字列を実行してという話ではなくね。
お得意のマクロとやらでできるんじゃないのかな? > Lisp
DSLをよく作るとか聞いた
いや、おれはLisp詳しくないのだが・・・
ちなみに、Io-language だとかなりそのものに近ずけることができる。マクロなしに
>>422 人による、って程度じゃないだろ。
>>421 が受け入れられるなら、cond、then_clause、else_clauseを文字列にして
パーサ動かしてもいいってことか。
>>422 >標準のif文と同じように使うことができる
が達成されてないじゃん。
これは主観ではなく客観で定義できる達成基準だぞ。
揉めるなよ。 Matz的にはLispのマクロは「あまりに強力すぎる」ことに難があって、 Rubyをあえてそこまで行かせずにいるんだから。
Rubyでも構文木いじればけっこう何でもできるんじゃないかな PycoのRuby版もできるかもしれない。ParseTreeはどうよ
ところでバイトコードからデコンパイルってできんのかな。
Rubyの構文木ってすげー内部的でなかった? 生のポインタに触らずにいじれそう?
Ruby もそろそろ smalltalk みたいになんでもオブジェクトして欲しい。
>>424 はともかく
>>423 静的言語ばかり使ってきた俺には、lambdaなどでif文作っても、
文法が拡張されているように見えるんだ。
たぶん経験の違いだと思う。
Ruby個人的には大好き・・・
Rubyまで「個人的に」とか断り付けなきゃいけないご時世か 普及したもんだなあ
言ってることはよくわからんがとにかく凄い自信だ
Object.instance_methods が、1.8 だと String の配列で、1.9 からは Symbol の配列になるそうですが、 今まで MyClass.instance_methods.include?('methodname') としていたのを MyClass.instance_methods.include?(:methodname) としなければなりません。 1.8 と 1.9 の両方で使えるような書き方はありませんか。 arr = MyClass.instance_methods arr.include?('methodname') || arr.include?(:methodname) とか格好悪すぎる
.map{|m|m.to_s}
|m| って何の略?いや、気になったので
method names か何かだろ
m 自体は method の m だと思う
「文字列かシンボルのどっち来るかわからん場合は to_s しとけ」という
>>435 のアプローチは妥当
>>434 > 今まで MyClass.instance_methods.include?('methodname') としていたのを
その書き方はそもそも効率が悪い。
MyClass.method_defined?(:methodname)
>>425 「Scheme(or Lisp)に有って、Rubyに無い機能」であることは事実。
それがいいとか悪いとか言うつもりはない。
>>426 標準で構文木いじる方法がないってこと。
ParseTree は既存の文法でパースしたプログラムをいじることは
できても、既存の文法自体は拡張できない。
javascriptのfunctionって最高じゃない?シンプルで。 rubyのproc、Proc.new、lambdaって何なの?同じようなのいくつも作って。馬鹿なの?
441 :
あ :2008/02/09(土) 00:37:38
pythonとRuby、そんなに変らん
ECMAScript系はいいもんだね サーバサイド実装も出て来てるし、今後RubyやPythonと比較されるユースケースが増えるかもなぁ。 現状では、利用形態がきっちり棲み分けてるから現実的に比べにくいかな。
443 :
デフォルトの名無しさん :2008/02/09(土) 01:18:09
functionは長いからfunかfnか\がいい。
defで無名関数が定義できればいいのに。
lengthかlength()かで迷うのはもうごめんだお
446 :
デフォルトの名無しさん :2008/02/09(土) 01:30:37
proc、Proc.new、lambdaを廃止して、全部defにしたら何か問題ある?
メソッドとクロージャは違う
448 :
デフォルトの名無しさん :2008/02/09(土) 01:33:40
def: メソッド proc、Proc.new、lambda:クローじゃ でいいのかな?
450 :
デフォルトの名無しさん :2008/02/09(土) 01:36:23
>>449 だから、defでクロージャーも定義できるようにして何か問題があるかと聞いている。
現状がどうかなんて聞いていない。
>>448 ブロックの外のローカル変数が見えるかどうか
あと無名関数なんて全然defineしてないのにdefって名前はさすがにどうかと
452 :
デフォルトの名無しさん :2008/02/09(土) 01:40:06
>>451 じゃあ、proc、Proc.new、lambda、defをobsoleteにして、全部funcにしたら何か問題ある?
>>451 そんなこと言ったらlambdaなんて何の意味もない名前だろ。
そういえば proc,lambdaとProc.newじゃreturn等の挙動が変わるんだったな
似て非なるものがゴチャゴチャあると紛らわしいから、functionにまとめてほしいな。
Ruby1.9って反面教師であるはずのPerlに怪奇しつつあるよな もっとシンプルで速度10倍くらい速くする方向に進歩して欲しい
速度の話ではシンプルさよかeval捨てるか否かが優先されるかと。 そういや旧macromediaもeval捨てた矢先にActionScriptの速度上げたな
関数が無い(ってことになってる)Rubyではfunctionってキーワードは採用されないだろうな
>456 の「怪奇」があながち誤字に見えないから困る
無名関数はスコープをどうするかが問題かな。 メソッド・Proc・ブロックを統一できればシンプルにはなるんだろうけど。 Rubyが将来シンプルになる見込みはないと思われるので、シンプルなサブセットを作って、 それに向けてYARVを最適化すればいいんじゃないかな。 組み込みクラスのメソッドの再定義を禁止するだけでも大幅に速くなると思うけど。
do [名前] [|パラメータ|] 処理 end が無名関数を返すようにして、 これでメソッド・Proc・ブロックを全部扱えるようにすればいい。
お。
ま。
ECMAScript や Python は public な(Rubyでいう)インスタンス変数が存在出来る。 そのお陰で、メソッドをあたかも クロージャの入った public 変数のように扱える。 Ruby のインスタンス変数は全て protected 。 インスタンスの public はメソッドにしか許されていない。 メソッドとクロージャはハッキリ分かれてる。 そのへんの思想の違いじゃないかな? Procとメソッドをシームレスに扱えるようにしても Python や ECMAScript みたいにはスッキリしないと思う。 むしろ妙なパラドックスに陥りそう。
> そのお陰で、メソッドをあたかも > クロージャの入った public 変数のように扱える。 kwsk gttkn
例えば JavaScript ならこんな感じかな。 <script language="JavaScript"> function MyObject() { this.method1 = function() { return "Hello"; } } var obj = new MyObject(); var func = obj.method1; document.write(func()); function method2() { return "World"; } obj.method2 = method2; document.write(obj.method2()); </script>
Python でも色々出来るが、メソッドと関数の 微妙な違いに苦しむかも知れんな。 型も違うから「あたかも」としか言えない。 class MyClass1: def method1(self): return 'Hello' obj = MyClass1() func = obj.method1 print func() def method2(): return 'World' obj.method2 = method2 print obj.method2()
factorial = def f(n) 1 if n <= 0 n*f(n-1) if n > 0 end factorial(10) #=> 3628800 こんな感じにしたい。
5.times factorial #=> 1 #=> 2 #=> 6 #=> 24 #=> 120 とか。
proc、Proc.new、lambda、defを区別する意味ってあるの? 初心者の漏れには、特にproc、Proc.newが よく分からない複雑怪奇なものにしか見えないんだけど;;
Yコンビネータ使うとか。
Yコンビネータは再帰のためのコンビネータであって、 lambdaの代わりにはならない。 procとlambdaは冗長ではある。Proc.newとは、似てるけど別物で、 まぎらわしいものがあれこれあるのはどうかという気はする。 (「Proc.new は、Proc#initialize が定義されていればオブジェクトの初期化の ためにこれを呼び出します。このことを除けば、proc と同じです。」) def は、確かに特別にそういうものがなくてもいいのかもしれない けど、そうしちゃうと、クラスの文脈(*)に、 class Foo (*) ここ def foo() …… end end 生にlambdaを書いて、それをModule#define_methodでインスタンスメソッド定義、 という、言語の内臓に触れるコードを書かせることになる。 class Bar define_method('bar', proc{ …… }) end こんな感じ。もしMatzがTOOWTDIを信奉してたらこうなってた、というか。
>>476 def〜endブロックのローカルスコープでいいだろ。
>>475 > procとlambdaは冗長ではある。Proc.newとは、似てるけど別物で、
> まぎらわしいものがあれこれあるのはどうかという気はする。
> (「Proc.new は、Proc#initialize が定義されていればオブジェクトの初期化の
> ためにこれを呼び出します。このことを除けば、proc と同じです。」)
バージョンによって違うのかもしれないが、ブロックの中からreturnした時の
ふるまいが、Proc.newとprocは同じで、lambdaとは異なっている。
$ ruby --version
ruby 1.9.0 (2007-12-03 patchlevel 0) [i686-linux]
紛らわしい機能はobsoleteにしてほしいな。 同じことができるならどれかに集約してもらいたい。
そんなことをしたらmap vs collect論争ができなくなるじゃないか。
map/collectは元々Ruby以前からそれぞれの宗派が存在したらから別にいいよ。 でも、lambdaはともかく、proc、Proc.new、def endはRuby独自でしょ。 Ruby独自ならRubyの中で整理した方がいい。
>>475 >>478 で、
def が無ければメソッド定義が、えらい不格好なものになるし、
Proc.new, proc, lambda は似てるけど、それぞれ違うということが
示されてるのは無視?
Proc.new, proc, lambda はそれぞれ違うけど、 同じようなことしかしないから、集約した方がいいって話じゃないの。
> Procでreturnするとfooから抜けちゃって関数内関数として使えません(> <) > > def foo > boo = Proc.new do > 100.times do |i| > 100.times do |j| > if i == 50 && j == 50 > return > end > end > end > end > boo.call > p "foo" # 実行されず > end > > foo この例の場合、Proc.new なら駄目なわけだが、 lambda なら期待通り動く。 procがどちらのように動くかはバージョンによるらしい。 どちらかに絞れるのかな? これ。
そういう多段の脱出のために catch 。
lambda、proc、Proc.newの仕様ってそれぞれきっちり決められてる? リファレンスマニュアルにはあまり詳細に書いていないようだけど。 ソース読めとか言わないよね?
>>484 lambdaでも変わらない希ガス。
ruby 1.8.6 (2007-09-24 patchlevel 111)
def foo
boo = lambda do
100.times do |i|
100.times do |j|
if i == 50 && j == 50
return
end
end
end
end
boo.call
p "foo" # 実行されず
end
foo
言語使用もない糞言語,おまえらよく使う気になるよなあ(www
>>487 インデント崩さずにどうやって書き込むの?
$ cat hoge.rb def foo Proc.new{return"Proc.new"}.call return "foo" end def bar proc{return"proc"}.call return "bar" end def baz lambda{return"lambda"}.call return "baz" end p foo ; p bar ; p baz $ ruby --version ruby 1.9.0 (2007-12-03 patchlevel 0) [i686-linux] $ ruby hoge.rb "Proc.new" "proc" "baz" $ ruby18 --version ruby 1.8.6 (2007-12-02 patchlevel 5000) [i686-linux] $ ruby18 hoge.rb "Proc.new" "bar" "baz"
インデントてすと def foo bar
>>492 1.8.6では、Proc.new≠proc=lambda
1.9では、Proc.new=proc≠lambda
ってこと?
そもそも、returnに対する振る舞いの違いだけで、分けなければいけないようなものなのか?
なぜこうなるのかわかりません(> <) def foo Proc.new{1.times{return"Proc.new"}}.call return "foo" end def bar proc{1.times{return"proc"}}.call return "bar" end def baz lambda{1.times{return"lambda"}}.call return "baz" end p foo ; p bar ; p baz #"Proc.new" #"proc" #"lambda"
>>495 「どう」書いたら「どう」なることを期待してるわけ?
「なぜ」そうなるかはソースを見れば書いてある。
497 :
495 :2008/02/09(土) 18:42:29
1.timesをかましただけでlambdaの挙動が変わるのはなぜですか?lambdaなら returnしてもbazから返らないと教わったのにその通りになってません。
>>496 出たw
「「「「「「「「ソースを見れば書いてある」」」」」」」」
Proc.new{} == メソッドに渡すブロック
ソースったって、rubyという言語のインタプリタの単なる1実装のソースに過ぎないんだろ。 rubyがまともな言語なら言語仕様をきちんと示すべきなんだけどな。
学生ってC#かjava使って宿題してんじゃないの? なんでこんなにわいてんの?新人がゆとりなだけか?
503 :
デフォルトの名無しさん :2008/02/09(土) 18:48:37
ソースを見る人次第でどんな風にも動作するあいまいな言語っていらないよね。
もうブロック内でreturn使うの諦めようぜ バージョン間での非互換や、書き方による差異でゴチャゴチャになってるんだから
もとはPythonスレで出た流れを引き取った格好か
>>503 ソースにはあいまい性はないよ。書いてある通りに動くのだから。
問題は、作者が開発しているインタプリタのソースが唯一の厳密な仕様書になっていること。
まともな言語なら、ソースではなく初めに仕様書ありきであるべき。
>>505 ??
この話題を始めたのは俺だが、Pythonスレなんて見たこと無いが。
>>504 return関係は基本は一応「見たまま」なんだけどね
論理的に動作を追おうとすると変なことに
言語仕様を決めて、それに従えば問題ないんだけどな。
なぜ、と問われたら何だって「ソースにそう書いてある」としか 答えられないんじゃないかと。 標準仕様がある言語なら、自然言語(まれに形式言語)で、 仕様書という「ソースコード」が書いてある、ってだけだし、それでも それを実装した処理系の変な挙動について「なぜ」と問われれば、 やはり「ソースを見ろ」としか答えられないが。 しかし、ruby 1.9.0 (2007-12-03 patchlevel 0) [i686-linux] だと 1.timesをかましてもbazから返らないんだよなぁ(笑)
>>510 なら、ソースのどこにどう書いてあるのか説明しろよ。
「ソースを見ろ」なんて全く有用な情報が無いレスなら書き込む必要は無い。
「ソースを見ろ」==「デバッグしろ」
標準仕様がないのに、何をどうデバッグすればいいんだ? どのように動作するのがバグの無い状態なんだ?
元々は関数内関数(クロージャ)が欲しい、ってことだろ?
>>504 で結論が出てるじゃん。
要は、returnは「メソッドから戻る」ものだから、ブロックから値を
戻したいんだったら、returnは使うなってことでFAだろ?
じゃあエラーではじけよ
何故returnを「ブロックとメソッドから戻る」と定義できないんだろう。
517 :
デフォルトの名無しさん :2008/02/09(土) 19:55:41
>>514 じゃあ値を返すにはどうしたらいいんだよ。
>>516 eachみたいにブロック付きメソッドを制御構造もどきとして使いたいからじゃない?
>>516 メソッド定義の中のブロックの中でreturnしたときとか
Proc生成をメソッド内以外で行ったときとかに超紛らわしいからだろ
>>517 breakかcatch&throwを使ってください
一応、メソッドから抜けてるのにreturnしようとするとErrorになる $ cat hoge.rb def foo Proc.new{return} end foo.call $ ruby --version ruby 1.9.0 (2007-12-03 patchlevel 0) [i686-linux] $ ruby hoge.rb hoge.rb:2:in `block in foo': unexpected return (LocalJumpError) from hoge.rb:5:in `call' from hoge.rb:5:in `<main>' $ ruby18 --version ruby 1.8.6 (2007-12-02 patchlevel 5000) [i686-linux] $ ruby18 hoge.rb hoge.rb:2:in `foo': unexpected return (LocalJumpError) from hoge.rb:5:in `call' from hoge.rb:5 リファレンスマニュアルにはreturnは「式の値を戻り値としてメソッドの実行を終了します。」 とあるから、単にブロックから戻るだけだったらおかしい、と主張はできるかな。
>>518 >>519 単にreturnでブロックから復帰して、その引数が呼び出し元(yieldやProc.new)に戻ればいいだけじゃないの。
何が紛らわしいのかわからない。
Rubyのブロックはreturnに曖昧さがあるってことでFA?
>>517 > じゃあ値を返すにはどうしたらいいんだよ。
ブロック内で最後に評価した式の値がcallとかyieldの返す値になる
ブロックからの脱出にbreakと同様にreturnが使えても全く問題ないと思うのだが。
>>524 goto実装すればOK。
func = Proc.new do
result = -1
if (failed)
result = -2
goto EXIT
end
...
EXIT:
result
end
2.0でちゃぶ台返しマダー?
>>522 >>525 breakはwhileやuntilを抜けるためにも使われる、ということを忘れてないか
whileの中でreturnするとwhileを抜けた! なんて動作はいくらなんでも困る
>>528 breakは最も内側のブロックからの脱出、
returnはメソッド、およびlambda、proc、Proc.newの最も外側のブロックからの脱出
と定義して問題あるのかな。
あー、nil に追加はマズイや。 Object.new で。
誤爆
>>529 > breakは最も内側のブロックからの脱出、
breakはbreakで、ブロックではなくイテレータから抜けてくれないと困る
$ cat hoge.rb
def once # 1 回だけ実行するイテレータ
yield
p "2"
end
def foo
once{p "1"; break}
p "3"
end
foo
$ ruby hoge.rb
"1"
"3"
533 :
デフォルトの名無しさん :2008/02/10(日) 00:09:58
emacsにruby-modeを追加する方法がわかりません。 詳しく説明してるサイトを教えてください。
>>533 いささかスレ違い。emacsスレのほうがいいと思うが…
load-pathにあるディレクトリに置いて、
~/.emacsなりuser-init-fileなりに以下を追加。
(autoload 'ruby-mode "ruby-mode" "Mode for editing ruby source files" t)
(set-alist 'auto-mode-alist "\\.rbw?\\'" 'ruby-mode)
(set-alist 'interpreter-mode-alist "ruby" 'ruby-mode)
535 :
デフォルトの名無しさん :2008/02/10(日) 00:28:48
1.9からHashが順序保存か…。 けっこうこだわりないんだな。 言語仕様で保証しないところがチキンというか、 PHPで4→5で動作保証しないこともネチネチ言ってるMatzがな…。
これに依存するコードを書くことはまずないと思うからぶっちゃけかなりどうでもよい 2.0で導入されて、2.0が今の1.8くらい普及してから考える
1.9でネチネチ言う奴は何なんだろうと素で思う
>>535 >PHPで4→5で動作保証しないこともネチネチ言ってるMatzがな…。
そんなこと言ってたの?
言ってたとして、これと Hash の順序保存とのつながりがわからない。
>>536 putsに配列を渡すと整形して表示する機能くらいどうでもいい機能
2.0に入ったとしても個人のスクリプトで意識して使えば便利だろうって程度だなあ
irb> puts [1,2,3]
1
2
3
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Python is better than ruby. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
日本語で桶
これ抜けてるだろ Python is betterPerl
どんな言語でも信者はキモイ証左といったところか。
>>537 だって、String#sg とかの糞名前を確定させなかったりするためには、
今がネチネチ言うときなんじゃないの?
>>546 それならMLでネチネチ言え。
それにmatz以外の開発者がある程度抑えてるから大丈夫だろ。
548 :
デフォルトの名無しさん :2008/02/10(日) 15:10:01
厳密には無理なんだろうけど、そこまでやるのにワロタ
550 :
デフォルトの名無しさん :2008/02/10(日) 15:36:13
方向音痴な初心者です Rubyは自由性が在ると云う事は理解すべきですが、 変数は一つの定義で幾つ程、付けられますか?
元のスレに帰れ
tkよりgtk2の方が良いよな・・・ というかtkを使わざるを得ない制約が有ってgtk2に見向きもしなかっただけなんだが。 tkは1.9への移行とtk8.5の仕様変更でゴチャゴチャになってるみたいだけど。 今後tkってどうなっちゃうの? オワタ? 次から作るならtkは避けたほうが無難かな?
2010年になっても保守しなければならない代物なら立ち止まったほうがいいかもしれない 正直、gtk2だからマシというもんでもなく…
>>544 それがRailsであるっていうのはどうやって見分けるの?
自己申告に決まってるだろ
>>552 同志よ。いま同じ問題を抱えています。
ruby/tkだと今は動いたとしてもバージョンアップしたら動くか心配だし、
gtkも同じように心配。
ということは一番安全なのはCGIを作ってブラウザで表示させるのがいい気がする。
MVCモデルで開発していくのが正解かなと思う
URL#is_rails #=> true
560 :
デフォルトの名無しさん :2008/02/10(日) 23:02:16
WebベースのUIはデータのやりとりが面倒くさい。 セキュリティとかもややこしいし。
PHPなら簡単ですよ
ちょっとりりちゃんに会いに言ってくる
バージョンアップで動かなくなる可能性を心配するならCで開発しなされ
tk8.5で見た目が綺麗になったんで、ようやく使い始めようと思ったのだが・・・
565 :
デフォルトの名無しさん :2008/02/11(月) 02:39:47
結論 Javaで池
じゃあJRubyで
567 :
デフォルトの名無しさん :2008/02/11(月) 05:53:08
NUM2INTとかだけじゃなくてpackにあるnum2i32を表に出せばいいのに
今後のバージョンアップでどうなるかわからないという話なら CだろうがJavaだろうがPythonだろうが同じじゃね 一番安全なのはバージョンアップしないことだろ
Cを混ぜるなw
ようやくPathnameにダメ出しする人があらわれたか
>>571 確かに、「いずれ死ぬという話なら末期癌の老人も健康な子供も同じ」みたいな。
574 :
デフォルトの名無しさん :2008/02/12(火) 15:10:43
古いのを永久に使えるという意味でCは特別な存在。
孫にあげるのはもちろんヴェルタースオリジナル。 なぜなら・・・
孫もまた特別な存在だからですハァハァ
特殊な存在ktkr
ショタ☆ジジ
C99コンパイラでもちゃんとコンパイルできることに感動 でも、 g++だとやっぱダメだね。mallocとかの型チェック関係だけかと思ったら 可変長引数関数ポインタのプロトタイプでエラーでるわ。規格だと少なくとも1つは 固定引数にしないといけないんだから今のANYARGSを...に置き換えるだけ じゃ意味ないと思うんだけどなあ。その辺考えてないのかな。
いきなりで何の話かわからんのだが、とりあえずその環境でコンパイルできるコンパイラがあるんならいいんじゃね? 正直バイナリになってしまえば皆同じ?
C++でコンパイルでできたほうがなんか型安全っぽいじゃない 最近のゲームプログラミングとかもg++でCのコードをコンパイルするんだって。
「っぽい」とかいう適当な理由を出されても。
本体がC++である必要がなくってもライブラリ、 ミドルウェア側の都合でC++のランタイムが必要なわけで、 Rubyも将来的には是非C++でコンパイルを。
そりゃ作者が引退するまで無理だろw
585 :
デフォルトの名無しさん :2008/02/13(水) 01:10:51
C++なぞ問題外.^^;;;
Rubyには直接関係ないけど、最近のruby-list@bladeはUTFメールの 文字コード判定に失敗してウェブから読めない投稿が多いなあ。 あと、namazu検索が止まってるのも問題。インフラだからもうすこし しっかりしてほしいよ。
587 :
デフォルトの名無しさん :2008/02/13(水) 03:24:48
Rubyはエロ画像収集言語です
><;
>>587 つか、Rubyにかぎらんような。
JPEG2000のSusieプラグインの人とかはショタコンだし。
これは痛すぎるぜ
perl の人はアニオタじゃなかったけ?
>>592 > perl の人はアニオタじゃなかったけ?
昔はラムちゃんTシャツとかで有名だった。
最近は、
ttp://gihyo.jp/dev/serial/01/alpha-geek/0000 より
あずまんがらしい。
> 弾:最近お気に入りのアニメは?
> ラ:《あずまんが大王! ちよちゃん大好き!》(ちよちゃんの歌「つくりましょう!」を歌い出す)
マクロスネタも通じる。
> ラ:文化,でしょうか。どれだけ優れたソフトウェアでも,文化を持たないものは普及しません。《プロトカルチャ〜(※5)》
> 弾:ヤックデカルチャ!(※5)
オタクが嫌ならPerlもやめといたほうがいいね。
URI::Genericに、 alias to_str to_s がないって報告して
>>593 >オタクが嫌ならPerlもやめといたほうがいいね。
Rubyも駄目だろwww
世間ではプログラミングがそもそもオタク行為だから、 その中で今さらなことを気にしてもしょうがないよ。
エログラマー
>>595 「も」って書いてあるのにその発言は痛い。
オタクは肯定できてもロリコンは肯定できないね
児童ポルノは持ってるだけで違法になるっぽいし
>>587 はパブリシティー権を犯してる
2chのスレから児童的に取ってきてるだけでしょ
603 :
デフォルトの名無しさん :2008/02/13(水) 09:41:34
持ってるだけで違法なのはいいとして、 持っているかどうか調べるのはプライバシーの侵害ではないのか。
604 :
デフォルトの名無しさん :2008/02/13(水) 09:42:22
あと、被写体の年齢の証明方法を教えてほしいね。
605 :
デフォルトの名無しさん :2008/02/13(水) 09:53:23
>>594 過去にto_strなくしたようだけど、リファレンスには残ってるね
URIは基本的に文字列だし、to_strあったほうが便利な気がするけど
607 :
デフォルトの名無しさん :2008/02/13(水) 09:57:17
Rubyistロリコンばっかかよwwww
perlはアニヲタだからrubyは児童ポルノで対抗するのか 恥さらしだからヤメレ
俺は熟女の画像しか保存してない
610 :
デフォルトの名無しさん :2008/02/13(水) 10:14:20
性癖をごまかす証拠を用意してるやつは、リアルでやりまくり。
611 :
デフォルトの名無しさん :2008/02/13(水) 10:24:40
>>587 のブロマイドって売り物でしょ?
逮捕されないの?
著作権法違反にも幇助あるよ
614 :
デフォルトの名無しさん :2008/02/13(水) 11:49:17
こいつの本見たことあるけど変なAA使っててきもかった AAなんて2ch中だけでやってろよ
お前も十分着も伊予
ヒント:統一協会
>>617 「にも」って・・・もしかして、2chに何かを書き込むのが
本人への「注進」に値すると思ってるの?
アンチはアンチスレでお願いします
620 :
デフォルトの名無しさん :2008/02/13(水) 19:22:19
あぁ まさかまさか、重要な仕事を依頼しようとしている相手がこのような異常性癖の持ち主だったとは こ、子供相手に信じられん!! 俺なら断然巨乳の女、映画女優で言うとイザベル=アッジャ〜ニが良いのに!
なつかしー
622 :
デフォルトの名無しさん :2008/02/13(水) 23:53:02
結城も微妙だが、だからといって西和則が恥晒しなことは変わらない
無限長演算はいつ標準実装されるの。あとRational(3, 4)は3/4って表示してよ。
devでbigdecimalやrationalの話してるんだから混じってきたら?
1, 2, ... と無限まで続くRangeが欲しいなあ
とりあえずこんなのでしのぐのかな。 遅いらしいけど。 require 'generator' class IntegerSequence def initialize(from=1, step=1) @gen = Generator.new {|g| loop { g.yield(@i ||= from); @i += step } } end def next; @gen.next end end evens = IntegerSequence.new(2, 2) puts evens.next puts evens.next puts evens.next : :
うん、1.9のEnumeratorを使えばできるのはしってるけど 綺麗なリテラルがほしいのね
>>623 to_sすれば3/4ってなるけど
inspectはそのままevalできるのを出力する傾向があるから
Rational(3, 4)のまま変わらないんじゃないか?
>>625 (1..1/0.0).each{|x|p x}
>>629 おお!・・・Infinityってそのまま書けないの?
tやnilがあんだしInfinityぐらいいいじゃんと思うけど・・・
Float::Infinityでもいいけど
と思ったらMath::Infがあったか。 これからは include Math (1..Inf).each を使うことにする。ありがとう。
$ irb >> include Math => Object >> Inf NameError: uninitialized constant Inf from (irb):2 どこで定義されてるん?
633 :
631 :2008/02/14(木) 03:26:30
??? あれ、どういうこと?確かにあったのに・・・ と思ったらこういうことらしい。 Math::Inf => NameError: uninitalized constant Inf Inf = 1/0.0 => Infinity Math::Inf => Infinity つまり、定数を任意のクラスから参照できてしまうみたい。 1.8だとErrorがでるけど1.9だとスルー。バグかな?
そんなんダメじゃん。あほだな1.9
classも定数だからこういうこともできるね class A; end puts A::A::A::A::A::A::A::A::A::A::A::A # => A すごいなRuby1.9!
ワロタ
これはwwwwww
>>636 よく理解してないんだが、1.8でも警告は出るけど同じ結果。
1.9では本採用ってことかw
>>636 が変だと一瞬でも思った奴は arr[1][0] で引っかかる奴だな
>>639 Object::Object が Object を返すだけ
何億回繰り返しても Object::Object が Object を返していることの繰り返し
アホ乙
>634の前半が変だと一瞬でも思わないやつは、変な言語仕様に引っかかって 時間を無駄にする奴だろう。 moduleは名前空間の分離にも使われるのに、存在しない名前が参照できてどうするよ。
:: 演算子を使うとクラス定義の中で素で参照できる定数全部を参照できるってことか それほど困らないけど気持ち悪いな class A;end A::String とかが出来ちゃうとか
困ります
moduleを名前空間の為に使うんじゃねぇよゴルァ! ってこと?
まあモジュールの中からトップレベルの定数を参照出来ないと死ぬほど面倒臭いんだが。 …… "::" を打つのがそんなに面倒なのかとか問わない。
モジュールの中はネストの関係で参照できて当然で、そんなことを言ってるんじゃない
明示的にA::Bって書いてるんだから、この仕様は不自然だろ
結論:toplevelは気持ち悪い
class Main public: def self.main 内じゃないと実行できないようにしようぜ
トップレベルの定数がObjectにくっ付いてるのが悪い
const_missingがあった場合はなんか予期しない振る舞いになる気がするなあ。 class Foo def self.const_missing(id) 43 end end Foo::Bar => 43 (....) Bar = 9 Foo::Bar => 9
と思ったけどこれは1.8でも同様か。ま、シャドウイングするか別いいかな。
::の無い定数呼び出しと ::有りの定数呼び出しは区別してくれた方が良さそうだ
class String String.new end で2つのStringが別のものになるとかなり当惑しそうだな。
別にトップレベルが見えてもいいとは思うけど少なくとも警告は(1.8のように) してほしいなあ。この辺は小さくハックできるのと大規模アプリのために きっちりエラーになるとの違いだけどさあ。
659 :
デフォルトの名無しさん :2008/02/16(土) 01:03:11
a=[[0]]*4 p a #=> [[0],[0],[0],[0]] a[0][0]=1 a[1][0]=2 p a #=> [[2],[2],[2],[2]] 意味ねぇwwwwwwwwwwwww
a=Array.new(4){[]} p a #=> [[0],[0],[0],[0]] a[0][0]=1 a[1][0]=2 p a #=> [[1], [2], [], []]
nannzo? I understand it -> a[0][0]
Sorry,
>>661 is mistake...
I DO NOT understand it -> a[0][0]
what is meaning?
>659 [[0]]*4 なので、生成してる[0]は1つだけ。 aの中身のそれぞれの[0]は、全く同じ[0]を参照してる。 だから、それを変更すると全部置き換わったように見える。
a=Array.new(4){[]} p a #=> [[0],[0],[0],[0]] ???
そこは記述ミスだな 頭の中だけで考えて書いたのだろう irb> a=Array.new(4){[0]} irb> p a [[0], [0], [0], [0]] irb> a.each{|e| p e.object_id} 538351488 538351438 538351278 538351218 irb> a[1][0]=1; a[2][0]=2 irb> p a [[0], [1], [2], [0]]
667 :
デフォルトの名無しさん :2008/02/16(土) 11:59:19
>>666 irbのコピペを整形するのって面倒なんだよね
669 :
デフォルトの名無しさん :2008/02/16(土) 14:17:01
670 :
デフォルトの名無しさん :2008/02/16(土) 14:18:18
事実で名誉毀損も糞もないと思うが
結構いるよね、事実を口にするだけなら名誉毀損にならないと思ってる人。 刑法230条あたりを調べてみるといいよ。
673 :
デフォルトの名無しさん :2008/02/16(土) 14:40:11
宗教に入ってるのをばらされたくらいで名誉毀損とか言うと、 その宗教の人から隣地殺人される。 モルモン教は差別されるような宗教なのかと。恥ずかしいことなのかと。
>宗教に入ってるのをばらされたくらいで名誉毀損とか言うと、 >その宗教の人から隣地殺人される。 こういうのが名誉毀損なんだろうな
>>667 は名誉毀損なのか?
全部公開情報じゃないか。見せたくなければwebにしないか認証でもかけておけばいいのに
舞波の人にとっては
>>667 みたいに書かれても
「それがどうした」レベルの話だと思うぞ。
コピペするエネルギーを別の事に使えばいいのに
>>674 >宗教に入ってるのをばらされたくらいで名誉毀損とか言うと、
>その宗教の人から隣地殺人される。
これが事実っていう意味?
でもまあ、アンチはレベルが低いというのはよくわかった。
信者はさらに低レベルなんですねwww
>>671 が切り口を変えようと必死だなぁ。
無駄なのにw
682 :
デフォルトの名無しさん :2008/02/16(土) 19:15:11
>>674 有害なものの一つとして金閣寺が含まれている事実を知らないらしい。
理由は宗教だから。
ちなみに有害としてるのはNTTドコモね。
へえ、そうなんだ。その話は興味深いけど、急になんのこっちゃ?っていうw 疑問符いちいち言うとグダる一方だな。 お手数かけますが、一旦何伝えたいのか整理して欲しい 俺も横から突っ込み入れたクチなんで、明確な非があったなら謝るから
684 :
デフォルトの名無しさん :2008/02/17(日) 09:54:48
国宝であり観光地である金閣寺は宗教だから有害 Rubyは日本産で新しいプログラミング言語だけど宗教だから有害
686 :
デフォルトの名無しさん :2008/02/17(日) 12:40:15
島根でやったのは正解だな。 アクセス数もそんなにないだろうから、一応公的システムの実績として上げられるしな。
>>686 GalateaってGPLで配布できないんじゃないの?
BSDライセンスと同じ理由で。
それとも俺の勘違いか?
GPLはGPLにない配布制限を入れてはいけない というライセンスなので宣伝条項付きは非互換
>>684 金閣寺は国宝ではない。
金閣寺は実は本来は寺ではない。つーか、あれをどういう宗教だと思ってるんだ?
つーかちょっとは調べてから発言しろよ。
拝金主義の権化だって言ってた奴もいたなあ
693 :
デフォルトの名無しさん :2008/02/17(日) 19:54:13
>>691 国宝じゃないとは知らなかった。
しかし、金閣寺は宗教施設と分類されている事実。
放火される前の本物の鹿苑寺金閣は国宝だったんだけどね 今現存するのは屋根の上の飾りを除いて復元のレプリカ 金閣寺本体を見て「なんかケバくて感動しない」と感じるのはある意味正しい むしろ庭とかのほうが歴史の味が残っていて美しいと思う
孤独を埋めたいならこんなところでがんばってないで風俗でも逝って来い
日本の寺なんか何度も燃えてるだろ
本能寺とかな あれは熱かった・・
うちまで火の粉が飛んできて大変だったよ
比叡山が燃えたときは涼しかったらしいぞ。
701 :
デフォルトの名無しさん :2008/02/17(日) 22:41:40
冷ぇ〜
いつから大喜利スレになったんだ
それも寒いネタばっかり
比叡山で冷ぇ〜だもんな
我慢大会みたいな。
配列とハッシュってどっちがアクセス早いの?
1000要素くらいでは1万回くらい実行しないと変わらないと思う で、要素の塊に対してどういうアクセスをするかで違う、が答じゃね
>>706 疑問になったらまずは自分でベンチマークを書くんだ
そしておれたちに報告するんだ
まず 「アクセス」 を定義するんだ。
浅倉。
もう一人カワイソス
713 :
デフォルトの名無しさん :2008/02/19(火) 11:10:28
714 :
デフォルトの名無しさん :2008/02/19(火) 11:26:26
require_relative
クリエイティビティみなぎる俺には物足りないんだよねruby 某蛇言語は俺のハートをガッシリ掴んだが お前らrubyプロはこれ使って何やってんの?具体的に教えてくれよ
>716 逆にRuby使いからするとPython使って何してるのか判らんワケで…。 結局似たようなことやってんじゃね?
shスクリプト Perl PHP の三角の間の何かをしてるんだろうな
>>716-717 どっちの言語も、学ぶことで形にできるようになるものといったら、
「上から目線で他言語を煽ること」くらいだものな。
PyhonはググルとMSにヨイショされてるからその点では明らかにPyhon>Ruby Matzもどこかにもぐりこめばいいのに^^;
>706 "ID;text"っていう形式で2万行くらいあるcsvデータに 与えた文字列とぴったり一致するIDが存在するかどうかを調べるスクリプトを書いた結果から言えば 配列よりハッシュのほうが20倍くらい速かった。他の処理は知らん。
Arrayへのinclude?やgrepはHashへのhas_key?やfetchに比べれば遅いだろうな
配列とハッシュのデータ構造の違いの話なんだからRubyの問題じゃないでそ 実験して見るまでも無いさ
include?とhas_value?ならinclude?のほうが早かったよ
727 :
デフォルトの名無しさん :2008/02/20(水) 22:53:24
プログラミング初心者ですが、質問があります。 Pythonは言語自体はシンプルで、必要な機能は拡張モジュールを使って追加する、と PyJUGのホームページに書いてありました。 これは、Rubyにも当てはまりますか?
大体おk
>>728 横からすまん。
>>727 のレスを見て完全にあてはまると思ったんだが、大体に当てはまらないのはどのへん?
730 :
727 :2008/02/20(水) 23:03:37
出来れば具体的にお願いしますm(_ _)m
困る728w
728じゃないが >言語自体はシンプル この辺かなぁ。 てゆーか、俺はRubyもPythonも シンプルさを売りに出来るほどシンプルとは思わんが。 まぁ、シンプルでなきゃダメダメなんて言うつもりもないけど。
シンプルと感じるかどうかは人によって異なるからなあ
>>728 みたいに曖昧な答えになるのは当然じゃないの
シンプルに記述することはできるよね。 でもその裏返しに、込められた意味は多いってことだから。 これを「カンタン」と言うのは変だよね。 ってスタンスでそ。
735 :
デフォルトの名無しさん :2008/02/21(木) 00:01:44
Rubyの複雑さは人間に優しい複雑さだから。
ソースが仕様で人間にも優しい
話としては、処理系自体は機能をある程度絞っていて、必要なら自分で拡張モジュール追加しろ、ということだろ? そう言われると「シンプルかなあ」という気はするよね。 記述性がどうこうというのはまた別問題。
738 :
デフォルトの名無しさん :2008/02/21(木) 01:29:01
ソースが仕様って、開発してる奴バカなの?
>>738 という頭の悪いレスを返すお前に全俺が泣いた。
ソースが仕様書です ってくらい分かりやすく記述せよって事じゃないのかw?
じゃあinject禁止
時々ある Hoge.new(params) ではなく Hoge(params) 形式の関数的クラスは使用禁止な
>>738 もうわかったと思うけど、そこを指摘すると信者がひどくファビョるから注意な。
>>744 頭が悪いといわれても、そんなに怒るなよ。
ファビョってるw
メジャーな言語になってしまうと、
>>746 みたいな低レベルな人間も使ってしまうところが
嫌な事だな。
長く使ってるとアンチになるというのが定説
ただでさえ資金も人も時間も足りないんだから、凄然とされた仕様書を 書いている暇があったら、ソースコードに手を入れてください (> <)
750 :
デフォルトの名無しさん :2008/02/21(木) 14:55:45
使えば使うほど仕様の不安定さに泣かされることになるからな 今はもう取り下げられたが、少し前には、 お前ら本当にRuby使ってんのかよ的な仕様変更がいくつか提案されててうんざりしたわ
Matzが日本人じゃなかったら間違いなくPythonつこうとる
Matzが日本人じゃなくてもどっちを使うかと言われたらRubyだなあ。 もっとも、Matzが日本人じゃなかったらとっくに捨ててRubyでもPythonでもない別の言語を使ってる。
>>750 HashMapとArrayの混合の事?
てか1.9での変更に文句つけるやつはただのアホだろ
みんな文句つけまくりでMatzが案を引っ込めるのがよくあるパターンですが
じゃあ、こうなったら Yet Another Ruby をみんなで作ろうぜ。 略してYAR。
とりあえず String#sg という名前は末代まで語り継ぎたい。
結局それは何をするメソッドなの?
名前重要っていう、Matzへのしっぺ返しメソッドとして語り継がれるわけだ 呼べば NamaeJuuyouError < NameError な例外がかえって来るように実装すればいいんじゃね?
double pi=3.14159265358979823846; if((fp=fopen("PI.bin","wb"))==NULL) printf("\aファイルをオープンできません。\n"); else{ fwrite(π,sizeof(double),1,fp); fclose(fp); } C言語で↑のようにpiをバイナリファイルに書き込んで、 BZというバイナリエディタで開いたのですが”$-DT・ @”(文字部)と表示されました。 その後にfread関数でPI.binの内容をプログラム上で出力すると3.1415926……とさきほどの数字に限りなく近い数字できちんと表示されたのですが バイナリエディタで見ると変な文字に変わってしまうのは、何が原因なのでしょうか?これをバイナリファイルとして正しく見れる方法はあるのでしょうか。
そりゃ浮動小数点数は、整数とはバイナリへの納め方がちがうもんよ
こいつD言語スレでも見たぜ
>>762 が答えてくれたんだからいいじゃん
きちんと最後まで責任持てよ
>>760 fwrite(π,sizeof(double),1,fp);
↓
fprintf(fp, "%lf", π);
>>765 πはそのままなんだ。Cってこんな書き方できるんだ
できねーよ
Array#between(start..end) が欲しいな Array#slice(start..end) Array#slice(pos[, len]) は引数が2パターンあってあんまり綺麗じゃない
それはbetweenではない
Array#kanibasami
Array#pafupafu
面白いと思っているのか?
うん。わりと・・・
774 :
デフォルトの名無しさん :2008/02/22(金) 11:16:32
コピペ君て馬鹿(ry
西 和則ってのがロリコンなだけだ Rubyは関係ない
777 :
デフォルトの名無しさん :2008/02/22(金) 11:58:44
>>777 包含関係、必要条件、十分条件、逆、対偶、といったことが理解できない人はこの板に来ないほうがいいと思うよ、マジで。
779 :
西和則 :2008/02/22(金) 12:07:47
780 :
デフォルトの名無しさん :2008/02/22(金) 12:11:14
>>778 !理解しました…
r ???品質と云う物ですね???
で西 和則って誰
782 :
デフォルトの名無しさん :2008/02/22(金) 12:18:44
>>778 WHOISの意味がわからない人も見てて恥ずかしいからなんとかして欲しい
この変な文章はこのあいだまでlinux板にいたアナスイだろ 相手しちゃダメですよーー
785 :
デフォルトの名無しさん :2008/02/22(金) 15:05:58
推奨NGWORD:西 和則
786 :
デフォルトの名無しさん :2008/02/22(金) 15:06:23
推奨NGWORD:ロリ の方がいいか
MLの質問の仕方はどうにかならんもんなのか。 うまく動かなかったら、コードを削って最小限のコードを 提示するのが当たり前だと思うのだが。
どうにもなってない以上それは「当たり前」ではないのだろ あんたはその「当たり前」はどうやって習得した?
net/protocol.rbからTimeout::Errorが飛び出すのは設計ミス
>>788 おれは仕事故、先輩諸氏に徹底的に追い詰められる事で覚えたな。
最近は甘やかしすぎというか、いい人し過ぎな馬鹿が多いんだろう。だから馬鹿が増える。その馬鹿が馬鹿を育てる。悪循環というわけだ。
で、お前は?
最近Rubyの話題があんまりないような
1.9.0-1が出たらあーだこーだ盛り上がります
その内容は今と大差ないdis合戦とちゃうんか?
せめて1.9.1が出てくれないと盛り上がらない
Rubyの標準ライブラリって死んでるのが多いよね。 CGI系はご覧のとおりで、ドキュメントもテストも少ない。cgiextを取り込んで kuwataさんにメンテナになってもらえばいいのに。 DLなんかはインタフェイスが変わってるというのにドキュメントがまったくないし。 人に使ってもらう気がないというか、狂ってるよね。 GUIはもういい加減Tkを捨てたほうがいい。debianでもデフォルトで ライブラリが作られないなんてやる気がないとしか思えん。 せめてruby/gnome2を取り込めばいいのに。
ドキュメントの無いライブラリは全部obsoleteにしろよ 存在が無意味だから
ドキュメントがないライブラリは結局自分で読み砕かないといけないから自分で書くのとあんまり変わらん
>>798 書き手にある程度の信頼が置ければ、またそのライブラリが十分にメンテされていれば、自分で書くよりは遙かに楽、だとは思うけどね
ただ十分にメンテされているライブラリにドキュメントがないっていう状況があるかどうかは知らない
Rubyのライブラリで信頼がおけるのは、PythonかPerlで使われてて 十分ならドキュメントがあるやつをパクってきたやつだな。 これならサンプルコードをべたに移植すればだいたい動くしね。
>>800 Perlのを移植したcgi.rbはまったく信頼がおけない
803 :
デフォルトの名無しさん :2008/02/23(土) 01:24:04
>>791 コード削らんな、コンパイラのバグか、自分のバグかわかんないからな
Lisp相当のマクロ搭載しろよ。
mycomジャーナルで知ったんだが、rushとかいうrubyで書かれたシェルがあるらしい。 sshのコネクションも一つのオブジェクトとして解釈するとか結構面白そう。 使ってる人いる?
昔からそんなのなかったっけ あまりにも昔からあるもんだから「使えなかった時代」の印象で 旧い人たちには現在もスルーされまくってるというのがありがちだが
ラッシュってホモゲイの人が使う興奮剤じゃなかったっけ
Rush違い
例のゲイ人はどうなった?
興奮剤? ホルモン剤?
推奨NGWORD:ゲイ
プロはむしろゲイでレス抽出
>>797 その方向でいくと本体もobsolete化
その方向でおk
僕の息子もobsoleteされそうです><
>が、最近のruby-coreでの議論の結果、timeoutがネストしている場合で >もそれぞれを区別するようになり、1.9では同時にTimeout::Errorも >RuntimeErrorのサブクラスに戻りました。
戻ってくんな
また香ばしい人間ばっかり集めてきたな…
ホモはどうすんのよ?
rmagick2使ってるんですけど、モノクロなjpgを探せませんか? グレイスケールのフォーマットとかではなくて、中身が実質白黒なやつです。 任意の点で彩度が何ぼ以下とかいう処理になると思うんですけど。
825 :
デフォルトの名無しさん :2008/02/23(土) 23:26:11
if,def...〜end構文アレルギーを克服したらRubyを使うのが楽しくなってきた(^o^)
>>824 そのものはないようなので、
require 'enumeartor' # 1.9.xでは不要
class RMagick::Image
def gray_scale?
enum_for(:each_pixel).all? {|pixel, h, s, l = pixel.to_HTL; s < NAMBO }
# 1.9だと、each_pixel.all? {...}
end
end
でどうだ。
Image#color_histogram とうのも使えるかもしれないけど、
多色画像だと無駄が多いか。
× to_HTL ○ to_HSL まぁ、画像やる人なら分かるだろうけど……
やべぇ炊飯器でカレー作ったらすげぇ美味いのな
誤爆したorz
829.__send__(:kwsk)
831.kwsk 829 では?
"やべぇ炊飯器"が気になる
炊飯器でカレーって作れるの?
836 :
デフォルトの名無しさん :2008/02/24(日) 21:07:15
カレーにRubyを入れたらうまそう(-_-)
炊飯器でカレー作ったらご飯が炊けないじゃないか 致命的なバグだ
炊飯器って結局は圧力釜みたいなもんじゃないか?
839 :
デフォルトの名無しさん :2008/02/24(日) 21:12:06
バグというか設計不良だなw
炊飯器2個買え
こんなつくりかただと水っぽすぎるだろう 玉ねぎも炒めてないから香ばしくないだろうし。
844 :
デフォルトの名無しさん :2008/02/24(日) 21:28:26
炊飯器でご飯炊くついでに別容器を入れてなんかする、というのは割と普通だと思っていた。 なお、ご飯に匂いがつくので、この例みたいにどうせカレーにするからカレーの匂いがついてもいい、とかじゃない限り、ある程度妥協が必要。
ウオツカ・ジンの助の人の本には、炊飯器に卵をいれて一石二鳥という ネタがいつも載ってるね。
847 :
デフォルトの名無しさん :2008/02/24(日) 22:54:46
試しにジャガイモと鶏肉とコンソメを放り込んで炊いたら スープを期待したのに汁気が全部ジャガイモと鶏肉に吸い込まれて煮物になってしまったわけだが…
class ご飯 end module カレー end class カレーライス < ご飯 include カレー end
class カレーうどん < うどん include カレー end 便利だなあRubyって
>>849 便利なのはRubyじゃなくて「カレー」だとオモタ
カレー単体のインスタンスを作れない欠陥が… さすがにカレーモジュールは違和感あるな 実用上問題無ければ自分だけで使う分にはかまわないけど こんなライブラリがあったら嫌だ
カレー単体のインスタンスなんて辛くて食えねーだろ。
カレーをmixinすると、 元が何であれすべてカレーになります。 そのくらい便利って話。
ちょうどさっき米の在庫が無くなったからカレーだけ食べたぞ。 普通においしい。
だが、複数の「具(メソッド)の重複」があるとミックスイン機構は破綻する。
>>856 カレーと肉じゃがは mixin するなと…
require カレー require 肉じゃが とすれば、2行目のrequire で入るのは白滝と長ネギだけで済む
>>859 それ、解決になっていないから。つか、生じうる問題を認識できてないんじゃ?
861 :
デフォルトの名無しさん :2008/02/25(月) 11:35:36
料理は多重継承が無いと表現が難しい希ガス 食材→モジュール 料理→クラス と思ったけど、料理を組み合わせて作る料理もあるから・・・ オムカレーとかw
862 :
デフォルトの名無しさん :2008/02/25(月) 12:06:41
バーチャルで定義してもダメ?
いやいや、ライスカレーとカレーライスは似てるけど非なる料理なように 追加部分を''混ぜ込む''mix-inは合ってると思うけどな。 ModuleをclassにしたりClassをModuleにしたりするのはどうするんだっけか
なんだよこの流れ
外国人がこういうのやってると遊び心があってカッコいいとか思うけど 日本人がやってるとオタってやだねーとしか思えない漏れ
たぶん海外でも一般人からしたら、面白さが分からないと思うがな
題材がカレーならそう罪も無いだろう。 エロゲーキャラとかでやられるとアレだけど。
ツーテールとかネコ耳とかオオカミ尻尾をMixInするわけだな
>>863 さらっと言ってるが、カレーライスとライスカレーの違いを教えてくれ。
>>869 カレーにご飯をトッピングしたのがライスカレー。
ご飯にカレーをかけたのがカレーライス。
いつ出るかと待ちかまえていた。 やっとでたか。
ここはJRubyの質問も受け付けますか?
まずは質問を書け。受け付けるか受け付けないかは我々が吟味の上、判断する。
>>874 そこは「はい」でいいだろう。既にそういう質問なんだから。
>>873 ほかにJRubyのスレがないなら、ここでいいです。
ただし、回答が得られるかどうかはわかりません。
>>875 しょうがないよ。
>>874 は初心者に対して上から目線になりたいヤシなんだから。
JRuby触ったことないから、この機会にここの住民の話聞きたいな
焼き飯とチャーハンとピラフの違い
フォントと文字コードくらい違う?
焼き飯とチャーハンって一緒じゃないの?
885 :
デフォルトの名無しさん :2008/02/27(水) 17:49:43
本気と書いてマジ
>>883 フォントと文字コードって、
カレーとライスくらい違うよ。
887 :
デフォルトの名無しさん :2008/02/27(水) 18:00:22
ドロップとオハジキくらい違う
このスレは今までになく密度の薄いスレだな
あいつが待ち
Ruby AST作れるCCないって 絶対に糞杉じゃね?
>>890 なんで?
全角アルファベットつかってるほうが糞じゃね?
文法きたねーしなぁ
文法とかより、Intellisence使えないのが痛い。 早く、IronRuby公開してよ。
>>890 AST作れるCCって、具体的にどんなのがあるの?
そもそもCompiler Compilerすらない言語のほうが多いと思うんだが。
>>894 おまえどんだけ無知なの?w
ANTLR(Ruby言語に欠陥があるためRuby用のASTが吐けない)
sablecc
Python組み込み
PHP組み込み
raccじゃ駄目なん?
>>893 Intellisenceとかバカじゃね?
Rubyの開発はVimかEmacsでやんだよ。Visualなんたらとか絶対ありえん
Rubyを書くエディタをTeraPadからvimに最近転向したんだが、、、 vimで構文チェックとか色つけたりすると結構重たくなるね。 軽くて色を付けてくれれば、エディタなんてなんでもいいんだがなぁ・・・。
Rubyスクリプトの色付けに関してはPeggyがトップクラスじゃないかな
901 :
デフォルトの名無しさん :2008/02/28(木) 06:26:00
色付けは甘え
だから treetop…… PEG は認めん?
903 :
デフォルトの名無しさん :2008/02/28(木) 07:51:00
Windowsだとむかしから秀丸だわ
904 :
デフォルトの名無しさん :2008/02/28(木) 08:05:49
>>897 vim&Emacsって
疲れるからやだぁ
>>895 PythonとPHPに組み込みでCompilerCompilerが存在するというのは初耳なんだけど、検索してもででこんぞ。
ソース希望
>>895 あと、AST作れるのってそんなに重要なの?
それよりも文法定義がわかりやすくできるとか、デバッグしやすいことのほうが重要だけどなあ。
ASTを作ってくれるCCがRubyになくてもおれとしてはいっこうに困らない。
それよりもparser combinatorがあったほうがうれしい。
実はAndrew Stuart Tanenbaumを生成する機能のことなんじゃね?
astのミドルネーム初めて見たw
>>890 >Ruby
>AST作れるCCないって
>絶対に糞杉じゃね?
いまから
>>890 が、AST作れるCCがいかに重要かを力説してくれます。
みなさんwktkしてお待ちください。
911 :
デフォルトの名無しさん :2008/02/28(木) 09:44:09
お赤飯炊かなくっちゃ!
grammerと処理を分離できて良いじゃん。AST
そこで Rubinius ですよ。
標準でシフト+カーソルキーで範囲指定と、 CTRL-X、C、Vでカット、コピー、ペーストが できないようなエディタはWindows環境では使えない。疲れる。
>>914 確かに。vimはともかくemacs(meadow)にはどうしても慣れないし慣れられるな気もしない
Windows使わない人は良いんだろうけど
916 :
デフォルトの名無しさん :2008/02/28(木) 11:07:59
Emacsも秀丸もどっちも使うけど作業効率は大してからわん むしろ秀丸をLinuxに移植してくれ
>>916 > むしろ秀丸をLinuxに移植してくれ
秀まるおさんに言ってくれ
linux上のエミュレータでwindows動かせばええやん
>>912 >grammerと処理を分離できて良いじゃん。AST
分離するとなにが嬉しいの?まじでわからん。
それよりgrammerと処理とが別の言語を使わなければいけないほうが問題じゃね?
時代はparser combinator
>>912 >grammerと処理を分離できて良いじゃん。AST
sableccはvisitor pattern使うから分離できるけど、JavaCCやANTLRって分離できたっけ?
昔調べたときはまったくそんなことなかったけど。
無変換キー+JKLIでカーソル移動 無変換キー+ASDでカットコピーペースト をどのアプリでも使えるように割り当てたら便利すぎて鼻血でた。
>>921 それで慣れてしまうと、人のPCで何かするときに物凄くストレスがたまる罠
そしてPCを使えない人として認定される
924 :
デフォルトの名無しさん :2008/02/28(木) 16:22:17
そいで「いくじなし」と言われて置いてけぼりにされる
ちょw言い過ぎ
>>920 JavaCCもVisitorパターンが利用できるよ。
少ねぇ・・
929 :
デフォルトの名無しさん :2008/02/28(木) 18:24:26
あれ? C++がリストにない・・・
C言語なんじゃね
CなのかC++なのかC#なのかObjectiveCなのかDなのかはっきりして欲しいよね
>>926 うそ、そうなの?いつからそんな賢い機能が。
あと
>>895 の Python と PHP の組み込みCCとやらを教えてくれ。まじで知りたい。
CCレモンってどこが美味いの?
一番右のやつがうめぇ
935 :
926 :2008/02/28(木) 20:32:00
>>932 きっと*.pycを吐く機能のことを構文ツリー生成と勘違いしてると予測中。
>>936 でもそれだったら PHP は当てはまらない。
>おまえどんだけ無知なの?w
というくらいだから、
>>894 はなんかすごいこと知ってるっぽいけど。
あとgrammerと処理を分離できる利点ってだれか説明してくれたっけ?
ほんとに利点があるなら、raccやparser combinatorから乗り換えも考えないといけないなあ。
はやくyarvもベリファイアを実装してloadを解禁してほしい
1.9.0-1は明日の午後3時ですか
ASTと聞いても台湾のPCメーカーしか思い浮かばん
>>826 遅くなってしまったけど、ありがとう。
うまくいきました。
943 :
デフォルトの名無しさん :2008/02/29(金) 11:06:52
>>895 >おまえどんだけ無知なの?w
>
>ANTLR(Ruby言語に欠陥があるためRuby用のASTが吐けない)
>sablecc
>Python組み込み
>PHP組み込み
PythonにもPHPにも組み込みのコンパイラコンパイラなんかないよ。
あるわけがない。
>>895 はどんだけ無知なの?
AST言いたかっただけちゃうんか
> Ruby言語に欠陥があるためRuby用のASTが吐けない これ興味があるな。 その情報へのポインタか、Rubyの何がどう障害になるのか 具体的に書いてもらえるとうれしいけど。
>>945 どうせ>895の勘違い
grammerと処理を分離を分離できる利点もきっとない
>>942 直せと言うのは同感だが、それが2006年の記事だってことは理解してるよな?
Ruby完全に置いてきぼりになっちゃったな。やはり時代はMSか。 712 名無し~3.EXE[] 2008/03/01(土) 12:40:38 ID:Yp7Ku/YR PowerShellスゲー > $settings = [xml]"<settings><path></path></settings>" > $settings.settings.path="c:\windows" > $settings.settings.path c:\windows > $settings.Save("c:\data.xml") > type c:\data.xml <settings> <path>c:\windows</path> </settings> > $x = [xml]"<dummy/>" > $x.Load("c:\data.xml") > $x.settings.path c:\windows PowerShellPlusもリアルタイムで .settings .pathを補完してくれるよ。
まあ悲しいかな周りが使わないことにはねえ アイデアは好きなんだけど 上で出てるRushがWindowsに対応してくれればなあ
sh置いてきぼりになっちゃったな、ならまだ関連が分かるんだが……
1.9.0-1リリースおめ!
「Ruby?時代に乗るためにバッチスクリプトの後釜狙ってるんでしょ? でもWindowsPowerShellのある今、もう出る幕ないよね。 置いてきぼり食らったRubyカワイソス。やっぱり時代はM$だよねプギャー」 とでも言いたいのだろうとエスパー
956 :
デフォルトの名無しさん :2008/03/01(土) 16:24:57
RUby?日本人が発祥だって!?日本人マンセー!!!! ってならんのがいかにも日本人らしいよね、いい意味で。 もっと頑張ってほしい。
>>956 いや、Rubyの初期はそんな感じだったよ。
おれはRubyの初期のころも知ってるんだぜ
日本人が作ってるのならGaucheとかHSPとか他にもいろいろあるだろ
960 :
デフォルトの名無しさん :2008/03/01(土) 16:31:39
日本の大学だとカリフォルニア大バークレー校的な位置づけってどこになるんだろう
匹敵するようなところはなさそうだなぁ。 えーと、jaist?
SFC
MIT ... KMC UCB ... titech かなあ・・・
実績ではなく雰囲気で該当するところ探すしかねーな
東大 - スタンフォード SFC - UCB 日吉 - MIT 京大 - INRIA [JN]AIST - プリンストン研 東京農工 - テキサス農工 (?) KMC - TMRC (?)
* Oniguruma 5.9.1 * added UTF-16,CP949,EUC-KR,GB12345,UCS-{2,4}{BE,LE},GBK,CP936,CP949,GB2312,UTF-7,BIG5,EUC-TW,GB18030,KOI8,KOI8-R,KOI8-U,Windows-1251 support. * use locale encoding for scripts from -e and stdin unless explicitly specified. * DATA inherits script encoding. * __ENCODING__ for current script encoding. * encoding options Kernel#{putc,puts} invokes STDOUT.{putc,puts} respectively. * don't use locale dependent strcasecmp. * -Ks options means Windows-31J, not Shift_JIS. * string methods work better on UTF-16 strings. * empty string is compatible with any encoding string add * string methods run faster for UTF-8. * String#gsub(pat,hash) use US-ASCII (not ASCII-8BIT) for human readable text. * allow empty symbol. * rb_num_coerce_*() now require ID argument. * Math.cbrt added. * Math.{gamma,lgamma} added. * more precise BigDecimal_to_f. * "0x", "+" and "-" is not a valid integer. * Proc#curry added. * Time#strftime officially ignores locale. * Time.<=> no longer supports comparison with numeric. * Enumerable#zip behavior reverted to 1.8 one. string * ObjectSpace.each_obj returns an enumerator if no block given. * Prime#each returns an enumerator if no block given. * replace "illegal" to "invalid" in messages. * Hash#flatten no longer work recursively. * archdir is "1.9.0", not "1.9". * added --disable-rubyopt flag. * import RubyGems r1601. * Benchmark#realtime a bit faster. * check NUL in path operand for file operations. * "make help" shows major targets.
>>963 Titechは日本のMITを名乗ってるんだぜ
TIT(乳首)かよw というギャグも内部ではございます
titって英語で乳首の意味なのか。日本語ならマンコなのにな。
最近Kinki UniversityがKinky University(変態大学)だと思われるのを 回避するためにKindai Universityに名前を変えるかもっていう話があったな。 Kinki Kidsが改名するという話はない、と思う。
971 :
デフォルトの名無しさん :2008/03/01(土) 18:09:26
赤井がいるような大学だからな 構内にはヤニの吸殻散らばってるし
近代大学...
そんなことはどうでもいいんだよ。 ただ影舞で新規登録時のプレビュー機能さえあればそれでいい。
影舞は死んでるからこんなところで言ってても一生できないだろ フォークするか1.9にポーティングしてる人がいたからメールしてみれば。 まあ、retrospectiva使おうよ。
影舞復活してるよ
そうなの?sfも2005-01-27以降動きないように見えるけどどこで動いてんだ
2008-03-01 kagemai-0.8.7 リリース
バグ修正: いろいろ
機能修正:
PostgreSQL, SQL Server のデータ保存が複数のプロジェクトでも1つのデータベースを利用するように変更
管理者がメッセージを非表示にできる機能を追加
ゲストで投稿する時の画像認証をサポート
英語のリソースを追加 (Steve Brumbaugh氏に感謝)
mailif.rb で設定ファイルを外部から指定できるように修正 (BTS:284)
検索結果の CSV 出力時に直接ファイルとして保存できるオプションを追加 (BTS:302)
検索結果の CSV 出力に報告者、報告日、最終更新日を追加
FastCGI 環境での動作をサポート
http://www.daifukuya.com/kagemai/
>>967 > Titechは日本のMITを名乗ってるんだぜ
日本でMITと言えば武蔵野工だろ、というネタはさておき、
単科大学ではあるけど公立と私立だからなぁ。
すまん。学内でネタになってるだけで、公式にそういう風に言ってるかどうかはわからんわ。
そういや前世紀にチャットで話した相手が 自分の学校をKITだKITだとかさも当たり前のように言ってたから なんのことやねんと聞いたら九工大だった。 そういう略称は学内では当たり前になってるらしいな。
まだやるの
KITと言えば金沢工科大だと思ったのだが。
神奈川工科大が被るよね KAITとして回避してるけど
KITT
1.9.0-1が出たことだしrubyの話しようーぜ 影舞は確かに復活してるようけどgoogle groupsのメールがまだ4つか・・・ 影舞自身を影舞でトラッキングしないのかね?
rparsec の使い方おせーて 情報少なすぎて困ってる
うちの略称は UT とかしょぼすぎ
え〜YTなら知っていますが、UTは初めて聞きました。 超地球的存在?
ま・さ・か〜
Ultra-no-Titi
self.threads.fill
996 :
デフォルトの名無しさん :2008/03/04(火) 22:39:46
raise Matz
あ
なんとなく埋め
るびぃ
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。