Rubyについて Part 36 ..
[2ch|▼Menu]
809:デフォルトの名無しさん
09/08/12 10:36:09
例外って、実行時エラーに捕捉機能が備わっただけのような気もするな。

810:デフォルトの名無しさん
09/08/12 11:03:01
丸投げ機構

811:デフォルトの名無しさん
09/08/12 11:38:01
本スレに関係ない話題の隔離機構

812:デフォルトの名無しさん
09/08/12 13:01:02
むしろ本スレが隔離機構

813:デフォルトの名無しさん
09/08/12 13:13:33
隔離機構と薄力粉って似てるよね

814:デフォルトの名無しさん
09/08/12 13:20:53
隔離機構とカクリコンって似てるよね

815:デフォルトの名無しさん
09/08/12 13:24:16
∴ 薄力粉とカクリコンって似てるよね

816:デフォルトの名無しさん
09/08/12 13:39:36
>>790
method_missing 使え
Rubyはメソッドとか属性とかプロパティとか区別しない。


817:デフォルトの名無しさん
09/08/12 13:45:07
>>816
てゆか「メソッドしかない」んだけどね、厳密には

818:デフォルトの名無しさん
09/08/12 15:16:10
なんでこういう布教スレばっかり立てるん?

魁け! Ruby 1.9.X
スレリンク(tech板)

819:デフォルトの名無しさん
09/08/12 16:17:53
>>818
何で今さら?
かなり前からあるぞそのスレw

820:デフォルトの名無しさん
09/08/12 21:09:26
MLの中にたこ焼き仮面がどうやらっていうメールがあって
何事かと思ったw

821:デフォルトの名無しさん
09/08/12 21:36:06
>>820
何で今さら?
かなり前からあれだぞそのカレw

822:デフォルトの名無しさん
09/08/12 21:56:32
>>821
そうだったのかw
ほとんどタイトルしか見ないからな

823:デフォルトの名無しさん
09/08/13 09:55:38
WEBrickのパースユーティリティって特定条件のパース遣り残しとか残ってる?
信用して丸投げしていい?

824:デフォルトの名無しさん
09/08/13 11:35:32
全く同じようなメソッドが大量に再発明されて氾濫してる現状からお察しください

825:デフォルトの名無しさん
09/08/13 11:51:36
やっぱり HTML とか HTTP とかの軽量クラスは作るべきだっただろうか
require 'cgi' が重いから嫌われてるんだよね escapeHTML

826:デフォルトの名無しさん
09/08/13 11:58:06
>>823
1.9でマルチバイト通さなかったことを誰も気づかなかった時点でお葬式

827:デフォルトの名無しさん
09/08/13 12:06:59
あのへんは、コードを読み解こうとしてRFCとか参照しようとするとわかるが、そもそも頭に入らないぞ
仕様読んでる時点で脳内スタックが溢れるという体験を久しぶりにした
「…このままでいいや」と呟いた俺

828:デフォルトの名無しさん
09/08/13 12:14:41
Railsさんはどうしてるのかなあ
どっかのライブラリに仕様を加味しつつ現実的な動作のメソッドがごそっと入ってそうだが

829:デフォルトの名無しさん
09/08/13 12:23:40
>>828
h と u については有名
ERB::Util の中に入ってる

irb> require 'erb'
irb> include ERB::Util
irb> p h('<html>')
"<html>"
irb> p u('ABCDE!,.[]123')
"ABCDE%21%2C.%5B%5D123"

フォームのエスケープとか URL のコンパクションとかやってくれるとこはまだ知らない

830:デフォルトの名無しさん
09/08/13 16:07:00
あまりにカオスだからいっそStringのメソッドに入れてしまおうか、
という話がでたくらい

831:デフォルトの名無しさん
09/08/13 16:27:39
>>830
Web特化のPHPならあり得る選択だろうけど、Rubyでやると賛否の否の方が圧倒的だろうな
なによりPHPを馬鹿にできなくなるし

832:デフォルトの名無しさん
09/08/13 16:33:11
現実の問題を解決する道具としてプログラム言語があり、
現実として Ruby が Web でよく使われているのに。

833:デフォルトの名無しさん
09/08/13 16:35:47
>>825
HTMLをエスケープするだけのためにあんなでっかいライブラリ呼んでられん

834:デフォルトの名無しさん
09/08/13 16:38:55
今はrequire 'cgi/util' するのが正解かな

835:デフォルトの名無しさん
09/08/13 17:06:57
はいはいみなさい便所の落書きお疲れ様です。
ここでなされた議論なんて一切参考にしないし
むしろ採用しないような力が働くからそのつもりでお願いしますよ。

836:デフォルトの名無しさん
09/08/13 17:26:17
議論された場所なんか関係ないね
参考にしたけりゃするし、気に入らなければしない
もちろん場所によってS/N比は違うが

837:デフォルトの名無しさん
09/08/13 17:34:00
話してるのが気に入らないって書いてる人に対して特にコメントはない

838:デフォルトの名無しさん
09/08/13 18:59:47
>>835
そうならなかったことは歴史が証明してるけどなw

老害って自分たちが苦労して堪え忍んだ不条理を
若いのがこともなげにスルーすると滅茶苦茶ヒステリックにブチ切れるよねw

いい年したオッサンの風体で幼稚極まりないのって見苦しいことこの上ないというか。

839:デフォルトの名無しさん
09/08/13 21:21:24
さすが本スレという感じの流れですね

840:デフォルトの名無しさん
09/08/13 21:42:16
>>838
ま、そのへんは回り持ちだよ。君も後にそうなる。
歴史が証明してる。

841:デフォルトの名無しさん
09/08/14 00:32:24
XML のパーサーがまだ作られていない時、
完璧なパーサーを作ろうとすると、すごく大変だけど、
90% ぐらいを満たすパーサーならば、
楽チンで作れるという話を聞いた。
その 10 % のために、コード量がすごく増えて、
労力と時間を使うのは、もったいないなーと思った。

ライブラリーは、90% を満たせる軽量なものがいい。
だいたい、残りの 10% って使用頻度が少なかったりする。

842:デフォルトの名無しさん
09/08/14 00:42:55
でも、その10%に入ってる機能の1つが必須要件に入っていたりするんだよな

843:デフォルトの名無しさん
09/08/14 04:23:10
9割で良いから。
-> 9割の物をつくる
-> 事情を知らない人が来て出来ない1割に文句を言う。
-> メンテする気がなくなる
-> 放置ライブラリができる
-> 新しいライブラリを作ろう。9割で良いから。

844:デフォルトの名無しさん
09/08/14 04:47:07
っていうか今のRubyの添付ライブラリは9割まではできてる
残り1割というが、1割というのはかなり大きい
「普通に使っていれば絶対に引っかかる」のが1割

845:デフォルトの名無しさん
09/08/14 04:52:51
使用状況を100個集めて、90個くらいまで対応して「だいたい9割できました」と言ってしまうような誤りが多い

実際に起こりうるポピュラーな使用事例は300個くらい存在するにもかかわらず、
一番最初の事例採取が間違っていたがために、実際稼動すると充足率は3割未満だ
添付ライブラリは仕様先行のほうがいいと思う

846:デフォルトの名無しさん
09/08/14 05:10:11
思ったより Ruby が急速広範に使われてしまい、
さくっとライブラリ直そうにも影響範囲がでかくなりすぎて互換性に縛られてどうにもならん

というのが現状のような気がする
Net::HTTP みたいな直し方すら、1.8.6 が広まった今ではもう危なっかしくてできん
1.6 時代ならまだがりごり直せた気がするんだが

847:デフォルトの名無しさん
09/08/14 05:21:12
いっそのこと Ruby++ とか別の言語にしてしまった方がいいのかね

848:デフォルトの名無しさん
09/08/14 05:27:57
本体添付ライブラリ は難しくても、gem なら大幅に変わっても見逃してもらえる
gem で事実上の標準ライブラリを作って本体にぶち込むんだ

849:デフォルトの名無しさん
09/08/14 06:08:08
>>848
それしかないだろうな
現状でも「アレをやる場合は添付ライブラリ駆使ではなくgemの○○が定番」というのが分野によってはあるわけだし

850:デフォルトの名無しさん
09/08/14 06:42:22
ねー

たとえばクローラ作ってたとして、HTTPS 対応みたいな、
受け取った URL によってはそもそも絶対使わないようなライブラリがけっこうある場合、

 require 'net/https' if uri.scheme == 'https'

というように、メソッドの途中で条件分岐で require させるのって下品?

851:デフォルトの名無しさん
09/08/14 07:01:49
下品かといえばやっぱ下品だと思うよ
「必要なときに必要なものだけrequire」と書くと、字面はとってもエレガントなんだけどね

RMagick みたいなよっぽど重いやつでない限り、用はなくても最初に全部読むのが基本

852:デフォルトの名無しさん
09/08/14 07:01:50
Rubyは標準添付ライブラリレベルではメジャーバージョンアップごとに結構変わってる。
例えばcsvとかは1.9でFasterCSVへの入れ替えが行われてるし、test/unitもmini/testになってる。
結局不満があるのに変わらない系のライブラリは、責任持って変えようって言う人がいないだけ。
互換性は、別の名前で入れて時間をかけて置き換えっていう手もあるし、どうとでもなる

853:デフォルトの名無しさん
09/08/14 07:11:20
>>850
open-uriは正にそーゆー事をやってるね (ftp|http)
あれを下品だと思うなら下品と言ってもいいのかな

854:デフォルトの名無しさん
09/08/14 07:17:41
caseで書けそうなくらい条件と場所がまとまってて、自分以外のライブラリを呼んでるなら許すと思う
あちこちで細かく自分の下のファイルをrequireするのはやめてほしい気分

855:デフォルトの名無しさん
09/08/14 11:25:07
>>850
autoload使えば、と思ったが、
Net::HTTPSとかがあるわけじゃないのか。


856:デフォルトの名無しさん
09/08/14 20:04:46
net/httpsの中身をnet/httpに移して空にし、net/http側でautoload'openssl'したらどうだろう

857:デフォルトの名無しさん
09/08/16 02:50:52
コミケ2日目の帰路で
・RubyKaigi2009のシャツ
・NetBSDの携帯ストラップ
なんて風体の髭の人を見たんだが、
名のある開発者かなんかだったんだろうか

858:デフォルトの名無しさん
09/08/16 03:16:54
@takano32 ?

859:デフォルトの名無しさん
09/08/16 11:52:53
Rubyタソの萌え萌えRuby入門でも描いて布教しろ

860:デフォルトの名無しさん
09/08/17 16:04:19
githubでフォークしたものが手元にあるんだよ
んで、手当たり次第魔改…気になっていた点を節度を持って改良したんだ
変えた点を細かく記録したコミットが30個くらい入ってるブランチになったんだ
最終的な新機能はお互いに関連する2つなんだけど、
ちょっと大掛かりだったもんで全部記録したんよ

これそのまま公開したらうざいよね?

861:デフォルトの名無しさん
09/08/17 16:08:54
興味持った香具師は粛々とpullするだろうからいいんじゃね?

862:デフォルトの名無しさん
09/08/17 16:14:47
>>860
公開するブランチはcherry-pickとスカーッシュで体裁整えるのが礼儀だろ
時々typo修正とかrevertとかマージの痕跡とか入ったままのがあるけどああいうの問題外
公開してしまったものをコミットで修正するのは仕方ないけど、公開前ならローカルで整頓

863:デフォルトの名無しさん
09/08/17 16:24:17
そのへんよくわかんないよね
commitの粒度とか

Ruby関係ないけどな

864:デフォルトの名無しさん
09/08/17 16:32:47
あー、rubygemのライブラリいじるときってさ、
ファイル追加したらManifest.txtやgemspecにも記述を追加するべきだよね?
コミットごとにCHANGELOGにコミットログをコピペするんだよね?

865:デフォルトの名無しさん
09/08/17 16:43:12
公開されているコミットは
「それだけを取り出して適用して(なおかつ衝突部分だけをなんとかすれば)なんとかなるようになっている一塊」
だから、やっぱ Manifest には書いたほうがいいんでないの
変更が必要になる場所はとにかく最低限衝突させて明示するほうがよさそうだ

rubygems ライブラリにとっての「コンパイル成功」は gem パッケージ生成だろうから
それが失敗する状態で特定のコミットが公開されているというのは片手落ちだと思う

866:デフォルトの名無しさん
09/08/17 16:51:26
commit 前に rake しろとな

867:デフォルトの名無しさん
09/08/17 17:58:46
学生が開発したコードがRubyの本体に
URLリンク(itpro.nikkeibp.co.jp)

何がどう変わるのか、知ってる人教えて。
集まった学生は天才プログラマーですか?


868:デフォルトの名無しさん
09/08/17 18:06:48
Rubyがどんどんカオス化してってるな・・・

やっぱPythonにしておけばよかった・・・

869:デフォルトの名無しさん
09/08/17 18:35:54
>>868
確かに伽藍型開発であるPythonでは想像だにできない愚行だよな。
学生がソースに触れるなんておこがましいにも程がある

870:デフォルトの名無しさん
09/08/17 18:39:58
>>867
サッサーをmatzかと思っちゃった。

871:デフォルトの名無しさん
09/08/17 18:40:15
>>867
これすごいなw

裾野が広がって優秀なやつがバンバン育ってるんだろうな
おれは彼らの作るプログラムを利用させてもらうしかないわ

872:デフォルトの名無しさん
09/08/17 18:41:27
中学生とかもうね涙でそう

873:デフォルトの名無しさん
09/08/17 19:35:07
まあ年寄りは年の功で精査検査でがっつりツッコめばいいんだよ
それで全体のバランスが取れてうまくいくようになってる

稀〜に経年知識ゼロでもセンスで綱渡りして渡り切れる若い人もいるがぬ

874:デフォルトの名無しさん
09/08/17 19:49:11
>>867
これほんとにその学生が自分で見つけてデバッグしてコード修正したの?
なんかこのセキュリティなんちゃらに箔をつけるために思えるんだけど

875:デフォルトの名無しさん
09/08/17 20:00:19
> その成果が冒頭で紹介したRuby本体の改良などである。
>開発されたコードは,ベンチマークによってはRubyの性能を約5倍向上させるもの。
>すでに笹田氏の手により,8月15日付けでRuby本体に取り込まれている

すげぇ!この前の50倍と合わせて最大250倍も高速に!

876:デフォルトの名無しさん
09/08/17 20:02:20
「ベンチマークによっては」だけど、
通常利用でも顕著に高速化の恩恵が受けられるような改良であればいいな
おじさんは隅っこの方で君たちのお世話になりますよ

877:デフォルトの名無しさん
09/08/17 21:52:15
なんか胡散臭い記事だなw

878:デフォルトの名無しさん
09/08/17 21:54:02
おまいらの嫉妬なさけなすぎ
せめて未来ある若者の足をひっぱるなよ

879:デフォルトの名無しさん
09/08/17 21:57:20
いやそりゃある程度持ち上げてはいるだろ
凄い感じの人がいますが未来は不定だから何も凄くないんですヨ、みたいな記事に価値はねえw
それっぽく希望を膨らませる前向き記事にしてこそプロ

880:デフォルトの名無しさん
09/08/17 22:00:08
はてなとかこんなことやってないで
もっとましな有料オプション付けろよ

881:デフォルトの名無しさん
09/08/17 22:04:56
誰か試してみて速くなってた?

882:デフォルトの名無しさん
09/08/17 22:44:17
厨房の頃からrubyみたいな高級言語さわれて羨ましいな。
わしが厨房の頃はZ80アセンブリしか選択肢がなかったもんじゃ。

883:デフォルトの名無しさん
09/08/17 22:46:17
消防の頃からBasicみたいな高級言語さわってた
おいらが通るよ

884:デフォルトの名無しさん
09/08/17 22:48:10
この贅沢もんが!
というおいらは消防の授業でLOGOだったお。

885:デフォルトの名無しさん
09/08/17 22:49:54
考えることが少ない方がいいかもしれない

886:デフォルトの名無しさん
09/08/17 22:53:31
考え過ぎると禿げるしね

887:デフォルトの名無しさん
09/08/17 22:56:11
ストラウストラップが禿げてるのはそのせいか
あんな言語だもんな・・

888:デフォルトの名無しさん
09/08/17 22:59:06
考えすぎると禿げる、が真だとしても、
禿げてる人はよく考えてる、は必ずしも真ではない

何が言いたいかというと、うちの会社の禿げを何とかして欲しいと

889:デフォルトの名無しさん
09/08/17 23:00:05
つまんないよ

890:デフォルトの名無しさん
09/08/17 23:23:37
5倍速くなってV8と同等くらいになるのか

891:デフォルトの名無しさん
09/08/18 02:26:08
むしろアセンブラで組めたほうが将来は有望だろう。
rubyは数十年後には消えてる鴨だし。

892:デフォルトの名無しさん
09/08/18 06:47:06
>>858
なんとも。
とりあえずサンダル履きだったのでサークル参加だったのはほぼ間違いないかと。


893:デフォルトの名無しさん
09/08/18 07:00:51
一般参加者はスプリンターシューズを履いてるからな

894:デフォルトの名無しさん
09/08/18 10:49:19
URLリンク(www.infoq.com)
VC6捨てようぜ
あとライブラリ作成者はmingw32をWindowsとして扱えバカ

という話らしい

895:デフォルトの名無しさん
09/08/18 13:51:08
ついに公式ビルド元としてすら期待されなくなったか

とはいえこっちのが健全な流れだよなあ

896:デフォルトの名無しさん
09/08/18 13:54:14
できる人がリプレースというのは正しい
メンテナンス上の問題でVC6だったんだから、メンテナンス上の問題が解消できるならVC6でなくてもよい

897:デフォルトの名無しさん
09/08/18 15:51:51
>>895
> ついに公式ビルド元としてすら期待されなくなったか
なにが?

公式には
・「ruby-installer」はruby本体とは独立したプロジェクト
・「公式ビルド元」というものが存在したことはない
という答えになると思う。


898:デフォルトの名無しさん
09/08/18 17:38:59
うさビルドは9xサポートのためにVC6を使っている。
9xを切れるならばVC6以外を使った方がよい。

899:デフォルトの名無しさん
09/08/18 17:47:02
jperlみたいに残すのもありかなとも思う
古いシステム用のRuby

900:デフォルトの名無しさん
09/08/18 18:20:04
そろそろbccとかtccとかの(今となっては)マイナーなコンパイラを
切り捨ててもいいかも、ってもう切り捨てたんだっけ?

901:デフォルトの名無しさん
09/08/18 20:11:00
>>898
9xのためじゃないよ
バイナリ配布されている外部ライブラリのほとんどがmsvcrt.dllとリンクしているから


902:デフォルトの名無しさん
09/08/19 02:59:01
>>901
この辺の話かな
URLリンク(d.hatena.ne.jp)
URLリンク(www.artonx.org)

903:デフォルトの名無しさん
09/08/19 03:08:28
URLリンク(www.artonx.org)
の6ページ目あたりでもそんなことを話していたんだと予想

904:デフォルトの名無しさん
09/08/19 18:04:41
>>901
逆でバイナリ配布されている外部ライブラリのほとんどは
usaビルドにあわせて泣く泣くmsvcrt.dllとリンクするようにしているんじゃね。

>>894のがデファクトになればみんなあっさり移行するよ。

905:デフォルトの名無しさん
09/08/19 18:58:45
>>904
何もわかってない奴だなあ。

「外部ライブラリ」ってのはこの場合Rubyの拡張ライブラリじゃなくて、
例えばOpenSSLとかGDBMとかそのもののことだよ。

それからね、mingw版もmsvcrt.dllにリンクするんだよ。
拡張ライブラリに関してはVC6で作ったmswin版とmingw版はバイナリ互換。

906:デフォルトの名無しさん
09/08/19 19:06:57
なんでVC6なんだ
2008とか使えねーの?

907:デフォルトの名無しさん
09/08/19 19:45:55
ビルド環境変えるのが面倒だから。に30カラット。

908:デフォルトの名無しさん
09/08/19 20:31:28
唐揚げ食べたいけど食べすぎると死ぬよね

909:デフォルトの名無しさん
09/08/19 21:06:27
>>906,907
この話を最初から全部読み直せ。リンク先も辿って。

VC6以降の全てのVCはそれぞれランタイムDLLがファイル名から異なる。
Ruby本体、拡張ライブラリ、拡張ライブラリが呼び出す外部ライブラリDLL、
が全て共通のランタイムDLLにリンクされていない限り、全体としてのRubyが
正常に動作することは保証されない(たいていはクラッシュする)。

910:デフォルトの名無しさん
09/08/20 01:06:38
python2.5ってmsvcr71.dllとリンクしてんだよね。
OpenSSLとかってどうしてんだ?
自前でビルドしてんのかな。

911:デフォルトの名無しさん
09/08/20 07:45:26
>>905
>mingw版もmsvcrt.dllにリンクする
それはみんなわかってて、だからこそ
mingw版が解法だっていってるんでしょ?

・新しいVisualC++はmsvcrt.dllをリンクしてビルドしてくれない
・mingwのgccは最新でもmsvcrt.dllをリンクできる

って話で。

だからこそ、
>拡張ライブラリに関してはVC6で作ったmswin版とmingw版はバイナリ互換。
だし、それゆえ移行コストが低いからmingwにしようって話になるわけで。


912:デフォルトの名無しさん
09/08/20 08:40:12
そういえば>>894でreadlineをpure rubyなものに差し替えようとしてるのってなんでだろ
GNU Readlineがらみでなんか問題があるんだっけ



913:デフォルトの名無しさん
09/08/20 08:44:46
readlineといえばWindowsで端末の画面サイズをirbに
(というかreadlineに)教えるにはどうすればいいんだろ

cmd.exeの画面サイズを30x120とかにしてると
補完とか改行周りが悲しいことになってかなわん

914:デフォルトの名無しさん
09/08/20 08:57:31
テラ自己解決しました
URLリンク(d.hatena.ne.jp)


915:デフォルトの名無しさん
09/08/20 09:03:01
>>912
readlineはGPLだから、組み込んだ時点でRubyライセンスが不可になってGPL一択になってしまうこと

Gauche の gosh (irb 相当)が Readline をサポートしないのも同じような理由だと思った

916:デフォルトの名無しさん
09/08/20 11:54:47
>>914
考えようによっては修正がupstreamに取り込まれないまま
数年経っちゃってるともとれるなあ

だれか拡張ライブラリ直す形のコードにしてパッチ投げない?

それかmputたんのgithubにpull requestしたほうがいいのか?


917:デフォルトの名無しさん
09/08/20 12:52:23
_whyが行方不明らしいな。


918:デフォルトの名無しさん
09/08/20 13:33:47
最近、どこかのスレで同じ話題を見た気がするけど
mingw環境でtcltklib.so(stub有効)がコンパイルできない……
解決法を知ってる人がいれば教えてほしい

環境:
ruby 1.8.7-p174, ActiveTcl 8.5.7.0
stub無効ならコンパイルできる


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

5394日前に更新/227 KB
担当:undef