Rubyについて Part 37 ..
[2ch|▼Menu]
166:デフォルトの名無しさん
09/09/01 11:09:24
gdgd逝ってないでさっさと
スレリンク(tech板:138番)
張ってこい。スレ荒らすな。

167:デフォルトの名無しさん
09/09/01 11:20:56
まあ見てる見てないなら俺含め見てるけど、
優先度低くて手を着けてないわ。

MLかRedmineに書くとある意味強制的に
優先度が上がるとも言えるw

とりあえず
・発生した環境
・再現手順
・手順をやったらどうなったか
・本当はどうなって欲しいか
どうなって欲しいかが論理的に自明でないような場合は
・何故そうなって欲しいのか
あとはおまけで
・原因の推測(心当たり)
これはもしあれば、というレベル

これぐらいを箇条書きでいいんじゃない?
管理的には直ったかどうか確認して欲しいから
言い出した人の連絡先(メールとか)も欲しいかな

168:デフォルトの名無しさん
09/09/01 11:25:24
>>165
SEGVで落ちるとかならそれでもいいだろうけどな

169:デフォルトの名無しさん
09/09/01 13:38:00
Ruby on Rails
今日初めてやってみた
なんかすげー簡単だなこれ


170:デフォルトの名無しさん
09/09/01 13:40:00
簡単なことはね

171:デフォルトの名無しさん
09/09/01 13:47:04
ちょっと手を入れようとするとね・・・

172:デフォルトの名無しさん
09/09/01 13:59:35
パフォーマンスを出そうとするとね…

173:デフォルトの名無しさん
09/09/01 14:01:46
脱線するんだよな。


174:デフォルトの名無しさん
09/09/01 14:16:22
今できることが 0.x 時代はめんどくさかったということを考えると
Rails 6.0 くらいになったら普通のことはあらかたできるようになってると思う

175:デフォルトの名無しさん
09/09/01 14:38:48
で、結局cgiモジュール+手書きが一番楽と。




なわきゃない。

176:デフォルトの名無しさん
09/09/01 15:45:58
難しいことって例えばどんなことだよ
具体的に教えてくれよ

177:デフォルトの名無しさん
09/09/01 16:08:33
複数のリソースを同時に扱うとか

178:デフォルトの名無しさん
09/09/01 16:22:30
なんだかもどかしいな

179:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/09/01 21:30:14
>>167
rubに関しては、環境とコード書けば十分じゃないの?

181:138
09/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:デフォルトの名無しさん
09/09/01 21:37:59
ここはお前のスレじゃない

183:デフォルトの名無しさん
09/09/01 22:05:13
>>138の書き込みを見てもなんでそれで直るのか分からん
そんなものは取り込めん

184:デフォルトの名無しさん
09/09/01 22:09:49
以降レス禁止

185:デフォルトの名無しさん
09/09/02 01:29:14
>>183
だーかーらー、いまのまま138がRedmineに書いても、チケット受け取った側が混乱するだけだって。
慣れてるやつがたたき台を書いてやらないと。

186:デフォルトの名無しさん
09/09/02 06:15:28
redmineが死んでるので考えるのをやめた

187:デフォルトの名無しさん
09/09/02 10:13:33
有料でもいいからちゃんと作ってほしいぜ

188:デフォルトの名無しさん
09/09/02 12:28:08
アカウント登録画面のボタンラベルが、なぜか登録ではなく"変更"になっている。
ボタンを押すと「アカウントが有効になりました。ログインできます。」
と表示されるが、これは嘘で、送られたメールのURLをクリックしないといけない

rubyらしくて、ほほえましく思った

189:デフォルトの名無しさん
09/09/02 12:32:01
>「アカウントが有効になりました。ログインできます。」と表示されるが
>送られたメールのURLをクリックしないといけない

これハマりかけたw
メール送られてきてるのに気づかなくて、パスワードまちがえたかなと


190:デフォルトの名無しさん
09/09/02 20:21:47
>>31の理論で考えると
バグを指摘されたくないから
名目上の器だけは用意しつつ
使えないようにしてます、って感じかw

191:デフォルトの名無しさん
09/09/02 23:04:32
うまい皮肉だな

192:デフォルトの名無しさん
09/09/02 23:07:17
えー

193:デフォルトの名無しさん
09/09/02 23:19:56
お前らが褒めてやらないから自演しないとやってられなくなったんだろ

rubyらしくて、ほほえましく思った

194:デフォルトの名無しさん
09/09/02 23:26:22
うまい皮肉だな

195:デフォルトの名無しさん
09/09/03 08:18:35
>>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


196:デフォルトの名無しさん
09/09/03 14:15:32
時代はDecimalだからな

197:デフォルトの名無しさん
09/09/04 14:45:16
4Gamer.net ― AMDのGPUやCPU,マザー購入でRubyフィギュアを手に入れよう
URLリンク(www.4gamer.net)

198:デフォルトの名無しさん
09/09/04 19:29:17
日立ソフト、月額制のオンデマンドRuby on Rails学習環境サービス開始
URLリンク(sourceforge.jp)

199:デフォルトの名無しさん
09/09/04 19:50:24
出前クラウドをサービスして「それクラウドか?」と総ツッコミが入ったSecureOnlineか
活用法としてはけっこう妥当なんじゃないかと思われる
よくわかんない会社が日立だからとよくわかんないまま買ってよくわかんないまんまわかった気になるんだろう
まあそれはそれでいろいろいいことなのではないかなと思ってみたり

200:デフォルトの名無しさん
09/09/04 19:58:39
RailsはJavaではないということがわかって頂けたなら何してもらっても構わんよ

Javaで淘汰されたからとRailsを代わりに使おうとする糞SIは死滅の危機にあって非常に好ましい

201:デフォルトの名無しさん
09/09/04 20:24:44
>>200
そもそもまともなスケールでRails使ってSIなんて聞いたことねえけど
それどれぐらいの規模の話よ?国内なんだよな?

202:デフォルトの名無しさん
09/09/04 20:34:33
RailsはSIerにはまじ向かない。
自社サービスを展開する企業が自分の責任で使う場合にこそ威力を発揮する。
自分で構築したシステムととことん付き合う覚悟がないとRailsはつらいよ

203:デフォルトの名無しさん
09/09/04 21:19:28
向かないも何も採用された話なんて全く聞かないのだが
向かないという理由は何なんだ?
ウォーターフォールがうんぬんとかどうでもいいぞ。
まともにウォーターフォールができてるSIなんてほとんどないだろうから。

204:デフォルトの名無しさん
09/09/04 21:28:12
逆流やら滞流やら決壊氾濫やら、ウォーターフォールってのは
なかなか粋な言葉だなあと、最近改めて思う

205:デフォルトの名無しさん
09/09/04 21:41:27
>>203
どっちかっていうと構築よりは保守の問題じゃね

大したことをするわけじゃないからJavaその他で作り込むのは
過剰品質なのに手作業というわけにもいかず
作るだけは作らなきゃいけない使い捨てのショボシステムを
でっちあげるのに向いた造りなわけだから、
リスクを自前でコントロールしきれない他人様のところで
しかも末永く使っていくのには明らかに向かないよな

そもそもSIer使うような客はその辺のリスクコントロールが難しいと
思ってるからSIerに金払って構築させるわけで、それがやれるんだったら
そもそもSIer呼ばないで自分で作るよなあ

206:デフォルトの名無しさん
09/09/04 22:05:40
何言ってるのかほんとに分からない・・・

207:デフォルトの名無しさん
09/09/04 22:21:28
>>195
どうせ、直すなら >>181 で、
実行速度が速くて、しかも(理論的にも)安心。
数学の公式にあるみたいだから。

208:デフォルトの名無しさん
09/09/04 22:26:18
だからそういう理由でコード入れたりしねえんだって

209:デフォルトの名無しさん
09/09/04 22:56:56
Urabeさんは私の太陽、私の星、私の月です
Urabeさんが大好きです

210:デフォルトの名無しさん
09/09/05 02:23:01
自分とこで作って使うならRailsもアリ
作るとこと使うとこが違うなら別のを使うのが得策

…てな感じでOK?

211:デフォルトの名無しさん
09/09/05 06:36:42
Rails に限らず Ruby 全般に言えるが、
ずっとベータ版で構わない、改装のしやすさが重要、というプロジェクトやプロダクトに最適

Ruby は直接金は産まないが莫大な富を産む
よくわかったベンチャーが内製ツールを Ruby で作るとものすごいことになるが、
同じ理屈で大企業が製品を Ruby で作ると別な意味でものすごいことになる

212:デフォルトの名無しさん
09/09/05 06:53:18
お約束だがよくわかったベンチャー乙

213:デフォルトの名無しさん
09/09/05 07:45:18
作ったこともないのにイメージだけ

214:デフォルトの名無しさん
09/09/05 10:47:29
Windows版Intel C++のインストーラに内部的にRubyが使われてて驚いたことがある

215:デフォルトの名無しさん
09/09/06 01:39:56
github廚うぜぇ

216:デフォルトの名無しさん
09/09/06 01:56:25
bzr最高

217:デフォルトの名無しさん
09/09/06 18:55:17
disり合いはHg厨の陰謀

218:デフォルトの名無しさん
09/09/08 18:08:50
スクリプト書いて、実行したらunicodeファイル名が読めずにエラー吐いた。
他言語で書き直しかよ〜。

219:デフォルトの名無しさん
09/09/08 18:23:56
ああ、Windows の Unicode ファイル名は 1.9.1 でもどーやっても読めませぬ
これどっかに書いておいたほうがいいと思う

220:デフォルトの名無しさん
09/09/08 20:48:40
今がんばってるところなんでしょ

221:デフォルトの名無しさん
09/09/08 21:21:30
>>218
他言語でリネームだけしてみるとかw

222:デフォルトの名無しさん
09/09/08 22:05:04
Rubyは業務システムにも十分な適用性を備える―IPA調査報告書
URLリンク(sourceforge.jp)

223:デフォルトの名無しさん
09/09/08 22:58:18
>>222
むせた

224:デフォルトの名無しさん
09/09/08 23:01:06
IPA自体がギャグ

225:デフォルトの名無しさん
09/09/08 23:22:26
>>224
あと何百年岡田事件を引っ張るんだよお前

226:デフォルトの名無しさん
09/09/08 23:34:59
どなたか、Rubyのrand()の生成方法とかソースコードのあるところを教えてくださいませ。
svn.rubyを漁るですが、見つからない。
どこかで蛇使いが、うちのはメルセンヌツイストだからと自慢しておりまして、
じゃぁ、と調べて見ても、見当たらないのです。

しょうがないので、出てきたものを比較してみました。
SFMTとXor128と24bitの線形とですね。
比較の方法は、長くなるので割愛します。
Rubyのrand()はSFMTと一番近いです。はっきり言うと私の方法では、区別できません。
他のは判別できますが、連続した百万個を100セットくらい必要です。


227:デフォルトの名無しさん
09/09/08 23:45:28
>>226
random.c

228:226
09/09/08 23:51:09
>>227
どうもありがとう。
ありそうな感じなので、見たつもりだったのですが。
探してみます。

229:デフォルトの名無しさん
09/09/09 00:23:34
冒頭にいきなり This is based on trimmed version of MT19937 ってあるんだが

230:226
09/09/09 00:45:03
>>229
どうもご親切に。
それは、>>226で言うところの、SFMTです。
あとからのdSMFTはコードが長いので、今回は見送りました。
(Rubyへの移植を)
これで、晴れてRubyもメルセンヌを名乗って良いかな。

231:230
09/09/09 00:53:01
失礼。
/dSMFT/dSFMT/

だと思う。たぶん。


232:デフォルトの名無しさん
09/09/09 00:54:02
いろいろ検索してみましたが見つからなかったため質問させてください。

企業でRubyを導入する場合、国からの援助があるという話を聞いたのですが
実際にそのような話があるのでしょうか。

また、あるとすれば具体的にどのような援助を受けられるのでしょうか。

ググってみても、島根県の県内企業向けの援助はありましたが
国からってのは見つかりませんでした。

実際、本当の話なのかどうかよく分かりません。

もしご存知の方がいましたらよろしくお願いします。

233:デフォルトの名無しさん
09/09/09 00:56:07
IPAに聞いてみればいいんじゃないかな



とか、茶化しちゃいけないんだろうか

234:デフォルトの名無しさん
09/09/09 01:47:01
IPAフォントの御利益はどのくらいまで引っ張れるかな
個人的には、HaruPDFライブラリがUTF-8に対応して曲がりなりにも
完全版になってくれれば、10年は恩を感じられるんだが。

もちろん、Ruby方面でもなにか実績を作ってもらえればそれはそれで
素晴らしいんだけど

235:デフォルトの名無しさん
09/09/09 02:29:46
いまだに使う機会が無い。
何のために存在してんのこれ?
今となってはそそられるような何かは皆無だしな。

236:デフォルトの名無しさん
09/09/09 02:39:03
そりゃ、あんたが創造的な仕事をする能力がないってだけじゃないのか?
実際使える(傲慢)かどうかは知らんが、
> そそられるような何かは皆無
ってのはアレだなあ

237:デフォルトの名無しさん
09/09/09 02:42:24
創造的だけじゃないかな。文脈がおかしくなる
創造的 or 建設的 or 実効的 、くらいかな。存在意義としては

238:デフォルトの名無しさん
09/09/09 03:10:45
>>234
IPA が金を突っ込んだプロジェクトの話?
Ruby もそれなりにもらってるよ。
まず、まつもとさんが2000年にもらってて、array.c とかを見ると言及が残ってる、
array.c:  Copyright (C) 2000  Information-technology Promotion Agency, Japan
URLリンク(www.ipa.go.jp)

笹田さんはYARVで未踏(ユース含む)から3年連続で貰ってるしね
URLリンク(www.atdot.net)

239:デフォルトの名無しさん
09/09/09 05:06:24
どっちかってえと何がどう捩れて
> 企業でRubyを導入する場合、国からの援助がある
になったのかが気になる

240:デフォルトの名無しさん
09/09/09 11:24:14
>>225 2ちゃんねるだけが生きがいの粘着だから放置しようぜw

241:デフォルトの名無しさん
09/09/09 11:48:45
>>240
ひとりでやれんのか
やるならお前ひとりでやれ

242:デフォルトの名無しさん
09/09/09 12:59:26
>>241
我々多数派はこれからも岡田を追及し続けるってことですね。わかります。

243:デフォルトの名無しさん
09/09/09 13:09:00
>>226
メルセンヌツイストとかxor128とかは乱数生成のアルゴリズム名だったのか。知らなかった。
勉強になりました。ありがとうございます。

244:デフォルトの名無しさん
09/09/09 13:11:51
メルセンヌツイストってメルセデスベンツのパチもんだろ

245:デフォルトの名無しさん
09/09/09 13:34:00
>>234,238
BioRubyも2005年に未踏でついてるね。早くBioPerlに追いついてほしい。

246:デフォルトの名無しさん
09/09/09 14:04:05
専門知識を携えて頑張る人がいなかっただけだからな
ある意味仕方なかったんだが

247:デフォルトの名無しさん
09/09/09 14:40:02
>>243
> メルセンヌツイスト

正しくはメルセンヌツイスターだけどね。

248:デフォルトの名無しさん
09/09/09 14:42:38
> 企業でRubyを導入する場合、国からの援助があるという話を聞いたのですが

それを聞いたソースに尋ねてみたら?

249:デフォルトの名無しさん
09/09/09 16:29:13
強まるRuby標準化を求める声〜RubyWorld Conference2009
URLリンク(enterprise.watch.impress.co.jp)


250:デフォルトの名無しさん
09/09/09 17:41:50
標準化がゲシュタルト崩壊した
標準化ってなにすることなんだっけ

251:デフォルトの名無しさん
09/09/09 18:01:49
>>250
政治的駆け引きを繰り返し、
誰もが望まないけれど妥協点の機能を追加し続けること。

252:デフォルトの名無しさん
09/09/09 19:27:28
Modula-2はそれで死んだのかな。

253:デフォルトの名無しさん
09/09/09 22:50:57
まあみんな勝手にばらばらにやってる感はある
ここである程度は合わせてもいいかも

254:デフォルトの名無しさん
09/09/10 07:40:09
railsのために標準を1.8にして1.9が死んだりしなきゃいいけど

255:デフォルトの名無しさん
09/09/10 07:47:40
Rails が 1.8 に固執してるのはシステム的に対応不可能な個所があるというよりは
「1.9たいおうにするのめんどくさいから」
なので、1.9 サイコーということになればついてこざるを得ないとは思う

が、Encoding 関連のガイジンさん誰得っぷりが足を引っ張るかも
Latin-X を利用してる人なら恩恵あるんだけどなあ

256:デフォルトの名無しさん
09/09/10 08:07:06
1.9がサイコーになる要素がないじゃん・・・

たいして速くないし、エンコードも英語だけ使ってるなら面倒が増えるだけだし。
1.8に比べて特に優れてるところがないんじゃ誰が以降すんだよ


257:デフォルトの名無しさん
09/09/10 08:28:46
1.6 のころは Ruby しょべええええええと思ってたので
1.9.6 くらいになればまた違うのではないかと

258:デフォルトの名無しさん
09/09/10 11:33:17
>>256
なぜ外人の立場でものを言うのだお前は

259:デフォルトの名無しさん
09/09/10 11:49:19
エンコード絡みでエラーが出ると、どこでどのように対応するのが正解なのか判りづらいんだよなあ
エラーが出た行を修正すればいいわけじゃないから

260:デフォルトの名無しさん
09/09/10 11:53:33
>>258
日本人と限ったものでも

261:デフォルトの名無しさん
09/09/10 11:53:36
Ruby1.9とRailsの組み合わせでつまづくと、
海外サイトの方が圧倒的に情報が多いという事実を知らないんだなw

262:デフォルトの名無しさん
09/09/10 11:56:21
RUby1.9が関係ないということに>>261が気づくのはいつだろうか

263:デフォルトの名無しさん
09/09/10 12:52:55
>>262
ごめん。意味分からない。
おまえ頻繁に書き込んでると思うけど、ほんとに意味分からないよ。

264:デフォルトの名無しさん
09/09/10 13:04:34
Rails は外国のほうがそもそも情報量が桁違いに多いってことなんじゃねーの
Ruby1.9 かどうかにかかわらず、Rails だから多いということなんでは

265:デフォルトの名無しさん
09/09/10 13:19:24
>>264
なるほどね。ものすごく見当違いだから分からんかった。

やれば分かるが1.8系+Railsならそこまで海外サイトに頼らなくても支障はない。
日本のサイトでもヒットするし、書籍もかなりあるし。
1.9になると自分でソース見る以外はほとんど海外サイト頼み。
実際にやりもしない調べもしないやつはこれだから。

266:デフォルトの名無しさん
09/09/10 13:25:13
「調べもしない」から、RailsはRubyのバージョンによらず
海外のほうが情報が多いということに気づけなかったのだろ
1.8系列のRailsの情報を海外に求めていれば莫大だと気づけたはず
恥かいてから言い訳とか恥ずかしすぎる

267:デフォルトの名無しさん
09/09/10 13:36:09
Ruby1.9とRailsの組み合わせの情報が、日本では全然ない

というだけの話じゃないのか?
いったい何を言い争ってるんだ

268:デフォルトの名無しさん
09/09/10 13:54:57
>>267
彼らが本当に交換しているのは
情報ではなく自尊心なんです。

269:デフォルトの名無しさん
09/09/10 14:30:31
製作サイドはもちっと説明してほしいね

270:デフォルトの名無しさん
09/09/11 03:37:24
Tempfile.newの第一引数にArray渡せるなんて聞いてねーぞ

271:デフォルトの名無しさん
09/09/11 06:57:12
いいから黙って渡せ!!

272:デフォルトの名無しさん
09/09/11 15:45:03
こういうオーバーロードもどきはちょっと汚い感じ

273:デフォルトの名無しさん
09/09/13 00:01:44
Arrayで渡してやればsuffixも指定できるって話でいいのか?

274:デフォルトの名無しさん
09/09/13 02:47:18
いいよ。
ふと思いついたんだが
Tempfile.new("foo"..".rb")
というのは…やっぱりダメだな

275:デフォルトの名無しさん
09/09/14 16:05:49
URLリンク(www.tokumaru.org)
Ruby1.9.1ではめんどくさいことが防波堤になるという話

まあ実際では正規表現が動かない

       から

BINARYにforce_encodingしてからスクリプトで扱ってたりするんですけどね外人爆発しろ

276:デフォルトの名無しさん
09/09/15 21:53:44
>>195
URLリンク(redmine.ruby-lang.org)
GJだが、なんで英語?


277:デフォルトの名無しさん
09/09/16 06:04:56
>>276
ruby-coreからの転記だからじゃね?

じゃあなんでruby-coreよ?
という疑問は残るけど、英語の方が着目してくれる人数は多そうな気がしなくはない。


278:デフォルトの名無しさん
09/09/16 06:12:50
傍目に明確なテストを大量に付記しないと入りそうにないジャンルだから、手をかけてくれる人は多いほどいいな

279:デフォルトの名無しさん
09/09/16 06:27:16
そういえば、
URLリンク(redmine.ruby-lang.org)

>DLをCからRubyに変換する事を勧めます

>DLをCからRubyに変換すれば良いと思ったので、変換しました。CからRubyに変換後のパッチとそのテストを送ります。
>このパッチを受け入れてもらえるのなら、これからもっとCからRubyに変換をするつもりです。
>宜しくお願いします。

ってのをAaronタンがやってるけど、どういう趣旨なんだろ。
移植性の改善とか?


280:デフォルトの名無しさん
09/09/16 08:12:58
久しぶりにRuby公式hpみたら落ちてる

281:デフォルトの名無しさん
09/09/16 09:34:08
>>275
その辺をやっているのは日本人だな。
まぁ、自動設定できるほど甘くはないのがその領域なんだが。

282:デフォルトの名無しさん
09/09/16 10:33:49
>>279
DLじゃできないことがあったそうだが、もうわからんらしい.
まぁDLにはいろいろと問題も多いのでFFIに置き換えること自体は賛成.
あとはFFIの完成度だな.

283:デフォルトの名無しさん
09/09/16 10:53:06
DL って何の略ですか?
ググって勉強してみたいので教えて下さい

284:デフォルトの名無しさん
09/09/16 10:57:23
ぐぐってみたところ

DL … ダウンロード
FFI … ファイナルファンタジー1

のことのようだ

285:283
09/09/16 11:02:29
DL ってこれのこと?
URLリンク(www.ruby-lang.org)

そういえば、Nokogiri を、Linux 版 Ruby、Windows 版Ruby、JRuby で
ためしていて、FFI のところまでいって、Nokogiri は
・Linux 版だと libxml2 の so(?) を開こうとする
・Windows 版だと libxml2 の dll を開こうとする
・JRuby 環境で gem install した Nokogiri だと、落ちた(Java 環境だと、DL 対象がみつからない?定義されていない?)
ということをやりつつソースまで追いかけたんだけど、
キーワードの目の付け所はあってますか??

286:284
09/09/16 11:05:59
>>285
ちげーよばか

287:デフォルトの名無しさん
09/09/16 12:06:09
>>277
「ruby-coreからの転記」じゃなくてチケット作成のときに英語を選んだから
ruby-coreに行ってるんだよ。


288:デフォルトの名無しさん
09/09/16 15:14:17
>>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が固まり切ってないという課題があって、
標準添付は課題解決を待ってから、というのが大まかな流れというところ。



289:デフォルトの名無しさん
09/09/16 19:36:56
違うものを同じ名前で入れてしまったんで、DLを使いづらい状況にしちゃったよね

290:デフォルトの名無しさん
09/09/16 21:17:47
Net:HTTPですら(ああいうやり方だったとしても)互換性確保には心を砕いてたのになあ

ライブラリ管理者氏のDLに対する過大評価と過小評価があったのかな、と

DLを代替できるようなライブラリは出現しないだろう(そんな面倒なことは誰もしないだろう)という
「DL自体への過大評価」と
DLなんて実際のところ大して使われていないだろう(だから救済措置なしに互換性を捨てても移行コストは低いだろう)という
DLやFFIその他の「こういうことをするライブラリのニーズへの過小評価」という

この辺が移行措置なしでいきなり変えちゃった背景なのかな、と

いうところまで書いたところで念のため、アーカイブを確認してみたら、
ライブラリ管理者氏は当初DLとDL2の共存案を提案してますな

URLリンク(blade.nagaokaut.ac.jp)
>まだ先の話ですが、Ruby/DL2 がある程度使えるレベルになったら、現行の ruby-1.9 に
>マージすることを考えています。同時に、旧 ruby-dl はしばらく残しておいて、ruby-1.9
>をベースにした安定版のマイナーバージョンアップが2,3回あってから削除しようと考えて
>います。

むしろDL2をDLにしちゃえ案はmatzの提案だったという
URLリンク(blade.nagaokaut.ac.jp)
>どうしてもそうしたいというなら別ですが、1.9は「不連続」で
>「非互換」を許容する「2.0のプロトタイプ」という性質がありま
>すから、いっきにdlを置き換えてもあまり問題ないと思いますよ。

まあ2005年頃の状況(Railsが席巻しておらず、1.9移行も早々に行われると見られていた)からすると
当時は妥当な判断だったのかなあ

結果論としては失着でFFIが取って代わることになったけれども

291:デフォルトの名無しさん
09/09/16 21:18:48
1.9のDLってDL2だったのか。

なんか変だという気がしてたのが解決した。

292:285
09/09/16 21:58:56
>>288
詳細な説明どうもありがとうございます。

DL とは Unix の dlopen() を裏で呼び出すと思うのですが、
Nokogiri のソースの FFI を呼び出すところまで見て、
JRuby 環境だったら、libxml2 の so や DLL を呼び出さずに、
xerces の jar か何かのメソッドを呼び出すようにすれば、
プラットフォームに依存しない Nokogiri 環境が出来るかな、とちょっと妄想していました。
(libxml2 と xerces は API のシグネチャが違うと思うので、実際には簡単にはできないだろうけど)


293:デフォルトの名無しさん
09/09/16 23:41:08
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版になったら、困る人も出てくるのしょうか?


294:デフォルトの名無しさん
09/09/16 23:42:10
勉強始めて1ヶ月くらいなんですが
昔のVBのようにアジャイル用教育言語の香りがしてくるんですが
その辺どうなんでしょう先輩方

295:デフォルトの名無しさん
09/09/17 05:00:42
元々のPerlの正当な継承者です
Practical Extraction and Report Language

作り直しまくる内製のプログラムをやるのに最適という点でVBに似ていなくもない
Rubyプログラム自体を「ハードなウェア」として外部提供したり販売したりするのは於大臣の仕事
それで双方満足してるなら駄目じゃないが、他にやりようもあるよね

296:デフォルトの名無しさん
09/09/17 06:04:55
さすがにVBよりはずいぶんましな言語仕様だとおもうけどなあ。
でもGUI作るならVBのほうがずっと楽。

297:デフォルトの名無しさん
09/09/17 08:13:24
>>292
FFIはJRubyの場合にはJNI(Java自身のダイナミックライブラリ呼び出し機構)他を使って
同じように呼び出し出来るようにしてるはず。
その辺がFFIのウリだよね。

>>293
Cygwinでも同様みたいだね
URLリンク(blade.nagaokaut.ac.jp)

でもWindowハンドル列挙って呼び方次第で普通に落ちた気がする
ループ回してるあいだにWindowが増減した場合とかで。



298:デフォルトの名無しさん
09/09/17 10:08:53
Ruby 初心者スレッド Part 30
スレリンク(tech板)

の次スレたててください。
おながいします。

299:デフォルトの名無しさん
09/09/17 13:11:32
gitとかgemとかいっぱいありすぎでわかんねえよ
どれが最新版なんだよ

300:デフォルトの名無しさん
09/09/17 13:15:27
一定したルールはないが、 RubyForge と GitHub の両方にある場合
(で、 github を gem のsource に指定済みの場合)

gem install hogehoge でインストールされるものが hogehoge 最新安定版
gem install AUTHOR-hogehoge でインストールされるものが hogehoge 開発最新版
git clone git://hogehoge... 等の git コマンドで手元にコピーされるものが hogehoge 開発先端版

と考えていいと思う
gem install hogehoge でいいんじゃね

301:デフォルトの名無しさん
09/09/17 13:17:53
spec1.9 でテスト試したら
全く知識のないクラスの全く動作が読み解けないメソッドで
nil に対する NoMethodError が出た

もう知らん
今日は休み

302:デフォルトの名無しさん
09/09/17 13:20:49
>>300
先端と最新の違いがわかんないけどとにかく gem 使って github をソースに追加しておけばいいんだな
ありがとう

303:デフォルトの名無しさん
09/09/17 13:29:42
>>301
勉強くらいしろよ

304:デフォルトの名無しさん
09/09/17 14:34:00
ファイルの行から特定のパターンの行を出力したんですが、
その出力した行から、特定の文字を出力するにはどうすればいいですか?

305:デフォルトの名無しさん
09/09/17 14:58:51
初心者は each を惜しげもなく使え
each で書きにくくなってから他の使え
複雑なの使ってからだと each 使えなくなるぞ

特定の文字の特定のしかたによるんではないかと
正規表現で済むなら scan するか if でマッチさせて数値参照読むのが普通

306:デフォルトの名無しさん
09/09/17 14:59:06
>>304
grep したやつに sed

307:デフォルトの名無しさん
09/09/17 16:40:40
>>304
んーその説明じゃ「特定の文字」がなんなのかわからないかな。
パターンにマッチした文字列のことを指しているんだとエスパーしてみる。

File.open(filename).each do |line|
 if line =~ /(¥w+)¥.(¥d+)/
  puts "#{$1}, #{$2}"
 end
end

308:デフォルトの名無しさん
09/09/17 16:45:07
初心者スレの次を建てます。しばらくおまちください。

>>298
>Ruby 初心者スレッド Part 30
>スレリンク(tech板)
>
>の次スレたててください。
>おながいします。



309:デフォルトの名無しさん
09/09/17 16:52:05
>>308
規制されてて建てられませんでした。ごめんなさい。

310:デフォルトの名無しさん
09/09/17 17:29:44
>>309
わかった。俺が立てる。


311:310
09/09/17 17:41:11
というわけで初心者スレを立てました。

Ruby 初心者スレッド Part 31
スレリンク(tech板)

312:デフォルトの名無しさん
09/09/18 05:06:39
RubyKaigi 2009 Sessions(1st day)
URLリンク(www.nicovideo.jp)

313:デフォルトの名無しさん
09/09/18 16:27:46
>>311

314:デフォルトの名無しさん
09/09/18 16:56:17
>>293
1.8のdlはstdcallに対応してない。
スタック後処理次第でたまたまうまく行くこともある。


315:デフォルトの名無しさん
09/09/18 17:55:53
rspec でテストを書いた
rspec 特有の機能を何も使ってない単純なテストだけだということに気がついた

test/unit に書き換え中

316:デフォルトの名無しさん
09/09/18 18:39:02
>>315
そんな君には Shoulda がオススメ

317:デフォルトの名無しさん
09/09/18 18:42:54
>>312と動画うpチーム乙

318:デフォルトの名無しさん
09/09/18 19:34:14
オフィシャルサイトの検索機能死んでね?

319:デフォルトの名無しさん
09/09/18 21:45:02
>>314
マジで?

じゃあ当然WINAPIとか(あるべき論としては)全滅なわけだけど、
大概のDLのサンプルコードってWIN32APIキックしてMessageBoxを出してみる、
とかなんだよねえ……。

初心者は自動的に地獄に引き摺り込まれているわけかw

320:デフォルトの名無しさん
09/09/18 21:49:50
普通はwin32/apiを使う

321:デフォルトの名無しさん
09/09/18 22:32:07
>>314
そうだったのか〜
でも、なぜMswin版rubyだと落ちないのでしょうか

Win32API呼び出しが一回や二回ならスタックが元に戻ることが多いけど(で、たまたまうまく動く)
連続してコールバックで呼び出されるとスタックが正常に戻る機会が無く
ドンドンずれていってメモリ破壊が起こるってことでしょうか?

普通だったらWin32APIを使うところですが
コールバックできないのでdlを使いました
ググったら dlを使ったサンプルがあったので

1.9のdl(dl2)では 呼び出し規約の指定も出来て
Win32APIは単なるdlのラッパーになってますね


322:デフォルトの名無しさん
09/09/18 23:34:52
Win32APIより、win32/api

323:デフォルトの名無しさん
09/09/19 01:01:23
>>321
> でも、なぜMswin版rubyだと落ちないのでしょうか
知らん。アセンブラ吐かせて確認してみな。

324:デフォルトの名無しさん
09/09/19 03:29:03
Net::HTTP の open_timeout と read_timeout の初期値が nil なのはなんで?

325:デフォルトの名無しさん
09/09/19 04:12:16
>>324
簡単だからソース読んでみ

326:デフォルトの名無しさん
09/09/19 05:48:16
Ruby 1.9の本もやっぱり海外のほうが早いのか

Programming Ruby 1.9: The Pragmatic Programmers' Guide (Facets of Ruby)
URLリンク(www.amazon.com)

327:デフォルトの名無しさん
09/09/19 08:29:14
まあ、TCPSocket.open のタイムアウトをカウントダウンで待つ必要はないわな
1 秒とかに設定すればひょっとしたらご利益はあるかもしれないが

328:デフォルトの名無しさん
09/09/19 21:21:26
MBARIパッチっていまどうなってんのかな。
導入予定って1.8.6系だけ?


329:デフォルトの名無しさん
09/09/19 22:06:03
Asakusa.rb議事録によるとMBARIパッチはあらかた入ってる模様
URLリンク(qwik.jp)
URLリンク(qwik.jp)

ただし大物のCopyOnWriteがまだっぽい

330:デフォルトの名無しさん
09/09/20 17:43:24
あとstack cleaningだな。

入るなら1.8.8だが、個別のパッチで出てこない限りマージしようがない。
あれはマージさせたくないとしか。


331:ブグ☆2101を書いたガイ
09/09/20 19:20:51
あひーっ!ブグ☆2101はゼッさん・放置プレイ中でよ!
英語で書いたせいでロスト・イン・トランスレーション気味みていだ。
なおるまで110にちかかったブグ☆1531を見てら、おしっこちびっちゃったでよ。
ジャパニイズ・訳をruby-devにドロップしてら読んでやらなくもねい、っていう人はいるますかね?

332:デフォルトの名無しさん
09/09/20 19:36:33
日本語でおk


333:デフォルトの名無しさん
09/09/20 19:49:09
URLリンク(redmine.ruby-lang.org)
のことであろうとエスパーしつつコメントすると、
まだ4日なんだから気長に待つが吉。

目先の回避としてはrubyは原則いつでもメソッドの中身を差し替えられるから
該当するメソッドをとりあえず差し替えてしまえばOK。

334:デフォルトの名無しさん
09/09/20 20:33:32
>>331
sinとcosのほうは
x %= two * BigMath.PI(prec)
でいいんじゃないかと思うんだが、加減算のほうが速い?

あとテストが欲しい。


335:331
09/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っとやられたり
しねいてすかね?

336:デフォルトの名無しさん
09/09/20 21:28:30
あそこに書いてある、atan()の速度向上のための式が、よくわかりません。
どこか、()とかをを省略してないでしょうか。

logはふたつに分けた方が速いような気がします。
計測してませんので、なんともですが。

>>331
前の方に回避方法があります。
本体をいじるのが嫌な人はこっちでひらって調整後、あちらを呼んでください。
flgを立てて、returnのところで調整するのが本当かもしれませんが、
他人のコードをあんまりいじりたくないので。
あれだったら、行を挿入するだけです。
1行で書けるけど、目立つので3行にしました。

>>334
何故か、BigDecimalで%を使う発想がなかったので、私は違うやり方で修正しました。
そっちの方が良いかも。


337:331
09/09/20 21:50:58
atan(x) = sum 2**(2*n)*(n!)**2*x**(2*n+1)/((2*n+1)!*(1+x**2)**(n+1)) (n = 0, 1, 2, ...)
だよ。みつけたのはおいらじゃなくてオイラーさんというひとです。
URLリンク(mathworld.wolfram.com)
とかにあるから探してね。

338:336
09/09/20 22:16:37
>>337
どうも、ありがとう。
この手は慣れているつもりだったけど、ちょっとどこかでコーディングミスしているみたい。
あそこの式だと、左がn、右はxで良いのね。
で、左と右を掛け算する。
連休のうちになんとかなるでしょう。

ついでに、asin()も書くつもりだけど、公開できるかどうかは微妙。
色んな意味で。

339:デフォルトの名無しさん
09/09/20 22:37:40
>>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
09/09/20 23:03:30
>>339
>181は確かに、私のレスですね。

>338で言うところの
>色んな意味で
と、言うのは、私に数学的な素養が少ない。
と、言うことも含まれます。

専ら、電気通信の関係で、飯食ってます。
今夜は、炭素と水素の化合物で頭がクルクルなので、明日ゆっくり拝見します。

341:,,・´∀`・,,)っ-○○○
09/09/20 23:38:47
ベンゼンですねわかります

342:デフォルトの名無しさん
09/09/21 00:09:05
>>338
atanは再提出。

343:デフォルトの名無しさん
09/09/21 12:56:17
教祖はデビアン使いでウィンドウズ使ってないしなあ。

344:,,・´∀`・,,)っ-○○○
09/09/21 14:01:12
松江のカンファレンスにはMSも参加してたけどね。
IronRubyがもう少しまともなら・・・

345:デフォルトの名無しさん
09/09/21 14:50:32
未だにまともじゃない?

346:デフォルトの名無しさん
09/09/21 22:02:20
例のatan()は、完成しました。
有効桁数を100取って、xを0.001から0.999まで変えながら、
オリジナルと比較してみましたが、問題ないみたいです。
xが1.0以上でもちゃんと計算できますし(ここ重要)、速度も速いです。
リクエストがあれば、私の書いた部分だけ公開します。

実は、あれ以降ある種の罪悪感を感じておりまして、
道を歩いていたら、犬の糞を踏んづけてしまった気分だったのですよ。

でも、今日ふと思ったのですが、
あれは、数学のライブラリーとしては、とても貧弱ですよね。
sin()とcos()はあるのに、tan()はないとか。
tan()=sin()/cos() は中学校で習うのかな。
atan()があれば少しのちょこちょこで、asin()もacos()もできるみたいです。
作者は、いつ何処で誰が指摘するかニタニタしながら待っていたのかもしれません。
(と言うか、とりあえず用意したから、必要な人は勝手に拡張してちょうだいみたいな)
そう考えてみると、犬の糞ではなくて、百円玉拾った気分になって、今夜は終わりにします。

asin()はもう少しです(たぶん)。分母と分子に!のある式でやっております。
atan()からのチョメチョメでも良いのですが、出てきた値の正当性を確認するためには、
複数のものが必要だし、まぁ遊びですから。


347:346
09/09/22 21:14:17
あれは、ようやくコードが動くようになって、舞い上がって書いております。
本意は別のところにあるのですが、文章がへたなのと、表現が不適切なところもあって、
変な具合になりました。
そもそも、exp()の不具合は私が最初の発見者では無いと思います。
見切りをつけて、よそに行くひと。
黙ってじっと待っているひと。
知らないで使っているひと。
私はたまたま回避方法を発見したので、発表させて頂きました。
不愉快な思いをされた方には、お詫びを申しあげて、私は退場します。
どうもすみませんでした。


348:デフォルトの名無しさん
09/09/22 22:01:33
以前は Ruby を使ってたけど、 Scheme の方が断然書きやすい。

349:デフォルトの名無しさん
09/09/23 00:04:53
そりゃあLisperならGaucheのほうが使いやすいんでないか

350:デフォルトの名無しさん
09/09/23 00:05:56
釣れた!

351:デフォルトの名無しさん
09/09/23 00:43:41
かっこいい!釣り師(つりし)かっこいいよ!凄(すご)いね!やったね!

352:デフォルトの名無しさん
09/09/23 07:57:58
SchemeとHaskellどっち習ったほうがいいと思います?

353:デフォルトの名無しさん
09/09/23 08:11:45
>>352
Smalltalkにしとけ。

354:デフォルトの名無しさん
09/09/23 10:19:45
Rubyやってれば根っこは同じSmalltalkとかSchemeはちょろいから、そっちを先に片付けるか
目新しい考え方を学ぶのにHaskellかってかんじかな。いずれにせよぜんぶやっておk。

355:デフォルトの名無しさん
09/09/23 10:31:58
Haskell に一票。といいつつ自分は Scala 勉強中。

356:デフォルトの名無しさん
09/09/23 10:33:14
HaskellとRubyの組み合わせが最強ということですね。
ありがとうございました。他の糞ゴミ言語で時間を潰さなくてすみました。

357:デフォルトの名無しさん
09/09/23 12:58:22
くだらん煽りはいらないから

358:デフォルトの名無しさん
09/09/23 13:00:14
>>348からここまで全部俺の自演

359:デフォルトの名無しさん
09/09/23 19:07:44
おつかれー

360:デフォルトの名無しさん
09/09/24 02:31:22
関数型言語に興味があって、
積ん読してあるソフトウェアデザイン4月号の Haskell の特集を読んでみたが、
ほとんど理解できなかった

関数型言語は難しい。

Ruby などの、
・クロージャ
・メソッドの引数にブロックを渡せる
というのは理解できているつもりなんだけど

361:デフォルトの名無しさん
09/09/24 04:23:53
俺でも使えるrubyは偉大

362:デフォルトの名無しさん
09/09/24 09:01:44
String#inspect って中身なに?
信頼できない入力を inspect して eval して戻しても安全?

363:デフォルトの名無しさん
09/09/24 09:13:06
inspect した文字列は変換器に通してはいけない
まめちしき

364:デフォルトの名無しさん
09/09/24 09:16:52
eval(str.inspect) はコード実行が起こる可能性があるけど
eval(str.dump) は何も起こらないことが保証されてるんだっけ?

このへんあんま気遣ってないんだっけか、太古どっかでなんか聞いた気がする

365:デフォルトの名無しさん
09/09/24 17:49:12
eval(str.dump) == str は保証されてる
eval(obj.inspect) は何がおきるかわからない


366:デフォルトの名無しさん
09/09/24 17:57:19
String は dump をそのまま返してるんじゃねーかとも思う
あれわざわざオリジナルなの?

367:デフォルトの名無しさん
09/09/24 18:02:58
Non-ASCIIの扱いが違う

368:デフォルトの名無しさん
09/09/25 06:21:04
>>367
それは1.9のみの話? 1.8ではasciiかどうかなんて意識してなかったと思うけど、どうでしょう?

369:デフォルトの名無しさん
09/09/25 08:18:01
$ /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
09/09/25 08:21:14
なんでバックスラッシュがyenに変換されるんだろ……


371:デフォルトの名無しさん
09/09/25 08:56:00
>>370
それは君が Mac を使ってるからだよ

372:デフォルトの名無しさん
09/09/25 15:13:24
既出かもしれないけど、Ruby1.9で巨大なオブジェクトに対して存在しないメソッドを呼び出そうとするとハングする・・・
エラーメッセージを生成するためにinspect呼び出してるせいみたいだけど、これタイムアウトか何か設けて欲しいわ


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

5387日前に更新/200 KB
担当:undef