Rubyについて Part 37

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
まったりと行きましょう。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
Rubyについて Part 36
http://pc12.2ch.net/test/read.cgi/tech/1246174168/

過去スレ・関連スレは >>2-
2デフォルトの名無しさん:2009/08/23(日) 21:08:14
3デフォルトの名無しさん:2009/08/23(日) 21:08:43
4,,・´∀`・,,)っ-○○○:2009/08/24(月) 03:11:23
>>前スレの997,999
言ってなかったっけ。俺Railsでシステム書いてるって。
ただのアセンブラ厨だと思ったら大間違いだぞ。
5デフォルトの名無しさん:2009/08/24(月) 04:22:21
そういえばcellのスレで見た気がする
だんごやさんrubyからcudaを使えるようにしてよ
6デフォルトの名無しさん:2009/08/24(月) 08:15:42
有名人なのか?
7デフォルトの名無しさん:2009/08/24(月) 08:20:26
悪い意味でね。
8デフォルトの名無しさん:2009/08/24(月) 08:30:34
2chのスレでコテやる人間はもれなくアレ
9デフォルトの名無しさん:2009/08/24(月) 08:43:24
Ruby 1.9.1-p243 のWindowsバイナリは
公式からはリリースされないのですか?

公式とそのミラーサーバからは探しても
p129 までしか見つからないのですが
10デフォルトの名無しさん:2009/08/24(月) 08:51:02
少なくとも「まだ」

出ると決まったものでもないが
11デフォルトの名無しさん:2009/08/24(月) 10:21:29
1.9.1 p129のWindowsバイナリが公式のどこにあるんだ?
12デフォルトの名無しさん:2009/08/24(月) 12:28:39
前スレの話だと公式ビルドは「存在しないことになっている」んじゃなかったのかねえ
現実usa氏頼りなのは間違いないけどさ
13デフォルトの名無しさん:2009/08/24(月) 12:39:44
>>12
「公式ビルド」とは言ってないんじゃないか。
公式サイトから配布されている(第三者がビルドした)mswin32バイナリ
って意味かと。

まあ事実上usa氏のバイナリが公式みたいな感じになってるしね。
14デフォルトの名無しさん:2009/08/24(月) 13:41:32
ruby-lang.orgにも置いてあるんだな。
ftp://ftp.ruby-lang.org/pub/ruby/binaries/
てっきりビルド提供している人のサイトにリンク張ってるだけだと思ってた。

>>13のいうとおり「公式*ビルド*」という位置付けではないと思うけど。
15デフォルトの名無しさん:2009/08/24(月) 13:55:04
ftp.ruby-lang.org/pub/ruby にあるんだから、紛れもなく公式ビルドだよ
ディレクトリがそうなってる

公式ビルドでないのなら、unofficial 等とディレクトリ名を切った中に入れ「なければならない」
16デフォルトの名無しさん:2009/08/24(月) 14:04:36
17デフォルトの名無しさん:2009/08/24(月) 14:15:45
公式サイト、1.9.2 preview1のバイナリはあるのに
1.9.1-p243のバイナリがないというのもおかしな話だな
リリースされた日は同じだったのに
18デフォルトの名無しさん:2009/08/24(月) 14:19:58
>>15
公式勘違いの原因の一つになってることは間違いないと思う
19デフォルトの名無しさん:2009/08/24(月) 14:20:45
以前ささだ氏あたりがインタビューで言ってたとおり
自前のコンパイルファームが必要なんだろうな

usa氏の善意と厚意に頼ってる以上、
リリースと同時にバイナリビルド出せなんて話は出来ないし
20デフォルトの名無しさん:2009/08/24(月) 14:24:17
だが待って欲しい
「全世界のユーザーがうさたんの好意頼りだよねー」とか言いまくれば
問題は案外コストなしに解決するのではないだろうか
21デフォルトの名無しさん:2009/08/24(月) 14:25:47
今なんかさらっと酷いレスが

>>19
総体的に必要なものってなーに
やっぱ専任のフルタイム正社員?
22デフォルトの名無しさん:2009/08/24(月) 14:39:32
>>19
でも1.9.2-preview1はたしかリリースとほぼ同時に
公式サイトのディレクトリにあったと思う

1.9.1-p243だけリリースしなかった理由は何だろう
23デフォルトの名無しさん:2009/08/24(月) 14:40:34
バイナリなんか配らなくてもいいよ別に
公式はソースで配るもの、バイナリは各ディストリビュータにまかせればよい
24デフォルトの名無しさん:2009/08/24(月) 14:44:07
しかしWindows版は自分でビルドするにはかなり厳しい条件だぞ
25デフォルトの名無しさん:2009/08/24(月) 14:49:21
>>14-15のってだれが作ってくれてるの?
26デフォルトの名無しさん:2009/08/24(月) 15:34:55
どんな環境でもコンパイルするだけ☆ という状態になってねーという話だろ
27デフォルトの名無しさん:2009/08/24(月) 19:27:10
>>24
それでも昔に比べればだいぶ楽になったけどな…

つうかWinだと拡張ライブラリがめんどくせえ
28デフォルトの名無しさん:2009/08/24(月) 19:48:26
だんごはこのスレでもコテつける気なの?
29,,・´∀`・,,)っ-○○○:2009/08/24(月) 21:39:03
誰でも名前欄に入れられる文字を入れてるだけだからコテだという意識はない
30デフォルトの名無しさん:2009/08/24(月) 21:40:16
>>24
「Windowsユーザーはしね」
これが公式見解でおk
31デフォルトの名無しさん:2009/08/24(月) 21:49:38
非推奨なもの、使ってほしくないものは使いにくくしておくという
Ruby の設計思想がちゃんと反映されていていいじゃないかw
32デフォルトの名無しさん:2009/08/24(月) 21:51:18
force_encoding と Windows 用ソースは理念が同じだ
33,,・´∀`・,,)っ-○○○:2009/08/24(月) 21:59:50
JRubyやIronRubyで良いじゃんと言えるレベルにはなりつつある
34デフォルトの名無しさん:2009/08/24(月) 22:25:22
>>20
だからそれじゃダメだっつってんだろw

>>24,27
だからmingwが解になるんじゃないの?
VC7以降のmsvcrt.dllの問題もないし、だから既存の拡張ライブラリも使えて、
最新のgcc使ってコンパイルできるし、
ttp://www.up-cat.net/MinGW%25C7%25AD%25B2%25CA%25B8%25A6%25B5%25E6%25BD%25EA%25A5%25D1%25A5%25C3%25A5%25AF.html
あたりで適当に構築したMingw/MSYSで普通にビルドできるし。

>>30
で、その結果として
ttp://www.infoq.com/jp/news/2009/08/ruby-installer

って話になって海外勢が自前で準公式ビルド作るってことになってるんでしょ?
まあ実際こっちの方がいい流れだよね。
35デフォルトの名無しさん:2009/08/24(月) 22:41:51
>>30
そんなふうにうそぶいてられたのはActiveScriptRubyが出る前までじゃね
つまり約10年前まで。
36デフォルトの名無しさん:2009/08/24(月) 22:54:36
Windowsユーザーは役にたたないくせに文句ばっかり。
37デフォルトの名無しさん:2009/08/24(月) 23:07:21
と、いうことにすると都合がよいのですね? (voidAA略)


Unix方面の人間としても間口を広げる流れに逆行するような
「無能な味方」は要らないッス。

そもそも、Unix方面の功績を笠に着るわりには何か貢献したのかどうかも
怪しい>>36にそんなことをいわれても微妙すぎるというか、
_whyレベルの人間ならともかく、明日>>36がいなくなってもRuby界隈は普通に回り続けるのでは
38デフォルトの名無しさん:2009/08/24(月) 23:37:51
まぁ、RubyInstallerの話は非常に歓迎しています、素晴らしい
39デフォルトの名無しさん:2009/08/25(火) 00:02:01
でもユニックスよりもウィンドウズのほうが便利なんだよねえ。
ちなみに教祖が使ってるデビアンはリナックスであってユニックスじゃないよ。AT&T由来のソースも含んでないし。
40デフォルトの名無しさん:2009/08/25(火) 00:14:23
>>39
>AT&Tのコード
正確には一瞬SGIのうっかりさん経由で混じったことはある
(そしてそれが原因でSCOに絡まれたことがある)

matzはUbuntu使わんのかねえ?
41デフォルトの名無しさん:2009/08/25(火) 00:39:39
>>39
未だにLinuxをUNIX側からつまはじきにしたい奴がいるんだな…
42デフォルトの名無しさん:2009/08/25(火) 00:42:45
まあSUSに準拠してない以上はUNIX-likeとよぶほかあるまい
BSDもそうだけど。
OSXやSolarisはちゃんとUNIXなんだよな
43デフォルトの名無しさん:2009/08/25(火) 00:49:53
SolarisとFreeBSDとLinuxを一まとめで「PC-UNIX」って呼んだら怒る人ってやっぱいるのかねぇ?
44デフォルトの名無しさん:2009/08/25(火) 01:28:13
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本の出版も予告されているが、とうとう「カッコの時代」が来たのだろうか…。
45デフォルトの名無しさん:2009/08/25(火) 01:40:36
>>27
楽になったか?
今さらVC6用意するとか無茶にも程があるだろ
最新のOSじゃインストールすら出来ないし
そのビルド環境用のPC用意するだけでも凄い手間だわ
事実上個人でビルドしてるやつなんて居ないに等しいでしょ

>>34
MinGWでビルドしたバイナリは、mswin32と比べて
実行速度とかどうなの?
別に根拠は無いけど、MS製のコンパイラの方が
効率の良いバイナリ吐きそうな気がするけど
46デフォルトの名無しさん:2009/08/25(火) 02:19:55
http://extralogical.net/2009/07/ruby-one-niner/
ruby 1.9に移行した人の体験談

Tempfile#unlinkに後方互換性のない変更があったんで、そこだけ直したんだってさ
47デフォルトの名無しさん:2009/08/25(火) 02:58:13
>>45
mingwのほうが速い
48デフォルトの名無しさん:2009/08/25(火) 03:11:58
feedbackもまともによこさず、手元だけで直して得意がっちゃう人って恥ずかしいなぁ
49デフォルトの名無しさん:2009/08/25(火) 04:10:58
おこぼれを貰えないことを逆恨みする乞食が
「こいつは得意がっている」みたいなキャラ設定考えて
少しでも溜飲下げようと必死に人格攻撃するほうが恥ずかしいかも
50デフォルトの名無しさん:2009/08/25(火) 04:17:00
マクは厳密にはunixじゃ無いけどな。
51デフォルトの名無しさん:2009/08/25(火) 05:13:33
>>45
VC6 vs 今のgccの比較になるから
mingw版の方が全然速い。

↓によると1.8系列の場合はmswinより2倍以上mingwの方が速いとのこと。
ttp://antoniocangiano.com/2009/08/04/a-faster-ruby-on-windows-is-possible/

VC6が出たのが11年前なんだから当然といえば当然だわな
そもそも今正規ルートでVisualC++6.0入手しようとしたらMSDNぐらいしかないんじゃないか?
もはやサポートも終息してるしな。

>>49
なにをいってるんだ、>>48>>46の情報を元にパッチを作成して
MLに投げるなりmput氏のGitHubにpull requestするなりしてから
>>48を書き込んだに決まってるだろう。

じゃなきゃ、>>48が口先だけな上に自分の言動で自爆する間抜けになっちゃうだろwww
52デフォルトの名無しさん:2009/08/25(火) 08:40:53
>>45
27 だけど俺が言ってるのは mingw のことだ
1.6 初期のころは mingw でもいろいろ面倒だった
53デフォルトの名無しさん:2009/08/25(火) 10:15:48
>>50
え?
54デフォルトの名無しさん:2009/08/25(火) 17:00:14
UNIX のように振る舞うものはすべて UNIX である でいいじゃんもう
55デフォルトの名無しさん:2009/08/25(火) 19:24:33
みにくい雛鳥の正体はペンギンってオチか
56デフォルトの名無しさん:2009/08/25(火) 20:10:20
今ってMinGW/MSYSで簡単にmingw版ビルド出来るんだな

msysgit絡みでMinGW/MSYS自体にGoogleのテコ入れが入ったのが
デカかったのかな
57デフォルトの名無しさん:2009/08/25(火) 20:23:50
UNIXとUnix (UNIX-like)の区別くらいはしてもいいと思う
58デフォルトの名無しさん:2009/08/25(火) 20:33:16
UNIX®
59デフォルトの名無しさん:2009/08/25(火) 21:13:45

2009/08/25付けの記事で、Shoooesが紹介されているんだけど、
これって、_whyの作品?
ttp://journal.mycom.co.jp/news/2009/08/25/041/?rt=na

いなくなったタイミングで紹介するはどうかと思う。
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を使わずに適切に
記述する方法を教えてください。
61デフォルトの名無しさん:2009/08/25(火) 21:37:16
>>60
まさに
ttp://wp.serpere.info/archives/422

ttp://www.openssl.org/docs/crypto/EVP_BytesToKey.html
に書いてあるとおりじゃね。

PKCS5 v1.5の一部適合品程度でしかないから
どうしてもPKCS5 v1.5じゃないと困るケース以外は
v2.0を使えと。
62デフォルトの名無しさん:2009/08/25(火) 21:40:53
そもそも、今時DESって暗号化しているうちに入らないぞ、AESにしとけ。

しかし、暗号化絡みのAPIはもうちょっと親切にラッピングしてあげた方がいいと思うんだが。
63デフォルトの名無しさん:2009/08/25(火) 21:49:07
「デフォルト」がありえない分野なので、手作業できめ細やかに設定できるようになっています
暗号についての知識がない人が暗号使うとかありえないのでこれで正しい動作です
64デフォルトの名無しさん:2009/08/25(火) 22:15:41
>>63
言いたい事は分かるけど、>>60を見た上でも同じコメントなのかな?
65デフォルトの名無しさん:2009/08/25(火) 22:21:43
普通にデフォルトでsshでrootログインまでできてしまう
Linxuディストリに対する嫌みですねわかります
66,,・´∀`・,,)っ-○○○:2009/08/25(火) 22:29:26
root許可してくれないとWinSCPのエディタで/etc配下とか弄りたい時に困るからな
67デフォルトの名無しさん:2009/08/25(火) 22:38:08
Linuxってデフォルトのまんまだとsuできないとか制限あったっけ?
FreeBSDだとwheelグループに追加してやんないとダメだけど。
68デフォルトの名無しさん:2009/08/25(火) 22:40:02
Ubuntuはsuできない
sudo su
ならできるけど
69,,・´∀`・,,)っ-○○○:2009/08/25(火) 22:42:57
ubuntuがそう。
しかしroot追加すればrootログインできるようになる。


ちなみに言うとMacOSもデフォがroot禁止だったような。
70デフォルトの名無しさん:2009/08/25(火) 23:17:24
emacsでsudoになればいいじゃん
71デフォルトの名無しさん:2009/08/26(水) 00:07:28
普通のおじさんおばさんが使うなら、ubuntu流で良いでしょ。
rootになっているのを忘れて、危ないことを平気でするよりは。

emacsはどうも、なじめない。
初めてのエディターがemacsでした、みたいな人は良いのでしょうね。
おいらは、EDLINだったので、その後win系のエディターに流れてしまって、今はgedit。
これが、機能が少ないので...

話をRubyに戻すと、皆様のおかげで、ubuntuのRuby1.9が
ruby 1.9.0 (2008-06-20 revision 17482) [i486-linux]
のまんま放置されてる理由が、なんとなく理解できました。
72デフォルトの名無しさん:2009/08/26(水) 00:26:35
>>71
UbuntuのRubyはDebian由来で、Debian側としての1.9の扱いが決まらなかったのが原因。
http://www.mail-archive.com/[email protected]/msg00585.html
73デフォルトの名無しさん:2009/08/26(水) 00:30:02
>>71
多くの人がemacsに馴染めないのは、デフォルトのカーソル移動の気持ち悪さ
なにが悲しくて上下左右に、両手をフル稼働させなきゃいかんのだ
その点vi(m)はまことに素直でよろしい

>>72
Debianって、唯一のRuby公式サポートOSじゃなかったの?
74デフォルトの名無しさん:2009/08/26(水) 00:41:52
>>73

Ruby的には、ソース取ってきてconfigure && make testできるところまで。パッケージとしてどう料理するかはDebianの仕事。
7571:2009/08/26(水) 00:55:43
>>72
"ハーイ おいらとダイゴさんは"まで読んだ。

ついでなので、Rubyに密着している鳥を教えて下さいませ。
76デフォルトの名無しさん:2009/08/26(水) 00:58:23
なんでいきなり喧嘩腰よ
77デフォルトの名無しさん:2009/08/26(水) 01:01:29
Momonga
78デフォルトの名無しさん:2009/08/26(水) 01:10:47
>>73
>>74 にある通りで、Ruby本体としてはパッケージングまではタッチしてませんね。
一般の人が使いやすいようにパッケージングするのは、
Debianだったらメンテナのやまだあきらさんのお仕事。
ちなみに、Windowsだとうささん・・・じゃなくて、
ActiveScriptRubyのartonさんとか、RubyInstallerの人とか。

>>75
逆に考えて、UbuntuにRuby 1.9.xのパッケージが入るまで1.9は使わない、
というのが正解だと思いますね。
7971:2009/08/26(水) 01:13:32
>>77>>75 に対してのレスと思ってよろしいのでしょうか?
どちらも、日本に関係してますね。
差し支え無ければ、MomangaでのRuby1.9のバージョンを教えて下さいませ。
80デフォルトの名無しさん:2009/08/26(水) 01:14:23
なんつーか、切ない片思いを連想した
違うのかもしれないけど、安定した拠点は必要だよねきっと
81デフォルトの名無しさん:2009/08/26(水) 02:33:31
Momonga Linux 6では1.9.2-preview1ですね。
http://developer.momonga-linux.org/wiki/?Momonga+Linux+6+Release+Note

ちなみに、Momongaは2007年10月(1.9.0リリース前、まだM17N絡みの変更がガンガン入ってた頃)に
1.9系を本格導入している勇者様。
http://www.momonga-linux.org/archive/Momonga-devel.ja/msg03541.html
1.9のヘビーユーザが多いはずだと思うんだけど、
それにしてはMomonga方面からバグ報告が来た記憶が無いなぁ。
82デフォルトの名無しさん:2009/08/26(水) 02:35:28
と、書いてから検索してみたら普通に来てますね。
報告ありがとうございました。
83デフォルトの名無しさん:2009/08/26(水) 03:41:30
別に密着してるわけじゃない
極力最新を導入するのが Momonga



mph で恨んで意趣返しをしているのではないはずだと思いたい
84デフォルトの名無しさん:2009/08/26(水) 08:35:13
>>69
WinSCP使ってるならリモートのアカウントのshellを
内部でsudoとかsuするものにするのが定石だった気がする

応用すると踏み台サーバの特定アカウントにssh接続すると
別のサーバのrootでログインする仕掛けとか作れるようになる
85デフォルトの名無しさん:2009/08/26(水) 08:39:52
まだレス表示してんの
86デフォルトの名無しさん:2009/08/26(水) 08:43:28
>>83
mphはRubyが悪いわけじゃないもーん
yumかaptに乗り換えなかったほうが悪いんだもーん
87デフォルトの名無しさん:2009/08/26(水) 13:13:21
>>56
昔はもっと面倒だったの?
88デフォルトの名無しさん:2009/08/26(水) 15:56:18
>>63
>暗号についての知識がない人が暗号使うとかありえないので

なんで?
89デフォルトの名無しさん:2009/08/26(水) 16:09:08
>>63 >>88
「知識がない人が暗号使うとかありえない」は、
「暗号は利用が難しく、少し間違った使い方をするとすぐに脆弱になるので、
知識がない人は使うべきではない」という趣旨じゃないかな。
ただ、今の世の中そんな牧歌的な時代じゃないと思うけど。

「デフォルトがあり得ない」っていうのはちょっと認識が古い気がする。
初期配列とかは暗号方式によってはちょっと気を抜くと脆弱なものを選んでしまったりするので、
下手にいじるよりはデフォルトを使うべきなように思える。

暗号の世界は日々進歩しており、昨日は「知識がある」という扱いにできた人が、
今日は「知識がない」という扱いになったりするので、
そろそろ知識がない人でもそれなりに扱えた方がいいんじゃないかなぁ。
90デフォルトの名無しさん:2009/08/26(水) 17:05:40
>>89
さんくす。
素人が下手に暗号をさわると脆弱になるというのはその通りだと思うので、
だからこそ素人でも使えるようなライブラリやインターフェースを
知識のある人に用意してほしい。
「知識がない人が暗号使うとかありえない」という姿勢こそありえない。
91デフォルトの名無しさん:2009/08/26(水) 17:15:14
どっちかっていうと、
「暗号の知識のない人が(実装よりという意味で)低水準のライブラリを直接キックとかあり得ない」
ってのが正確な表現かな

HTTPSを初めとしてエンドユーザとして使う側は
今でも(暗号化されてることすら大して意識せずに)使えてるわけで
エンドユーザが使うものを作る側はある程度わかってないと
最終的にエンドユーザが不幸になる気がする

似たようなポリシーの違いでメルセンヌツイスタの作者とクヌースが揉めてた記憶があるなあ
92デフォルトの名無しさん:2009/08/26(水) 17:28:17
60じゃないけど質問。

>>61
>
>PKCS5 v1.5の一部適合品程度でしかないから
>どうしてもPKCS5 v1.5じゃないと困るケース以外は
>v2.0を使えと。

これはつまり、現状のrubyではv1.5は用意されているけどv2.0を使う方法は提供されてないということ?
93デフォルトの名無しさん:2009/08/26(水) 17:34:41
自前でやれってことだな
94デフォルトの名無しさん:2009/08/26(水) 17:36:46
>>92
60が出してきたblogの別記事に情報がある
ttp://wp.serpere.info/archives/530
一言で言えば、使える。
ただしOpenSSL由来の制限アリとのこと
95デフォルトの名無しさん:2009/08/26(水) 17:41:18
どこまで初心者想定すればいいのかというのは難しい問題
抽象化が完璧にできないからこそ低レイヤへのアクセス手段を残してあるわけで、
そこをして初心者に優しくないと言われてもそれはそれで結構困る

永遠の初心者を想定すべきなのだろうか
96デフォルトの名無しさん:2009/08/26(水) 17:53:03
初心者がAESのような暗号方式を特定しているAPIを触れるのはよくない。
なぜかというと、その方式が時代遅れになってもそれを使い続けられちゃうから。

>>91 も出してるけど、通信路の暗号化だったらhttpsを使ったほうが、
見落としがちななりすましの防止も図れるし、暗号方式が隠蔽されるので望ましい。
97デフォルトの名無しさん:2009/08/26(水) 18:08:01
>>94
さんくす。でも公式にドキュメント化してないようなので、使うべきかどうかは判断に困るな。

>>95
>どこまで初心者想定すればいいのかというのは難しい問題
そうなんだけど、だからといって「知識がない人が暗号使うとかありえない」なんていうのはやめてほしい。



98デフォルトの名無しさん:2009/08/26(水) 18:11:53
知識は特別なのか?
選ばれた人間しか入ることを許されない図書館の奥に封印された秘儀なのか?
答えは否だ
学べ
99デフォルトの名無しさん:2009/08/26(水) 18:47:00
まあ、漠然と暗号かがしたい、とかじゃなくて
PKCS#5でやりたい、とかの一点指名で使おうとしてる人たちが
ライブラリの想定利用者だろうから
あの抽象度が限界な気もする
100デフォルトの名無しさん:2009/08/26(水) 20:03:03
>>98
知識0の状態からあの抽象度のレベルを安全に扱えるようになるまで何年かかるんだろう。
101デフォルトの名無しさん:2009/08/26(水) 20:34:33
>>98
共通鍵暗号を使いたいというだけのことに、PKCS5のバージョンがどうのこうのという知識を知らないといけないのか?
んなわけないだろ。
公開鍵方式と共通鍵方式の違いは「勉強しろ」で片付けていいだろうけど、>>60ででているようなことは
たいがいの人は知らなくてもすむはずのこと。
使いやすくする工夫をほったらかしといて「学べ」とかアホじゃねーの。

102デフォルトの名無しさん:2009/08/26(水) 20:44:38
>>101
一般論としてはまったくそのとおりなんだけど、
***このライブラリに限っては***、「共通鍵暗号を使いたいというだけ」の
人が使うようなものじゃないから微妙な話になってるんだと思うよ。

簡単手軽に使える「暗号化ライブラリ」じゃなくて「OpenSSLのラッパ」だから。

だからこそソースコードにわざわざ
>* WARNING: This method is only PKCS5 v1.5 compliant when using RC2, RC4-40, or DES
>* with MD5 or SHA1. Using anything else (like AES) will generate the key/iv using an
>* OpenSSL specific method. Use a PKCS5 v2 key generation method instead.
とか書いている(ライブラリ使用者がここまで読むことを想定している)わけで。

「共通鍵暗号を使いたいというだけ」の人は、この「OpenSSLのラッパ」を使って実装された/されるであろう
「使いやすいライブラリ」を使った方がいいと思う。
103デフォルトの名無しさん:2009/08/26(水) 21:11:37
要はもう少し高レベルで、もう少しお仕着せなライブラリが必要だってことだよね
既存のでいいライブラリってある?
104デフォルトの名無しさん:2009/08/26(水) 21:13:00
いや必要充分だと思うぞ
いわゆる残り5パーセントとか2パーセントとかそのへんの話だぞこれ
10560:2009/08/26(水) 21:16:26
私は別にRubyの実装が悪いと責めているつもりはありません。
低レベルな方法も用意されているので、問題ではないと思います。

ただ、マニュアルの記載内容(以下)は直した方がいいのではと思います。
(以下、マニュアルから引用)
 encrypt(key, iv) 暗号化の準備をする。iv は initialization vector、
 必要なら使用される。このAPIに引数を渡すのは推奨しない。パスワードから
 鍵を生成する場合は、 pkcs5_keyivgenを使用すること。

ttp://www.ruby-lang.org/ja/man/html/OpenSSL_Cipher_Cipher.html

この説明だけ見ると、初心者はpkcs5_keyivgenを利用すればいいと判断して、
詳しく調べることに行き着かないのでは?「pkcs5_keyivgenの方法も、現在
では推奨されていない。Ruby 1.9/1.8.7のOpenSSL::PKCS5.pbkdf2_hmac_sha1
を使用すること。また、OpenSSL の将来のバージョンでは、OpenSSL::PKCS5.
pbkdf2_hmacでsha256を利用することを推奨する(○年○月現在)。」
などと記載した方がいいと思います。
セキュリティに関することなので、日付を入れたらどうですか?

Rubyは少ない記述で楽しく書けるのがウリだと思うので、「知識をつけて
低レベルから書かないから悪い」という考え方は嫌ですね。

ただ、人手も足りなくて、他にもやることがあるでしょうから、この部分を
標準で対応しないのは、仕方ないと思います。
106デフォルトの名無しさん:2009/08/26(水) 21:18:02
「『共通鍵暗号を使いたいというだけ』の 人」って、なんのために使うの?
ユースケースが知りたい
107デフォルトの名無しさん:2009/08/26(水) 21:19:49
ブルース・シュナイアーの『暗号技術大全』だと

自分で実装とか考えるな。ましてオレオレ暗号は最悪
専門家でない限りは低水準の技術を裸で使うな
広く用いられているライブラリで、高水準のプロトコル(SSL等)を使え

だったっけ。まあプロでもたまに失敗する世界で、
いわんや素人においてをやってのは分かる
108デフォルトの名無しさん:2009/08/26(水) 21:21:49
>>105
もっともな話なので、るりまのRedmineにチケット起こすのがよいと思う。
http://redmine.ruby-lang.org/projects/show/rurema
109デフォルトの名無しさん:2009/08/26(水) 21:43:32
opensslライブラリが
・直接使われるケースが少ないライブラリのためのライブラリ
・技術の分野的な経緯から低水準で独自実装を試みることが推奨されない

なんていう超々例外的なライブラリだから一般論をそのまま当てはめるのが難しいんだよね


>>105
ドキュメントも2006年頃が最後の更新くさいね。
今みたいにそれなりに広く使われることを想定してなかった時代だったんだろう。
改善する必要があるのはそのとおりだろうね。
11060,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の実装も良くないかも
11160,105,110:2009/08/27(木) 00:40:11
ちなみにコードはこんな感じです。間違ってたらすいません。
require 'openssl'
require 'pbkdf2'

obj = PBKDF2.new do |p|
p.password = "s33krit"
p.salt = "nacl"
p.iterations = 5000
p.hash_function = 'SHA512'
end

key = obj.bin_string[0,32]
iv = obj.bin_string[32,32]

a123 = "0123456789"
enc = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
enc.encrypt(key, iv)
a = enc.update(a123)
b = enc.final
s = a + b

dec = OpenSSL::Cipher::Cipher.new('aes-256-cbc')
dec.decrypt(key, iv)
a = dec.update(s)
b = dec.final
p a + b #=> "0123456789"
112デフォルトの名無しさん:2009/08/27(木) 00:44:02
OpenSSLやそのthin wrapperを知識のない人が直接触るというのがそもそも間違ってる。
知識のある人ための道具箱であって、知識のない人はOpenSSLを使った
バカチョンなライブラリが用意されるのを待て。

とドキュメントの冒頭に書いておけば……。
113デフォルトの名無しさん:2009/08/27(木) 00:57:00
> OpenSSLを使ったバカチョンなライブラリが用意されるのを待て。
require 'open-uri'
URI('https://example.org/').read
11479:2009/08/27(木) 22:10:41
>>81
サンクス
115デフォルトの名無しさん:2009/08/27(木) 22:49:45
rubyのバージョン変えてみたら
116デフォルトの名無しさん:2009/08/27(木) 23:02:00
大量に外部データや変数や履歴使って小1時間活用していた irb1.9 が落ちた
氏ね
117デフォルトの名無しさん:2009/08/27(木) 23:21:13
再現性なく落っこちることがあるよね
仕方ないとはいえ勘弁して欲しい
118デフォルトの名無しさん:2009/08/28(金) 00:15:18
参照とか代入とかのレベルでも、1.9と1.8では、ずいぶん差がありますよ。
CPUのクロックが上がらない今時では、画期的。

ただいま、Rの分布関数を移植中でありんす。(正規分布とかポアソンとか)
出来上がって公開できるかどうかは、あちらのライセンスの都合もあるので、わからねっす。
わっしは、ぶいぶい使うっす。
119デフォルトの名無しさん:2009/08/28(金) 00:32:56
tdiaryも1.9で長時間使ってるとなぜか負荷が高くなったり
落ちるみたいだね。まあこの辺は枯れてるか枯れてないかの問題だから
仕方ないけど
120デフォルトの名無しさん:2009/08/28(金) 01:34:04
Mac だけど 1.9.1-p243 をソースからビルドしてたら、make check のときに
ターミナルが応答しなくなった。make test は問題なかった。何が原因なのか
は分からないが、2回ためして2回とも発生したからちょっと怖い。

1.9.1 はヤメテ 1.8.7 を使い続けようか。
121デフォルトの名無しさん:2009/08/28(金) 02:02:36
もうすこしだ。そこで原因を特定したら勇者になれる。
おそらくスレッドだな
122デフォルトの名無しさん:2009/08/28(金) 06:14:36
p243ってRails動かなかったから一個前使ってるわ
123デフォルトの名無しさん:2009/08/28(金) 13:13:31
ROMA本格稼働開始。
Rubyでどれだけパフォーマンスでるのか楽しみ。
124デフォルトの名無しさん:2009/08/28(金) 14:39:15
>>121
test/drb/test_drb.rbとtest/drb/test_drbssl.rbで止まるっぽい
125120:2009/08/28(金) 21:48:45
>>124 は私ではありません。(念のため)

コンパイラを変えてビルドしてみたら、ちょっと不思議だった。いつもは Xcode に付いている
Apple 謹製の gcc-4.0.1 を使うのだけど(>>120 のときも)、これを Fink で入れた gcc-4.3.1
に変えると parse.c のコンパイルで止まる。10分近く放置しても話が先に進んでないので何か
あったのだろうと推測する。でも何があったかは知らない。

Rails は使わないし、そもそもローカルでシェルスクリプトの替わり程度の使い方しかしていな
いので、イマイチ問題の解決に関心を持てない。
126デフォルトの名無しさん:2009/08/29(土) 01:23:45
parse.cのコンパイルってmake checkじゃないじゃん
127デフォルトの名無しさん:2009/08/29(土) 01:42:17
>>126
うん。コンパイラを変えてみたら make で止まった(ように見える)というお話。別のコンパイラなら
make も make test も通るけど、make check で転けた。make check なんてしなくても良いだろうか
ら、そんなことキニシナイというのもアリだとは思う。
128デフォルトの名無しさん:2009/08/29(土) 01:58:30
日本語でおk

あと、それはgcc-.4.3.2のバグということで決着がついてる。10分といわず
30分1時間放置してればparse.cのコンパイルは終わる。あるいは4.3.3を使えば直ってる
129名無しさん@そうだ選挙に行こう:2009/08/30(日) 07:58:23
久しぶりにローカルで使ってるrefeとリファレンスマニュアル更新したんだけど

/home/hoge/doc/ruby-refm-1.9.1-dynamic-20090829/bitclust/lib/bitclust/database.rb:134:
in `initialize': illegal access mode r:EUC-JP (ArgumentError)

というエラー吐いて使えなくなってた。
該当行
>File.open(realpath(rel), 'r:EUC-JP') {|f|

File.open(realpath(rel), 'r') {|f|
にしてやればまあ動くようになるんだけど、とりあえず自分だけが使う分にはこれでいいのかな?
Rubyのバージョンはruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]

# EUC-JPという文字コード指定みたいなのは1.9からの機能?
130名無しさん@そうだ選挙に行こう:2009/08/30(日) 10:20:25
>>129
それで正解。

というかrefeって1.8用と1.9用で分かれてないのか……。
131名無しさん@そうだ選挙に行こう:2009/08/30(日) 10:40:20
せめて 1.8.7 では r と r:* は同一視して欲しかったんだが、まあ仕方ないわな
132名無しさん@そうだ選挙に行こう:2009/08/30(日) 13:27:57
>>131
そうなってないっけ?
133名無しさん@そうだ選挙に行こう:2009/08/30(日) 14:30:15
カルト指向言語
134名無しさん@そうだ選挙に行こう:2009/08/30(日) 16:06:13
age荒らしは無視で
135名無しさん@そうだ選挙に行こう:2009/08/30(日) 17:59:34
Rubyってプラットフォーム別のバイナリのダウンロード数の統計とかとってる?
Firefoxみたいにダウンロード数=ユーザー数みたいに錯覚させるキャンペーンとかやればいいのに
136名無しさん@そうだ選挙に行こう:2009/08/30(日) 18:09:19
>>135
思いつきは結構だけどれが誰によって配布されてるかもう少し下調べしたらどうだ?
137名無しさん@そうだ選挙に行こう:2009/08/30(日) 18:54:12
今のところそこまでユーザ数をアピールするインセンティブがないと思う。
やるとしたら、1.9のダウンロード数と1.8を比べて1.9のアピールくらいかね。

まぁ、普通の人はActiveScriptRubyとかそれぞれのOSのパッケージマネージャ使うんだよな
138デフォルトの名無しさん:2009/08/30(日) 21:56:42
えっと、ここでもいいかな。
正式には、窓口あるんでしょうがね。

BigDecimal/math.rbの def exp(x, prec)
xに負数が来ると、うまくないです。

n += x.to_i if x < 0
の1行を適当なところに挿入すると良いです。

xが負のとき、ループの脱出の条件のところは、
n2 = n * 0.9
として、n2に置き換えても精度が保てます。
xが-1000より小さいと、実行が分単位になるので、確認不足かもね。
なので、0.9の部分は話半分ってことで。

1.9.1の243でも直ってなかった。

139デフォルトの名無しさん:2009/08/30(日) 22:02:31
140138: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)
とかしないとエラーになるかもね。
141138:2009/08/30(日) 22:41:12
>>139
あ、どうも。これは窓口の紹介なのですかね。

BigDecimalのpower2がずっと工事中のようで、
これは、
x ** y
の、yの部分がfloatの場合でも可能となるのかな、
と、ずっと待っておりました。

xをlogして掛け算してexpすりゃいいじゃん、
と気付いたのは、こないだなんですよ。
放置が永いので、他に何かあるのでしょうか。

とりあえず、BigDecimal/math.rb
を、ちょっと修正してCで書いて貰ったらすごくしあわせ。
142デフォルトの名無しさん:2009/08/30(日) 23:09:14
>>138
>>139のURLで、アカウント作ってチケットを新規に投げる。
143デフォルトの名無しさん:2009/08/31(月) 00:57:12
gem install sqlite3-ruby 実行時に、以下のエラーが出ました。
ERROR: Error installing sqlite3-ruby:
sqlite3-ruby requires Ruby version > 1.8.5

OS は CentOS 5.3 x86_64 です。
yum で ruby や sqlite 等を入れています。

gem search -r sqlite3-ruby の結果は
sqlite3-ruby (1.2.5) しか出てきません。

これは強引に ruby のバージョンを上げるしかないのでしょうか。
144デフォルトの名無しさん:2009/08/31(月) 01:25:49
>>141
俺らが半端に伝言ゲームするより>>139
問題の所在と対処をわかっているお前さんが
ダイレクトにひっぱたくのが良いと思われる。
145デフォルトの名無しさん:2009/08/31(月) 05:13:13
システムの使い方わかってる人間が的確な方法で指摘したほうがいいと思うが
146デフォルトの名無しさん:2009/08/31(月) 06:05:28
○○ですかね。

○○しあわせ。


ぶつくさ言わずに行動起こせ。

〜かね。
〜しあわせ。
とかいうやつは、たいてい口だけのやつが多い。
147デフォルトの名無しさん:2009/08/31(月) 06:14:03
で、その下にいるのが、お前のような「口だけの奴評論家」。
148デフォルトの名無しさん:2009/08/31(月) 06:18:17
まあオプソなんてそんなもの。
馬鹿が無料でソースまで公開してるソフトを使い回して、いかに自分の仕事を効率よく終わらせるかしか価値無いし。
そして自分のソースは公開しないのが手間がかからなくていい。
149デフォルトの名無しさん:2009/08/31(月) 06:48:59
と、いうのがいわゆる中二病でございます
150デフォルトの名無しさん:2009/08/31(月) 07:49:30
要するにRubyはうんこ言語ってことで。
151デフォルトの名無しさん:2009/08/31(月) 07:50:01
他人のことを口だけと言って何になるのかねえ
152デフォルトの名無しさん:2009/08/31(月) 07:55:25
何になるのかねえと言って何になるのかねえ
153デフォルトの名無しさん:2009/08/31(月) 14:12:54
早く宿題でもやってろ
154デフォルトの名無しさん:2009/08/31(月) 15:32:40
>>138

>>144のいう通り、もっと具体的にredmineへ。
お前さんの話だけじゃ何をどう再現すればいいのかわからん。

$ ruby-1.9.1 -v -rbigdecimal -rbigdecimal/math -e 'include BigMath; p exp(BigDecimal.new("-1"), 3)'
ruby 1.9.1p281 (2009-08-09 revision 24476) [i386-darwin9.6.0]
#<BigDecimal:1491a4,'0.3678794411 7144232158 0284427234 79524E0',36(72)>

$ ruby -v -rbigdecimal -rbigdecimal/math -e 'include BigMath; p exp(BigDecimal.new("-1"), 3)'
ruby 1.9.2dev (2009-08-31 trunk 24720) [universal.x86_64-darwin9.0]
#<BigDecimal:1002ac0a0,'0.3678794411 7144232158 0284427234 79524E0',36(72)>

155デフォルトの名無しさん:2009/09/01(火) 00:24:29
-20以下くらいから誤差が大きくなって、正しく計算できてないようです

require 'bigdecimal'
require 'bigdecimal/math'
module BigMath; extend BigMath end
n = -5
puts BigMath.exp(BigDecimal(n.to_s),10).to_s, BigDecimal(Math.exp(n).to_s).to_s
# => 0.673794699908546709664220227128330426308743E-2
# => 0.673794699908547E-2
n = -40
puts BigMath.exp(BigDecimal(n.to_s),10).to_s, BigDecimal(Math.exp(n).to_s).to_s
# => 0.148254074963145840156087212163166213816119E-7
# => 0.424835425529159E-17
156デフォルトの名無しさん:2009/09/01(火) 05:06:55
>>138
BigDecimalのメンテナは多分ここ見てないんで、直接連絡を取るか、
他の人でもコミットできるくらい丁寧な説明を付けた上でパッチをRedmineに投げないとダメだよ。

>>155
Math.expはFloat
157デフォルトの名無しさん:2009/09/01(火) 10:01:49
なんでここに書けば直ると思えるのか、その思考を追えるものなら
追ってみたいものだわ。
158デフォルトの名無しさん:2009/09/01(火) 10:07:14
私は何度かここにバグを書き込んだが、ちゃんと見てくれてる人が居て、修正してくれたよ
159デフォルトの名無しさん:2009/09/01(火) 10:12:41
7月のRuby会議で yugi さんも言っていたよ。

・コミッタ、メンテナは 2ch なんてみていない
・だが、ごくたまに、コミッタ、メンテナにとっても有益な情報が 2ch に書き込まれる
・だから 2ch の情報を ML にフォワードしてくれ(してくれる人が必要だ)
160デフォルトの名無しさん:2009/09/01(火) 10:20:12
>>158
あくまで例外だろう
もちろん、実は居るかもしれないが、
居ることを期待するべきではないと

yuguiさんだっけ?マメだなあ……
161デフォルトの名無しさん:2009/09/01(火) 10:21:16
ま、どこに情報書けだのなんだの延々頑張る暇があったらそれこそ転載しろって話だなw
162デフォルトの名無しさん:2009/09/01(火) 10:24:52
>>158
「見てくれない」人のほうが多いぞ
見てても追随めんどくさそうなら一旦棚上げだ
一連の>>138を見ててもわかるが、試したくても傍目には必要な情報がないことのほうが多いから
Redmineは腐ってもバグトラッキングシステムなのでそのへんは頼れる

とっても暇か緊急性がありそうなら、自分の手元で再現しようと頑張るかもしれんけど
163デフォルトの名無しさん:2009/09/01(火) 10:47:18
そのまま使える掲示板でのバグ報告ってとっても稀だよね
自分の関わったソフト名でぐぐって見てみても驚くほど要領を得てない

誰かが労力割いてまとめてくれたから伝わってるんだよん
164デフォルトの名無しさん:2009/09/01(火) 10:54:56
そんなにRedmineで報告しろというなら、サンプルを書いてあげればいいんじゃないかな。
いまのままじゃ、138がバグレポート書いても意味が通じなくて困るだけだろうに。
165デフォルトの名無しさん:2009/09/01(火) 11:07:27
>>163
バグってるコード書けば、それだけで伝わってるよ
166デフォルトの名無しさん:2009/09/01(火) 11:09:24
gdgd逝ってないでさっさと
http://pc12.2ch.net/test/read.cgi/tech/1251029267/138
張ってこい。スレ荒らすな。
167デフォルトの名無しさん:2009/09/01(火) 11:20:56
まあ見てる見てないなら俺含め見てるけど、
優先度低くて手を着けてないわ。

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

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

これぐらいを箇条書きでいいんじゃない?
管理的には直ったかどうか確認して欲しいから
言い出した人の連絡先(メールとか)も欲しいかな
168デフォルトの名無しさん:2009/09/01(火) 11:25:24
>>165
SEGVで落ちるとかならそれでもいいだろうけどな
169デフォルトの名無しさん:2009/09/01(火) 13:38:00
Ruby on Rails
今日初めてやってみた
なんかすげー簡単だなこれ
170デフォルトの名無しさん:2009/09/01(火) 13:40:00
簡単なことはね
171デフォルトの名無しさん:2009/09/01(火) 13:47:04
ちょっと手を入れようとするとね・・・
172デフォルトの名無しさん:2009/09/01(火) 13:59:35
パフォーマンスを出そうとするとね…
173デフォルトの名無しさん:2009/09/01(火) 14:01:46
脱線するんだよな。
174デフォルトの名無しさん:2009/09/01(火) 14:16:22
今できることが 0.x 時代はめんどくさかったということを考えると
Rails 6.0 くらいになったら普通のことはあらかたできるようになってると思う
175デフォルトの名無しさん:2009/09/01(火) 14:38:48
で、結局cgiモジュール+手書きが一番楽と。




なわきゃない。
176デフォルトの名無しさん:2009/09/01(火) 15:45:58
難しいことって例えばどんなことだよ
具体的に教えてくれよ
177デフォルトの名無しさん:2009/09/01(火) 16:08:33
複数のリソースを同時に扱うとか
178デフォルトの名無しさん:2009/09/01(火) 16:22:30
なんだかもどかしいな
179デフォルトの名無しさん:2009/09/01(火) 16:33:01
>>155
問題点はわかったが、それは単に精度が不十分なだけだろ

$ ./ruby -rbigdecimal/math -rbigdecimal -e'include BigMath; puts exp(BigDecimal("-40", 30), 30)'
0.4248354255324683608648171943427303514052094227261901826473689E-17

しかし、初めてBigMathをみてみたが、なんでmodule_functionになってないんだこれは。
180デフォルトの名無しさん:2009/09/01(火) 21:30:14
>>167
rubに関しては、環境とコード書けば十分じゃないの?
181138:2009/09/01(火) 21:36:33
笑っちゃうのですが、本日他の文献(案件)を漁っていたら、
exp(x) = 1/exp(-x)
なるものを見つけました。
修正は、
if x < 0
return one.div(exp(-x, prec), prec)
end
でokです。
最初から(不確かな)有効桁数を設定するより、こちらの方が、速くて安心。
oneはBigDecimalの1です。

コードを書いた方には、失礼しました。
情報弱者な年寄りには、何かの手続きの必要なものは面倒くさいのですよ。

>>179
xに-42送ると、戻り値がマイナスになります。
電卓なくても確認できます。若干の数学の知識があれば。
182デフォルトの名無しさん:2009/09/01(火) 21:37:59
ここはお前のスレじゃない
183デフォルトの名無しさん:2009/09/01(火) 22:05:13
>>138の書き込みを見てもなんでそれで直るのか分からん
そんなものは取り込めん
184デフォルトの名無しさん:2009/09/01(火) 22:09:49
以降レス禁止
185デフォルトの名無しさん:2009/09/02(水) 01:29:14
>>183
だーかーらー、いまのまま138がRedmineに書いても、チケット受け取った側が混乱するだけだって。
慣れてるやつがたたき台を書いてやらないと。
186デフォルトの名無しさん:2009/09/02(水) 06:15:28
redmineが死んでるので考えるのをやめた
187デフォルトの名無しさん:2009/09/02(水) 10:13:33
有料でもいいからちゃんと作ってほしいぜ
188デフォルトの名無しさん:2009/09/02(水) 12:28:08
アカウント登録画面のボタンラベルが、なぜか登録ではなく"変更"になっている。
ボタンを押すと「アカウントが有効になりました。ログインできます。」
と表示されるが、これは嘘で、送られたメールのURLをクリックしないといけない

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

これハマりかけたw
メール送られてきてるのに気づかなくて、パスワードまちがえたかなと
190デフォルトの名無しさん:2009/09/02(水) 20:21:47
>>31の理論で考えると
バグを指摘されたくないから
名目上の器だけは用意しつつ
使えないようにしてます、って感じかw
191デフォルトの名無しさん:2009/09/02(水) 23:04:32
うまい皮肉だな
192デフォルトの名無しさん:2009/09/02(水) 23:07:17
えー
193デフォルトの名無しさん:2009/09/02(水) 23:19:56
お前らが褒めてやらないから自演しないとやってられなくなったんだろ

rubyらしくて、ほほえましく思った
194デフォルトの名無しさん:2009/09/02(水) 23:26:22
うまい皮肉だな
195デフォルトの名無しさん:2009/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デフォルトの名無しさん:2009/09/03(木) 14:15:32
時代はDecimalだからな
197デフォルトの名無しさん:2009/09/04(金) 14:45:16
4Gamer.net ― AMDのGPUやCPU,マザー購入でRubyフィギュアを手に入れよう
http://www.4gamer.net/games/017/G001762/20090904004/
198デフォルトの名無しさん:2009/09/04(金) 19:29:17
日立ソフト、月額制のオンデマンドRuby on Rails学習環境サービス開始
http://sourceforge.jp/magazine/09/09/04/0915236
199デフォルトの名無しさん:2009/09/04(金) 19:50:24
出前クラウドをサービスして「それクラウドか?」と総ツッコミが入ったSecureOnlineか
活用法としてはけっこう妥当なんじゃないかと思われる
よくわかんない会社が日立だからとよくわかんないまま買ってよくわかんないまんまわかった気になるんだろう
まあそれはそれでいろいろいいことなのではないかなと思ってみたり
200デフォルトの名無しさん:2009/09/04(金) 19:58:39
RailsはJavaではないということがわかって頂けたなら何してもらっても構わんよ

Javaで淘汰されたからとRailsを代わりに使おうとする糞SIは死滅の危機にあって非常に好ましい
201デフォルトの名無しさん:2009/09/04(金) 20:24:44
>>200
そもそもまともなスケールでRails使ってSIなんて聞いたことねえけど
それどれぐらいの規模の話よ?国内なんだよな?
202デフォルトの名無しさん:2009/09/04(金) 20:34:33
RailsはSIerにはまじ向かない。
自社サービスを展開する企業が自分の責任で使う場合にこそ威力を発揮する。
自分で構築したシステムととことん付き合う覚悟がないとRailsはつらいよ
203デフォルトの名無しさん:2009/09/04(金) 21:19:28
向かないも何も採用された話なんて全く聞かないのだが
向かないという理由は何なんだ?
ウォーターフォールがうんぬんとかどうでもいいぞ。
まともにウォーターフォールができてるSIなんてほとんどないだろうから。
204デフォルトの名無しさん:2009/09/04(金) 21:28:12
逆流やら滞流やら決壊氾濫やら、ウォーターフォールってのは
なかなか粋な言葉だなあと、最近改めて思う
205デフォルトの名無しさん:2009/09/04(金) 21:41:27
>>203
どっちかっていうと構築よりは保守の問題じゃね

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

そもそもSIer使うような客はその辺のリスクコントロールが難しいと
思ってるからSIerに金払って構築させるわけで、それがやれるんだったら
そもそもSIer呼ばないで自分で作るよなあ
206デフォルトの名無しさん:2009/09/04(金) 22:05:40
何言ってるのかほんとに分からない・・・
207デフォルトの名無しさん:2009/09/04(金) 22:21:28
>>195
どうせ、直すなら >>181 で、
実行速度が速くて、しかも(理論的にも)安心。
数学の公式にあるみたいだから。
208デフォルトの名無しさん:2009/09/04(金) 22:26:18
だからそういう理由でコード入れたりしねえんだって
209デフォルトの名無しさん:2009/09/04(金) 22:56:56
Urabeさんは私の太陽、私の星、私の月です
Urabeさんが大好きです
210デフォルトの名無しさん:2009/09/05(土) 02:23:01
自分とこで作って使うならRailsもアリ
作るとこと使うとこが違うなら別のを使うのが得策

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

Ruby は直接金は産まないが莫大な富を産む
よくわかったベンチャーが内製ツールを Ruby で作るとものすごいことになるが、
同じ理屈で大企業が製品を Ruby で作ると別な意味でものすごいことになる
212デフォルトの名無しさん:2009/09/05(土) 06:53:18
お約束だがよくわかったベンチャー乙
213デフォルトの名無しさん:2009/09/05(土) 07:45:18
作ったこともないのにイメージだけ
214デフォルトの名無しさん:2009/09/05(土) 10:47:29
Windows版Intel C++のインストーラに内部的にRubyが使われてて驚いたことがある
215デフォルトの名無しさん:2009/09/06(日) 01:39:56
github廚うぜぇ
216デフォルトの名無しさん:2009/09/06(日) 01:56:25
bzr最高
217デフォルトの名無しさん:2009/09/06(日) 18:55:17
disり合いはHg厨の陰謀
218デフォルトの名無しさん:2009/09/08(火) 18:08:50
スクリプト書いて、実行したらunicodeファイル名が読めずにエラー吐いた。
他言語で書き直しかよ〜。
219デフォルトの名無しさん:2009/09/08(火) 18:23:56
ああ、Windows の Unicode ファイル名は 1.9.1 でもどーやっても読めませぬ
これどっかに書いておいたほうがいいと思う
220デフォルトの名無しさん:2009/09/08(火) 20:48:40
今がんばってるところなんでしょ
221デフォルトの名無しさん:2009/09/08(火) 21:21:30
>>218
他言語でリネームだけしてみるとかw
222デフォルトの名無しさん:2009/09/08(火) 22:05:04
Rubyは業務システムにも十分な適用性を備える――IPA調査報告書
http://sourceforge.jp/magazine/09/09/08/117211
223デフォルトの名無しさん:2009/09/08(火) 22:58:18
>>222
むせた
224デフォルトの名無しさん:2009/09/08(火) 23:01:06
IPA自体がギャグ
225デフォルトの名無しさん:2009/09/08(火) 23:22:26
>>224
あと何百年岡田事件を引っ張るんだよお前
226デフォルトの名無しさん:2009/09/08(火) 23:34:59
どなたか、Rubyのrand()の生成方法とかソースコードのあるところを教えてくださいませ。
svn.rubyを漁るですが、見つからない。
どこかで蛇使いが、うちのはメルセンヌツイストだからと自慢しておりまして、
じゃぁ、と調べて見ても、見当たらないのです。

しょうがないので、出てきたものを比較してみました。
SFMTとXor128と24bitの線形とですね。
比較の方法は、長くなるので割愛します。
Rubyのrand()はSFMTと一番近いです。はっきり言うと私の方法では、区別できません。
他のは判別できますが、連続した百万個を100セットくらい必要です。
227デフォルトの名無しさん:2009/09/08(火) 23:45:28
>>226
random.c
228226:2009/09/08(火) 23:51:09
>>227
どうもありがとう。
ありそうな感じなので、見たつもりだったのですが。
探してみます。
229デフォルトの名無しさん:2009/09/09(水) 00:23:34
冒頭にいきなり This is based on trimmed version of MT19937 ってあるんだが
230226:2009/09/09(水) 00:45:03
>>229
どうもご親切に。
それは、>>226で言うところの、SFMTです。
あとからのdSMFTはコードが長いので、今回は見送りました。
(Rubyへの移植を)
これで、晴れてRubyもメルセンヌを名乗って良いかな。
231230:2009/09/09(水) 00:53:01
失礼。
/dSMFT/dSFMT/

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

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

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

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

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

もしご存知の方がいましたらよろしくお願いします。
233デフォルトの名無しさん:2009/09/09(水) 00:56:07
IPAに聞いてみればいいんじゃないかな



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

もちろん、Ruby方面でもなにか実績を作ってもらえればそれはそれで
素晴らしいんだけど
235デフォルトの名無しさん:2009/09/09(水) 02:29:46
いまだに使う機会が無い。
何のために存在してんのこれ?
今となってはそそられるような何かは皆無だしな。
236デフォルトの名無しさん:2009/09/09(水) 02:39:03
そりゃ、あんたが創造的な仕事をする能力がないってだけじゃないのか?
実際使える(傲慢)かどうかは知らんが、
> そそられるような何かは皆無
ってのはアレだなあ
237デフォルトの名無しさん:2009/09/09(水) 02:42:24
創造的だけじゃないかな。文脈がおかしくなる
創造的 or 建設的 or 実効的 、くらいかな。存在意義としては
238デフォルトの名無しさん:2009/09/09(水) 03:10:45
>>234
IPA が金を突っ込んだプロジェクトの話?
Ruby もそれなりにもらってるよ。
まず、まつもとさんが2000年にもらってて、array.c とかを見ると言及が残ってる、
array.c:  Copyright (C) 2000  Information-technology Promotion Agency, Japan
http://www.ipa.go.jp/jinzai/esp/mitoipedia/seika/year/2000seika.html

笹田さんはYARVで未踏(ユース含む)から3年連続で貰ってるしね
http://www.atdot.net/~ko1/activities/#idx13
239デフォルトの名無しさん:2009/09/09(水) 05:06:24
どっちかってえと何がどう捩れて
> 企業でRubyを導入する場合、国からの援助がある
になったのかが気になる
240デフォルトの名無しさん:2009/09/09(水) 11:24:14
>>225 2ちゃんねるだけが生きがいの粘着だから放置しようぜw
241デフォルトの名無しさん:2009/09/09(水) 11:48:45
>>240
ひとりでやれんのか
やるならお前ひとりでやれ
242デフォルトの名無しさん:2009/09/09(水) 12:59:26
>>241
我々多数派はこれからも岡田を追及し続けるってことですね。わかります。
243デフォルトの名無しさん:2009/09/09(水) 13:09:00
>>226
メルセンヌツイストとかxor128とかは乱数生成のアルゴリズム名だったのか。知らなかった。
勉強になりました。ありがとうございます。
244デフォルトの名無しさん:2009/09/09(水) 13:11:51
メルセンヌツイストってメルセデスベンツのパチもんだろ
245デフォルトの名無しさん:2009/09/09(水) 13:34:00
>>234,238
BioRubyも2005年に未踏でついてるね。早くBioPerlに追いついてほしい。
246デフォルトの名無しさん:2009/09/09(水) 14:04:05
専門知識を携えて頑張る人がいなかっただけだからな
ある意味仕方なかったんだが
247デフォルトの名無しさん:2009/09/09(水) 14:40:02
>>243
> メルセンヌツイスト

正しくはメルセンヌツイスターだけどね。
248デフォルトの名無しさん:2009/09/09(水) 14:42:38
> 企業でRubyを導入する場合、国からの援助があるという話を聞いたのですが

それを聞いたソースに尋ねてみたら?
249デフォルトの名無しさん:2009/09/09(水) 16:29:13
強まるRuby標準化を求める声〜RubyWorld Conference2009
ttp://enterprise.watch.impress.co.jp/docs/news/20090909_314346.html
250デフォルトの名無しさん:2009/09/09(水) 17:41:50
標準化がゲシュタルト崩壊した
標準化ってなにすることなんだっけ
251デフォルトの名無しさん:2009/09/09(水) 18:01:49
>>250
政治的駆け引きを繰り返し、
誰もが望まないけれど妥協点の機能を追加し続けること。
252デフォルトの名無しさん:2009/09/09(水) 19:27:28
Modula-2はそれで死んだのかな。
253デフォルトの名無しさん:2009/09/09(水) 22:50:57
まあみんな勝手にばらばらにやってる感はある
ここである程度は合わせてもいいかも
254デフォルトの名無しさん:2009/09/10(木) 07:40:09
railsのために標準を1.8にして1.9が死んだりしなきゃいいけど
255デフォルトの名無しさん:2009/09/10(木) 07:47:40
Rails が 1.8 に固執してるのはシステム的に対応不可能な個所があるというよりは
「1.9たいおうにするのめんどくさいから」
なので、1.9 サイコーということになればついてこざるを得ないとは思う

が、Encoding 関連のガイジンさん誰得っぷりが足を引っ張るかも
Latin-X を利用してる人なら恩恵あるんだけどなあ
256デフォルトの名無しさん:2009/09/10(木) 08:07:06
1.9がサイコーになる要素がないじゃん・・・

たいして速くないし、エンコードも英語だけ使ってるなら面倒が増えるだけだし。
1.8に比べて特に優れてるところがないんじゃ誰が以降すんだよ
257デフォルトの名無しさん:2009/09/10(木) 08:28:46
1.6 のころは Ruby しょべええええええと思ってたので
1.9.6 くらいになればまた違うのではないかと
258デフォルトの名無しさん:2009/09/10(木) 11:33:17
>>256
なぜ外人の立場でものを言うのだお前は
259デフォルトの名無しさん:2009/09/10(木) 11:49:19
エンコード絡みでエラーが出ると、どこでどのように対応するのが正解なのか判りづらいんだよなあ
エラーが出た行を修正すればいいわけじゃないから
260デフォルトの名無しさん:2009/09/10(木) 11:53:33
>>258
日本人と限ったものでも
261デフォルトの名無しさん:2009/09/10(木) 11:53:36
Ruby1.9とRailsの組み合わせでつまづくと、
海外サイトの方が圧倒的に情報が多いという事実を知らないんだなw
262デフォルトの名無しさん:2009/09/10(木) 11:56:21
RUby1.9が関係ないということに>>261が気づくのはいつだろうか
263デフォルトの名無しさん:2009/09/10(木) 12:52:55
>>262
ごめん。意味分からない。
おまえ頻繁に書き込んでると思うけど、ほんとに意味分からないよ。
264デフォルトの名無しさん:2009/09/10(木) 13:04:34
Rails は外国のほうがそもそも情報量が桁違いに多いってことなんじゃねーの
Ruby1.9 かどうかにかかわらず、Rails だから多いということなんでは
265デフォルトの名無しさん:2009/09/10(木) 13:19:24
>>264
なるほどね。ものすごく見当違いだから分からんかった。

やれば分かるが1.8系+Railsならそこまで海外サイトに頼らなくても支障はない。
日本のサイトでもヒットするし、書籍もかなりあるし。
1.9になると自分でソース見る以外はほとんど海外サイト頼み。
実際にやりもしない調べもしないやつはこれだから。
266デフォルトの名無しさん:2009/09/10(木) 13:25:13
「調べもしない」から、RailsはRubyのバージョンによらず
海外のほうが情報が多いということに気づけなかったのだろ
1.8系列のRailsの情報を海外に求めていれば莫大だと気づけたはず
恥かいてから言い訳とか恥ずかしすぎる
267デフォルトの名無しさん:2009/09/10(木) 13:36:09
Ruby1.9とRailsの組み合わせの情報が、日本では全然ない

というだけの話じゃないのか?
いったい何を言い争ってるんだ
268デフォルトの名無しさん:2009/09/10(木) 13:54:57
>>267
彼らが本当に交換しているのは
情報ではなく自尊心なんです。
269デフォルトの名無しさん:2009/09/10(木) 14:30:31
製作サイドはもちっと説明してほしいね
270デフォルトの名無しさん:2009/09/11(金) 03:37:24
Tempfile.newの第一引数にArray渡せるなんて聞いてねーぞ
271デフォルトの名無しさん:2009/09/11(金) 06:57:12
いいから黙って渡せ!!
272デフォルトの名無しさん:2009/09/11(金) 15:45:03
こういうオーバーロードもどきはちょっと汚い感じ
273デフォルトの名無しさん:2009/09/13(日) 00:01:44
Arrayで渡してやればsuffixも指定できるって話でいいのか?
274デフォルトの名無しさん:2009/09/13(日) 02:47:18
いいよ。
ふと思いついたんだが
Tempfile.new("foo"..".rb")
というのは…やっぱりダメだな
275デフォルトの名無しさん:2009/09/14(月) 16:05:49
ttp://www.tokumaru.org/d/20090914.html#p01
Ruby1.9.1ではめんどくさいことが防波堤になるという話

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

       から

BINARYにforce_encodingしてからスクリプトで扱ってたりするんですけどね外人爆発しろ
276デフォルトの名無しさん:2009/09/15(火) 21:53:44
277デフォルトの名無しさん:2009/09/16(水) 06:04:56
>>276
ruby-coreからの転記だからじゃね?

じゃあなんでruby-coreよ?
という疑問は残るけど、英語の方が着目してくれる人数は多そうな気がしなくはない。
278デフォルトの名無しさん:2009/09/16(水) 06:12:50
傍目に明確なテストを大量に付記しないと入りそうにないジャンルだから、手をかけてくれる人は多いほどいいな
279デフォルトの名無しさん:2009/09/16(水) 06:27:16
そういえば、
ttp://redmine.ruby-lang.org/issues/show/2060

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

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

ってのをAaronタンがやってるけど、どういう趣旨なんだろ。
移植性の改善とか?
280デフォルトの名無しさん:2009/09/16(水) 08:12:58
久しぶりにRuby公式hpみたら落ちてる
281デフォルトの名無しさん:2009/09/16(水) 09:34:08
>>275
その辺をやっているのは日本人だな。
まぁ、自動設定できるほど甘くはないのがその領域なんだが。
282デフォルトの名無しさん:2009/09/16(水) 10:33:49
>>279
DLじゃできないことがあったそうだが、もうわからんらしい.
まぁDLにはいろいろと問題も多いのでFFIに置き換えること自体は賛成.
あとはFFIの完成度だな.
283デフォルトの名無しさん:2009/09/16(水) 10:53:06
DL って何の略ですか?
ググって勉強してみたいので教えて下さい
284デフォルトの名無しさん:2009/09/16(水) 10:57:23
ぐぐってみたところ

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

のことのようだ
285283: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 対象がみつからない?定義されていない?)
ということをやりつつソースまで追いかけたんだけど、
キーワードの目の付け所はあってますか??
286284:2009/09/16(水) 11:05:59
>>285
ちげーよばか
287デフォルトの名無しさん:2009/09/16(水) 12:06:09
>>277
「ruby-coreからの転記」じゃなくてチケット作成のときに英語を選んだから
ruby-coreに行ってるんだよ。
288デフォルトの名無しさん:2009/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デフォルトの名無しさん:2009/09/16(水) 19:36:56
違うものを同じ名前で入れてしまったんで、DLを使いづらい状況にしちゃったよね
290デフォルトの名無しさん:2009/09/16(水) 21:17:47
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が取って代わることになったけれども
291デフォルトの名無しさん:2009/09/16(水) 21:18:48
1.9のDLってDL2だったのか。

なんか変だという気がしてたのが解決した。
292285:2009/09/16(水) 21:58:56
>>288
詳細な説明どうもありがとうございます。

DL とは Unix の dlopen() を裏で呼び出すと思うのですが、
Nokogiri のソースの FFI を呼び出すところまで見て、
JRuby 環境だったら、libxml2 の so や DLL を呼び出さずに、
xerces の jar か何かのメソッドを呼び出すようにすれば、
プラットフォームに依存しない Nokogiri 環境が出来るかな、とちょっと妄想していました。
(libxml2 と xerces は API のシグネチャが違うと思うので、実際には簡単にはできないだろうけど)
293デフォルトの名無しさん:2009/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デフォルトの名無しさん:2009/09/16(水) 23:42:10
勉強始めて1ヶ月くらいなんですが
昔のVBのようにアジャイル用教育言語の香りがしてくるんですが
その辺どうなんでしょう先輩方
295デフォルトの名無しさん:2009/09/17(木) 05:00:42
元々のPerlの正当な継承者です
Practical Extraction and Report Language

作り直しまくる内製のプログラムをやるのに最適という点でVBに似ていなくもない
Rubyプログラム自体を「ハードなウェア」として外部提供したり販売したりするのは於大臣の仕事
それで双方満足してるなら駄目じゃないが、他にやりようもあるよね
296デフォルトの名無しさん:2009/09/17(木) 06:04:55
さすがにVBよりはずいぶんましな言語仕様だとおもうけどなあ。
でもGUI作るならVBのほうがずっと楽。
297デフォルトの名無しさん:2009/09/17(木) 08:13:24
>>292
FFIはJRubyの場合にはJNI(Java自身のダイナミックライブラリ呼び出し機構)他を使って
同じように呼び出し出来るようにしてるはず。
その辺がFFIのウリだよね。

>>293
Cygwinでも同様みたいだね
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/188636

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

298デフォルトの名無しさん:2009/09/17(木) 10:08:53
Ruby 初心者スレッド Part 30
http://pc12.2ch.net/test/read.cgi/tech/1249687283/

の次スレたててください。
おながいします。
299デフォルトの名無しさん:2009/09/17(木) 13:11:32
gitとかgemとかいっぱいありすぎでわかんねえよ
どれが最新版なんだよ
300デフォルトの名無しさん:2009/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デフォルトの名無しさん:2009/09/17(木) 13:17:53
spec1.9 でテスト試したら
全く知識のないクラスの全く動作が読み解けないメソッドで
nil に対する NoMethodError が出た

もう知らん
今日は休み
302デフォルトの名無しさん:2009/09/17(木) 13:20:49
>>300
先端と最新の違いがわかんないけどとにかく gem 使って github をソースに追加しておけばいいんだな
ありがとう
303デフォルトの名無しさん:2009/09/17(木) 13:29:42
>>301
勉強くらいしろよ
304デフォルトの名無しさん:2009/09/17(木) 14:34:00
ファイルの行から特定のパターンの行を出力したんですが、
その出力した行から、特定の文字を出力するにはどうすればいいですか?
305デフォルトの名無しさん:2009/09/17(木) 14:58:51
初心者は each を惜しげもなく使え
each で書きにくくなってから他の使え
複雑なの使ってからだと each 使えなくなるぞ

特定の文字の特定のしかたによるんではないかと
正規表現で済むなら scan するか if でマッチさせて数値参照読むのが普通
306デフォルトの名無しさん:2009/09/17(木) 14:59:06
>>304
grep したやつに sed
307デフォルトの名無しさん:2009/09/17(木) 16:40:40
>>304
んーその説明じゃ「特定の文字」がなんなのかわからないかな。
パターンにマッチした文字列のことを指しているんだとエスパーしてみる。

File.open(filename).each do |line|
 if line =~ /(¥w+)¥.(¥d+)/
  puts "#{$1}, #{$2}"
 end
end
308デフォルトの名無しさん:2009/09/17(木) 16:45:07
初心者スレの次を建てます。しばらくおまちください。

>>298
>Ruby 初心者スレッド Part 30
>http://pc12.2ch.net/test/read.cgi/tech/1249687283/
>
>の次スレたててください。
>おながいします。

309デフォルトの名無しさん:2009/09/17(木) 16:52:05
>>308
規制されてて建てられませんでした。ごめんなさい。
310デフォルトの名無しさん:2009/09/17(木) 17:29:44
>>309
わかった。俺が立てる。
311310:2009/09/17(木) 17:41:11
というわけで初心者スレを立てました。

Ruby 初心者スレッド Part 31
http://pc12.2ch.net/test/read.cgi/tech/1253176267/
312デフォルトの名無しさん:2009/09/18(金) 05:06:39
RubyKaigi 2009 Sessions(1st day)
http://www.nicovideo.jp/mylist/14722636
313デフォルトの名無しさん:2009/09/18(金) 16:27:46
>>311
314デフォルトの名無しさん:2009/09/18(金) 16:56:17
>>293
1.8のdlはstdcallに対応してない。
スタック後処理次第でたまたまうまく行くこともある。
315デフォルトの名無しさん:2009/09/18(金) 17:55:53
rspec でテストを書いた
rspec 特有の機能を何も使ってない単純なテストだけだということに気がついた

test/unit に書き換え中
316デフォルトの名無しさん:2009/09/18(金) 18:39:02
>>315
そんな君には Shoulda がオススメ
317デフォルトの名無しさん:2009/09/18(金) 18:42:54
>>312と動画うpチーム乙
318デフォルトの名無しさん:2009/09/18(金) 19:34:14
オフィシャルサイトの検索機能死んでね?
319デフォルトの名無しさん:2009/09/18(金) 21:45:02
>>314
マジで?

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

初心者は自動的に地獄に引き摺り込まれているわけかw
320デフォルトの名無しさん:2009/09/18(金) 21:49:50
普通はwin32/apiを使う
321デフォルトの名無しさん:2009/09/18(金) 22:32:07
>>314
そうだったのか〜
でも、なぜMswin版rubyだと落ちないのでしょうか

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

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

1.9のdl(dl2)では 呼び出し規約の指定も出来て
Win32APIは単なるdlのラッパーになってますね
322デフォルトの名無しさん:2009/09/18(金) 23:34:52
Win32APIより、win32/api
323デフォルトの名無しさん:2009/09/19(土) 01:01:23
>>321
> でも、なぜMswin版rubyだと落ちないのでしょうか
知らん。アセンブラ吐かせて確認してみな。
324デフォルトの名無しさん:2009/09/19(土) 03:29:03
Net::HTTP の open_timeout と read_timeout の初期値が nil なのはなんで?
325デフォルトの名無しさん:2009/09/19(土) 04:12:16
>>324
簡単だからソース読んでみ
326デフォルトの名無しさん:2009/09/19(土) 05:48:16
Ruby 1.9の本もやっぱり海外のほうが早いのか

Programming Ruby 1.9: The Pragmatic Programmers' Guide (Facets of Ruby)
http://www.amazon.com/dp/1934356085/
327デフォルトの名無しさん:2009/09/19(土) 08:29:14
まあ、TCPSocket.open のタイムアウトをカウントダウンで待つ必要はないわな
1 秒とかに設定すればひょっとしたらご利益はあるかもしれないが
328デフォルトの名無しさん:2009/09/19(土) 21:21:26
MBARIパッチっていまどうなってんのかな。
導入予定って1.8.6系だけ?
329デフォルトの名無しさん:2009/09/19(土) 22:06:03
Asakusa.rb議事録によるとMBARIパッチはあらかた入ってる模様
ttp://qwik.jp/asakusarb/013_log.html
ttp://qwik.jp/asakusarb/63.html

ただし大物のCopyOnWriteがまだっぽい
330デフォルトの名無しさん:2009/09/20(日) 17:43:24
あとstack cleaningだな。

入るなら1.8.8だが、個別のパッチで出てこない限りマージしようがない。
あれはマージさせたくないとしか。
331ブグ☆2101を書いたガイ:2009/09/20(日) 19:20:51
あひーっ!ブグ☆2101はゼッさん・放置プレイ中でよ!
英語で書いたせいでロスト・イン・トランスレーション気味みていだ。
なおるまで110にちかかったブグ☆1531を見てら、おしっこちびっちゃったでよ。
ジャパニイズ・訳をruby-devにドロップしてら読んでやらなくもねい、っていう人はいるますかね?
332デフォルトの名無しさん:2009/09/20(日) 19:36:33
日本語でおk
333デフォルトの名無しさん:2009/09/20(日) 19:49:09
ttp://redmine.ruby-lang.org/issues/show/2101
のことであろうとエスパーしつつコメントすると、
まだ4日なんだから気長に待つが吉。

目先の回避としてはrubyは原則いつでもメソッドの中身を差し替えられるから
該当するメソッドをとりあえず差し替えてしまえばOK。
334デフォルトの名無しさん:2009/09/20(日) 20:33:32
>>331
sinとcosのほうは
x %= two * BigMath.PI(prec)
でいいんじゃないかと思うんだが、加減算のほうが速い?

あとテストが欲しい。
335331: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っとやられたり
しねいてすかね?
336デフォルトの名無しさん:2009/09/20(日) 21:28:30
あそこに書いてある、atan()の速度向上のための式が、よくわかりません。
どこか、()とかをを省略してないでしょうか。

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

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

>>334
何故か、BigDecimalで%を使う発想がなかったので、私は違うやり方で修正しました。
そっちの方が良いかも。
337331:2009/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, ...)
だよ。みつけたのはおいらじゃなくてオイラーさんというひとです。
http://mathworld.wolfram.com/InverseTangent.html
とかにあるから探してね。
338336:2009/09/20(日) 22:16:37
>>337
どうも、ありがとう。
この手は慣れているつもりだったけど、ちょっとどこかでコーディングミスしているみたい。
あそこの式だと、左がn、右はxで良いのね。
で、左と右を掛け算する。
連休のうちになんとかなるでしょう。

ついでに、asin()も書くつもりだけど、公開できるかどうかは微妙。
色んな意味で。
339デフォルトの名無しさん:2009/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

340336:2009/09/20(日) 23:03:30
>>339
>181は確かに、私のレスですね。

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

専ら、電気通信の関係で、飯食ってます。
今夜は、炭素と水素の化合物で頭がクルクルなので、明日ゆっくり拝見します。
341,,・´∀`・,,)っ-○○○:2009/09/20(日) 23:38:47
ベンゼンですねわかります
342デフォルトの名無しさん:2009/09/21(月) 00:09:05
>>338
atanは再提出。
343デフォルトの名無しさん:2009/09/21(月) 12:56:17
教祖はデビアン使いでウィンドウズ使ってないしなあ。
344,,・´∀`・,,)っ-○○○:2009/09/21(月) 14:01:12
松江のカンファレンスにはMSも参加してたけどね。
IronRubyがもう少しまともなら・・・
345デフォルトの名無しさん:2009/09/21(月) 14:50:32
未だにまともじゃない?
346デフォルトの名無しさん:2009/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()からのチョメチョメでも良いのですが、出てきた値の正当性を確認するためには、
複数のものが必要だし、まぁ遊びですから。
347346:2009/09/22(火) 21:14:17
あれは、ようやくコードが動くようになって、舞い上がって書いております。
本意は別のところにあるのですが、文章がへたなのと、表現が不適切なところもあって、
変な具合になりました。
そもそも、exp()の不具合は私が最初の発見者では無いと思います。
見切りをつけて、よそに行くひと。
黙ってじっと待っているひと。
知らないで使っているひと。
私はたまたま回避方法を発見したので、発表させて頂きました。
不愉快な思いをされた方には、お詫びを申しあげて、私は退場します。
どうもすみませんでした。
348デフォルトの名無しさん:2009/09/22(火) 22:01:33
以前は Ruby を使ってたけど、 Scheme の方が断然書きやすい。
349デフォルトの名無しさん:2009/09/23(水) 00:04:53
そりゃあLisperならGaucheのほうが使いやすいんでないか
350デフォルトの名無しさん:2009/09/23(水) 00:05:56
釣れた!
351デフォルトの名無しさん:2009/09/23(水) 00:43:41
かっこいい!釣り師(つりし)かっこいいよ!凄(すご)いね!やったね!
352デフォルトの名無しさん:2009/09/23(水) 07:57:58
SchemeとHaskellどっち習ったほうがいいと思います?
353デフォルトの名無しさん:2009/09/23(水) 08:11:45
>>352
Smalltalkにしとけ。
354デフォルトの名無しさん:2009/09/23(水) 10:19:45
Rubyやってれば根っこは同じSmalltalkとかSchemeはちょろいから、そっちを先に片付けるか
目新しい考え方を学ぶのにHaskellかってかんじかな。いずれにせよぜんぶやっておk。
355デフォルトの名無しさん:2009/09/23(水) 10:31:58
Haskell に一票。といいつつ自分は Scala 勉強中。
356デフォルトの名無しさん:2009/09/23(水) 10:33:14
HaskellとRubyの組み合わせが最強ということですね。
ありがとうございました。他の糞ゴミ言語で時間を潰さなくてすみました。
357デフォルトの名無しさん:2009/09/23(水) 12:58:22
くだらん煽りはいらないから
358デフォルトの名無しさん:2009/09/23(水) 13:00:14
>>348からここまで全部俺の自演
359デフォルトの名無しさん:2009/09/23(水) 19:07:44
おつかれー
360デフォルトの名無しさん:2009/09/24(木) 02:31:22
関数型言語に興味があって、
積ん読してあるソフトウェアデザイン4月号の Haskell の特集を読んでみたが、
ほとんど理解できなかった

関数型言語は難しい。

Ruby などの、
・クロージャ
・メソッドの引数にブロックを渡せる
というのは理解できているつもりなんだけど
361デフォルトの名無しさん:2009/09/24(木) 04:23:53
俺でも使えるrubyは偉大
362デフォルトの名無しさん:2009/09/24(木) 09:01:44
String#inspect って中身なに?
信頼できない入力を inspect して eval して戻しても安全?
363デフォルトの名無しさん:2009/09/24(木) 09:13:06
inspect した文字列は変換器に通してはいけない
まめちしき
364デフォルトの名無しさん:2009/09/24(木) 09:16:52
eval(str.inspect) はコード実行が起こる可能性があるけど
eval(str.dump) は何も起こらないことが保証されてるんだっけ?

このへんあんま気遣ってないんだっけか、太古どっかでなんか聞いた気がする
365デフォルトの名無しさん:2009/09/24(木) 17:49:12
eval(str.dump) == str は保証されてる
eval(obj.inspect) は何がおきるかわからない
366デフォルトの名無しさん:2009/09/24(木) 17:57:19
String は dump をそのまま返してるんじゃねーかとも思う
あれわざわざオリジナルなの?
367デフォルトの名無しさん:2009/09/24(木) 18:02:58
Non-ASCIIの扱いが違う
368デフォルトの名無しさん:2009/09/25(金) 06:21:04
>>367
それは1.9のみの話? 1.8ではasciiかどうかなんて意識してなかったと思うけど、どうでしょう?
369デフォルトの名無しさん:2009/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"
370369:2009/09/25(金) 08:21:14
なんでバックスラッシュがyenに変換されるんだろ……
371デフォルトの名無しさん:2009/09/25(金) 08:56:00
>>370
それは君が Mac を使ってるからだよ
372デフォルトの名無しさん:2009/09/25(金) 15:13:24
既出かもしれないけど、Ruby1.9で巨大なオブジェクトに対して存在しないメソッドを呼び出そうとするとハングする・・・
エラーメッセージを生成するためにinspect呼び出してるせいみたいだけど、これタイムアウトか何か設けて欲しいわ
373デフォルトの名無しさん:2009/09/25(金) 15:22:12
巨大な、て
インスタンス変数がめっちゃやたらあるとか、
ギガバイトサイズの文字列とか?
374デフォルトの名無しさん:2009/09/25(金) 15:32:39
巨大っつったけど、実は大したことなかったりする・・・
頂点をあらわすオブジェクトが50個、辺を表すオブジェクトが200個くらいのグラフなんだけど
(辺はそれぞれ長さ1の文字列と頂点一つ、頂点は長さ10〜20の整数と辺の配列をもってる)
普通にプログラミングしてたら作られ得る規模だよね、これ

CPUはE8500だし言うほど古くないと思うんだけど、、、
375デフォルトの名無しさん:2009/09/25(金) 15:37:55
そんな巨大プロジェクトにRubyを採用する方が悪い(キリッ
376デフォルトの名無しさん:2009/09/25(金) 16:00:31
PHP使え
377デフォルトの名無しさん:2009/09/25(金) 16:04:33
再現コードうpれば直るよ
378デフォルトの名無しさん:2009/09/25(金) 16:06:16
>>374
> 頂点をあらわすオブジェクトが50個、辺を表すオブジェクトが200個くらいのグラフなんだけど
> (辺はそれぞれ長さ1の文字列と頂点一つ、頂点は長さ10〜20の整数と辺の配列をもってる)

再帰してんのか?
379デフォルトの名無しさん:2009/09/25(金) 16:14:45
そのオブジェクトに自前の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)
380デフォルトの名無しさん:2009/09/25(金) 16:22:30
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>
381デフォルトの名無しさん:2009/09/25(金) 16:34:21
>>374
グラフにループがあるとしたら、何も考えずに頂点と辺の関係をたどってたら無限ループ突入だろ
382デフォルトの名無しさん:2009/09/25(金) 16:41:34
>>381
ビルトインのinspectって循環参照考慮してる筈だよね
380で言った「inspectのオーバーライドはしたけど」っていうのは、ビルトインのinspectのせいで止まるから
仕方なく自前で用意した処理の軽いinspectに置換したってこと
383デフォルトの名無しさん:2009/09/25(金) 16:53:34
Object#inspect はインスタンス変数全部表示しようとするぞ
インスタンス変数がアホみたいに莫大だった場合はボトルネックになる
384デフォルトの名無しさん:2009/09/26(土) 00:32:45
pp だと pretty_print_instance_variablesを定義して簡単に回避できるけど、
単なるinspect向けにそういうのはないの?
385デフォルトの名無しさん:2009/09/26(土) 11:10:14
>>384は悪くないかもな。
あるいは
module Inspector
def inspect_member(name)
...
end
end
class LargeObject
extend Inspector
inspect_member :lines
end
とか
386デフォルトの名無しさん:2009/09/26(土) 12:51:38
タイムアウトも悪くないけど、
速いマシンと遅いマシンとでinspectの結果やら
p の出力が変わったりするとそれはそれで地雷かもなあ
387デフォルトの名無しさん:2009/09/26(土) 20:52:14
そういや、Matzにっきってもう更新されないの?
388デフォルトの名無しさん:2009/09/26(土) 22:45:12
>>387
Ruby会議でその話になったときはTwitter見てっていってた。
389デフォルトの名無しさん:2009/09/26(土) 23:07:24
TLをまとめてブログにポストするrubyスクリプトでも書いて
それで更新したらいいのに
390デフォルトの名無しさん:2009/09/26(土) 23:11:54
そんなの読みたくない
391デフォルトの名無しさん:2009/09/27(日) 09:18:31
twilog.org のこと?
392デフォルトの名無しさん:2009/09/27(日) 10:02:00
Rubyによる並列処理システム
「CloudCrowd 0.1.0」リリース
http://codezine.jp/article/detail/4417
393デフォルトの名無しさん:2009/09/27(日) 13:27:33
>>388
twitter見てみたけど、便所の落書きみたいなことしか書いてなかった・・・
blogにもどってくれよん
394デフォルトの名無しさん:2009/09/27(日) 13:42:49
そもそもTwitterは「基本ひとこと」「ログが長期間残らない」という点で
blogとは違ったものだしな
「Matzはblogの更新をやめた」と考えた方がいい
395デフォルトの名無しさん:2009/09/27(日) 13:48:34
ブログを書く手間と時間はTwitterに消えてるんだろうな
Twitterってかなり一般的になってきたけど気が散って生産性落ちたりしないのかな
396デフォルトの名無しさん:2009/09/27(日) 13:53:02
リアル雑談と同じようなご利益があります
同じようなご利益しかないとも言えます
同じような弊害があるとも言えるわけですが
397デフォルトの名無しさん:2009/09/27(日) 14:25:25
iPhone持ちだし、Twitter興味はあるけどね
手を出すと集中して本読んだりコード書けなくなる自信がある
398デフォルトの名無しさん:2009/09/27(日) 19:26:24
twitterも読みきれなくなってきた
399デフォルトの名無しさん:2009/09/27(日) 19:33:50
>>394
>「ログが長期間残らない」
いや、残るけど?
400デフォルトの名無しさん:2009/09/27(日) 19:36:22
どうせならここでつぶやいてよ
401デフォルトの名無しさん:2009/09/27(日) 19:40:00
うむ
元祖便所の落書きとしては是非invitationを
402メカMatz:2009/09/27(日) 19:40:13
Matz江なう
403デフォルトの名無しさん:2009/09/27(日) 20:08:43
>>399
Twitterのログは途中で消えるよ
いやサーバに残ってるのかどうかは知らんけど、少なくともWeb上から見えなくなる
404デフォルトの名無しさん:2009/09/27(日) 20:16:36
loopっていつの日かまっとうな制御構文に格上げされる可能性はないの?

loop

end
でいいやん
405デフォルトの名無しさん:2009/09/27(日) 20:18:46
forさんよりも利用頻度が高いloop・・・
406デフォルトの名無しさん:2009/09/27(日) 20:24:11
for や while はオプションがめんどくさいからな
お前は黙って無限ループだけしてりゃいいんだよというのを黙々とこなす loop
407デフォルトの名無しさん:2009/09/27(日) 20:38:19
1.9だとloop doはwhile trueより格段に遅くて気に入らない
制御構文になったら違ってくるのかもしれないけど
408デフォルトの名無しさん:2009/09/27(日) 20:45:42
>>403
Web上からも見えるよ

一覧上からたどれなくなるだけで
個別のエントリのURLを控えておけばいつでも参照可能。
409デフォルトの名無しさん:2009/09/27(日) 21:29:44
>>407
そうなん?
ここに書いたらまたlength/sizeのときみたいに笹田さんが直してくれそうだな
410デフォルトの名無しさん:2009/09/27(日) 21:31:55
最適化の書き換えの優先度が低いんだろ
放っておいてもいつか速くなると思われる
411デフォルトの名無しさん:2009/09/27(日) 21:35:53
loopが、というよりyieldが遅いんでは?
最適化が本格化すると、loopをバイトコードレベルで
無限ループに書き換えるくらいはやってくれるだろう
412デフォルトの名無しさん:2009/09/27(日) 21:36:01
よし、おまえらささださん方面に電波最大出力だ
413デフォルトの名無しさん:2009/09/27(日) 21:36:27
「いつか」とか「本格化すると」じゃなくて、今速くして欲しいんだよね
414デフォルトの名無しさん:2009/09/27(日) 21:41:53
今すぐ切実に早くしたいならwhile trueに書き変えろよw
415デフォルトの名無しさん:2009/09/27(日) 21:42:32
>>413
Rubyのソースコード書き変えて再コンパイルしれ
たぶんいちばん早い
416デフォルトの名無しさん:2009/09/27(日) 21:48:40
length/sizeって何があったの?
本人降臨したの?
417デフォルトの名無しさん:2009/09/27(日) 22:02:53
>>414
切実に速くしたかったらCで書くだろJK
せっかく超高級言語つかってんだし、loop do endって書くキモチを
大事にしたいんだもん
418デフォルトの名無しさん:2009/09/27(日) 22:19:41
むしろforが要らない子になってね?
419デフォルトの名無しさん:2009/09/27(日) 23:03:27
rubyそのものを最適化オプションガリガリ付けてコンパイルすればいいんじゃね
420デフォルトの名無しさん:2009/09/28(月) 06:44:34
if RUBY_VERSION >= '1.9.0' then
str.force_encoding(::Encoding::ASCII_8BIT)
end

について本スレで何かコメントでもあれば
421デフォルトの名無しさん:2009/09/28(月) 07:01:52
今時thenなんて使わないよね
422デフォルトの名無しさん:2009/09/28(月) 08:01:53
いや全然
423デフォルトの名無しさん:2009/09/28(月) 08:05:40
thenだけにー
424デフォルトの名無しさん:2009/09/28(月) 08:07:52
>>421
てめえちょっと表出ろ
425デフォルトの名無しさん:2009/09/28(月) 08:10:26
::Encoding::ASCII_8BIT より "ASCII-8BIT" のほうが短くていいな
426デフォルトの名無しさん:2009/09/28(月) 08:22:33
やたら短さだけに拘る人間の80パーセントはちんこ短い
427デフォルトの名無しさん:2009/09/28(月) 08:25:15
        で
        ト
        ン
        セ
       |
       パ
       0
       2
      り
     残
    た
よかっ
428デフォルトの名無しさん:2009/09/28(月) 08:34:26
respond_to?(:force_encoding) しろとか defined?(::Encoding) 使えとか言われてたな
429デフォルトの名無しさん:2009/09/28(月) 11:29:54
A-Zでカテゴリ選んで
A-Zで登録アプリを26^2個呼び出せる
CUIなランチャ作ったけど起動が重いな。
Lightspeed Languageの登場が望まれる。
430デフォルトの名無しさん:2009/09/28(月) 11:50:50
>>370
SafariというかWebkitの人が直してくれないから
https://bugs.webkit.org/show_bug.cgi?id=24906
431デフォルトの名無しさん:2009/09/28(月) 11:53:41
>>420
RUBY_VERSIONじゃなくて、>>428の言うとおりforce_encodingかEncoding見てください。

なお、勝手に俺バージョンのforce_encodingやEncodingを1.8で定義しないように。
その辺を見て分岐することが推奨されているので、MRI以外で死にます。
432デフォルトの名無しさん:2009/09/28(月) 11:55:47
>>420 >>425
文字列リテラル使うとオブジェクトが増える。
433デフォルトの名無しさん:2009/09/28(月) 11:58:19
ruby使ってんのに、小せえこと気にすんなよ
434デフォルトの名無しさん:2009/09/28(月) 12:34:09
>>431
> 勝手に俺バージョンのforce_encodingやEncodingを1.8で定義しないように。
Javaでも使っとれ
435デフォルトの名無しさん:2009/09/28(月) 12:40:57
1.8.7 で警告が出ない以上、>>431の主張はカス
Ruby 1.9 の Encoding が動作してくれないと困るのであるなら、そのように記述するべき
我々は実際には Ruby のメジャーバージョンを考慮しているのである以上、
スクリプトとしての記述もバージョンで分岐させるように書か「なければならない」
436デフォルトの名無しさん:2009/09/28(月) 12:50:23
>>432
どっちかというと文字列から Encoding の特定の定数を決定する処理の負担のほうが嫌気されるのでは
毎回いちいち探させるくらいなら定数として最初から書いておいたほうがプログラム的に親切
.encode('utf8') や encode('sjis') って動作したっけ、encode('EUC-JP-MS') って使えるのか、とか悩む必要もなし
定数だった場合は間違ってれば Ruby が uninitialized constant で教えてくれる
437デフォルトの名無しさん:2009/09/28(月) 12:52:46
初心者スレのだが、これくらい書けば問題ないのかも

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
438デフォルトの名無しさん:2009/09/28(月) 13:06:30
「添付ライブラリにEncodingがあるなら」とか
「標準のStringがforce_encodingを持ってるなら」とか
そういう指定の仕方ができないんだよね
それを唯一担保するのがRubyのメジャーバージョンなんだから仕方ないわ
439デフォルトの名無しさん:2009/09/28(月) 13:10:19
>>434 >>435 RailsとかtDiaryとかと混ぜた時に死にたいなら定義してもいいけど。
440デフォルトの名無しさん:2009/09/28(月) 13:11:34
>>438
MRI以外のこと忘れてない?
441デフォルトの名無しさん:2009/09/28(月) 13:17:37
>>440
respond_to? を通っても別のどっかで齟齬の例外が出てそもそも動かないことが逆に期待されるから別にいいじゃん(素

バージョン併用スクリプトの書き方のガイドは特急で作ったほうがいいかも
442デフォルトの名無しさん:2009/09/28(月) 13:20:58
>>438
だからそれが>>428だろ
443デフォルトの名無しさん:2009/09/28(月) 13:23:31
っ class Encoding; end
444デフォルトの名無しさん:2009/09/28(月) 13:25:17
str.force_encoding(::Encoding::ASCII_8BIT) rescue str

よし解決
皆の者我に続け
445デフォルトの名無しさん:2009/09/28(月) 13:26:17
1.9は文字コード面では完全に失敗だな。
2.0までにPython同様内部文字コードに変換する作りにしといてね。
446デフォルトの名無しさん:2009/09/28(月) 13:38:28
String そのものにエンコーディング機能のメソッドを新たに持たせたのがめんどくささの原因な気もする
String のエンコーディング関連は Encode のメソッドからしか操作参照できないようにしておけばあるいは
447デフォルトの名無しさん:2009/09/28(月) 13:58:21
>>445
Pythonのucs2/ucs4絡みとかUnicodeString絡みとか見ておいで
448デフォルトの名無しさん:2009/09/28(月) 14:13:51
>>446
いや、1.8互換ってのが茨の道なんだと思うけど。
> String のエンコーディング関連は Encode のメソッドからしか操作参照できないようにしておけばあるいは
他の言語ならそうしたかもね。
449デフォルトの名無しさん:2009/09/28(月) 17:09:38
だれだよ UTF-8 とか中途半端なの作ったやつ

はじめから 32bit ぐらいの幅にして、世の中の全種類の文字を一意に判定、
かつ少しぐらい文字が増えてもいいようなテーブル作っておけばよかったんだ
450デフォルトの名無しさん:2009/09/28(月) 17:10:03
つ UCS-4
451デフォルトの名無しさん:2009/09/28(月) 17:15:27
中途半端感がひどいのはUTF-8じゃなくてUTF-16だな
452デフォルトの名無しさん:2009/09/28(月) 17:15:34
>>449
UTF-8はUnicodeのエンコーディング方法の1つでしかない。
453デフォルトの名無しさん:2009/09/28(月) 17:21:34
UTF-8はこれでもずいぶんマシなんだよ
UTF-8以外のUnicodeや広域文字実装を実質全く見ないのがその証拠
どんなに理想的でも、利用されないと意味がない
そういう意味で大変戦略的な「とてもマシ」な代物
454デフォルトの名無しさん:2009/09/28(月) 17:23:16
どこの世界の話ですか
455デフォルトの名無しさん:2009/09/28(月) 17:23:18
>>448
「1.8」なんて存在しないだろ
あるのはオブジェクトがrespondするかどうかだろ
456デフォルトの名無しさん:2009/09/28(月) 17:31:18
>>455
まあ、これまでの理屈で言えばそうだな
1.8用や1.9用というバージョン分けの理由はないはず
457デフォルトの名無しさん:2009/09/28(月) 17:32:48
もう1文字4byteのRubyEncodingを策定しようぜ
458449:2009/09/28(月) 17:38:33
Unicode と UTF-8 という言葉をほとんど同義に使っていたけど、
もしかして違うの?

たしかに UTF-16 とか UTF-32 とか、UCS2 とか UCS4 という単語は聞いたことがあって、
どう違うのかはわかっていなかったけど

>>457
はげどう

でも ASCII オンリーな環境の時は、だいぶ無駄になっちゃうね
459デフォルトの名無しさん:2009/09/28(月) 17:45:44
>>458
語弊を恐れず一言で言えば概念と実装
460デフォルトの名無しさん:2009/09/28(月) 17:46:37
>>458
Unicodeってのは、規格群の総称のような感じで、
UTF-*は文字符号化形式及び文字符号化スキーム
UCS-*は符号化文字集合
461デフォルトの名無しさん:2009/09/28(月) 17:55:38
世界中のあらゆる文字に文字コードという数字を割り振ったのがUnicode
そのUnicodeをバイト列表現する(エンコードする)やり方が何種類かあってそれがUTF-*

って理解をしているんだけど
462デフォルトの名無しさん:2009/09/28(月) 18:25:10
>>449
前に書いた記事を読んでください、わからないところがあれば答えます。
http://gihyo.jp/dev/serial/01/ruby/0004?page=2

>>459
UnicodeはUTF-8を含むので違う。(ISO 10646はおいておいて)

>>460
おおむね正しいんだけど、UCS-2とUCS-4も文字符号化表現なんだよね。
http://d.hatena.ne.jp/nurse/20090325#1237964260

>>461
基本的に正しい。
世界中の文字を集め、Unicode scalar valueという数字を割り振り、
さらにその他文字を扱うのに必要な規格を定義しているのがUnicode。
その他の規格っていうのは、例えば「だいたいこれとこれは同じ意味の文字」
って処理をするための「Unicode正規化」とか、大文字小文字変換とか。
この辺まで定義しているのがUnicodeの凄いところ。
http://www.unicode.org/versions/Unicode5.1.0/

先述の通り、UTF-*だけじゃなくて、UCS-2とUCS-4もバイト列表現するためのやり方。
463デフォルトの名無しさん:2009/09/28(月) 18:43:33
>>456
じゃあバージョンとか本当はいらないんじゃね?
464デフォルトの名無しさん:2009/09/28(月) 18:52:08
>>463
スクリプトの実行者はスクリプトが実行されているシステムのこともRubyのことも知っていて
スクリプトを適宜修正可能であるというモデルを暗黙に設定してるのは確か

“お客様”であるという前提はあまりしてないはず
465445:2009/09/28(月) 18:55:19
>>447
見た上で言ってるんだが?
この点ではPythonは完璧。
466デフォルトの名無しさん:2009/09/28(月) 18:59:56
>UnicodeはUTF-8を含むので違う
概念は実装を含むと思うけど
仕様と実装のほうがよかった?
たとえばRubyと言えばMRIを含む(指す)ように

まあ一言なんて所詮はたとえ話みたいなもんだw
467デフォルトの名無しさん:2009/09/28(月) 19:04:05
>>464
例外出たら自分の環境に合わせて修正してもらえればいいんじゃね、というスタンスではある
rescue もいわゆるバージョン差異を埋めるために使うものじゃないわけでさ
468デフォルトの名無しさん:2009/09/28(月) 19:04:41
>>458はMatzのコードの世界を読むべき
469デフォルトの名無しさん:2009/09/28(月) 20:24:45
>>463
バグ報告対応で使います。

>>465
http://dsas.blog.klab.org/archives/51322951.html
この辺とか。
まぁ、言語を実装する側にとってもUCS正規化の方が楽だけどね。

>>466
なんか「抽象」は「具体」を含むと言っているように聞こえるんですが
470デフォルトの名無しさん:2009/09/28(月) 21:38:09
今日の名言

  概 念 は 実 装 を 含 む
471デフォルトの名無しさん:2009/09/28(月) 22:58:07
Rubyを支えるYuguiの自信 「最後にはわたしがいる」
http://jibun.atmarkit.co.jp/ljibun01/rensai/leader/33/01.html

Yuguiさんかっけええええええええ
472デフォルトの名無しさん:2009/09/28(月) 23:12:18
Yugui△
473デフォルトの名無しさん:2009/09/29(火) 22:51:18
yugui さん かっく

足りねえぞおい
474デフォルトの名無しさん:2009/09/29(火) 22:55:22
セクシーと言ったほうが喜ぶんじゃまいかい?
475デフォルトの名無しさん:2009/09/29(火) 22:58:04
>>473
さんかっけー
(ボケだったらスルーしてくれ)

しかしいい写真だな
476デフォルトの名無しさん:2009/09/29(火) 23:00:55
かっけー、のはいいとして、previewとか全然出てないんだけどどうなったんすか?
477デフォルトの名無しさん:2009/09/29(火) 23:08:00
>>476
RubyWorld conf での議論を受けて、スケジュール切り直し。
後日開発者会議で決定。
RubySpec全パスを目指すみたい。[ruby-core 25707]

上のメールで触れられている開発者会議は10月13日にダイビルで開催。
[ruby-dev:39404][ruby-core:25841]
478デフォルトの名無しさん:2009/09/30(水) 00:57:05
裸の王様ごっこはいつ終わるのですか?
479デフォルトの名無しさん:2009/09/30(水) 08:16:38
>>478
自分の妄想に正面から向き合う勇気を持てよ
480デフォルトの名無しさん:2009/09/30(水) 09:23:06
>>471
関連記事で気づいたんだが、富田倫生の「パソコン創世記」
@itが連載形式で掲載してたんだな。

全文、青空文庫で読めるわけだが。
481デフォルトの名無しさん:2009/09/30(水) 09:56:09
コレまじすか

【島根】 プログラミング言語「Ruby」開発者ら3人を松江市名誉市民に
ttp://tsushima.2ch.net/test/read.cgi/newsplus/1254271871/
482デフォルトの名無しさん:2009/09/30(水) 10:04:43
おお、クレヨンしんちゃんなんかと一緒ですな
483デフォルトの名無しさん:2009/09/30(水) 15:59:07
島根県マジだな
484デフォルトの名無しさん:2009/09/30(水) 16:25:20
負けるな取烏
485デフォルトの名無しさん:2009/09/30(水) 19:37:11
そして久しぶりにMatzにっきが更新された
486デフォルトの名無しさん:2009/10/01(木) 00:02:02
こっそりここ見てるんじゃないのか?w
487デフォルトの名無しさん:2009/10/01(木) 00:04:42
日記の内容的にそれはないと思うけど。
488デフォルトの名無しさん:2009/10/01(木) 00:09:23
【島根】 プログラミング言語「Ruby」開発者ら3人を松江市名誉市民に
http://tsushima.2ch.net/test/read.cgi/newsplus/1254271871/
489デフォルトの名無しさん:2009/10/01(木) 00:55:13
プログラミング言語で村おこしとかすげえな
過疎で悩んでる地域はIT会社の誘致とかしろよ
ほとんどオンラインで出来るから場所は関係ないしな
490デフォルトの名無しさん:2009/10/01(木) 03:10:02
ほとんどオンラインでできるなら会社の社屋は都会にあったほうが便利
これまめちしきな
491デフォルトの名無しさん:2009/10/01(木) 03:54:34
家賃
492デフォルトの名無しさん:2009/10/01(木) 04:01:39
>>491
お前都会でしかネット使ったことないだろ
493デフォルトの名無しさん:2009/10/01(木) 04:11:43
NTTの支店があるような市でならうまくいく可能性はあるな
田舎は下手すりゃISDNだったりするからある程度都会だったほうがいいのは事実
社員集まれと言ったときにJRの駅がないとか非常に困る
494デフォルトの名無しさん:2009/10/01(木) 04:23:10
じゃあ間をとって地方都市の中心市街だな。
別に松江でいいじゃん。
495デフォルトの名無しさん:2009/10/01(木) 04:34:56
だからJRの駅がないと駄目だって言ってんだろ
496デフォルトの名無しさん:2009/10/01(木) 05:42:21
おまえJRってどういう意味で使ってるの?
旅行でビジネスホテル使ってもかなりブロードバンド引いてあるし
家の中にばっかいないで外に出ろよ
497デフォルトの名無しさん:2009/10/01(木) 07:54:32
>>496の考えてる田舎は既にかなり都会である件
498デフォルトの名無しさん:2009/10/01(木) 08:25:59
>>496
お前こそJRをどういう意味で使ってるんだ
駅だぞ? ブロードバンドが引いてあろうが何だろうが
交通手段が無いところでIT会社が成長するのは難しすぎる
499デフォルトの名無しさん:2009/10/01(木) 08:34:10
松江ってJRの駅ないの?
500デフォルトの名無しさん:2009/10/01(木) 08:36:45
>>499
JRの駅くらいしかない。
501デフォルトの名無しさん:2009/10/01(木) 08:38:23
普通に山陰本線だが、どうも>>498は新幹線とでも言いたいのではないかという気がして仕方がない
502デフォルトの名無しさん:2009/10/01(木) 08:46:17
松江厨が空気読めないレスをしております
503デフォルトの名無しさん:2009/10/01(木) 09:11:31
松江にJRの駅があるなら
初めから会話が成り立ってないな
504デフォルトの名無しさん:2009/10/01(木) 09:19:55
一畑も忘れんなよ
505デフォルトの名無しさん:2009/10/01(木) 09:23:21
セリーヌの金ピカ自転車に乗ってくるので交通手段の問題はありません
506デフォルトの名無しさん:2009/10/01(木) 11:54:31
日本にJRの駅がない県庁所在地はないだろ…
と思ったら、那覇があったか。
507デフォルトの名無しさん:2009/10/01(木) 13:26:38
>>494
確かに>>490は「都会」とは言ってるが「首都圏」とまでは言ってないからな
508デフォルトの名無しさん:2009/10/01(木) 15:56:30
ちょっと質問
Ruby1.8 と Ruby1.9 で併用するスクリプトで文字列のエンコーディングの変換をしたいんだけども
Ruby1.9 では String#encode を使ったほうがいい?
共通で使えるから Iconv.conv でいいやーとかはダメ?
509デフォルトの名無しさん:2009/10/01(木) 17:57:42
隣の机でもメールで会話してるアフォPGも居るから、
距離は微妙だな。
客は大都市圏のほうが多いから、営業と打ち合わせは大都市に事務所無いとコスト掛かるな。
510デフォルトの名無しさん:2009/10/01(木) 18:02:18
>>508
併用かつ常に同じiconv実装を使える保証があるならIconvでいいと思う。
保証が無くて、CP932やCP51932くらいしか使わないのだったらNKFの方がよい。
どちらでもないなら場合によるかなぁ。
511デフォルトの名無しさん:2009/10/01(木) 20:21:07
1.9でYAML.loadしたらハッシュはYAMLに書いた順番通りになりますか?
512デフォルトの名無しさん:2009/10/01(木) 20:44:52
>>510
そういえば1.8の$KCODEって
sはCP932,eはCP51932を期待していいもんなんだろうか
なんとなくWindowsは期待していい気がするけど他OSだと微妙な気がしてきた
513デフォルトの名無しさん:2009/10/02(金) 11:34:22
Ruby1.9 で日本語文字列を inspect するとコンソールのエンコーディングによっては前時代的に表示が崩れるよね
Ruby1.8 の時より退化してるような気がしなくもないんだが、なんか超賢い irb の設定とかある?
514デフォルトの名無しさん:2009/10/02(金) 11:43:54
>>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 内で直接切り替えてもよさそうだが方法がよくわからんかった
515デフォルトの名無しさん:2009/10/02(金) 12:57:37
新時代的に日本語文字列はUTF-8しか使わないというのでどうだろうか
516デフォルトの名無しさん:2009/10/02(金) 13:09:20
defaukt_external の正しそうな使用法を見た気がする
irb で実行されたファイル保存なんかが UTF-8 に切り替わる危険性はあるが
517デフォルトの名無しさん:2009/10/02(金) 15:51:25
$stdin.set_encoding("locale")
$stdout.set_encoding("locale", undef: :replace, invalid: :replace)
$stderr.set_encoding("locale", undef: :replace, invalid: :replace)
518デフォルトの名無しさん:2009/10/02(金) 16:40:11
ぎゃー set_encoding なんて組み込みクラスにあるのか
メソッド名変えないと
519デフォルトの名無しさん:2009/10/02(金) 16:54:49
例外が起こらない begen ... rescue ... end は処理遅いですか?
begin ... end で括っただけでやや重いとかそういうことってある?
520デフォルトの名無しさん:2009/10/02(金) 17:02:35
初心者スレじゃないんだしまず自分でベンチ取ってみろよw
たぶん、その重さが気になる状況ならRuby自体やめろっていう程度だと思う
521デフォルトの名無しさん:2009/10/02(金) 17:15:25
>>518
自作メソッドが微妙に似た機能で全く同じ名前だと困るよね
522デフォルトの名無しさん:2009/10/02(金) 17:17:46
あんだば入れるかどうかって何か決まりがあるの?
523デフォルトの名無しさん:2009/10/02(金) 17:19:59
RubyであえてHigh Performance RubyやEffective Rubyみたいな本を読みたい
もう出てたりする?
524デフォルトの名無しさん:2009/10/02(金) 17:23:51
rubyのメソッド名で単語区切りに入れる
定数(マジックナンバー的な意味での)も同様
camelCaseは使わん
525デフォルトの名無しさん:2009/10/02(金) 18:18:06
メソッドは小文字でアンダースコア区切り
クラス・モジュールはUpperCamel
それ以外の定数は大文字でアンダースコア区切り
例外はString()とかInteger()とか
526デフォルトの名無しさん:2009/10/02(金) 19:45:08
>>523
ホットスポットをCモジュールに切り出せ、以上、で終わってしまうので、
そういう本は出ない。てかEffectiveじゃなくてEfficient?
527デフォルトの名無しさん:2009/10/02(金) 19:48:16
るびまでパフォーマンスチューニングねたいっぱいやってたじゃん
528デフォルトの名無しさん:2009/10/02(金) 19:57:57
>>523
アプリケーションレベルでの高速化(キャッシュとか並列化とか)はよく聞くけど
Rubyプログラムの高速化はあんまり聞かないなあ。

「Ruby 速い」でぐぐったらるびまの記事とかあったけど、求めるものとは違うかも。
ttp://jp.rubyist.net/magazine/?0022-FasterThanC
529デフォルトの名無しさん:2009/10/02(金) 20:54:02
ライブラリ名は _ と - か混在してカオス状態
530デフォルトの名無しさん:2009/10/02(金) 20:58:29
もうだめかもわからんね
5冊も参考書買ったのに
531デフォルトの名無しさん:2009/10/02(金) 21:06:03
>>529
Rubyの標準添付ライブラリを見てくれていれば
- (ハイフン)が標準だということは分かっただろうに・・・

wx_sugar、お前のことだ
532デフォルトの名無しさん:2009/10/02(金) 21:42:52
個人的は(C++ みたいに)言語の変数に使える記号のみで
ライブラリ名も命名されてる方が一貫性があって好み

というわけで、最近書くRubyライブラリ名はみなアンダースコア
区切りに統一した
533デフォルトの名無しさん:2009/10/02(金) 21:55:20
>>532
頼むからやめてくれ
もうこれ以上、require書くときに「ハイフンだっけアンダースコアだっけ」とか悩みたくない
534デフォルトの名無しさん:2009/10/02(金) 21:55:56
いるよね個人的趣味でデファクトスタンダード破る奴
535デフォルトの名無しさん:2009/10/02(金) 21:57:25
>>532
まっとうな判断だと思う
どうせクラス名・メソッド名になればハイフンは使えないんだし、無意味な脳内変換が必要になるだけ
536デフォルトの名無しさん:2009/10/02(金) 22:03:22
統一されていないのが一番厄介なんだよな
空気呼んでくれ
537デフォルトの名無しさん:2009/10/02(金) 22:46:53
C の #include 同様 require の引数も所詮ファイル名なんだから、どちらでも気にならんな。
538デフォルトの名無しさん:2009/10/02(金) 22:57:20
脳味噌が欠乏している人はそんなことでも気になるんだよ
539デフォルトの名無しさん:2009/10/02(金) 23:14:43
Rails脳だとActiveSupportの自動ロード(*)に毒されているので
アンダースコアを使う。

const_missing 時に Foo::BarBaz → foo/bar_baz と変換した
名前で require する機構がある。
540デフォルトの名無しさん:2009/10/03(土) 04:57:11
いるよね個人的趣味でデファクトスタンダード破る奴
541デフォルトの名無しさん:2009/10/03(土) 05:07:53
・ require がハイフンとアンダースコアと空白を同一視すべきだった
・ ActiveSupport はハイフンに変換すべき
・ 必要なのはファイルではなくクラスやモジュールである以上ファイル名に依存するのが糞
・ マニュアル読まずにライブラリ使おうとすること自体が間違い

どれか選ぶよろし
542デフォルトの名無しさん:2009/10/03(土) 05:14:43
require 'a と書いた時点でディレクトリ走査して
候補を表示するサポートがあってもいいかな、と思うことはちらっとある
543デフォルトの名無しさん:2009/10/03(土) 05:29:39
前田さんのところのコーディング規約はハイフンだね
ttp://shugo.net/ruby-codeconv/codeconv.html
544デフォルトの名無しさん:2009/10/03(土) 05:33:53
どれでも良「かった」んだよ
その中からRubyはハイフンを選んだわけで
娘を人質にとられてるとかそういう事情があるのでない限り
利便性を捨てる理由がないのならハイフンにするのが無難
545デフォルトの名無しさん:2009/10/03(土) 05:57:45
教祖がハイフンと逝ったから、信者の皆さんはハイフンを使わないと地獄に堕ちるだけ。
546デフォルトの名無しさん:2009/10/03(土) 07:32:06
なんかもう目眩がしてきた
all_load_paths-c.yaml
547デフォルトの名無しさん:2009/10/03(土) 09:22:01
>>535さんの作るライブラリのクラス名はハイフン区切りなんですねさすがです
548デフォルトの名無しさん:2009/10/03(土) 09:40:28
アンスコの間違いでは
549デフォルトの名無しさん:2009/10/03(土) 09:44:36
Ruby歴はけっこう長いんだけど低いレベルで安定しちゃってて
全然進歩がない。それで困ってないといえば困ってないんだけど。
開くたびに違うTIPSや小ネタ表示してくれるサイトとかってないですか?
550デフォルトの名無しさん:2009/10/03(土) 09:59:50
困るような問題にぶつかれ
困るような問題が無いならそれでいいじゃないか

以上
551デフォルトの名無しさん:2009/10/03(土) 11:33:13
>>549
レシピブックをひととおり読んでみるとか
552デフォルトの名無しさん:2009/10/03(土) 12:03:33
>>551
どのレシピブック?
553デフォルトの名無しさん:2009/10/03(土) 14:32:53
初心者スレ見てると、このぐらい簡単だろと回答してみようにも意外ときれいに書けなかったり
これ初心者に役立つのか?とは思いつつも盲点をつかれたような回答がついたりと
為になることもままある
さっぱりなときも多いけどw

それはともかく他人のコード読みまくるのが一番だと思うよ
554デフォルトの名無しさん:2009/10/03(土) 14:37:06
そこまで労力かけたくないって話だろう
555デフォルトの名無しさん:2009/10/03(土) 14:39:55
自分が使うライブラリのコード読むだけでずいぶん効果あるんだけどな
それもブラックボックスで困らないというなら、その程度で身の丈に合ってるんじゃね
556デフォルトの名無しさん:2009/10/03(土) 14:51:08
アンテナ作りたいんですけどhtmlパーサっぽいのないですか
ぐちゃぐちゃのhtml渡してもパースエラー吐かずにがんばってくれるのがいいです
557デフォルトの名無しさん:2009/10/03(土) 15:07:14
ぐぐれ
それすらできんのでは成功はない
558デフォルトの名無しさん:2009/10/03(土) 16:27:53
最初にLINT噛ませて成形してパーサに喰わせればいいんじゃね。
方言を標準語に直して字句解析すればおk。
559デフォルトの名無しさん:2009/10/03(土) 16:49:46
そのへんは、firefox (かIE)に渡すのが一番だという結論になってたはず
560デフォルトの名無しさん:2009/10/03(土) 23:01:42
>>556
htmlsplit

>>557
ライブラリに関しては、探しても見つけられない
(or 良くないものを見つけて満足してしまう)
ことがよくあるので、人に聞くべきだと思う
561デフォルトの名無しさん:2009/10/03(土) 23:25:46
Ruby 1.9.2 のリリース延期かよ・・・

まあ、分かっちゃいたけど下手したらさらに1年後くらいになりそうだな
562デフォルトの名無しさん:2009/10/04(日) 00:39:11
リリース延期てなんかあったの?
563デフォルトの名無しさん:2009/10/04(日) 00:46:43
>>562
延期というかリスケ。[ruby-core:25707]
決まるのは10/13の会合で。[ruby-core:25841]

564デフォルトの名無しさん:2009/10/04(日) 14:33:48
うんこでもいいから毎年一回だしてほしいなあ
565デフォルトの名無しさん:2009/10/04(日) 14:40:58
previewとか1.7系みたいなのならいくら出してもかまわないけど
正式版でうんこは臭うからやめてくれ
566デフォルトの名無しさん:2009/10/04(日) 14:42:00
正式版でもどうせたいしたことないし
リリースが質を高めるモチベーションになってるからさ
567デフォルトの名無しさん:2009/10/04(日) 14:43:35
matzにっきが再開?
568デフォルトの名無しさん:2009/10/04(日) 16:09:14
しかし1.9系は1.9.2からが本番だから
1.9.2はなるべく早く出して欲しいなぁ
569デフォルトの名無しさん:2009/10/04(日) 16:45:42
バージョン番号が1増えたからといってどうかどうにかなるもんでもあんめえ
「それ」はおそらく1.9.1でも充分に行えるはずだし、そうしておくべき

あと RUBY_VERSION >= '1.9.0' の問題は公式にコメントなりガイドなりあったほうがええぞ
570デフォルトの名無しさん:2009/10/04(日) 16:49:24
>>569
ここに書いて解決する可能性は低いと思う
571デフォルトの名無しさん:2009/10/04(日) 16:54:56
>>569
どうにかなるんだよMerbユーザにとっては

1.9.2を待ってる人は相当多いと思う
572デフォルトの名無しさん:2009/10/04(日) 17:20:29
再利用型メソッド上書きにまつわるエトセトラと同じような問題だと思ってる > RUBY_VERSION >= '1.9.0'

alias _old_hoge hoge
def hoge
 old = _old_hoge
 ...
end

だとまずい、みたいな
573デフォルトの名無しさん:2009/10/04(日) 17:25:55
まー、
「提供されてるそのまんまのはずの機能を使ってごく素直に記述して“きちんと動作する”のに怒られる」
という点では似ていなくもない
574デフォルトの名無しさん:2009/10/04(日) 17:29:01
>>569
結局「バージョン番号分岐でもdefined?でもどっちでもいい」って方向で
まとまったんじゃなかったけ
575デフォルトの名無しさん:2009/10/04(日) 17:31:04
rubyなんて1.68で充分だろ
576デフォルトの名無しさん:2009/10/04(日) 17:32:05
>>569>>572もダメな理由がわからない\(^o^)/
577デフォルトの名無しさん:2009/10/04(日) 17:44:28
>>574
各々で動作しない場合の理由の例示というのはあってもいいかな、と思う
動作しない場合を踏まえた上で利用するのは全く問題あんめえ
defined?(Encoding) は Module::Encoding が include されてると誤爆するから defined?(::Encoding) と書け、とか
str.respond.to?(:force_encoding) は ::Encoding の存在を保証しないから defined?(::Encoding) にしとけ、みたいな

RUBY_VERSION が駄目な理由は結局明示されなかったが
578デフォルトの名無しさん:2009/10/04(日) 17:52:51
あー、>>420-のことか
579デフォルトの名無しさん:2009/10/04(日) 18:14:40
つか、 Ruby 1.9.1 を名乗っておきながら特定の標準ライブラリが動作しないなんてのは
スクリプト作者が考慮することじゃない気がしてならない
そのプラットフォームで Ruby を使用する利用者側が、各々の環境における代替手段を追記すべき
580デフォルトの名無しさん:2009/10/04(日) 19:10:24
現時点で1.9系専用の(文法ではなく)機能を要求するからといってバージョンに依存した判定をすると
例えば1.8系にコンパチの機能がついて要件を満たした時に、無駄に1.9系を要求することになるから微妙だという話じゃなかったっけ

あとはMRI以外の実装がバージョン番号と機能が一致しないんじゃないかって話とか
そのへんは事情がよくわかんないけど
581デフォルトの名無しさん:2009/10/04(日) 19:14:40
現時点では 1.9.1 と 1.8.7 と 1.8.6 しかないのにね
「1.8.8.ではどうなるかわからないだろ」なんてのは今議論されてもそいつが困るだけのはずなのに
582デフォルトの名無しさん:2009/10/04(日) 19:31:20
RUBY_VERSION のいいとこは、でかい if 文で括れるところだろ
機能 A は存在するが機能 B は存在しない、というような複雑な状況を無視できる
本当に respod_to? と defined? を使っていったら可読性は限界まで下がるぞ
583デフォルトの名無しさん:2009/10/04(日) 19:34:01
Ruby.has_encoding? みたいなのがあればよかったんでないか
584デフォルトの名無しさん:2009/10/04(日) 19:37:35
RUBY_VERSIONよりdefined?がいいという理由は
1. >>580
2. 「Encodingが必要だ」という意図が分かりやすい
の二つが今まで挙がってたはず

両方とも一長一短あるし、俺はどっちでもいいと思うよ

>>582
Encoding関連以外に、if文で分岐しないといけないような機能ってないのでは
585デフォルトの名無しさん:2009/10/04(日) 19:45:25
Encoding は String クラスと Encoding クラスの両方に影響して
なおかつ iconv とかも必要として実装依存だから例外中の例外とも言える

でも使用前に返り値が Enumerable かどうか確かめるとかいうのはめんどいぬ
586デフォルトの名無しさん:2009/10/04(日) 19:49:18
Object#tap 使うたびに Object.new.respond_to?(:tap) を調べるのはやだなあ
587デフォルトの名無しさん:2009/10/04(日) 19:56:44
tap使ったスクリプト書く度にバージョンチェックするのもいやだぞw
そういうのは例外で動作止まるのを期待してノーチェックでいいだろ
588デフォルトの名無しさん:2009/10/04(日) 20:00:40
>>586
tap程度なら、ない環境を検出したら自前の定義を提供すればいい。
589デフォルトの名無しさん:2009/10/04(日) 20:05:28
if RUBY_VERSION >= '1.9.0'
require '1.9/main.rb'
else
require '1.8/main.rb'
end

これが許されざるよなのが辛い
実質2バージョンを並行管理しないといけないのも辛いが
590デフォルトの名無しさん:2009/10/04(日) 20:11:40
実際問題としては「Ruby1.9ぽく書きたい」のでない限り、併用スクリプトでは問題にならないはず
文字列とIOだけは別途処理しないとどうにもならないが
591デフォルトの名無しさん:2009/10/05(月) 08:16:44
>>583
だね。どんなフューチャーがサポートされてるか、って観点だとそれが一番きれい。
当面はそういうgemを作って凌ぐとして、
次の1.9系、1.8系リリースで入らんもんかね。
592デフォルトの名無しさん:2009/10/05(月) 08:33:16
>>591
今入っても、もう遅いだろう
動く環境と動かない環境があるのでは……

というか、もし1.9.1の時点でhas_encoding?が入っていたとしても
そのメソッドは1.8.0や1.6.xでは動かないのだから
どちらにしても、あまり役に立たないと思う
593デフォルトの名無しさん:2009/10/05(月) 08:34:17
フューチャーだから未来のために入れるんじゃないのか
594デフォルトの名無しさん:2009/10/05(月) 08:52:20
フィーチャー?
595デフォルトの名無しさん:2009/10/05(月) 08:53:06
ときどき futuring 誰それ って書いてあるのを見るとかわいそうに思う。
596デフォルトの名無しさん:2009/10/05(月) 08:53:17
バージョンチェックはアフォっぽい所は有るな。
バージョンチェック部分の記述だけで10バージョンぐらい比較してたりしてw
597デフォルトの名無しさん:2009/10/05(月) 08:58:18
いまさらC言語が30年前に解決している問題で揉めるなんて…
598デフォルトの名無しさん:2009/10/05(月) 09:02:21
「どんな未来がサポートされているか」
なんだかかっこいいな。
599デフォルトの名無しさん:2009/10/05(月) 09:03:18
autoconf系だと、小さなプログラムをコンパイルして
期待どおりの動作をするか(エラーが出ず、出力も想定どおりか)
チェックしてたりするな。
600デフォルトの名無しさん:2009/10/05(月) 09:48:45
>>599
1.8 と 1.9 ではインストールされるファイルが違うという rubygem は前どっかで見た
面倒だからほとんど行われてないけど

まあこのスレの論理で言うとバージョンでの分岐や
ライブラリインストール時の環境固定でチェックするなんてことは
あってはならないわけだが(w

あくまで実行時にすべてがチェックされるべきであり
601デフォルトの名無しさん:2009/10/05(月) 10:31:45
どっちかってと
「メソッドの存在は一緒だし返り値のクラスも同じなのだが返り値の具体値が 1.9 と 1.8 では違う」
というような場合に、非 RUBY_VERSION 派はどう書くのか知りたい
602デフォルトの名無しさん:2009/10/05(月) 10:38:41
具体的には?
603デフォルトの名無しさん:2009/10/05(月) 10:45:22
ちょっと考えてたんだが、なんだろうね
String#inspect あたりは違うかもしれん
defind?(::Encoding) の範疇かどうかがちと微妙
604591:2009/10/05(月) 11:35:02
>>594
あばばばば

W-ZERO3から入力したから!!入力補完とバック・トゥ・ザ・フューチャーが悪いんや!!!
(顔を真っ赤にしながら)

で、gemについては
・どうにかしてある機能が実行環境下で存在するか判定
・機能の有無をFeature.has?(Synbol)とかそんな感じでチェックできるように
なんてgemを作っておいて、機能の有無で処理を切り分けたい側は
このgemに依存関係を与えておくと。

とはいえ、俺も文字コード関連のほかにはFiberぐらいしか
嬉しいところが思いつかないけどね。

605デフォルトの名無しさん:2009/10/05(月) 11:46:49
動作チェックした環境をコメントに書いとくだけでいいよ
606デフォルトの名無しさん:2009/10/05(月) 12:09:36
>>602
Class#name。
[1.8] Class.new.name # => ""
[1.9] Class.new.name # => nil
607デフォルトの名無しさん:2009/10/05(月) 12:37:02
俺も>>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
608デフォルトの名無しさん:2009/10/05(月) 12:45:45
ならsite_ruby/1.8とsite_ruby/1.9.1にインストールしろよ。
609デフォルトの名無しさん:2009/10/05(月) 12:57:25
610デフォルトの名無しさん:2009/10/05(月) 14:56:48
1.8は捨てろ。
1.8はもうダメだ。終わった。
1.9で動かないrubyプログラムは捨てろ。書き直せ。
611デフォルトの名無しさん:2009/10/05(月) 19:54:36
走れ描け走れ走れ
612デフォルトの名無しさん:2009/10/05(月) 19:58:20
mswin32でユニコードファイル名扱えるようにしておくれ。
613デフォルトの名無しさん:2009/10/05(月) 20:04:48
>>610
最近始めたんだけど、そんなに違うの?
614デフォルトの名無しさん:2009/10/05(月) 20:12:59
>>613
文字列の文字エンコードとファイルIOが、互換性保ちつつ書くのがとてもめんどくさいレベル
1.8のほうが普段遣いの範囲では直感的なので、1.8で慣れてから1.9に移行するのがベスト
615デフォルトの名無しさん:2009/10/05(月) 20:17:41
そんなにエンコーディング関係にはまるってのは「普段遣い」の範囲が常人とはかけ離れてる説
616デフォルトの名無しさん:2009/10/05(月) 20:19:25
>>609
> # 1.8の場合
> require 'hogelib/compat-1.8'
こんなマネをするくらいなら、ということだよ。
617デフォルトの名無しさん:2009/10/05(月) 20:21:58
なんだか意味不明だけど、1.9でもclass Stringは未だにutf8じゃないってこと?
ところでjava, c#とおなじで、文字列用クラスで内部エンコードがutf16のクラスってのはいつ組み込みクラスになるんですか?
618デフォルトの名無しさん:2009/10/05(月) 20:29:13
うんにゃ、バイト列+エンコーディング情報
エンコーディング情報を文字列オブジェクトごとに保持してる
Shift_JISの文字列 + UTF-8の文字列 はエラー
/Shift_JISの日本語/ =~ UTF-8の文字列 もエラー
619デフォルトの名無しさん:2009/10/05(月) 20:42:02
>>617
他言語対応には大きく2通りのアプローチがあって、
・巨大な文字集合を扱える一つの内部表現方式を抱えて
 外部表現との入出力は都度変換/逆変換する
 (内部表現は普通unicode系の何か)
・ある文字コードの取り扱い(文字の区切りとかマッチングとか)を
 文字コードごとに用意しておいてそのとき扱ってる文字コードで
 処理を切り替える
という感じ。

それぞれに一長一短があり、
前者だとJavaやWindows
後者だと主に昔からのUNIXが採用している。
Ruby1.9は後者を採用した。
620デフォルトの名無しさん:2009/10/05(月) 21:16:59
詳しくありがとうございます。
エンコードを持つ方式なんですか。
rubyはもともとregexpが主要機能なんで、内部はutf8で統一の方がいいと思いますけど、なんか事情があるんでしょうね。
それと文字処理するなら、メモリなどから見て非効率でもエンコードを統一しないと出来ませんよ。
処理とはあまり関係ないところについて時間をかけて無駄に脳みそ使いたくないでしょ。
621デフォルトの名無しさん:2009/10/05(月) 21:19:30
あともう一つお聞きしたいんですけど、ほぼPOSIX互換の言語はruby以外にありますか?
言語上、ライブラリでスレッドやパイプ、IOを持ってて、POSIXレベルまで充実しているってことです。
622デフォルトの名無しさん:2009/10/05(月) 21:27:54
Rubyこそが唯一あなたにふさわしい言語です。
だから他の言語にこないでね。
623デフォルトの名無しさん:2009/10/05(月) 21:33:17
>>620
POSIXという単語を知っててCSIを知らないのがよくわからないけど。

ある文字コードでの文字列処理関連のプリミティブな処理を自力で実装して
処理系に教えてやれば、どんどん対応文字コードを増やしていけるのがCSI。

この場合実装のために汗を流す人間と受益者がたいてい一致し、
余所に迷惑をかけることなく目的を達成できたので
昔はこの方法が主流だった。
624デフォルトの名無しさん:2009/10/05(月) 21:36:05
あれ?
昔rubyを触ったときにあるブログで聞いたんですけど、rubyは(処理が遅くても)もともともposix互換あたりを目標に作ってたんじゃないですか?
実際現在では、OSという概念が既にハードから分離されてますし・・・・
625デフォルトの名無しさん:2009/10/05(月) 21:38:24
言語の用語として「POSIX互換」なんて用語は知らないんだが。
(UNIX-like OSのシステムコールについてならわかるのだが)
「POSIX互換」てなんのことだか説明してくれ。
626デフォルトの名無しさん:2009/10/05(月) 21:45:36
>>623
というよりも、普通にjavaとかjsとか使えるんでどうでもいいですけど。
ただそれらは電卓代わりとかちょっと数値計算(四元数とかほかでサポートがあまりないもの)で使うとなるとちょっと面倒なんで。
もともとCに慣れてるからやはりmaximaとかmathematicaとか構造化言語か純粋OOPに基づいた設計じゃない言語は扱いにくく、あんまりです。
perlも取って付けた無駄が多くてあんまり。
627デフォルトの名無しさん:2009/10/05(月) 21:47:26
>>625
言語上、ライブラリでスレッドやパイプ、IOを持ってて、POSIXレベルまで充実しているってことです。
実際現在では、OSという概念が既にハードから分離されてますし・・・・
628デフォルトの名無しさん:2009/10/05(月) 21:48:56
>>625
もう少し脳みををやわらかくしたほうがいいですよ。
あなたは未だに「Web 0.91」ですか?w
629デフォルトの名無しさん:2009/10/05(月) 21:52:20
脳味噌がほおむぺえじであばばばばーでふにゃんふにゃんの人がいるようでつね。
630デフォルトの名無しさん:2009/10/05(月) 21:52:33
>>627
Rubyはライブラリでスレッドやパイプ、IOを持ってて、POSIXレベルまで充実していてうらやましいな

PerlやPythonはスレッドという概念が存在せずプロセス一辺倒だし
IPCは全部メッセージングだ
しかも作者がUNIX嫌いでWindowsに傾倒してしまっている
ここらへんはDebian使いのMatz(Rubyの作者)とは大きな違いだ

だから悪いことは言わない。Rubyにしとけ
631デフォルトの名無しさん:2009/10/05(月) 22:03:44
>>630
まあ簡単には調べてみたんですけど、やっぱりrubyしかないんですね・・・
あとはjava, dotnetのVMものですけど。
まっつさんはもともとPOSIX(と機能上)互換を目指してライブラリを充実していったという話しなんですけど。
ルビーですけど、個人的にはパイソンのタプル型(イミュータブル型)があれば言うことないと思います。

いま大黒なんとかのPDFを読み返しているんですが、彼の文章は非常に読み難いので他によいガイドというか言語解説レファレンスないですか?
ruby-doc.orgも使ってますが日本語がいいです。
632デフォルトの名無しさん:2009/10/05(月) 22:18:30
ハチドリ本でいいんじゃないの?
633デフォルトの名無しさん:2009/10/05(月) 22:20:29
yugui本はハチドリじゃなかった、キリンだっけ
634デフォルトの名無しさん:2009/10/05(月) 22:30:58
            〃´⌒ヽ
.     , -――  メ/_´⌒ヽ
   /   / ̄  ´ヽ ヽ
.  /  ,  /// ト. !  、 丶ヽ
  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    |\. \   /⌒〉::::::::::::::
635デフォルトの名無しさん:2009/10/05(月) 22:48:04
>>632-633
rubyは他の言語と文法・リテラルが結構似ていて、突飛なruby独自の概念があるわけではないので
実際は充実したクラスAPIのレファレンスがあればいいんですけど。
もともと他の言語を使えるわけで、下らない解説とか主義思想・小話なんかよりも各APIの典型的な使い方だけでいいですよ。
その点JAVA(英語サイト)の方が勉強しやすいし、習得も早いんじゃないですか。
英語でしたがやっぱりruby-docで我慢します。
636デフォルトの名無しさん:2009/10/05(月) 22:54:07
>>635
こういうのを小賢しいって言うんだろうか?
http://doc.okkez.net/
637デフォルトの名無しさん:2009/10/05(月) 23:23:09
>>629
あばばばばー乙
638619,623:2009/10/06(火) 00:07:56
普通に釣りだと思うけどなあ。

具体的に言うと
ttp://ja.wikipedia.org/wiki/%E3%83%9C%E3%82%B0%E3%83%80%E3%83%8E%E3%83%95%E4%BA%8B%E4%BB%B6
の劣化コピー。さらにこれの元ネタとされるソーカル事件が1994年だからそこから数えると15年ほど周回遅れと思われる。

おまけのネタ
ttp://ja.uncyclomedia.org/wiki/%E3%82%BD%E3%83%BC%E3%82%AB%E3%83%AB%E4%BA%8B%E4%BB%B6
あえてやるならこれぐらいのヒネリは欲しいところ。
639デフォルトの名無しさん:2009/10/06(火) 00:27:21
いや、別に彼がこのスレ住人の知的誠実さを試しているわけではないので
ソーカル事件とは根本的に違うだろう
640デフォルトの名無しさん:2009/10/06(火) 03:16:00
>>639
だからあえてボグダノフ事件の方を貼ってるのでは
641デフォルトの名無しさん:2009/10/06(火) 10:10:12
質問者が誠実でないことだけは明らかだしな。
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件
643デフォルトの名無しさん:2009/10/06(火) 11:44:53
FORTH大健闘じゃんw
Chuck Mooreは偉大だわ
http://www.simple-talk.com/content/article.aspx?article=775
644デフォルトの名無しさん:2009/10/06(火) 11:50:42
たとえばforthは英語の副詞でもあったりするけど、考慮してるのかな。
645デフォルトの名無しさん:2009/10/06(火) 11:56:50
namespaceが違うとはいえRubyもネット検索しやすい独自の名前にすりゃよかったのに
646デフォルトの名無しさん:2009/10/06(火) 12:06:51
Rubyはまだマシだろ
一番検索しづらいのはC
647デフォルトの名無しさん:2009/10/06(火) 12:14:52
いやそれは単純に検索エンジン側の不手際だから

「プログラミング言語のほうのC」「プログラミング言語のほうのRuby」と指定して
プログラミング言語のほうの結果だけを返さない検索エンジンのほうが一方的に悪い

どうやって実現するのかまでは知らん
648デフォルトの名無しさん:2009/10/06(火) 13:05:10
単一ワードで検索する方が悪いだろww
649デフォルトの名無しさん:2009/10/06(火) 13:19:31
何に期待して「C」と検索するんだ
650デフォルトの名無しさん:2009/10/06(火) 13:31:28
Cは知ってても、それだけじゃ困るからだろ
651デフォルトの名無しさん:2009/10/06(火) 13:40:00
単語レベルで意味が混ざるIconとかのほうが悲惨じゃなかろうか
652デフォルトの名無しさん:2009/10/06(火) 15:07:06
Perlみたいに英語の単語にないつづりがいいね
653デフォルトの名無しさん:2009/10/06(火) 15:30:49
でも本当は、Pearl にしたかったんだよね。
654デフォルトの名無しさん:2009/10/06(火) 16:11:52
そう
既に Pearl という言語があったんで、仕方なく Perl にしただけ
唯一性の意図があったわけでは全くない
時々勘違いして痛いこと言う人がいるのがたいへん味わい深い
655デフォルトの名無しさん:2009/10/06(火) 17:03:48
gloria -> pearl -> perl
656デフォルトの名無しさん:2009/10/07(水) 05:37:29
るびまって今どうなってるのかな?
昨夜(おとといの夜)読んでて途中で見れなくなったんだけど、
30時間ちかくたった今もまだ。

頼みの綱のつもりでいた記事あったから、非常に今あせってるw
657デフォルトの名無しさん:2009/10/07(水) 05:43:12
るびまはマネタイズされてないから時々止まります
鯖代捻出方法の案があれば教えてあげるとみんなよろコンブ
658デフォルトの名無しさん:2009/10/07(水) 05:55:23
そんな理由かいw
せめてブラウザのキャッシュされるようになってれば・・・
659デフォルトの名無しさん:2009/10/07(水) 06:02:05
あれってなんでだろうね
確かに訂正前の不正確情報が残ると不便だが、
ぶっちゃけそんな事後更新されてるわけでもないだろうに

オフラインモードで読めないことのほうが遥かに面倒
660デフォルトの名無しさん:2009/10/07(水) 07:51:35
23号までなら緊急避難的にarchive.orgで代用可
661デフォルトの名無しさん:2009/10/07(水) 08:44:58
ルビィ本とかのアフィでも張って鯖代稼げば?
ググルアフィぐらいじゃマイナー過ぎて儲からないだろうけど。
662デフォルトの名無しさん:2009/10/07(水) 11:35:54
そもそもいくら必要なんだ?ん?
663デフォルトの名無しさん:2009/10/07(水) 12:09:35
富豪的サーバ運営というやつですね
664デフォルトの名無しさん:2009/10/07(水) 12:12:47
富豪のワリには風呂に入ってないから異様に臭いw
665デフォルトの名無しさん:2009/10/07(水) 13:28:26
自己紹介乙
666デフォルトの名無しさん:2009/10/07(水) 13:29:38
自己紹介乙wwwwwww
667デフォルトの名無しさん:2009/10/07(水) 13:42:35
頭がすこしよわい人は、「相手の心の持ちよう」を想像する能力がなくて、
罵倒の際に「相手が言われていやだと思うこと」ではなく、
「自分が言われていやなこと」をベースに罵倒文句を考えるので
結果として自分自身のコンプレックスを大声で宣伝することになってしまうらしい。

これがいわゆる「馬鹿の罵倒は自己紹介」のメカニズムなんだとか。
668デフォルトの名無しさん:2009/10/07(水) 13:46:56
自己紹介乙wwwwwww
669デフォルトの名無しさん:2009/10/07(水) 13:47:46
全米が噴いた( ´,_ゝ`)プッ
670デフォルトの名無しさん:2009/10/07(水) 13:54:07
連投するから馬鹿がバレバレw
671デフォルトの名無しさん:2009/10/07(水) 13:55:13
ジサクジエンバレバレw
672デフォルトの名無しさん:2009/10/07(水) 16:17:32
カタカナで書かれると違和感があるね

ルビー開発者のまつもと氏を松江名誉市民に
http://www.nikkei.co.jp/news/retto/20091006c6b0601w06.html
673デフォルトの名無しさん:2009/10/07(水) 17:01:42
ハード障害だそうだ。もうちょい待て。
674デフォルトの名無しさん:2009/10/07(水) 17:22:11
>>664 は二人の増井氏のことを知らないと分からないネタだな。

675デフォルトの名無しさん:2009/10/08(木) 17:17:52
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と同じで同時に使用できるっぽい
鬼車はオプション選択でどちらの動作でも可能みたい
676デフォルトの名無しさん:2009/10/08(木) 19:25:31
それは直した方がよいね
677デフォルトの名無しさん:2009/10/08(木) 20:26:58
これはひどい
678デフォルトの名無しさん:2009/10/08(木) 21:07:34
()が(?:)等価になるのだとしたら、ちょっとうれしいような、まぎらわしいような
679デフォルトの名無しさん:2009/10/08(木) 21:56:41
しかし名前付キャプチャって、書くときはいいが読むときはなんか死にそうになるような気がする
ただでさえ可読性が高いとは言えない正規表現がさらに膨張するわけだし、それなら括弧を一つずつ数えてもいいかなと
直らなくてもいいや
680デフォルトの名無しさん:2009/10/08(木) 22:06:14
そういえば、Rubyのライセンスって結局どうなるの?
ruby-talk見ても、議論してるのは分かるんだけど
最終的にどうなったのか全く分からん
そもそもまだ結論が出てない?

あと、るりま(新リファレンス)のライセンスも気になる
681デフォルトの名無しさん:2009/10/08(木) 22:18:41
るりまは CC 3.0 BY ってことで話を進めてるっぽい。
12月が目処だと。
682デフォルトの名無しさん:2009/10/09(金) 00:04:03
【パソコン/島根】プログラム言語「ルビー」開発者のまつもと氏を松江名誉市民に
http://tsushima.2ch.net/test/read.cgi/newsplus/1254874530/
683デフォルトの名無しさん:2009/10/09(金) 13:46:36
>>680
何、ruby-talkでやってんの?
リンクきぼん
684デフォルトの名無しさん:2009/10/10(土) 12:13:20
printfは統一感あるけど、regexpは後付けばかりで混沌としてるからruby独自路線でrexpepのフォーマットを再定義して欲しい。
\bとかもそうだけど、とくにperlがgnuのころからあったフォーマットをセンスもなく勝手拡張したせいでもう取り返しがつかないからね。
685デフォルトの名無しさん:2009/10/10(土) 12:22:56
$なんたら系全廃止してから考える
686デフォルトの名無しさん:2009/10/10(土) 12:37:48
$:.push("a") とかかなり違和感あるけどね。
javaから見ると、そもそも 1 .+ 2 .* 3 なんかできるのはかなり嫌われるんだけど、そういうのと同じだろうと思う。
$てのはパールとの下位互換として認めて、もう必要な人用ってことで諦めたほうがいいよ。
687デフォルトの名無しさん:2009/10/10(土) 14:35:06
名前つきキャプチャは他言語と同じ挙動にして欲しいな
ググったら .NET の正規表現も 同時使用できるっぽい
どうも、同時使用できるのが主流なような
というか、Rubyが異端?

>>678
正規表現のどこかに (?<x>) とか入れれば ( ) はキャプチャしなくなるね
念のために 予約語にしておくと
/(?<xxx>)/ =~ 'foobar' とかやって ローカル変数 xxx が定義されたり、変更されてしまうのを防げる
/(?<end>)/ =~ 'foobar' だとendは予約語なので変数としては定義できずに無視される

688,,・´∀`・,,)っ-○○○:2009/10/10(土) 17:05:56
>>644
それを言うならRubyはHTMLタグ(ry
689デフォルトの名無しさん:2009/10/11(日) 09:27:01
本家を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
690デフォルトの名無しさん:2009/10/11(日) 18:41:20
1.9って、ひょっとして今後おおきな変更はいる?さっきProgramming Ruby 1.9という本を買ってしまったのだが……
691デフォルトの名無しさん:2009/10/11(日) 18:47:11
1.9.1は「今後大きな変更を入れないためのリリース」という位置づけ
でもある(訳: だからライブラリ作者は将来の変更を心配せず対応を始めろ)
ので、ドラスティックな変更は入らないと思う。
# 100年後くらいに2.0が本当に出る段になったらそりゃ変るだろうけど。
692デフォルトの名無しさん:2009/10/12(月) 00:07:34
やだ…なんか頼もしいレスがついてる…ウホッ
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してごらん
695デフォルトの名無しさん:2009/10/12(月) 14:31:15
>>634
超ウケル!
696デフォルトの名無しさん:2009/10/12(月) 14:40:19
ふときになった
いま rubinius とかどうなってん?
697デフォルトの名無しさん:2009/10/12(月) 16:05:20
Rubiniusか。LLVMつかって〜とかいわれてもLLVMのビルドだりぃ。
698デフォルトの名無しさん:2009/10/12(月) 19:08:24
TCPSocketで受信バッファの中身をすべて読み出すメソッドみたいなのってありますか?(HTTPのリクエストの取得でテスト中)
readってやると止まってしまいます。eachで"\r\n"を終点に読み出すと大丈夫ですがあまりスマートではないので・・・
699デフォルトの名無しさん:2009/10/12(月) 19:15:58
オラでプログラミング言語Ruby買ったらPerlのシールが付いてきた。
またまたご冗談を…
700デフォルトの名無しさん:2009/10/12(月) 20:39:24
>>698
IO#read_nonblock
701デフォルトの名無しさん:2009/10/12(月) 21:29:20
Ruby on Railsの「えせMVC」の弊害
http://satoshi.blogs.com/life/2009/10/rails_mvc.html
702デフォルトの名無しさん:2009/10/12(月) 21:41:31
>>701
考えてやってる人は出来るだけモデル側にロジックを書くから、
問題はRailsやりはじめるまでMVCを知らなかったような人かな。
703デフォルトの名無しさん:2009/10/12(月) 23:16:46
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でぐぐってみるとかさ
706デフォルトの名無しさん:2009/10/13(火) 03:40:34
>>701
元MSの設計者がSmalltalk的MVCを力説し
ルビ厨が堕落したWebアプリ的MVCでもって反論するという
なんとも変な話になってますなw
707デフォルトの名無しさん:2009/10/13(火) 08:37:33
釣りタイトルだけ見て中見ずに喜んでる香具師もいそう。
708デフォルトの名無しさん:2009/10/13(火) 08:39:46
redmine調子悪い?
709デフォルトの名無しさん:2009/10/13(火) 14:41:15
>>701
コントローラーにロジックをがしがし書くのはアプリ制作者の問題なのに、
フレームワークに原因を求めようとしてるんだな。

1. 「手持ちの現金の増減」を記録するテーブルに「現金100円の増加」を記録
2. 「売り上げ」を記録するテーブルに「100円の売り上げ」を記録
3. 「在庫の増減」を記録するテーブルに「リンゴ1つ減少」を記録
4. 「経費の計上」を記録するテーブルに「仕入れ値60円の経費計上」を記録

これもめちゃくちゃw
なんで売った時点で仕入れデータを計上するんだよ
商品在庫に至っては会計と直接関係ないし。
この人、なんでも問題をごちゃまぜにする人なんだな。
710デフォルトの名無しさん:2009/10/13(火) 14:44:38
MVCにこだわるヤツ程能書きばっか垂れて仕事ができないイメージがある
711デフォルトの名無しさん:2009/10/13(火) 14:46:02
使えないコードをガシガシ書くことを仕事と称する奴もいる
712デフォルトの名無しさん:2009/10/13(火) 15:02:07
Windows>>>>>>>>>>>>>>>>>>>>Ruby

何とも残酷な結果が出てしまったな
713デフォルトの名無しさん:2009/10/13(火) 16:16:21
>>712
何から?
714デフォルトの名無しさん:2009/10/13(火) 16:39:35
こりゃ確かにゲットーだw
徒党組んで声だけでかい馬鹿の集まり=ギーク(笑
715デフォルトの名無しさん:2009/10/13(火) 19:37:53
えせMVCについてそろそろ一言言っておくか
http://d.hatena.ne.jp/higayasuo/20091013/1255408723

ひがさんも加わりました
716デフォルトの名無しさん:2009/10/13(火) 22:15:12
つーか、MVCの概念を完全に理解してる人っているの?

なんかどのサイトの説明見ても、微妙に違う気がする。
MMVCとPMVCの違いもよく分からんし、そもそも
今の言語ってどれもGUIと入力部分が結びついてるから
ViewとControllerを完全に分離出来ないし
717デフォルトの名無しさん:2009/10/13(火) 22:45:11
>>715
それのServiceってのはRoRの機能?
それともデザパタの用語?
718デフォルトの名無しさん:2009/10/13(火) 22:46:52
> 今の言語ってどれもGUIと入力部分が結びついてるから
> ViewとControllerを完全に分離出来ないし

意味わからん
719デフォルトの名無しさん:2009/10/13(火) 22:48:01
GUIパーツがデータコンテナ兼ねてるから
分離付加ってことなら意味わかるが
720デフォルトの名無しさん:2009/10/13(火) 23:44:08
>>718
ああ、馬鹿なんですね
721デフォルトの名無しさん:2009/10/14(水) 00:53:55
>>720
そうかもね
722デフォルトの名無しさん:2009/10/14(水) 01:01:57
馬鹿にしない〜でよ
723デフォルトの名無しさん:2009/10/14(水) 01:04:28
意図を伝えきれずに捨て台詞吐いて逃亡ってのが一番みっともないパターンだな
724デフォルトの名無しさん:2009/10/14(水) 01:41:57
自己紹介しなくていいよ
725デフォルトの名無しさん:2009/10/14(水) 01:46:55
MVC2でしか仕事したことないJava厨か?
こういう馬鹿どもが基幹系のリプレースして
COBOLどころじゃないスパゲッティを残すんだろう
726デフォルトの名無しさん:2009/10/14(水) 01:51:57
727デフォルトの名無しさん:2009/10/14(水) 02:01:49
>>715
これが正しかったらRubyは完璧じゃないかwww
728デフォルトの名無しさん:2009/10/14(水) 03:08:56
>MMVCとPMVCの違いもよく分からん
とかいってる人の台詞が
>今の言語ってどれもGUIと入力部分が結びついてるから
>ViewとControllerを完全に分離出来ないし
なんだからよくわかってないだけでしょ。

VBや初期のSmalltalkみたいにデフォルトのGUI系APIと言語のコンセプトが
密接に絡みついてるとかならともかく普通はGUIと言語は独立なわけだし

OSとかが標準として提供するGUIのコンポーネントで見た目と入力部分が云々、
と読み替えてあげても入力イベントに対するリアクションとかが
ViewであるGUIコンポーネント上に取り込まれることがある、程度の指摘にしかならないし。
729デフォルトの名無しさん:2009/10/14(水) 09:02:54
モデルの実装の中で、他のテーブルのモデルをいじるのは、いつも気持ち悪い。
複数テーブルのデータをいじる場合は、ActiveRecordのモデルの上に更にモデルを作るっていうのは賛成だけど、やったことがない。
730デフォルトの名無しさん:2009/10/14(水) 09:18:46
ん?
だから、その複合的なクラスをモデルと呼べって話じゃないのか?
731デフォルトの名無しさん:2009/10/14(水) 11:19:19
呼べ、っていうかモデルに属するってことかな

C -> Logic -> M
でロジックはモデルに属する、と
732デフォルトの名無しさん:2009/10/14(水) 11:23:43
>>728
ああ、やっぱり馬鹿だったんだねw
733デフォルトの名無しさん:2009/10/14(水) 12:04:51
rails厨はhelperでも使ってろよ
734デフォルトの名無しさん:2009/10/14(水) 12:10:49
>>728
初期のSmalltalkと今のSmalltalkの違いが分からないので教えてください。
735デフォルトの名無しさん:2009/10/14(水) 12:12:30
>>728
お前本当に馬鹿なんじゃないか?

>ViewであるGUIコンポーネント上に取り込まれることがある、程度の指摘にしかならないし。

それで十分結びつきが強いことの証明になってるじゃん
自分で何を言ってるかさえ理解できてないのか・・・
736デフォルトの名無しさん:2009/10/14(水) 13:07:32
記事の反響はかなり大きかったみたいで
さっそくRals捨ててASP.NETに乗り換えるところが出始めてるみたいだな。
737デフォルトの名無しさん:2009/10/14(水) 13:11:01
>>736
あほか
738デフォルトの名無しさん:2009/10/14(水) 14:34:24
>>735
Viewに取り込まれる程度のイベントが本当に分割して
管理しなきゃいけないものなのかって話でしょ。

インプットボックス上でキーボード上の「1」を押したとして
インプットボックス上に「1」が表示されるぐらいまでは
今時のコンポーネントは普通に行うけどそれをもって
結びつきが強いとか言ったらアホなわけで。
739デフォルトの名無しさん:2009/10/14(水) 15:20:23
>>738
はぁ?こりゃ真性のキチガイだな

>Viewに取り込まれる程度のイベントが本当に分割して
>管理しなきゃいけないものなのかって話でしょ。

この発言でお前がMVCを全く理解してないが分かったわ

>今時のコンポーネントは普通に行うけどそれをもって
>結びつきが強いとか言ったらアホなわけで。

これでさらに日本語さえ理解できてないレベルの馬鹿だと
はっきり分かった
今時のコンポーネントが普通に行っているからといって
それが結びつきの強さと何の関係がある?
今時も何も関係なく、結びつきが強いという事実がそこにあるだけ

自分の間違いを指摘されたからといってファビョッちゃった典型例だな
740デフォルトの名無しさん:2009/10/14(水) 15:22:50
Rails厨は巣に帰ってね
741デフォルトの名無しさん:2009/10/14(水) 15:23:53
っていうか
>インプットボックス上でキーボード上の「1」を押したとして
>インプットボックス上に「1」が表示されるぐらいまでは
こんな事書いてる時点でこいつ何も分かってない気がする
742デフォルトの名無しさん:2009/10/14(水) 15:27:12
>>738
えーと、初期のSmalltalkと今のSmalltalkの違いは何ですかね結局
743デフォルトの名無しさん:2009/10/14(水) 15:40:37
>>739
間違ってるのはあっちだが、よりファビョってるのはお前だな。どういうわけか。
744デフォルトの名無しさん:2009/10/14(水) 15:43:54
>>743
自作自演乙っす

不利な状況になったら他人の振りっすか?www
745デフォルトの名無しさん:2009/10/14(水) 16:04:49
きも
746デフォルトの名無しさん:2009/10/14(水) 16:10:57
>>744
> 不利な状況になったら他人の振りっすか?www
そんなに面白いダジャレじゃないだろこれ。
747デフォルトの名無しさん:2009/10/14(水) 16:12:08
ワロスw
748デフォルトの名無しさん:2009/10/14(水) 16:35:25
>>742
SELFからMorphicが入ってくる以前と以後じゃね
この辺でコントローラに期待される仕事ぶりが変化してるし
749デフォルトの名無しさん:2009/10/14(水) 17:20:08
よそのスレでやれ
750デフォルトの名無しさん:2009/10/14(水) 19:54:06
>>748
コントローラそんなに変わってるか?
それよりモデルの方が変わってるような
751デフォルトの名無しさん:2009/10/14(水) 19:59:05
火消しよろ
Ruby on RailsのMVCは「えせMVC」? - スラッシュドット・ジャパン
http://slashdot.jp/developers/09/10/14/085237.shtml
752デフォルトの名無しさん:2009/10/14(水) 21:09:47
スラドjは、なんかどうでもいいネタほど記事にするようになってきたなぁ。
753デフォルトの名無しさん:2009/10/14(水) 21:20:18
RailsのMVCの分けかたがおかしいんだろ
Djangoを見習えば解決
754721:2009/10/14(水) 23:20:25
複数テーブルの操作が気持ち悪いってことは、
トランザクションを知らないか使ったことないってことか?
それでモデルを論じるのはどうかと思うぞ

GUIがなんとかってのは結局なにいってるんだがさっぱり
プログラムソースだせよ。短いのでいいからさ。
>>716で「今の言語〜」とあるが、そもそもRubyのGUIってなんだよ。
RailsとMVCが話の流れなのにRuby/Tkってことはないだろうな。

ソース出せないでレスいらないから
ちなみに>>721以降のレスはこれが初めてな
755デフォルトの名無しさん:2009/10/14(水) 23:38:53
>>748
今のSmalltalkってったらVisualWorksだろjk
Squeakしかしらんのかね
756デフォルトの名無しさん:2009/10/15(木) 00:23:31
>>755
余計に別物じゃんw

シンコムは黙って勉強会の場所提供だけしてりゃあいいんだよ!!
757デフォルトの名無しさん:2009/10/15(木) 00:59:53
>>754
ソースとか関係ないだろ馬鹿
お前の理解力の無さを他人のせいにするな
そもそも意味がわかんねーならレスしなくていいから
758デフォルトの名無しさん:2009/10/15(木) 01:00:35
VisualWorksのMVCにおけるMはアプリケーションモデルであってドメインモデルではない
つまりARはMVCのMではない
これ豆な
759デフォルトの名無しさん:2009/10/15(木) 01:05:52
>>758
最近のソースだとちゃんとアプリケーションモデルと
ドメインモデルに分けて書いてるみたいだぜ
それ以前はプラガブルで、さらに以前は
全部詰め込んだ単一のモデルだったみたいだが
760デフォルトの名無しさん:2009/10/15(木) 01:06:52
>>754
つーか、わざわざ終わった話を蒸し返すのはよせ

それともわざと荒らしたいのか?
761デフォルトの名無しさん:2009/10/15(木) 01:07:20
またRuby暴威の薬が切れたのか
あまりにもおかしいからすぐ分かるな
762デフォルトの名無しさん:2009/10/15(木) 01:10:28
>>759
だからドメインモデルはMVCのMじゃないし、MVCとは関係ないってこと
同じくARはMVCのMじゃないし、MVCとは関係ないってこと
763デフォルトの名無しさん:2009/10/15(木) 01:17:16
>>762
あーはいはい、プレゼンテーションモデルってやつでしょ?
違うかな、俺も正直その辺の理解が曖昧だ
764デフォルトの名無しさん:2009/10/15(木) 01:22:09
>>763
そう
VisualWorksではアプリケーションモデルと呼んでいて、そういう名前のクラスも
ライブラリに含まれてるが、一般的な認識としてはプレゼンテーションモデルと
呼んだ方がふさわしい。MVCはMも含めてプレゼンテーションレイヤのパターン
satoshiはそこをわかってない。やつの理解こそえせMVCなんだよ
765デフォルトの名無しさん:2009/10/15(木) 02:18:08
アプリケーションモデル、ドメインモデルという言葉が出てきたけど、
いわゆるデータベースのテーブルのエンティティクラスは、どちら?

このふたつの言葉は Smalltalk から出てきたようだけど、
「web + DB アプリではどうなるか」と置き換えようとするのがそもそもナンセンスなのかな
766デフォルトの名無しさん:2009/10/15(木) 02:25:57
なんで全部クラスにしなきゃあかんの
ビジネスロジックにオブジェクト指向なんか不要
767デフォルトの名無しさん:2009/10/15(木) 04:24:48
>>765
エンティティクラスというのがDBのレコードの写像程度で賢いインターフェースを持っていない
クラスのことなのであれば、どっちでもない。

初期のMVCの際の問題点として、M相当のオブジェクトが
ただのデータストア相当になっててあまり賢くない、というものがあって

RailsのARで今モデルを作るときにはARのクラス上に実装するような処理も
全部Controllerに書いてて結果として見通しが悪かった、という経緯がある。

加えてView側で発生したイベントを何から何までController上で捌いてたりすると
より寒いことになりがちだったと。

で、その後View側でControllerとのメッセージのインターフェースを考えたときに、
View側として本当にController側に伝えたいイベント以外はView側で隠蔽というか
内々に処理するようになり、ModelについてもModel内で閉じるような処理は
Model中でやるようになったので相対的にController側の責務は減っていった、という流れ。

768デフォルトの名無しさん:2009/10/15(木) 05:37:13
RubyKaigi 2009 Sessions(1st day)
http://www.nicovideo.jp/mylist/14722636

RubyKaigi 2009 Sessions(2nd day)
http://www.nicovideo.jp/mylist/14733712
769デフォルトの名無しさん:2009/10/15(木) 23:18:05
文字コードのエラーは分かりづらいのぅ
770デフォルトの名無しさん:2009/10/16(金) 15:39:54
771デフォルトの名無しさん:2009/10/16(金) 15:41:15
第8回日本イノベーター大賞にRubyのまつもとゆきひろ氏
http://itpro.nikkeibp.co.jp/article/NEWS/20091015/338868/
772デフォルトの名無しさん:2009/10/16(金) 15:46:24
Rubyプログラミング講座受けてぇ
773デフォルトの名無しさん:2009/10/16(金) 16:32:56
MITみたいにWEBで流したりしないのかな
774デフォルトの名無しさん:2009/10/16(金) 19:09:00
Rackミドルウェアのコンテストが開催中 (参加賞あり)
ttp://route477.net/d/?date=20091016
775デフォルトの名無しさん:2009/10/16(金) 19:23:41
島根とくりゃ来年は鳥取大学だよな?
776デフォルトの名無しさん:2009/10/16(金) 19:26:12
あー俺も小さいころは架空の県とか大学とか作って遊んだよ
懐かしいなあ
777デフォルトの名無しさん:2009/10/16(金) 22:32:59
778デフォルトの名無しさん:2009/10/16(金) 22:45:34
Rails始めようと思ってScaffoldまでしたんだけどわけワカメで
とりあえずRubyから始めることにした
変数宣言いらんわ、初期化いらんわで気持ち悪い言語だ・・・
779デフォルトの名無しさん:2009/10/16(金) 23:03:16
自動でやってくれてるんだよ
宣言や初期化が無いわけじゃない
780デフォルトの名無しさん:2009/10/16(金) 23:05:38
Ruby が気持ち悪いなら Rails のほうは「徹底して気持ち悪い」と思う…
781デフォルトの名無しさん:2009/10/16(金) 23:06:25
合わないと思うなら使わないのが吉
782778:2009/10/16(金) 23:11:14
シュミグラマでC系しかやったことないんだけど
世間一般ではこういう仕様が喜ばれるのか・・・
俺みたいに名前付けが苦手だと苦労しそうな仕様だ
783デフォルトの名無しさん:2009/10/16(金) 23:13:52
変数宣言嫌いでVBやめたおれはどうすれば
784デフォルトの名無しさん:2009/10/16(金) 23:17:37
Rubyのライブラリですら、アホみたいなtypoが放置されてきたりしたことを考えれば、
あなたの不安は間違ってはないよ
言語によって、どう楽をするかではなく、どうがんばるかなんだよ
785デフォルトの名無しさん:2009/10/16(金) 23:18:24
今じゃC#ですら
var n = 3.14;
みたいになりつつあるからな。Rubyだけが特別変態仕様ってこともない。
786778:2009/10/16(金) 23:23:45
>>785
普段はC#メインで使ってるけどC#のそれは宣言と初期化を一行にしてるだけで
Rubyみたいに明示しないのとは全然ちがうと思う
まあ、先走ってRubyとRailsの本4冊も買っちゃったから何か作れるレベルまでは
やってみようと思うけど
787デフォルトの名無しさん:2009/10/16(金) 23:27:59
>>786
=
788デフォルトの名無しさん:2009/10/16(金) 23:33:54
typoなのか区別できないからな
789デフォルトの名無しさん:2009/10/16(金) 23:35:54
宣言させるだけさせてtypo素通しな言語よりマシだ

おまえのことだよjavascript
typoするとグローバル変数として収まるとかもうね
790デフォルトの名無しさん:2009/10/16(金) 23:53:37
〜〜よりマシとか言い出す言語にまで成り下がったのかい
791デフォルトの名無しさん:2009/10/17(土) 00:00:17
> 言語によって、どう楽をするかではなく、どうがんばるかなんだよ

修造かよ
792デフォルトの名無しさん:2009/10/17(土) 00:01:23
>>786
Rubyも明示してますよ
793デフォルトの名無しさん:2009/10/17(土) 00:36:54
  ウィーッス  ∧_∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (´∀`*// <  RUby買ってきたぞーい
    ⊂二     /   \_________
     |  )  /
 【ひろゆき】/  ̄)
      ( <⌒<.<
      >/
794デフォルトの名無しさん:2009/10/17(土) 01:08:20
>>785
やっぱ型推論と動的型付けの区別つかないやつって多いんだろうな。
795デフォルトの名無しさん:2009/10/17(土) 01:33:01
Rubyistはアホだと思われるからお前は黙れ
796デフォルトの名無しさん:2009/10/17(土) 06:06:00
>>787で終了なのだが
797デフォルトの名無しさん:2009/10/17(土) 06:16:51
結局のところjavascriptと同じくらい糞ってことなんだね
798デフォルトの名無しさん:2009/10/17(土) 10:04:55
さすがにjavascriptよりはマシじゃね?
799デフォルトの名無しさん:2009/10/17(土) 10:05:25
いやそんな普通のレスされても
800デフォルトの名無しさん:2009/10/17(土) 10:11:21
宣言ないと書きにくい読みにくいって人は、コメントでがりがり書いておけばいいんじゃないか?
って、そうじゃないのか。
>>786
> 俺みたいに名前付けが苦手だと苦労しそうな仕様だ
この人のコードはとにかくスコープが広すぎるんじゃないかと
801デフォルトの名無しさん:2009/10/17(土) 10:20:41
>>794
言語自体に興味がある人以外は、
表層的な文法と動作しか気にしないからねぇ。
802デフォルトの名無しさん:2009/10/17(土) 10:29:16
それでいいんだよ
そういうのを一般ユーザーが気にしないで使えるのがいい言語仕様


問題はその知識で深部仕様に突っかかってくることだが
803デフォルトの名無しさん:2009/10/17(土) 10:30:20
つまんねー流れ
804デフォルトの名無しさん:2009/10/17(土) 10:42:35
typoの報告を見るたびに、恐ろしい言語だなと思わずにいられないのだが。
Rubyのいい面でもあるが、そうでない面でもあるでしょ
805デフォルトの名無しさん:2009/10/17(土) 11:01:35
ところで、1.9.2のリリースは結局いつになったの?

延期になった事が決まっただけで、具体的な予定は無いの?
806デフォルトの名無しさん:2009/10/17(土) 11:03:56
>>805
ないです。
807デフォルトの名無しさん:2009/10/17(土) 11:07:59
我々は――
ただ、粛々と――
1.9.1対応を進めるのみ――
808デフォルトの名無しさん:2009/10/17(土) 11:09:26
>>807
RUBY_VERSIONで比較すると涎たらしながら否定して射精する人の対策はどうなりましたか
809デフォルトの名無しさん:2009/10/17(土) 11:14:36
>>808
RUBY_VERSION で 1.9 かどうか比較して駄目な場合の例がさっぱし出てこないから許可
810デフォルトの名無しさん:2009/10/17(土) 11:18:31
>>806
ないのか・・・こりゃずるずるいきそうなパターンだなぁ
811デフォルトの名無しさん:2009/10/17(土) 11:20:49
てか、1.9.2のためにしなければらないことがさー
812デフォルトの名無しさん:2009/10/17(土) 12:10:58
>>804
typoを防ぐための仕組みがあればいいなあとは思う
現状だと -w オプションなしでは、まともに見つけられないし

でもRubyの良いところを残しつつ、typoを防げる仕組みなんてあるの?
813デフォルトの名無しさん:2009/10/17(土) 12:16:23
814デフォルトの名無しさん:2009/10/17(土) 12:19:35
射精したくてもできない件
815デフォルトの名無しさん:2009/10/17(土) 12:21:19
>>812
防ぐわけではないけど、変数の名前と使用回数の一覧が出せたらいいなぁとは思う
816デフォルトの名無しさん:2009/10/17(土) 12:22:06
>>812
perlのuse strict; my = …; みたいの入れればいいんじゃね?
817デフォルトの名無しさん:2009/10/17(土) 12:22:15
>でもRubyの良いところを残しつつ、typoを防げる仕組みなんてあるの?
誰がそんなものあると言ってんだ?
818デフォルトの名無しさん:2009/10/17(土) 12:23:07
真にマジレスすると、そんな状態のスクリプトを通すテストがヘボい
819デフォルトの名無しさん:2009/10/17(土) 12:27:42
テストがtypoしてたという話はあまり聞かないな
あるんだろうけどさ
テストは通ったけどtypo残ってたというのは恥ずかしいの
820デフォルトの名無しさん:2009/10/17(土) 12:29:56
>>814
closed stream兄貴オッスオッス
821デフォルトの名無しさん:2009/10/17(土) 12:42:37
>>816
Rubyでそれを入れるとすると

1. strict メソッドを呼ぶ
2. そのファイル内で、インスタンス変数・クラス変数が未定義のまま参照されたら
警告ではなく例外を出す

という感じになるのかな
822デフォルトの名無しさん:2009/10/17(土) 12:45:46
use_foo_process if @foo 涙目
823デフォルトの名無しさん:2009/10/17(土) 12:47:23
そういや、未定義のインスタンス変数が nil 返すのはなんで?
それとは対照的に未定義のクラス変数が例外出すのはなんで?
824デフォルトの名無しさん:2009/10/17(土) 15:25:59
仕様です
825デフォルトの名無しさん:2009/10/17(土) 23:58:05
我らの武器は三つ!
  オブジェクト指向!
    ガーベジコレクション!
      教祖への妄信!
        それから素敵な赤い色!

……テンポ悪いな。
826デフォルトの名無しさん:2009/10/18(日) 00:04:30
タダ−ン!!
... nobody expects the Spanish Inquisition!

827デフォルトの名無しさん:2009/10/18(日) 00:08:55
なぜ唐突にそんなおっホイねたをw
828デフォルトの名無しさん:2009/10/18(日) 02:14:49
元ネタ知らないのに大笑いしてしまった
829デフォルトの名無しさん:2009/10/18(日) 02:34:57
モンティパイソンは"Communist Quiz"も応用が利くよね。
マルクス => RMS
レーニン => ケイ
チェ => PG
毛沢東 => Matz
とかでサッカーネタ => M$ APIネタ にすればいろいろ遊べそう。
830デフォルトの名無しさん:2009/10/18(日) 03:22:40
ゲートから12人のYuguiさんが一斉に出馬、
先頭YuguiさんYuguiさん、一馬身遅れてYuguiさん、続いてYuguiさん、
追い上げるYuguiさん、とかそういう
831デフォルトの名無しさん:2009/10/19(月) 14:51:46
ひげの山男にとって2ちゃんの言葉は難しすぎるらしい
832デフォルトの名無しさん:2009/10/19(月) 22:07:25
Yuguiさんって付き合ってる人いるの?
833デフォルトの名無しさん:2009/10/19(月) 22:14:44
>>832
Audley
834デフォルトの名無しさん:2009/10/19(月) 22:18:57
Yuguiでググったらでてきたけど、この人?
http://twitter.com/yugui
835デフォルトの名無しさん:2009/10/19(月) 22:26:51
>>834
聞かなきゃわからないってことはお前ここは初めてか?力抜けよ
836デフォルトの名無しさん:2009/10/19(月) 22:27:11
yes
837デフォルトの名無しさん:2009/10/19(月) 22:28:49
>>834

そのお方。

1.9 系リリースマネージャ(*1)。 Ruby 界のロッテンマイヤーさん(*2)

*1) http://jibun.atmarkit.co.jp/ljibun01/rensai/leader/33/01.html
*2) http://yugui.jp/articles/766
838デフォルトの名無しさん:2009/10/19(月) 23:02:47
女だったのか。
ネカマだと思ってた。
839デフォルトの名無しさん:2009/10/19(月) 23:06:16
生物学的には男
840デフォルトの名無しさん:2009/10/19(月) 23:21:01
オカマだよ
841デフォルトの名無しさん:2009/10/19(月) 23:22:12
MtF-TSってプロフィールに書いてるよね。
842デフォルトの名無しさん:2009/10/19(月) 23:23:50
まあ、気持ち悪くてもがまんして下さい。
843デフォルトの名無しさん:2009/10/19(月) 23:49:07
やっと>>833の意味がわかったわw
844デフォルトの名無しさん:2009/10/20(火) 00:24:23
MtF-TSなので男とも女ともオカマとも言い難い
「MtF-TSです」としか言えない
845デフォルトの名無しさん:2009/10/20(火) 00:30:05
おれは性的にはヘテロだけど、他の面でマイノリティで不自由な思いしているので、なんか同情する。
846デフォルトの名無しさん:2009/10/20(火) 00:38:45
yuguiさんを称えるときに「抱かれてもいい」と書くべきか「掘られてもいい」と書くべきかはたまに悩む
847デフォルトの名無しさん:2009/10/20(火) 00:48:23
抱かれてもいい:女が男相手に、もしくは女が女相手に
掘られてもいい:男が男相手に
>>846よ、お前もかw

男が女相手に受け身でってなんて言えばいいんだろうな
848デフォルトの名無しさん:2009/10/20(火) 00:48:59
なんだかね
849デフォルトの名無しさん:2009/10/20(火) 01:10:48
Rubyの話題でも常軌を逸してるレスをちらほら見るが
人間的にもクソが多いようだな
850デフォルトの名無しさん:2009/10/20(火) 01:14:57
クソは言いすぎ。病気なんだぞ。
851デフォルトの名無しさん:2009/10/20(火) 01:32:19
Yuguiさんのブログ読めよ。論理的で読み易い。
こんなクソの吹きだまりより遥かにためになるから。
852デフォルトの名無しさん:2009/10/20(火) 03:30:09
詳細不明のMtFTSは性に関するネタを振り難くて困る
いやそんなネタ詳細不明の他人にそもそも振るなという話ではあるんだが
853デフォルトの名無しさん:2009/10/20(火) 05:44:41
まあrubyが、gayでも使ってるメジャー級の言語ってことはガチホモだが。
854デフォルトの名無しさん:2009/10/20(火) 07:46:07
>>849
この話題でそういう反応になるってこと自体が
おまえさんの中の差別心の吐露になってることに気づけないの?
855デフォルトの名無しさん:2009/10/20(火) 08:57:17
こういう詭弁でまだYugui氏ネタが続くようならがっかりだわ
856デフォルトの名無しさん:2009/10/20(火) 08:58:18
>>855さんを楽しませないと怒られますよ皆さん
857デフォルトの名無しさん:2009/10/20(火) 09:10:07
キチガイばかり
858デフォルトの名無しさん:2009/10/20(火) 09:52:48
>>851
クソの吹き溜まりで何言っちゃってんの?w
859デフォルトの名無しさん:2009/10/20(火) 09:59:32
pythonのジェネレータみたいな機能はありますか。

def fibgen():
 x, y = 0, 1
 while True:
  x, y = y, x + y
  yield x

g = fibgen()
while True:
 print g.next() # 永久にフィボナッチ数列を出力し続ける
860デフォルトの名無しさん:2009/10/20(火) 10:31:35
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
861デフォルトの名無しさん:2009/10/20(火) 17:00:16
>>860
ちょーさんくす
これってすごくね?
862デフォルトの名無しさん:2009/10/20(火) 17:20:46
いまいち使いどころがない
863デフォルトの名無しさん:2009/10/20(火) 17:33:51
行数短くしないとすき焼きに春菊入れないとか脅されたときとかに有効
864デフォルトの名無しさん:2009/10/20(火) 17:58:33
まずRUBY_DESCRIPTIONという定数があったことに驚かされた
865デフォルトの名無しさん:2009/10/20(火) 20:00:49
>>864
irb -r irb/completion
のように補完を効かせて、R tabキー とかやると、他にも色々あるのが判る。
866デフォルトの名無しさん:2009/10/21(水) 13:28:22
メモリが有り余っていてもったいないから仕方なしに
IRBを立ち上げっぱなしにしているけどいまいち使い道がない。
電卓以外に何か有効な使い方ない?
867デフォルトの名無しさん:2009/10/21(水) 13:36:47
熟練すればファイラ程度にはなるんじゃなかろうか
868デフォルトの名無しさん:2009/10/21(水) 14:44:08
irb> def method_missing(*args) system(*args.map(&:to_s)) end
=> nil
irb> ls '-a'
. ..
=> nil
irb>

たぶん実用性はないと思う。
869デフォルトの名無しさん:2009/10/21(水) 17:05:47
ファイラじゃなくてシェルじゃね
870デフォルトの名無しさん:2009/10/21(水) 17:39:58
いや、検索やリネームやコピーをメインにするならファイラでいいだろ
それもシェルで十分だが
871デフォルトの名無しさん:2009/10/21(水) 20:58:17
"Ruby Community Content on InfoQ "
http://www.infoq.com/jp/ruby
872デフォルトの名無しさん:2009/10/21(水) 21:09:12
コンテストの終了からこれだけ時間が経っても
公式ロゴをほとんど見る機会がないのが悲しい

にもかかわらず、VisualIdentityTeamのアイコンの方は
未だにいろいろなところで見るのがさらに悲しい
873デフォルトの名無しさん:2009/10/21(水) 21:12:45
>>872
Ruby ユーザーの大多数は、ロゴなんてどうでもいいし、アイコンなんて使ってない
そんだけだと思う
874デフォルトの名無しさん:2009/10/21(水) 23:19:15
>>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

微妙に互換性ないなあ
875デフォルトの名無しさん:2009/10/21(水) 23:25:08
実は、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してる
876デフォルトの名無しさん:2009/10/21(水) 23:26:55
>>873
にしては、アイコンが使われてるのをよく見る
877デフォルトの名無しさん:2009/10/22(木) 00:29:49
>>876
区別さえできればデフォルトアイコンで別にどうでもいいと思ってるってことだろ
アイコンをこまめに変えるような層とRubyユーザーは被ってなかったってことだな
878デフォルトの名無しさん:2009/10/22(木) 06:32:46
アイコンって.icoファイルの事?
良いデザインのものがあるならおせーて。
879デフォルトの名無しさん:2009/10/22(木) 08:01:53
ロゴが使われてないって話だろ
880デフォルトの名無しさん:2009/10/22(木) 08:19:12
>>878
ファイルに関連づけるためのアイコンではないけど

ttp://rubyidentity.org/
881デフォルトの名無しさん:2009/10/22(木) 08:21:03
ロゴはそもそも原理上使う場所がなかった
たとえばPythonやPerlだってロゴ見ないだろ

注文があったのはアイコンなのだが、公式の誰か使ってるのかね
いやまあVITのやつのほうがマシだという話もなもないのだが
882デフォルトの名無しさん:2009/10/22(木) 21:43:12
>>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のバグでしょうか?
884デフォルトの名無しさん:2009/10/24(土) 11:04:28
>>883
-kじゃなく-K(大文字)が正しいかと。
つか誰だよそのスクリプト書いたの。
885デフォルトの名無しさん:2009/10/24(土) 11:05:49
Ruby2.0では複数行コメント/* */は追加されるのでしょうか?
886デフォルトの名無しさん:2009/10/24(土) 11:09:36
>>883
>>884 の理由で、1.9.2dev でも動かないんだが、ほんとに1.9.1で動いてるの?
887デフォルトの名無しさん:2009/10/24(土) 11:13:39
>>885
複数行コメントなら既にある。
/* */ でないと嫌ならプリプロセッサでも通してくれ。
888デフォルトの名無しさん:2009/10/24(土) 11:14:58
>>886
動きませんでした。失礼しました。
889デフォルトの名無しさん:2009/10/24(土) 13:34:25
config = {:port => 3000,:DocumentRoot => '.',}

server = WEBrick::HTTPServer.new(config)

この状態でWEBrickを起動するとポートが80番に固定されてしまうんですが
Windowsの問題でしょうか?
890デフォルトの名無しさん:2009/10/24(土) 13:37:17
>>889
portでなくPortが正しいとかいうオチじゃまいか
891デフォルトの名無しさん:2009/10/24(土) 13:38:49
>>890
その通りでした・・・何度も申し訳ありませぬ
892デフォルトの名無しさん:2009/10/24(土) 13:42:44
さすが
WEBrickは
キモい
893デフォルトの名無しさん:2009/10/24(土) 20:15:48
Roma公開はいいけど何だこれがっかりすぎる
もうちょっとマシな状態にしてからにしろ
894デフォルトの名無しさん:2009/10/24(土) 20:21:06
あーあー今までみんな我慢して言わなかったのにー
895デフォルトの名無しさん:2009/10/24(土) 20:31:21
IT pro とか gihyo とかさー、
休日に速報でニュース出してるけど、ちょっとでも中身見たのかね?
896デフォルトの名無しさん:2009/10/24(土) 20:36:24
ごちゃごちゃ文句言ってるのは2chの三流プログラマモドキだけな件
897デフォルトの名無しさん:2009/10/24(土) 20:42:01
久しぶりだねえ。文句を許さないって感じ
昔のRubyスレを思いだすわ
898デフォルトの名無しさん:2009/10/24(土) 20:44:30
中身ってソースか?
どうせ改変するやつなんて超一握りなんだから
信頼性とか機能、性能の方がはるかに重要だろ
899デフォルトの名無しさん:2009/10/24(土) 20:45:26
三流プログラマモドキの私が見たところ、すごく好感を持てました。特に、
end # module Roma
みたいな所に。
900デフォルトの名無しさん:2009/10/24(土) 20:48:04
>>898
じゃあ中身ってのはいいや。

ちょっとでも動かしてみたのかね?
901デフォルトの名無しさん:2009/10/24(土) 20:48:39
>>900
みんながすごいって言ってるんだから自分で動かす必要ないじゃん
902デフォルトの名無しさん:2009/10/24(土) 21:22:22
真理
903デフォルトの名無しさん:2009/10/24(土) 21:31:44
README.doc
のやる気のなさといったら
== client
で終わりだったりするんだぜ
使えねーおおっと、仕えねー
904デフォルトの名無しさん:2009/10/24(土) 21:35:39
>>903
そんなのささいなことだ
それ以前に…
905デフォルトの名無しさん:2009/10/24(土) 22:34:25
ttp://code.google.com/p/roma-prj/wiki/QuickStart
> If you want to shutdown your ROMA, you have only to type "balse".

…ば…る…す…?

906デフォルトの名無しさん:2009/10/24(土) 23:05:55
TwitterでRomaについて文句を言ってる奴は一人もいない
2ちゃんねらー>>>(越えられない壁)>>>>>>>>>Twitter住人
てことが証明されたな
907デフォルトの名無しさん:2009/10/24(土) 23:19:56
それが証明と思えるとは,うらやましい限りです
908デフォルトの名無しさん:2009/10/25(日) 00:44:36
皮肉られるにも知性が必要、という一例
909デフォルトの名無しさん:2009/10/25(日) 01:45:03
わざわざRomaを作ったのは、
スケーラビリティを高めるという面が大きいんだろう。
そうでなければmemcachedで十分だ。

個人で試してみても本当にいいかどうかは分からんから、
どこか負荷の高そうなところが採用して評価するのを待つしかないな。
910デフォルトの名無しさん:2009/10/25(日) 06:40:04
RomaっとTokyo*との比較は
911デフォルトの名無しさん:2009/10/25(日) 07:32:26
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); }
}
912デフォルトの名無しさん:2009/10/25(日) 08:47:28
913デフォルトの名無しさん:2009/10/25(日) 10:18:12
Rack 1.0.1 出たー!
まだ試してないけど、CGI動作バグが直ってることに期待したい
914デフォルトの名無しさん:2009/10/25(日) 10:28:28
gemでrack落としてrake testしたらspecrbが無いと言われた。何それ
915デフォルトの名無しさん:2009/10/25(日) 12:36:51
>>914
gem の test-sepc ライブラリが提供するコマンド
spec コマンドと Ruby スクリプトの駆使で代用できるので認知度は極めて低い
916デフォルトの名無しさん:2009/10/25(日) 13:02:10
>>912
やっぱり
C++は
変態だ

917デフォルトの名無しさん:2009/10/25(日) 13:25:58
>>912
ありがとう。参考になりました。
918デフォルトの名無しさん:2009/10/26(月) 12:33:57
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
919デフォルトの名無しさん:2009/10/26(月) 12:41:37
うむ、60点くらいあげようと思うステキな煽り文句
920デフォルトの名無しさん:2009/10/26(月) 21:32:22
Marshal::dumpってRuby以外にあったっけ
Pythonで聞いたことがあった気もするが
ttp://mg1live.net/up-z/s/zoo1256547146414.jpg
921デフォルトの名無しさん:2009/10/26(月) 22:05:12
Pythonだとpickle.dump
922デフォルトの名無しさん:2009/10/26(月) 22:41:44
Pythonにもmarshalあるけど、小文字でmarshal.dumpとしてるみたい
923デフォルトの名無しさん:2009/10/26(月) 22:51:54
>>920はRuby意識してるってのでいいと思うよ
924デフォルトの名無しさん:2009/10/27(火) 19:58:47
第5回 Rubyを最大63%高速化した中学生は超多忙!
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/05/03.html

写真はまあ相変わらずだけど、エリートって大変そうだな。。
925デフォルトの名無しさん:2009/10/27(火) 20:22:39
竹内先生のキーボードを叩く音は「パチパチ」なんだ。
926デフォルトの名無しさん:2009/10/27(火) 20:51:12
Rubyを最大63%高速化したイケメン高学歴天才中学生プログラマ金井仁弘
http://tsushima.2ch.net/test/read.cgi/news/1256642703/
927デフォルトの名無しさん:2009/10/27(火) 20:53:51
>>926
オカ板でやれ
928デフォルトの名無しさん:2009/10/27(火) 22:54:34
イケメン?
929デフォルトの名無しさん:2009/10/28(水) 10:09:19
この人って園田裕貴さん?

yuguiさんのプロフィール -OKWave
http://okwave.jp/user.php3?u=1578062
930デフォルトの名無しさん:2009/10/28(水) 11:10:55
高学歴中学生って形容がおかしいだろw
931デフォルトの名無しさん:2009/10/28(水) 11:14:20
>>930は公立中学しか知らない田舎者
932デフォルトの名無しさん:2009/10/28(水) 11:26:51
学歴とは本来学校のレベルは問わないので”最高学府”たる大学を卒業していれば
どんなにレベルの低い大学でも灘・開成の生徒よりも高学歴だよ
933デフォルトの名無しさん:2009/10/28(水) 11:28:23
国立中学って響きからして格好いい
934デフォルトの名無しさん:2009/10/28(水) 11:35:23
しかしつまらんスレだな
935デフォルトの名無しさん:2009/10/28(水) 12:22:31
>>929
じゃね?
936デフォルトの名無しさん:2009/10/28(水) 22:53:52
>>926
フィボナッチ数列を使うことってあるのか?
937デフォルトの名無しさん:2009/10/28(水) 23:18:11
処理系のある部分(この場合は多倍長整数)を
集中的に使うベンチマークが欲しかっただけでは
再帰の竹内関数とかと同じ
938デフォルトの名無しさん:2009/10/29(木) 01:56:26
大丈夫かね? 爆燃してすぐに飽きて燃え尽きるってよくあるぞ。
939デフォルトの名無しさん:2009/10/29(木) 02:21:50
きっかけがフィボナッチなだけで
中身は1.9の省メモリ化によって増加した処理量の軽減が主だったと思う
940デフォルトの名無しさん:2009/10/29(木) 07:38:51
理屈上は誰でも手をつけることはできなようなことだから、そんな気にしなくても問題はない
情熱すげー若いっていーいーなーいいーなーという話
いろんなことできる人のようだから、先鋭化して腐るようなことはないだろう
941デフォルトの名無しさん:2009/10/29(木) 08:19:15
燃えつきても引き継ぎできる体制になってるからゴーサインが出たんじゃないの
942デフォルトの名無しさん:2009/10/30(金) 23:31:33
心配なのは神童がだんだん凡人化してそこらの大人と大差なくなること
こういう天才はさっさと大学行かせて高等教育受けさせろ
スレチスマン
943デフォルトの名無しさん:2009/10/30(金) 23:53:59
>>940
> 具体的には、array型などが実装されているソースコード
> 、array.c、string.c、struct.cそれぞれから、問題となり得るマクロ、
>
> ・RARRAY_PTR,RARRAY_LEN
> ・RSTRING_PTR,RSTRING_LEN
> ・RSTRUCT_PTR,RSTRUCT_LEN
>
> を探し、文脈を確認しながら、高速化するという作業
> (マクロの値がループ内で不変でループの外に出せるものをループ外に出す)です。

を見るに、中学生にもできそうな事に見えるんだが。
944デフォルトの名無しさん:2009/10/31(土) 00:16:12
> 文脈を確認しながら

ってことは、Rubyの組み込み型を実装してるコードの流れを完全に把握して、
いじっても問題ないかどうかを判断しなきゃならない。

インタプリタからスクリプトに制御が戻るタイミングがあったりすると、
そこで思わぬこと(例外とかcallccとか)入るかもしれないし、聞いた感じほど
簡単な作業ではない。
945デフォルトの名無しさん:2009/10/31(土) 04:31:32
神童を英才教育しすぎて、常識も知らずに大人にして人生台無しにするのもどうかと思うけどな。
普通の人生歩んで潰れるくらいの才能なら、その程度な気がする。
自分で東大卒に成れる程度に成長出来ないと意味が無い。


これって汎用なのかねえ?
例外だと従来の遅いままだったりしてw
デバッカで眺めていれば弄りたく成るレベルだな。ruby世界の宗主の教祖様がこの問題に手を付けなかった辺りがアレだがw
946デフォルトの名無しさん:2009/10/31(土) 04:49:02
ひがみすぎだ
947デフォルトの名無しさん:2009/10/31(土) 06:26:16
りがとう。参考になりました。
948デフォルトの名無しさん:2009/10/31(土) 06:37:38
>>944
一回で全部完璧にこなしたならそうだろうけど、
実際本人の気付かないところでSEGV起こして修正したらしいし
トライアンドエラーしながらなら中学生でもできると思う。
949デフォルトの名無しさん:2009/10/31(土) 08:34:53
高速化はトライアンドエラーだけでできることじゃないだろう

というか、C言語ってみんな中学生の頃から触ってたものなのか?
俺は中学生の頃と言えば、BASIC言語で
単純なおこづかい計算プログラムを書いて一喜一憂してた頃なんだが
950デフォルトの名無しさん:2009/10/31(土) 08:38:15
いまどきの環境揃いまくりの中学生と自分を比べてどうする
951949:2009/10/31(土) 09:00:56
>>950
といっても、俺が中学生の頃からインターネットもGCCもあったはずだし
952デフォルトの名無しさん:2009/10/31(土) 09:12:21
「みんな」が使ってたらニュースになってないよ。
953デフォルトの名無しさん:2009/10/31(土) 10:30:30
おれが中学のときはパソコンもってるやつなんてそうはいなかった
954デフォルトの名無しさん:2009/10/31(土) 10:36:35
そんなこと言ったら俺が中学のときはコンピュータなんてアメリカにしかなかったぞ
「俺の中学時代」で括ることには何の意味もない
集めたら戦後あたりから1秒前まで分布してるはずだ
955デフォルトの名無しさん:2009/10/31(土) 10:51:23
なんで現在までじゃなくて1秒前までなんだ
1秒前に中学時代が終わった奴がいるのか
956デフォルトの名無しさん:2009/10/31(土) 10:52:37
>>954
どんな田舎だよw
957デフォルトの名無しさん:2009/10/31(土) 10:58:53
今の若い人はコンピュータ環境が身近でうらやま
958デフォルトの名無しさん:2009/10/31(土) 11:10:37
>>956
コンピュータが日本に持ち込まれる前の時代の想像はできない?
959デフォルトの名無しさん:2009/10/31(土) 11:19:18
50年代半ばには、日本にコンピュータはあったぞ。正確には「マイコンが」かな。

リース期間が終了したミニコンを個人所有したりとかしてた人が存在してたらしいが。
70年代前半かな。
960デフォルトの名無しさん:2009/10/31(土) 12:38:21
>>949
ぶっちゃけ高速化の内容が>>943だけならトライアンドエラーだけでできるよ。
・ループの中でマクロを使ってる箇所を探して、それをループの外に追い出す
・make, test してみて、失敗したら元に戻す、成功したらそのまま
を繰り替えしゃいいだけ。
961デフォルトの名無しさん:2009/10/31(土) 12:39:50
どうやって速度計測するの?
962デフォルトの名無しさん:2009/10/31(土) 12:44:29
ループの内側でやらなくていい処理を
ループの外側にもってけば普通は高速化する。

速度計測する必要なんかないと思うが。
963デフォルトの名無しさん:2009/10/31(土) 13:13:49
祖路疎魯津儀巣礼乎
964デフォルトの名無しさん:2009/10/31(土) 13:43:39
make test のカバレージが完璧という保証はどこにもない。
965デフォルトの名無しさん:2009/10/31(土) 13:48:29
それは test 作った人の責任
966デフォルトの名無しさん:2009/10/31(土) 13:56:10
カバレージが 100% になっても完璧なテストという保証は……

そもそも完璧なテストなんか作れんのだから、
ある程度自動でテストできれば後は人柱にテストさせりゃいいでしょ。
967デフォルトの名無しさん:2009/10/31(土) 13:59:08
このスレの住人は英才でもないのにおかしいのばっかだな
ぐだぐだみっともない
968デフォルトの名無しさん:2009/10/31(土) 14:05:33
>>965
いえっさー
自分に関係のないテストは書き換えたらいかんぜよ
969デフォルトの名無しさん:2009/10/31(土) 14:14:14
>>967
自分のしみったれた人生のことばかり考えてるとミジメになってくるから、
たまには遥か遠い次元の人物の話をして心の洗濯してみたいのでは。
970デフォルトの名無しさん:2009/10/31(土) 14:17:16
んでどんだけ早くなったの?
都合の良いベンチじゃなくてさ、実際的なアプリで。
971デフォルトの名無しさん:2009/10/31(土) 14:24:32
「都合の良いベンチ」の意味がわからないので、何とも。
972デフォルトの名無しさん:2009/10/31(土) 14:33:18
なんというか中学生相手に「こんなの俺でも(誰でも)出来る」とか見苦しス

実際に当たった変更はこれかな
ttp://old.nabble.com/-ruby-dev:39385--Removing-constant-able-macros-inside-of-the-loop.-td25634576.html
この件の本人の記事
ttp://d.hatena.ne.jp/CanI/20090921/1253549503
973デフォルトの名無しさん:2009/10/31(土) 14:35:29
やらなかったのはなぜか聞いてみるといい
たとえ大人であっても一定の賞賛は得られたろうに
974デフォルトの名無しさん:2009/10/31(土) 14:35:33
>>971
Struct#==が60%だっけ?速くなりました。
…といわれてもこんなメソッドが実際に良く使われているか?ってこと。
975デフォルトの名無しさん:2009/10/31(土) 15:00:54
学生はこれだから、と言い張って勝ったつもりになってたfjの「大人」どもを
彷彿とさせますなw
976デフォルトの名無しさん:2009/10/31(土) 15:06:54
今回の教訓:自尊心と能力は常にバランス良く備えておきましょう
977デフォルトの名無しさん:2009/10/31(土) 15:08:55
か…神童…
978デフォルトの名無しさん:2009/10/31(土) 15:09:53
最大でそれが60%(?)速くなって
全体的にも5%速くなったって話じゃなかったか

5%も早くなれば十分すごいと思う
979デフォルトの名無しさん:2009/10/31(土) 15:28:32
10/30(シアトル)はnokogiriの誕生日だったのかー

980デフォルトの名無しさん:2009/10/31(土) 16:04:31
>>978
ソースだと8%って書いてあるけど
8から63%って波が激しいな
981デフォルトの名無しさん:2009/10/31(土) 16:12:36
>>980
最近は学校で平均とか教えないらしいな
よくわかるよ
982デフォルトの名無しさん:2009/10/31(土) 16:12:45
>>980
改善された箇所がどれだけ呼ばれるかにかかってるからな。
今回のポイントはArray、String、Structあたりの比較的よく使われるところを改善できた点なわけで
983デフォルトの名無しさん:2009/10/31(土) 16:18:09
>>981
平均って、あんた……
984デフォルトの名無しさん:2009/10/31(土) 16:20:38
最近は学校じゃギブソンミックスとか教えないからな
985デフォルトの名無しさん:2009/10/31(土) 17:07:32
梅。

何か学者チックな誇大成果主張な気がしないでもない。
986デフォルトの名無しさん:2009/11/01(日) 14:01:06
まあ効率の悪い場所を探せば10倍とか普通に早くなるしな。
987デフォルトの名無しさん:2009/11/01(日) 15:11:38
なにそのバランス釣り合うポイントを見つければ誰でも卵は立てられるみたいな論理
988デフォルトの名無しさん:2009/11/01(日) 15:32:44
そんな大げさな話じゃないだろ?
木目に沿って斧を入れればパカッと割れる程度の話だ。
989デフォルトの名無しさん:2009/11/01(日) 15:50:25
フリーソフトウェアの歴史的には、こういうのは能力的にも知識的にもヒマ的にも大学生のシゴトなんだよね
中学生がさくさくとやってしまったとこに注目すべき点がある
990デフォルトの名無しさん:2009/11/01(日) 15:54:20
どこの何歳のどこ所属の誰がやったのかなんて関係ない、コードだけ見てコードを評価せよ、という思想なのかも
991デフォルトの名無しさん:2009/11/01(日) 15:57:23
おまいら次スレまだ立ってませんよ
992デフォルトの名無しさん:2009/11/01(日) 16:58:15
じゃあやってみろとか言うとダンマリか逆切れしちゃうんだよな
993デフォルトの名無しさん:2009/11/01(日) 17:31:21
スレ立つまで雑談ストップしろってことかと
994デフォルトの名無しさん:2009/11/01(日) 18:20:31
>>989
それは開発環境の充実やコミュニティの敷居が下がってきたみたいな意味で?
995デフォルトの名無しさん:2009/11/01(日) 18:28:02
>>990
普通に考えてそうあるべきだろ?
996デフォルトの名無しさん:2009/11/01(日) 19:50:06
梅。

まあ今までそんなネタ出てこなかったって事は関心持たれてなかった証だしなあ。
実際、金に成る訳でもないし。
997デフォルトの名無しさん:2009/11/01(日) 20:00:12
Ruby開発内部では普通にたくさん仕事こなした人として普通に賞賛の対象

外部で中学生であるということがフィーチャーされてしまったのが運の悪かったとこだな
998デフォルトの名無しさん:2009/11/01(日) 20:08:55
圧倒的大多数は普通に賞賛してると思うが
999デフォルトの名無しさん:2009/11/01(日) 20:22:10
10年たてばただのおっさん
1000デフォルトの名無しさん:2009/11/01(日) 20:23:16
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。