>>前スレの997,999 言ってなかったっけ。俺Railsでシステム書いてるって。 ただのアセンブラ厨だと思ったら大間違いだぞ。
そういえばcellのスレで見た気がする だんごやさんrubyからcudaを使えるようにしてよ
有名人なのか?
悪い意味でね。
2chのスレでコテやる人間はもれなくアレ
Ruby 1.9.1-p243 のWindowsバイナリは 公式からはリリースされないのですか? 公式とそのミラーサーバからは探しても p129 までしか見つからないのですが
少なくとも「まだ」 出ると決まったものでもないが
11 :
デフォルトの名無しさん :2009/08/24(月) 10:21:29
1.9.1 p129のWindowsバイナリが公式のどこにあるんだ?
前スレの話だと公式ビルドは「存在しないことになっている」んじゃなかったのかねえ 現実usa氏頼りなのは間違いないけどさ
>>12 「公式ビルド」とは言ってないんじゃないか。
公式サイトから配布されている(第三者がビルドした)mswin32バイナリ
って意味かと。
まあ事実上usa氏のバイナリが公式みたいな感じになってるしね。
ftp.ruby-lang.org/pub/ruby にあるんだから、紛れもなく公式ビルドだよ ディレクトリがそうなってる 公式ビルドでないのなら、unofficial 等とディレクトリ名を切った中に入れ「なければならない」
公式サイト、1.9.2 preview1のバイナリはあるのに 1.9.1-p243のバイナリがないというのもおかしな話だな リリースされた日は同じだったのに
>>15 公式勘違いの原因の一つになってることは間違いないと思う
以前ささだ氏あたりがインタビューで言ってたとおり 自前のコンパイルファームが必要なんだろうな usa氏の善意と厚意に頼ってる以上、 リリースと同時にバイナリビルド出せなんて話は出来ないし
だが待って欲しい 「全世界のユーザーがうさたんの好意頼りだよねー」とか言いまくれば 問題は案外コストなしに解決するのではないだろうか
今なんかさらっと酷いレスが
>>19 総体的に必要なものってなーに
やっぱ専任のフルタイム正社員?
>>19 でも1.9.2-preview1はたしかリリースとほぼ同時に
公式サイトのディレクトリにあったと思う
1.9.1-p243だけリリースしなかった理由は何だろう
バイナリなんか配らなくてもいいよ別に 公式はソースで配るもの、バイナリは各ディストリビュータにまかせればよい
しかしWindows版は自分でビルドするにはかなり厳しい条件だぞ
どんな環境でもコンパイルするだけ☆ という状態になってねーという話だろ
>>24 それでも昔に比べればだいぶ楽になったけどな…
つうかWinだと拡張ライブラリがめんどくせえ
だんごはこのスレでもコテつける気なの?
誰でも名前欄に入れられる文字を入れてるだけだからコテだという意識はない
>>24 「Windowsユーザーはしね」
これが公式見解でおk
非推奨なもの、使ってほしくないものは使いにくくしておくという Ruby の設計思想がちゃんと反映されていていいじゃないかw
force_encoding と Windows 用ソースは理念が同じだ
JRubyやIronRubyで良いじゃんと言えるレベルにはなりつつある
>>30 そんなふうにうそぶいてられたのはActiveScriptRubyが出る前までじゃね
つまり約10年前まで。
Windowsユーザーは役にたたないくせに文句ばっかり。
と、いうことにすると都合がよいのですね? (voidAA略)
Unix方面の人間としても間口を広げる流れに逆行するような
「無能な味方」は要らないッス。
そもそも、Unix方面の功績を笠に着るわりには何か貢献したのかどうかも
怪しい
>>36 にそんなことをいわれても微妙すぎるというか、
_whyレベルの人間ならともかく、明日
>>36 がいなくなってもRuby界隈は普通に回り続けるのでは
まぁ、RubyInstallerの話は非常に歓迎しています、素晴らしい
でもユニックスよりもウィンドウズのほうが便利なんだよねえ。 ちなみに教祖が使ってるデビアンはリナックスであってユニックスじゃないよ。AT&T由来のソースも含んでないし。
>>39 >AT&Tのコード
正確には一瞬SGIのうっかりさん経由で混じったことはある
(そしてそれが原因でSCOに絡まれたことがある)
matzはUbuntu使わんのかねえ?
>>39 未だにLinuxをUNIX側からつまはじきにしたい奴がいるんだな…
まあSUSに準拠してない以上はUNIX-likeとよぶほかあるまい BSDもそうだけど。 OSXやSolarisはちゃんとUNIXなんだよな
SolarisとFreeBSDとLinuxを一まとめで「PC-UNIX」って呼んだら怒る人ってやっぱいるのかねぇ?
RubyとLispでウェブアプリケーションを実運用
ttp://slashdot.jp/developers/09/08/23/1334251.shtml > 本家/.の記事より。飛行機は天候や空港の都合ですぐ遅れる乗り物だが、
> そんなときはFlightCasterを試してみると良い。現時点では米国内便のみ
> 対応だが、管制情報や天気予報、最近10年間の飛行記録を取り混ぜて、
> 統計分析によってリアルタイムに飛行機の遅れを予想する新しいサービスだ。
> しかし/.的に関心があるのは、どちらかというと実装の中身だろう。
> このサイトはフロントエンドにおなじみRuby on Rails、大規模分散計算
> フレームワークApache Hadoopを使い、Ruby版PaaSのHerokuにホスティング
> されている。しかしバックエンドの実装に用いられたのはRubyではなく、
> Javaで書かれたLisp方言の一つClojure。
> FlightCaster開発陣の一人のインタビューでは興味深い内幕が披露されている。
> O'Reillyからは新たなLisp本の出版も予告されているが、とうとう「カッコの時代」が来たのだろうか…。
>>27 楽になったか?
今さらVC6用意するとか無茶にも程があるだろ
最新のOSじゃインストールすら出来ないし
そのビルド環境用のPC用意するだけでも凄い手間だわ
事実上個人でビルドしてるやつなんて居ないに等しいでしょ
>>34 MinGWでビルドしたバイナリは、mswin32と比べて
実行速度とかどうなの?
別に根拠は無いけど、MS製のコンパイラの方が
効率の良いバイナリ吐きそうな気がするけど
feedbackもまともによこさず、手元だけで直して得意がっちゃう人って恥ずかしいなぁ
おこぼれを貰えないことを逆恨みする乞食が 「こいつは得意がっている」みたいなキャラ設定考えて 少しでも溜飲下げようと必死に人格攻撃するほうが恥ずかしいかも
マクは厳密にはunixじゃ無いけどな。
>>45 27 だけど俺が言ってるのは mingw のことだ
1.6 初期のころは mingw でもいろいろ面倒だった
UNIX のように振る舞うものはすべて UNIX である でいいじゃんもう
みにくい雛鳥の正体はペンギンってオチか
今ってMinGW/MSYSで簡単にmingw版ビルド出来るんだな msysgit絡みでMinGW/MSYS自体にGoogleのテコ入れが入ったのが デカかったのかな
UNIXとUnix (UNIX-like)の区別くらいはしてもいいと思う
UNIX®
59 :
デフォルトの名無しさん :2009/08/25(火) 21:13:45
60 :
デフォルトの名無しさん :2009/08/25(火) 21:17:16
Ruby初心者スレにも書き込みましたが、誰か分かれば教えてください。
Rubyでopensslを利用して共通鍵暗号を使う場合、以下のような
コードを書きますが、pkcs5_keyivgenを使うのはセキュリティ上
良くないのですか?
require 'openssl'
a123 = "0123456789"
pass = "hogehoge"
enc = OpenSSL::Cipher::DES.new
enc.encrypt
enc.pkcs5_keyivgen(pass) # <= この記述がよろしくない?
a = enc.update(a123)
b = enc.final
s = a + b
こんなページ↓を見つけたので、気になりました。
ttp://wp.serpere.info/archives/422 Rubyのソースコード(ossl_cipher.c)には、以下の記載がありますが、
詳しい意味が分かりません。
* 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.
ソースコードの注釈の意味と、pkcs5_keyivgenを使わずに適切に
記述する方法を教えてください。
そもそも、今時DESって暗号化しているうちに入らないぞ、AESにしとけ。 しかし、暗号化絡みのAPIはもうちょっと親切にラッピングしてあげた方がいいと思うんだが。
「デフォルト」がありえない分野なので、手作業できめ細やかに設定できるようになっています 暗号についての知識がない人が暗号使うとかありえないのでこれで正しい動作です
普通にデフォルトでsshでrootログインまでできてしまう Linxuディストリに対する嫌みですねわかります
root許可してくれないとWinSCPのエディタで/etc配下とか弄りたい時に困るからな
Linuxってデフォルトのまんまだとsuできないとか制限あったっけ? FreeBSDだとwheelグループに追加してやんないとダメだけど。
Ubuntuはsuできない sudo su ならできるけど
ubuntuがそう。 しかしroot追加すればrootログインできるようになる。 ちなみに言うとMacOSもデフォがroot禁止だったような。
emacsでsudoになればいいじゃん
普通のおじさんおばさんが使うなら、ubuntu流で良いでしょ。 rootになっているのを忘れて、危ないことを平気でするよりは。 emacsはどうも、なじめない。 初めてのエディターがemacsでした、みたいな人は良いのでしょうね。 おいらは、EDLINだったので、その後win系のエディターに流れてしまって、今はgedit。 これが、機能が少ないので... 話をRubyに戻すと、皆様のおかげで、ubuntuのRuby1.9が ruby 1.9.0 (2008-06-20 revision 17482) [i486-linux] のまんま放置されてる理由が、なんとなく理解できました。
>>71 多くの人がemacsに馴染めないのは、デフォルトのカーソル移動の気持ち悪さ
なにが悲しくて上下左右に、両手をフル稼働させなきゃいかんのだ
その点vi(m)はまことに素直でよろしい
>>72 Debianって、唯一のRuby公式サポートOSじゃなかったの?
>>73 Ruby的には、ソース取ってきてconfigure && make testできるところまで。パッケージとしてどう料理するかはDebianの仕事。
75 :
71 :2009/08/26(水) 00:55:43
>>72 "ハーイ おいらとダイゴさんは"まで読んだ。
ついでなので、Rubyに密着している鳥を教えて下さいませ。
なんでいきなり喧嘩腰よ
Momonga
>>73 >>74 にある通りで、Ruby本体としてはパッケージングまではタッチしてませんね。
一般の人が使いやすいようにパッケージングするのは、
Debianだったらメンテナのやまだあきらさんのお仕事。
ちなみに、Windowsだとうささん・・・じゃなくて、
ActiveScriptRubyのartonさんとか、RubyInstallerの人とか。
>>75 逆に考えて、UbuntuにRuby 1.9.xのパッケージが入るまで1.9は使わない、
というのが正解だと思いますね。
79 :
71 :2009/08/26(水) 01:13:32
>>77 は
>>75 に対してのレスと思ってよろしいのでしょうか?
どちらも、日本に関係してますね。
差し支え無ければ、MomangaでのRuby1.9のバージョンを教えて下さいませ。
なんつーか、切ない片思いを連想した 違うのかもしれないけど、安定した拠点は必要だよねきっと
と、書いてから検索してみたら普通に来てますね。 報告ありがとうございました。
別に密着してるわけじゃない 極力最新を導入するのが Momonga mph で恨んで意趣返しをしているのではないはずだと思いたい
>>69 WinSCP使ってるならリモートのアカウントのshellを
内部でsudoとかsuするものにするのが定石だった気がする
応用すると踏み台サーバの特定アカウントにssh接続すると
別のサーバのrootでログインする仕掛けとか作れるようになる
まだレス表示してんの
>>83 mphはRubyが悪いわけじゃないもーん
yumかaptに乗り換えなかったほうが悪いんだもーん
88 :
デフォルトの名無しさん :2009/08/26(水) 15:56:18
>>63 >暗号についての知識がない人が暗号使うとかありえないので
なんで?
>>63 >>88 「知識がない人が暗号使うとかありえない」は、
「暗号は利用が難しく、少し間違った使い方をするとすぐに脆弱になるので、
知識がない人は使うべきではない」という趣旨じゃないかな。
ただ、今の世の中そんな牧歌的な時代じゃないと思うけど。
「デフォルトがあり得ない」っていうのはちょっと認識が古い気がする。
初期配列とかは暗号方式によってはちょっと気を抜くと脆弱なものを選んでしまったりするので、
下手にいじるよりはデフォルトを使うべきなように思える。
暗号の世界は日々進歩しており、昨日は「知識がある」という扱いにできた人が、
今日は「知識がない」という扱いになったりするので、
そろそろ知識がない人でもそれなりに扱えた方がいいんじゃないかなぁ。
>>89 さんくす。
素人が下手に暗号をさわると脆弱になるというのはその通りだと思うので、
だからこそ素人でも使えるようなライブラリやインターフェースを
知識のある人に用意してほしい。
「知識がない人が暗号使うとかありえない」という姿勢こそありえない。
どっちかっていうと、 「暗号の知識のない人が(実装よりという意味で)低水準のライブラリを直接キックとかあり得ない」 ってのが正確な表現かな HTTPSを初めとしてエンドユーザとして使う側は 今でも(暗号化されてることすら大して意識せずに)使えてるわけで エンドユーザが使うものを作る側はある程度わかってないと 最終的にエンドユーザが不幸になる気がする 似たようなポリシーの違いでメルセンヌツイスタの作者とクヌースが揉めてた記憶があるなあ
60じゃないけど質問。
>>61 >
>PKCS5 v1.5の一部適合品程度でしかないから
>どうしてもPKCS5 v1.5じゃないと困るケース以外は
>v2.0を使えと。
これはつまり、現状のrubyではv1.5は用意されているけどv2.0を使う方法は提供されてないということ?
自前でやれってことだな
どこまで初心者想定すればいいのかというのは難しい問題 抽象化が完璧にできないからこそ低レイヤへのアクセス手段を残してあるわけで、 そこをして初心者に優しくないと言われてもそれはそれで結構困る 永遠の初心者を想定すべきなのだろうか
初心者がAESのような暗号方式を特定しているAPIを触れるのはよくない。
なぜかというと、その方式が時代遅れになってもそれを使い続けられちゃうから。
>>91 も出してるけど、通信路の暗号化だったらhttpsを使ったほうが、
見落としがちななりすましの防止も図れるし、暗号方式が隠蔽されるので望ましい。
>>94 さんくす。でも公式にドキュメント化してないようなので、使うべきかどうかは判断に困るな。
>>95 >どこまで初心者想定すればいいのかというのは難しい問題
そうなんだけど、だからといって「知識がない人が暗号使うとかありえない」なんていうのはやめてほしい。
知識は特別なのか? 選ばれた人間しか入ることを許されない図書館の奥に封印された秘儀なのか? 答えは否だ 学べ
まあ、漠然と暗号かがしたい、とかじゃなくて PKCS#5でやりたい、とかの一点指名で使おうとしてる人たちが ライブラリの想定利用者だろうから あの抽象度が限界な気もする
>>98 知識0の状態からあの抽象度のレベルを安全に扱えるようになるまで何年かかるんだろう。
>>98 共通鍵暗号を使いたいというだけのことに、PKCS5のバージョンがどうのこうのという知識を知らないといけないのか?
んなわけないだろ。
公開鍵方式と共通鍵方式の違いは「勉強しろ」で片付けていいだろうけど、
>>60 ででているようなことは
たいがいの人は知らなくてもすむはずのこと。
使いやすくする工夫をほったらかしといて「学べ」とかアホじゃねーの。
>>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のラッパ」を使って実装された/されるであろう
「使いやすいライブラリ」を使った方がいいと思う。
要はもう少し高レベルで、もう少しお仕着せなライブラリが必要だってことだよね 既存のでいいライブラリってある?
いや必要充分だと思うぞ いわゆる残り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は少ない記述で楽しく書けるのがウリだと思うので、「知識をつけて
低レベルから書かないから悪い」という考え方は嫌ですね。
ただ、人手も足りなくて、他にもやることがあるでしょうから、この部分を
標準で対応しないのは、仕方ないと思います。
「『共通鍵暗号を使いたいというだけ』の 人」って、なんのために使うの? ユースケースが知りたい
ブルース・シュナイアーの『暗号技術大全』だと 自分で実装とか考えるな。ましてオレオレ暗号は最悪 専門家でない限りは低水準の技術を裸で使うな 広く用いられているライブラリで、高水準のプロトコル(SSL等)を使え だったっけ。まあプロでもたまに失敗する世界で、 いわんや素人においてをやってのは分かる
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"
OpenSSLやそのthin wrapperを知識のない人が直接触るというのがそもそも間違ってる。 知識のある人ための道具箱であって、知識のない人はOpenSSLを使った バカチョンなライブラリが用意されるのを待て。 とドキュメントの冒頭に書いておけば……。
114 :
79 :2009/08/27(木) 22:10:41
rubyのバージョン変えてみたら
大量に外部データや変数や履歴使って小1時間活用していた irb1.9 が落ちた 氏ね
再現性なく落っこちることがあるよね 仕方ないとはいえ勘弁して欲しい
参照とか代入とかのレベルでも、1.9と1.8では、ずいぶん差がありますよ。 CPUのクロックが上がらない今時では、画期的。 ただいま、Rの分布関数を移植中でありんす。(正規分布とかポアソンとか) 出来上がって公開できるかどうかは、あちらのライセンスの都合もあるので、わからねっす。 わっしは、ぶいぶい使うっす。
tdiaryも1.9で長時間使ってるとなぜか負荷が高くなったり 落ちるみたいだね。まあこの辺は枯れてるか枯れてないかの問題だから 仕方ないけど
Mac だけど 1.9.1-p243 をソースからビルドしてたら、make check のときに ターミナルが応答しなくなった。make test は問題なかった。何が原因なのか は分からないが、2回ためして2回とも発生したからちょっと怖い。 1.9.1 はヤメテ 1.8.7 を使い続けようか。
もうすこしだ。そこで原因を特定したら勇者になれる。 おそらくスレッドだな
p243ってRails動かなかったから一個前使ってるわ
ROMA本格稼働開始。 Rubyでどれだけパフォーマンスでるのか楽しみ。
>>121 test/drb/test_drb.rbとtest/drb/test_drbssl.rbで止まるっぽい
125 :
120 :2009/08/28(金) 21:48:45
>>124 は私ではありません。(念のため)
コンパイラを変えてビルドしてみたら、ちょっと不思議だった。いつもは Xcode に付いている
Apple 謹製の gcc-4.0.1 を使うのだけど(
>>120 のときも)、これを Fink で入れた gcc-4.3.1
に変えると parse.c のコンパイルで止まる。10分近く放置しても話が先に進んでないので何か
あったのだろうと推測する。でも何があったかは知らない。
Rails は使わないし、そもそもローカルでシェルスクリプトの替わり程度の使い方しかしていな
いので、イマイチ問題の解決に関心を持てない。
parse.cのコンパイルってmake checkじゃないじゃん
>>126 うん。コンパイラを変えてみたら make で止まった(ように見える)というお話。別のコンパイラなら
make も make test も通るけど、make check で転けた。make check なんてしなくても良いだろうか
ら、そんなことキニシナイというのもアリだとは思う。
日本語でおk あと、それはgcc-.4.3.2のバグということで決着がついてる。10分といわず 30分1時間放置してればparse.cのコンパイルは終わる。あるいは4.3.3を使えば直ってる
久しぶりにローカルで使ってる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からの機能?
>>129 それで正解。
というかrefeって1.8用と1.9用で分かれてないのか……。
せめて 1.8.7 では r と r:* は同一視して欲しかったんだが、まあ仕方ないわな
133 :
名無しさん@そうだ選挙に行こう :2009/08/30(日) 14:30:15
カルト指向言語
age荒らしは無視で
Rubyってプラットフォーム別のバイナリのダウンロード数の統計とかとってる? Firefoxみたいにダウンロード数=ユーザー数みたいに錯覚させるキャンペーンとかやればいいのに
>>135 思いつきは結構だけどれが誰によって配布されてるかもう少し下調べしたらどうだ?
今のところそこまでユーザ数をアピールするインセンティブがないと思う。 やるとしたら、1.9のダウンロード数と1.8を比べて1.9のアピールくらいかね。 まぁ、普通の人はActiveScriptRubyとかそれぞれのOSのパッケージマネージャ使うんだよな
えっと、ここでもいいかな。 正式には、窓口あるんでしょうがね。 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でも直ってなかった。
140 :
138 :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 :2009/08/30(日) 22:41:12
>>139 あ、どうも。これは窓口の紹介なのですかね。
BigDecimalのpower2がずっと工事中のようで、
これは、
x ** y
の、yの部分がfloatの場合でも可能となるのかな、
と、ずっと待っておりました。
xをlogして掛け算してexpすりゃいいじゃん、
と気付いたのは、こないだなんですよ。
放置が永いので、他に何かあるのでしょうか。
とりあえず、BigDecimal/math.rb
を、ちょっと修正してCで書いて貰ったらすごくしあわせ。
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 のバージョンを上げるしかないのでしょうか。
>>141 俺らが半端に伝言ゲームするより
>>139 で
問題の所在と対処をわかっているお前さんが
ダイレクトにひっぱたくのが良いと思われる。
システムの使い方わかってる人間が的確な方法で指摘したほうがいいと思うが
○○ですかね。 ○○しあわせ。 ぶつくさ言わずに行動起こせ。 〜かね。 〜しあわせ。 とかいうやつは、たいてい口だけのやつが多い。
で、その下にいるのが、お前のような「口だけの奴評論家」。
まあオプソなんてそんなもの。 馬鹿が無料でソースまで公開してるソフトを使い回して、いかに自分の仕事を効率よく終わらせるかしか価値無いし。 そして自分のソースは公開しないのが手間がかからなくていい。
と、いうのがいわゆる中二病でございます
要するにRubyはうんこ言語ってことで。
他人のことを口だけと言って何になるのかねえ
何になるのかねえと言って何になるのかねえ
早く宿題でもやってろ
>>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)>
-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
>>138 BigDecimalのメンテナは多分ここ見てないんで、直接連絡を取るか、
他の人でもコミットできるくらい丁寧な説明を付けた上でパッチをRedmineに投げないとダメだよ。
>>155 Math.expはFloat
なんでここに書けば直ると思えるのか、その思考を追えるものなら 追ってみたいものだわ。
私は何度かここにバグを書き込んだが、ちゃんと見てくれてる人が居て、修正してくれたよ
7月のRuby会議で yugi さんも言っていたよ。 ・コミッタ、メンテナは 2ch なんてみていない ・だが、ごくたまに、コミッタ、メンテナにとっても有益な情報が 2ch に書き込まれる ・だから 2ch の情報を ML にフォワードしてくれ(してくれる人が必要だ)
>>158 あくまで例外だろう
もちろん、実は居るかもしれないが、
居ることを期待するべきではないと
yuguiさんだっけ?マメだなあ……
ま、どこに情報書けだのなんだの延々頑張る暇があったらそれこそ転載しろって話だなw
>>158 「見てくれない」人のほうが多いぞ
見てても追随めんどくさそうなら一旦棚上げだ
一連の
>>138 を見ててもわかるが、試したくても傍目には必要な情報がないことのほうが多いから
Redmineは腐ってもバグトラッキングシステムなのでそのへんは頼れる
とっても暇か緊急性がありそうなら、自分の手元で再現しようと頑張るかもしれんけど
そのまま使える掲示板でのバグ報告ってとっても稀だよね 自分の関わったソフト名でぐぐって見てみても驚くほど要領を得てない 誰かが労力割いてまとめてくれたから伝わってるんだよん
そんなにRedmineで報告しろというなら、サンプルを書いてあげればいいんじゃないかな。 いまのままじゃ、138がバグレポート書いても意味が通じなくて困るだけだろうに。
>>163 バグってるコード書けば、それだけで伝わってるよ
まあ見てる見てないなら俺含め見てるけど、 優先度低くて手を着けてないわ。 MLかRedmineに書くとある意味強制的に 優先度が上がるとも言えるw とりあえず ・発生した環境 ・再現手順 ・手順をやったらどうなったか ・本当はどうなって欲しいか どうなって欲しいかが論理的に自明でないような場合は ・何故そうなって欲しいのか あとはおまけで ・原因の推測(心当たり) これはもしあれば、というレベル これぐらいを箇条書きでいいんじゃない? 管理的には直ったかどうか確認して欲しいから 言い出した人の連絡先(メールとか)も欲しいかな
>>165 SEGVで落ちるとかならそれでもいいだろうけどな
Ruby on Rails 今日初めてやってみた なんかすげー簡単だなこれ
簡単なことはね
ちょっと手を入れようとするとね・・・
パフォーマンスを出そうとするとね…
脱線するんだよな。
今できることが 0.x 時代はめんどくさかったということを考えると Rails 6.0 くらいになったら普通のことはあらかたできるようになってると思う
で、結局cgiモジュール+手書きが一番楽と。 なわきゃない。
難しいことって例えばどんなことだよ 具体的に教えてくれよ
複数のリソースを同時に扱うとか
なんだかもどかしいな
>>155 問題点はわかったが、それは単に精度が不十分なだけだろ
$ ./ruby -rbigdecimal/math -rbigdecimal -e'include BigMath; puts exp(BigDecimal("-40", 30), 30)'
0.4248354255324683608648171943427303514052094227261901826473689E-17
しかし、初めてBigMathをみてみたが、なんでmodule_functionになってないんだこれは。
>>167 rubに関しては、環境とコード書けば十分じゃないの?
181 :
138 :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送ると、戻り値がマイナスになります。
電卓なくても確認できます。若干の数学の知識があれば。
ここはお前のスレじゃない
>>138 の書き込みを見てもなんでそれで直るのか分からん
そんなものは取り込めん
以降レス禁止
>>183 だーかーらー、いまのまま138がRedmineに書いても、チケット受け取った側が混乱するだけだって。
慣れてるやつがたたき台を書いてやらないと。
redmineが死んでるので考えるのをやめた
有料でもいいからちゃんと作ってほしいぜ
アカウント登録画面のボタンラベルが、なぜか登録ではなく"変更"になっている。 ボタンを押すと「アカウントが有効になりました。ログインできます。」 と表示されるが、これは嘘で、送られたメールのURLをクリックしないといけない rubyらしくて、ほほえましく思った
>「アカウントが有効になりました。ログインできます。」と表示されるが >送られたメールのURLをクリックしないといけない これハマりかけたw メール送られてきてるのに気づかなくて、パスワードまちがえたかなと
>>31 の理論で考えると
バグを指摘されたくないから
名目上の器だけは用意しつつ
使えないようにしてます、って感じかw
うまい皮肉だな
えー
お前らが褒めてやらないから自演しないとやってられなくなったんだろ rubyらしくて、ほほえましく思った
うまい皮肉だな
>>179 精度とか有効桁とか理論的なことはよくわかりませんが
>>138-139 の言う通りに修正すると
>>155 の精度10桁指定でも ちゃんとFloatと計算が一致するので
やっぱりなにか間違ってるんでしょう(数値計算はよくわからんのですが)
精度30桁指定しても、30桁まで正確に計算したわけじゃないっぽいし
素の BigMath.exp(BigDecimal("-42"),30).to_s("f") #どうやら9桁までしか正しくないようです
#=> 0.00000000000000000057495222693550320909930922875156228105502282940991466724539202
素の BigDecimal("1").div(BigMath.exp(BigDecimal("42"),30),30).to_s("f") # 1/exp(-x)
#=> 0.000000000000000000574952226429355980666438088057
パッチ当てたBigMath.exp(BigDecimal("-42"),30).to_s("f") #なんだか保持してる桁が増えてるが少なくとも30桁まではあってるっぽい
#=> 0.00000000000000000057495222642935598066643808805734234249475579743237414826015854912862326338840462251110214952607237390266
Perl 5.10 で perl -e "use Math::BigFloat;Math::BigFloat->accuracy(30);print Math::BigFloat->bexp(Math::BigFloat->new('-42'))"
#=> 0.000000000000000000574952226429355980666438088057
時代はDecimalだからな
出前クラウドをサービスして「それクラウドか?」と総ツッコミが入ったSecureOnlineか 活用法としてはけっこう妥当なんじゃないかと思われる よくわかんない会社が日立だからとよくわかんないまま買ってよくわかんないまんまわかった気になるんだろう まあそれはそれでいろいろいいことなのではないかなと思ってみたり
RailsはJavaではないということがわかって頂けたなら何してもらっても構わんよ Javaで淘汰されたからとRailsを代わりに使おうとする糞SIは死滅の危機にあって非常に好ましい
>>200 そもそもまともなスケールでRails使ってSIなんて聞いたことねえけど
それどれぐらいの規模の話よ?国内なんだよな?
RailsはSIerにはまじ向かない。 自社サービスを展開する企業が自分の責任で使う場合にこそ威力を発揮する。 自分で構築したシステムととことん付き合う覚悟がないとRailsはつらいよ
向かないも何も採用された話なんて全く聞かないのだが 向かないという理由は何なんだ? ウォーターフォールがうんぬんとかどうでもいいぞ。 まともにウォーターフォールができてるSIなんてほとんどないだろうから。
逆流やら滞流やら決壊氾濫やら、ウォーターフォールってのは なかなか粋な言葉だなあと、最近改めて思う
>>203 どっちかっていうと構築よりは保守の問題じゃね
大したことをするわけじゃないからJavaその他で作り込むのは
過剰品質なのに手作業というわけにもいかず
作るだけは作らなきゃいけない使い捨てのショボシステムを
でっちあげるのに向いた造りなわけだから、
リスクを自前でコントロールしきれない他人様のところで
しかも末永く使っていくのには明らかに向かないよな
そもそもSIer使うような客はその辺のリスクコントロールが難しいと
思ってるからSIerに金払って構築させるわけで、それがやれるんだったら
そもそもSIer呼ばないで自分で作るよなあ
何言ってるのかほんとに分からない・・・
>>195 どうせ、直すなら
>>181 で、
実行速度が速くて、しかも(理論的にも)安心。
数学の公式にあるみたいだから。
だからそういう理由でコード入れたりしねえんだって
Urabeさんは私の太陽、私の星、私の月です Urabeさんが大好きです
自分とこで作って使うならRailsもアリ 作るとこと使うとこが違うなら別のを使うのが得策 …てな感じでOK?
Rails に限らず Ruby 全般に言えるが、 ずっとベータ版で構わない、改装のしやすさが重要、というプロジェクトやプロダクトに最適 Ruby は直接金は産まないが莫大な富を産む よくわかったベンチャーが内製ツールを Ruby で作るとものすごいことになるが、 同じ理屈で大企業が製品を Ruby で作ると別な意味でものすごいことになる
お約束だがよくわかったベンチャー乙
作ったこともないのにイメージだけ
Windows版Intel C++のインストーラに内部的にRubyが使われてて驚いたことがある
github廚うぜぇ
bzr最高
disり合いはHg厨の陰謀
スクリプト書いて、実行したらunicodeファイル名が読めずにエラー吐いた。 他言語で書き直しかよ〜。
ああ、Windows の Unicode ファイル名は 1.9.1 でもどーやっても読めませぬ これどっかに書いておいたほうがいいと思う
今がんばってるところなんでしょ
IPA自体がギャグ
>>224 あと何百年岡田事件を引っ張るんだよお前
どなたか、Rubyのrand()の生成方法とかソースコードのあるところを教えてくださいませ。 svn.rubyを漁るですが、見つからない。 どこかで蛇使いが、うちのはメルセンヌツイストだからと自慢しておりまして、 じゃぁ、と調べて見ても、見当たらないのです。 しょうがないので、出てきたものを比較してみました。 SFMTとXor128と24bitの線形とですね。 比較の方法は、長くなるので割愛します。 Rubyのrand()はSFMTと一番近いです。はっきり言うと私の方法では、区別できません。 他のは判別できますが、連続した百万個を100セットくらい必要です。
228 :
226 :2009/09/08(火) 23:51:09
>>227 どうもありがとう。
ありそうな感じなので、見たつもりだったのですが。
探してみます。
冒頭にいきなり This is based on trimmed version of MT19937 ってあるんだが
230 :
226 :2009/09/09(水) 00:45:03
>>229 どうもご親切に。
それは、
>>226 で言うところの、SFMTです。
あとからのdSMFTはコードが長いので、今回は見送りました。
(Rubyへの移植を)
これで、晴れてRubyもメルセンヌを名乗って良いかな。
231 :
230 :2009/09/09(水) 00:53:01
失礼。 /dSMFT/dSFMT/ だと思う。たぶん。
232 :
デフォルトの名無しさん :2009/09/09(水) 00:54:02
いろいろ検索してみましたが見つからなかったため質問させてください。 企業でRubyを導入する場合、国からの援助があるという話を聞いたのですが 実際にそのような話があるのでしょうか。 また、あるとすれば具体的にどのような援助を受けられるのでしょうか。 ググってみても、島根県の県内企業向けの援助はありましたが 国からってのは見つかりませんでした。 実際、本当の話なのかどうかよく分かりません。 もしご存知の方がいましたらよろしくお願いします。
IPAに聞いてみればいいんじゃないかな とか、茶化しちゃいけないんだろうか
IPAフォントの御利益はどのくらいまで引っ張れるかな 個人的には、HaruPDFライブラリがUTF-8に対応して曲がりなりにも 完全版になってくれれば、10年は恩を感じられるんだが。 もちろん、Ruby方面でもなにか実績を作ってもらえればそれはそれで 素晴らしいんだけど
いまだに使う機会が無い。 何のために存在してんのこれ? 今となってはそそられるような何かは皆無だしな。
そりゃ、あんたが創造的な仕事をする能力がないってだけじゃないのか? 実際使える(傲慢)かどうかは知らんが、 > そそられるような何かは皆無 ってのはアレだなあ
創造的だけじゃないかな。文脈がおかしくなる 創造的 or 建設的 or 実効的 、くらいかな。存在意義としては
どっちかってえと何がどう捩れて > 企業でRubyを導入する場合、国からの援助がある になったのかが気になる
>>225 2ちゃんねるだけが生きがいの粘着だから放置しようぜw
>>240 ひとりでやれんのか
やるならお前ひとりでやれ
>>241 我々多数派はこれからも岡田を追及し続けるってことですね。わかります。
>>226 メルセンヌツイストとかxor128とかは乱数生成のアルゴリズム名だったのか。知らなかった。
勉強になりました。ありがとうございます。
メルセンヌツイストってメルセデスベンツのパチもんだろ
>>234 ,238
BioRubyも2005年に未踏でついてるね。早くBioPerlに追いついてほしい。
専門知識を携えて頑張る人がいなかっただけだからな ある意味仕方なかったんだが
>>243 > メルセンヌツイスト
正しくはメルセンヌツイスターだけどね。
> 企業でRubyを導入する場合、国からの援助があるという話を聞いたのですが それを聞いたソースに尋ねてみたら?
標準化がゲシュタルト崩壊した 標準化ってなにすることなんだっけ
>>250 政治的駆け引きを繰り返し、
誰もが望まないけれど妥協点の機能を追加し続けること。
Modula-2はそれで死んだのかな。
まあみんな勝手にばらばらにやってる感はある ここである程度は合わせてもいいかも
railsのために標準を1.8にして1.9が死んだりしなきゃいいけど
Rails が 1.8 に固執してるのはシステム的に対応不可能な個所があるというよりは 「1.9たいおうにするのめんどくさいから」 なので、1.9 サイコーということになればついてこざるを得ないとは思う が、Encoding 関連のガイジンさん誰得っぷりが足を引っ張るかも Latin-X を利用してる人なら恩恵あるんだけどなあ
1.9がサイコーになる要素がないじゃん・・・ たいして速くないし、エンコードも英語だけ使ってるなら面倒が増えるだけだし。 1.8に比べて特に優れてるところがないんじゃ誰が以降すんだよ
1.6 のころは Ruby しょべええええええと思ってたので 1.9.6 くらいになればまた違うのではないかと
エンコード絡みでエラーが出ると、どこでどのように対応するのが正解なのか判りづらいんだよなあ エラーが出た行を修正すればいいわけじゃないから
Ruby1.9とRailsの組み合わせでつまづくと、 海外サイトの方が圧倒的に情報が多いという事実を知らないんだなw
RUby1.9が関係ないということに
>>261 が気づくのはいつだろうか
>>262 ごめん。意味分からない。
おまえ頻繁に書き込んでると思うけど、ほんとに意味分からないよ。
Rails は外国のほうがそもそも情報量が桁違いに多いってことなんじゃねーの Ruby1.9 かどうかにかかわらず、Rails だから多いということなんでは
>>264 なるほどね。ものすごく見当違いだから分からんかった。
やれば分かるが1.8系+Railsならそこまで海外サイトに頼らなくても支障はない。
日本のサイトでもヒットするし、書籍もかなりあるし。
1.9になると自分でソース見る以外はほとんど海外サイト頼み。
実際にやりもしない調べもしないやつはこれだから。
「調べもしない」から、RailsはRubyのバージョンによらず 海外のほうが情報が多いということに気づけなかったのだろ 1.8系列のRailsの情報を海外に求めていれば莫大だと気づけたはず 恥かいてから言い訳とか恥ずかしすぎる
Ruby1.9とRailsの組み合わせの情報が、日本では全然ない というだけの話じゃないのか? いったい何を言い争ってるんだ
>>267 彼らが本当に交換しているのは
情報ではなく自尊心なんです。
製作サイドはもちっと説明してほしいね
Tempfile.newの第一引数にArray渡せるなんて聞いてねーぞ
いいから黙って渡せ!!
こういうオーバーロードもどきはちょっと汚い感じ
Arrayで渡してやればsuffixも指定できるって話でいいのか?
いいよ。 ふと思いついたんだが Tempfile.new("foo"..".rb") というのは…やっぱりダメだな
>>276 ruby-coreからの転記だからじゃね?
じゃあなんでruby-coreよ?
という疑問は残るけど、英語の方が着目してくれる人数は多そうな気がしなくはない。
傍目に明確なテストを大量に付記しないと入りそうにないジャンルだから、手をかけてくれる人は多いほどいいな
そういえば、
ttp://redmine.ruby-lang.org/issues/show/2060 の
>DLをCからRubyに変換する事を勧めます
>DLをCからRubyに変換すれば良いと思ったので、変換しました。CからRubyに変換後のパッチとそのテストを送ります。
>このパッチを受け入れてもらえるのなら、これからもっとCからRubyに変換をするつもりです。
>宜しくお願いします。
ってのをAaronタンがやってるけど、どういう趣旨なんだろ。
移植性の改善とか?
久しぶりにRuby公式hpみたら落ちてる
>>275 その辺をやっているのは日本人だな。
まぁ、自動設定できるほど甘くはないのがその領域なんだが。
>>279 DLじゃできないことがあったそうだが、もうわからんらしい.
まぁDLにはいろいろと問題も多いのでFFIに置き換えること自体は賛成.
あとはFFIの完成度だな.
DL って何の略ですか? ググって勉強してみたいので教えて下さい
ぐぐってみたところ DL … ダウンロード FFI … ファイナルファンタジー1 のことのようだ
285 :
283 :2009/09/16(水) 11:02:29
DL ってこれのこと?
http://www.ruby-lang.org/ja/man/html/dl.html そういえば、Nokogiri を、Linux 版 Ruby、Windows 版Ruby、JRuby で
ためしていて、FFI のところまでいって、Nokogiri は
・Linux 版だと libxml2 の so(?) を開こうとする
・Windows 版だと libxml2 の dll を開こうとする
・JRuby 環境で gem install した Nokogiri だと、落ちた(Java 環境だと、DL 対象がみつからない?定義されていない?)
ということをやりつつソースまで追いかけたんだけど、
キーワードの目の付け所はあってますか??
286 :
284 :2009/09/16(水) 11:05:59
>>277 「ruby-coreからの転記」じゃなくてチケット作成のときに英語を選んだから
ruby-coreに行ってるんだよ。
>>287 ああ、そういう流れになってるのか。得心したわ。
>>285 だいたいあってる
DLもFFIもダイナミックリンクなライブラリを
いちいち拡張ライブラリを作ったりすることなく
利用する仕掛け。
DLは1.8系に標準添付だったためデファクトスタンダードだったが
>>282 の言うように問題も多かった。
しかも、ライブラリ管理者が1.9系で、
機能はおおむね同じだがAPIが異なるライブラリ(DL2)を
何故か同じ名前である「DL」で添付するという判断をしたため
最大の利点であった「1.8系含めた今までのコードが修正なしで動く」という
特徴が吹き飛んだ。(DL2とDLの同時添付じゃ何故駄目だったのか今でも疑問)
とはいえ、当時このコンセプトのライブラリはDLぐらいしかなかったし、
1.9系のためにチマチマ移植するしかないか、という空気のところに
1.8系でも1.9系でも同一APIでそれどころかRubiniusでもJRubyでも
同一APIで行ける、というFFIが登場して全部かっさらっていったと。
Rails等を考えたときに1.8系はまだ当分続く流れで、
1.9系と1.8系が並行して利用される期間が長そうな見通しとなったことも
FFIに対しての追い風となった。
とはいえFFIもまだAPIが固まり切ってないという課題があって、
標準添付は課題解決を待ってから、というのが大まかな流れというところ。
違うものを同じ名前で入れてしまったんで、DLを使いづらい状況にしちゃったよね
Net:HTTPですら(ああいうやり方だったとしても)互換性確保には心を砕いてたのになあ
ライブラリ管理者氏のDLに対する過大評価と過小評価があったのかな、と
DLを代替できるようなライブラリは出現しないだろう(そんな面倒なことは誰もしないだろう)という
「DL自体への過大評価」と
DLなんて実際のところ大して使われていないだろう(だから救済措置なしに互換性を捨てても移行コストは低いだろう)という
DLやFFIその他の「こういうことをするライブラリのニーズへの過小評価」という
この辺が移行措置なしでいきなり変えちゃった背景なのかな、と
いうところまで書いたところで念のため、アーカイブを確認してみたら、
ライブラリ管理者氏は当初DLとDL2の共存案を提案してますな
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/25486 >まだ先の話ですが、Ruby/DL2 がある程度使えるレベルになったら、現行の ruby-1.9 に
>マージすることを考えています。同時に、旧 ruby-dl はしばらく残しておいて、ruby-1.9
>をベースにした安定版のマイナーバージョンアップが2,3回あってから削除しようと考えて
>います。
むしろDL2をDLにしちゃえ案はmatzの提案だったという
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/25487 >どうしてもそうしたいというなら別ですが、1.9は「不連続」で
>「非互換」を許容する「2.0のプロトタイプ」という性質がありま
>すから、いっきにdlを置き換えてもあまり問題ないと思いますよ。
まあ2005年頃の状況(Railsが席巻しておらず、1.9移行も早々に行われると見られていた)からすると
当時は妥当な判断だったのかなあ
結果論としては失着でFFIが取って代わることになったけれども
1.9のDLってDL2だったのか。 なんか変だという気がしてたのが解決した。
292 :
285 :2009/09/16(水) 21:58:56
>>288 詳細な説明どうもありがとうございます。
DL とは Unix の dlopen() を裏で呼び出すと思うのですが、
Nokogiri のソースの FFI を呼び出すところまで見て、
JRuby 環境だったら、libxml2 の so や DLL を呼び出さずに、
xerces の jar か何かのメソッドを呼び出すようにすれば、
プラットフォームに依存しない Nokogiri 環境が出来るかな、とちょっと妄想していました。
(libxml2 と xerces は API のシグネチャが違うと思うので、実際には簡単にはできないだろうけど)
Mingw版Ruby 1.8 でdlでコールバック関数を引数に取るWin32API呼んだらRubyが落ちることがあった が、何処にも報告してないのでいまだにそのままのはず Mswin版Ruby 1.8だとちゃんと動くので、誰も困ってないのだろう デスクトップ上のWindowハンドルを列挙させるAPIなんだけど >ruby -rdl -e "DL.dlopen('user32')['EnumWindows', '0PL'].call( DL.callback('IL'){|hwnd2| puts '%08x'%[hwnd2];-1}, 0 )" 〜ハンドル列挙 省略〜 -e:1: [BUG] Segmentation fault ruby 1.8.7 (2009-04-08 patchlevel 160) [i386-mingw32] abnormal program termination One Click RubyがMingw版になったら、困る人も出てくるのしょうか?
勉強始めて1ヶ月くらいなんですが 昔のVBのようにアジャイル用教育言語の香りがしてくるんですが その辺どうなんでしょう先輩方
元々のPerlの正当な継承者です Practical Extraction and Report Language 作り直しまくる内製のプログラムをやるのに最適という点でVBに似ていなくもない Rubyプログラム自体を「ハードなウェア」として外部提供したり販売したりするのは於大臣の仕事 それで双方満足してるなら駄目じゃないが、他にやりようもあるよね
さすがにVBよりはずいぶんましな言語仕様だとおもうけどなあ。 でもGUI作るならVBのほうがずっと楽。
gitとかgemとかいっぱいありすぎでわかんねえよ どれが最新版なんだよ
一定したルールはないが、 RubyForge と GitHub の両方にある場合 (で、 github を gem のsource に指定済みの場合) gem install hogehoge でインストールされるものが hogehoge 最新安定版 gem install AUTHOR-hogehoge でインストールされるものが hogehoge 開発最新版 git clone git://hogehoge... 等の git コマンドで手元にコピーされるものが hogehoge 開発先端版 と考えていいと思う gem install hogehoge でいいんじゃね
spec1.9 でテスト試したら 全く知識のないクラスの全く動作が読み解けないメソッドで nil に対する NoMethodError が出た もう知らん 今日は休み
>>300 先端と最新の違いがわかんないけどとにかく gem 使って github をソースに追加しておけばいいんだな
ありがとう
ファイルの行から特定のパターンの行を出力したんですが、 その出力した行から、特定の文字を出力するにはどうすればいいですか?
初心者は each を惜しげもなく使え each で書きにくくなってから他の使え 複雑なの使ってからだと each 使えなくなるぞ 特定の文字の特定のしかたによるんではないかと 正規表現で済むなら scan するか if でマッチさせて数値参照読むのが普通
>>304 んーその説明じゃ「特定の文字」がなんなのかわからないかな。
パターンにマッチした文字列のことを指しているんだとエスパーしてみる。
File.open(filename).each do |line|
if line =~ /(¥w+)¥.(¥d+)/
puts "#{$1}, #{$2}"
end
end
>>308 規制されてて建てられませんでした。ごめんなさい。
311 :
310 :2009/09/17(木) 17:41:11
>>293 1.8のdlはstdcallに対応してない。
スタック後処理次第でたまたまうまく行くこともある。
rspec でテストを書いた rspec 特有の機能を何も使ってない単純なテストだけだということに気がついた test/unit に書き換え中
>>315 そんな君には Shoulda がオススメ
オフィシャルサイトの検索機能死んでね?
>>314 マジで?
じゃあ当然WINAPIとか(あるべき論としては)全滅なわけだけど、
大概のDLのサンプルコードってWIN32APIキックしてMessageBoxを出してみる、
とかなんだよねえ……。
初心者は自動的に地獄に引き摺り込まれているわけかw
普通はwin32/apiを使う
>>314 そうだったのか〜
でも、なぜMswin版rubyだと落ちないのでしょうか
Win32API呼び出しが一回や二回ならスタックが元に戻ることが多いけど(で、たまたまうまく動く)
連続してコールバックで呼び出されるとスタックが正常に戻る機会が無く
ドンドンずれていってメモリ破壊が起こるってことでしょうか?
普通だったらWin32APIを使うところですが
コールバックできないのでdlを使いました
ググったら dlを使ったサンプルがあったので
1.9のdl(dl2)では 呼び出し規約の指定も出来て
Win32APIは単なるdlのラッパーになってますね
Win32APIより、win32/api
>>321 > でも、なぜMswin版rubyだと落ちないのでしょうか
知らん。アセンブラ吐かせて確認してみな。
Net::HTTP の open_timeout と read_timeout の初期値が nil なのはなんで?
まあ、TCPSocket.open のタイムアウトをカウントダウンで待つ必要はないわな 1 秒とかに設定すればひょっとしたらご利益はあるかもしれないが
MBARIパッチっていまどうなってんのかな。 導入予定って1.8.6系だけ?
あとstack cleaningだな。 入るなら1.8.8だが、個別のパッチで出てこない限りマージしようがない。 あれはマージさせたくないとしか。
あひーっ!ブグ☆2101はゼッさん・放置プレイ中でよ! 英語で書いたせいでロスト・イン・トランスレーション気味みていだ。 なおるまで110にちかかったブグ☆1531を見てら、おしっこちびっちゃったでよ。 ジャパニイズ・訳をruby-devにドロップしてら読んでやらなくもねい、っていう人はいるますかね?
日本語でおk
>>331 sinとcosのほうは
x %= two * BigMath.PI(prec)
でいいんじゃないかと思うんだが、加減算のほうが速い?
あとテストが欲しい。
335 :
331 :2009/09/20(日) 21:03:33
>>334 ドゾー (ノ゜▽゜)ノ ⌒~パッチてきよう後
$ ruby -rbigdecimal -rbigdecimal/math -e 'include BigMath;p BigMath.exp(BigDecimal("-50"),10).to_s'
"0.1928749848E-21"
$ ruby -rbigdecimal -rbigdecimal/math -e 'include BigMath;p BigMath.sin(BigDecimal("100"),10).to_s'
"-0.50636564110975879365655776303890941120458305E0"
誤差は1つめが最後の桁で、2つ目は26桁目あたりで発生してるでーす。速度の最適化はあまり
気にしてねいです。BigDecimalの除算の効率わかんねいし、どうせその後の級数の和の計算の方で
圧倒的に時間がかかるので。セキュリテとかよく知らねけども、現状
BigMath.log(BigDecimal("1E-50"),10) でフリイズ気味になるのはDoSっとやられたり
しねいてすかね?
あそこに書いてある、atan()の速度向上のための式が、よくわかりません。
どこか、()とかをを省略してないでしょうか。
logはふたつに分けた方が速いような気がします。
計測してませんので、なんともですが。
>>331 前の方に回避方法があります。
本体をいじるのが嫌な人はこっちでひらって調整後、あちらを呼んでください。
flgを立てて、returnのところで調整するのが本当かもしれませんが、
他人のコードをあんまりいじりたくないので。
あれだったら、行を挿入するだけです。
1行で書けるけど、目立つので3行にしました。
>>334 何故か、BigDecimalで%を使う発想がなかったので、私は違うやり方で修正しました。
そっちの方が良いかも。
337 :
331 :2009/09/20(日) 21:50:58
338 :
336 :2009/09/20(日) 22:16:37
>>337 どうも、ありがとう。
この手は慣れているつもりだったけど、ちょっとどこかでコーディングミスしているみたい。
あそこの式だと、左がn、右はxで良いのね。
で、左と右を掛け算する。
連休のうちになんとかなるでしょう。
ついでに、asin()も書くつもりだけど、公開できるかどうかは微妙。
色んな意味で。
>>336 > logはふたつに分けた方が速いような気がします。
俺は
>>181 を見てこうしてた。
@@ -133,4 +140,5 @@ module BigMath
n = prec + BigDecimal.double_fig
one = BigDecimal("1")
+ x = -x if neg = x < 0
x1 = one
y = one
@@ -146,5 +154,9 @@ module BigMath
y += d
end
- y
+ if neg
+ one.div(y, prec)
+ else
+ y.round(prec - y.exponent)
+ end
end
340 :
336 :2009/09/20(日) 23:03:30
>>339 >181は確かに、私のレスですね。
>338で言うところの
>色んな意味で
と、言うのは、私に数学的な素養が少ない。
と、言うことも含まれます。
専ら、電気通信の関係で、飯食ってます。
今夜は、炭素と水素の化合物で頭がクルクルなので、明日ゆっくり拝見します。
ベンゼンですねわかります
教祖はデビアン使いでウィンドウズ使ってないしなあ。
松江のカンファレンスにはMSも参加してたけどね。 IronRubyがもう少しまともなら・・・
未だにまともじゃない?
例のatan()は、完成しました。 有効桁数を100取って、xを0.001から0.999まで変えながら、 オリジナルと比較してみましたが、問題ないみたいです。 xが1.0以上でもちゃんと計算できますし(ここ重要)、速度も速いです。 リクエストがあれば、私の書いた部分だけ公開します。 実は、あれ以降ある種の罪悪感を感じておりまして、 道を歩いていたら、犬の糞を踏んづけてしまった気分だったのですよ。 でも、今日ふと思ったのですが、 あれは、数学のライブラリーとしては、とても貧弱ですよね。 sin()とcos()はあるのに、tan()はないとか。 tan()=sin()/cos() は中学校で習うのかな。 atan()があれば少しのちょこちょこで、asin()もacos()もできるみたいです。 作者は、いつ何処で誰が指摘するかニタニタしながら待っていたのかもしれません。 (と言うか、とりあえず用意したから、必要な人は勝手に拡張してちょうだいみたいな) そう考えてみると、犬の糞ではなくて、百円玉拾った気分になって、今夜は終わりにします。 asin()はもう少しです(たぶん)。分母と分子に!のある式でやっております。 atan()からのチョメチョメでも良いのですが、出てきた値の正当性を確認するためには、 複数のものが必要だし、まぁ遊びですから。
347 :
346 :2009/09/22(火) 21:14:17
あれは、ようやくコードが動くようになって、舞い上がって書いております。 本意は別のところにあるのですが、文章がへたなのと、表現が不適切なところもあって、 変な具合になりました。 そもそも、exp()の不具合は私が最初の発見者では無いと思います。 見切りをつけて、よそに行くひと。 黙ってじっと待っているひと。 知らないで使っているひと。 私はたまたま回避方法を発見したので、発表させて頂きました。 不愉快な思いをされた方には、お詫びを申しあげて、私は退場します。 どうもすみませんでした。
以前は Ruby を使ってたけど、 Scheme の方が断然書きやすい。
そりゃあLisperならGaucheのほうが使いやすいんでないか
釣れた!
かっこいい!釣り師(つりし)かっこいいよ!凄(すご)いね!やったね!
SchemeとHaskellどっち習ったほうがいいと思います?
Rubyやってれば根っこは同じSmalltalkとかSchemeはちょろいから、そっちを先に片付けるか 目新しい考え方を学ぶのにHaskellかってかんじかな。いずれにせよぜんぶやっておk。
Haskell に一票。といいつつ自分は Scala 勉強中。
HaskellとRubyの組み合わせが最強ということですね。 ありがとうございました。他の糞ゴミ言語で時間を潰さなくてすみました。
くだらん煽りはいらないから
おつかれー
関数型言語に興味があって、 積ん読してあるソフトウェアデザイン4月号の Haskell の特集を読んでみたが、 ほとんど理解できなかった 関数型言語は難しい。 Ruby などの、 ・クロージャ ・メソッドの引数にブロックを渡せる というのは理解できているつもりなんだけど
俺でも使えるrubyは偉大
String#inspect って中身なに? 信頼できない入力を inspect して eval して戻しても安全?
inspect した文字列は変換器に通してはいけない まめちしき
eval(str.inspect) はコード実行が起こる可能性があるけど eval(str.dump) は何も起こらないことが保証されてるんだっけ? このへんあんま気遣ってないんだっけか、太古どっかでなんか聞いた気がする
eval(str.dump) == str は保証されてる eval(obj.inspect) は何がおきるかわからない
String は dump をそのまま返してるんじゃねーかとも思う あれわざわざオリジナルなの?
Non-ASCIIの扱いが違う
>>367 それは1.9のみの話? 1.8ではasciiかどうかなんて意識してなかったと思うけど、どうでしょう?
$ /usr/bin/ruby -vKu -e 'puts [ "あ".dump, "あ".inspect ]' ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] "¥343¥201¥202" "あ" $ /usr/bin/ruby -vKn -e 'puts [ "あ".dump, "あ".inspect ]' ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] "¥343¥201¥202" "¥343¥201¥202"
370 :
369 :2009/09/25(金) 08:21:14
なんでバックスラッシュがyenに変換されるんだろ……
>>370 それは君が Mac を使ってるからだよ
既出かもしれないけど、Ruby1.9で巨大なオブジェクトに対して存在しないメソッドを呼び出そうとするとハングする・・・ エラーメッセージを生成するためにinspect呼び出してるせいみたいだけど、これタイムアウトか何か設けて欲しいわ
巨大な、て インスタンス変数がめっちゃやたらあるとか、 ギガバイトサイズの文字列とか?
巨大っつったけど、実は大したことなかったりする・・・ 頂点をあらわすオブジェクトが50個、辺を表すオブジェクトが200個くらいのグラフなんだけど (辺はそれぞれ長さ1の文字列と頂点一つ、頂点は長さ10〜20の整数と辺の配列をもってる) 普通にプログラミングしてたら作られ得る規模だよね、これ CPUはE8500だし言うほど古くないと思うんだけど、、、
そんな巨大プロジェクトにRubyを採用する方が悪い(キリッ
PHP使え
再現コードうpれば直るよ
>>374 > 頂点をあらわすオブジェクトが50個、辺を表すオブジェクトが200個くらいのグラフなんだけど
> (辺はそれぞれ長さ1の文字列と頂点一つ、頂点は長さ10〜20の整数と辺の配列をもってる)
再帰してんのか?
そのオブジェクトに自前のinspectメソッドを用意すればいいのでは large_string = '巨大文字列' * 20 # 例えば*10000なんかだと表示が大変なことに p large_string def large_string.inspect "#<巨大文字列 #<object_id:0x#{self.object_id.to_s(16)}> size=#{self.size}>" end large_string.foobar # => undefined method `foobar' for #<巨大文字列 #<object_id:0x156ad40> size=200> (NoMethodError)
inspectのオーバーライドはしたけど、 こういうオブジェクト作るたびに、エラーメッセージ対策のためにinspectオーバーライドするのはなんかなぁ・・・と ちなみに、ある程度inspectの結果が巨大になると、かってに#<[クラス名]:16進数文字列>に直してくれるみたいだけど、 それならいっそのこと、inspectに時間がかかるケースも想定して欲しかった、と class A; def inspect;"A"*10 end end A.new.hoge ==> NoMethodError: undefined method `hoge' for AAAAAAAAAA:A class A; def inspect;"A"*10000 end end A.new.hoge ==> NoMethodError: undefined method `hoge' for #<A:0xcc8594>
>>374 グラフにループがあるとしたら、何も考えずに頂点と辺の関係をたどってたら無限ループ突入だろ
>>381 ビルトインのinspectって循環参照考慮してる筈だよね
380で言った「inspectのオーバーライドはしたけど」っていうのは、ビルトインのinspectのせいで止まるから
仕方なく自前で用意した処理の軽いinspectに置換したってこと
Object#inspect はインスタンス変数全部表示しようとするぞ インスタンス変数がアホみたいに莫大だった場合はボトルネックになる
pp だと pretty_print_instance_variablesを定義して簡単に回避できるけど、 単なるinspect向けにそういうのはないの?
>>384 は悪くないかもな。
あるいは
module Inspector
def inspect_member(name)
...
end
end
class LargeObject
extend Inspector
inspect_member :lines
end
とか
タイムアウトも悪くないけど、 速いマシンと遅いマシンとでinspectの結果やら p の出力が変わったりするとそれはそれで地雷かもなあ
そういや、Matzにっきってもう更新されないの?
>>387 Ruby会議でその話になったときはTwitter見てっていってた。
TLをまとめてブログにポストするrubyスクリプトでも書いて それで更新したらいいのに
そんなの読みたくない
twilog.org のこと?
>>388 twitter見てみたけど、便所の落書きみたいなことしか書いてなかった・・・
blogにもどってくれよん
そもそもTwitterは「基本ひとこと」「ログが長期間残らない」という点で blogとは違ったものだしな 「Matzはblogの更新をやめた」と考えた方がいい
ブログを書く手間と時間はTwitterに消えてるんだろうな Twitterってかなり一般的になってきたけど気が散って生産性落ちたりしないのかな
リアル雑談と同じようなご利益があります 同じようなご利益しかないとも言えます 同じような弊害があるとも言えるわけですが
iPhone持ちだし、Twitter興味はあるけどね 手を出すと集中して本読んだりコード書けなくなる自信がある
twitterも読みきれなくなってきた
>>394 >「ログが長期間残らない」
いや、残るけど?
どうせならここでつぶやいてよ
うむ 元祖便所の落書きとしては是非invitationを
Matz江なう
>>399 Twitterのログは途中で消えるよ
いやサーバに残ってるのかどうかは知らんけど、少なくともWeb上から見えなくなる
loopっていつの日かまっとうな制御構文に格上げされる可能性はないの? loop end でいいやん
forさんよりも利用頻度が高いloop・・・
for や while はオプションがめんどくさいからな お前は黙って無限ループだけしてりゃいいんだよというのを黙々とこなす loop
1.9だとloop doはwhile trueより格段に遅くて気に入らない 制御構文になったら違ってくるのかもしれないけど
>>403 Web上からも見えるよ
一覧上からたどれなくなるだけで
個別のエントリのURLを控えておけばいつでも参照可能。
>>407 そうなん?
ここに書いたらまたlength/sizeのときみたいに笹田さんが直してくれそうだな
最適化の書き換えの優先度が低いんだろ 放っておいてもいつか速くなると思われる
loopが、というよりyieldが遅いんでは? 最適化が本格化すると、loopをバイトコードレベルで 無限ループに書き換えるくらいはやってくれるだろう
よし、おまえらささださん方面に電波最大出力だ
「いつか」とか「本格化すると」じゃなくて、今速くして欲しいんだよね
今すぐ切実に早くしたいならwhile trueに書き変えろよw
>>413 Rubyのソースコード書き変えて再コンパイルしれ
たぶんいちばん早い
416 :
デフォルトの名無しさん :2009/09/27(日) 21:48:40
length/sizeって何があったの? 本人降臨したの?
>>414 切実に速くしたかったらCで書くだろJK
せっかく超高級言語つかってんだし、loop do endって書くキモチを
大事にしたいんだもん
むしろforが要らない子になってね?
rubyそのものを最適化オプションガリガリ付けてコンパイルすればいいんじゃね
if RUBY_VERSION >= '1.9.0' then str.force_encoding(::Encoding::ASCII_8BIT) end について本スレで何かコメントでもあれば
今時thenなんて使わないよね
いや全然
thenだけにー
::Encoding::ASCII_8BIT より "ASCII-8BIT" のほうが短くていいな
やたら短さだけに拘る人間の80パーセントはちんこ短い
で ト ン セ | パ 0 2 り 残 た よかっ
respond_to?(:force_encoding) しろとか defined?(::Encoding) 使えとか言われてたな
A-Zでカテゴリ選んで A-Zで登録アプリを26^2個呼び出せる CUIなランチャ作ったけど起動が重いな。 Lightspeed Languageの登場が望まれる。
>>420 RUBY_VERSIONじゃなくて、
>>428 の言うとおりforce_encodingかEncoding見てください。
なお、勝手に俺バージョンのforce_encodingやEncodingを1.8で定義しないように。
その辺を見て分岐することが推奨されているので、MRI以外で死にます。
ruby使ってんのに、小せえこと気にすんなよ
>>431 > 勝手に俺バージョンのforce_encodingやEncodingを1.8で定義しないように。
Javaでも使っとれ
1.8.7 で警告が出ない以上、
>>431 の主張はカス
Ruby 1.9 の Encoding が動作してくれないと困るのであるなら、そのように記述するべき
我々は実際には Ruby のメジャーバージョンを考慮しているのである以上、
スクリプトとしての記述もバージョンで分岐させるように書か「なければならない」
>>432 どっちかというと文字列から Encoding の特定の定数を決定する処理の負担のほうが嫌気されるのでは
毎回いちいち探させるくらいなら定数として最初から書いておいたほうがプログラム的に親切
.encode('utf8') や encode('sjis') って動作したっけ、encode('EUC-JP-MS') って使えるのか、とか悩む必要もなし
定数だった場合は間違ってれば Ruby が uninitialized constant で教えてくれる
初心者スレのだが、これくらい書けば問題ないのかも if str.respond_to?(:force_encoding) && defined?(::Encoding::ASCII_8BIT) && str.respond_to?(:encode) && str.respond_to?(:encoding) && defined?(::Encoding::UTF_8) && str.class.new.encode(::Encoding::UTF_8).encoding == ::Encoding::UTF_8 && (_ = str.class.new.encode(::Encoding::UTF_8).force_encoding(::Encoding::ASCII_8BIT); _.encoding == ::Encoding::ASCII_8BIT) then str.force_encoding(::Encoding::ASCII_8BIT) end
「添付ライブラリにEncodingがあるなら」とか 「標準のStringがforce_encodingを持ってるなら」とか そういう指定の仕方ができないんだよね それを唯一担保するのがRubyのメジャーバージョンなんだから仕方ないわ
>>440 respond_to? を通っても別のどっかで齟齬の例外が出てそもそも動かないことが逆に期待されるから別にいいじゃん(素
バージョン併用スクリプトの書き方のガイドは特急で作ったほうがいいかも
っ class Encoding; end
str.force_encoding(::Encoding::ASCII_8BIT) rescue str よし解決 皆の者我に続け
1.9は文字コード面では完全に失敗だな。 2.0までにPython同様内部文字コードに変換する作りにしといてね。
String そのものにエンコーディング機能のメソッドを新たに持たせたのがめんどくささの原因な気もする String のエンコーディング関連は Encode のメソッドからしか操作参照できないようにしておけばあるいは
>>445 Pythonのucs2/ucs4絡みとかUnicodeString絡みとか見ておいで
>>446 いや、1.8互換ってのが茨の道なんだと思うけど。
> String のエンコーディング関連は Encode のメソッドからしか操作参照できないようにしておけばあるいは
他の言語ならそうしたかもね。
だれだよ UTF-8 とか中途半端なの作ったやつ はじめから 32bit ぐらいの幅にして、世の中の全種類の文字を一意に判定、 かつ少しぐらい文字が増えてもいいようなテーブル作っておけばよかったんだ
つ UCS-4
中途半端感がひどいのはUTF-8じゃなくてUTF-16だな
>>449 UTF-8はUnicodeのエンコーディング方法の1つでしかない。
UTF-8はこれでもずいぶんマシなんだよ UTF-8以外のUnicodeや広域文字実装を実質全く見ないのがその証拠 どんなに理想的でも、利用されないと意味がない そういう意味で大変戦略的な「とてもマシ」な代物
どこの世界の話ですか
>>448 「1.8」なんて存在しないだろ
あるのはオブジェクトがrespondするかどうかだろ
>>455 まあ、これまでの理屈で言えばそうだな
1.8用や1.9用というバージョン分けの理由はないはず
もう1文字4byteのRubyEncodingを策定しようぜ
458 :
449 :2009/09/28(月) 17:38:33
Unicode と UTF-8 という言葉をほとんど同義に使っていたけど、
もしかして違うの?
たしかに UTF-16 とか UTF-32 とか、UCS2 とか UCS4 という単語は聞いたことがあって、
どう違うのかはわかっていなかったけど
>>457 はげどう
でも ASCII オンリーな環境の時は、だいぶ無駄になっちゃうね
>>458 Unicodeってのは、規格群の総称のような感じで、
UTF-*は文字符号化形式及び文字符号化スキーム
UCS-*は符号化文字集合
世界中のあらゆる文字に文字コードという数字を割り振ったのがUnicode そのUnicodeをバイト列表現する(エンコードする)やり方が何種類かあってそれがUTF-* って理解をしているんだけど
>>456 じゃあバージョンとか本当はいらないんじゃね?
>>463 スクリプトの実行者はスクリプトが実行されているシステムのこともRubyのことも知っていて
スクリプトを適宜修正可能であるというモデルを暗黙に設定してるのは確か
“お客様”であるという前提はあまりしてないはず
465 :
445 :2009/09/28(月) 18:55:19
>>447 見た上で言ってるんだが?
この点ではPythonは完璧。
>UnicodeはUTF-8を含むので違う 概念は実装を含むと思うけど 仕様と実装のほうがよかった? たとえばRubyと言えばMRIを含む(指す)ように まあ一言なんて所詮はたとえ話みたいなもんだw
>>464 例外出たら自分の環境に合わせて修正してもらえればいいんじゃね、というスタンスではある
rescue もいわゆるバージョン差異を埋めるために使うものじゃないわけでさ
今日の名言 概 念 は 実 装 を 含 む
Yugui△
yugui さん かっく 足りねえぞおい
セクシーと言ったほうが喜ぶんじゃまいかい?
>>473 さんかっけー
(ボケだったらスルーしてくれ)
しかしいい写真だな
かっけー、のはいいとして、previewとか全然出てないんだけどどうなったんすか?
>>476 RubyWorld conf での議論を受けて、スケジュール切り直し。
後日開発者会議で決定。
RubySpec全パスを目指すみたい。[ruby-core 25707]
上のメールで触れられている開発者会議は10月13日にダイビルで開催。
[ruby-dev:39404][ruby-core:25841]
裸の王様ごっこはいつ終わるのですか?
>>478 自分の妄想に正面から向き合う勇気を持てよ
>>471 関連記事で気づいたんだが、富田倫生の「パソコン創世記」
@itが連載形式で掲載してたんだな。
全文、青空文庫で読めるわけだが。
おお、クレヨンしんちゃんなんかと一緒ですな
島根県マジだな
負けるな取烏
そして久しぶりにMatzにっきが更新された
こっそりここ見てるんじゃないのか?w
日記の内容的にそれはないと思うけど。
488 :
デフォルトの名無しさん :2009/10/01(木) 00:09:23
プログラミング言語で村おこしとかすげえな 過疎で悩んでる地域はIT会社の誘致とかしろよ ほとんどオンラインで出来るから場所は関係ないしな
ほとんどオンラインでできるなら会社の社屋は都会にあったほうが便利 これまめちしきな
家賃
>>491 お前都会でしかネット使ったことないだろ
NTTの支店があるような市でならうまくいく可能性はあるな 田舎は下手すりゃISDNだったりするからある程度都会だったほうがいいのは事実 社員集まれと言ったときにJRの駅がないとか非常に困る
じゃあ間をとって地方都市の中心市街だな。 別に松江でいいじゃん。
だからJRの駅がないと駄目だって言ってんだろ
おまえJRってどういう意味で使ってるの? 旅行でビジネスホテル使ってもかなりブロードバンド引いてあるし 家の中にばっかいないで外に出ろよ
>>496 お前こそJRをどういう意味で使ってるんだ
駅だぞ? ブロードバンドが引いてあろうが何だろうが
交通手段が無いところでIT会社が成長するのは難しすぎる
松江ってJRの駅ないの?
普通に山陰本線だが、どうも
>>498 は新幹線とでも言いたいのではないかという気がして仕方がない
松江厨が空気読めないレスをしております
松江にJRの駅があるなら 初めから会話が成り立ってないな
一畑も忘れんなよ
セリーヌの金ピカ自転車に乗ってくるので交通手段の問題はありません
日本にJRの駅がない県庁所在地はないだろ… と思ったら、那覇があったか。
ちょっと質問 Ruby1.8 と Ruby1.9 で併用するスクリプトで文字列のエンコーディングの変換をしたいんだけども Ruby1.9 では String#encode を使ったほうがいい? 共通で使えるから Iconv.conv でいいやーとかはダメ?
隣の机でもメールで会話してるアフォPGも居るから、 距離は微妙だな。 客は大都市圏のほうが多いから、営業と打ち合わせは大都市に事務所無いとコスト掛かるな。
>>508 併用かつ常に同じiconv実装を使える保証があるならIconvでいいと思う。
保証が無くて、CP932やCP51932くらいしか使わないのだったらNKFの方がよい。
どちらでもないなら場合によるかなぁ。
1.9でYAML.loadしたらハッシュはYAMLに書いた順番通りになりますか?
>>510 そういえば1.8の$KCODEって
sはCP932,eはCP51932を期待していいもんなんだろうか
なんとなくWindowsは期待していい気がするけど他OSだと微妙な気がしてきた
Ruby1.9 で日本語文字列を inspect するとコンソールのエンコーディングによっては前時代的に表示が崩れるよね Ruby1.8 の時より退化してるような気がしなくもないんだが、なんか超賢い irb の設定とかある?
>>513 $ irb1.9
irb> p "うんこ".encode('UTF-8')
"うんこ"
irb> p "うんこ".encode('Shift_JIS')
"????"
irb> p "うんこ".encode('EUC-JP')
"????"
$
$ irb1.9 -Eutf-8
irb> p "うんこ".encode('UTF-8')
"うんこ"
irb> p "うんこ".encode('Shift_JIS')
"うんこ"
irb> p "うんこ".encode('EUC-JP')
"うんこ"
$stdout の external encoding を irb 内で直接切り替えてもよさそうだが方法がよくわからんかった
新時代的に日本語文字列はUTF-8しか使わないというのでどうだろうか
defaukt_external の正しそうな使用法を見た気がする irb で実行されたファイル保存なんかが UTF-8 に切り替わる危険性はあるが
$stdin.set_encoding("locale") $stdout.set_encoding("locale", undef: :replace, invalid: :replace) $stderr.set_encoding("locale", undef: :replace, invalid: :replace)
ぎゃー set_encoding なんて組み込みクラスにあるのか メソッド名変えないと
例外が起こらない begen ... rescue ... end は処理遅いですか? begin ... end で括っただけでやや重いとかそういうことってある?
初心者スレじゃないんだしまず自分でベンチ取ってみろよw たぶん、その重さが気になる状況ならRuby自体やめろっていう程度だと思う
>>518 自作メソッドが微妙に似た機能で全く同じ名前だと困るよね
あんだば入れるかどうかって何か決まりがあるの?
RubyであえてHigh Performance RubyやEffective Rubyみたいな本を読みたい もう出てたりする?
rubyのメソッド名で単語区切りに入れる 定数(マジックナンバー的な意味での)も同様 camelCaseは使わん
メソッドは小文字でアンダースコア区切り クラス・モジュールはUpperCamel それ以外の定数は大文字でアンダースコア区切り 例外はString()とかInteger()とか
>>523 ホットスポットをCモジュールに切り出せ、以上、で終わってしまうので、
そういう本は出ない。てかEffectiveじゃなくてEfficient?
るびまでパフォーマンスチューニングねたいっぱいやってたじゃん
ライブラリ名は _ と - か混在してカオス状態
もうだめかもわからんね 5冊も参考書買ったのに
>>529 Rubyの標準添付ライブラリを見てくれていれば
- (ハイフン)が標準だということは分かっただろうに・・・
wx_sugar、お前のことだ
個人的は(C++ みたいに)言語の変数に使える記号のみで ライブラリ名も命名されてる方が一貫性があって好み というわけで、最近書くRubyライブラリ名はみなアンダースコア 区切りに統一した
>>532 頼むからやめてくれ
もうこれ以上、require書くときに「ハイフンだっけアンダースコアだっけ」とか悩みたくない
いるよね個人的趣味でデファクトスタンダード破る奴
>>532 まっとうな判断だと思う
どうせクラス名・メソッド名になればハイフンは使えないんだし、無意味な脳内変換が必要になるだけ
統一されていないのが一番厄介なんだよな 空気呼んでくれ
C の #include 同様 require の引数も所詮ファイル名なんだから、どちらでも気にならんな。
脳味噌が欠乏している人はそんなことでも気になるんだよ
Rails脳だとActiveSupportの自動ロード(*)に毒されているので アンダースコアを使う。 const_missing 時に Foo::BarBaz → foo/bar_baz と変換した 名前で require する機構がある。
いるよね個人的趣味でデファクトスタンダード破る奴
・ require がハイフンとアンダースコアと空白を同一視すべきだった ・ ActiveSupport はハイフンに変換すべき ・ 必要なのはファイルではなくクラスやモジュールである以上ファイル名に依存するのが糞 ・ マニュアル読まずにライブラリ使おうとすること自体が間違い どれか選ぶよろし
require 'a と書いた時点でディレクトリ走査して 候補を表示するサポートがあってもいいかな、と思うことはちらっとある
どれでも良「かった」んだよ その中からRubyはハイフンを選んだわけで 娘を人質にとられてるとかそういう事情があるのでない限り 利便性を捨てる理由がないのならハイフンにするのが無難
教祖がハイフンと逝ったから、信者の皆さんはハイフンを使わないと地獄に堕ちるだけ。
なんかもう目眩がしてきた all_load_paths-c.yaml
>>535 さんの作るライブラリのクラス名はハイフン区切りなんですねさすがです
アンスコの間違いでは
Ruby歴はけっこう長いんだけど低いレベルで安定しちゃってて 全然進歩がない。それで困ってないといえば困ってないんだけど。 開くたびに違うTIPSや小ネタ表示してくれるサイトとかってないですか?
困るような問題にぶつかれ 困るような問題が無いならそれでいいじゃないか 以上
>>549 レシピブックをひととおり読んでみるとか
初心者スレ見てると、このぐらい簡単だろと回答してみようにも意外ときれいに書けなかったり これ初心者に役立つのか?とは思いつつも盲点をつかれたような回答がついたりと 為になることもままある さっぱりなときも多いけどw それはともかく他人のコード読みまくるのが一番だと思うよ
そこまで労力かけたくないって話だろう
自分が使うライブラリのコード読むだけでずいぶん効果あるんだけどな それもブラックボックスで困らないというなら、その程度で身の丈に合ってるんじゃね
アンテナ作りたいんですけどhtmlパーサっぽいのないですか ぐちゃぐちゃのhtml渡してもパースエラー吐かずにがんばってくれるのがいいです
ぐぐれ それすらできんのでは成功はない
最初にLINT噛ませて成形してパーサに喰わせればいいんじゃね。 方言を標準語に直して字句解析すればおk。
そのへんは、firefox (かIE)に渡すのが一番だという結論になってたはず
>>556 htmlsplit
>>557 ライブラリに関しては、探しても見つけられない
(or 良くないものを見つけて満足してしまう)
ことがよくあるので、人に聞くべきだと思う
Ruby 1.9.2 のリリース延期かよ・・・ まあ、分かっちゃいたけど下手したらさらに1年後くらいになりそうだな
リリース延期てなんかあったの?
>>562 延期というかリスケ。[ruby-core:25707]
決まるのは10/13の会合で。[ruby-core:25841]
うんこでもいいから毎年一回だしてほしいなあ
previewとか1.7系みたいなのならいくら出してもかまわないけど 正式版でうんこは臭うからやめてくれ
正式版でもどうせたいしたことないし リリースが質を高めるモチベーションになってるからさ
matzにっきが再開?
しかし1.9系は1.9.2からが本番だから 1.9.2はなるべく早く出して欲しいなぁ
バージョン番号が1増えたからといってどうかどうにかなるもんでもあんめえ 「それ」はおそらく1.9.1でも充分に行えるはずだし、そうしておくべき あと RUBY_VERSION >= '1.9.0' の問題は公式にコメントなりガイドなりあったほうがええぞ
>>569 ここに書いて解決する可能性は低いと思う
>>569 どうにかなるんだよMerbユーザにとっては
1.9.2を待ってる人は相当多いと思う
再利用型メソッド上書きにまつわるエトセトラと同じような問題だと思ってる > RUBY_VERSION >= '1.9.0' alias _old_hoge hoge def hoge old = _old_hoge ... end だとまずい、みたいな
まー、 「提供されてるそのまんまのはずの機能を使ってごく素直に記述して“きちんと動作する”のに怒られる」 という点では似ていなくもない
>>569 結局「バージョン番号分岐でもdefined?でもどっちでもいい」って方向で
まとまったんじゃなかったけ
rubyなんて1.68で充分だろ
>>574 各々で動作しない場合の理由の例示というのはあってもいいかな、と思う
動作しない場合を踏まえた上で利用するのは全く問題あんめえ
defined?(Encoding) は Module::Encoding が include されてると誤爆するから defined?(::Encoding) と書け、とか
str.respond.to?(:force_encoding) は ::Encoding の存在を保証しないから defined?(::Encoding) にしとけ、みたいな
RUBY_VERSION が駄目な理由は結局明示されなかったが
つか、 Ruby 1.9.1 を名乗っておきながら特定の標準ライブラリが動作しないなんてのは スクリプト作者が考慮することじゃない気がしてならない そのプラットフォームで Ruby を使用する利用者側が、各々の環境における代替手段を追記すべき
現時点で1.9系専用の(文法ではなく)機能を要求するからといってバージョンに依存した判定をすると 例えば1.8系にコンパチの機能がついて要件を満たした時に、無駄に1.9系を要求することになるから微妙だという話じゃなかったっけ あとはMRI以外の実装がバージョン番号と機能が一致しないんじゃないかって話とか そのへんは事情がよくわかんないけど
現時点では 1.9.1 と 1.8.7 と 1.8.6 しかないのにね 「1.8.8.ではどうなるかわからないだろ」なんてのは今議論されてもそいつが困るだけのはずなのに
RUBY_VERSION のいいとこは、でかい if 文で括れるところだろ 機能 A は存在するが機能 B は存在しない、というような複雑な状況を無視できる 本当に respod_to? と defined? を使っていったら可読性は限界まで下がるぞ
Ruby.has_encoding? みたいなのがあればよかったんでないか
RUBY_VERSIONよりdefined?がいいという理由は
1.
>>580 2. 「Encodingが必要だ」という意図が分かりやすい
の二つが今まで挙がってたはず
両方とも一長一短あるし、俺はどっちでもいいと思うよ
>>582 Encoding関連以外に、if文で分岐しないといけないような機能ってないのでは
Encoding は String クラスと Encoding クラスの両方に影響して なおかつ iconv とかも必要として実装依存だから例外中の例外とも言える でも使用前に返り値が Enumerable かどうか確かめるとかいうのはめんどいぬ
Object#tap 使うたびに Object.new.respond_to?(:tap) を調べるのはやだなあ
tap使ったスクリプト書く度にバージョンチェックするのもいやだぞw そういうのは例外で動作止まるのを期待してノーチェックでいいだろ
>>586 tap程度なら、ない環境を検出したら自前の定義を提供すればいい。
if RUBY_VERSION >= '1.9.0' require '1.9/main.rb' else require '1.8/main.rb' end これが許されざるよなのが辛い 実質2バージョンを並行管理しないといけないのも辛いが
実際問題としては「Ruby1.9ぽく書きたい」のでない限り、併用スクリプトでは問題にならないはず 文字列とIOだけは別途処理しないとどうにもならないが
>>583 だね。どんなフューチャーがサポートされてるか、って観点だとそれが一番きれい。
当面はそういうgemを作って凌ぐとして、
次の1.9系、1.8系リリースで入らんもんかね。
>>591 今入っても、もう遅いだろう
動く環境と動かない環境があるのでは……
というか、もし1.9.1の時点でhas_encoding?が入っていたとしても
そのメソッドは1.8.0や1.6.xでは動かないのだから
どちらにしても、あまり役に立たないと思う
フューチャーだから未来のために入れるんじゃないのか
フィーチャー?
ときどき futuring 誰それ って書いてあるのを見るとかわいそうに思う。
バージョンチェックはアフォっぽい所は有るな。 バージョンチェック部分の記述だけで10バージョンぐらい比較してたりしてw
いまさらC言語が30年前に解決している問題で揉めるなんて…
「どんな未来がサポートされているか」 なんだかかっこいいな。
autoconf系だと、小さなプログラムをコンパイルして 期待どおりの動作をするか(エラーが出ず、出力も想定どおりか) チェックしてたりするな。
>>599 1.8 と 1.9 ではインストールされるファイルが違うという rubygem は前どっかで見た
面倒だからほとんど行われてないけど
まあこのスレの論理で言うとバージョンでの分岐や
ライブラリインストール時の環境固定でチェックするなんてことは
あってはならないわけだが(w
あくまで実行時にすべてがチェックされるべきであり
どっちかってと 「メソッドの存在は一緒だし返り値のクラスも同じなのだが返り値の具体値が 1.9 と 1.8 では違う」 というような場合に、非 RUBY_VERSION 派はどう書くのか知りたい
具体的には?
ちょっと考えてたんだが、なんだろうね String#inspect あたりは違うかもしれん defind?(::Encoding) の範疇かどうかがちと微妙
604 :
591 :2009/10/05(月) 11:35:02
>>594 あばばばば
W-ZERO3から入力したから!!入力補完とバック・トゥ・ザ・フューチャーが悪いんや!!!
(顔を真っ赤にしながら)
で、gemについては
・どうにかしてある機能が実行環境下で存在するか判定
・機能の有無をFeature.has?(Synbol)とかそんな感じでチェックできるように
なんてgemを作っておいて、機能の有無で処理を切り分けたい側は
このgemに依存関係を与えておくと。
とはいえ、俺も文字コード関連のほかにはFiberぐらいしか
嬉しいところが思いつかないけどね。
動作チェックした環境をコメントに書いとくだけでいいよ
>>602 Class#name。
[1.8] Class.new.name # => ""
[1.9] Class.new.name # => nil
俺も
>>584 に同意で、
>>601 みたいなケースがあったなら素直にバージョン判定でいいじゃない
そこでdefine?使う理由がないし、
>>603 三行目はdefine?派の主張ねじまがってないか?w
ただライブラリなりアプリなりのユーザが制御する方法を用意すれば
判定方法にこだわる必要なくなるんじゃないかとずっと考えてた
# 1.9の場合
require 'hogelib'
# 1.8の場合
require 'hogelib/compat-1.8'
require 'hogelib'
1.9指定もなにかrequireさせて、単体呼び出しは自動判定というインターフェイスのほうがいいのかな?
「自動判定手段に納得いかないなら手動ないし自作コードで判定しろよ」と言えるようになる
requireするファイルの中身は依存コードをモジュール化して切り出す方が理想っぽいけど
めんどくさいしフラグ立てておけば十分だろうw
COMPAT_1.8 = true
ならsite_ruby/1.8とsite_ruby/1.9.1にインストールしろよ。
1.8は捨てろ。 1.8はもうダメだ。終わった。 1.9で動かないrubyプログラムは捨てろ。書き直せ。
走れ描け走れ走れ
mswin32でユニコードファイル名扱えるようにしておくれ。
>>613 文字列の文字エンコードとファイルIOが、互換性保ちつつ書くのがとてもめんどくさいレベル
1.8のほうが普段遣いの範囲では直感的なので、1.8で慣れてから1.9に移行するのがベスト
そんなにエンコーディング関係にはまるってのは「普段遣い」の範囲が常人とはかけ離れてる説
>>609 > # 1.8の場合
> require 'hogelib/compat-1.8'
こんなマネをするくらいなら、ということだよ。
なんだか意味不明だけど、1.9でもclass Stringは未だにutf8じゃないってこと? ところでjava, c#とおなじで、文字列用クラスで内部エンコードがutf16のクラスってのはいつ組み込みクラスになるんですか?
うんにゃ、バイト列+エンコーディング情報 エンコーディング情報を文字列オブジェクトごとに保持してる Shift_JISの文字列 + UTF-8の文字列 はエラー /Shift_JISの日本語/ =~ UTF-8の文字列 もエラー
>>617 他言語対応には大きく2通りのアプローチがあって、
・巨大な文字集合を扱える一つの内部表現方式を抱えて
外部表現との入出力は都度変換/逆変換する
(内部表現は普通unicode系の何か)
・ある文字コードの取り扱い(文字の区切りとかマッチングとか)を
文字コードごとに用意しておいてそのとき扱ってる文字コードで
処理を切り替える
という感じ。
それぞれに一長一短があり、
前者だとJavaやWindows
後者だと主に昔からのUNIXが採用している。
Ruby1.9は後者を採用した。
詳しくありがとうございます。 エンコードを持つ方式なんですか。 rubyはもともとregexpが主要機能なんで、内部はutf8で統一の方がいいと思いますけど、なんか事情があるんでしょうね。 それと文字処理するなら、メモリなどから見て非効率でもエンコードを統一しないと出来ませんよ。 処理とはあまり関係ないところについて時間をかけて無駄に脳みそ使いたくないでしょ。
あともう一つお聞きしたいんですけど、ほぼPOSIX互換の言語はruby以外にありますか? 言語上、ライブラリでスレッドやパイプ、IOを持ってて、POSIXレベルまで充実しているってことです。
Rubyこそが唯一あなたにふさわしい言語です。 だから他の言語にこないでね。
>>620 POSIXという単語を知っててCSIを知らないのがよくわからないけど。
ある文字コードでの文字列処理関連のプリミティブな処理を自力で実装して
処理系に教えてやれば、どんどん対応文字コードを増やしていけるのがCSI。
この場合実装のために汗を流す人間と受益者がたいてい一致し、
余所に迷惑をかけることなく目的を達成できたので
昔はこの方法が主流だった。
あれ? 昔rubyを触ったときにあるブログで聞いたんですけど、rubyは(処理が遅くても)もともともposix互換あたりを目標に作ってたんじゃないですか? 実際現在では、OSという概念が既にハードから分離されてますし・・・・
言語の用語として「POSIX互換」なんて用語は知らないんだが。 (UNIX-like OSのシステムコールについてならわかるのだが) 「POSIX互換」てなんのことだか説明してくれ。
>>623 というよりも、普通にjavaとかjsとか使えるんでどうでもいいですけど。
ただそれらは電卓代わりとかちょっと数値計算(四元数とかほかでサポートがあまりないもの)で使うとなるとちょっと面倒なんで。
もともとCに慣れてるからやはりmaximaとかmathematicaとか構造化言語か純粋OOPに基づいた設計じゃない言語は扱いにくく、あんまりです。
perlも取って付けた無駄が多くてあんまり。
>>625 言語上、ライブラリでスレッドやパイプ、IOを持ってて、POSIXレベルまで充実しているってことです。
実際現在では、OSという概念が既にハードから分離されてますし・・・・
>>625 もう少し脳みををやわらかくしたほうがいいですよ。
あなたは未だに「Web 0.91」ですか?w
脳味噌がほおむぺえじであばばばばーでふにゃんふにゃんの人がいるようでつね。
>>627 Rubyはライブラリでスレッドやパイプ、IOを持ってて、POSIXレベルまで充実していてうらやましいな
PerlやPythonはスレッドという概念が存在せずプロセス一辺倒だし
IPCは全部メッセージングだ
しかも作者がUNIX嫌いでWindowsに傾倒してしまっている
ここらへんはDebian使いのMatz(Rubyの作者)とは大きな違いだ
だから悪いことは言わない。Rubyにしとけ
>>630 まあ簡単には調べてみたんですけど、やっぱりrubyしかないんですね・・・
あとはjava, dotnetのVMものですけど。
まっつさんはもともとPOSIX(と機能上)互換を目指してライブラリを充実していったという話しなんですけど。
ルビーですけど、個人的にはパイソンのタプル型(イミュータブル型)があれば言うことないと思います。
いま大黒なんとかのPDFを読み返しているんですが、彼の文章は非常に読み難いので他によいガイドというか言語解説レファレンスないですか?
ruby-doc.orgも使ってますが日本語がいいです。
ハチドリ本でいいんじゃないの?
yugui本はハチドリじゃなかった、キリンだっけ
〃´⌒ヽ . , -―― メ/_´⌒ヽ / / ̄ ´ヽ ヽ . / , /// ト. ! 、 丶ヽ l / /(((リ从 リノ)) ' | i l . ヽノ .V l l ,=! l /// ///l l ねんがんのキリン本をてにいれたぞ! l ヾ! ', l ヽ_フ l l | ヽヽヽ // l ヾ≧ , __ , イ〃 li (´`)l {ニ0ニ}、 |_"____ li /l, l└ タl」/l´ `l リヽ/ l l__ ./ |_________| ,/ L__[]っ / / ::::::::/ ヽ、 :: ::: ::: ::::::::::::::::::::::::::::::::: :::::/ lハ ::: : :: :::::::::: ::::::::::::::::::::::::::::: ::::l l /ノリ ::: : :: ::::::::::: ::::::::::::::::::::::::::::: :::| /) / ::: : :: ::::::::: ::::::::::::::::::::::::::::: ::l /イ/| . :. :. .:: : :: :: :::::::: : :::::::::::::::::: / / ||/ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 7l:::::::::::::::::::: i /_,/i!/ Learning Ruby / l:::::::::::::::: l 人 / Michael Fitzgerald / /:::::::::::::::: l / /⌒ヽ ハ,,ハ / /:::::::::::::::: l /il | ) ( ゚ω゚ ) / /:::::::::::::::: ll l i! `ー、\___ n__/_/:::::::::::::::: lヽ l |\. \ /⌒〉::::::::::::::
>>632-633 rubyは他の言語と文法・リテラルが結構似ていて、突飛なruby独自の概念があるわけではないので
実際は充実したクラスAPIのレファレンスがあればいいんですけど。
もともと他の言語を使えるわけで、下らない解説とか主義思想・小話なんかよりも各APIの典型的な使い方だけでいいですよ。
その点JAVA(英語サイト)の方が勉強しやすいし、習得も早いんじゃないですか。
英語でしたがやっぱりruby-docで我慢します。
いや、別に彼がこのスレ住人の知的誠実さを試しているわけではないので ソーカル事件とは根本的に違うだろう
>>639 だからあえてボグダノフ事件の方を貼ってるのでは
質問者が誠実でないことだけは明らかだしな。
642 :
デフォルトの名無しさん :2009/10/06(火) 10:50:06
. 1. HTML で検索した結果 1〜10件目 / 約5,040,000,000件 . 2. PHP で検索した結果 1〜10件目 / 約2,970,000,000件 . 3. Java...... で検索した結果 1〜10件目 / 約 835,000,000件 . 4. Forth. で検索した結果 1〜10件目 / 約 323,000,000件 . 5. Ruby.. で検索した結果 1〜10件目 / 約 275,000,000件 . 6. perl..... で検索した結果 1〜10件目 / 約 245,000,000件 . 7. Python... で検索した結果 1〜10件目 / 約 204,000,000件 . 8. pascal... で検索した結果 1〜10件目 / 約 170,000,000件 . 9. Delphi で検索した結果 1〜10件目 / 約 127,000,000件 10. VisualBasic...で検索した結果 1〜10件目 / 約 121,000,000件 11. lisp... で検索した結果 1〜10件目 / 約. 26,700,000件 12. fortran で検索した結果 1〜10件目 / 約. 21,300,000件 13. COBOL で検索した結果 1〜10件目 / 約. 18,500,000件 14. HSP で検索した結果 1〜10件目 / 約. 12,300,000件 15. FreeBasic.. で検索した結果 1〜10件目 / 約 6,320,000件 16. Tcl/Tk. で検索した結果 1〜10件目 / 約 4,940,000件 17. QBasic で検索した結果 1〜10件目 / 約 4,190,000件 18. VisualC.... で検索した結果 1〜10件目 / 約 1,360,000件 19. DarkBASIC. で検索した結果 1〜10件目 / 約 1,320,000件 20. BasicStudio で検索した結果 1〜10件目 / 約 304,000件 21. N88basic. で検索した結果 1〜10件目 / 約 215,000件 22. f-basic で検索した結果 1〜10件目 / 約 109,000件 23. ActiveBasic で検索した結果 1〜10件目 / 約. 89,800件 24. 99BASIC.... で検索した結果 1〜10件目 / 約. 11,500件 3Dprogramming で検索した結果 1〜10件目 / 約794,000件 2Dprogramming で検索した結果 1〜10件目 / 約. 57,400件 intel で検索した結果 1〜10件目 / 約729,000,000件 amd で検索した結果 1〜10件目 / 約355,000,000件
たとえばforthは英語の副詞でもあったりするけど、考慮してるのかな。
namespaceが違うとはいえRubyもネット検索しやすい独自の名前にすりゃよかったのに
Rubyはまだマシだろ 一番検索しづらいのはC
いやそれは単純に検索エンジン側の不手際だから 「プログラミング言語のほうのC」「プログラミング言語のほうのRuby」と指定して プログラミング言語のほうの結果だけを返さない検索エンジンのほうが一方的に悪い どうやって実現するのかまでは知らん
単一ワードで検索する方が悪いだろww
何に期待して「C」と検索するんだ
Cは知ってても、それだけじゃ困るからだろ
単語レベルで意味が混ざるIconとかのほうが悲惨じゃなかろうか
Perlみたいに英語の単語にないつづりがいいね
でも本当は、Pearl にしたかったんだよね。
そう 既に Pearl という言語があったんで、仕方なく Perl にしただけ 唯一性の意図があったわけでは全くない 時々勘違いして痛いこと言う人がいるのがたいへん味わい深い
gloria -> pearl -> perl
656 :
デフォルトの名無しさん :2009/10/07(水) 05:37:29
るびまって今どうなってるのかな? 昨夜(おとといの夜)読んでて途中で見れなくなったんだけど、 30時間ちかくたった今もまだ。 頼みの綱のつもりでいた記事あったから、非常に今あせってるw
るびまはマネタイズされてないから時々止まります 鯖代捻出方法の案があれば教えてあげるとみんなよろコンブ
そんな理由かいw せめてブラウザのキャッシュされるようになってれば・・・
あれってなんでだろうね 確かに訂正前の不正確情報が残ると不便だが、 ぶっちゃけそんな事後更新されてるわけでもないだろうに オフラインモードで読めないことのほうが遥かに面倒
23号までなら緊急避難的にarchive.orgで代用可
ルビィ本とかのアフィでも張って鯖代稼げば? ググルアフィぐらいじゃマイナー過ぎて儲からないだろうけど。
そもそもいくら必要なんだ?ん?
富豪的サーバ運営というやつですね
富豪のワリには風呂に入ってないから異様に臭いw
自己紹介乙
自己紹介乙wwwwwww
頭がすこしよわい人は、「相手の心の持ちよう」を想像する能力がなくて、 罵倒の際に「相手が言われていやだと思うこと」ではなく、 「自分が言われていやなこと」をベースに罵倒文句を考えるので 結果として自分自身のコンプレックスを大声で宣伝することになってしまうらしい。 これがいわゆる「馬鹿の罵倒は自己紹介」のメカニズムなんだとか。
自己紹介乙wwwwwww
全米が噴いた( ´,_ゝ`)プッ
連投するから馬鹿がバレバレw
ジサクジエンバレバレw
ハード障害だそうだ。もうちょい待て。
>>664 は二人の増井氏のことを知らないと分からないネタだな。
1.9の正規表現で名前つきキャプチャが使えるようになったけど 無名キャプチャと名前つきキャプチャが同時に使用できないのは使いにくいと思う 名前つきキャプチャが使われると、無名キャプチャは無効になってしまう /(1)(2)(3)4/.match "1234" # => #<MatchData "1234" 1:"1" 2:"2" 3:"3"> /(1)(2)(3)(?<four>4)/.match "1234" # => #<MatchData "1234" four:"4"> Perlみたいに同時使用できた方がいいのに >perl -e "'1234' =~ /(1)(2)(3)(?<four>4)/;print qq!$1 $2 $3 $4 $+{four}!" 1 2 3 4 4 よく知らないが PythonもPerlと同じで同時に使用できるっぽい 鬼車はオプション選択でどちらの動作でも可能みたい
それは直した方がよいね
これはひどい
()が(?:)等価になるのだとしたら、ちょっとうれしいような、まぎらわしいような
しかし名前付キャプチャって、書くときはいいが読むときはなんか死にそうになるような気がする ただでさえ可読性が高いとは言えない正規表現がさらに膨張するわけだし、それなら括弧を一つずつ数えてもいいかなと 直らなくてもいいや
そういえば、Rubyのライセンスって結局どうなるの? ruby-talk見ても、議論してるのは分かるんだけど 最終的にどうなったのか全く分からん そもそもまだ結論が出てない? あと、るりま(新リファレンス)のライセンスも気になる
るりまは CC 3.0 BY ってことで話を進めてるっぽい。 12月が目処だと。
682 :
デフォルトの名無しさん :2009/10/09(金) 00:04:03
>>680 何、ruby-talkでやってんの?
リンクきぼん
printfは統一感あるけど、regexpは後付けばかりで混沌としてるからruby独自路線でrexpepのフォーマットを再定義して欲しい。 \bとかもそうだけど、とくにperlがgnuのころからあったフォーマットをセンスもなく勝手拡張したせいでもう取り返しがつかないからね。
$なんたら系全廃止してから考える
$:.push("a") とかかなり違和感あるけどね。 javaから見ると、そもそも 1 .+ 2 .* 3 なんかできるのはかなり嫌われるんだけど、そういうのと同じだろうと思う。 $てのはパールとの下位互換として認めて、もう必要な人用ってことで諦めたほうがいいよ。
名前つきキャプチャは他言語と同じ挙動にして欲しいな
ググったら .NET の正規表現も 同時使用できるっぽい
どうも、同時使用できるのが主流なような
というか、Rubyが異端?
>>678 正規表現のどこかに (?<x>) とか入れれば ( ) はキャプチャしなくなるね
念のために 予約語にしておくと
/(?<xxx>)/ =~ 'foobar' とかやって ローカル変数 xxx が定義されたり、変更されてしまうのを防げる
/(?<end>)/ =~ 'foobar' だとendは予約語なので変数としては定義できずに無視される
>>644 それを言うならRubyはHTMLタグ(ry
本家をLLVMに〜というのも面白そうだが。
LLVMベース、Snow LeopardのGCDサポート
Rubyのコンパイルや並列処理対応、MacRuby最新ベータ登場
http://www.atmarkit.co.jp/news/200910/08/macruby.html □YARV→LLVM
Sansonetti氏は、ネイティブコードへのコンパイル機能がないことと、
GIL(Global Interpreter Lock)の存在によって、マルチコアを生かすような
真の並列処理が難しいことを挙げている。
□並列処理
GCDは多量のタスクをキューに入れ、それを1つずつ取り出してスレッドプールで処理する
という処理モデルを抽象化したAPIを提供する。 C/C++/Objective-C向けには、ブロック
と呼ぶクロージャ風の独自文法を導入してタスクのキューイングを行う形だったが、
MacRubyではRubyのブロックが使える。
□実行時最適化のJIT(Just-in-Time)と、
事前コンパイルのAOT(Ahead-of-Time)の双方をサポート
AppleがGCとBlockをC1Xに提案
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1370.pdf
1.9って、ひょっとして今後おおきな変更はいる?さっきProgramming Ruby 1.9という本を買ってしまったのだが……
1.9.1は「今後大きな変更を入れないためのリリース」という位置づけ でもある(訳: だからライブラリ作者は将来の変更を心配せず対応を始めろ) ので、ドラスティックな変更は入らないと思う。 # 100年後くらいに2.0が本当に出る段になったらそりゃ変るだろうけど。
やだ…なんか頼もしいレスがついてる…ウホッ
693 :
デフォルトの名無しさん :2009/10/12(月) 12:04:25
初心者な質問じゃないかと思うのですが、dbiのソースを見ているのですが、いきなりPGconnというオブジェクトが出てきます。 dbiのソースをgrepしても見つかりません。どこに定義があるのかどうやれば分かるでしょうか? dbd-pg-0.3.8/lib/dbd/pg/database.rb: @connection = PGconn.new(hash['host'], hash['port'], こんな感じで急に出てきます。
694 :
デフォルトの名無しさん :2009/10/12(月) 12:20:05
postgresのコネクタだよ lib/ruby以下をgrepしてごらん
ふときになった いま rubinius とかどうなってん?
Rubiniusか。LLVMつかって〜とかいわれてもLLVMのビルドだりぃ。
TCPSocketで受信バッファの中身をすべて読み出すメソッドみたいなのってありますか?(HTTPのリクエストの取得でテスト中) readってやると止まってしまいます。eachで"\r\n"を終点に読み出すと大丈夫ですがあまりスマートではないので・・・
オラでプログラミング言語Ruby買ったらPerlのシールが付いてきた。 またまたご冗談を…
>>701 考えてやってる人は出来るだけモデル側にロジックを書くから、
問題はRailsやりはじめるまでMVCを知らなかったような人かな。
CoCだから、やろうと思えばなんでも出来るんだし Railsそのものの批判は的外れ的な。書き手の問題だろう。 そもそもruby自体がopen classだからほぼやりたい放題だし。 世界がガチガチのMVCで出来てるならJavaでもC++ででも書けばいい。 問題はそうじゃないことが沢山あるから、Rapid Prototypingとして Railsがもてはやされたのだと思う。まあ、あくまでRapidだから 軌道にのったら捨てられちゃうんだけどね。
704 :
デフォルトの名無しさん :2009/10/12(月) 23:21:57
>>694 ありがとうございます。grepしてみましたが、定義がないように見えます。
この中のどれかなんでしょうか?
$ find /usr/local/lib/ruby/ -type f | xargs grep PGconn
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/statement.rb: oid = @db.__blob_create(PGconn::INV_WRITE)
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/database.rb: @connection = PGconn.new(hash['host'], hash['port'], hash['options'], hash['tty'],
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/database.rb: def __blob_create(mode=PGconn::INV_READ)
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/database.rb: def __blob_open(oid, mode=PGconn::INV_READ)
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/database.rb: blob = @connection.lo_open(oid.to_i, PGconn::INV_READ)
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/database.rb: blob = @connection.lo_open(oid.to_i, PGconn::INV_WRITE)
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/type.rb: PGconn.escape_bytea(str)
/usr/local/lib/ruby/site_ruby/1.9.1/dbd/pg/type.rb: ret = PGconn.unescape_bytea(obj)
705 :
デフォルトの名無しさん :2009/10/12(月) 23:49:05
とりあえず、
>>704 の探したソースにはないよ
コードを読んでいる環境ってdbi動作しない環境だったりしない?
pgのアダプタをgemから入れてごらんよ
もしくはPGconnでぐぐってみるとかさ
>>701 元MSの設計者がSmalltalk的MVCを力説し
ルビ厨が堕落したWebアプリ的MVCでもって反論するという
なんとも変な話になってますなw
釣りタイトルだけ見て中見ずに喜んでる香具師もいそう。
redmine調子悪い?
>>701 コントローラーにロジックをがしがし書くのはアプリ制作者の問題なのに、
フレームワークに原因を求めようとしてるんだな。
1. 「手持ちの現金の増減」を記録するテーブルに「現金100円の増加」を記録
2. 「売り上げ」を記録するテーブルに「100円の売り上げ」を記録
3. 「在庫の増減」を記録するテーブルに「リンゴ1つ減少」を記録
4. 「経費の計上」を記録するテーブルに「仕入れ値60円の経費計上」を記録
これもめちゃくちゃw
なんで売った時点で仕入れデータを計上するんだよ
商品在庫に至っては会計と直接関係ないし。
この人、なんでも問題をごちゃまぜにする人なんだな。
MVCにこだわるヤツ程能書きばっか垂れて仕事ができないイメージがある
使えないコードをガシガシ書くことを仕事と称する奴もいる
712 :
デフォルトの名無しさん :2009/10/13(火) 15:02:07
Windows>>>>>>>>>>>>>>>>>>>>Ruby 何とも残酷な結果が出てしまったな
こりゃ確かにゲットーだw 徒党組んで声だけでかい馬鹿の集まり=ギーク(笑
つーか、MVCの概念を完全に理解してる人っているの? なんかどのサイトの説明見ても、微妙に違う気がする。 MMVCとPMVCの違いもよく分からんし、そもそも 今の言語ってどれもGUIと入力部分が結びついてるから ViewとControllerを完全に分離出来ないし
>>715 それのServiceってのはRoRの機能?
それともデザパタの用語?
> 今の言語ってどれもGUIと入力部分が結びついてるから > ViewとControllerを完全に分離出来ないし 意味わからん
GUIパーツがデータコンテナ兼ねてるから 分離付加ってことなら意味わかるが
馬鹿にしない〜でよ
意図を伝えきれずに捨て台詞吐いて逃亡ってのが一番みっともないパターンだな
自己紹介しなくていいよ
MVC2でしか仕事したことないJava厨か? こういう馬鹿どもが基幹系のリプレースして COBOLどころじゃないスパゲッティを残すんだろう
>>715 これが正しかったらRubyは完璧じゃないかwww
>MMVCとPMVCの違いもよく分からん とかいってる人の台詞が >今の言語ってどれもGUIと入力部分が結びついてるから >ViewとControllerを完全に分離出来ないし なんだからよくわかってないだけでしょ。 VBや初期のSmalltalkみたいにデフォルトのGUI系APIと言語のコンセプトが 密接に絡みついてるとかならともかく普通はGUIと言語は独立なわけだし OSとかが標準として提供するGUIのコンポーネントで見た目と入力部分が云々、 と読み替えてあげても入力イベントに対するリアクションとかが ViewであるGUIコンポーネント上に取り込まれることがある、程度の指摘にしかならないし。
モデルの実装の中で、他のテーブルのモデルをいじるのは、いつも気持ち悪い。 複数テーブルのデータをいじる場合は、ActiveRecordのモデルの上に更にモデルを作るっていうのは賛成だけど、やったことがない。
ん? だから、その複合的なクラスをモデルと呼べって話じゃないのか?
呼べ、っていうかモデルに属するってことかな C -> Logic -> M でロジックはモデルに属する、と
rails厨はhelperでも使ってろよ
>>728 初期のSmalltalkと今のSmalltalkの違いが分からないので教えてください。
>>728 お前本当に馬鹿なんじゃないか?
>ViewであるGUIコンポーネント上に取り込まれることがある、程度の指摘にしかならないし。
それで十分結びつきが強いことの証明になってるじゃん
自分で何を言ってるかさえ理解できてないのか・・・
記事の反響はかなり大きかったみたいで さっそくRals捨ててASP.NETに乗り換えるところが出始めてるみたいだな。
>>735 Viewに取り込まれる程度のイベントが本当に分割して
管理しなきゃいけないものなのかって話でしょ。
インプットボックス上でキーボード上の「1」を押したとして
インプットボックス上に「1」が表示されるぐらいまでは
今時のコンポーネントは普通に行うけどそれをもって
結びつきが強いとか言ったらアホなわけで。
>>738 はぁ?こりゃ真性のキチガイだな
>Viewに取り込まれる程度のイベントが本当に分割して
>管理しなきゃいけないものなのかって話でしょ。
この発言でお前がMVCを全く理解してないが分かったわ
>今時のコンポーネントは普通に行うけどそれをもって
>結びつきが強いとか言ったらアホなわけで。
これでさらに日本語さえ理解できてないレベルの馬鹿だと
はっきり分かった
今時のコンポーネントが普通に行っているからといって
それが結びつきの強さと何の関係がある?
今時も何も関係なく、結びつきが強いという事実がそこにあるだけ
自分の間違いを指摘されたからといってファビョッちゃった典型例だな
Rails厨は巣に帰ってね
っていうか >インプットボックス上でキーボード上の「1」を押したとして >インプットボックス上に「1」が表示されるぐらいまでは こんな事書いてる時点でこいつ何も分かってない気がする
>>738 えーと、初期のSmalltalkと今のSmalltalkの違いは何ですかね結局
>>739 間違ってるのはあっちだが、よりファビョってるのはお前だな。どういうわけか。
>>743 自作自演乙っす
不利な状況になったら他人の振りっすか?www
きも
>>744 > 不利な状況になったら他人の振りっすか?www
そんなに面白いダジャレじゃないだろこれ。
ワロスw
>>742 SELFからMorphicが入ってくる以前と以後じゃね
この辺でコントローラに期待される仕事ぶりが変化してるし
よそのスレでやれ
>>748 コントローラそんなに変わってるか?
それよりモデルの方が変わってるような
スラドjは、なんかどうでもいいネタほど記事にするようになってきたなぁ。
RailsのMVCの分けかたがおかしいんだろ Djangoを見習えば解決
754 :
721 :2009/10/14(水) 23:20:25
複数テーブルの操作が気持ち悪いってことは、
トランザクションを知らないか使ったことないってことか?
それでモデルを論じるのはどうかと思うぞ
GUIがなんとかってのは結局なにいってるんだがさっぱり
プログラムソースだせよ。短いのでいいからさ。
>>716 で「今の言語〜」とあるが、そもそもRubyのGUIってなんだよ。
RailsとMVCが話の流れなのにRuby/Tkってことはないだろうな。
ソース出せないでレスいらないから
ちなみに
>>721 以降のレスはこれが初めてな
>>748 今のSmalltalkってったらVisualWorksだろjk
Squeakしかしらんのかね
>>755 余計に別物じゃんw
シンコムは黙って勉強会の場所提供だけしてりゃあいいんだよ!!
>>754 ソースとか関係ないだろ馬鹿
お前の理解力の無さを他人のせいにするな
そもそも意味がわかんねーならレスしなくていいから
VisualWorksのMVCにおけるMはアプリケーションモデルであってドメインモデルではない つまりARはMVCのMではない これ豆な
>>758 最近のソースだとちゃんとアプリケーションモデルと
ドメインモデルに分けて書いてるみたいだぜ
それ以前はプラガブルで、さらに以前は
全部詰め込んだ単一のモデルだったみたいだが
>>754 つーか、わざわざ終わった話を蒸し返すのはよせ
それともわざと荒らしたいのか?
またRuby暴威の薬が切れたのか あまりにもおかしいからすぐ分かるな
>>759 だからドメインモデルはMVCのMじゃないし、MVCとは関係ないってこと
同じくARはMVCのMじゃないし、MVCとは関係ないってこと
>>762 あーはいはい、プレゼンテーションモデルってやつでしょ?
違うかな、俺も正直その辺の理解が曖昧だ
>>763 そう
VisualWorksではアプリケーションモデルと呼んでいて、そういう名前のクラスも
ライブラリに含まれてるが、一般的な認識としてはプレゼンテーションモデルと
呼んだ方がふさわしい。MVCはMも含めてプレゼンテーションレイヤのパターン
satoshiはそこをわかってない。やつの理解こそえせMVCなんだよ
アプリケーションモデル、ドメインモデルという言葉が出てきたけど、 いわゆるデータベースのテーブルのエンティティクラスは、どちら? このふたつの言葉は Smalltalk から出てきたようだけど、 「web + DB アプリではどうなるか」と置き換えようとするのがそもそもナンセンスなのかな
なんで全部クラスにしなきゃあかんの ビジネスロジックにオブジェクト指向なんか不要
>>765 エンティティクラスというのがDBのレコードの写像程度で賢いインターフェースを持っていない
クラスのことなのであれば、どっちでもない。
初期のMVCの際の問題点として、M相当のオブジェクトが
ただのデータストア相当になっててあまり賢くない、というものがあって
RailsのARで今モデルを作るときにはARのクラス上に実装するような処理も
全部Controllerに書いてて結果として見通しが悪かった、という経緯がある。
加えてView側で発生したイベントを何から何までController上で捌いてたりすると
より寒いことになりがちだったと。
で、その後View側でControllerとのメッセージのインターフェースを考えたときに、
View側として本当にController側に伝えたいイベント以外はView側で隠蔽というか
内々に処理するようになり、ModelについてもModel内で閉じるような処理は
Model中でやるようになったので相対的にController側の責務は減っていった、という流れ。
文字コードのエラーは分かりづらいのぅ
Rubyプログラミング講座受けてぇ
MITみたいにWEBで流したりしないのかな
島根とくりゃ来年は鳥取大学だよな?
あー俺も小さいころは架空の県とか大学とか作って遊んだよ 懐かしいなあ
Rails始めようと思ってScaffoldまでしたんだけどわけワカメで とりあえずRubyから始めることにした 変数宣言いらんわ、初期化いらんわで気持ち悪い言語だ・・・
自動でやってくれてるんだよ 宣言や初期化が無いわけじゃない
Ruby が気持ち悪いなら Rails のほうは「徹底して気持ち悪い」と思う…
合わないと思うなら使わないのが吉
782 :
778 :2009/10/16(金) 23:11:14
シュミグラマでC系しかやったことないんだけど 世間一般ではこういう仕様が喜ばれるのか・・・ 俺みたいに名前付けが苦手だと苦労しそうな仕様だ
変数宣言嫌いでVBやめたおれはどうすれば
Rubyのライブラリですら、アホみたいなtypoが放置されてきたりしたことを考えれば、 あなたの不安は間違ってはないよ 言語によって、どう楽をするかではなく、どうがんばるかなんだよ
今じゃC#ですら var n = 3.14; みたいになりつつあるからな。Rubyだけが特別変態仕様ってこともない。
786 :
778 :2009/10/16(金) 23:23:45
>>785 普段はC#メインで使ってるけどC#のそれは宣言と初期化を一行にしてるだけで
Rubyみたいに明示しないのとは全然ちがうと思う
まあ、先走ってRubyとRailsの本4冊も買っちゃったから何か作れるレベルまでは
やってみようと思うけど
typoなのか区別できないからな
宣言させるだけさせてtypo素通しな言語よりマシだ おまえのことだよjavascript typoするとグローバル変数として収まるとかもうね
〜〜よりマシとか言い出す言語にまで成り下がったのかい
> 言語によって、どう楽をするかではなく、どうがんばるかなんだよ 修造かよ
ウィーッス ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (´∀`*// < RUby買ってきたぞーい ⊂二 / \_________ | ) / 【ひろゆき】/  ̄) ( <⌒<.< >/
>>785 やっぱ型推論と動的型付けの区別つかないやつって多いんだろうな。
Rubyistはアホだと思われるからお前は黙れ
結局のところjavascriptと同じくらい糞ってことなんだね
さすがにjavascriptよりはマシじゃね?
いやそんな普通のレスされても
宣言ないと書きにくい読みにくいって人は、コメントでがりがり書いておけばいいんじゃないか?
って、そうじゃないのか。
>>786 > 俺みたいに名前付けが苦手だと苦労しそうな仕様だ
この人のコードはとにかくスコープが広すぎるんじゃないかと
>>794 言語自体に興味がある人以外は、
表層的な文法と動作しか気にしないからねぇ。
それでいいんだよ そういうのを一般ユーザーが気にしないで使えるのがいい言語仕様 問題はその知識で深部仕様に突っかかってくることだが
つまんねー流れ
typoの報告を見るたびに、恐ろしい言語だなと思わずにいられないのだが。 Rubyのいい面でもあるが、そうでない面でもあるでしょ
ところで、1.9.2のリリースは結局いつになったの? 延期になった事が決まっただけで、具体的な予定は無いの?
我々は―― ただ、粛々と―― 1.9.1対応を進めるのみ――
>>807 RUBY_VERSIONで比較すると涎たらしながら否定して射精する人の対策はどうなりましたか
>>808 RUBY_VERSION で 1.9 かどうか比較して駄目な場合の例がさっぱし出てこないから許可
>>806 ないのか・・・こりゃずるずるいきそうなパターンだなぁ
てか、1.9.2のためにしなければらないことがさー
>>804 typoを防ぐための仕組みがあればいいなあとは思う
現状だと -w オプションなしでは、まともに見つけられないし
でもRubyの良いところを残しつつ、typoを防げる仕組みなんてあるの?
射精したくてもできない件
>>812 防ぐわけではないけど、変数の名前と使用回数の一覧が出せたらいいなぁとは思う
>>812 perlのuse strict; my = …; みたいの入れればいいんじゃね?
>でもRubyの良いところを残しつつ、typoを防げる仕組みなんてあるの? 誰がそんなものあると言ってんだ?
真にマジレスすると、そんな状態のスクリプトを通すテストがヘボい
テストがtypoしてたという話はあまり聞かないな あるんだろうけどさ テストは通ったけどtypo残ってたというのは恥ずかしいの
>>814 closed stream兄貴オッスオッス
>>816 Rubyでそれを入れるとすると
1. strict メソッドを呼ぶ
2. そのファイル内で、インスタンス変数・クラス変数が未定義のまま参照されたら
警告ではなく例外を出す
という感じになるのかな
use_foo_process if @foo 涙目
そういや、未定義のインスタンス変数が nil 返すのはなんで? それとは対照的に未定義のクラス変数が例外出すのはなんで?
仕様です
我らの武器は三つ! オブジェクト指向! ガーベジコレクション! 教祖への妄信! それから素敵な赤い色! ……テンポ悪いな。
タダ−ン!! ... nobody expects the Spanish Inquisition!
なぜ唐突にそんなおっホイねたをw
元ネタ知らないのに大笑いしてしまった
モンティパイソンは"Communist Quiz"も応用が利くよね。 マルクス => RMS レーニン => ケイ チェ => PG 毛沢東 => Matz とかでサッカーネタ => M$ APIネタ にすればいろいろ遊べそう。
ゲートから12人のYuguiさんが一斉に出馬、 先頭YuguiさんYuguiさん、一馬身遅れてYuguiさん、続いてYuguiさん、 追い上げるYuguiさん、とかそういう
ひげの山男にとって2ちゃんの言葉は難しすぎるらしい
Yuguiさんって付き合ってる人いるの?
>>834 聞かなきゃわからないってことはお前ここは初めてか?力抜けよ
yes
女だったのか。 ネカマだと思ってた。
839 :
デフォルトの名無しさん :2009/10/19(月) 23:06:16
生物学的には男
840 :
デフォルトの名無しさん :2009/10/19(月) 23:21:01
オカマだよ
MtF-TSってプロフィールに書いてるよね。
まあ、気持ち悪くてもがまんして下さい。
MtF-TSなので男とも女ともオカマとも言い難い 「MtF-TSです」としか言えない
おれは性的にはヘテロだけど、他の面でマイノリティで不自由な思いしているので、なんか同情する。
yuguiさんを称えるときに「抱かれてもいい」と書くべきか「掘られてもいい」と書くべきかはたまに悩む
抱かれてもいい:女が男相手に、もしくは女が女相手に
掘られてもいい:男が男相手に
>>846 よ、お前もかw
男が女相手に受け身でってなんて言えばいいんだろうな
なんだかね
Rubyの話題でも常軌を逸してるレスをちらほら見るが 人間的にもクソが多いようだな
クソは言いすぎ。病気なんだぞ。
Yuguiさんのブログ読めよ。論理的で読み易い。 こんなクソの吹きだまりより遥かにためになるから。
詳細不明のMtFTSは性に関するネタを振り難くて困る いやそんなネタ詳細不明の他人にそもそも振るなという話ではあるんだが
まあrubyが、gayでも使ってるメジャー級の言語ってことはガチホモだが。
>>849 この話題でそういう反応になるってこと自体が
おまえさんの中の差別心の吐露になってることに気づけないの?
こういう詭弁でまだYugui氏ネタが続くようならがっかりだわ
857 :
デフォルトの名無しさん :2009/10/20(火) 09:10:07
キチガイばかり
>>851 クソの吹き溜まりで何言っちゃってんの?w
pythonのジェネレータみたいな機能はありますか。 def fibgen(): x, y = 0, 1 while True: x, y = y, x + y yield x g = fibgen() while True: print g.next() # 永久にフィボナッチ数列を出力し続ける
RUBY_DESCRIPTION => "ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9.8.0]" def fib; x, y = 0, 1; loop { x, y = y, x +y; yield x } end g = enum_for(:fib) puts g.next() while true
いまいち使いどころがない
行数短くしないとすき焼きに春菊入れないとか脅されたときとかに有効
まずRUBY_DESCRIPTIONという定数があったことに驚かされた
>>864 irb -r irb/completion
のように補完を効かせて、R tabキー とかやると、他にも色々あるのが判る。
メモリが有り余っていてもったいないから仕方なしに IRBを立ち上げっぱなしにしているけどいまいち使い道がない。 電卓以外に何か有効な使い方ない?
熟練すればファイラ程度にはなるんじゃなかろうか
irb> def method_missing(*args) system(*args.map(&:to_s)) end => nil irb> ls '-a' . .. => nil irb> たぶん実用性はないと思う。
869 :
デフォルトの名無しさん :2009/10/21(水) 17:05:47
ファイラじゃなくてシェルじゃね
いや、検索やリネームやコピーをメインにするならファイラでいいだろ それもシェルで十分だが
コンテストの終了からこれだけ時間が経っても 公式ロゴをほとんど見る機会がないのが悲しい にもかかわらず、VisualIdentityTeamのアイコンの方は 未だにいろいろなところで見るのがさらに悲しい
>>872 Ruby ユーザーの大多数は、ロゴなんてどうでもいいし、アイコンなんて使ってない
そんだけだと思う
>>861 1.9なら 直接Enumeratorを作ってみたり
g = Enumerator.new{|e| x,y = 0,1; loop{x,y=y,x+y;e.yield x}}
puts g.next while true
1.8でも Generatorを使って同様に
require 'generator'
g = Generator.new{|e| x,y = 0,1; loop{x,y=y,x+y;e.yield x}}
puts g.next while true
微妙に互換性ないなあ
実は、1.8.7のEnumerable::Enumeratorを外部イテレーターとして使うと(nextメソッドを使うと) 内部ではGeneratorが作られるよ Generatorは継続で実装されてるのでちょっと重たいね p RUBY_DESCRIPTION # => "ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mingw32]" def fib; x, y = 0, 1; loop { x, y = y, x +y; yield x } end p g = enum_for(:fib) # => #<Enumerable::Enumerator:0x2ad57f8> p $" # => ["enumerator.so"] puts g.next # => 1 p $" # => ["enumerator.so", "generator.rb"] と、nextメソッドを使った時点でgenerator.rbをrequireしてる
>>873 にしては、アイコンが使われてるのをよく見る
>>876 区別さえできればデフォルトアイコンで別にどうでもいいと思ってるってことだろ
アイコンをこまめに変えるような層とRubyユーザーは被ってなかったってことだな
アイコンって.icoファイルの事? 良いデザインのものがあるならおせーて。
ロゴが使われてないって話だろ
ロゴはそもそも原理上使う場所がなかった たとえばPythonやPerlだってロゴ見ないだろ 注文があったのはアイコンなのだが、公式の誰か使ってるのかね いやまあVITのやつのほうがマシだという話もなもないのだが
>>881 え、VIT以外に公式のアイコンがあったの?
もしかしてActiveScriptRubyで見るアレ?
でもあのアイコン、未だにどこで配布されてるのか分からない
883 :
デフォルトの名無しさん :2009/10/24(土) 11:01:33
>C:\Ruby\bin\ruby.exe: invalid option -k (-h will show valid options) こんなエラーで起動しません。スクリプトの先頭には >#! ruby -ks ># -*- coding: Windows-31J -*- のような指定だけです。Rubyのバージョンは1.8.7です。 1.9.1だと動くようですがRubyのバグでしょうか?
>>883 -kじゃなく-K(大文字)が正しいかと。
つか誰だよそのスクリプト書いたの。
Ruby2.0では複数行コメント/* */は追加されるのでしょうか?
>>883 >>884 の理由で、1.9.2dev でも動かないんだが、ほんとに1.9.1で動いてるの?
>>885 複数行コメントなら既にある。
/* */ でないと嫌ならプリプロセッサでも通してくれ。
889 :
デフォルトの名無しさん :2009/10/24(土) 13:34:25
config = {:port => 3000,:DocumentRoot => '.',} server = WEBrick::HTTPServer.new(config) この状態でWEBrickを起動するとポートが80番に固定されてしまうんですが Windowsの問題でしょうか?
>>889 portでなくPortが正しいとかいうオチじゃまいか
>>890 その通りでした・・・何度も申し訳ありませぬ
さすが WEBrickは キモい な
Roma公開はいいけど何だこれがっかりすぎる もうちょっとマシな状態にしてからにしろ
あーあー今までみんな我慢して言わなかったのにー
IT pro とか gihyo とかさー、 休日に速報でニュース出してるけど、ちょっとでも中身見たのかね?
ごちゃごちゃ文句言ってるのは2chの三流プログラマモドキだけな件
久しぶりだねえ。文句を許さないって感じ 昔のRubyスレを思いだすわ
中身ってソースか? どうせ改変するやつなんて超一握りなんだから 信頼性とか機能、性能の方がはるかに重要だろ
三流プログラマモドキの私が見たところ、すごく好感を持てました。特に、 end # module Roma みたいな所に。
>>898 じゃあ中身ってのはいいや。
ちょっとでも動かしてみたのかね?
>>900 みんながすごいって言ってるんだから自分で動かす必要ないじゃん
真理
903 :
デフォルトの名無しさん :2009/10/24(土) 21:31:44
README.doc のやる気のなさといったら == client で終わりだったりするんだぜ 使えねーおおっと、仕えねー
TwitterでRomaについて文句を言ってる奴は一人もいない 2ちゃんねらー>>>(越えられない壁)>>>>>>>>>Twitter住人 てことが証明されたな
それが証明と思えるとは,うらやましい限りです
皮肉られるにも知性が必要、という一例
わざわざRomaを作ったのは、 スケーラビリティを高めるという面が大きいんだろう。 そうでなければmemcachedで十分だ。 個人で試してみても本当にいいかどうかは分からんから、 どこか負荷の高そうなところが採用して評価するのを待つしかないな。
RomaっとTokyo*との比較は
C言語にブロックをくっつけられるようにした独自の拡張って objective-c以外に何かあったりしますか? 構文のアイデアだけでもいいので知っていたら教えてください。 void eachint(int *arr, size_t ct, void(^block)(int)) { for(int i=0; i<ct; i++) block(arr[ct]); } main() { int n[] = {1,2,3}; eachint(n, 3, ^(int it){ printf("%d\n", it); } }
Rack 1.0.1 出たー! まだ試してないけど、CGI動作バグが直ってることに期待したい
gemでrack落としてrake testしたらspecrbが無いと言われた。何それ
>>914 gem の test-sepc ライブラリが提供するコマンド
spec コマンドと Ruby スクリプトの駆使で代用できるので認知度は極めて低い
Rubyのドキュメントを整備してOSS界で名前を売ろう! IPA のプレスリリースによると、2009 年度 日本 OSS 貢献者賞と日本 OSS 奨励賞が発表された。 「2009年度 日本 OSS 貢献者賞 」受賞者 (4 名、五十音順) * 小崎 資広 氏 (@IT の Kernel Watch の人, Linux Kernel 開発者) * 瀧田 佐登子 氏 (Mozilla Japan 代表理事) * フェルナンド ルイス・バスケス カオ氏 (Linux Kernel 開発者) * 本田 茂弘 氏 (PostgreSQL 等の日本語ドキュメント整備) 受賞内容の詳細はプレスリリース本文 (PDF) の別紙 1 を参照。 「2009 年度 日本 OSS 奨励賞」受賞者 (6 名、2 団体 五十音順) * 個人 o 新井 紀子 氏 (NetCommons) o 安藤 祐介 氏 (CakePHP) o 進藤 愛大 氏 (Spark project) o 高木 正弘 氏 (PHP 関連の日本語ドキュメント整備) o 寺島 広大 氏 (ZABBIX-JP) o 林 拓人 氏 (プログラミング言語 Cyan) * 団体 o 山形県寒河江工業高校・情報技術科 o 一般社団法人 LOCAL
うむ、60点くらいあげようと思うステキな煽り文句
Pythonだとpickle.dump
Pythonにもmarshalあるけど、小文字でmarshal.dumpとしてるみたい
>>920 はRuby意識してるってのでいいと思うよ
竹内先生のキーボードを叩く音は「パチパチ」なんだ。
イケメン?
高学歴中学生って形容がおかしいだろw
学歴とは本来学校のレベルは問わないので”最高学府”たる大学を卒業していれば どんなにレベルの低い大学でも灘・開成の生徒よりも高学歴だよ
国立中学って響きからして格好いい
しかしつまらんスレだな
>>926 フィボナッチ数列を使うことってあるのか?
処理系のある部分(この場合は多倍長整数)を 集中的に使うベンチマークが欲しかっただけでは 再帰の竹内関数とかと同じ
大丈夫かね? 爆燃してすぐに飽きて燃え尽きるってよくあるぞ。
きっかけがフィボナッチなだけで 中身は1.9の省メモリ化によって増加した処理量の軽減が主だったと思う
理屈上は誰でも手をつけることはできなようなことだから、そんな気にしなくても問題はない 情熱すげー若いっていーいーなーいいーなーという話 いろんなことできる人のようだから、先鋭化して腐るようなことはないだろう
燃えつきても引き継ぎできる体制になってるからゴーサインが出たんじゃないの
心配なのは神童がだんだん凡人化してそこらの大人と大差なくなること こういう天才はさっさと大学行かせて高等教育受けさせろ スレチスマン
>>940 > 具体的には、array型などが実装されているソースコード
> 、array.c、string.c、struct.cそれぞれから、問題となり得るマクロ、
>
> ・RARRAY_PTR,RARRAY_LEN
> ・RSTRING_PTR,RSTRING_LEN
> ・RSTRUCT_PTR,RSTRUCT_LEN
>
> を探し、文脈を確認しながら、高速化するという作業
> (マクロの値がループ内で不変でループの外に出せるものをループ外に出す)です。
を見るに、中学生にもできそうな事に見えるんだが。
> 文脈を確認しながら ってことは、Rubyの組み込み型を実装してるコードの流れを完全に把握して、 いじっても問題ないかどうかを判断しなきゃならない。 インタプリタからスクリプトに制御が戻るタイミングがあったりすると、 そこで思わぬこと(例外とかcallccとか)入るかもしれないし、聞いた感じほど 簡単な作業ではない。
神童を英才教育しすぎて、常識も知らずに大人にして人生台無しにするのもどうかと思うけどな。 普通の人生歩んで潰れるくらいの才能なら、その程度な気がする。 自分で東大卒に成れる程度に成長出来ないと意味が無い。 これって汎用なのかねえ? 例外だと従来の遅いままだったりしてw デバッカで眺めていれば弄りたく成るレベルだな。ruby世界の宗主の教祖様がこの問題に手を付けなかった辺りがアレだがw
ひがみすぎだ
りがとう。参考になりました。
>>944 一回で全部完璧にこなしたならそうだろうけど、
実際本人の気付かないところでSEGV起こして修正したらしいし
トライアンドエラーしながらなら中学生でもできると思う。
高速化はトライアンドエラーだけでできることじゃないだろう というか、C言語ってみんな中学生の頃から触ってたものなのか? 俺は中学生の頃と言えば、BASIC言語で 単純なおこづかい計算プログラムを書いて一喜一憂してた頃なんだが
いまどきの環境揃いまくりの中学生と自分を比べてどうする
951 :
949 :2009/10/31(土) 09:00:56
>>950 といっても、俺が中学生の頃からインターネットもGCCもあったはずだし
「みんな」が使ってたらニュースになってないよ。
おれが中学のときはパソコンもってるやつなんてそうはいなかった
そんなこと言ったら俺が中学のときはコンピュータなんてアメリカにしかなかったぞ 「俺の中学時代」で括ることには何の意味もない 集めたら戦後あたりから1秒前まで分布してるはずだ
なんで現在までじゃなくて1秒前までなんだ 1秒前に中学時代が終わった奴がいるのか
今の若い人はコンピュータ環境が身近でうらやま
>>956 コンピュータが日本に持ち込まれる前の時代の想像はできない?
50年代半ばには、日本にコンピュータはあったぞ。正確には「マイコンが」かな。 リース期間が終了したミニコンを個人所有したりとかしてた人が存在してたらしいが。 70年代前半かな。
>>949 ぶっちゃけ高速化の内容が
>>943 だけならトライアンドエラーだけでできるよ。
・ループの中でマクロを使ってる箇所を探して、それをループの外に追い出す
・make, test してみて、失敗したら元に戻す、成功したらそのまま
を繰り替えしゃいいだけ。
どうやって速度計測するの?
ループの内側でやらなくていい処理を ループの外側にもってけば普通は高速化する。 速度計測する必要なんかないと思うが。
祖路疎魯津儀巣礼乎
make test のカバレージが完璧という保証はどこにもない。
それは test 作った人の責任
カバレージが 100% になっても完璧なテストという保証は…… そもそも完璧なテストなんか作れんのだから、 ある程度自動でテストできれば後は人柱にテストさせりゃいいでしょ。
このスレの住人は英才でもないのにおかしいのばっかだな ぐだぐだみっともない
>>965 いえっさー
自分に関係のないテストは書き換えたらいかんぜよ
>>967 自分のしみったれた人生のことばかり考えてるとミジメになってくるから、
たまには遥か遠い次元の人物の話をして心の洗濯してみたいのでは。
んでどんだけ早くなったの? 都合の良いベンチじゃなくてさ、実際的なアプリで。
「都合の良いベンチ」の意味がわからないので、何とも。
やらなかったのはなぜか聞いてみるといい たとえ大人であっても一定の賞賛は得られたろうに
>>971 Struct#==が60%だっけ?速くなりました。
…といわれてもこんなメソッドが実際に良く使われているか?ってこと。
学生はこれだから、と言い張って勝ったつもりになってたfjの「大人」どもを 彷彿とさせますなw
今回の教訓:自尊心と能力は常にバランス良く備えておきましょう
か…神童…
最大でそれが60%(?)速くなって 全体的にも5%速くなったって話じゃなかったか 5%も早くなれば十分すごいと思う
10/30(シアトル)はnokogiriの誕生日だったのかー
>>978 ソースだと8%って書いてあるけど
8から63%って波が激しいな
>>980 最近は学校で平均とか教えないらしいな
よくわかるよ
>>980 改善された箇所がどれだけ呼ばれるかにかかってるからな。
今回のポイントはArray、String、Structあたりの比較的よく使われるところを改善できた点なわけで
最近は学校じゃギブソンミックスとか教えないからな
梅。 何か学者チックな誇大成果主張な気がしないでもない。
まあ効率の悪い場所を探せば10倍とか普通に早くなるしな。
なにそのバランス釣り合うポイントを見つければ誰でも卵は立てられるみたいな論理
そんな大げさな話じゃないだろ? 木目に沿って斧を入れればパカッと割れる程度の話だ。
フリーソフトウェアの歴史的には、こういうのは能力的にも知識的にもヒマ的にも大学生のシゴトなんだよね 中学生がさくさくとやってしまったとこに注目すべき点がある
どこの何歳のどこ所属の誰がやったのかなんて関係ない、コードだけ見てコードを評価せよ、という思想なのかも
おまいら次スレまだ立ってませんよ
じゃあやってみろとか言うとダンマリか逆切れしちゃうんだよな
スレ立つまで雑談ストップしろってことかと
>>989 それは開発環境の充実やコミュニティの敷居が下がってきたみたいな意味で?
梅。 まあ今までそんなネタ出てこなかったって事は関心持たれてなかった証だしなあ。 実際、金に成る訳でもないし。
Ruby開発内部では普通にたくさん仕事こなした人として普通に賞賛の対象 外部で中学生であるということがフィーチャーされてしまったのが運の悪かったとこだな
圧倒的大多数は普通に賞賛してると思うが
10年たてばただのおっさん
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。