Rubyについて Part 19
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/02/24(金) 15:26:59Ruby Home Page
http://www.ruby-lang.org/ja/
= 前スレ
Rubyについて Part 18
http://pc8.2ch.net/test/read.cgi/tech/1133988248/
0002デフォルトの名無しさん
2006/02/24(金) 15:28:04http://www.ruby-doc.org/
: 日本語リファレンスマニュアル
http://www.ruby-lang.org/ja/man/
: Ruby Hotlinks (Ruby関連のページや日記のアンテナ)
http://www.rubyist.net/~kazu/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine (日本Rubyの会有志によるwebzine)
http://jp.rubyist.net/magazine/
: RCRchive (Rubyの仕様変更提案(RCR)と議論のアーカイブ)
http://www.rcrchive.net/
: RAA (Rubyで書かれたプログラムやライブラリの登録場所)
http://raa.ruby-lang.org/
: RubyForge (Rubyで作るオープンソースプロジェクトをホスティング)
http://rubyforge.org/
: blade (Ruby関連MLのアーカイブ)
http://blade.nagaokaut.ac.jp/ruby/
: Ruby Garden Wiki (RubyについてのWiki:英語)
http://www.rubygarden.org/ruby
: The RWiki (Ruby関連の話題が豊富なWiki)
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=top
: Matzにっき
http://www.rubyist.net/~matz/
0003デフォルトの名無しさん
2006/02/24(金) 15:28:49http://exerb.sourceforge.jp/
: VisualuRuby (Windows 用 GUI ライブラリ)
http://www.osk.3web.ne.jp/~nyasu/software/vrproject.html
http://vruby.sourceforge.net/cgi-bin/wiki.cgi
: 上記二つをまとめて Windows GUI アプリ(exe) の作成
http://www.osk.3web.ne.jp/~nyasu/vruby/madobe/index.html
: 『Rubyソースコード完全解説』 (Ruby Hacking Guide)
http://i.loveruby.net/ja/rhg/
:MoonWolf Corporation
http://www.moonwolf.com/
:Script/Ruby
http://www.moonwolf.com/ruby/
:Devlog
http://devlog.moonwolf.com/
0004デフォルトの名無しさん
2006/02/24(金) 17:29:060005デフォルトの名無しさん
2006/02/24(金) 20:54:04イナバウアの AA で爆笑したよ。w
0006デフォルトの名無しさん
2006/02/25(土) 13:26:170007デフォルトの名無しさん
2006/02/26(日) 01:57:10人少なくなった?
0008デフォルトの名無しさん
2006/02/27(月) 14:20:26リーダーライターロック付きの配列を作るとしたら、こういう感じの使い方でいいの?
--
require "sync"
class RWArray
include Sync_m
def initialize(size)
super
@list = Array.new(size, 0)
end
def get(no)
begin
lock(Sync_m::SH)
return @list[no]
ensure
unlock(Sync_m::SH)
end
end
def set(no, val)
begin
lock()
@list[no] = val
ensure
unlock()
end
end
end
0009デフォルトの名無しさん
2006/02/27(月) 15:00:58どうせなら、
def get(no)
synchronize(SH) do
@list[no]
end
end
def set(no, val)
synchronize(EX) do
@list[no] = val
end
end
かなあ、とは思うが。
0010デフォルトの名無しさん
2006/02/27(月) 16:23:39サンキューです。
0011デフォルトの名無しさん
2006/02/27(月) 18:29:33----------------
http://comic6.2ch.net/test/read.cgi/doujin/1140974901/172
From: [172] 395 ◆veZNGgrqUc <sage>
Date: 2006/02/27(月) 15:27:31 ID:FyWv97xb
パッと見、AntiLoとは内部構造が大幅に違うようです。
というのも、今回のはRubyで書かれている様なんですね。
(AntiLoはDelphiのWin32ネイティブでした)
インタプリタなので、解析しにくい事この上ないです。
投稿する文字、ターゲットとなるスレッドの特定も一筋縄にはいかない?かもです。
0012デフォルトの名無しさん
2006/02/27(月) 19:30:150013デフォルトの名無しさん
2006/02/27(月) 20:38:21誤認識とかMLに流れてなかったっけ?
0014デフォルトの名無しさん
2006/02/27(月) 23:18:42http://comic6.2ch.net/test/read.cgi/doujin/1140974901/
612 :395 ◆veZNGgrqUc :2006/02/27(月) 23:07:59 ID:FyWv97xb
>>331で言っているメモリ内から摘出したウイルスのソースうp
rubyに詳しい方が居らっしゃいましたら、更なる分析をお願い申し上げます
ttp://security.s182.xrea.com/tmp/antidojin.rb
(注:そのままrubyで実行しても、クラスの関係で動きません)
0015デフォルトの名無しさん
2006/02/27(月) 23:33:590016デフォルトの名無しさん
2006/02/28(火) 00:44:130017デフォルトの名無しさん
2006/02/28(火) 10:18:250018デフォルトの名無しさん
2006/02/28(火) 10:55:14なにこのスパゲティコード
0019デフォルトの名無しさん
2006/02/28(火) 11:26:110020デフォルトの名無しさん
2006/02/28(火) 11:40:15これにちょっとワロス。
こんな汚いソースでも何やってるかはわかりやすいRubyは凄いな。
0021デフォルトの名無しさん
2006/02/28(火) 12:39:09すぐに思い出すのはやっぱりあの…
0022デフォルトの名無しさん
2006/02/28(火) 13:07:32そういえばあの人、Windows も使ってるし・・・
0023デフォルトの名無しさん
2006/02/28(火) 14:09:18というか、疑いかける奴って永田レベルじゃん。
0024デフォルトの名無しさん
2006/02/28(火) 14:17:360025デフォルトの名無しさん
2006/02/28(火) 14:34:320026デフォルトの名無しさん
2006/02/28(火) 15:28:080027デフォルトの名無しさん
2006/02/28(火) 15:38:46あまり趣味の良いネタとは言えんな。
0028デフォルトの名無しさん
2006/02/28(火) 16:10:590029デフォルトの名無しさん
2006/02/28(火) 16:44:480030デフォルトの名無しさん
2006/02/28(火) 16:54:580031デフォルトの名無しさん
2006/02/28(火) 16:58:210032デフォルトの名無しさん
2006/02/28(火) 17:49:55悪ノリはしない方がいいかもしれませんよ?>疑われた方
0033デフォルトの名無しさん
2006/02/28(火) 18:02:040034デフォルトの名無しさん
2006/02/28(火) 19:50:11コーディングスタイル如きで悪ノリとか言われたらたまったもんじゃねーな。
0035デフォルトの名無しさん
2006/02/28(火) 20:04:570036デフォルトの名無しさん
2006/03/01(水) 06:26:18RoR 効果もあるんだし、なんとかした方が良いんじゃないか?
0037デフォルトの名無しさん
2006/03/01(水) 14:45:520038デフォルトの名無しさん
2006/03/01(水) 21:00:46今朝方、繋がらなかった。
0039デフォルトの名無しさん
2006/03/01(水) 22:01:120040デフォルトの名無しさん
2006/03/01(水) 23:47:370041デフォルトの名無しさん
2006/03/02(木) 00:11:130042デフォルトの名無しさん
2006/03/02(木) 00:15:57Rubyは知らないと言うのでチンコ萎えますた。
0043デフォルトの名無しさん
2006/03/02(木) 00:41:01ソープってこっちのSOAPか?
0044デフォルトの名無しさん
2006/03/02(木) 06:13:40...
tmp_ary.each { ... }
end
みたいなコードは結構書くと思うんだけど、
procedure_foo が tmp_ary を外に漏らしてしまうのが気になる。
かといって明示的に nil を返すのは面倒だしださいので避けたい。
そもそも Array#each が self を返すのを活用しているコードってあるの?
one-liner とかがやりたがるのかな……。
0045デフォルトの名無しさん
2006/03/02(木) 07:11:27> 漏れる
なるほど。今まで気付いてなかった。
ただ、
・漏れると困るケースなら明示的に nilを返す
・「漏れるのが気持ち悪い」くらいのケースなら、どうせ GC されるんで気にしない
でいいような。で、ほとんどが後者だと思う。
> Array#each が self を返す
・オレは使ったことがない
・まさに>>44の例みたいに、tmp_ary を返したい時に使ってるのを見たことはある。
・あとは ary.each{〜}.each{〜} とか。ほとんど見たことないけど。
0046デフォルトの名無しさん
2006/03/02(木) 07:52:14>>44のコードではtmp_aryを返す意図があるようには見えないので
メンテナンス性に問題があるんじゃないかなぁ。
例えばtmp_ary.each { ... }の後に新たなコードを追加した時、
ちゃんとtmp_aryを返すようにするのを忘れるとか。
Array#eachは最終的なプログラムには頻出する重要なメソッドだから、
可読性を下げる嫌らしい使用例しか挙がらないようなら
仕様変更の希望を出してみてもいい気がする。
0047デフォルトの名無しさん
2006/03/02(木) 07:53:120048デフォルトの名無しさん
2006/03/02(木) 08:41:58nil を返すメリットや self を返すデメリットが思いつかない。
> Array#eachは最終的なプログラムにも頻出する
のは確かだけど、その大部分は返り値がどっちでも問題ないわけで。
0049デフォルトの名無しさん
2006/03/02(木) 09:02:44行儀の悪いプログラム(やそれを許す仕様)がどれだけ憎いかは主観の問題だから、
希望出したい人は出してもいいんじゃない。通るかどうかはともかく。
しかしmatzを説得な。この程度じゃ確かに難しいかもね。
自分で思いついた仕様変更は多少の反対があろうと押し通すけど、
他人が提案した仕様変更には賛成の声があっても従わないことの多い人だから。
まあ、そこがmatzなんだが。
0050デフォルトの名無しさん
2006/03/02(木) 09:23:150051デフォルトの名無しさん
2006/03/02(木) 10:02:050052デフォルトの名無しさん
2006/03/02(木) 10:02:29しょうがねぇじゃん、matzの作ったmatzの希望を満たすための言語なんだから。
今はユーザがいっぱいいるけどさ。
0053デフォルトの名無しさん
2006/03/02(木) 10:05:030054デフォルトの名無しさん
2006/03/02(木) 10:20:290055デフォルトの名無しさん
2006/03/02(木) 10:26:15ちがーう!
0056デフォルトの名無しさん
2006/03/02(木) 10:28:050057デフォルトの名無しさん
2006/03/02(木) 12:28:340058デフォルトの名無しさん
2006/03/02(木) 12:54:200059デフォルトの名無しさん
2006/03/02(木) 13:17:590060デフォルトの名無しさん
2006/03/02(木) 13:23:340061デフォルトの名無しさん
2006/03/02(木) 13:57:03山ほどある
0063デフォルトの名無しさん
2006/03/02(木) 16:49:55eachさえ直せばOKって事?
0064デフォルトの名無しさん
2006/03/02(木) 16:55:07006544
2006/03/02(木) 17:12:42言語仕様というよりライブラリ設計の慣習を問題にしてる。
俺の中での代表格が Array#each 。
each は制御構文さながらに使われることが多いから。
>>64
あー、なるほど。そういえばそうすね。
今は break が引数を取れるからそれ使った方がいいと思うけど、
互換性が思ったよりは問題になるかもしれないすね。
0066デフォルトの名無しさん
2006/03/02(木) 17:19:230067デフォルトの名無しさん
2006/03/02(木) 17:44:03今回の話がどうかはともかく。
0068デフォルトの名無しさん
2006/03/02(木) 17:59:31nil だと思い込んでて、現実がそうでなかったから文句を
言ってるだけに見えるんだけど。
0069デフォルトの名無しさん
2006/03/02(木) 18:19:06本当にダメダメな提案だったらレスもつかないはずだし、
>>43までの流れに比べればずっと有意義だ。
0070デフォルトの名無しさん
2006/03/02(木) 18:29:020071ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/02(木) 18:39:34俺も lisp かじってるから自然な動作だと思うんだけど…。
例えば、if のような制御構文だって値を返すんだから、繰り返しだけが
常に nil を返すってのは違和感があると思うけど。
0072デフォルトの名無しさん
2006/03/02(木) 18:40:10つーか手続き的なメソッドに lisp の philosophy はあわないんでないの。
0073デフォルトの名無しさん
2006/03/02(木) 18:47:44実際問題として、「each が self を返すこと」によるメリットを感じたことがない。
007444
2006/03/02(木) 18:49:07今のところはまったことはない。
いい意味でも悪い意味でも純粋に精神衛生上の問題。
>>70
each が map の alias なら名前以外は納得。メモリの無駄遣いだが。
>>71
かといって常に self を返すってのも違和感があるんだよね。俺には。
利用価値がないなら、デフォルト値としての nil を返したほうがいいのではないかと。
if だって else 節を省略したときに返す値は nil だしね。
>>72
>ブロックの返り値を無視して問答無用で self を返すのがキモイ
それもある。同意。
0075デフォルトの名無しさん
2006/03/02(木) 19:10:40みたいなコードを書いてたことがあるけど、all?やany?の存在に気づいてやめた。
0076デフォルトの名無しさん
2006/03/02(木) 19:19:45>利用価値がないなら、デフォルト値としての nil を返したほうがいいのではないかと。
利用価値がないと決め付けるのはいかがなものか。
>if だって else 節を省略したときに返す値は nil だしね。
え、else 節を省略して、かつ、if 節に入らなかったとき、だよね?
その場合 nil になるのは当然ではないかと。エラーでもいいけど。
ブロックの返り値の方がいいんじゃないか、とは俺も思う。
問答無用で nil を返すのは今よりもっとキモイので反対。
0077ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/02(木) 19:20:54そりゃそもそもブロックが無いからでしょ。
if に与えられた条件が true だったらブロックの値を返すよ?
>>72
まぁ、なんで self なのかなぁとは思うな。
>>73
あー、while なんかも nil だしな…。
……でも、結局は Matz 次第だよな…。
007844
2006/03/02(木) 22:05:32>利用価値がないと決め付けるのはいかがなものか。
ない『なら』だって。だから活用してるコードはあるのかって聞いたの。
>え、else 節を省略して、かつ、if 節に入らなかったとき、だよね?
もちろんそう。
>その場合 nil になるのは当然ではないかと。
当然。つまり nil は、返り値としてふさわしい値がない場合の
デフォルト値としての地位を確立してる。
そして Array#each はそういう場合だと思う。
>>77
ああ、while の方がいい例すね。
やっぱり matz 次第なんだけど。
0079デフォルトの名無しさん
2006/03/02(木) 22:15:260080デフォルトの名無しさん
2006/03/02(木) 23:02:520081デフォルトの名無しさん
2006/03/02(木) 23:03:27array.c をいじって、make と make test-all をしてみたところ、
とりあえず 2 箇所見つかった。
lib/optparse.rb の 195 行目:
RCSID = %w$Id: optparse.rb,v 1.40.2.4 2004/12/05 10:39:58 nobu Exp $[1..-1].each {|s| s.freeze}.freeze
lib/rss/0.9.rb の 632 行目から:
def _tags
%w(title description name link).each do |name|
send(name).nil?
end.collect do |elem|
[nil, elem]
end
end
optparse の例はちょっと納得した。後者は .nil? の意味がよくわからない。
この 2 つを直したら test-all は全部通った。
そこまで大きな影響はなさそうだけど、ゼロではないね。
0083デフォルトの名無しさん
2006/03/02(木) 23:22:27もうちょっと建設的に議論しようぜ。
とりあえず RAA を "each freeze" で gonzui してみたところ、
optparse くらいなものだった。作者の中田さんの意見を聞いてみたいね。
008444
2006/03/02(木) 23:44:26optparse の例の嬉しさ×頻度 < >>44の例の嫌さ×頻度
なんだが、思ったより同意がないようだから、この提案はだめっぽいね。
取り下げる。意見くれた人たちサンクス
0085デフォルトの名無しさん
2006/03/03(金) 00:38:34eachがself返すの反対なだけだったの?
0087デフォルトの名無しさん
2006/03/03(金) 01:46:17「今の挙動の方が正しい」という主張だったけどな。
0088デフォルトの名無しさん
2006/03/03(金) 02:15:50あー、今更だが俺も同意しとく。
つか、プログラマとかその手の人種は他人を否定したがるというか、
反対の時は饒舌だが賛成の時は黙ってるやつが多いから、
賛成と反対の数だけ気にしてもしょうがないよ。
0089デフォルトの名無しさん
2006/03/03(金) 10:18:57* self を返すことは別に気持ち悪くない
* ブロックの値を返すのでも悪くはない
* nil でも悪くはないがよくもない
なので、現状を変更する理由にならん。
話を聞いても全然説得されなかった。
nil にしたらこんなに嬉しい!ってのがないとなあ。
0090デフォルトの名無しさん
2006/03/03(金) 10:22:190091デフォルトの名無しさん
2006/03/03(金) 10:40:28メソッドチェーンするかもしれないケースに備えてとりあえず self を返しとく、
というのはそれほど悪くない convention だと思うんだけど、どうだろ?
あと、 >>44 の例で「外に漏らしてしまう」と言っているけど、
これは each に限った話ではないよね?
procedure_foo の実装者は
「かといって明示的に nil を返すのは面倒だしださいので避けたい。」
と思っているかもしれないけれども、
それは each の実装者にしても同じことだよね?
0092デフォルトの名無しさん
2006/03/03(金) 10:48:40とか本質的でないツッコミ。
009391
2006/03/03(金) 11:00:05あぁ、 Array#each はそうでしょうけど、私は一般的な each の話を言っています。
>>44 は、もし tmp_ary が Array じゃなかったとしても、
あるいは、最後に呼んだメソッドが each 以外だったとしても、
「外に漏らしてしまうのが気になる」
と思ってしまうのではないかと思うのですが、
違ってたらすいません。
0094デフォルトの名無しさん
2006/03/03(金) 11:03:17そもそもの間違いなんじゃないか。
0095デフォルトの名無しさん
2006/03/03(金) 11:30:38習慣としてあらゆるパスにselfを配置するのは面倒で
Cのように警告してくれないのでよろしくない。
とかって話になるんだろうけど
結局所詮スクリプトだし〜の一言で終わる話じゃね。
メソッド内でたまたま最後に参照した生パスワードが参照できちゃって
それがセキュリティホールにつながるわけじゃなし。
0096デフォルトの名無しさん
2006/03/03(金) 12:02:06(1) Rubyのメソッドは最後に評価した文の値を返り値とする
(2) Array#eachはselfを返す
(3) (1)・(2)より、メソッドの最後でArray#eachを使ったらそのArrayが返される
ということだよね。
そこで(2)を問題視するのっておかしくないか?
0097デフォルトの名無しさん
2006/03/03(金) 12:05:440098デフォルトの名無しさん
2006/03/03(金) 12:23:05おかしいですね。
いやなら明示的にnilを書けばいいこと
0099デフォルトの名無しさん
2006/03/03(金) 13:09:40>(1) Rubyのメソッドは最後に評価した文の値を返り値とする
Array#eachの場合はself返るのを見落としやすいというだけ。
例えばプライベートな変数に代入する処理を末尾に書くだけで
プライベートなデータも漏れる。
返値はreturnで明示した方が読みやすいコードになるし、それを
強要するのもいいと思う。でもreturn省略できてメソッド定義を
すっきりできるのはRubyの魅力の一つでもあるし。
この件は「Rubyの落とし穴」止まりじゃない?
0100デフォルトの名無しさん
2006/03/03(金) 13:11:28出発点はそこだけど、今の議論は「Array#each が self を返す必然性はあるのか」
という話に推移してると思う。
0101デフォルトの名無しさん
2006/03/03(金) 16:06:51nilに変えろという奴がいて、nilに変えないといけない必然性はあるのか、という話なんじゃないの?
0102デフォルトの名無しさん
2006/03/06(月) 00:44:470103デフォルトの名無しさん
2006/03/06(月) 15:51:54エディタの支援とかは抜きで。
トップレベルに置かないとエラーが出る要素があったら
そればら撒くと洗い出すのが簡単になりそうなもんだが。
HOGEHOGE <= ここだとOK
begin
HOGEHOGE <= ここだとNG
end
while true
begin
end
HOGEHOGE <=ここでNGならもうおかしい
0104デフォルトの名無しさん
2006/03/06(月) 16:55:45試してないけど、これでどーだろ。
raise "not TOPLEVEL" unless TOPLEVEL_BINDING == binding
0105デフォルトの名無しさん
2006/03/06(月) 18:40:27一箇所ずつしか使えないけど__END__とか?
0106デフォルトの名無しさん
2006/03/06(月) 21:59:55>訴えられたくない訴えられたくない訴えられたくない :)
コーヒー吹いた
0107デフォルトの名無しさん
2006/03/06(月) 22:48:04知ってるとは思うけど念のため。 [ruby-list:30086] ね。
0108デフォルトの名無しさん
2006/03/06(月) 23:05:390109デフォルトの名無しさん
2006/03/06(月) 23:07:49GPLインフェクションかな。
0110デフォルトの名無しさん
2006/03/07(火) 02:51:15どっちが (゚д゚)ウマー
0111デフォルトの名無しさん
2006/03/07(火) 06:57:130112デフォルトの名無しさん
2006/03/07(火) 07:47:37Apollo (゚д゚)ウマー
Windowsユーザーですが何か?
0113デフォルトの名無しさん
2006/03/07(火) 07:56:000114デフォルトの名無しさん
2006/03/07(火) 08:21:530115デフォルトの名無しさん
2006/03/07(火) 09:31:35になったの?手元に大昔のSoftware Design誌があって、不安定ながら記事掲載してたようだが
0116デフォルトの名無しさん
2006/03/07(火) 10:41:21bindingで作られるBindingオブジェクトって毎回別物だったのか。
すまんかった。
0117デフォルトの名無しさん
2006/03/07(火) 11:56:12>>訴えられたくない訴えられたくない訴えられたくない
ちょっと残念な感想だよね...。
GNU GPLって他人に資することでソフトウェアの発展を目的としているのに(...だよね?)、結果的に「すげぇめんどくせー、つーかマジうぜーライセンス」「一種の呪い」扱いだもんな。
0118デフォルトの名無しさん
2006/03/07(火) 12:24:27rubyをバイナリ配布しようとして安全な公約数を取るとGPLになる、ということなんじゃないの?
当人がどう思ってるかはともかく、別にGPLがうざいなどという意味が含まれてるとは思えないんだが。
0119117
2006/03/07(火) 12:36:05>当人がどう思ってるかはともかく、別にGPLがうざいなどという意味が含まれてるとは思えないんだが。
うーむ、見直してみるに、どうやら一番うざいと思ってたのは俺だったみたいだ。ご指摘感謝、つーか、なかむら(う)さんに失礼しました、ごめんなさい。
0120デフォルトの名無しさん
2006/03/07(火) 12:38:450121デフォルトの名無しさん
2006/03/07(火) 12:50:41それを組み込んだ時にGPLに従わなければならなくなる。
それが問題だと思う人には問題。
0122デフォルトの名無しさん
2006/03/07(火) 12:53:000123デフォルトの名無しさん
2006/03/07(火) 13:10:57GPL うざいよね。
0124デフォルトの名無しさん
2006/03/07(火) 13:16:260125デフォルトの名無しさん
2006/03/07(火) 13:18:490126デフォルトの名無しさん
2006/03/07(火) 13:30:570127デフォルトの名無しさん
2006/03/07(火) 13:38:000128デフォルトの名無しさん
2006/03/07(火) 13:56:510129デフォルトの名無しさん
2006/03/07(火) 14:27:030130デフォルトの名無しさん
2006/03/07(火) 14:29:17とりあえず ML (ruby-list) の流れを追ってから質問してくれい。
0131デフォルトの名無しさん
2006/03/07(火) 16:53:17129じゃないが、ML読む気がしないので、
こっちに書いてくれれば嬉しい。
0132デフォルトの名無しさん
2006/03/07(火) 18:15:05コピペする気がしない。
http://blade.nagaokaut.ac.jp/ruby/ruby-list/index.shtml
0133デフォルトの名無しさん
2006/03/07(火) 18:19:30それは横着すぎじゃね?
一応 ML がベースで進んでる議論なんだからわざわざ fork すんのは無駄だべさ。
0134デフォルトの名無しさん
2006/03/07(火) 18:21:120135デフォルトの名無しさん
2006/03/07(火) 18:24:290136デフォルトの名無しさん
2006/03/07(火) 19:23:44ポインタ示してくれれば読むけど、全メールを読むのはちょっと面倒。
せめて、過去ログが2ch viewerで読めりゃね。
ウェブインターフェースで一つ一つ読むなんて面倒。
0137デフォルトの名無しさん
2006/03/07(火) 19:31:320138デフォルトの名無しさん
2006/03/07(火) 19:56:220139デフォルトの名無しさん
2006/03/07(火) 21:07:04ってかML機能してんの?
0140デフォルトの名無しさん
2006/03/07(火) 21:18:01まあね。>>132がポインタを示すとは思ってないよ。
ツクールに関しては結論が出てないって事か。
0141デフォルトの名無しさん
2006/03/07(火) 22:08:33どういう報いを受けるかということがこれでわかったはずだ。
もうすぐツクールの全ソースが公開され商用としての価値は消失し
会社に多大な損害を与えることになるだろう。
0142デフォルトの名無しさん
2006/03/07(火) 23:30:48つか、今試してみてる。
だが、今やっとVC++Toolkitで、rubyコンパイルできたばかり・・・。
0143デフォルトの名無しさん
2006/03/07(火) 23:50:09もうひとつ問題になっている util.c と win32/win32 も、 Artistic ライセ
ンスの方を採用すれば、プロプライエタリなソフトウェアに組込むことそれ自
体は問題ではない筈。たぶん。
0144デフォルトの名無しさん
2006/03/08(水) 00:46:430145デフォルトの名無しさん
2006/03/08(水) 00:52:030146デフォルトの名無しさん
2006/03/08(水) 02:03:450147デフォルトの名無しさん
2006/03/08(水) 02:43:28これで安心して寝られる・・・
0148デフォルトの名無しさん
2006/03/08(水) 07:02:38正直微妙
Apolloと比べると実装・ドキュメントともに力不足に感じる
自力でハンドラを調べなくてはならない場面も多いし…
ただ、外部ライブラリを必要としない点は○
いいラッパーさえ書ければ十分使えると思う
0149デフォルトの名無しさん
2006/03/08(水) 09:26:35だがデザインは面白そうだが実装はつまらなそうだ。
0150デフォルトの名無しさん
2006/03/08(水) 11:29:060151デフォルトの名無しさん
2006/03/08(水) 12:55:270152デフォルトの名無しさん
2006/03/08(水) 23:50:12アスキー文字のうち、アルファベットと数字以外の記号
を表すような正規表現ってどうしたらいい?
[^a-zA-Z0-9]
だと、日本語にもマッチしてしまうので。
今は
[-^%$#@!*()=_+`~,.¥/¥¥?<>¥[¥]{};:'"]
とか書いてるんだけど、なんか頭悪いから、いい方法あったら教えて。
0153デフォルトの名無しさん
2006/03/09(木) 00:20:360154デフォルトの名無しさん
2006/03/09(木) 00:27:12[:punct:] で日本語のオプション付ければ良いかと。
0155デフォルトの名無しさん
2006/03/09(木) 00:27:37それだとアスキー文字全部じゃね?
そこからアルファベットと数字だけ除きたいんだが。
正規表現って、集合の差分とか表現できないよね?
0156デフォルトの名無しさん
2006/03/09(木) 01:00:40(?=[\x00-\x7f])[^a-zA-Z0-9]
0157デフォルトの名無しさん
2006/03/09(木) 01:32:26[\x00-\x7f&&[^a-zA-Z0-9]]
0158デフォルトの名無しさん
2006/03/09(木) 02:14:080159デフォルトの名無しさん
2006/03/09(木) 02:16:59アルファギークの思いつきだとばかり思ってたけど歓心感心
0160デフォルトの名無しさん
2006/03/09(木) 02:18:44irb(main):001:0> /^[[A-Za-z]&&[^A-Ea-e]]+$/.match("foobar")
=> nil
irb(main):002:0> /^[[A-Za-z]&&[^A-Ea-e]]+$/.match("quux")
=> #<MatchData:0x29361f4>
irb(main):003:0>
1.9(つーか鬼車)ね。
0161デフォルトの名無しさん
2006/03/09(木) 02:38:39irb(main):005:0> /^[[[:ascii:]]&&[^[:alnum:]]]+$/.match("ほげ")
=> nil
irb(main):006:0> /^[[[:ascii:]]&&[^[:alnum:]]]+$/.match(" a1")
=> nil
irb(main):007:0> /^[[[:ascii:]]&&[^[:alnum:]]]+$/.match("$%,")
=> #<MatchData:0x2a01cdc>
irb(main):008:0>
こんなとこでどだ?
ブラケットのネストがうざったいが。
0162154
2006/03/09(木) 02:48:580163デフォルトの名無しさん
2006/03/09(木) 21:06:08詳しく
0164デフォルトの名無しさん
2006/03/09(木) 21:13:460165デフォルトの名無しさん
2006/03/10(金) 00:39:11スペースとかタブはどーすんだっけ?
punctにはこの辺ないよ。まあ逆に付け加えればいいだけだけど。
あと、現状のRuby(つか鬼車)はlocaleでこの手の文字クラスの範囲が
変わらないみたいだけど、世の中には変わるのもあるからね。
たとえば[:pumct:]に 、とか , が入ったりとか。
0166デフォルトの名無しさん
2006/03/10(金) 10:28:21標準ライブラリを少し眺めてるんだけど、単発クラスばっかり。
クラスの設計とかがもう少し入り組んでるようなプロジェクトでソースのきれいな物おせーて。
0167デフォルトの名無しさん
2006/03/10(金) 10:31:47>>152 はタブやスペース入れてないからいいかなと。
ロケールで変わりそうというのは確かにそうですね。
[:ascii:] つうのは Perl 拡張ですかね?
man ctype しててしばらく悩んでしまった。
0168デフォルトの名無しさん
2006/03/10(金) 10:52:46青木さんのBitChannel
というか俺がコード読んだのがこれくらいなだけだが。
Rubyアプリケーションとしても、Wikiの実装というかCGIの実装としても秀逸だとオモタ。
他になんかあったら俺も教えて欲しい。
0169デフォルトの名無しさん
2006/03/10(金) 11:02:53WEBrickが参考になると、るびまのなんかの記事に書いてあった。
0170デフォルトの名無しさん
2006/03/10(金) 11:04:590171デフォルトの名無しさん
2006/03/10(金) 11:20:310172デフォルトの名無しさん
2006/03/10(金) 11:34:170173デフォルトの名無しさん
2006/03/10(金) 14:03:55rand(10...16)
ってしたい
0174デフォルトの名無しさん
2006/03/10(金) 14:37:52天才。激しく同意。
0175デフォルトの名無しさん
2006/03/10(金) 14:44:130176ヽ(´ー`)ノ ◆.ogCuANUcE
2006/03/10(金) 15:02:45if n.instance_of?(Range) then
n_a = n.to_a
i = rand n_a.size
return n_a[i]
else
return Kernel.rand(n)
end
end
こんな感じでいいんか?
0177デフォルトの名無しさん
2006/03/10(金) 15:04:07def rand
n = 0
y = nil
each do |x|
y = x if Kernel.rand(n += 1) == 0
end
y
end
end
0178デフォルトの名無しさん
2006/03/10(金) 15:08:550179デフォルトの名無しさん
2006/03/10(金) 15:16:35そもそもこういうのは標準のRubyで対応すべきだと思う。
0180デフォルトの名無しさん
2006/03/10(金) 15:21:470181デフォルトの名無しさん
2006/03/10(金) 15:23:55rand(n) a.rand end
に丸投げなら有かも。
0183デフォルトの名無しさん
2006/03/10(金) 15:38:18で、誰が鈴をつけるんだ?(ワラ
0184デフォルトの名無しさん
2006/03/10(金) 16:09:08一般論として100も200もレス伸ばすような話題でもない。
0185デフォルトの名無しさん
2006/03/10(金) 16:44:14ActiveSupport で対応してくれさえすればいいや。
0186デフォルトの名無しさん
2006/03/10(金) 16:55:540187デフォルトの名無しさん
2006/03/10(金) 17:01:070188デフォルトの名無しさん
2006/03/10(金) 17:29:54こんなのとか。
class Float
def rand(limit = 0.0)
(limit - self) * Kernel::rand() + self
end
end
class Range
def rand
if first.respond_to?(:succ)
# 中略
else
first.rand(last)
end
end
end
0189デフォルトの名無しさん
2006/03/10(金) 17:41:000.0 .. 1.0はどうやるんだろうかって事。
0190デフォルトの名無しさん
2006/03/10(金) 17:47:05でも (0.0..1.0).rand が 0.0 とか 1.0 になることってあるのかな?
教えて、数学の偉い人!
0191デフォルトの名無しさん
2006/03/10(金) 17:52:410192デフォルトの名無しさん
2006/03/10(金) 17:53:120193デフォルトの名無しさん
2006/03/10(金) 20:35:59構文でサポートする必要はないと思う
0194デフォルトの名無しさん
2006/03/10(金) 22:02:550195デフォルトの名無しさん
2006/03/10(金) 22:08:16class Range
def rand
if first.kind_of?(Integer)
Kernel.rand(max-min+1)+min
elsif first.kind_of?(Float)
Kernel.rand() * (last-first)+first
else
raise TypeError.new(first.class.name)
end
end
public :rand
end
a=[]; b=[]; c=[]; d=[]
for i in 1..20 do
a.push((1..5).rand)
b.push((1...5).rand)
c.push((1.0..2.0).rand)
d.push((1.0...2.0).rand)
end
p a.sort, b.sort, c.sort, d.sort
puts ("A".."F").rand # err
[1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5]
[1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4]
[1.01266720239073, 1.01478989003226, 1.03025444666855, 1.06008591223508, 1.07785816979595, 1.24921685433947, 1.33628733176738, 1.34473595488817, 1.40971731534228, 1.49617777764797,
1.59997416939586, 1.6395130623132, 1.65759115992114, 1.68046701466665, 1.75532641983591, 1.77737815189175, 1.80818298063241, 1.81937686935999, 1.85303344926797, 1.90426424588077]
[1.07483099680394, 1.14998408732936, 1.19250788423233, 1.26004932681099, 1.26708384230733, 1.27689886838198, 1.28458853322081, 1.29509600717574, 1.41609804634936, 1.49863598425873,
1.66031795437448, 1.67920556757599, 1.73509335005656, 1.74326395476237, 1.78267445997335, 1.83928591781296, 1.84696579352021, 1.86383298388682, 1.94829077110626, 1.9503703576047]
0196デフォルトの名無しさん
2006/03/10(金) 22:30:130197デフォルトの名無しさん
2006/03/11(土) 00:11:26値を範囲内に収めてくれるメソッドが(標準で)欲しい
range = 1..10
range.fold(4) #=> 4
range.fold(-2) #=> 1
range.fold(300) #=> 10
0198デフォルトの名無しさん
2006/03/11(土) 00:30:52元クラスにぼこぼこ追加していくスタイルって推奨なの?
それともMyLib.range_rand/range_foldとかにした方がいい?
0199162
2006/03/11(土) 00:35:57調べてみたら、punct も POSIX 1003.2にはなかった。
ttp://www.unusualresearch.com/regex/regexmanpage.htm
ascii はGNU拡張が先にあったような気がするけどどうだったかな?
0200デフォルトの名無しさん
2006/03/11(土) 03:28:26ありゃ、そうなんですか。
てっきり ISO C90 に ispunct(3) あるから POSIX regex にもあるものとばかり。
0201デフォルトの名無しさん
2006/03/11(土) 08:36:15推奨されもしないが嫌われもしない、ってぐらいじゃないかな
(個人の好き嫌いもあると思う)
元クラスに追加するにしても
ライブラリとしてまとめてrequireすれば、それなりに分かりやすくなるし
元クラスに追加しない場合、モジュール関数にするよりは
Rangeのサブクラス(NewRange?)を作って
そっちでメソッドを追加したほうがいいと思う
0202デフォルトの名無しさん
2006/03/11(土) 09:27:36>Rangeのサブクラス(NewRange?)を作って
>そっちでメソッドを追加したほうがいいと思う
全然よくねーよ。それじゃ結局 rand(0...10) と書けないだろアホ。
0203デフォルトの名無しさん
2006/03/11(土) 13:30:42>>195, >>198, >>201 はもう rand(1...10) の話をしてない。よく読め。
0204デフォルトの名無しさん
2006/03/11(土) 14:04:48以前 ruby-list で3月頃に出るって流れてたような記憶があるのですけど
0205デフォルトの名無しさん
2006/03/11(土) 14:21:26お前が読めドアホ。
>>201
>Rangeのサブクラス(NewRange?)を作って
という一文から分かるように、どう見てもrand(1..10)に関連した話だ。
このユーティリティ関数を
Rengeのサブクラスに定義するのはまるで意味が無い。
モジュール関数にした方がマシ。
0206デフォルトの名無しさん
2006/03/11(土) 14:26:42http://www.cbook24.com/bm_detail.asp?sku=4274066428
2006/03/24
0207デフォルトの名無しさん
2006/03/11(土) 14:46:420208199
2006/03/11(土) 14:56:55すまん。posix 1003.2でぐぐって一番上のページ(英語)のページを
見たんだけど、ここ以外のページも見るとpunctが入っているのばかり
だったから、このページが間違っているのだと思う。
0209デフォルトの名無しさん
2006/03/11(土) 16:27:10まともな本を1冊欲しいと思ってたんだが、Rails 本を買ったばっかなんだよなぁ。
しかも、ライブラリ編もあるのか……ぐへぇ。
0210デフォルトの名無しさん
2006/03/11(土) 16:34:390211デフォルトの名無しさん
2006/03/11(土) 23:58:01初版は持ってるが、標準ライブラリが1.6 -> 1.8で大量に増えたから
まとまった日本語の説明欲しかったんだよな
0212デフォルトの名無しさん
2006/03/12(日) 03:35:270213デフォルトの名無しさん
2006/03/12(日) 04:48:46raaにはないみたいだし・・・
0214デフォルトの名無しさん
2006/03/12(日) 07:45:10だよね。1版持ってればなんとか読めるキガス。
1版日本語版は印象わるいんだよね。誤植が多い気がするし、
索引の作り方も気に入らない。なんてったってDavidがデビッ「ト」に
なってたのが笑った。ピアソンの中の人仕事雑過ぎ。
0215デフォルトの名無しさん
2006/03/12(日) 16:18:54WikiEngineがいくつかあるのと
有名どころでRuby on railsがあるのと
後一つ、どこかにCMSが置いてあったような…ダメだ思いだせない
↑とは関係ないけど、Googleで探してたらこんなライブラリ発見
ttp://vce.ce-lab.net/ja/fasthtmltmpl.html
eRubyに拒否反応を覚えてしまう自分は、非常に便利そうだと感じた
誰か使ってみた人いる?
0216デフォルトの名無しさん
2006/03/12(日) 17:46:41title irb %1 %2 %3 %4 %5 %6 %7 %8 %9
と入れとくとタスクバーの表示がC:\Windows...から
irbに変わって識別しやすくなる。
0217デフォルトの名無しさん
2006/03/12(日) 17:47:260218117
2006/03/12(日) 23:36:39ttp://d.hatena.ne.jp/rubyco/about
0219デフォルトの名無しさん
2006/03/13(月) 00:15:250220デフォルトの名無しさん
2006/03/13(月) 00:21:340221デフォルトの名無しさん
2006/03/13(月) 01:08:57だれか教えて。
0222デフォルトの名無しさん
2006/03/13(月) 01:13:00one.rbの呼び出したtwo.rb
one.rb自身
ruby知らないが、たぶんこんな理由だろうな
0223デフォルトの名無しさん
2006/03/13(月) 01:28:17$LOADED_FEATURES
0224デフォルトの名無しさん
2006/03/13(月) 01:35:37こういうの見ると、Rubyが言語設計がよいといわれるのが納得できるなぁ
0225デフォルトの名無しさん
2006/03/13(月) 01:45:29もっとブロックを使ってないとRuby-Wayとはいえない!
0226デフォルトの名無しさん
2006/03/13(月) 01:53:400227デフォルトの名無しさん
2006/03/13(月) 15:28:02現状に問題があるってこと?
0228デフォルトの名無しさん
2006/03/13(月) 15:36:04パス区切り文字なグローバル変数導入してくれ。
0229デフォルトの名無しさん
2006/03/13(月) 17:46:14そのまままた文字列を処理するなんかに食わせると問題になりかねん。
taintを応用して、プログラム外から来たデータにビットを立て、
それを内部でパス名等として使用するときには
自動的に'\\'->'/'がかかるようにするというアイデアを思い付いた。
taintビットはセキュリティにしか使われてないが、応用すれば
こういう自動サニタイズみたいなことの実現にも使えるんじゃないか。
最近の流行的には、タグ?
0230デフォルトの名無しさん
2006/03/13(月) 20:52:21RAAでも探したんだけど見つからないし
yaml4rはダウンロードできないみたいだし
0231デフォルトの名無しさん
2006/03/13(月) 21:23:45>そのまままた文字列を処理するなんかに食わせると問題になりかねん。
文字コードなんかは対応しているのにWindowsのパスに関してはなぜか
問題になる可能性を問題にする不思議。
そして文句あるならお前がやれでいつものように終了。
そしてRubyはWindowsで全く流行らず。
0232デフォルトの名無しさん
2006/03/13(月) 23:15:280233デフォルトの名無しさん
2006/03/13(月) 23:19:400234デフォルトの名無しさん
2006/03/13(月) 23:19:500235デフォルトの名無しさん
2006/03/14(火) 00:15:11よく知らないが、File.join って OS によって変わらないの?
変数くらいなら、自分で放り込めば良い気がするけど。
しかも、文字コード云々の言い分が良く分からん。>>229 の方が説得力あるんだが。
C# は、パスは @"..." で明示的に区別していた気がする。
Windows オンリーの人は釈然としないのかな。
0236デフォルトの名無しさん
2006/03/14(火) 00:15:23そのまま使えるし、File::ALT_SEPARATORってのもあるんだが。
0237デフォルトの名無しさん
2006/03/14(火) 00:20:15以前、このスレあたりで Object にタグを(ry とネタを振った記憶が。
最近、誰かの blog でも見掛けたような。
0238デフォルトの名無しさん
2006/03/14(火) 13:05:19Linuxで使う場合ARGVや``, system call, putsの前後に
必ず@<=>/の変換入れましょうとか言われたらぶちきれる罠。
0239デフォルトの名無しさん
2006/03/14(火) 13:12:19具体的にはどんなものを言っているんだろう?
http://jp.rubyist.net/magazine/?0008-Hotlinks-3
0240デフォルトの名無しさん
2006/03/14(火) 13:28:230241デフォルトの名無しさん
2006/03/14(火) 14:40:59その話は無いものねだりだと思うけどね。パッと思い付いたのは、
ruby_path = %path|usr bin ruby|
とかだけど、これだと空白の扱いとかが疑問だし。
そもそも、表記の長さを気にするなら Pathname じゃなくて Path にしろよ、
とか思うんだけどw
コンストラクタで配列を取れるようにするだけで大分違うと思うんだけどね。
ruby_path = Pathname.new %w(usr bin ruby);
0242デフォルトの名無しさん
2006/03/14(火) 16:28:00というパターンマッチングを行うと暴走するんだけどバグかな。
普通に使っていてこれを踏むことはないとは思うけど。
0243デフォルトの名無しさん
2006/03/14(火) 17:40:57Perl では同じ正規表現が使えた。当然結果は偽だったけど。
先読みや否定先読みは本来の使い方からすると、後に quantifiers が来ると
エラーにするべきだと思うんだけど、なんでそうなってないんだろう。
Perl にしても Ruby にしても。
0244デフォルトの名無しさん
2006/03/14(火) 18:02:51いきなり hash[:foo] = bar できるようにならないかなぁ
0245デフォルトの名無しさん
2006/03/14(火) 18:34:39鬼車だとエラーになるね。
% ruby -e "'a' =~ /a(?!=b)*?c/"
-e:1: target of repeat operator is invalid: /a(?!=b)*?c/
0246デフォルトの名無しさん
2006/03/14(火) 18:45:15%<文字>(...) の解釈器をRubyで書けるようにすればいいと思うんだよね。
そうすればRubyでDSLを作るのにも便利がいいと思う。
ただし今のように全部まとめてパースしてから処理というわけにはいかなくなるが。
0247デフォルトの名無しさん
2006/03/14(火) 19:03:11俺もそれができると良いと思うんだが、
他人に読めなくなってしまうのが難点なのと、
<文字> が競合した場合にえらいことになりそうなのでダメだと思った。
0248デフォルトの名無しさん
2006/03/14(火) 20:35:53カレントファイルの以後の処理のみに適用、もしくはKernel#loadの
オプショナル引数として渡すようにする等が考えられるね。
0249デフォルトの名無しさん
2006/03/14(火) 21:53:20> 扱いをファイル単位にして、カレントファイルの以後の処理のみに適用
パーサの中で評価期を呼べるようにしなけりゃならないので、
まずそういうシンタックスを考える必要がある。
> Kernel#loadのオプショナル引数として渡すようにする
こっちは意味がよくわからん。
0250デフォルトの名無しさん
2006/03/14(火) 23:01:460251デフォルトの名無しさん
2006/03/14(火) 23:04:47[] というメソッドは Hash 以外にも存在するので、
Hash だけ特別扱いしすぎるのもねえ。
hash = {
:foo => :bar,
}
くらいで我慢しといて。
0252デフォルトの名無しさん
2006/03/15(水) 03:56:15(hash ||= Hash.new)[:foo] = :bar # Hash.newは{}でもよい
p hash
0253デフォルトの名無しさん
2006/03/15(水) 08:31:35しかも ||= である必要性がないし。
(hash = {})[:foo] = :bar
0254デフォルトの名無しさん
2006/03/15(水) 08:59:040255デフォルトの名無しさん
2006/03/15(水) 09:15:17(´Д`;)ヾ ヨロシクオネガイシマス
∨)
((
(;´Д`) ホントニオネガイシマス
( 八)
〉 〉
ヾ
(´Д`;)、 コノトオリデス
ノノZ乙
例のブロックパラメータのバグと実行速度の高速化だけに注力してください・・・
0256デフォルトの名無しさん
2006/03/15(水) 09:25:15あほ
0257デフォルトの名無しさん
2006/03/15(水) 09:55:58例のブロックパラメータの「バグ」ってシンタックス変えずに解決可能なんだっけ?
0258デフォルトの名無しさん
2006/03/15(水) 09:59:35汚いコードって意味じゃ>>252も同じじゃない?
0259デフォルトの名無しさん
2006/03/15(水) 10:11:23正しく動作するが、>>253は有無を言わさずhashに{}を代入して初期化している。
それをやりたいなら
hash = {:foo => :bar}
で良いわけだし。
あとhashという変数名も良くないね。hash ||= {} というのが思ったとおりに動くのは、
rubyが賢いからなんだろうけど。
0260デフォルトの名無しさん
2006/03/15(水) 10:24:400261デフォルトの名無しさん
2006/03/15(水) 10:25:150262デフォルトの名無しさん
2006/03/15(水) 10:41:59それなら (hash ||= {})[:foo] = :bar でもいい話だし、
このケースで ||= を使うなら、その例だって hash ||= {:foo => :bar} にするべきじゃね?
0263デフォルトの名無しさん
2006/03/15(水) 10:54:13読解力ゼロ?
0264デフォルトの名無しさん
2006/03/15(水) 10:55:460265デフォルトの名無しさん
2006/03/15(水) 10:57:470266デフォルトの名無しさん
2006/03/15(水) 11:52:22> >>252のコードは hash に既にHashオブジェクトが代入されていてもされていなくても
> 正しく動作するが、>>253は有無を言わさずhashに{}を代入して初期化している。
ここに対する反論なんだけど
> それをやりたいなら
> hash = {:foo => :bar}
> で良いわけだし。
ここは同意するよ
俺も>>244みたいな機能はいらんと思ってる
0267デフォルトの名無しさん
2006/03/15(水) 11:57:520268デフォルトの名無しさん
2006/03/15(水) 11:59:540269デフォルトの名無しさん
2006/03/15(水) 12:08:56で、そういう柔軟性に嵌って、自分で自分の首を絞めることになるけどね。
0271デフォルトの名無しさん
2006/03/15(水) 12:29:24これがGCされないのはちょい困るのだが。
仕様だろうか…?
再現コード@mswin32 1.8.4
#!ruby
Object.new();
#nil; #<-これを追加するとGCされる(nilである必要はなく、どんな式でもいい)
GC.start();
ObjectSpace.each_object{|o|
p o; # => <#Object:...>があることを確認。
}
__END__
0272デフォルトの名無しさん
2006/03/15(水) 12:43:35Cから見るとどんなロジックのGCの実装が適切なの?
0273273
2006/03/15(水) 12:47:24いや、ロジック云々は関係ない。
GCされるはずのものがGCされないってまずくない?って話。
具体例がほしいなら、たとえばmod_rubyのような常駐アプリとかでね。
0274272
2006/03/15(水) 12:50:38で、別にGCされなくてもまずくないと思うよ。なぜまずいの?
0275デフォルトの名無しさん
2006/03/15(水) 12:52:310276デフォルトの名無しさん
2006/03/15(水) 13:16:45それならそれでしょうがない。諦めるよ。
>>274
よりよいGCアルゴリズムが何かなんて一般人が答えられると思うか?
>>275
これが保守的GCの意味なんね。よくわかったよ。
0277272
2006/03/15(水) 13:41:37初心者スレじゃなくてここでGCについていちゃもんつけてるんだから、
当然GCのアルゴリズムをわかった上でをしてるのかと思ったよ。
0278デフォルトの名無しさん
2006/03/15(水) 13:48:45「これがGCされないのはちょい困るのだが。」と書いてる時点で
どう見ても初心者だろ。
0279デフォルトの名無しさん
2006/03/15(水) 13:56:32GCとオブジェクトが所持してるリソースの解放(ファイルIOとかね)をごっちゃにしてる人じゃないのかなと思った。
オブジェクトの記憶域の始末を付けるのがGCであってそれ以外の資源はちゃんと自分で後始末を付ける物だと言うことを
自覚しないといけないのだけど、そういう事って入門書じゃかかれてないんだよね。
0280デフォルトの名無しさん
2006/03/15(水) 13:57:49GC のコードくらい見てるんだよなー、と思った。
0281デフォルトの名無しさん
2006/03/15(水) 13:58:140282デフォルトの名無しさん
2006/03/15(水) 13:59:56そうかなぁ?
元の書き方が知識人な人だからもっと高尚なオハナシかと思って皆期待したのに裏切られただけなんとちゃうのん?
0283デフォルトの名無しさん
2006/03/15(水) 14:02:40辛く当たりたくなるのが心情ってもんじゃなかろうか。
0284271
2006/03/15(水) 14:27:01そりゃ書き方がまずかった。単に拡張ライブラリを作るレベルで、という話のつもりだった。
というか、別にCレベルのコードの話は出してないだろ。
サンプルコードだって100% pure rubyなのに。
というか、本気で諸兄らは>>271のコードに違和感無いのか??
これが開放されないのに違和感を感じるのは俺様ルールの決めつけなのか…。
0285デフォルトの名無しさん
2006/03/15(水) 14:30:36そもそも GC って何か知ってるのか?
0286デフォルトの名無しさん
2006/03/15(水) 14:31:01ついでに incremental & generational GC にしてくださいな。
0287デフォルトの名無しさん
2006/03/15(水) 14:33:33100% pure ruby のサンプルコード出しといて、何がどう「ちょい困る」んだよ?
0288デフォルトの名無しさん
2006/03/15(水) 14:33:49あのコードで問題になるようなオブジェクトにどのような物を想定してるのですか?
0289デフォルトの名無しさん
2006/03/15(水) 14:36:44http://d.hatena.ne.jp/rubyco/20060304/objectspace
0290271
2006/03/15(水) 14:37:01「使わなくなったアクセス不能なリソースを開放する機能」だと思ってたが、その口ぶりじゃどうも違うらしいね。
せっかくだから、GCとはなんなのか後学の為に教えてもらえると嬉しい。
0291271
2006/03/15(水) 14:44:16同じ現象だね。
俺の認識が異常なのかと思い始めていたところだが、そうでもないらしい。
>>287-288
Data_Wrap_Structに指定するfree()でリソースを開放するつもりが、思ったように呼ばれなかった。
それで調べてみたらRubyレベルでも再現することがわかった。
そして再現コードを最小にまとめて書き込み、という流れ。
これで満足?
0292デフォルトの名無しさん
2006/03/15(水) 14:58:03つ ttp://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
で、君の定義に従って話をすれば、
p o で出てくる <#Object:...> はなんで『アクセス不能』なの? 俺様ルール?
単に >>271 が『使わなくなった』だけでしょ?
0294デフォルトの名無しさん
2006/03/15(水) 15:41:32そのような動作を期待しているのならば、使うのは GC.start ではありません。
GC.always(仮称)を用いなければなりません。(実装されていませんが)
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/27991
これも使わなくなったら直ちに回収、ではありませんけれどね。
参考までに
「平均的にLが小さいユーザプログラムでは手動freeよりも GCの方が効率的になる場合があると言える」
http://www.is.s.u-tokyo.ac.jp/~vu/jugyo/processor/process/soft/compilerresume/gc/gc.html
とりあえず、GCについてもう少し調べてから見直すとよろしいかと。
0295デフォルトの名無しさん
2006/03/15(水) 15:50:26GC::always は名前が変わって (GC::stress) 実装されたんじゃなかったっけ?
0296デフォルトの名無しさん
2006/03/15(水) 18:41:41nilを付けようが付けまいが、生成したObjectは
GCされる可能性があるんじゃないか、と思ったんだけど……
(どこからも参照されていないはずだから)
GCに関する理解のある方、解説をお願いします
0297デフォルトの名無しさん
2006/03/15(水) 18:49:520298デフォルトの名無しさん
2006/03/15(水) 19:32:20・>>271の主張
「GC.start では、GCの対象になる全てのオブジェクトは解放されるべきではないか。」
・それに対する解答
「Ruby は GC のアルゴリズムとして conservative GC を採用している。
アルゴリズムの特性上、解放されないオブジェクトがあるのは当然だ。」
・>>271の属性
ドジッ子・いじっぱり
ちなみに GC.stress は、「GCされるかもしれないタイミングでは、
常に GC の動作が始まる(通常はメモリに余裕があれば行なわない時もある)」
という話で、今回の件とは関係ないと思う。
0299デフォルトの名無しさん
2006/03/15(水) 19:34:03だから「直前に評価した式の結果」を持つレジスタが内部的にはあると
考えられる。
そう考えれば271は別におかしくないのでは。
0300デフォルトの名無しさん
2006/03/15(水) 20:30:13GC.stressという案が出ているのは出したメールのスレッドにありますがー、
実装されていたんですね、知りませんでした。
http://www.ruby-lang.org/ja/man/?cmd=view;name=GC
フォロー有難うございます。
>>298
確かにそうですね、ruby1.9でGC.stress=trueとしても回収されませんでした。
というか、ruby 1.8.4で、nilの行を加えても回収されないような?
#時と場合によるはずですけれど
>>299
GC.startの戻り値がありますから、その時点で「直前に評価した式」じゃなくなっていると思うのですが。
0301デフォルトの名無しさん
2006/03/15(水) 20:56:30GC.start の戻り値は GC.start が実行された後で返るんだから
関係ないのでは。
0302デフォルトの名無しさん
2006/03/15(水) 21:07:380303デフォルトの名無しさん
2006/03/15(水) 21:31:350304デフォルトの名無しさん
2006/03/15(水) 22:09:150305デフォルトの名無しさん
2006/03/15(水) 23:17:27制御構造なんかも最後の式の結果が戻り値になるからそれかもな
0306デフォルトの名無しさん
2006/03/16(木) 00:32:260307デフォルトの名無しさん
2006/03/16(木) 01:15:050308デフォルトの名無しさん
2006/03/16(木) 01:23:420309デフォルトの名無しさん
2006/03/16(木) 01:35:53早い遅いというか、そもそもRuby2.0はいつ出るか決まってるんだっけ?
0310デフォルトの名無しさん
2006/03/16(木) 01:41:49CPUのレジスタも見るよ。そんなことも知らないの?
0311デフォルトの名無しさん
2006/03/16(木) 01:47:380313デフォルトの名無しさん
2006/03/16(木) 01:55:04未踏の発表会も終わったし、今年中でしょ
0314デフォルトの名無しさん
2006/03/16(木) 02:50:50http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/41733
というか、出るのか? (汗
0315デフォルトの名無しさん
2006/03/16(木) 03:37:500316デフォルトの名無しさん
2006/03/16(木) 13:28:11「年三回しかリリースされない」と考えるんだ。
0317デフォルトの名無しさん
2006/03/16(木) 13:38:440318デフォルトの名無しさん
2006/03/16(木) 15:24:23というわけで、1.8.5は8月です。
まぁ、今のrubyのリソースだと年2回が妥当でしょうねぇ。
0319デフォルトの名無しさん
2006/03/16(木) 20:22:230320デフォルトの名無しさん
2006/03/16(木) 20:30:00Javaだって運用するなら定期的な再起動が必須だし。
0321デフォルトの名無しさん
2006/03/16(木) 20:33:320322デフォルトの名無しさん
2006/03/16(木) 20:38:590323デフォルトの名無しさん
2006/03/16(木) 20:42:450324デフォルトの名無しさん
2006/03/16(木) 20:54:07大規模な変更がなくてもリリースって結構負担になるもんなのかな。
0325デフォルトの名無しさん
2006/03/16(木) 21:00:070326デフォルトの名無しさん
2006/03/16(木) 21:33:25ほう。興味深い話だ。ではどこにデータを持つようにすれば良いのか
教えてくだされ。
0327デフォルトの名無しさん
2006/03/16(木) 22:23:570328デフォルトの名無しさん
2006/03/16(木) 22:25:58フラットメモリ一杯もらって結局自分でチョン切ってヒープになるに1カノッサ(w
0329325
2006/03/17(金) 03:57:52・全部スタックに積む
・アドレスを求められたらいちいち先頭から数え直す
・値を変更されたら最後尾のアドレスに積み直す
・使わなくなったメモリはそのまま放置
とかかな?
ハードウェアが無限に性能向上したら、可能になるよ
0330デフォルトの名無しさん
2006/03/17(金) 05:02:300331デフォルトの名無しさん
2006/03/17(金) 05:03:140332デフォルトの名無しさん
2006/03/17(金) 10:42:340333デフォルトの名無しさん
2006/03/17(金) 14:31:350334デフォルトの名無しさん
2006/03/17(金) 15:21:110335デフォルトの名無しさん
2006/03/17(金) 15:28:56とりあえず、お前の頭をオープンソース化しる!
0336デフォルトの名無しさん
2006/03/17(金) 15:44:49ゲロ吐いてない?
0337デフォルトの名無しさん
2006/03/17(金) 15:46:23core dumped?
0338デフォルトの名無しさん
2006/03/17(金) 19:46:21>#!ruby
>Object.new();
>#nil; #<-これを追加するとGCされる(nilである必要はなく、どんな式でもいい)
>
>GC.start();
>ObjectSpace.each_object{|o|
>p o; # => <#Object:...>があることを確認。
>}
このコードを試してみましたが、3行目のnilあるなしにかかわらず、<#Object:...>が残りました(Linux2.6, Ruby1.8.4)。Windowsでは試してません。
このコードだけを見ると確かにGCで回収されてもおかしくないように見えます。たぶん直前に実行した式の値をRuby内部で保持しているせいだと思うんですが、
確信はないのでここじゃなくてメーリングリストで聞いてみることをおすすめします。
保守的GC(conservative GC)がどうのこうのという意見もありますが、今回はたぶん関係ないでしょう。
たしかに保守的GCではすべての未参照オブジェクトが回収されるという保証はないですが、>>271 の場合はnilがある場合はきちんと回収されているそうなので、今回の件についてはGCが保守的であることは関係ないと思われます。
つーか、どうみてもGCのアルゴリズムとは関係ない話でしょ。だれだよ、そんな話にもっていったやつは。
なんか271につらくあたってる書き込みがおおいですが、的外れな回答はきにせずスルーしてください。ごめんね>271
0339デフォルトの名無しさん
2006/03/17(金) 21:14:20>保守的GC(conservative GC)がどうのこうのという意見もありますが、今回はたぶん関係ないでしょう。
根拠は?
0340デフォルトの名無しさん
2006/03/17(金) 21:19:58まあ、webrickを一ヶ月立ち上げっぱなしで動かすとかいうんなら話は別だけどね。
0341デフォルトの名無しさん
2006/03/17(金) 21:23:350342デフォルトの名無しさん
2006/03/17(金) 21:39:17http://www.namikilab.tuat.ac.jp/~sasada/diary/200603.html#d15
0343デフォルトの名無しさん
2006/03/17(金) 22:00:230344デフォルトの名無しさん
2006/03/17(金) 22:31:330345デフォルトの名無しさん
2006/03/17(金) 23:20:22コードを見ないとなんともいえない
0346デフォルトの名無しさん
2006/03/17(金) 23:53:590347デフォルトの名無しさん
2006/03/18(土) 00:18:49バグっつーか寄生虫に脳を喰われたって事かも
>>346
これでいいの?
0350デフォルトの名無しさん
2006/03/18(土) 11:00:43たまにコマンドカスタマイズできると便利だと思ったり思わなかったり。
0351デフォルトの名無しさん
2006/03/18(土) 12:15:14どうみても保守的なGCにありがちな挙動だと思うが、
何を根拠に「関係無いと思われます」なんていってんの?
「オブジェクトがGCされない」という話が
なぜ「GCのアルゴリズムとは関係無い話」と思うの?
「なんとなく」とか「直感で」とか言ったり、そもそも答えなかったら低脳すぎんぞ。
0352デフォルトの名無しさん
2006/03/18(土) 12:19:090353デフォルトの名無しさん
2006/03/18(土) 12:28:050354デフォルトの名無しさん
2006/03/18(土) 12:40:17平素の言動や文章と匿名投稿との比較とおもいたまへ
0355デフォルトの名無しさん
2006/03/18(土) 12:46:21普段の言動と違うのは当たり前だろ。
お前は同じなのかよ?
お前平素の言動や文章に「おもいたまへ」とかいってんの?キモスギ
0356デフォルトの名無しさん
2006/03/18(土) 12:51:08あふぉですか?
0357デフォルトの名無しさん
2006/03/18(土) 12:51:120358デフォルトの名無しさん
2006/03/18(土) 12:53:15どうみても保守的関係ありません。
直前の式の値を記憶していれば不思議でもなんでもありません。
保守的なGCにありがちな挙動ならstrictなGCで起こらないことを示さねばなりません。
0359デフォルトの名無しさん
2006/03/18(土) 13:03:540360デフォルトの名無しさん
2006/03/18(土) 13:11:55>直前の式の値を記憶していれば不思議でもなんでもありません。
はぁ?あふぉですか?
直前の式の値は記憶されませんが。
どうみても保守的GCのせいです。
0361デフォルトの名無しさん
2006/03/18(土) 13:15:410362デフォルトの名無しさん
2006/03/18(土) 15:14:26conservative GCの"conservative"が指す意味わかってないだろ。
0363デフォルトの名無しさん
2006/03/18(土) 15:16:350364デフォルトの名無しさん
2006/03/18(土) 15:26:38俺の理解している定義ではRubyが値を保持している以上
conservativeかどうかは関係ない。Rubyが保持していることはソースで確認済。
(厳密に言うとRubyの内部コード上での直前の値なので必ずしも
字面のそれとは一致しないが、この場合は同じ)
0365デフォルトの名無しさん
2006/03/18(土) 15:33:140366デフォルトの名無しさん
2006/03/18(土) 15:44:51であることの説明をどうぞ。
これがどこかなんてRubyに限らずインタプリタを読める人なら
すぐに当たる場所だから、場所を明示しなくても真偽は判定できる。
心配しなくても、読めない君のためにその後で場所は示してあげるよ。
0367デフォルトの名無しさん
2006/03/18(土) 16:06:15意味が分かってる?
じゃあ説明してみ。
0368デフォルトの名無しさん
2006/03/18(土) 16:09:00/ヽ /ヽ
/ ヽ / ヽ
______ /U ヽ___/ ヽ
| ____ / U :::::::::::U:\
| | // ___ \ ::::::::::::::|
| | | | | U :::::::::::::|
| | .|U | | ::::::U::::|
| | | ├―-┤ U.....:::::::::::::::::::/
| |____ ヽ .....:::::::::::::::::::::::<
└___/ ̄ ̄ :::::::::::::::::::::::::|
|\ | :::::::::::::::::::::::|
\ \ \___ ::::::
0369デフォルトの名無しさん
2006/03/18(土) 16:10:21参照しないでください。
そのうちガーベジコレクションされます。
0370デフォルトの名無しさん
2006/03/18(土) 16:12:27上手すぎ、笑わせてもらった!
0371デフォルトの名無しさん
2006/03/18(土) 17:18:19自説の根拠の提示を相手に求めるのですか?
貴方の主張は271の理由がGCがconservativeであるためであるというものであり、
当方の主張はそうではない、言いかえれば271はconservativeでないGCにおいても
起きるというものです。
従って当方の主張はconservative GC固有の性質に依存しておらず、conservative GC
の定義を当方が示さずとも、或いは仮に当方が理解していなくとも論旨の構成に
問題はありません。一方、貴方の主張はGCがconservativeであるということの意味、
conservative GC特有の性質の説明抜きには成立し得ません。
ここまで言えば、どちらが説明すべきかは普通は理解できると思うのですが?
0372デフォルトの名無しさん
2006/03/18(土) 18:00:36Garbage Collection (GC)について語るスレ
http://pc8.2ch.net/test/read.cgi/tech/1141646850/
---------------終冬------------------------------
0373デフォルトの名無しさん
2006/03/18(土) 18:09:56終わる前にこれキボンヌ
0374デフォルトの名無しさん
2006/03/18(土) 19:03:02はいはい。結局conservativeGCが何か理解できてないし、ソースの位置も示せないんだね。
よかったよかった。
0375http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 19:43:30もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
0376デフォルトの名無しさん
2006/03/18(土) 19:49:46http://pc8.2ch.net/test/read.cgi/tech/1130680264/957
スレ違い。
あとマルチ死ね。
0377デフォルトの名無しさん
2006/03/18(土) 19:52:10>>375は上位スレ全部に投下してるみたいだね。
【Java】NetBeans【Sun】
http://pc8.2ch.net/test/read.cgi/tech/1132079321/576
こんなとこにも投下してて笑った。
0378デフォルトの名無しさん
2006/03/18(土) 20:08:41「`自説の'conservative GC」説明すれば済む話じゃんね。
>>372
春だよね、もう
0379デフォルトの名無しさん
2006/03/18(土) 20:55:41春だから、お前が2chにいるわけで
0380デフォルトの名無しさん
2006/03/18(土) 20:57:300381デフォルトの名無しさん
2006/03/18(土) 21:01:170382デフォルトの名無しさん
2006/03/18(土) 21:03:57>このコードを試してみましたが、3行目のnilあるなしにかかわらず、<#Object:...>が残りました(Linux2.6, Ruby1.8.4)。Windowsでは試してません。
直前の値を記憶しているんなら、nilあるなしで<#Object:..>は残るか消えるか変わるだろバカ(わらい)
0383デフォルトの名無しさん
2006/03/18(土) 23:38:05コンサバGCなら全く持って不思議じゃねぇじゃん。
0384デフォルトの名無しさん
2006/03/19(日) 01:28:27ID 無い上に、参照されまくりで、もう何が何だか分からねぇw
とりあえず、まだ回収されてないよね?
0385デフォルトの名無しさん
2006/03/19(日) 04:53:10件の例だと ObjectSpace からは参照されてるようだけど、
これは「言語的に参照不可な場所」じゃないよね?
そのへんがいまいちわからない。
0386デフォルトの名無しさん
2006/03/19(日) 07:08:08そうしたいのは山々ですが先に、で示した条件を満たしてくれる方がいないので
今のところご希望に添えず残念です。とりあえずファイル名だけ示しておきます:
eval.c
>>378
371で述べた通り、私の主張にconservative GCの説明は必要ではないですから。
>>382
371で忠告申しあげた通り、保守的GCの定義が抜けていますから、それで説明
オワリとしてしまうと主張は成立しませんよ。
ちなみに
> 直前の値を記憶しているんなら、nilあるなしで<#Object:..>は残るか消えるか変わる
とは限りませんよ。338の内容からはRubyが直前の値を記憶しているという主張は
なんら否定されません。
>>383
「言語的には」の指すところが不明確です。また383の定義を言葉通り適用すると、
循環参照のあるオブジェクト群は永遠に回収できませんね。再提出してください。
0387271
2006/03/19(日) 08:57:27>>385
ObjectSpace.each_objectは「存在する全てのオブジェクト」にアクセスできる。
これに例外はなく、次にGCされるはずの参照できないオブジェクトにも参照できる。
試しにGC.start前と後でオブジェクトの数を数えてみれば分かる(ただし数えるだけ。pやputsは文字列を生成するのでこの試みには不適)
にしてもちょっと前にも同じこと主張してたやつがいるな。
なんでRubyの仕様すら分かってないヤツにまで叩かれなきゃならんのだ。
0388271
2006/03/19(日) 09:11:33>いや,Ruby以外は全然知らないから嘘かもしれないけど.
Perlの拡張書いたことあるけど、Rubyの方が圧倒的に書きやすいと思う。
メモリマネージメントだけじゃなく、funcallとかもうね。Perlのサブルーチン呼び出すためにいちいち引数をスタックに押し込んで…とかやってらんない。
argcとargvだけ用意すればいいのはすごく楽だ。
ただ、Rubyは拡張ライブラリ用のユーティリティが圧倒的に不足してるね。
rb_str_newf(fmt, ...)とか、rb_str_catf(str, fmt, ...)とか、
rb_protectn(func, argc, ...)とかほしいと思った。
0389デフォルトの名無しさん
2006/03/19(日) 11:40:19>>378 は >>367 宛てのつもりだったんだが、既に俺には状況把握できてないのかも。
誰か、一旦、状況整理するか blog で纏めてくれ ('A`)
とりあえず WBC 観ようぜ、みんな。
0390デフォルトの名無しさん
2006/03/19(日) 12:33:32>371で忠告申しあげた通り、保守的GCの定義が抜けていますから、それで説明
>オワリとしてしまうと主張は成立しませんよ。
保守的GCでググれ。それが定義だアホ。
>> 直前の値を記憶しているんなら、nilあるなしで<#Object:..>は残るか消えるか変わる
>とは限りませんよ。338の内容からはRubyが直前の値を記憶しているという主張は
>なんら否定されません。
はぁ?オマエ頭大丈夫か?
お前の主張は、
「保守的GCが一切関係ない、直前の値が記憶されているから消えない」
だろうが。
直前の値がnilで上書きされてんのに、お前の環境では消えなかった。
で、271の環境では消えた。
なぜお前の環境で消えなかった?保守的GCが関係してるからだろうが。
この現象を保守的GCとまったく関係無い、とかアホほざいてるヤツが
逆に「コンサバGCって何かわかってる?」とか寝言言ってんだぜ。
死ねよと。
0391デフォルトの名無しさん
2006/03/19(日) 12:40:24「まったく関係ない」と主張してるバカは、理解できていない。
よって、「保守的GCの説明」、というか「保守的GCのお勉強」をしないといけないのは、
まったく関係無いとほざいてるアホのほうです。
0392デフォルトの名無しさん
2006/03/19(日) 13:04:21「保守的GCだから」と言ってるじゃん。
俺らよか、かなりRubyの内部に詳しい人のはずがそう言ってる訳だ。
>>338の保守的GCは関係無いと主張してる方。
どうみても保守的GCの関係してる話です。
保守的GCの理解が足りないようです。勉強してくださいね。
0393デフォルトの名無しさん
2006/03/19(日) 13:07:180394デフォルトの名無しさん
2006/03/19(日) 13:11:20先進のGC実装によるRubyの刷新とかいう名目で、
また政府に食わせてもらえばよし
0395デフォルトの名無しさん
2006/03/19(日) 14:27:390396デフォルトの名無しさん
2006/03/19(日) 14:36:09同意。そーゆう議論なら開発MLでやれ。
ななしじゃなく、オープンに議論してくれんぞ
0397デフォルトの名無しさん
2006/03/19(日) 14:40:250398デフォルトの名無しさん
2006/03/19(日) 19:38:00いるなら、>>292,>>293に答えろよ。喪前が偉そうな発言するのはそれからだ。
0399271
2006/03/19(日) 20:43:52rb_protect()の任意個の引数を受け取るバージョン。
たとえばこんな風に:
rb_protect(rb_respond_to, &state 2/*argc*/, self, method)
現状、これをやるのってものすごくめんどくさくて。
あとついでに、rb_funcall_protect(self, method, &sate, argc, argv)もほしい。
これもめんどうだった。
0400デフォルトの名無しさん
2006/03/19(日) 20:47:260401デフォルトの名無しさん
2006/03/20(月) 14:50:43いくつかの Python ファイルを開き、GNOME.org 上にその一つを保存している Gedit
また新機能として Gedit のためのプラグインを Python で記述できるようになっています。
これによって強力なプログラマでなくとも Gedit の機能をを簡単に拡張、カスタマイズできます。
外部コマンドの実行、タグに基づいた補完のサポート、
そして対話的な Python コンソールといった便利ないくつかのプラグインが Gedit に含まれています。
http://www.gnome.org/start/2.14/notes/ja/figures/figure-gedit-mdi.png
http://www.gnome.org/start/2.14/notes/ja/rnusers.html
ま た 差 が つ い て し ま っ た な
0402デフォルトの名無しさん
2006/03/20(月) 14:55:350403デフォルトの名無しさん
2006/03/20(月) 16:25:420404デフォルトの名無しさん
2006/03/20(月) 16:50:330405デフォルトの名無しさん
2006/03/20(月) 16:59:51素直にelispで書けと言われそうだが。
0406デフォルトの名無しさん
2006/03/20(月) 17:01:12Rubyの組み込みだったかもしれないのにな。
0407デフォルトの名無しさん
2006/03/20(月) 17:06:48過去の互換性とかいらないから…
あとGUI使いやすくしてくれれば授業とかで使えそうだ
最近は、見栄えも大切だと思うようになった
漏れがスクリプト言語に望むものなんて、即時実行出来ることと
タイプ量と行数が少なければいいってことくらいだけど
一般にはそうはいかないらしい
0408デフォルトの名無しさん
2006/03/20(月) 17:19:25GUIはとりあえずWebブラウザでいいのではないか。
それなりに簡単に公開できるし。
0409デフォルトの名無しさん
2006/03/20(月) 19:15:47前にちょっと試したが、el4r は動かすところまで行かなかった。
作者の環境に依存しすぎだよ、るびきちタン。
無論、真面目に問題点を修正すれば動くだろうが、やってるうちに馬鹿らしくなってやめた。
Plamo 使ってるんだが、個人的には make じゃないのも痛かった。ゴミにしたままだ orz
あと、勝手に .emacs 弄られて嬉しいものなんだろうかねぇ。
0410デフォルトの名無しさん
2006/03/20(月) 19:23:43ActiveScriptRubyに対応できるような
技術協力するとかしたら面白そうだな。
0411デフォルトの名無しさん
2006/03/20(月) 20:08:58現に今でもActiveScriptRubyでマクロ書けるって
どこかで聞いたような希ガス
俺はWindowsMeだから試せないが
ところで皆、Rubyスクリプトを書くときにどんなエディタ使ってる?
俺は支援機能の便利さと見た目からJmEditorメイン、たまにVxEditor
以前はRDE使ってたんだけど不安定すぎて嫌になった
0412デフォルトの名無しさん
2006/03/20(月) 20:14:37エディタの話題は定期的に出るね
0413デフォルトの名無しさん
2006/03/20(月) 21:03:30>どこかで聞いたような希ガス
VBSからASRスクリプト呼び出して実行することが可能ってだけ。
それを対応しているとは言いがたいな。
0414デフォルトの名無しさん
2006/03/20(月) 23:45:25外部ソフト持ち込み禁止なのに
何故かこれは入っていた。
古いバージョンではあったがメモ帳じゃなくてホッとしたよ。
0415デフォルトの名無しさん
2006/03/21(火) 01:16:28そういやそのサクラエディタもWSHでマクロ書けるからASR使えるね。
ついでに編集中のファイルのディレクトリでコマンドプロンプト開く車輪を再生産してみたw
0416デフォルトの名無しさん
2006/03/21(火) 01:20:23それは失礼しました。
>>390
> 保守的GCでググれ。それが定義だアホ。
それでは答えたことになりませんから、いまだあなたの主張は成立してませんね。
> お前の主張は、
> 「保守的GCが一切関係ない、直前の値が記憶されているから消えない」
> だろうが。
「271の」と書いている通り、271のnilを入れない場合において、GC.start直前の
Object.newの返り値が、ですよ。
> 直前の値がnilで上書きされてんのに、お前の環境では消えなかった。
> で、271の環境では消えた。
> なぜお前の環境で消えなかった?保守的GCが関係してるからだろうが。
そんなこと問題にしていませんが。371などで述べている通り、私の主張は
「271でnilを入れる・入れないで消える・消えないが変化するのは」
conservative GCゆえにではなく直前の値が保持されているから、です。
271でnilを入れた場合と338を対比してどうの、などとは言っていません。
当初から直前の値の保持の有無を問題にしているので、それと関係ない事柄を
問題に含めるわけがありません。そもそも338は私ではありませんし。
しかも、338は直前の値も消えた、というものではありませんから、
私の主張には全く関係ありません。
念のために書いておくと、この件に関する私の最初の投稿は>>299です。
「内部的な」レジスタと書いてあるのは、Ruby表面に現れない記憶(レジスタ
または変数)であって、CPUレジスタに限定したものではありません。
ま、インタプリタなんだからこんなことは言うまでもないですね。
0417デフォルトの名無しさん
2006/03/21(火) 01:28:13ささだ氏が、>>296の「>>271のコードを見て、nilを付けようが付けまいが、
生成したObjectはGCされる可能性があるんじゃないか」を肯定したのなら
それは氏の誤りです。
なぜなら既に述べているようにRubyの評価器は直前の式の値を記憶していて、
nilを付けない場合にGCがもしこれを回収するならば、それはGCのバグだからです。
GC.startも当然その評価器の中から(念の為に書くと非末尾呼び出しで)呼ばれ、
RubyのGCは現状stop-the-worldで回収までやってしまいますから。
YARVの実装はまた別かも知れませんけどね。例えばレシーバを得る際に入れ子
呼び出しによらないようになっていたら、「直前の値」がレシーバで上書きされる
だろうとかね。いずれにせよ、今はYARVの話はしていないので関係ないですけどね。
0418デフォルトの名無しさん
2006/03/21(火) 04:18:040419デフォルトの名無しさん
2006/03/21(火) 12:14:080420デフォルトの名無しさん
2006/03/21(火) 12:14:08http://www.cbook24.com/bm_detail.asp?sku=4274066428
0421デフォルトの名無しさん
2006/03/21(火) 12:46:12>>271はそこ(>>299)までの知識もないだろ。自称「一般人」なんだから。
0422デフォルトの名無しさん
2006/03/21(火) 18:07:39アホ。お前の主張も成立してないんだよ。
直前の値を保持してるという証拠を提出してない。さっさと出せよ低脳が。
0423デフォルトの名無しさん
2006/03/21(火) 18:57:15→「直前の式の値が記憶されるかされないか」
にかかわらず、他の要因によってGCされていない。
2. nilがあれば消える。
→「直前の式云々」が要因である可能性、
上の場合と同一の他の要因の可能性、
どちらもありうる。
1によって、「他の要因」が、何であれ存在することは確か。
「直前の式云々」の存在は、いまのところ確かではない。
「他の要因」が保守的GCであるという仮説があり、
これを採ると1と2の両方に説明がつく。
「直前の式の値が記憶される」という仮説があり、
これを採ると1のみ説明がつく。
0424デフォルトの名無しさん
2006/03/21(火) 18:59:44>「271でnilを入れる・入れないで消える・消えないが変化するのは」
>conservative GCゆえにではなく直前の値が保持されているから、です。
はぁ。じゃあもうそういうことでいいよ。
で
「338でnilを入れる・入れないで消える・消えないが変化しないのは」
conservative GCだから、ということでいいね。
0425デフォルトの名無しさん
2006/03/21(火) 18:59:53誤:
> 「直前の式の値が記憶される」という仮説があり、
> これを採ると1のみ説明がつく。
正:
「直前の式の値が記憶される」という仮説があり、
これを採ると2のみ説明がつく。
0426デフォルトの名無しさん
2006/03/21(火) 19:05:41相手を言い負かすのが目的なら2ch、特にIDのない板は不向きだよ
0427デフォルトの名無しさん
2006/03/21(火) 19:09:040428デフォルトの名無しさん
2006/03/21(火) 20:09:14そんなに自信があるなら、ML 逝けよってのは禿同だな。
0429デフォルトの名無しさん
2006/03/21(火) 20:45:070430デフォルトの名無しさん
2006/03/21(火) 21:27:41議論してるやつはソース読んで納得したらクソして寝ろと言いたい。
0431271
2006/03/21(火) 22:42:47俺?別に俺は逃げてないが。逃げる必要も無いし。
とりあえず、ささだ氏の「(問題が起きる可能性はあるが)そういうのはレアケースなので,あまり問題になっていない」というので一応納得したので引っ込んだだけ。
しかし結局仕組みはよく分からないな。
直前値の保存かと思ったら環境によっちゃ再現しないみたいだし、
conservative GC主張者からは「conservative GCだから。以上!」の一点張りで具体的な解説は一切なしだし。
0432デフォルトの名無しさん
2006/03/21(火) 22:47:180433デフォルトの名無しさん
2006/03/21(火) 22:58:22な ぜ グ グ ら な い !
0434デフォルトの名無しさん
2006/03/21(火) 23:09:44ttp://en.wikipedia.org/wiki/Garbage_collection_(computer_science)
も読んでないのかよ?さっさと、>>292,>>293に答えろ。
0435デフォルトの名無しさん
2006/03/22(水) 00:00:260436デフォルトの名無しさん
2006/03/22(水) 00:07:360437デフォルトの名無しさん
2006/03/22(水) 04:27:28議論の前提になる知識もないし、資料を提示しても読みもしない、理解もしない。
話にならんよ。
0438デフォルトの名無しさん
2006/03/22(水) 09:12:140439デフォルトの名無しさん
2006/03/22(水) 09:25:56UTF-8Nって認識精度が極端に低いのが困る…
UTF-8Nでソースを書いていると、先頭に日本語コメントを置いても
認識を誤ることがしばしば
(しかも使うエディタによって認識の可否が違ったりするし)
潔くSJISかEUCを使うべきなのだろうか
っていうかrubyでもBOM付きUTF-8を扱えるようにならないのだろうか?
0440デフォルトの名無しさん
2006/03/22(水) 10:05:34俺もそれに悩んでる。知らない間に文字化けしてて
動かなくなってるんだよな。
0441デフォルトの名無しさん
2006/03/22(水) 11:11:30でもだめダメなん?
0442デフォルトの名無しさん
2006/03/22(水) 11:12:220443デフォルトの名無しさん
2006/03/22(水) 13:48:28認識アルゴリズムにもよるけど、全角空白(U+3000)を入れると多少認識精度が上がるかと。
UTF-8 で \xE3\x80\x80 なので、Shift_JIS / EUC-JP と重ならないんで。
蛇足かもしれないけど、coding pragma を書いておくのも一つの方法。
「ソースコードのエンコーディング指定」のEmacs版が、
http://www.python.jp/Zope/articles/japanese/Python4Japanese-2
rubyでも1.9では入っているので、
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/16134
これを利用しつつ、使っているエディタの作者さんに対応を頼んでみると幸せになれるかも。
> っていうかrubyでもBOM付きUTF-8を扱えるようにならないのだろうか?
ruby インタプリタはBOM付きUTF-8も扱えるよ。
動かなくなるのはインタプリタを起動する前の段階、
#!行を解釈するシェル側の問題なので、rubyの問題ではないよ。
0444デフォルトの名無しさん
2006/03/23(木) 14:09:01Rubyだけが独立したカテゴリになってるな。
gccもperlもpythonもhaskellも同一カテゴリなのに。
その割には標準でoffになってるしわけわからん。
0445デフォルトの名無しさん
2006/03/23(木) 14:13:090446デフォルトの名無しさん
2006/03/23(木) 14:16:58隔離されてることに気付け。
0447デフォルトの名無しさん
2006/03/23(木) 14:20:070448デフォルトの名無しさん
2006/03/23(木) 14:58:000449デフォルトの名無しさん
2006/03/23(木) 15:58:56もう少しシンプルな自分用ruby make作ってるんだけど
こういうのって需要ある?
require 'rubymake'
include RubyMake
TARGETS['application.exe'] = Target.new(''application.exr'){
`exerb.exe -v 'application.exr`
}
TARGETS[''application.exr'] = Target.new('*.rb'){
`ruby.exe -r exerb/mkexr 'application.rb`
}
TARGETS['*.rb'] = Target.new
RubyMake.operate('application.exe')
0450449
2006/03/23(木) 16:00:340451デフォルトの名無しさん
2006/03/23(木) 16:32:000452デフォルトの名無しさん
2006/03/23(木) 16:36:52それなりに使い込んで至れり尽くせりな機能が揃っていて
なおかつドキュメントがちゃんとしてればあると思う。
0453デフォルトの名無しさん
2006/03/23(木) 17:31:530454デフォルトの名無しさん
2006/03/23(木) 18:41:10Proc#filename=, Proc#linenum= とかあるとうれしいんですけど。
0455デフォルトの名無しさん
2006/03/23(木) 18:49:40>>454
eval "proc { ... } ", filename, linenum
でできますね。
0456デフォルトの名無しさん
2006/03/23(木) 21:20:49無理に記述はrubyプログラムにしない方がいいような気がする。
rubyでパースして実行すればいいじゃん程度で十分。
Makefile形式も読めて、RDocっぽい記述程度をネタとしては考えている。
仕様が練り上がってないけどイメージとしてはこんな感じ。
#!/usr/local/bin/ruby-make
target = [test1.rb, test2.rb]
prefix = /usr/local/
all: target
test: exec(target, -test)
install: install(target, 'bin', {:own => 'root:wheel', :mode => 0755})
#!/usr/local/bin/ruby-make
:suffixes: .java, .class
target = test1
all: target + '.class'
exec("java", target)
run: target + '.class'
exec(appletviewer, target + '.html')
clean:
rm_rf('*' + '.class')
:suffixe: .java: .class:
exec("javac", "-deprecation", :depend:)
0457どないでしょう?
2006/03/24(金) 10:19:386.11 loadとrequireはどう違いますか
loadはRubyで書かれたソース(*.rb)のみロードします。
requireは*.oファイルもロードします。さらに一度 requireしたファイルは2度requireしてもロードしません。
ロードパスも違います。
↓
loadはRubyで書かれたソースのみロードします。ただし拡張子は自由に指定できます。
requireは*.soファイルもロードします。ただし、拡張子が.so, .rbのもののみロードできます。さらに一度 requireしたファイルは2度requireしてもロードしません。
ロードパスも違います。
0458デフォルトの名無しさん
2006/03/24(金) 10:42:21なぜここに書くのかはよくわからないが、そうするなら原文を気にしないで
詳しく解説した方がいいと思う。
6.11 load と require はどう違いますか
どちらも指定した Ruby プログラムを読み込むという点では似ています。しか
し、 load が指定したファイルを Ruby プログラムとして読み込むのに利用す
るのに対し、 require では拡張ライブラリの読み込みが可能で、拡張子が so
や rb のもののみを探索します。また require では拡張子を省略できますし、
一度読み込んだファイルは二度と読み込まないようになっています。 load は
指定すれば何度でも読み込みます。
したがって、 require はライブラリのロードに利用し、 load は設定ファイ
ルの読み込みなどに使うのが一般的です。また、両者はファイルのサーチパス
も異なります。
とか。
0459デフォルトの名無しさん
2006/03/24(金) 12:18:52どうちがうのかも解説した方がいいんじゃまいか。
0460デフォルトの名無しさん
2006/03/24(金) 13:03:05組み込み関数のところに書いてあるよ、たぶん。
リンクすりゃいいよきっと。
0461デフォルトの名無しさん
2006/03/24(金) 13:15:380462458
2006/03/24(金) 14:47:180463デフォルトの名無しさん
2006/03/24(金) 14:59:120464デフォルトの名無しさん
2006/03/24(金) 15:39:30load 'yaml.rb'
が正常に実行されることを見ると、そうでもないらしい
0465デフォルトの名無しさん
2006/03/24(金) 15:54:58初めて知った
0466デフォルトの名無しさん
2006/03/24(金) 23:30:20GJ
0467デフォルトの名無しさん
2006/03/25(土) 00:21:330468458
2006/03/25(土) 00:34:54require は $: しか見ない。
load は指定したファイルが絶対パスのときは $: を見ない。相対パスのときは $: を見る。
いちおう load にも require にもリンクしてるし、リンク先を見れば一目瞭
然なのでいちいち書くほどでもない気がする。
0469デフォルトの名無しさん
2006/03/26(日) 10:27:31やりたいことは、Procオブジェクトを使って特異メソッドを定義することです。
0470デフォルトの名無しさん
2006/03/26(日) 11:54:51こういうこと?
module DefineSingletonMethod
private
def define_singleton_method(name, &block)
(class << self; self; end).__send__(:define_method, name, &block)
end
end
module M
extend DefineSingletonMethod
define_singleton_method(:f){|*a| [self, a]}
end
p M.f(1,2) #=> [M, [1,2]]
0471469
2006/03/26(日) 13:48:36やりたいのは、モジュールの特異メソッドではなくて、インスタンスの特異メソッドです。
イメージとしてはこんな感じ。
class Foo
def initialize(name, &block)
define_singleton_method(name, &block)
end
end
obj1 = Foo.new(:f) { |arg| puts "<#{arg}>" }
obj1.f(10) #=> <1>
obj2 = Foo.new(:f) { |arg| puts "`#{arg}'" }
obj2.f(10) #=> `1'
0472デフォルトの名無しさん
2006/03/26(日) 14:07:48モジュールも Module のインスタンスなんだもん
>470 の DefineSingletonMethod の定義を読んでちょ
class Foo
def initialize(name, &block)
extend DefineSingletonMethod
define_singleton_method(name, &block)
end
end
0473デフォルトの名無しさん
2006/03/26(日) 14:14:08class Foo
include DefineSingletonMethod
def initialize(name, &block)
define_singleton_method(name, &block)
end
end
0474469
2006/03/26(日) 15:01:10(class << self; self; end) で返されるのは、そのインスタンスオブジェクトの特異クラスということでしょうか。これがよくわからなかったので。
またそうだとして、インスタンスオブジェクトの特異クラスを取得する方法というのは、この方法しかないんでしょうか。なんかもっとスマートな方法があってもいいような気がするんですが。
あと、Ruby1.9からは Object#__send__ でもprivateメソッドは実行できないということらしいですが、その場合はinstance_evalを使って
(class << self; self; end).instance_eval "define_method(name, &block)"
ということでよろしいでしょうか。
0475デフォルトの名無しさん
2006/03/26(日) 15:52:01本来見えちゃいけないものだからキレイな方法はないんじゃない?
instance_eval で普通に文字列を渡すと name, &block が渡らない気がする。
1.9でもいけるマシな方法はあるのかな。eval を使えば出来るのは分かるんだが。
module DefineSingletonMethod
private
def define_singleton_method(name, &block)
(class << self; self; end).instance_eval{
eval("define_method(name, &block)", binding)
}
end
end
0476デフォルトの名無しさん
2006/03/26(日) 16:22:17private
def define_singleton_method(name, &block)
(class << self; self; end).instance_eval{
define_method(name, &block)
}
end
end
0477デフォルトの名無しさん
2006/03/26(日) 16:24:07あの添削版が最新版?
0478469
2006/03/26(日) 18:19:18どうもありがとうございます。
>instance_eval で普通に文字列を渡すと name, &block が渡らない気がする。
Ruby1.8.4で試したところ、うまくいくようです。
>>476
なるほど、instance_evalはブロッックをとれるんですね。すげー参考になりました。
0479デフォルトの名無しさん
2006/03/26(日) 18:33:130480デフォルトの名無しさん
2006/03/26(日) 18:36:130481デフォルトの名無しさん
2006/03/26(日) 18:39:120482デフォルトの名無しさん
2006/03/26(日) 18:46:08これってhoge.rbからhoge.newを行うだけですよね。
>>480
hoge.rbにHogeクラスが定義されてた場合に
hoge.rbのファイル名からHogeのインスタンスを生成したいんです。
0483デフォルトの名無しさん
2006/03/26(日) 18:58:52class Hoge
がマッチしたらrequireだかloadしてeval "Hoge.new"すればいい
0484デフォルトの名無しさん
2006/03/26(日) 19:06:41つうかつい最近そういう記事見たぞ。はやってんのか?
ttp://www.devsource.com/article2/0,1895,1928561,00.asp
0485デフォルトの名無しさん
2006/03/26(日) 19:56:320486デフォルトの名無しさん
2006/03/26(日) 20:08:24あんまり使うものでもないだろうし
どういう仕様にするか揉めそう
Classに限定するのかとか
スコープはどこなのかと
:: は許すのかとか
0487デフォルトの名無しさん
2006/03/26(日) 20:29:23自ら実装したこともあるし、そういう質問を見たこともあるし。
仕様としては、eval("Foo::Bar") == class_get("Foo::Bar")になってほしい。
これがあらゆる意味で自然だし、議論の余地はないと思うのだが。
0488デフォルトの名無しさん
2006/03/26(日) 20:55:380489デフォルトの名無しさん
2006/03/26(日) 21:11:470490デフォルトの名無しさん
2006/03/26(日) 21:34:060491デフォルトの名無しさん
2006/03/26(日) 21:52:560492490
2006/03/26(日) 22:49:320493デフォルトの名無しさん
2006/03/26(日) 23:10:12> -T
const_get("Foo")は-T4でも動くんだから、const_get("Foo::Bar")だって動かない道理が無いよ。
0494デフォルトの名無しさん
2006/03/26(日) 23:51:31その遅さがボトルネックになるほど頻繁に呼ぶようなケースがあれば教えて。
> 意図がつかみにくいし、何よりダサい
それは主観ですよね。「私はそうは思わない」んですが。
> const_get("Foo")は-T4でも動くんだから、
え?
0495HSPスレからきますた
2006/03/26(日) 23:58:44もっとGUIとか使いやすくしてください
JAVAの方がまだ遊べます
と言うわけで
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< Ruby on HSPマダーーー
\_/⊂ ⊂_)_ \__________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
| .|/
0496デフォルトの名無しさん
2006/03/26(日) 23:59:47馬鹿をさらしに来たのですね?
0497デフォルトの名無しさん
2006/03/27(月) 00:01:07今日zlibを調べようとしたら、「詳しくはzlib.hを見てください」って説明が多い・・・。
確かにひどいのかもしれないなあ。
0498デフォルトの名無しさん
2006/03/27(月) 00:02:21依存する機能を求めるのはどうかと思うw
JRuby使えばいいんじゃないかな
0499デフォルトの名無しさん
2006/03/27(月) 00:06:25つまらない用事でいちいちeval()したくない、と思ってるのって俺だけ?
そりゃまぁ、確かにRubyスクリプトで速度を語るのはナンセンスだけどさ。
ダサい云々はともかく、ではeval("Foo::Bar")とconst_get("Foo::Bar")(またはclass_get)と、
どちらが意図がつかみやすい?
これがどちらも同じように見えるというのなら、確かに単に主観としか言えないね。
-T4については、聞き返すよりもまずやってみたら?
っていうかどうみても煽りです。本当に(ry
0500デフォルトの名無しさん
2006/03/27(月) 00:09:340501デフォルトの名無しさん
2006/03/27(月) 00:10:33×プラットフォームに依存してない言語で
○Unix環境中心の言語で
0502デフォルトの名無しさん
2006/03/27(月) 00:15:27「意図がつかみにくい」件については、
const_get があれば class_get とか module_get とかの alias 的なメソッドは
要らないんじゃないかということです。
-T4 については、やってみて eval と const_get が同じになりましたよ。
0503デフォルトの名無しさん
2006/03/27(月) 00:19:43そんなあなたにApolloがお勧め
0504デフォルトの名無しさん
2006/03/27(月) 00:24:46一体どんなRubyを使ってんだよw
0505デフォルトの名無しさん
2006/03/27(月) 00:35:23http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
ここの6.15を見た上でMLなりなんなりでまつもとに聞いたほうが話が早いと思う
0506デフォルトの名無しさん
2006/03/27(月) 00:39:03class_get/module_getが必要とは思ってないよ。
と思ってレス見返したらclass_get()を最初に言い出したのは俺だった。それについてはスマソ。
要望としては、const_get()が'::'を受け付けるようになってくれればそれで満足。
エイリアスやタイプチェックはいらない。
セキュリティについては手元で再度試みたらよくわからなくなってきた。
ただ、const_get()は単に「定数参照」でしかないので、セキュリティ面でeval()と比較すること自体ナンセンスなのは確かでしょ。
0507デフォルトの名無しさん
2006/03/27(月) 00:45:26どっかで見た気がしてたが、本家のFAQだったか。
…なんで必要性を認識しつつも実装してないんだろう。不思議だ。
0508デフォルトの名無しさん
2006/03/27(月) 00:47:27だからまつもとに(ry
0509デフォルトの名無しさん
2006/03/27(月) 00:51:11理由は知らんけど。
0510デフォルトの名無しさん
2006/03/27(月) 00:56:11WindowsだけならVisualuRubyでいいじゃない?
Delphiもいまさら…
>>507
日本語で質問出来るんだし逝ってこい
0511デフォルトの名無しさん
2006/03/27(月) 00:59:17module_get じゃなくて。
module_get だと Class も含むのかな。
0512デフォルトの名無しさん
2006/03/27(月) 01:08:42いや、だから const_get でいいじゃーん、という話に収束してきているわけで
0513デフォルトの名無しさん
2006/03/27(月) 02:02:09http://pc8.2ch.net/test/read.cgi/linux/1141465277/334
なんか、これを思い出して笑ってしまった。
>>497
この間、FileUtils の options の説明が無く、曖昧でちょっと詰った。
ソース読めば解決するのだけど。
File クラスにコピーが無いので、
大抵 FileUtils を require するハメになるな。
0514デフォルトの名無しさん
2006/03/27(月) 08:06:47勝手に組み合わせて使えばいいじゃない。HSPからRubyスクリプトの実行結果を
取得できないこともないんだから。
0515469
2006/03/27(月) 08:24:50なんか、結局おれのやりたかったことは、わざわざブロックから特異メソッドをつくるまでもなく、
instance_evalにブロックをわたせば済んでしまいました。
やりたかったことは、Procのselfがmainになってしまうので、これを別のオブジェクトにすることでした。
マニュアルを探しているとModule#define_methodがブロックを引数にとれるので、これで妥協しようとしてたけど、instance_evalにブロック渡すほうが直接の解でした。
あらためて>>476 ありがとうございました。
0516デフォルトの名無しさん
2006/03/27(月) 10:01:16呼び出し側のバインディングで処理が書けるのが嬉しいのだと思われ
instance_eval は自制しないと分からなくなりがちなので
おれなら第一ブロック引数がselfをとるようにしちゃう
0517デフォルトの名無しさん
2006/03/27(月) 10:37:56kwsk
0518デフォルトの名無しさん
2006/03/27(月) 13:51:55Zlib に関しては、
http://www.ruby-lang.org/ja/man/?cmd=view;name=zlib
とそこからリンクされているページに詳しく載っている。
0519デフォルトの名無しさん
2006/03/27(月) 17:07:07というのはさすがに富豪すぎますな。
とりあえずevalのコンパイル結果が再利用出来るようになっていれば、
なんとかなるんでないかと思いますが。
0520デフォルトの名無しさん
2006/03/27(月) 19:41:41どんなの創造してる?
もっと詳しく
Ruby on DirectXとか作ったら需要ありそうなんだけどね
0521デフォルトの名無しさん
2006/03/27(月) 19:48:09Ruby.NETでManaged DirectXできるしそっちのが先だな。
0522デフォルトの名無しさん
2006/03/27(月) 20:12:40Rubyの人は言語には興味有るけど、それ以外には興味がない
HSPの人があまり言語に興味が無いのと逆かw
Rubyの不得意な分野=HSPの得意な分野だよな
と言うわけで
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< 便利ライブラリマダーーー
\_/⊂ ⊂_)_ \__________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
| .|/
0523デフォルトの名無しさん
2006/03/27(月) 20:25:14RubyでGUIプログラミングって相性よくなさそうなので使ったことないけど。
0524デフォルトの名無しさん
2006/03/27(月) 20:31:160525デフォルトの名無しさん
2006/03/27(月) 20:37:25どれも中途半端だから「じゃ俺が作る」と作り始めて
そもれも中途半端だから別の人が「じゃ俺が作る」の繰り返し。
0526デフォルトの名無しさん
2006/03/27(月) 20:42:25上手い方法が思いつきません。正規表現で最内の括弧だけマッチさせられないかやってみましたが出来ませんでした
何か良い処理方法、ライブラリ等あったら教えて下さい
0527デフォルトの名無しさん
2006/03/27(月) 21:02:56たぶんできるよ。kwsk
0528デフォルトの名無しさん
2006/03/27(月) 21:19:51正規表現じゃムリじゃないだろうか。Racc使ってパーサ作るのがまっとうな方法だと思う。
0529デフォルトの名無しさん
2006/03/27(月) 21:20:450530デフォルトの名無しさん
2006/03/27(月) 21:22:00どの辺が相性悪い?
俺はMacのXcode+InterfaceBuilderがお気に入りだが
あれは言語の相性より開発環境だと思う
言語自体が不適ってあるかな?
0531デフォルトの名無しさん
2006/03/27(月) 21:28:16GUIしたいと思ったらRubyは選択肢には上らない。
言語が悪いとか悪くないとかどうでもいい。
0532デフォルトの名無しさん
2006/03/27(月) 22:28:33理由は全く理解できないが
選択肢にないというのなら仕方ないな
ちなみに俺は5年ぐらい前にHSPを触ってたが
GUIに関してもやっぱりRubyのほうが上だと感じてしまう
何だかんだ言ってもApolloは強い
0533デフォルトの名無しさん
2006/03/27(月) 22:33:10>>530 の言う通り、環境の話をゴッチャにしてる無知様の言として流すのが吉かと。
0535デフォルトの名無しさん
2006/03/27(月) 22:59:24>俺はMacのXcode+InterfaceBuilderがお気に入りだが
わかるー。あれ、GUI作成に関しては最強の開発環境だよね。
HTML書くより簡単にGUI作れるんだもん。
あれをみると、JavaのSwingとかEclipseとか「なにやってるんだろ」と思ってしまう。
>あれは言語の相性より開発環境だと思う
>言語自体が不適ってあるかな?
たぶん環境も含めて言語といっているのでは?
そう考えると、最初からGUIライブラリがバンドルされているHSPやJavaは有利。
Rubyは自分でGUIライブラリインストールしなきゃいけない時点でやっぱ負けだよ、GUIに関しては。Ruby/TkはバインディングだけでTkが必要だし。
これはもう言語仕様とは関係ない話だけど、でも使う側からみたら大きな問題だと思うよ。
>>524,525
はげしく同意。決定版がないんだよね。XULRunnerが使えればいいんだけど。
0536デフォルトの名無しさん
2006/03/27(月) 23:02:09> SwingとかEclipseとか
なんか物凄い勢いで間違ってると思う
0537デフォルトの名無しさん
2006/03/27(月) 23:35:34なんで?GUIフレームワークとしてSwingを、開発環境としてEclipseを挙げただけなんだけど。
それとも「InterfaceBuilderに対応するならVisualEditorかMatisseだろ」ということ?
0538デフォルトの名無しさん
2006/03/28(火) 00:00:31言いたいことは察っするが、それ、変だから。
> Rubyは自分でGUIライブラリインストールしなきゃいけない時点でやっぱ負けだよ
"お前にとって" "お前の中だけ" で負けなだけでしょ。
何でもかんでも載せりゃあ良いってものじゃないし、嬉しくない人も居る訳で。
本命は wxRuby?
0539デフォルトの名無しさん
2006/03/28(火) 00:10:20WinはVS.NETで吐いたAvalonなXML食わせればそれでおしまい。
とかわけもわからず言ってみる。
0540デフォルトの名無しさん
2006/03/28(火) 00:48:41obj.to_s = "objの内容を文字列形式で指定"
こういうインターフェースってキモいですか?
他に一般的な名前あったら教えてください。
0541デフォルトの名無しさん
2006/03/28(火) 00:52:53前者はいいが、後者がキモい。
そんな風に指定できてしまったら、実際のobjの内容と乖離してしまいかねないと思わないか?
単に「入れもの」が欲しいなら、attr_accessor あたりを使うべし。
0542デフォルトの名無しさん
2006/03/28(火) 00:57:06どういうのがいいのかという話で
そのこと自体の是非はとりあえずおいといてください。
0543デフォルトの名無しさん
2006/03/28(火) 01:02:27正規表現だけで括弧の入れ子を解析することが出来ないことを知っててやってるなら
まあがんばれ。
0544デフォルトの名無しさん
2006/03/28(火) 01:09:08だから attr_accessor とか attt_writer とか。
>>543
べつに解析なんてしなくても、全ての括弧をSQL的に置換できればいいんだし。
gsubじゃなくて、subあたりで地道にループさせていけばOK.
0545デフォルトの名無しさん
2006/03/28(火) 01:20:51バグがあった上に sql injection 回避するのがめんどくさくて、racc で書き直した。
まさに racc 向きだと思ったよ。
0546デフォルトの名無しさん
2006/03/28(火) 01:28:33漏れなら Obj#description あたりにする。
0547デフォルトの名無しさん
2006/03/28(火) 01:29:50つMarshal
0548デフォルトの名無しさん
2006/03/28(火) 02:53:47GCがMark and Sweepなのがちょっといや。
CUIだとそうでもないんだけど、GUIだといきなり固まるとイライラする。
0549デフォルトの名無しさん
2006/03/28(火) 03:19:58Obj#to_xml=
とか言ってみる
0550デフォルトの名無しさん
2006/03/28(火) 07:08:48YAML
0551デフォルトの名無しさん
2006/03/28(火) 07:09:39to_xmlにしたからといって問題は解決しないと思う
>>540
というわけで、toを使うのはキモい
obj#str=(value) とか
obj#set_str(value) みたいなインターフェースがいいと思う
0552デフォルトの名無しさん
2006/03/28(火) 07:15:46と書かれると、(独自形式の)文字列を元にオブジェクトを生成したいのかなと思ってしまうのだが。
そうだとすると俺ならクラスメソッドにしてこんな感じかな。
ObjClass.load_from_hogehoge(str) # hogehoge は何か形式の名前
0553デフォルトの名無しさん
2006/03/28(火) 08:26:440554デフォルトの名無しさん
2006/03/28(火) 08:35:100555デフォルトの名無しさん
2006/03/28(火) 09:52:37正規表現というのがチョムスキーのタイプ3を指しているならその通りだが、
最近の言語の正規表現は拡張されているからどうだろうね。
perlならできるはず。rubyはしらない。
0556デフォルトの名無しさん
2006/03/28(火) 10:38:18へー。
$s =~ /\A[\(\)]*\z/ が成り立ってるとして、
括弧のバランスがとれてる時だけ $s にマッチする正規表現はPerlでどうかくの?
0557デフォルトの名無しさん
2006/03/28(火) 11:04:26インターフェイスというか名前だけの話なら、export, import じゃまいか。
0558デフォルトの名無しさん
2006/03/28(火) 12:09:52JavaのGUI開発ツールを使ってない悪寒。
むしろ、IBが無いと何も出来ない方が痛いけどね。
独自のウィンドウ生成とか、IBの範囲外は手も足も出ない。
YAMLベースに独自形式も扱えるようにしちゃえば、YAML同様に扱えるよ。
わざわざYAMLを使う必要も無い。書式変だし。
0559デフォルトの名無しさん
2006/03/28(火) 12:15:55本気でいってるの?
0560デフォルトの名無しさん
2006/03/28(火) 12:19:210561デフォルトの名無しさん
2006/03/28(火) 13:44:01あくまでPerlでは、の話だけど、postponedな正規表現を使う(試験実装中)。
ttp://www.din.or.jp/~ohzaki/regex.htm#GetNestedParen
ttp://search.cpan.org/~nwclark/perl-5.8.8/pod/perlre.pod#Extended_Patterns ( (??~)の項 )
$openclose = qr/\([^()]*(?:(??{$openclose})[^()]*)*\)/;
$s =~ /^$openclose*$/;
0562デフォルトの名無しさん
2006/03/28(火) 14:40:33ちょっと大きな文字列を試したらすぐにスタック使い果たしたりしないんだろうか。
うーむ、なんか羨ましいから鬼車でもゼヒ。
0563デフォルトの名無しさん
2006/03/28(火) 17:40:44>マカってアフォだな。
>JavaのGUI開発ツールを使ってない悪寒。
Javaユーザってアフォだよな。
Eclipseしか知らないで、IBもVBもDelphiも触ったことない悪寒。
>むしろ、IBが無いと何も出来ない方が痛いけどね。
むしろ、IBがあれば他に何もいらないけどね。
>独自のウィンドウ生成とか、IBの範囲外は手も足も出ない。
カスタムクラスつくってIBに登録するだけだよね。何がどうできないのか詳しく。
>YAMLベースに独自形式も扱えるようにしちゃえば、YAML同様に扱えるよ。
>わざわざYAMLを使う必要も無い。書式変だし。
ようやくRubyの話になったっぽいけど、なんの話?
0564デフォルトの名無しさん
2006/03/28(火) 17:41:24ごめん、「Javaユーザ」じゃなくて「558」にしといて。
正直すまんかった。
0565デフォルトの名無しさん
2006/03/28(火) 17:58:33たしか、Perl6では正規表現という名前をやめたんじゃなかったっけ?
拡張しすぎて、本来の正規表現の能力を大幅に越えてしまったからだとかなんとか。
0566デフォルトの名無しさん
2006/03/28(火) 18:15:070567デフォルトの名無しさん
2006/03/28(火) 18:16:550568デフォルトの名無しさん
2006/03/28(火) 18:35:34でもまあ、後方参照マッチがある時点で既に正規表現から逸脱しているから、
そこのところは気にしすぎても仕方ないという話はある。
0569デフォルトの名無しさん
2006/03/28(火) 18:42:09どうしても拡張性器表現って書き込みたくなった
許してもらえるとは思ってない
みんなにはそれでも謝っておきたい
0570デフォルトの名無しさん
2006/03/28(火) 18:44:12一応 POSIX というのはある。
数学的な定義としては「正則表現」って名前の方が適切なのかな。
Wikipediaから引用すると、
アルファベット A={a_1,...,a_n} 上の正規表現とは
1. 空記号列 ε は正規表現である
2. a_i(Aの任意の要素)は正規表現である
3. X と Y が正規表現ならば、
1. X|Y も正規表現である
2. XY も正規表現である
3. {X} も正規表現である
だって。後方参照マッチが逸脱してるってのはどれにひっかかってるんだろう?
0571デフォルトの名無しさん
2006/03/28(火) 19:48:580572デフォルトの名無しさん
2006/03/28(火) 19:57:01たぶんその定義の一番下は
3. {X}* も正規表現である
かな?(クリーネスターってやつ)
全ての正規言語は>>570の正規表現を組み合わせるだけで必ず表現できるけど、後方参照マッチとかが入るとその正規表現をどう組み合わせても表現できない。
後方参照マッチする言語は「正規言語ではない」なんていう言い方をする。(文脈自由言語ではあるけど)
>>568の言う「逸脱してる」ってのはそういう意味じゃないかな。
0573デフォルトの名無しさん
2006/03/28(火) 20:43:470574デフォルトの名無しさん
2006/03/28(火) 20:55:38∴
0575デフォルトの名無しさん
2006/03/28(火) 22:29:44後方参照マッチね。たとえば Ruby では、
/([^,]*),\1/
とか書けるが、これは正則言語ではないですよということ。
570は正則表現の正しい定義だが、なぜ違うかというのは、そのどれかにひっ
かかるからダメとかいうシンプルな理由じゃないよ。
証明がほしけりゃ反復補題で調べれ。
0576デフォルトの名無しさん
2006/03/28(火) 23:10:25よく紹介されてるけどこういう文字列は \1 使えばちょうどマッチできるの?
pumping lemma は必要条件だから backreference でちょうどマッチできて
pump 出来ない例を持ってこないと駄目じゃね?
0577デフォルトの名無しさん
2006/03/28(火) 23:50:40確かに w,w (w ∈ Σ-{,}) はポンプ出来んから正則じゃないな。サンクス
現実の処理系では |w| < ∃n だから実際は正則。
0578デフォルトの名無しさん
2006/03/29(水) 01:36:21Ruby初心者スレッドPart5
http://pc8.2ch.net/test/read.cgi/tech/1143403165/l50
0579デフォルトの名無しさん
2006/03/29(水) 08:31:290580デフォルトの名無しさん
2006/03/29(水) 09:59:200581デフォルトの名無しさん
2006/03/29(水) 10:10:350582デフォルトの名無しさん
2006/03/29(水) 10:24:44イメージがまったくわかないんだけど、なにかサンプルあげてもらえるとうれしい。
0583デフォルトの名無しさん
2006/03/29(水) 12:26:53例えば gem install hogehoge を実行して
require 'rubygems'
autoload :Hogehoge 'hogehoge'
とすると、
no such file to load -- hogehoge (LoadError)
というエラーになります。
もちろん
require 'rubygems'
require 'hogehoge'
はうまくいきます。
rubygemsはautoload未対応なんでしょうか。
0584デフォルトの名無しさん
2006/03/29(水) 12:28:52Appolo追加してデフォルトの関連付けを変えるだけでいいのに
Editや他の操作もすべて消滅した・・・orz
0585デフォルトの名無しさん
2006/03/29(水) 16:24:09もしかして:Apollo
Tcl/TkみたいにRubyと言えばRuby/xxって言えるくらいのがあればね
Railsだけじゃ、廃れるのも時間の(ry
0586デフォルトの名無しさん
2006/03/29(水) 18:03:53リテラルじゃないけど、
abnf - converter from ABNF to Regexp
ttp://cvs.m17n.org/~akr/abnf/
とゆーのがある。
0587デフォルトの名無しさん
2006/03/29(水) 18:45:44Ruby に GUI を期待してる奴の方が少ないと思うんだが。
気のせい?
0588デフォルトの名無しさん
2006/03/29(水) 19:05:30おもしろいかも。thx!
0589デフォルトの名無しさん
2006/03/29(水) 19:56:16いや、GUIは欲しいよ。
ブラウザも含めれば問題は減るけど。
処理に時間が掛かるようなスクリプトだとレンタルサーバのCGIで動かすのは無理だしな。
あとX?HTML吐くのとGUIコンポーネントをオブジェクトとして操作するのでは結構違いがある。
Railsだとスクリプト<->erubyの間で意識を切り換えなければいけないし。
まあリッチになったらなったで要望のハードルがあがって大変になることもあるだろうけど、ともかくGUIは欲しいと思う。
0590デフォルトの名無しさん
2006/03/29(水) 20:33:05はげどう。特にゲームつくりたいという人は多いぞ。
そんなときGUIに弱いRubyは負け組。せっかくいい言語なのにね。
なんでGUIを拒否するのかわからんけど、Rubyの活躍の場を広げることができるチャンスをわざわざ否定するやつがわからん。
0591デフォルトの名無しさん
2006/03/29(水) 20:52:03なにあのバッドノウハウの塊は。
0592デフォルトの名無しさん
2006/03/29(水) 20:57:050593デフォルトの名無しさん
2006/03/29(水) 21:20:45> ブラウザも含めれば問題は減るけど。
> 処理に時間が掛かるようなスクリプトだとレンタルサーバのCGIで動かすのは無理だしな。
よくわからんのだが、レンタルサーバのcgiと手元のGUIとどういうつながりが?
CGIを通じてdRubyですか?w
0594デフォルトの名無しさん
2006/03/29(水) 21:24:19「しかしローカルで鯖立ては面倒だし、」
を追加すればOK
0595デフォルトの名無しさん
2006/03/29(水) 21:34:52手軽に作るんだったらFlashとか使う
それでもRubyにも手軽に使えるGUIのスタンダードがあったら
あったにこしたことないけどな
0596デフォルトの名無しさん
2006/03/29(水) 21:36:10いやいや。今はデスクトップアプリもスクリプト言語で作る時代だぞ。w
ttp://www.sooey.com/journal/2006/02/01/90/
0597デフォルトの名無しさん
2006/03/29(水) 22:00:02そうじゃないゲームはいっぱいある
テーブルゲーム シミュレーション RPG などなど
ロジック書くのが楽ならスクリプトもいいよ
0598強制移転
2006/03/29(水) 22:00:41>>148
>obj==nilがobj.nil?になったところで
違う、obj.equals? nil と等しいと考えないと
153 名前:デフォルトの名無しさん[sage] 投稿日:2006/03/29(水) 20:32:40
超秋田。
154 名前:デフォルトの名無しさん[sage] 投稿日:2006/03/29(水) 21:07:02
>>151
> 「○○がない理由」はあくまで「○○がない理由」であり、
> それがどうして「Object#nil?やArray#firstがある理由」の補強になるのでしょうか。
それは、
否定する根拠が再反論によって消滅したため、
> いまのところ、すでに示された理由を否定する理由はありません。
となるからです。
あと、話が分からないときに比喩を使うのは、混乱の元ですからやめましょう。
> 「裏の裏は表」ということですか?今の場合は「右の右は後ろ」でしょう。
という文を、具体的な文にしましょう。
155 名前:デフォルトの名無しさん[sage] 投稿日:2006/03/29(水) 21:31:53
議論してる奴ら全員Ruby本スレに行け
ていうかそろそろ議論止めろ
156 名前:デフォルトの名無しさん[sage] 投稿日:2006/03/29(水) 21:43:53
本スレに湧かせないようにしてるのに何を言い出すか
157 名前:デフォルトの名無しさん[sage] 投稿日:2006/03/29(水) 21:57:03
だからここは初心者スレなんだってばww
こんなよくわかんない空気かもしだしてたら、質問したくてもしにくくなるんじゃない?
0599デフォルトの名無しさん
2006/03/29(水) 22:33:290600デフォルトの名無しさん
2006/03/29(水) 23:10:110601デフォルトの名無しさん
2006/03/29(水) 23:22:23=終了=
0602デフォルトの名無しさん
2006/03/30(木) 00:21:06つRuby/SDL
0603デフォルトの名無しさん
2006/03/30(木) 00:50:57つCurses
0604デフォルトの名無しさん
2006/03/30(木) 02:23:53みたいだよ。他にも描画以外の振る舞いはスクリプトの方が
効率良いんじゃないかねえ。
0605デフォルトの名無しさん
2006/03/30(木) 09:45:280606デフォルトの名無しさん
2006/03/30(木) 14:20:520607デフォルトの名無しさん
2006/03/30(木) 14:21:250608デフォルトの名無しさん
2006/03/30(木) 19:19:46http://www.cbook24.com/bm_detail.asp?sku=4274066428
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=4-274-06643-6
では「2006/04」だけども。
それと、オーム社のページには主要目次が掲載されたけど、
ライブラリ編が……。
0609デフォルトの名無しさん
2006/03/30(木) 19:22:54>>608 のオーム社へのリンクは
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=4-274-06642-8
のつもりだった。
0610デフォルトの名無しさん
2006/03/30(木) 19:34:22ワッフルワッフル
0611デフォルトの名無しさん
2006/03/30(木) 19:42:16[翻訳]RubyについてJavaプログラマが知るべき10の事柄
http://d.hatena.ne.jp/brazil/20050816
>ブロックはオブジェクトではありません。
>しかし、そこに大差はありません。
>それを必要とする時までには、自動的にProcオブジェクトに変換されるからです。
ブロックはProcオブジェクトだとおもっていたんですが、違うの?
def foo(&block)
p block.class
end
foo() { 1 } #=> Proc
これは自動的にProcオブジェクトに変換された結果?
0612デフォルトの名無しさん
2006/03/30(木) 20:25:21むしろゲーム作るから、ゲーム作れる環境に合わせた言語を選ぶ方が正しい。
目的はあくまでゲームであってrubyじゃない。
0613デフォルトの名無しさん
2006/03/30(木) 20:27:51&block で受け取る段階で Proc オブジェクトになったはず。
引数として受け取らず、 yeild でブロックを実行すれば Proc にはならない。
0614デフォルトの名無しさん
2006/03/30(木) 22:16:17Rubyを使うことによってゲームが作りやすくなるなら
Rubyでゲームを作る理由はあると思うよ
0615デフォルトの名無しさん
2006/03/30(木) 23:22:35少々面倒だが組み込みRuby
0616デフォルトの名無しさん
2006/03/30(木) 23:31:38さんくす。
じゃあyieldで実行したとして、Procじゃなければ何なのでしょうか。
Blockクラスというのはないし。
0617デフォルトの名無しさん
2006/03/30(木) 23:32:40コンパイラ作成競争
0618デフォルトの名無しさん
2006/03/30(木) 23:44:30RGSS(RPGツクールXP)
Ruby/SDL
Ruby/OpenGL
Miyako(旧EGSR)
ぐらい?
0619デフォルトの名無しさん
2006/03/30(木) 23:55:30何でもねぇよ
0620デフォルトの名無しさん
2006/03/31(金) 00:04:16Ruby/DirectXって無かったっけ。
もしくは Apollo + Delphi用DirectXコンポーネント とか。
0621デフォルトの名無しさん
2006/03/31(金) 01:12:12block だね (Blockじゃなくて)。
0622デフォルトの名無しさん
2006/03/31(金) 08:19:11と思わなくもない
まぁだいぶ js にも慣れたけど
0623デフォルトの名無しさん
2006/03/31(金) 09:03:17JavaSrciptはJavaScriptで奥が深くておもしろいよね。
0624デフォルトの名無しさん
2006/03/31(金) 10:38:31libc が utc と localtime しか扱えないからなのかな。
0625デフォルトの名無しさん
2006/03/31(金) 10:59:41ブロックは「そういう言語構造」。if とか while がクラスやメソッドでないようなもん。
でも「オブジェクトとして扱いたければ自動的に Proc オブジェクトに変換
されるから気にする必要なし」ってのがもとの文章。
0626デフォルトの名無しさん
2006/03/31(金) 11:40:03その方がいいのかも。今度は頼むよまじで。
0627デフォルトの名無しさん
2006/03/31(金) 11:59:09「ブロックでさえもオブジェクトです」とでも書いたほうがより現実に近いし、誤解も招かないよなぁ。
0628デフォルトの名無しさん
2006/03/31(金) 12:41:230629デフォルトの名無しさん
2006/03/31(金) 14:07:59Windowsにzoneinfoがないからじゃなかった?
0630デフォルトの名無しさん
2006/03/31(金) 14:10:34でも翻訳者、監訳者は変わらないしなぁ。悪くなることはないだろうけど。
0631デフォルトの名無しさん
2006/03/31(金) 16:00:18全部自前で実装すればいいじゃない
0632デフォルトの名無しさん
2006/03/31(金) 16:14:29タイムゾーン情報のアップデートはどうすんの?
0633デフォルトの名無しさん
2006/03/31(金) 16:29:05嘘書いた方がわかりやすいからそうしろとか、もうねw
0634デフォルトの名無しさん
2006/03/31(金) 17:01:04全部自前でアップデートすればいいじゃない
0635デフォルトの名無しさん
2006/03/31(金) 17:07:37つ[いいだしっぺ以下略]
0636デフォルトの名無しさん
2006/03/31(金) 17:14:37だれがどんなタイミングでどっから情報をとってきて?
0637デフォルトの名無しさん
2006/03/31(金) 17:52:360638デフォルトの名無しさん
2006/03/31(金) 18:23:04んなもんなら、Time#+でいいんじゃないか。Timezoneとは話が別。
0639616
2006/03/31(金) 18:55:18ありがとう。そういうもんだと思うことにします。
>>627
同意。ifやwhileは制御構造だからオブジェクトとはならないけど、ブロックはオブジェクトとしたほうがすっきりする。
0640デフォルトの名無しさん
2006/03/31(金) 23:28:14それだと time.rb の Time#iso8601 や Time#rfc2822 が使えないですよね。
0641デフォルトの名無しさん
2006/03/31(金) 23:41:43直接MLに投稿すれば一発で解決するものを、何だって遠回りな手段を選ぶのか、
その思考回路からして理解できない。
0642デフォルトの名無しさん
2006/03/31(金) 23:44:15わざわざsubscribeしないといけないし、
自分のメアドや名前晒してメール出さないといけないんだから。
2chで気軽に書き込めるのが楽でいいよ。
0643デフォルトの名無しさん
2006/03/31(金) 23:50:360644デフォルトの名無しさん
2006/03/32(土) 00:03:48いじょ
0645デフォルトの名無しさん
2006/03/32(土) 00:48:52意味不明。Timezoneとは関係ないだろ。
0646デフォルトの名無しさん
2006/03/32(土) 01:02:56しかし、マニュアルに嘘を書いてくれと言われてる今日この頃。
0647デフォルトの名無しさん
2006/03/32(土) 08:35:49ブロックのことか?
「よく見ようと思って目を凝らすと暗黙のうちにオブジェクトに変換され、結果的にオブジェクトにしか見えないモノ」をオブジェクトと書くのが「嘘」だと?
0648デフォルトの名無しさん
2006/03/32(土) 09:30:35Ruby レベルでいくら目を凝らしても真実は見えん。
C言語ソース嫁。
0649デフォルトの名無しさん
2006/03/32(土) 11:15:12それはどう考えてもウソだろ。
シングルトンメソッドがオブジェクト特異的だからって、プロトタイプベース言語と
同様にクラスでなく、オブジェクトに直接定義される…と書くのと同じくらいには。
648も言っとるが、疑問があったら、とにかくソース嫁。話はそれからだ。
0650デフォルトの名無しさん
2006/03/32(土) 12:41:06http://pc8.2ch.net/test/read.cgi/tech/1137927749/614
これも。
あと、よく考えてから発言してくれ。レスに困る。もしくは荒れる。
つか、ぱるま読破中、おもすぃれぇ
対談、rubyco の中の人だよ……
0651デフォルトの名無しさん
2006/03/32(土) 13:09:08来ました!何かあるとすぐ「インタプリタのソース嫁」!
これだからRubyistは嫌われるんだヴォケが。
0652デフォルトの名無しさん
2006/03/32(土) 13:11:14真実は「Rubyレベルではオブジェクトのように振舞うとある定数」だろ。
0653デフォルトの名無しさん
2006/03/32(土) 13:41:24アプリケーションでも使っとれ。
0654デフォルトの名無しさん
2006/03/32(土) 13:43:240655デフォルトの名無しさん
2006/03/32(土) 13:58:46嘘じゃないよ。例えVALUEに埋め込まれていようが、オブジェクトはオブジェクトだ
0656デフォルトの名無しさん
2006/03/32(土) 14:08:49なるほど。
「オブジェクトのように見え、実際にオブジェクトとして扱えるモノ」をオブジェクトだというのは嘘で、
「オブジェクトのようなモノとして振舞うが、実際にはオブジェクトとしては扱えないモノ」をオブジェクトだというのは真実だと主張するわけだ。
0657デフォルトの名無しさん
2006/03/32(土) 14:20:050658デフォルトの名無しさん
2006/03/32(土) 14:20:35特異メソッドを定義できないだけで、実際にはオブジェクトとして扱えるだろアフォ
お前はnil,true,false,Fixnum,Symbolを非オブジェクトとして扱ってるか?
頭使ってから発言しなさい。
0659デフォルトの名無しさん
2006/03/32(土) 17:27:31おまいの言うとおり本物のオブジェクトだったらよかったんだがなぁ…。
こいつらが「ニセモノ」なせいで、taintフラグをたてることが出来ないのはご存知?
おかげでRubyのセキュリティシステムは信用できないわけだが。
0660デフォルトの名無しさん
2006/03/32(土) 17:43:44kwsk
0661デフォルトの名無しさん
2006/03/32(土) 17:50:23C言語やSchemeとかなら仕様が定められているからそちらを読むという手がある。
しかし、Rubyは実装以外に仕様書は存在しないからソース読まないと。
LLでもECMA Scriptとかは仕様書あるんだけどねぇ。
まぁ、言うことが「ソース嫁」から「仕様書嫁」に変わるだけだと思うが。
0662デフォルトの名無しさん
2006/03/32(土) 17:53:150663デフォルトの名無しさん
2006/03/32(土) 17:58:32Rubyのセキュリティシステムはもっと根本的なところで信用できるものではない。
バグで落とせるし。
0664デフォルトの名無しさん
2006/03/32(土) 18:06:16極端な一般論でお茶を濁すアフォ発見。
0665デフォルトの名無しさん
2006/03/32(土) 18:11:590666デフォルトの名無しさん
2006/03/32(土) 18:20:47Perlish Magazine http://jp.rubyist.net/PerlMa/
http://jp.rubyist.net/PerlMa/wiki.cgi?page=20060401%2DLegwork
http://www.rubyist.net/~matz/20060401.html
0667デフォルトの名無しさん
2006/03/32(土) 18:25:22kwskもなにも、そのまんま。
例えば、ファイルから読み込んだデータは「汚染されているべき」なのだが、
getc, each_byteなどで読み込んだデータはtaintフラグが立っていない(汚染されていない)。
だから、これらを「本来汚染チェックをするはずの操作」に渡すときは、自前で汚染チェックをしなければならない。
これがRubyのセキュリティシステムの、その言語仕様レベルにおける欠陥というわけ。
システムのバグならPerlにもPythonにもPHPにもある(はず)だが、これは仕様なのでどうしようもない。
0668デフォルトの名無しさん
2006/03/32(土) 18:26:17空気読めてないコメント欄にワロス
0669デフォルトの名無しさん
2006/03/32(土) 18:37:07taintのような機構がPerl、Python、PHPに無いので、比べるお前はアホ
0670デフォルトの名無しさん
2006/03/32(土) 18:47:13taint機構はPerlにインスパイアされたと知った上での発言か?
0671デフォルトの名無しさん
2006/03/32(土) 18:54:520672デフォルトの名無しさん
2006/03/32(土) 19:02:43こいつらハズカシス
_ ひろのぶ (2006-04-01 15:35)
「経験と資産の蓄積がものを言います」じゃ、彼らの最初の選択肢はCOBOLのはずだ。なんでPerlなんか使うんだろう:-P
_ び (2006-04-01 16:01)
「馬齢を重ねる」なんて言葉もあるんだけどなぁ... 挑発的な割には思慮の足りない言説は見苦しいものです。
0673デフォルトの名無しさん
2006/03/32(土) 19:18:450674デフォルトの名無しさん
2006/03/32(土) 19:46:040675デフォルトの名無しさん
2006/03/32(土) 19:55:050676デフォルトの名無しさん
2006/03/32(土) 20:03:454/1の間はダメだよ
0677デフォルトの名無しさん
2006/03/32(土) 20:44:33今日はまだ3/32だから…4/1は明日?
0678デフォルトの名無しさん
2006/03/32(土) 21:11:01その前にURLをみるべきだと思うが、もう頭に血が上っしまってダメポなんだろうなぁと。
0679デフォルトの名無しさん
2006/03/32(土) 21:13:28語るに落ちるっつーかね。
あの書き込み自体ネタかと小一時間以下略
0680デフォルトの名無しさん
2006/03/32(土) 21:19:34一部を見て全体もそうだと決め付けるお前考えの浅さに驚き。お前も痛い。
それとも、お前の書き込みもネタというかw?
0681デフォルトの名無しさん
2006/03/32(土) 21:34:52すまんな、「あそこに書き込んでる」の一文が抜けてたよ。
0682デフォルトの名無しさん
2006/03/32(土) 21:44:490683デフォルトの名無しさん
2006/03/32(土) 21:50:380684デフォルトの名無しさん
2006/03/32(土) 22:59:17ません。無理やりでも良いので、「そのまま」出力する方法は、ありませ
んか? YAML::Store で { :a => 'あ' }のようなハッシュや ['あ','い']の
ような配列が出力できれば、それでいいです。
ためしに、String.is_binary_data? を再定義してみたけど、だめでした。
to_yamlの再定義でも、エラーが出てだめでした。
def to_yaml(opts={})
"--- " + self.to_s + "\n"
end
0685デフォルトの名無しさん
2006/03/32(土) 23:08:14rubyのバージョンは、1.8.4 です。
0686デフォルトの名無しさん
2006/03/32(土) 23:08:570687デフォルトの名無しさん
2006/03/32(土) 23:18:09文字コードの指定はどうしてる?
0688デフォルトの名無しさん
2006/03/32(土) 23:48:480689デフォルトの名無しさん
2006/03/32(土) 23:50:38sjisでもeucでもutfでもおんなじなんですが、YAML::Store.newのオプションの
:encoding が実装されてないみたいなんで、無理やりやらないと駄目だと思い
ます。
0690デフォルトの名無しさん
2006/04/02(日) 00:00:22ーーーーーーーーーー
#! ruby -Ks
require "nkf"
require "yaml/store"
s = "ああああいいいをいいういう"
db = YAML::Store.new( "test_yaml.yml" )
db.transaction {
db[ "u" ] = NKF.nkf( "-w", s )
p NKF.guess( db[ 'u' ] ) == NKF::UTF8
}
ーーーーーーーーーー
---
u: !binary |
44GC44GC44GC44GC44GE44GE44GE44KS44GE44GE44GG44GE44GG
0691デフォルトの名無しさん
2006/04/02(日) 02:08:44世界視野としての仕様としては正しいけど、個人的にはJISにしたいからヲレ独自フォーマットに改変にしよう(w
0692デフォルトの名無しさん
2006/04/02(日) 10:44:18> targets << winny_thre.min{|a, b| a.key - b.key}
やっぱりrubyを知らない人にはさっぱりわからないようだw
0693デフォルトの名無しさん
2006/04/02(日) 15:19:45基本的な正規表現もわかってないやつに、何を期待してる?
0694デフォルトの名無しさん
2006/04/02(日) 16:47:13データの保存形式としてはまだ安心して使えない
ってことだよね。us-ascii だけで設定だけ記述
するのが正解だと思うよ
Perl とか Python の YAML 実装はもうマルチバイト
周りの問題とか解決しちゃってるのかな?
0695デフォルトの名無しさん
2006/04/02(日) 17:00:47http://qb5.2ch.net/test/read.cgi/sec2chd/1140878994/885-886,890,898
http://comic6.2ch.net/test/read.cgi/doujin/1141361573/360
0696デフォルトの名無しさん
2006/04/02(日) 19:57:32Syckを使ってるかぎり、一緒だろう。
0697デフォルトの名無しさん
2006/04/02(日) 23:00:27おれが言ってるのは Syck 以外の実装の話
0698デフォルトの名無しさん
2006/04/02(日) 23:37:03えぢたでガリガリ書いてる人っているの?
0699デフォルトの名無しさん
2006/04/03(月) 00:02:380700デフォルトの名無しさん
2006/04/03(月) 02:10:36漏れはウェブ経由で弄って、rubyスクリプトに整形させてる。
0701デフォルトの名無しさん
2006/04/03(月) 04:20:340702デフォルトの名無しさん
2006/04/03(月) 04:38:100703デフォルトの名無しさん
2006/04/03(月) 05:58:54オートインデントを利用してJmEditorでガリガリ書いてる
しかし、できればスペース以外の記号で
インデントを表現したいと思うことがある
行頭に>記号をつけるとインデントとか
0704デフォルトの名無しさん
2006/04/03(月) 07:59:560705デフォルトの名無しさん
2006/04/03(月) 09:59:15のだが、システム運用者とかには YAML のフォーマットは受けが良いみたいなのよね。
0706デフォルトの名無しさん
2006/04/03(月) 10:07:120707デフォルトの名無しさん
2006/04/03(月) 11:47:290708デフォルトの名無しさん
2006/04/03(月) 19:00:140709デフォルトの名無しさん
2006/04/03(月) 19:05:59まずは名前を変えるんだ。話はそれからだ。
0710デフォルトの名無しさん
2006/04/03(月) 21:08:540711デフォルトの名無しさん
2006/04/03(月) 21:21:560712デフォルトの名無しさん
2006/04/03(月) 21:44:460713デフォルトの名無しさん
2006/04/04(火) 00:34:12テキスト読み込んだ方がマシ。
0714デフォルトの名無しさん
2006/04/04(火) 00:38:07rubyの40%は言葉で出来ています。
rubyの34%は情報で出来ています。
rubyの24%は度胸で出来ています。
rubyの1%は欲望で出来ています。
rubyの1%は海水で出来ています。
意外とあってるかも。
0715デフォルトの名無しさん
2006/04/04(火) 01:01:26文字化けして、データが壊れるYAMLより、100倍まし。
テキスト>XML>>>>>>越えられない壁>>>>>>>YAML
0716デフォルトの名無しさん
2006/04/04(火) 03:29:07アフォか。
XML はドキュメト等、YAML は設定ファイル等に向いてるって Matz タソも言ってと思う。
用途次第だって上にもあったろうが。
というか文字化けって、YAML というより、単に Syck がヘボいだけじゃないのか?
0717デフォルトの名無しさん
2006/04/04(火) 09:25:28厳密に言うと Syck はパーサだから関係ないような。 Emitter は pure Ruby だよね?
それはともかく、「文字化けして、データが壊れる」ってのは嘘だよね? >>713
0718デフォルトの名無しさん
2006/04/04(火) 09:44:55と何度言ってもMatzはわかってくれません。
0719デフォルトの名無しさん
2006/04/04(火) 09:45:00文字化けというのは初耳だ。kwsk>>713
0721デフォルトの名無しさん
2006/04/04(火) 09:49:11永続化ってオブジェクトのプロパティの追加と削除ですぐヘタるから
いまだにiniファイルでチマチマやってる。
0723デフォルトの名無しさん
2006/04/04(火) 11:20:25いえ、壊れます。
文字化けか改行か原因は不明ですが、YAML::PStoreでは、ある時突然、壊れます。
{:BestWidth=>1000} とかやっても、壊れるときは壊れます。
BestWidth を忘れてたら、確実に壊れます。
YAML::PStoreのせいか、syckのせいか知りませんが、日本語を保存すると、
再度読み込もうとしても読めないことが多々あります。
0724デフォルトの名無しさん
2006/04/04(火) 11:39:03「BestWidth を忘れてたら」がよくわからない。
あと、もし可能であれば再現コードぷりーず。
「なんかわかんないけどこわれる」だけではちょっと俄には信じ難いです。
0725デフォルトの名無しさん
2006/04/04(火) 13:11:04おいおい「文字化け」って明言してたやつはどこいった?
そりゃ、どんなファイルだって壊れるときは壊れるよな。
0726デフォルトの名無しさん
2006/04/04(火) 13:15:38と言い切れないのがsyckクオリティ
0727デフォルトの名無しさん
2006/04/04(火) 15:10:15FasterCSV って、どれくらい速いの?
標準添付の CSV を使っていた場合、コードの変更量は少ない?それとも多め?
http://rubyforge.org/projects/fastercsv
0728デフォルトの名無しさん
2006/04/04(火) 16:05:56ttp://d.hatena.ne.jp/miyamuko/20060301#p1
0729デフォルトの名無しさん
2006/04/04(火) 16:17:57Programming the Ruby Way (2nd Edition)
http://www.amazon.com/gp/product/0672328844/
0730デフォルトの名無しさん
2006/04/04(火) 20:02:48ヲレラッパーでも書いて自動的に実行するようにしとけばいいじゃん。
基本的にスクリプトは楽するために書くモノだよ。
0731デフォルトの名無しさん
2006/04/04(火) 21:14:25データの順番にもよるみたいなので、再現コードは難しくて出せません。
このあたりのURLが参考になるのですが、これだけでは解決出来ないときが
あります(出来るときもある)。
http://moonrock.jp/~don/d/200401.html#d10_t2
http://yoosee.net/d/archives/2005/01/19/004.html#s1
#! ruby -Ks
require "yaml/store"
require "nkf"
a = [
["http://pc8.2ch.net/test/read.cgi/tech/1140762419/l100", "Rubyについて Part 19"],
["http://pc8.2ch.net/test/read.cgi/tech/1135082582/l50", "「コンパイラ・スクリプトエンジン」相談室9"],
]
db = YAML::Store.new( "store_test.yml" )
db.transaction {
db[ 'date' ] = Time.now
db[ 'a' ] = a
}
0732デフォルトの名無しさん
2006/04/04(火) 21:20:10ruby -vの結果とどうインストールしたか、その「確実に壊れる」というコードをだしてくれ。
0733デフォルトの名無しさん
2006/04/04(火) 21:35:22ruby 1.8.4 (2005-12-24) [i386-freebsd4]
ruby 1.8.4 (2006-01-31) [i386-cygwin]
どっちでも現象は、同じです。
データは、18Kbyte以上あるので出せませんし、内容を出すとプライベートな
ことが分かるので出せません。
エラーコードとしては、こんな感じ。このときのデータは、:BestWidth=>10000を
付けて書き出したら正常に読み込めました。
/usr/local/lib/ruby/1.8/yaml.rb:133:in `load': syntax error on line 87, col 38:
`8FW" (ArgumentError)
該当行の前後10行程度を抜き出してテストしてみると、再現しません。
0734デフォルトの名無しさん
2006/04/04(火) 21:56:04#!/usr/local/bin/ruby -Ks
require "yaml/store"
require "nkf"
a = Array.new(1000){["#{rand}", "Rubyについて Part 19"]}
db = YAML::Store.new( "store_test.yml" )
db.transaction {
db['date'] = Time.now
db['a'] = a
}
db.transaction {
p db['a'] == a
}
$ ruby-1.8.4 -v test_yml.rb
ruby 1.8.4 (2005-12-24) [i686-linux]
false
$ ruby-1.8 -v test_yml.rb
ruby 1.8.4 (2006-02-12) [i686-linux]
true
$ ruby-1.9 -v test_yml.rb
ruby 1.9.0 (2006-03-05) [i686-linux]
true
というわけで、開発版では修正済みのバグのような気もします。
0735デフォルトの名無しさん
2006/04/04(火) 22:14:49俺もだ
汎用性があるのはいいんだけど、仕様変更に弱いんだよなぁ
0736デフォルトの名無しさん
2006/04/04(火) 22:52:03文字列がShift_JISだからじゃなくて?
0737てけとー
2006/04/04(火) 23:57:22何か良いツールキットみたいなのがあったら教えてください。
簡単なツールとかゲームとか作ってみたいので。
0738デフォルトの名無しさん
2006/04/04(火) 23:58:20Rubyは最悪の選択肢だ。
0739デフォルトの名無しさん
2006/04/05(水) 00:05:29Ruby開発者は言語以外の事に、あまり関心がないからな
0740デフォルトの名無しさん
2006/04/05(水) 00:32:45DirectX描画機能付きのwinrubyなるものがあれば、遊べるかもね。
何かシフトJISの原因ポイね。そう言う不具合あるから、JISが出来たような(w
多分、全部2byteだと問題ないと思う。1byteと2byteの切り換えで問題が出てる。
0741デフォルトの名無しさん
2006/04/05(水) 00:56:22対応しているはずのUTFはバイナリ判定されるのに、SJISはされないって
こと?
>>740
2byteだから問題ないんじゃなくて、バイナリだから問題ないのでは?
0742デフォルトの名無しさん
2006/04/05(水) 01:04:43「そういう不具合があるから」、EUCができた、ですね。
2bytes文字が途中で折り返されて〜、とか、
あとは「表」等のyen sign問題だと予想。
UTF-8じゃないstringはBASE64かけて保持するとか、
ちゃんと円記号等をエスケープするとか対策すればいいだけなきもするんだけど。
0743デフォルトの名無しさん
2006/04/05(水) 04:11:270744デフォルトの名無しさん
2006/04/05(水) 04:35:44何で?
putbinaryfileは正常に動きます。
cygwin上の、1.8.4 で実行しています。
Net::FTP.open( host, user, pass ) { |ftp|
ftp.putbinaryfile( filename ) # <= 正常
ftp.puttextfile( filename ) # <= 異常。CTRL+Cも効かない
}
0745デフォルトの名無しさん
2006/04/05(水) 05:37:30全部2byteでもダメだった。
失敗した時のstore_yaml.txt見てみると、途中で切れてる。
0746デフォルトの名無しさん
2006/04/05(水) 06:54:16Windowsだけで動けばいいならApolloがお勧め
俺は738、739の言うほどRubyがGUIに不向きだとは思ってない
というかむしろGUI向きだと思っている
「簡単なツールとかゲームとか作ってみたい」なら尚更だ
0747デフォルトの名無しさん
2006/04/05(水) 09:32:29i18nとかm17nとか、もっと勉強してほすい
何でもかんでもsjisのせいにしてればいいってもんじゃない。
0748デフォルトの名無しさん
2006/04/05(水) 10:00:01これって日本産の言語だよね?
Ruby Cookbook (Cookbooks (O'Reilly))
http://www.amazon.com/gp/product/0596523696/
0749デフォルトの名無しさん
2006/04/05(水) 10:26:16いまいちパンチの効いてない釣りだな。
0750デフォルトの名無しさん
2006/04/05(水) 10:54:30是非とも _why に言ってやってください。
0751デフォルトの名無しさん
2006/04/05(水) 11:20:33Apolloってインストールしないと使えなくない?
zip解凍して、requireするだけで使えないと使う気起きん
0752デフォルトの名無しさん
2006/04/05(水) 11:23:080753デフォルトの名無しさん
2006/04/05(水) 11:28:260754デフォルトの名無しさん
2006/04/05(水) 13:14:230755デフォルトの名無しさん
2006/04/05(水) 13:16:44Ruby
0756デフォルトの名無しさん
2006/04/05(水) 13:16:520757デフォルトの名無しさん
2006/04/05(水) 13:22:36GUIはDelphi IDEで作って
それをRubyで読み込んでイベントハンドラ書くんだったらかなり使えそうな気が。
逆にどんなライブラリでもコードでUI記述するのは勘弁だな。
0758デフォルトの名無しさん
2006/04/05(水) 15:20:060759デフォルトの名無しさん
2006/04/05(水) 15:28:48Rubyを含まないzipアーカイブは存在する。
msvcrt用のはずだがmsvcrt71で動くかは知らない。
>>757
sample\dfm_to_rb.rb
0760デフォルトの名無しさん
2006/04/05(水) 16:12:21昔のYAMLは「表」とかで普通に壊れてたのよ。
さすがに今は対策入ってるみたいね。
0761デフォルトの名無しさん
2006/04/05(水) 16:28:05HSPってwwwそれこそ最悪ww
0762デフォルトの名無しさん
2006/04/05(水) 17:04:09知らないのか?HSPはオブジェクト指向を捨てて
関数型に移行しつつあるらしい。
画面遷移を全部モナドで記述するっていうし。
うかうかしておられんぞ。
0763デフォルトの名無しさん
2006/04/05(水) 18:01:47何そのHaspell
0764デフォルトの名無しさん
2006/04/05(水) 20:24:11いいえ、関数も定義しにくい糞言語でしたよ
0765デフォルトの名無しさん
2006/04/05(水) 20:47:15何つーか昔のBASICの雰囲気かな?
プログラミング初心者がちょっとしたミニゲーム作る言語。
0766デフォルトの名無しさん
2006/04/05(水) 22:19:41これで直らないかな
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/7422
0767デフォルトの名無しさん
2006/04/06(木) 00:53:46現実的ではないけど、GUIをコードで書く文化が継承されていたら
ベーマガとかも、もうちっとは長生きしたんだろか
0768デフォルトの名無しさん
2006/04/06(木) 01:17:57やっぱPC立ち上げて最初にBASICインタプリタが起動しなきゃ。
しかしスクリーンエディタがあってインラインで実行できてプログラムも記録できて、って
ある意味立派なIDEだったんだなぁあれ。
……PC立ち上げるとirbがいきなり起動ってどーだろう。だめですかそうですか。
0769デフォルトの名無しさん
2006/04/06(木) 01:18:54スタートアップに irb.bat へのショートカットを入れておくといいと思います。
全画面にしておくとなおよし。
0770デフォルトの名無しさん
2006/04/06(木) 02:36:330771デフォルトの名無しさん
2006/04/06(木) 09:29:150772デフォルトの名無しさん
2006/04/06(木) 17:28:50個人的にはRuby.NETが本命だと思ってるんだけどな。
GUI含めて潤沢な多言語向けクラスライブラリの土壌の上にこそ
言語仕様で勝負できるRubyの特徴が生きると思っている。
というわけで作者がんばれ。
# といいつつ関数型言語として進化しつつあるC#3.0に一番期待w
0773デフォルトの名無しさん
2006/04/06(木) 17:35:11_ 从*’w’) (2006-04-03 01:30)
先駆者がいたかー!つーか、moonwolf さんは時代を先取りし杉!
0774デフォルトの名無しさん
2006/04/06(木) 18:46:40つJRuby
0775デフォルトの名無しさん
2006/04/06(木) 19:28:250776デフォルトの名無しさん
2006/04/06(木) 19:29:340777デフォルトの名無しさん
2006/04/06(木) 19:41:12同じくスレ違いなのでこっちに移動して。
初心者スレ >>294
税金を渡した方は評価も成果も発表して仕事を完了してるからね。
その評価および成果方向によると、さらに完成度を高めて早期に公開、ということになってるから、その後どうなってるのかが気になってるわけだが。
0778HSP使ってます
2006/04/07(金) 03:44:49Pythonはだいぶ先を行ってるけど、スクリプトかも微妙じゃないの?
MatzってWindows使いじゃないんでしょ
きっとHSP大好きな凡人の気持ちが分からないんだよ
で、凡人でも悲しいので今日Linuxって言うのいれてみようと思います
Rubyの人たちは、どのディストリ使ってるんだすか?
Debianサーバーが乗っ取られたのは覚えてるんだけどコレでいいのかな…
0779デフォルトの名無しさん
2006/04/07(金) 06:00:11じゃなくて、
a = Array.new(1000){["#{rand}", "Rubyについて Part 19"]}
だと問題なかったりしない?
0780デフォルトの名無しさん
2006/04/07(金) 06:15:13Windows使いの俺にも
HSP大好きな凡人の気持ちがよくわからないんだが
0781デフォルトの名無しさん
2006/04/07(金) 06:41:44DQN は相手にしちゃダメだよっ!
0782デフォルトの名無しさん
2006/04/07(金) 09:23:04面倒ないから。
XとかいらんのならコツをつかめばGentooが楽。
0783デフォルトの名無しさん
2006/04/07(金) 09:24:280784デフォルトの名無しさん
2006/04/07(金) 09:39:220785デフォルトの名無しさん
2006/04/07(金) 09:41:070786デフォルトの名無しさん
2006/04/07(金) 11:20:290787デフォルトの名無しさん
2006/04/07(金) 11:32:200788デフォルトの名無しさん
2006/04/07(金) 13:12:52Windows使ってて、かつGUIを必要としないなら、cygwinかcolinuxでいいと思うけどなー。VMWareという手もあるし。
へたにLinux使うとエディタでキレると思う。
0789デフォルトの名無しさん
2006/04/07(金) 15:00:11大規模なもの作らないなら、こんなので十分。
0790デフォルトの名無しさん
2006/04/07(金) 21:46:220791デフォルトの名無しさん
2006/04/07(金) 22:46:55100行以下のスクリプトなら、こんなので十分。
0792デフォルトの名無しさん
2006/04/07(金) 22:49:19100行以下のスクリプトなら、こんなので十分。
0793デフォルトの名無しさん
2006/04/07(金) 22:51:42100行以下のスクリプトなら、こんなので十分。
0794デフォルトの名無しさん
2006/04/07(金) 22:52:14100行以下のスクリプトなら、こんなので十分。
0795デフォルトの名無しさん
2006/04/07(金) 22:52:52100行以下のスクリプトなら、こんなので十分。
0796デフォルトの名無しさん
2006/04/08(土) 01:09:130797デフォルトの名無しさん
2006/04/08(土) 01:21:280798デフォルトの名無しさん
2006/04/08(土) 01:24:490799デフォルトの名無しさん
2006/04/08(土) 01:38:21数行スクリプトなら、こんなので十分。
0800デフォルトの名無しさん
2006/04/08(土) 01:41:15ruby-mode もあるし。
0801デフォルトの名無しさん
2006/04/08(土) 02:57:390802デフォルトの名無しさん
2006/04/08(土) 06:54:45確かにあの非Windows的なキーボードストロークに慣れれば
便利に使えそうな感じはするんだが…
0803デフォルトの名無しさん
2006/04/08(土) 09:31:43他のエディタが全然使えなくなる諸刃の剣
Unix 系のツールには Emacs キーバインドで
操作できるものが意外とあるから、使えると
世界が広がるよ
0804デフォルトの名無しさん
2006/04/08(土) 12:02:320805デフォルトの名無しさん
2006/04/08(土) 12:08:280806デフォルトの名無しさん
2006/04/08(土) 12:43:110807デフォルトの名無しさん
2006/04/08(土) 12:49:13emacsでルbyスクリプトかけてます
0808デフォルトの名無しさん
2006/04/08(土) 12:57:14えまくす?
0809デフォルトの名無しさん
2006/04/08(土) 13:00:460810デフォルトの名無しさん
2006/04/08(土) 14:47:340811デフォルトの名無しさん
2006/04/08(土) 14:58:300812デフォルトの名無しさん
2006/04/08(土) 17:31:49懐かしいな。(昔、 Emu 社の廉価版サンプラーでそういうのがあった)
0813デフォルトの名無しさん
2006/04/08(土) 17:44:150814デフォルトの名無しさん
2006/04/08(土) 17:55:560815デフォルトの名無しさん
2006/04/08(土) 17:56:590816デフォルトの名無しさん
2006/04/08(土) 18:16:45な、俺がきましたよ
0817デフォルトの名無しさん
2006/04/08(土) 18:17:500818デフォルトの名無しさん
2006/04/08(土) 19:38:190819デフォルトの名無しさん
2006/04/09(日) 00:02:30今時代はXPだし。マカも喜んでXP入れてる。
rdocブラウザって作るとおもしろいかもね。
ルビキチのサイトはことごとく、HTMLの代わりにrdocになってるとかさ。
にちゃんも有る意味datサイトなんだけどね。ねらーはdatブラウザ使ってるし。
0820デフォルトの名無しさん
2006/04/09(日) 00:07:340821デフォルトの名無しさん
2006/04/09(日) 00:54:24そうですか。
0822デフォルトの名無しさん
2006/04/09(日) 01:25:12(´・ω・`)つなんでやねん
0823デフォルトの名無しさん
2006/04/09(日) 02:35:390824デフォルトの名無しさん
2006/04/09(日) 11:45:400825デフォルトの名無しさん
2006/04/09(日) 12:32:05Marshalってなぜあんなにコロコロ仕様が変わるんでしょうか
おかげで怖くてPStore使えません……
Marshalといいcgi.rbといい
Rubyは互換性に関する考え方が何かおかしい
0826デフォルトの名無しさん
2006/04/09(日) 12:48:48互換性が必要な箇所で Marshal を使う方が間違いでしょ。
元々そういう(後方互換性しか保証しない)仕様なんだから。
cgi.rb については同意だけど。
0827デフォルトの名無しさん
2006/04/09(日) 14:42:22採用時に無いからとはいえ、中途半端なのが標準添付になると不幸の再生産だとは思う。
変に互換性気にしないと逝けないから、新しく出来ないし。
最近、diff.rb欲しい。今はsystemからdiff呼んでお茶濁してるけど。
0828デフォルトの名無しさん
2006/04/09(日) 14:46:250829デフォルトの名無しさん
2006/04/09(日) 20:52:41いや、普通 Rails です。
0830デフォルトの名無しさん
2006/04/09(日) 21:51:28* textareaとsubmitボタンとドロップダウンリストが一個ずつあるフォームがある。
* textareaに元ネタを書き込んでsubmitすると変換結果がtextareaに表示される。
* ドロップダウンリストで選ぶ値によって変換の仕方を指定できる。
自分は、cgi.rbを使ってサクッと済ませたんですけど、何か問題ありますか?
変換ロジック自体は別で作成済みとして、表示部分にwebブラウザを
使うということで考えてみてください。
0831デフォルトの名無しさん
2006/04/10(月) 00:30:13ttp://raa.ruby-lang.org/search.rhtml?search=diff
0832デフォルトの名無しさん
2006/04/10(月) 00:31:22これだからオプソって・・・
0833デフォルトの名無しさん
2006/04/10(月) 01:03:14配列のdiffなんて要らんよ。
0834デフォルトの名無しさん
2006/04/10(月) 01:42:130835デフォルトの名無しさん
2006/04/10(月) 01:46:05diff/patch/spatchの全てをサポートしてるし
返値がちゃんと独自のクラスで返るから使いやすい
0836デフォルトの名無しさん
2006/04/10(月) 01:49:010837デフォルトの名無しさん
2006/04/10(月) 02:04:38サンクス
入れてみた
0838デフォルトの名無しさん
2006/04/10(月) 03:34:120839デフォルトの名無しさん
2006/04/10(月) 06:08:550840デフォルトの名無しさん
2006/04/10(月) 09:29:54後で騒いだほうが面白いから今は黙ってる
0841デフォルトの名無しさん
2006/04/10(月) 09:34:29本家 nkf は既に仕様変更してるみたいなのでそっちでちょっと騒いでもらえないか。
0842デフォルトの名無しさん
2006/04/10(月) 10:12:41本家はまだだね。
2.1.0で変更するとか言ってるけど。
0843デフォルトの名無しさん
2006/04/10(月) 10:34:56んじゃ、後で期待してます。>>840
0844デフォルトの名無しさん
2006/04/10(月) 16:34:30ttp://www.rubytuesday.com/
ハラヘリ。
0845デフォルトの名無しさん
2006/04/10(月) 17:46:250846デフォルトの名無しさん
2006/04/10(月) 21:23:59ドキュメントないじゃん
0847デフォルトの名無しさん
2006/04/10(月) 22:24:250848デフォルトの名無しさん
2006/04/11(火) 03:00:18ようにしたいんだけどJavaでいうところの
public void hoge(final String str) {...}
みたのってできる?
0849デフォルトの名無しさん
2006/04/11(火) 06:31:40Wall: ええ、「ドロボー」ですね。もっとも、我々言語デザイナーは皆そうですが(笑)。
0850デフォルトの名無しさん
2006/04/11(火) 10:42:19Object.freeze
0851850
2006/04/11(火) 10:44:200852デフォルトの名無しさん
2006/04/11(火) 22:55:26Perlのよいところを引き継いで、オブジェクト指向を取り入れたプロ
グラム言語の名称。詳細情報はURL(http://www.netlab.co.jp/ruby/jp/)
で知ることができる。Windows用のバージョンはURL
(ftp://ftp.netlab.co.jp/pub/lang/ruby/pc/)で公開されている。ただし、
Windows上でrubyを動かすためには、cygwin.dllも一緒にインストールしな
ければならない。
http://www.jiten.com/dicmi/docs/r/10287s.htm
0853デフォルトの名無しさん
2006/04/11(火) 23:14:04なんつーか「誤解されるニッポン・各国教科書編」のノリだな
0854デフォルトの名無しさん
2006/04/11(火) 23:55:05UNIXの世界でデータの操作性が高いC言語と、やりたいことを素早く作成できる
「Shell」の利点を兼ね備え、C言語とshellの利点をフォローする言語として開
発された開発言語です。
http://www.jiten.com/dicmi/docs/p/9309.htm
オブジェクト指向
コンピュータの中に、現実の物や人などを、そっくりそのまま存在させたように
指向する方法論で、オブジェクトに注目して考えを進めていこうとするプログラ
ミング方法論もあります。
http://www.jiten.com/dicmi/docs/k5/14682.htm
0855デフォルトの名無しさん
2006/04/12(水) 00:05:210856デフォルトの名無しさん
2006/04/12(水) 00:26:08>public void hoge(final String str) {...}
のfinalって
str = "hoge";
と参照先を変えることを出来なくなるようにする機構だぞ。そんなのが欲しいのか?
0857デフォルトの名無しさん
2006/04/12(水) 09:47:14> 間違えた obj.freeze (Object#freeze) だな
のfreezeって
hoge(obj)
を抜けてからもobjの変更が出来なくなるようにする機構だぞ。そんなので良いのか?
0858デフォルトの名無しさん
2006/04/12(水) 11:14:27http://www.atmarkit.co.jp/fdotnet/special/monad01/monad01_01.html
0859デフォルトの名無しさん
2006/04/12(水) 11:22:52Haskell のインタラクティブシェルかと思った
0860デフォルトの名無しさん
2006/04/12(水) 11:25:49>def cd(path) Dir.chdir(path) end
>cd /usr/bin
とかできるとがんばってラップしていけばすごい事になりそうな気が。
0861デフォルトの名無しさん
2006/04/12(水) 11:28:500862デフォルトの名無しさん
2006/04/12(水) 11:31:390863デフォルトの名無しさん
2006/04/12(水) 11:39:010864デフォルトの名無しさん
2006/04/12(水) 11:48:21ShellCommand = %w(ls cd ...)
と登録しておいて入力行にフィルタかまして
Shell.ls(*args), ...
に飛ばせたら面白そうだな。弄ってみよ
破綻すっかな?
0865デフォルトの名無しさん
2006/04/12(水) 11:49:26って事はdupしてからか
何にしても質問者の意図が判らんのがなぁ
0866デフォルトの名無しさん
2006/04/12(水) 12:37:22848じゃないが、ほしい。
俺は他の言語も使ってるとほしくなる。
引数には、変更する変数でない限りconstつけるので。
むしろ、デフォルトでfinalでいいよ。
変更したいときだけ、mutableをつける。
まあ、俺言語の話。
0867デフォルトの名無しさん
2006/04/12(水) 13:17:18そんなことでバグが出るとも思えん。
void foo(const int* p);
ならわからんことはないが、finalつけて得られるのは
void foo(int* const p);
だぞ。
0868デフォルトの名無しさん
2006/04/12(水) 14:13:58最近の言語の動向を知らない人ですねw
0869デフォルトの名無しさん
2006/04/12(水) 14:22:21Rubyに入れることに意味があるのかわからん。
0870デフォルトの名無しさん
2006/04/12(水) 14:22:27最近の言語の動向の説明もできない人ですねw
0871デフォルトの名無しさん
2006/04/12(水) 15:59:280872デフォルトの名無しさん
2006/04/12(水) 23:13:08削除するスクリプトを書こうとしたら、Dir.glob( '*' )で見つからなかった。
スペースがいっぱい入ってるファイルは、Rubyで認識できないのかな?
ちなみに、cygwin+ruby1.8.4。
0873デフォルトの名無しさん
2006/04/12(水) 23:14:56Dir::open でもダメ?
0874デフォルトの名無しさん
2006/04/12(水) 23:31:53見つかるよ?
ruby1.8.4 cygwin, mswin32
で確認
0875デフォルトの名無しさん
2006/04/12(水) 23:58:520876デフォルトの名無しさん
2006/04/13(木) 01:17:40駄目みたいです。
あと説明悪くて、ごめん。872くらいの短いファイル名だと見つかります。
とりあえず、↓のファイル名だと駄目でした。間にスペースが150個くらい
はいっています。
あああああああああああああああああああああああああああああああああ
あああああああああああああああああああああああああああああああああ
あああああ ああああああああああ.mpg.txt
0877デフォルトの名無しさん
2006/04/13(木) 01:20:25ああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああああああ
ああああああああああああ.mpg.txt
0878デフォルトの名無しさん
2006/04/13(木) 01:26:06const状態では、破壊的メソッドが呼べなくなるような。
#↓こんな感じのです
a = Foo.new
b const = a
a.bar! #破壊的メソッドが呼べる
b.bar! #こっちはエラーとなる
0879デフォルトの名無しさん
2006/04/13(木) 01:36:140880デフォルトの名無しさん
2006/04/13(木) 01:44:29freezeでは、その後、どこからも変更が出来なくなってしまいます。
やはりfreeze以外で似たような機能はないのでしょうか。
無いとしたら次のようなときは、皆さんどうしてるのでしょうか?
class Hoge
def initalize
@a = "..." # 巨大な文字列、または配列等
end
def get
return @a
end
end
これだと、
hoge.get[0]=0
と外部から変更出来てしまいます。
constがあると、変更されないで外部に見せれるのですが。
もうdup等するしかないのでしょうか?
0881デフォルトの名無しさん
2006/04/13(木) 02:10:20「そもそも内容を変更できないクラス」
を作ってしまうというのも手かも。
既存クラスに対してそれをやりたいときは、破壊的メソッドをテッテ的にundefするとか。
とOOPかじりかけて歯が欠けた漏れが申しておりますがときに皆の衆どうよ。
# ちなみに>880の例はあくまで例であって、
# 「そりゃ@aを生で晒したらいじり放題なの当たり前やん」ってのは野暮な突っ込みだよね?
0882デフォルトの名無しさん
2006/04/13(木) 04:08:29確認した。
長いファイル名だと駄目みたいだな。
パスが255文字以上の時の問題じゃなかろうか。
ソース読めば分かるのかな?
0883デフォルトの名無しさん
2006/04/13(木) 04:09:40ラッパー作って、破壊不可にするのがスマートじゃね?
0884デフォルトの名無しさん
2006/04/13(木) 05:52:300885デフォルトの名無しさん
2006/04/13(木) 11:40:500886デフォルトの名無しさん
2006/04/13(木) 11:47:14freezeが解けたら意味ないからじゃないの。
0887デフォルトの名無しさん
2006/04/13(木) 17:55:400888デフォルトの名無しさん
2006/04/13(木) 18:00:350889デフォルトの名無しさん
2006/04/13(木) 18:22:560890デフォルトの名無しさん
2006/04/13(木) 22:33:44どうでもいいけどCharNextいらね。
ついでにglob_call_funcもいみね。
0891デフォルトの名無しさん
2006/04/14(金) 09:30:52これが動かないのは納得できない
0892デフォルトの名無しさん
2006/04/14(金) 10:05:26動いてるみたいだけど?
hase がどうなるのを期待してるの?
0893デフォルトの名無しさん
2006/04/15(土) 00:35:43ancestors の逆みたいなものってありますか?
class Command; end
class Ls < Command; end
class Rm < Command; end
ってあった場合に、[Ls, Rm] という結果がほしいです。
0894デフォルトの名無しさん
2006/04/15(土) 00:46:00クラスツリーができるわけだな
0895デフォルトの名無しさん
2006/04/15(土) 06:44:05hase = Hash.new{|hash,key| hash[key] = [] }
上のような結果が得られないのが納得できないのでは?
まぁ、はまりやすいポイントですな。
そんな私もはまりました。デフォルト値と初期化を勘違いしてた…
0896デフォルトの名無しさん
2006/04/15(土) 14:39:40class Command
@@children = []
def self.inherited(child)
@@children << child
end
def self.children
@@children
end
end
class Ls < Command; end
class Rm < Command; end
p Command.children # => [Ls, Rm]
0897デフォルトの名無しさん
2006/04/15(土) 18:18:050898896
2006/04/15(土) 19:48:31クラス変数が継承されるの忘れてたorz
でもこれじゃchildrenでもdescendantsでもなくてrelativesだな。
0899デフォルトの名無しさん
2006/04/16(日) 07:01:31h = Hash.new
Module.constants.sort.each do |i|
con = Object.const_get(i)
next unless con.class==Class
con.ancestors.each do |mod|
next if mod==con
next unless mod.class==Class
h[mod.name] ||= []
h[mod.name].push con.name
break
end
end
h.each_key do |k|
puts k
h[k].each {|i| puts "\t" + i}
end
0900デフォルトの名無しさん
2006/04/16(日) 15:09:21あまり何も考えずにancestorsの逆があればいいのになぁ。。。
と思ってたんですが一般化しようとすると結構面倒そうですね。
今回は継承も1段階で単純なので以下のようにしました。
どうもありがとうございました。
module Shell
HOGE = 1
class Command
def self.commands
Shell.constants.map {|e| Shell.const_get(e) }.find_all {|e| Class === e and e < self }
end
end
class Ls < Command; end
class Rm < Command; end
class Hoge; end
end
p Shell::Command.commands # => [Shell::Rm, Shell::Ls]
0901デフォルトの名無しさん
2006/04/17(月) 11:46:41メソッド名は気にしない方向でこんな感じ?
class C
def self.subclasses
(@subclasses ||= [])
end
def self.inherited(c)
subclasses << c
end
def self.descendants
subclasses + subclasses.map do |c|
c.subclasses
end.flatten
end
end
class D1 < C
end
class D2 < C
end
class E1 < D1
end
p(C.subclasses) # => [D1, D2]
p(C.descendants) # => [D1, D2, E1]
p(D1.descendants) # => [E1]
0902デフォルトの名無しさん
2006/04/17(月) 20:56:24ってWinだとどこのディレクトリになるの?
0903デフォルトの名無しさん
2006/04/18(火) 00:02:12"~"がどこに当たるかって話だよね?
NT系だと%USERPROFILE%
(たいていC:\Documents and Settings\ユーザー名)
9x系は分からん。
0904デフォルトの名無しさん
2006/04/19(水) 01:04:211.9ユーザ発見。
> NT系だと%USERPROFILE%
基本的には%HOME%だけど、1.9では、初期化時に設定されていなければ、
以下の順序で最初に見付かったものをセットするようになっている。
1 %HOMEDRIVE%%HOMEPATH%
2 %USERPROFILE%
3 マイ ドキュメント
0905903
2006/04/19(水) 02:41:50あり? 漏れ1.8.4(i386-mswin32)だがそれでいけたけど。
ちなみにHOMEを別途設定して、%HOME%に.irbrcを置いても
%HOMEDRIVE%%HOMEPATH%に.irbrcを置いても読んでるぽい。(両方に置いたらどうなるかは試してない)
ひょっとしてirbが自力更生(?)してるのかな。ソース読む気力無いので後は知らない(ぉぃ)
てか%USERPROFILE%より%HOMEDRIVE%%HOMEPATH%が先なのか。スマソ>902
0906デフォルトの名無しさん
2006/04/19(水) 09:34:07irbはカレントディレクトリにあるのも読むぞ。
そういうことじゃないか?
0907デフォルトの名無しさん
2006/04/19(水) 21:41:13みたいなArrayを
p x.sort_ex
#=>[[1, 2, 3], [1, 1, 7], [3, 2, 9], [5, 3, 7], [5, 4, 8]]
みたいに一番最初の要素のみでソート(重複した場合はソースの順番)したいんですが何かお手軽な方法はありますか?
普通にsortすると2番目以降も反映されてしまいますし
def sort_ex
self.sort{|a, b|
a[0]<=>b[0]
}
end
みたいにすると重複した場合にソースの順番がバラバラになってしまいます
0908デフォルトの名無しさん
2006/04/19(水) 22:12:08[[1, 2, 3], [5, 3, 7], [1, 1, 7], [3, 2, 9], [5, 4, 8]].sort_by {|e| e[0]}
0909デフォルトの名無しさん
2006/04/19(水) 22:18:03sort_byだと安定じゃないみたいなので907の望むのとは違ってるよ。
ヘルプに載ってた例だけど、下のような感じで書けばいいらしい。
i = 0
ary.sort_by {|v| [v, i += 1] }
でも、i が綺麗じゃないねぇ。
0910デフォルトの名無しさん
2006/04/20(木) 00:18:16……その通りですたorz
重ね重ね相済まぬ>902
0911デフォルトの名無しさん
2006/04/20(木) 01:17:530912デフォルトの名無しさん
2006/04/20(木) 03:02:57self.zip((0..self.size).to_a).sort_by{|e| [yield(e[0]),e[1]]}.map{|e| e[0]}
end
0913デフォルトの名無しさん
2006/04/20(木) 19:15:470914912
2006/04/20(木) 21:56:14enum_for知らなかった。こりゃ便利。
def stable_sort_by
self.enum_for(:each_with_index).sort_by{|e,i| [yield(e),i]}.map{|e,| e}
end
0915デフォルトの名無しさん
2006/04/21(金) 01:30:360916907
2006/04/22(土) 02:07:35出来ました…が、使ってみてリバースソートできないことに気が付いた…il||li ○| ̄|_
もう少しいじってみます…
0917デフォルトの名無しさん
2006/04/22(土) 04:49:260918デフォルトの名無しさん
2006/04/23(日) 03:28:450919デフォルトの名無しさん
2006/04/23(日) 09:39:04kwsk
0920デフォルトの名無しさん
2006/04/23(日) 16:38:35class BBS
FILE='bbs.txt'
def initialize
@db=PStore.new('bbs.db')
end
def print
@db.transaction{
@db.roots.each{|name|
x=@db[name]
file=File.join(x['dir'],FILE)
if(!File.exist?(file),'w') then
open(file){|f| f.puts(x['url'])
end
}
}
end
end
class Sure
FILE='sure.txt'
def initialize
@db=PStore.new('sure.db')
end
def print
@db.transaction{
@db.roots.each{|name|
x=@db[name]
file=File.join(x['dir'],FILE)
if(!File.exist?(file)) then
open(file,'w'){|f| f.puts(x['title'])
end
}......
0921デフォルトの名無しさん
2006/04/23(日) 16:58:31class MyPrint #モジュールでも良いかもね
def print
@db.transaction{
@db.roots.each{|name|
x=@db[name]
file=File.join(x['dir'],FILE)
if(!File.exist?(file),'w') then
open(file){|f| fputs f, x }
end
}
}
end
end
class BBS < MyPrint
FILE='bbs.txt'
def initialize
@db=PStore.new('bbs.db')
end
def fputs(f, x)
file.puts(x['url'])
end
end
class Sure < MyPrint
FILE='sure.txt'
def initialize
@db=PStore.new('sure.db')
end
def fputs(f, x)
file.puts(x['title'])
end
end
0922921
2006/04/23(日) 16:59:330923デフォルトの名無しさん
2006/04/23(日) 21:47:12FILEは?
0924デフォルトの名無しさん
2006/04/23(日) 22:35:39http://www.emeditor.com/jp/pro6.htm
0925デフォルトの名無しさん
2006/04/24(月) 08:53:47f.putsのところを別メソッドに切り出す。
class AbstractBBS
def func()
raise NotImplementedError.new # 切り出した部分
end
def print
...
func()
...
end
end
class BBS < AbstractBBS
def func()
# f.putsの処理その1
end
end
class Sure < AbstractBBS
def func()
# f.putsの処理その2
end
end
0926デフォルトの名無しさん
2006/04/24(月) 10:56:09ありがとうございます
NotImplementedErrorなんてのがあるのか
抽象メソッドが作れるですな
0927デフォルトの名無しさん
2006/04/25(火) 13:51:150928デフォルトの名無しさん
2006/04/25(火) 13:52:020929デフォルトの名無しさん
2006/04/25(火) 14:56:220930デフォルトの名無しさん
2006/04/25(火) 18:24:30なるほど、そういうことでつか。
0931デフォルトの名無しさん
2006/04/25(火) 18:51:110932デフォルトの名無しさん
2006/04/25(火) 21:20:030933デフォルトの名無しさん
2006/04/25(火) 22:00:500934デフォルトの名無しさん
2006/04/25(火) 22:12:050935デフォルトの名無しさん
2006/04/25(火) 23:40:240936デフォルトの名無しさん
2006/04/26(水) 00:22:19ttp://nijiura-os.hp.infoseek.co.jp/security/norton/01.jpg
まさにその通りなんですけど?
0937デフォルトの名無しさん
2006/04/26(水) 20:17:310938デフォルトの名無しさん
2006/04/26(水) 20:58:470939デフォルトの名無しさん
2006/04/28(金) 00:08:52忘れかけてた。これどうなった?>>882くらいで終わってる感じだけど。
ソース読み切れなくてもいいからさ、確認できた人が報告した方が将来の誰かのためにもなると思うよ。複数の環境で再現できるのが確認できてるわけだし。
0940デフォルトの名無しさん
2006/04/28(金) 00:49:13Cygwin だと Ruby に限らずファイル開けないっぽいね。
0941・∀・)っ-○●◎ ◆Pu/ODYSSEY
2006/04/28(金) 00:56:55Cygwin版使うのはApache立ち上げて自作CGIのテストやるとき
0942デフォルトの名無しさん
2006/04/28(金) 01:19:30Cygwin 側の問題ならスレ違い
別の言語や別の環境で試してみてくれよ
0943デフォルトの名無しさん
2006/04/28(金) 01:41:090944デフォルトの名無しさん
2006/04/28(金) 05:28:30(要.NETFramework2.0)
http://www.gotdotnet.com/workspaces/workspace.aspx?id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=f5bb7def-7c71-40d0-9ad7-81e60e85e3db&DisplayLang=en
0945デフォルトの名無しさん
2006/04/28(金) 13:49:53メンテナが対応パッチまで作ってたから、報告はいらないんじゃね?
0947デフォルトの名無しさん
2006/04/28(金) 22:08:590948デフォルトの名無しさん
2006/04/28(金) 22:27:19ext/dl 使えばなんでもできそうな気はする、とは言っておこう。
0949・∀・)っ-○●◎ ◆Pu/ODYSSEY
2006/04/28(金) 22:37:070950デフォルトの名無しさん
2006/04/28(金) 22:40:580951デフォルトの名無しさん
2006/04/29(土) 00:31:580952デフォルトの名無しさん
2006/04/29(土) 01:19:000953947
2006/04/29(土) 05:31:18Linux です
system("mkfifo hoge") で、FIFO作るのはできるんだけど、
opneして、getsで読み込み一回したあとは gets が即 nil で返ってきちゃう。
あと、書き込み側がopenするまで open() から返ってこないのも・・・
Cで
mkfifo()
open("hoge", O_RDONLY|O_NONBLOCK) した時と同様の挙動をさせたいんですが、
どうすればいいんでしょうか。
0954デフォルトの名無しさん
2006/04/29(土) 14:29:13File.open("hoge", File::RDONLY|File::NONBLOCK)
0955デフォルトの名無しさん
2006/04/29(土) 20:10:32今日のドナドナ夫
今日の黄金水
今日の「やっぱこれからはデジモでしょ」
今日のがまん汁委員会
今日の「あーそうさ.オレらはどうせしもじもですよ.」
今日の「やっぱイジメたいです.とことんまで.」
今日の「最近ヤツの動きが少なくてツマラン」
今日の「tDiaryはモテ系ってマジ?」
今日の「クソババァって誰のことよ?」
0956デフォルトの名無しさん
2006/04/30(日) 00:06:36日本の Ruby コミュニティは RDoc 好きじゃないんじゃない?
標準ライブラリには入ってるけど積極的に使ってる人いない気がする
0957デフォルトの名無しさん
2006/04/30(日) 10:04:48いいサイト紹介キボン。
0958デフォルトの名無しさん
2006/04/30(日) 13:09:04ちょこちょこ使う分なら、ググった出てくる情報をさっと読めば使えると思うが。
最近は、日本語の説明も見掛けるし。
下手すりゃ RD よか、よっぼど分かりやすい。
0959デフォルトの名無しさん
2006/04/30(日) 13:55:37いや、煽りじゃなくて。
どんな時につかうのかなーと思って。
ソース内のコメントに使う?
0960デフォルトの名無しさん
2006/04/30(日) 15:16:280961デフォルトの名無しさん
2006/04/30(日) 15:33:48COPYING読んだら「GPLに基づく」と書いてあるけど、でもGPLそのままというわけではないんだよね。
0962デフォルトの名無しさん
2006/04/30(日) 17:04:39BSDだと論文と同じ扱いで著作権は堅持、
この中間で行くってことじゃないの?
0963デフォルトの名無しさん
2006/04/30(日) 17:44:080964デフォルトの名無しさん
2006/04/30(日) 20:55:10むしろ日本語としては問題ないが意味がわからない。
A=B,B=CなのでA=(B+C)/3
と言ってるようなもん。
0965デフォルトの名無しさん
2006/04/30(日) 21:00:000966・∀・)っ-○●◎ ◆Pu/ODYSSEY
2006/04/30(日) 21:03:25いちどGPLを選択したら他のライセンスに変更できない融通のきかなさ。
>>965
商用利用考えるなら普通はBSDライセンスのほうが流用しやすい
0967デフォルトの名無しさん
2006/05/01(月) 16:37:29デュアルライセンスだからGPLまたは下記のライセンスに従え、と書いてあるだけじゃん。
0968デフォルトの名無しさん
2006/05/02(火) 00:19:17↑これどうにかならない?
0969デフォルトの名無しさん
2006/05/02(火) 00:43:59スーパー括弧みたいのが欲しいってこと?
0970デフォルトの名無しさん
2006/05/02(火) 01:02:04{と}で良かった。
0971デフォルトの名無しさん
2006/05/02(火) 01:08:09end*8 みたいにすると do の数を数えなきゃならないから逆効果
解決方法思いついたけどPythonになった orz
0972デフォルトの名無しさん
2006/05/02(火) 01:13:270973デフォルトの名無しさん
2006/05/02(火) 08:15:230974デフォルトの名無しさん
2006/05/02(火) 09:40:140975デフォルトの名無しさん
2006/05/02(火) 10:20:32end乱舞は見た目がきもい
0976デフォルトの名無しさん
2006/05/02(火) 10:23:100977デフォルトの名無しさん
2006/05/02(火) 10:24:400978デフォルトの名無しさん
2006/05/02(火) 11:25:48end よりはマシ
スクリプト言語だぞゴラァと言いたいためだけに
わざわざbegin end を使っているとすら感じる
0979デフォルトの名無しさん
2006/05/02(火) 11:46:010980デフォルトの名無しさん
2006/05/02(火) 11:48:24お前のヘタレプログラミングをなんとかするか、
Pythonに鞍替えすればいいじゃん。
今更どーこー言おうが、{}にはならんよ。
互換性がどうこううるさいヤツもいるってのに。
0981デフォルトの名無しさん
2006/05/02(火) 11:52:00おぇっ やめてくれ
あの趣味の悪さと中途半端さ、途中でどの言語で
書いてるか判らなくなる文法の汚さは、悪魔の言語
0982デフォルトの名無しさん
2006/05/02(火) 12:00:41はいはい、貴方が大好きなC系の言語に似てないと、全部汚い文法なんだよねー。
0983デフォルトの名無しさん
2006/05/02(火) 12:18:05良くわかってんじゃん。
0984デフォルトの名無しさん
2006/05/02(火) 12:55:530985デフォルトの名無しさん
2006/05/02(火) 14:20:14vimに乗り換えればOK
0986デフォルトの名無しさん
2006/05/02(火) 14:33:42Perlの暗黙標準出力なんかがぱっと浮かんだけど
0987デフォルトの名無しさん
2006/05/02(火) 15:04:490988デフォルトの名無しさん
2006/05/02(火) 16:44:090989デフォルトの名無しさん
2006/05/02(火) 17:11:37C系は普段使う/使わざるを得ない古女房。Rubyは誰にもないしょで出会う秘密の恋人。
つまりだな、Rubyは一夫多妻制という教祖の思想を反映した言語だったんだよ!
0990デフォルトの名無しさん
2006/05/02(火) 17:42:100991デフォルトの名無しさん
2006/05/02(火) 18:00:30カッコだったら簡単にわかるけど、endだとそれがわからない。
もしそれだけが問題なら、例えばendにカーソルをおくと対応するifやdefをハイライト表示するような、
エディタのマクロやIDEのプラグインを誰かが用意してあげればいいってこと?
それ以外に問題点ってある?
0992デフォルトの名無しさん
2006/05/02(火) 18:17:490993デフォルトの名無しさん
2006/05/02(火) 18:49:35不評なので取り下げるそうだ。
[ruby-dev:28608]
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/28608
0994デフォルトの名無しさん
2006/05/02(火) 19:46:100995デフォルトの名無しさん
2006/05/02(火) 19:47:13ハイライト表示用の設定ファイル有った希ガス
0996デフォルトの名無しさん
2006/05/02(火) 21:33:09begにしよう
0997デフォルトの名無しさん
2006/05/02(火) 21:36:120998デフォルトの名無しさん
2006/05/02(火) 21:44:41beginが残ってて…
お前本当にRubyやってんのか?
0999デフォルトの名無しさん
2006/05/02(火) 22:10:31http://pc8.2ch.net/test/read.cgi/tech/1146575324/
テンプレに不備とかあったらスマン
1000デフォルトの名無しさん
2006/05/02(火) 22:17:3410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。