1 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 21:07:47 ] オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。 まったりと行きましょう。 Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 36 pc12.2ch.net/test/read.cgi/tech/1246174168/ 過去スレ・関連スレは >>2-
82 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 02:35:28 ] と、書いてから検索してみたら普通に来てますね。 報告ありがとうございました。
83 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 03:41:30 ] 別に密着してるわけじゃない 極力最新を導入するのが Momonga mph で恨んで意趣返しをしているのではないはずだと思いたい
84 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 08:35:13 ] >>69 WinSCP使ってるならリモートのアカウントのshellを 内部でsudoとかsuするものにするのが定石だった気がする 応用すると踏み台サーバの特定アカウントにssh接続すると 別のサーバのrootでログインする仕掛けとか作れるようになる
85 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 08:39:52 ] まだレス表示してんの
86 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 08:43:28 ] >>83 mphはRubyが悪いわけじゃないもーん yumかaptに乗り換えなかったほうが悪いんだもーん
87 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 13:13:21 ] >>56 昔はもっと面倒だったの?
88 名前:デフォルトの名無しさん [2009/08/26(水) 15:56:18 ] >>63 >暗号についての知識がない人が暗号使うとかありえないので なんで?
89 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 16:09:08 ] >>63 >>88 「知識がない人が暗号使うとかありえない」は、 「暗号は利用が難しく、少し間違った使い方をするとすぐに脆弱になるので、 知識がない人は使うべきではない」という趣旨じゃないかな。 ただ、今の世の中そんな牧歌的な時代じゃないと思うけど。 「デフォルトがあり得ない」っていうのはちょっと認識が古い気がする。 初期配列とかは暗号方式によってはちょっと気を抜くと脆弱なものを選んでしまったりするので、 下手にいじるよりはデフォルトを使うべきなように思える。 暗号の世界は日々進歩しており、昨日は「知識がある」という扱いにできた人が、 今日は「知識がない」という扱いになったりするので、 そろそろ知識がない人でもそれなりに扱えた方がいいんじゃないかなぁ。
90 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:05:40 ] >>89 さんくす。 素人が下手に暗号をさわると脆弱になるというのはその通りだと思うので、 だからこそ素人でも使えるようなライブラリやインターフェースを 知識のある人に用意してほしい。 「知識がない人が暗号使うとかありえない」という姿勢こそありえない。
91 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:15:14 ] どっちかっていうと、 「暗号の知識のない人が(実装よりという意味で)低水準のライブラリを直接キックとかあり得ない」 ってのが正確な表現かな HTTPSを初めとしてエンドユーザとして使う側は 今でも(暗号化されてることすら大して意識せずに)使えてるわけで エンドユーザが使うものを作る側はある程度わかってないと 最終的にエンドユーザが不幸になる気がする 似たようなポリシーの違いでメルセンヌツイスタの作者とクヌースが揉めてた記憶があるなあ
92 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:28:17 ] 60じゃないけど質問。 >>61 > >PKCS5 v1.5の一部適合品程度でしかないから >どうしてもPKCS5 v1.5じゃないと困るケース以外は >v2.0を使えと。 これはつまり、現状のrubyではv1.5は用意されているけどv2.0を使う方法は提供されてないということ?
93 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:34:41 ] 自前でやれってことだな
94 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:36:46 ] >>92 60が出してきたblogの別記事に情報がある ttp://wp.serpere.info/archives/530 一言で言えば、使える。 ただしOpenSSL由来の制限アリとのこと
95 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:41:18 ] どこまで初心者想定すればいいのかというのは難しい問題 抽象化が完璧にできないからこそ低レイヤへのアクセス手段を残してあるわけで、 そこをして初心者に優しくないと言われてもそれはそれで結構困る 永遠の初心者を想定すべきなのだろうか
96 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:53:03 ] 初心者がAESのような暗号方式を特定しているAPIを触れるのはよくない。 なぜかというと、その方式が時代遅れになってもそれを使い続けられちゃうから。 >>91 も出してるけど、通信路の暗号化だったらhttpsを使ったほうが、 見落としがちななりすましの防止も図れるし、暗号方式が隠蔽されるので望ましい。
97 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:08:01 ] >>94 さんくす。でも公式にドキュメント化してないようなので、使うべきかどうかは判断に困るな。 >>95 >どこまで初心者想定すればいいのかというのは難しい問題 そうなんだけど、だからといって「知識がない人が暗号使うとかありえない」なんていうのはやめてほしい。
98 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:11:53 ] 知識は特別なのか? 選ばれた人間しか入ることを許されない図書館の奥に封印された秘儀なのか? 答えは否だ 学べ
99 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:47:00 ] まあ、漠然と暗号かがしたい、とかじゃなくて PKCS#5でやりたい、とかの一点指名で使おうとしてる人たちが ライブラリの想定利用者だろうから あの抽象度が限界な気もする
100 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 20:03:03 ] >>98 知識0の状態からあの抽象度のレベルを安全に扱えるようになるまで何年かかるんだろう。
101 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 20:34:33 ] >>98 共通鍵暗号を使いたいというだけのことに、PKCS5のバージョンがどうのこうのという知識を知らないといけないのか? んなわけないだろ。 公開鍵方式と共通鍵方式の違いは「勉強しろ」で片付けていいだろうけど、>>60 ででているようなことは たいがいの人は知らなくてもすむはずのこと。 使いやすくする工夫をほったらかしといて「学べ」とかアホじゃねーの。
102 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 20:44:38 ] >>101 一般論としてはまったくそのとおりなんだけど、 ***このライブラリに限っては***、「共通鍵暗号を使いたいというだけ」の 人が使うようなものじゃないから微妙な話になってるんだと思うよ。 簡単手軽に使える「暗号化ライブラリ」じゃなくて「OpenSSLのラッパ」だから。 だからこそソースコードにわざわざ >* WARNING: This method is only PKCS5 v1.5 compliant when using RC2, RC4-40, or DES >* with MD5 or SHA1. Using anything else (like AES) will generate the key/iv using an >* OpenSSL specific method. Use a PKCS5 v2 key generation method instead. とか書いている(ライブラリ使用者がここまで読むことを想定している)わけで。 「共通鍵暗号を使いたいというだけ」の人は、この「OpenSSLのラッパ」を使って実装された/されるであろう 「使いやすいライブラリ」を使った方がいいと思う。
103 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 21:11:37 ] 要はもう少し高レベルで、もう少しお仕着せなライブラリが必要だってことだよね 既存のでいいライブラリってある?
104 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 21:13:00 ] いや必要充分だと思うぞ いわゆる残り5パーセントとか2パーセントとかそのへんの話だぞこれ
105 名前:60 [2009/08/26(水) 21:16:26 ] 私は別にRubyの実装が悪いと責めているつもりはありません。 低レベルな方法も用意されているので、問題ではないと思います。 ただ、マニュアルの記載内容(以下)は直した方がいいのではと思います。 (以下、マニュアルから引用) encrypt(key, iv) 暗号化の準備をする。iv は initialization vector、 必要なら使用される。このAPIに引数を渡すのは推奨しない。パスワードから 鍵を生成する場合は、 pkcs5_keyivgenを使用すること。 ttp://www.ruby-lang.org/ja/man/html/OpenSSL_Cipher_Cipher.html この説明だけ見ると、初心者はpkcs5_keyivgenを利用すればいいと判断して、 詳しく調べることに行き着かないのでは?「pkcs5_keyivgenの方法も、現在 では推奨されていない。Ruby 1.9/1.8.7のOpenSSL::PKCS5.pbkdf2_hmac_sha1 を使用すること。また、OpenSSL の将来のバージョンでは、OpenSSL::PKCS5. pbkdf2_hmacでsha256を利用することを推奨する(○年○月現在)。」 などと記載した方がいいと思います。 セキュリティに関することなので、日付を入れたらどうですか? Rubyは少ない記述で楽しく書けるのがウリだと思うので、「知識をつけて 低レベルから書かないから悪い」という考え方は嫌ですね。 ただ、人手も足りなくて、他にもやることがあるでしょうから、この部分を 標準で対応しないのは、仕方ないと思います。
106 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 21:18:02 ] 「『共通鍵暗号を使いたいというだけ』の 人」って、なんのために使うの? ユースケースが知りたい
107 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 21:19:49 ] ブルース・シュナイアーの『暗号技術大全』だと 自分で実装とか考えるな。ましてオレオレ暗号は最悪 専門家でない限りは低水準の技術を裸で使うな 広く用いられているライブラリで、高水準のプロトコル(SSL等)を使え だったっけ。まあプロでもたまに失敗する世界で、 いわんや素人においてをやってのは分かる
108 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 21:21:49 ] >>105 もっともな話なので、るりまのRedmineにチケット起こすのがよいと思う。 redmine.ruby-lang.org/projects/show/rurema
109 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 21:43:32 ] opensslライブラリが ・直接使われるケースが少ないライブラリのためのライブラリ ・技術の分野的な経緯から低水準で独自実装を試みることが推奨されない なんていう超々例外的なライブラリだから一般論をそのまま当てはめるのが難しいんだよね >>105 ドキュメントも2006年頃が最後の更新くさいね。 今みたいにそれなりに広く使われることを想定してなかった時代だったんだろう。 改善する必要があるのはそのとおりだろうね。
110 名前:60,105 [2009/08/27(木) 00:38:48 ] opensslの件 私は、現在の実装ではどう記述したらよいか知りたいので(勉強中)、pbkdf2-ruby ttp://github.com/tkyk/pbkdf2-ruby/tree/master を使ってみることにしました。 ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]の環境で、ためしに 作ったスクリプトで、-wオプションをつけて実行したところ、次の警告がでました。 warning: argumtents for OpenSSL::Cipher::Cipher#encrypt and OpenSSL:: Cipher::Cipher#decrypt were deprecated; use OpenSSL::Cipher::Cipher# pkcs5_keyivgen to derive key and IV Cipher#encryptではなく、pkcs5_keyivgenを使えという警告ですが、 pkcs5_keyivgen自体が推奨される方法ではないため、この警告メッセージは修正 した方がいいような。 やっぱりRubyの実装も良くないかも
111 名前:60,105,110 [2009/08/27(木) 00:40:11 ] ちなみにコードはこんな感じです。間違ってたらすいません。 require 'openssl' require 'pbkdf2' obj = PBKDF2.new do |p| p.password = "s33krit" p.salt = "nacl" p.iterations = 5000 p.hash_function = 'SHA512' end key = obj.bin_string[0,32] iv = obj.bin_string[32,32] a123 = "0123456789" enc = OpenSSL::Cipher::Cipher.new('aes-256-cbc') enc.encrypt(key, iv) a = enc.update(a123) b = enc.final s = a + b dec = OpenSSL::Cipher::Cipher.new('aes-256-cbc') dec.decrypt(key, iv) a = dec.update(s) b = dec.final p a + b #=> "0123456789"
112 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:44:02 ] OpenSSLやそのthin wrapperを知識のない人が直接触るというのがそもそも間違ってる。 知識のある人ための道具箱であって、知識のない人はOpenSSLを使った バカチョンなライブラリが用意されるのを待て。 とドキュメントの冒頭に書いておけば……。
113 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 00:57:00 ] > OpenSSLを使ったバカチョンなライブラリが用意されるのを待て。 require 'open-uri' URI('https://example.org/').read
114 名前:79 mailto:sage [2009/08/27(木) 22:10:41 ] >>81 サンクス
115 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 22:49:45 ] rubyのバージョン変えてみたら
116 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:02:00 ] 大量に外部データや変数や履歴使って小1時間活用していた irb1.9 が落ちた 氏ね
117 名前:デフォルトの名無しさん mailto:sage [2009/08/27(木) 23:21:13 ] 再現性なく落っこちることがあるよね 仕方ないとはいえ勘弁して欲しい
118 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 00:15:18 ] 参照とか代入とかのレベルでも、1.9と1.8では、ずいぶん差がありますよ。 CPUのクロックが上がらない今時では、画期的。 ただいま、Rの分布関数を移植中でありんす。(正規分布とかポアソンとか) 出来上がって公開できるかどうかは、あちらのライセンスの都合もあるので、わからねっす。 わっしは、ぶいぶい使うっす。
119 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 00:32:56 ] tdiaryも1.9で長時間使ってるとなぜか負荷が高くなったり 落ちるみたいだね。まあこの辺は枯れてるか枯れてないかの問題だから 仕方ないけど
120 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 01:34:04 ] Mac だけど 1.9.1-p243 をソースからビルドしてたら、make check のときに ターミナルが応答しなくなった。make test は問題なかった。何が原因なのか は分からないが、2回ためして2回とも発生したからちょっと怖い。 1.9.1 はヤメテ 1.8.7 を使い続けようか。
121 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 02:02:36 ] もうすこしだ。そこで原因を特定したら勇者になれる。 おそらくスレッドだな
122 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 06:14:36 ] p243ってRails動かなかったから一個前使ってるわ
123 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 13:13:31 ] ROMA本格稼働開始。 Rubyでどれだけパフォーマンスでるのか楽しみ。
124 名前:デフォルトの名無しさん mailto:sage [2009/08/28(金) 14:39:15 ] >>121 test/drb/test_drb.rbとtest/drb/test_drbssl.rbで止まるっぽい
125 名前:120 mailto:sage [2009/08/28(金) 21:48:45 ] >>124 は私ではありません。(念のため) コンパイラを変えてビルドしてみたら、ちょっと不思議だった。いつもは Xcode に付いている Apple 謹製の gcc-4.0.1 を使うのだけど(>>120 のときも)、これを Fink で入れた gcc-4.3.1 に変えると parse.c のコンパイルで止まる。10分近く放置しても話が先に進んでないので何か あったのだろうと推測する。でも何があったかは知らない。 Rails は使わないし、そもそもローカルでシェルスクリプトの替わり程度の使い方しかしていな いので、イマイチ問題の解決に関心を持てない。
126 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:23:45 ] parse.cのコンパイルってmake checkじゃないじゃん
127 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:42:17 ] >>126 うん。コンパイラを変えてみたら make で止まった(ように見える)というお話。別のコンパイラなら make も make test も通るけど、make check で転けた。make check なんてしなくても良いだろうか ら、そんなことキニシナイというのもアリだとは思う。
128 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 01:58:30 ] 日本語でおk あと、それはgcc-.4.3.2のバグということで決着がついてる。10分といわず 30分1時間放置してればparse.cのコンパイルは終わる。あるいは4.3.3を使えば直ってる
129 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 07:58:23 ] 久しぶりにローカルで使ってるrefeとリファレンスマニュアル更新したんだけど /home/hoge/doc/ruby-refm-1.9.1-dynamic-20090829/bitclust/lib/bitclust/database.rb:134: in `initialize': illegal access mode r:EUC-JP (ArgumentError) というエラー吐いて使えなくなってた。 該当行 >File.open(realpath(rel), 'r:EUC-JP') {|f| を File.open(realpath(rel), 'r') {|f| にしてやればまあ動くようになるんだけど、とりあえず自分だけが使う分にはこれでいいのかな? Rubyのバージョンはruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] # EUC-JPという文字コード指定みたいなのは1.9からの機能?
130 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 10:20:25 ] >>129 それで正解。 というかrefeって1.8用と1.9用で分かれてないのか……。
131 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 10:40:20 ] せめて 1.8.7 では r と r:* は同一視して欲しかったんだが、まあ仕方ないわな
132 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 13:27:57 ] >>131 そうなってないっけ?
133 名前:名無しさん@そうだ選挙に行こう [2009/08/30(日) 14:30:15 ] カルト指向言語
134 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 16:06:13 ] age荒らしは無視で
135 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 17:59:34 ] Rubyってプラットフォーム別のバイナリのダウンロード数の統計とかとってる? Firefoxみたいにダウンロード数=ユーザー数みたいに錯覚させるキャンペーンとかやればいいのに
136 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:09:19 ] >>135 思いつきは結構だけどれが誰によって配布されてるかもう少し下調べしたらどうだ?
137 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 18:54:12 ] 今のところそこまでユーザ数をアピールするインセンティブがないと思う。 やるとしたら、1.9のダウンロード数と1.8を比べて1.9のアピールくらいかね。 まぁ、普通の人はActiveScriptRubyとかそれぞれのOSのパッケージマネージャ使うんだよな
138 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 21:56:42 ] えっと、ここでもいいかな。 正式には、窓口あるんでしょうがね。 BigDecimal/math.rbの def exp(x, prec) xに負数が来ると、うまくないです。 n += x.to_i if x < 0 の1行を適当なところに挿入すると良いです。 xが負のとき、ループの脱出の条件のところは、 n2 = n * 0.9 として、n2に置き換えても精度が保てます。 xが-1000より小さいと、実行が分単位になるので、確認不足かもね。 なので、0.9の部分は話半分ってことで。 1.9.1の243でも直ってなかった。
139 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 22:02:31 ] どうぞ。 redmine.ruby-lang.org/projects/show/ruby
140 名前:138 mailto:sage [2009/08/30(日) 22:07:18 ] あ、間違い。xは負数だから n -= x.to_i if x < 0 もしくは n += x.to_i.abs if x < 0 か、 確認したら、うちのは上になってた。 環境によると、 x.to_i は x.to_i(10) とかしないとエラーになるかもね。
141 名前:138 mailto:sage [2009/08/30(日) 22:41:12 ] >>139 あ、どうも。これは窓口の紹介なのですかね。 BigDecimalのpower2がずっと工事中のようで、 これは、 x ** y の、yの部分がfloatの場合でも可能となるのかな、 と、ずっと待っておりました。 xをlogして掛け算してexpすりゃいいじゃん、 と気付いたのは、こないだなんですよ。 放置が永いので、他に何かあるのでしょうか。 とりあえず、BigDecimal/math.rb を、ちょっと修正してCで書いて貰ったらすごくしあわせ。
142 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 23:09:14 ] >>138 >>139 のURLで、アカウント作ってチケットを新規に投げる。
143 名前:デフォルトの名無しさん [2009/08/31(月) 00:57:12 ] gem install sqlite3-ruby 実行時に、以下のエラーが出ました。 ERROR: Error installing sqlite3-ruby: sqlite3-ruby requires Ruby version > 1.8.5 OS は CentOS 5.3 x86_64 です。 yum で ruby や sqlite 等を入れています。 gem search -r sqlite3-ruby の結果は sqlite3-ruby (1.2.5) しか出てきません。 これは強引に ruby のバージョンを上げるしかないのでしょうか。
144 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 01:25:49 ] >>141 俺らが半端に伝言ゲームするより>>139 で 問題の所在と対処をわかっているお前さんが ダイレクトにひっぱたくのが良いと思われる。
145 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 05:13:13 ] システムの使い方わかってる人間が的確な方法で指摘したほうがいいと思うが
146 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 06:05:28 ] ○○ですかね。 ○○しあわせ。 ぶつくさ言わずに行動起こせ。 〜かね。 〜しあわせ。 とかいうやつは、たいてい口だけのやつが多い。
147 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 06:14:03 ] で、その下にいるのが、お前のような「口だけの奴評論家」。
148 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 06:18:17 ] まあオプソなんてそんなもの。 馬鹿が無料でソースまで公開してるソフトを使い回して、いかに自分の仕事を効率よく終わらせるかしか価値無いし。 そして自分のソースは公開しないのが手間がかからなくていい。
149 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 06:48:59 ] と、いうのがいわゆる中二病でございます
150 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 07:49:30 ] 要するにRubyはうんこ言語ってことで。
151 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 07:50:01 ] 他人のことを口だけと言って何になるのかねえ
152 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 07:55:25 ] 何になるのかねえと言って何になるのかねえ
153 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 14:12:54 ] 早く宿題でもやってろ
154 名前:デフォルトの名無しさん mailto:sage [2009/08/31(月) 15:32:40 ] >>138 >>144 のいう通り、もっと具体的にredmineへ。 お前さんの話だけじゃ何をどう再現すればいいのかわからん。 $ ruby-1.9.1 -v -rbigdecimal -rbigdecimal/math -e 'include BigMath; p exp(BigDecimal.new("-1"), 3)' ruby 1.9.1p281 (2009-08-09 revision 24476) [i386-darwin9.6.0] #<BigDecimal:1491a4,'0.3678794411 7144232158 0284427234 79524E0',36(72)> $ ruby -v -rbigdecimal -rbigdecimal/math -e 'include BigMath; p exp(BigDecimal.new("-1"), 3)' ruby 1.9.2dev (2009-08-31 trunk 24720) [universal.x86_64-darwin9.0] #<BigDecimal:1002ac0a0,'0.3678794411 7144232158 0284427234 79524E0',36(72)>
155 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 00:24:29 ] -20以下くらいから誤差が大きくなって、正しく計算できてないようです require 'bigdecimal' require 'bigdecimal/math' module BigMath; extend BigMath end n = -5 puts BigMath.exp(BigDecimal(n.to_s),10).to_s, BigDecimal(Math.exp(n).to_s).to_s # => 0.673794699908546709664220227128330426308743E-2 # => 0.673794699908547E-2 n = -40 puts BigMath.exp(BigDecimal(n.to_s),10).to_s, BigDecimal(Math.exp(n).to_s).to_s # => 0.148254074963145840156087212163166213816119E-7 # => 0.424835425529159E-17
156 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 05:06:55 ] >>138 BigDecimalのメンテナは多分ここ見てないんで、直接連絡を取るか、 他の人でもコミットできるくらい丁寧な説明を付けた上でパッチをRedmineに投げないとダメだよ。 >>155 Math.expはFloat
157 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:01:49 ] なんでここに書けば直ると思えるのか、その思考を追えるものなら 追ってみたいものだわ。
158 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:07:14 ] 私は何度かここにバグを書き込んだが、ちゃんと見てくれてる人が居て、修正してくれたよ
159 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:12:41 ] 7月のRuby会議で yugi さんも言っていたよ。 ・コミッタ、メンテナは 2ch なんてみていない ・だが、ごくたまに、コミッタ、メンテナにとっても有益な情報が 2ch に書き込まれる ・だから 2ch の情報を ML にフォワードしてくれ(してくれる人が必要だ)
160 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:20:12 ] >>158 あくまで例外だろう もちろん、実は居るかもしれないが、 居ることを期待するべきではないと yuguiさんだっけ?マメだなあ……
161 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:21:16 ] ま、どこに情報書けだのなんだの延々頑張る暇があったらそれこそ転載しろって話だなw
162 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:24:52 ] >>158 「見てくれない」人のほうが多いぞ 見てても追随めんどくさそうなら一旦棚上げだ 一連の>>138 を見ててもわかるが、試したくても傍目には必要な情報がないことのほうが多いから Redmineは腐ってもバグトラッキングシステムなのでそのへんは頼れる とっても暇か緊急性がありそうなら、自分の手元で再現しようと頑張るかもしれんけど
163 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:47:18 ] そのまま使える掲示板でのバグ報告ってとっても稀だよね 自分の関わったソフト名でぐぐって見てみても驚くほど要領を得てない 誰かが労力割いてまとめてくれたから伝わってるんだよん
164 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 10:54:56 ] そんなにRedmineで報告しろというなら、サンプルを書いてあげればいいんじゃないかな。 いまのままじゃ、138がバグレポート書いても意味が通じなくて困るだけだろうに。
165 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:07:27 ] >>163 バグってるコード書けば、それだけで伝わってるよ
166 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:09:24 ] gdgd逝ってないでさっさと pc12.2ch.net/test/read.cgi/tech/1251029267/138 張ってこい。スレ荒らすな。
167 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:20:56 ] まあ見てる見てないなら俺含め見てるけど、 優先度低くて手を着けてないわ。 MLかRedmineに書くとある意味強制的に 優先度が上がるとも言えるw とりあえず ・発生した環境 ・再現手順 ・手順をやったらどうなったか ・本当はどうなって欲しいか どうなって欲しいかが論理的に自明でないような場合は ・何故そうなって欲しいのか あとはおまけで ・原因の推測(心当たり) これはもしあれば、というレベル これぐらいを箇条書きでいいんじゃない? 管理的には直ったかどうか確認して欲しいから 言い出した人の連絡先(メールとか)も欲しいかな
168 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 11:25:24 ] >>165 SEGVで落ちるとかならそれでもいいだろうけどな
169 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 13:38:00 ] Ruby on Rails 今日初めてやってみた なんかすげー簡単だなこれ
170 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 13:40:00 ] 簡単なことはね
171 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 13:47:04 ] ちょっと手を入れようとするとね・・・
172 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 13:59:35 ] パフォーマンスを出そうとするとね…
173 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 14:01:46 ] 脱線するんだよな。
174 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 14:16:22 ] 今できることが 0.x 時代はめんどくさかったということを考えると Rails 6.0 くらいになったら普通のことはあらかたできるようになってると思う
175 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 14:38:48 ] で、結局cgiモジュール+手書きが一番楽と。 なわきゃない。
176 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 15:45:58 ] 難しいことって例えばどんなことだよ 具体的に教えてくれよ
177 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:08:33 ] 複数のリソースを同時に扱うとか
178 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:22:30 ] なんだかもどかしいな
179 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:33:01 ] >>155 問題点はわかったが、それは単に精度が不十分なだけだろ $ ./ruby -rbigdecimal/math -rbigdecimal -e'include BigMath; puts exp(BigDecimal("-40", 30), 30)' 0.4248354255324683608648171943427303514052094227261901826473689E-17 しかし、初めてBigMathをみてみたが、なんでmodule_functionになってないんだこれは。
180 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:30:14 ] >>167 rubに関しては、環境とコード書けば十分じゃないの?
181 名前:138 mailto:sage [2009/09/01(火) 21:36:33 ] 笑っちゃうのですが、本日他の文献(案件)を漁っていたら、 exp(x) = 1/exp(-x) なるものを見つけました。 修正は、 if x < 0 return one.div(exp(-x, prec), prec) end でokです。 最初から(不確かな)有効桁数を設定するより、こちらの方が、速くて安心。 oneはBigDecimalの1です。 コードを書いた方には、失礼しました。 情報弱者な年寄りには、何かの手続きの必要なものは面倒くさいのですよ。 >>179 xに-42送ると、戻り値がマイナスになります。 電卓なくても確認できます。若干の数学の知識があれば。
182 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 21:37:59 ] ここはお前のスレじゃない