CVS も web も復活したってことは、もう全部復活したってことか?
と聞いてみる。
cvs web は?
鯖はRubyで作られてるの?
だからクラックされたとか?
魚偏にブルーと書いて鯖
俺が建てた前スレもようやく終焉か・・・。
鯖削除とか難民板に移動とか色々あったが、なんかうれしいな。
魚偏にブルーと書いたら、魚ブルー。
>1-2をみておもったんだがRDのインデントはIEだとつぶれちゃうんだな。
インデントでブロックを表す言語のスレは大変そうだ。
複数行の普通のスクリプトをone liner用の引数に変換することってできない?
要するにテキストの断片をスクリプトとして実行したいんだけど。
一時ファイルに出力してそのファイル名渡してやるしかないのかな。
$ ruby -e 'puts "hogehoge
hogehoge
hogehoge
hogehoge"'
できますがなにか?
>>前973
>drubyで簡単にアプリケーションサーバ立てられるところがよいと思う
すんまそん、逆です。PHP のほうが優れているところと、Ruby でそれを
再現する方法はどんなもんかなと。
>>11 もしくは
$ ruby -e 'puts "hogehoge' \
-e 'hogehoge' \
-e 'hogehoge' \
-e 'hogehoge"'
>>10 そのテキストの断片を標準出力に吐くプログラム作ってパイプでrubyに渡せば?
標準入力でスクリプト受け取れるんだっけ
>>15 受け取れるけど、そのスクリプトで標準入力を必要としてたら使いものにならないし。
Object#type ってどうして Object#class になったんだっけ?
FooClass#typeっていうメソッドを作りたいやつが意外にたくさんいたから。
typeとかidとかいう一般的すぎる名前が使われちゃってるのはマズい。
>>18 なるほど。
レシーバ無し class は (予約語で) 使えないから type よりはマシ、
ってことなのかな?
Nora の標準添付まだあ?
21 :
デフォルトの名無しさん:04/06/25 13:31
ruby-devでリクエストすればいいと思う
日本で最もゆるいライセンスってなんですかね。
法的に勝手に発生する著作権はしょうがないにしても
それを一切主張するつもりがないので一部または
全部を好き勝手に使ってくれって言うようなの。
自称PDSが近いのかな。
コピーライト打って末尾にpublic domainとでも書けばいいじゃん
ライセンスと言えばこれが好き
[ruby-talk:24727]
> Permission is granted to anyone to use this software for any purpose,
> including commercial applications, and to alter it and redistribute it
> freely, subject to the following restrictions:
>
> 1. DO NOT SUE ME.
> 2. DO NOT EVEN THINK ABOUT SUING ME.
こっちのほうがもっと好き。
[ruby-list:30086]
> もう一度、私の望むところを3点ほどはっきりさせてお
> くと
>
> * 訴えられたくない
> * 訴えられたくない
> * 訴えられたくない
>
> です。これ以上のことは望みません。
何でDLできんのだろうと思ったら、ゾヌアラームが不正なアクセス扱いしてやがったw
Noraというのはそんなに素晴らしいのか?
漏れはCGIで満足・・・
いや、cgi.rbはタコだろ。cgi.rbがすばらしいならこんなにたくさんオルタナティブが存在するはずがない。
cgi.rb もそうだけど、 Net::HTTP もアレなので、
漏れはすっかり Nora 信者になったよ。
ファイル分割してクラスを管理すると
already initialized constant
がよく出てくるんだけど、
これを避けるいいガイドラインとかないですか
>>30 ファイル分割してクラスを管理してるけど、そんなの出たことねーな。
何やったらそんなの出るの?
[a.rb]
require 'b'
require 'c'
class A;X='';end
[b.rb]
require 'a'
require 'c'
class B;Y='';end
[c.rb]
require 'a'
require 'b'
class C;Z='';end
$ ruby a.rb
a.rb:3: warning: already initialized constant X
$ ruby b.rb
b.rb:3: warning: already initialized constant Y
$ ruby c.rb
c.rb:3: warning: already initialized constant Z
>>32 > $ ruby a.rb
> a.rb:3: warning: already initialized constant X
a.rb を引数で渡したときは、a.rb は require された
わけじゃないから、b.rb を require したときに、
require 'a' でロードされる。 ってことだろ
まあ、納得できないほどの挙動じゃないが
気になるなら ruby-list で聞けば?
クラス定義より先にrequireが来てるからa.rb(3)でエラーが起きて普通かと
$ cat a.rb
require 'a'
A=1
$ ruby a.rb
a.rb:2: warning: already initialized constant A
インタプリタ起動時に $" に $0 をつっ込むような挙動にすればいいじゃんと思ったけど
何か問題あるっけ?
requireでa.rを呼び出す
呼び出されたa.rbは既に呼び出されたa.rbの呼び出しを無視する
呼び出されたa.rbがAを宣言する
元のa.rbがAを宣言する ※エラー
こんな挙動では?
38 :
デフォルトの名無しさん:04/06/26 00:04
URI()よりURI[]のほうがRubyらしくねぇか?
まつもとの主張って根拠レスと思う
>>38 Ruby的かどうかは誰が決めるんでしょうねえ(プゲラ
NoraのとこはなんでRwiki止めてんだろう
意見調整とか、合意に時間をかけるのがRubyの開発の特徴と思われ。
要は、主張がなんであれ「説得できたほうが勝ち」であって、
どんなに良い主張であれ「説得できなかったら負け」。
嫌な世の中だ・・・
言いたいことも言えないこんな世の中じゃ
46 :
デフォルトの名無しさん:04/06/26 16:50
cygwin上でRuby動かしているのですが、プロセスを起動するときに
warning: Insecure world writable dir
と出ます。
何か手軽にwritable dirを制限してwarningを消す方法は無いですか
*Rubyのバージョン
*どうやってインストールしたか
*どんなスクリプトで warning が出るか
とか情報キボンヌ
RPGツクールにRubyが採用されたってことは、
発売後、ここは厨の質問で溢れかえるんかな
流石にスレッドを分けると思われる
VBスレでVB.NETの話をされても困るのと同じ
そもそも板が違うし。
ただ文法レベルの質問は増えるだろうね。
その時何が起こるかはHSPスレを見るといい。
しかし何でよりにもよってRubyなんだろう
組み込みのノウハウをフィードバックしてくれると嬉しいけど、
さすがに無理かな。
56 :
デフォルトの名無しさん:04/06/27 12:17
>>53 コード盗られた
ノウハウを盗られたと
enterbrainから訴えられたりして
Rubyをカスタマイズって謳ってるんだから訴えは無理だろ
>>47 cygwin - 1.8.1 で
スクリプトの中で
`#{なんかのコマンド}`
を実行したときです
いちRubyプログラマとして思うんだが
なんか、MLであまり質問が飛ばず
匿名の掲示板で質問ガンガン来るって
なんか無知を晒すのを恐れすぎてるっていうか。
クソな質問しちゃって後悔した経験が多いのかな。
とにかくどうということはないがそう思った。
糞なプライドが高いからね
例えばCの仕様書の一部を読んで
○○を××と思ってる奴はプログラマ辞めろ
とか書きたくなっちゃう人が多いもより
def initialize(foo, bar); @foo, @bar = foo, bar; end って書くのめんどい。
def initialize(@foo, @bar); end って書かせろ。
やだ
>なんか、MLであまり質問が飛ばず
>匿名の掲示板で質問ガンガン来るって
MLって開発者サイドというイメージがあって俺的には邪魔しちゃ悪いかなって
思ってたんだが。
59の意見はつまり>38の様な質問を匿名でMLに流し、後になってJamesGoslingとかRallyWall
だったということが判明し、MLが祭り状態になる、、、、というのを妄想している訳か。
64 :
デフォルトの名無しさん:04/06/27 22:15
俺もやだな
>>61 漏れは悪くないと思う
なんか悪いことでもあるかね
>>63 > MLって開発者サイドというイメージがあって
そうかね? ruby-list なんかは、もっと初心者の質問が飛び交っててもいい希ガス
開発者サイドのMLは英語でやり取りされてるから
>>65 暗黙的に代入されるのはわかりにくいし、ちょっと気持ち悪い。
>>67 ruby-talkは開発者用ってわけじゃないぞ。
それをいうならdevかcoreだ。
core英語じゃん。
devも挙げられてるのに
>>66 いぜんはもっと初心者の質問もとびかってたような。
Ruby の本が巷にあふれだしたころから、初心者の
質問がへった気がする
今の流量は talk>>>dev>list=coreくらい?
コアなメンバの人達も、昔はdevやlistで話してたようなネタを
今は日記で済ましてるような希ガス
74 :
デフォルトの名無しさん:04/06/28 12:49
Cのscanfと同じはたらきをさせるにはどうしたらいいんでしょうか。
>>74 まんま scanf.rb ってのが標準添付されとるよ。
>>61 だいぶ前だが、そのリクエストはruby-dev:2154で出ている。
>>77 talkでも繰り返し出てる。
誰か、藻前らちょっとは検索しろといってやって…も無駄だろうな。
79 :
デフォルトの名無しさん:04/06/28 23:14
>>79 「def initialize(@foo, @bar); end」
>>79 initialize instance variableでかなり引っかかる
82 :
デフォルトの名無しさん:04/06/29 11:56
"abc:def"というような、:で区切られた文字を分割して
2つのStringにしたいのですが、scanを使った場合どう書けばいいんでしょうか。
split 使えば。
84 :
デフォルトの名無しさん:04/06/29 12:05
splitを使うとどんな風に書けますか?
>>84 最近の若い者は perldoc すら見ないですか?
perldoc -f split
>>84 ゴメン。大きな勘違いをしてたらしい。
お詫びに。
str1, str2 = "abc:def".split
>>86 refe String#split
とか言ってみたり。
それはともかく、 "abc:def".split だと分割できないよ。
str1, str2 = "abc:def".split(":")
split の引数には正規表現を与えることもできる。
88 :
デフォルトの名無しさん:04/06/29 14:32
次のようなスクリプトを考えているんですが、これをscanかsplitなどで分割するには
どうすればいいんでしょうか。
@command[param1,param2,...]
・1つの行は@で始まる
・@の次にはコマンドが来る
・引数は[ ]で指定され、その中は,で区切られる
・引数の数は可変である
まずマッチングでコマンド部分と []と引数を分け、
引数を ','で split
91 :
デフォルトの名無しさん:04/06/29 18:45
CGIを作っているんですが、
URLの後に
test.cgi?foo=1&bar=2
などという感じで入力した値を取得するにはどうすればいいんですか?
>>79 過去のruby-devやruby-listぐらい全部よんで内容を頭の中に入れておけ。
常識だぞ。
マジで
古すぎだろ。
ruby -e 'p "abc:def".scan(/[^:]+/)'
#=> ["abc", "def"]
>>92 「あなたって、優しすぎるの。」といわれて振られてそうだな
質問させてください。
"The <B>brown fox</B> jumps over the <S>laszy</S> dog".gsub(/<.*>/,"<TAG>")
を実行して、期待した動作は
=> "The <TAG>brown fox<TAG> jumps over the <TAG>laszy<TAG> dog"
なのですが、実際は
=> "The <TAG> dog"
のようになってしまいます。
仕様がないので、文字列を each_byte でひとつひとつ調べて "<"と">"が来るたびにフラグを立てて処理しています。
スマートな記述方法はないでしょうか?
*ではなく*?
最短一致知らなくても
<[^>]*>
って書けるだろ
即レス感謝です
最短一致というのがあるのですね。知りませんでした。
<[^>]*> の方も理解出来ました。
おかげさまでスマートに記述出来ました。
ありがとうございました。
オレには <[^>]*> が理解出来ない。
なんでこれで最短一致になるの?
おせえてエロい人
[^>]の意味を考えよう
>>106 それが最短一致になるなんて誰も言ってないでしょ。
110 :
デフォルトの名無しさん:04/07/01 05:05
今月の誕生石はRubyですよage
111 :
デフォルトの名無しさん:04/07/01 09:39
dateコマンドの date --date '1 day ago' の様に当日から1日前の日付を
参照したいのですが、Time.now-1.day としても思う様な値が出ませんでした。
なにか良い方法はございますか?
(Date.today-1).day
カッコつけないと、 day はそもそも 1 のメソッド扱いになっちゃうし、
Time.now - 1 は1秒前だし……。
$ ruby -rdate -e 'd=Date.today; puts "#{d} #{d-1}"'
2004-07-01 2004-06-30
>>109 そのページの説明が間違ってる。
「空文字」の説明なんて意味不明。
115 :
デフォルトの名無しさん:04/07/01 14:30
116 :
デフォルトの名無しさん:04/07/01 15:33
$ ruby -rmkmf -e 'create_makefile("hoge")'
で出来るMakefileでは
installとsite-installの両方/usr/local/lib/site_ruby/方面にインストールされる
1.6の時はちゃんと区別されてたんだけど
なんでですか?
extmk.rbでコンパイルされるものだけが$(rubylibdir)にインストールされるようになった。
それ以外はsite_ruby
>>117 なるほど、どうもです。
どうやら開発者の方の個人的趣味でsite-installと同じになったみたいです。
でも、extmk.rbはmkmf.rbとは違う使い方をするみたいで、よくわからんなぁ
$(rubylibdir)は標準添付されたものを置くところ。
それ以外のものを置こうってこと自体がおかしい。
そのためにsite_rubyがあるんだから。
119のいうとおり。
site-installというターゲットは互換性のために残されているだけ。
でも、$(rubylibdir)に入れるターゲットを別途用意してもよかったかもね。
121 :
デフォルトの名無しさん:04/07/02 15:45
rubyってHSPみたいにゲームとか作ったり出きるんですか?
そして、exeファイルとかにできるんですか?
>>121 可能。可能。
ただし一口に「ゲーム」と言っても多種多様だからね。
たとえば 3D ゲームとかなら不可能に近い。
>>123 単に実装可能性の話をしてるわけじゃないだろ。
HSPと同程度なお手軽簡単さで作れるかといったらそれこそ不可能に近いだろ。
たとえ2Dであっても。
C++の10倍遅いという評価があっても3GHzあればそれなりに動くでしょ
遅さもあるけどお手軽なライブラリがない。
SDL
そういうと思ったが現実にRubyと組み合わせて使ってる奴なんてほとんどいないよ。
Rubyがアドバンテージを持つアプリケーションって何よ?
テキスト処理とかフィルタとか。
>>124 わざとああいう言い回しをしたんだけど。
文句は、不明瞭な質問をした
>>121 に言ってくれ。
>>125 10倍? 100~200倍くらいじゃない?
どのベンチマークでも遅いのに、これだけ浸透しているってのは凄いね。
構文も機能もそれほど優れている訳ではないし。
JITコンパイラに鞍替えしたらマシになるのでは?
135 :
デフォルトの名無しさん:04/07/02 22:24
rubyってなんでこんなに遅いんですか?
同じスクリプト言語でも、pythonなんかはかなり早いんですけど。
この言語ってプリミティブ全否定なんだろ?
基地害染みた仕様だって聞いたが
ネタですか?
そんなに遅くねーよ。全部文字列型のTclと同じくらい速い。
Ruby/SDL実際にはHSPより全然お手軽なんだがな
Windowsゲームにして売り物にしたいなら Exerb もあるし
140 :
デフォルトの名無しさん:04/07/02 22:45
rubyってなんでこんなに遅いんですか?
最低でもCぐらいのスピードでないと使う価値ないと思います。
適所がないから議論になっとる
144 :
デフォルトの名無しさん:04/07/02 23:09
ありがとうございます。難しそうなので、
やっぱりHSPでゲーム作ることにします。
HSPに負けた
RPGツクール>>>HSP>>>(超えられない壁)>Delphi>>>C++
ところまつもと氏はrubyで何か作ってるの?
文豪戦士オーガイザーだかそんな種類のソフト書いてるんじゃなかったっけ?
perlは多くの場面でrubyより速いが、pythonは駄目駄目だろ。
夏ですなぁ。
なんか、すごいスレが伸びてると思いきや、
真性な方がいらしったのね。
そろそろ誰かが「釣れた」とか言い出す頃だと思うのだが。
普通に糞言語だから普通じゃね?
>>119 いや、別に、あんたにとっておかしいかどうか、とか
あんたがsite_rubyをどう使うか、はどうでもよくて
1.6で出来てたことが1.8で出来なくなったんで困ったな、つーだけの話
『個人的趣味』と、その変えたらしき本人の文にもあったわけだし
ジープみたいな車に対して、「何でスポーツカーより遅いんだ」と言っているようなもんだな。
・・・と、自分でもよく分からない喩えを書いてみる。
自転車に対して、三輪車よりデカくて、自動車より遅くて、
なにがいいの? と言ってるみたい。
いやー、たくさん釣れたなあ。
自動車:C
自転車:Perl
三輪車:Basic
キックボード:Ruby
segwey:Ruby
予想される検索キーワード: segway
OnigurumaにPerl6風正規表現とProxomitronのマッチングの実装きぼんぬ
Perl6の正規表現エンジンが、rubyのように言語から切り離しても使える
ようになっていればいいのに。
167 :
デフォルトの名無しさん:04/07/04 14:09
結局おまいらは三菱に乗ってっるってっこった
>>165 Perl6風の正規表現って、どういうの?
>>165 Proxomitronのマッチングって、どういうの?
もしperlより早くrubyが出ていたら、きっとcgi用の言語では
rubyが標準になっていたのにと、とても残念に思う。
まあありえないから気にするな
Perl前に同様の言語が生まれていたらRubyという名前ではなかっただろう
よく、ランキングとかデータのまとめをするときに、
下記のような処理を頻繁に行うのですが、
もうちょっとスマートに書けないかなといつも思います。
なにかよさげなライブラリやイディオムなどはありますでしょうか?
if sum[name]
sum[name] += val
else
sum[name] = val
end
if sum[name]
sum[name] << val
else
sum[name] = [val]
end
>>176 Hash::new([]) とかうまくいかないので・・・、
と思っていたら、1.7 からは初期値にブロックを指定できるんですね。
これは良いですね。ありがとうございました。
178 :
デフォルトの名無しさん:04/07/05 18:16
110を叩いてログアウトしたいのですが、QUITを実行してくれません。
なにか他に処理が必要なのでしょうか。
require 'net/telnet'
pop = Net::Telnet.new("Host" => "?????", "Port" => 110)
pop.cmd("USER ????"){|c| print c }
pop.cmd("QUIT"){|c| print c }
pop.close
sum = Hash.new(0)
sum[name] += val
sum = Hash.new {[]}
sum[name] <<= val
>>179 1.6 までの知識しかなかったので、後者のがわりと目から鱗でした。
181 :
デフォルトの名無しさん:04/07/05 22:00
# test2.rb findmax
def findmax(array,n)
len = array.length
max = array[n]
imax = n
for i in n + 1 .. len - 1
if array[i] < max
max = array[i]
imax = i
end
end
return imax
end
##############################
array = [21,3,18,7,8,2,3]
n = 4
k = findmax(array,n)
printf("max: array[%d] = %d\n",k,array[k])
すいません。これのバグを修正しなければいけないんですが、わかりません・・教えて下さいませんか・・
182 :
デフォルトの名無しさん:04/07/05 22:14
>>181 そのコードは、findminっぽいけど?
??どういうことですか?
# test2.rb findmax
def findmax(array,n)
len = array.length
max = array[n]
imax = n
for i in n + 1 .. len - 1
if array[i] < max
max = array[i]
imax = i
end
end
return imax
end
##############################
array = [20,3,19,7,8,2,3]
n = 4
k = findmax(array,n)
printf("max: array[%d] = %d\n",k,array[k])
すいません少し間違えてました。これならどうですか??
minと maxの意味は?
最小値と最大値?
何が目的なのかをきちんと具体的に書くとよい。
このfindmaxにはバグがあってこのままでは正しく動作しないのでバグを修正しなさい。というものなのですが、どこをどう改良すればよいのかわからないんです。。
arrayの中から最大値を探すプログラムを組むということですか?
なんだ、学校の宿題かなんかか?
はい。。実はそうなんですけど、いきなりこの問題と説明だけ書いてあって一体どうすればよいのかわからなくて・・
教えていただけませんか?
>190
1回実行してみ。期待した結果になってないっしょ。
バグではありません。それは仕様です。
193 :
デフォルトの名無しさん:04/07/05 23:24
はい・・nの数字を変えてみたりするのですが、他どこをかえればいいのですか?
196 :
デフォルトの名無しさん:04/07/05 23:33
釣りだろ
>194
n は関係ない。最大値求めたいんでしょ?
182 で指摘されてるように、findmax なのに findmin っぽいっしょ。
>>190 ダウト。
findmax が何をするべきものなのかについて、説明があったはず。
それがない出題なら、出題者が悪い。
すいません・・本当全然わけがわからなくて・・何をしたらいいかもわからないのです。。
女子大で Ruby 教えて金貰えるなんて楽な仕事だな。
>199
いぢめるとかわいそうってか、眠くなってきたのでヒント。
不等号
釣りならすまぬ。
findmaxの定義は「配列arrayの要素n番以降の要素の中かた最大値を探し出し、その添字の数字を返す」とあるんですが。。
すいません・・離れていたところにかいていたので・・
もし、Ruby 的に書くとしたら、
array.index(array[n..-1].max)
でいいと思うが、みなさんの意見を伺いたい。
>>201 たぶん、釣りじゃないと思う。
おそらく、本当に宿題で困ってる京都の女子大の学生。
>>204 答えを出すのは簡単だけど、取り敢えず、
array = [ 0, 1, 2, 3, 4]
n = 0
...
n = 1
...
とかやって結果を比べてみたら?
京都の女子大ではないです。。なんかそこのテキストを使わせてもらってるとかで・・。
でも本当に困っているのは事実です。。
宿題スレの名古屋を思いだすな。
皆さんの不等号のヒントとか頂いて、なんとなくできたような気がします。。もう間違ってたままでも自分が考えた結果なので出してしまおうと思います。。
ご迷惑をおかけしました。。すいませんでした。。
>211
納得いかなかったらきちんと先生に聞くようにな
>>212 はいありがとうございます。。
私にとってはプログラミングは難しいです。。皆さんすぐわかって尊敬します。。
本当ありがとうございました。
>私にとってはプログラミングは難しいです。。皆さんすぐわかって尊敬します。。
そりゃこんなのプログラミング以前の問題だからな。
元のソースが手続き的なのは、意図してそうしてるのかな?
>205
すっきりしていて、いいですね。
個人的には、「-1」とかいきなり出てくると、微妙な気分になってしまうので
array.index(array[n..array.length].max)
とか?
と思ったが、n が -1 の時に挙動変?
>>205 それだとarray=[0,10,1,10,2] n=2のときに答が3じゃなくて1になっちゃうYo!
これを抜きにしても2回なめるのはなんかもったいない気が(貧乏性なもので)
219 :
デフォルトの名無しさん:04/07/06 11:20
(n...array.size).max{|a, b| array[a] <=> array[b]}
か
(n+1...array.size).inject(n){|i, m| array[i] > array[m] ? i : m }
でしょう。
220 :
デフォルトの名無しさん:04/07/06 11:29
あれっinjectのパラメータの左右は逆?
(n+1...array.size).inject(n){|m, i| array[i] > array[m] ? i : m }
とすべきか。結果は同じだけど。
injectなんて使おうものなら、独力で解かなかった事がバレるでしょう。
バレるバレないについてはもう手遅れ
採点担当の院生とかそんなんだろ。
Fixnumとかが特異クラス作れないのは知ってますが、
ところでFixnumのサブクラスを作ってみたのですが
つかう方法がないみたいなんです。
まあ別に何かやりたいことがあるわけじゃないのですが。
問題文には「数字」ってあるけど、本当に最初に見つかった添字
1個だけでいいのかしら(心配性)。
array = [0,10,10,2,10]
n = 2
array.each_with_index{|val, idx|
p idx if (val == (array[n..-1]).max) && (idx >= n)
}
#=> 2, 4
>>227 オレも「つかう」ってなんだろうと思ったのだが、よく考えてみると
インスタンス生成すらどうやっていいかわからんな。Fixnumに
newないしどうすりゃいいの?
soap4r は標準添付になりましたが、 wsdl2ruby なんかを使おうと思ったら、
soap4r の taball 持ってきて自分でインストールする必要ありますよね?
date2 に付いてた holiday.rb とか、 Syck に付いてた !okay/rpc とか、
結局やっぱり野良インストールしなきゃいけないのがなんとも。
なんだかエラーメッセージが変な気がする。
% ruby -rbase64 -e "decode64('')"
-e:1:in `decode64': _deprecated_base64 is deprecated; use Base64._deprecated_base64 instead
/usr/local/lib/ruby/1.8/base64.rb:126:in `_deprecated_base64': super: no superclass method `_deprecated_base64' (NoMethodError)
from -e:1:in `decode64'
from -e:1
% ruby -rbase64 -e "Base64._deprecated_base64('')"
-e:1: undefined method `_deprecated_base64' for Base64:Module (NoMethodError)
%
確かにおかしいね。
Base64.decode64 を使うのが正解。
>>232 なるほどどうもです。久々に base64.rb 見たら、結構変わってたんですね。
234 :
名無しさん@そうだ選挙に行こう:04/07/11 17:23
Javaのインターフェイスみたいに、オーバーライドしないと、怒るようにするには、どうすればいいでしょうか?
235 :
名無しさん@そうだ選挙に行こう:04/07/11 17:23
Javaを使う。
間違って親メソッド呼んだらアボーンするしかないんじゃない
class SubclassResponsibility < StandardError; end
class AbstractClass
def abstract_method
raise SubclassResponsibility
end
end
漏れは NotImplementedError 使ってるな
239 :
名無しさん@そうだ選挙に行こう:04/07/11 17:56
あっ、そう書けばいいんですね。なるほど。
なんで気付かなかったんだろう。。
こういうのは実行前に検出できたほうがいいんだけどな
>>240 実行時に定義/再定義されたりするかもしれないからねえ。
Rubyはひたすら動的なので、Javaとか*MLの方から来た人が
「○○は実行前にきちんと解析すれば実現/回避/最適化/バグ検出できるはず」と
ときどき要望するんだけど、結局無理なんだよね(彼らを批難するわけじゃないが)。
Underlyingな方針の違いというのはこういうところで効いてくる。
>>242 なんでも動的なのは自分がそれを利用できるときは
便利だと思うけど、いらないときは自動的な型付け
ぐらいやって実行前にエラーだしてくれてもいい
じゃんと思ってしまう。人間というのはつくづく
自分勝手なものです(笑)
perlのuse strictみたいに厳しいチェックと使い
分けられるといいのかなぁ。
# かなり前のだけど、
>>46-47,
>>58 .bashrcとかでPATHの中からworld writable dirをはずせばいいんじゃない?
Ruby 1.8.2 の話はどこに行ったんだと言ってみるテスト
Matzが気が向いたときに急に「これがプレビューです。あと3日でリリースします」なんて
無茶なことを言い出して、テストしきれないままリリースしてしまうことになっています。
>>247 ありがとう。いつも通りってことですね。
おい!
>>247はMatzか!
[ruby-core:03180]で「明日出す」とか言い出してるぞ!
I'm going to release the first preview in a day or two, unless someone
stops me.
>>249 あくまでプレビューだからいつ出してもいいのでは。
問題なのは、(ry
>>247 まあ、そうやってハッパかけないと動かないからねえ。
previewを出すか出さないかってのを考えてる時点でおかしい。
日時だけ事前に決めといて淡々とそのスケジュールで出せばいいんだよ。
1.6.x は、さっさと捨てましょう。
shim が出なくなったので、捨てました。
256 :
デフォルトの名無しさん:04/07/15 18:18
趣味でRubyをやろーかな〜と思ってるのですが、お薦めの本ありますか?
今日、本屋で立ち読みしたら、ルビーの冒険というのが取っ付きやすそうでしたけど。
プログラム暦はC言語をしたことがあります。
たのしいRubyとか、Rubyレシピブックとかは?
>オブジェクト指向スクリプト言語
これ初版からどれくらい変わったんだろ。
誤植修正と1.8x対応くらい?
ピアソンのやつってもう売ってない?
原セソセイの本がなかなかに良かった気が。
mathxを入手できるトコご存知無いでしょうか?
>>264 サンクス。
しかもこれサイトで公開されてるんだ。
金銭的にも助かるよ。
いっとくけど、
>>264はRubyの解説書じゃないよ。
rubyのソースを題材にした、ソースコードの読み方の本。
これでRubyを覚えられるかというと、ちょっと疑問。
268 :
デフォルトの名無しさん:04/07/16 09:26
>>267 そっか、そうするとまず最初のステップ用の本が必要か。
>>262 漏れも初学者には原セソセイのをオススメしたい。
知っとくべきことが必要十分に書かれてるし、嘘書いてないし。
rubyで強制的に全オブジェクトをデストラクタする事が出来たと記憶しているのですが
やり方を忘れてしまいました。
何方かお知りの方おりますでしょうか。
>>272 んなことはできない。
使ってるオブジェクトを破棄しちゃまずいだろが。
つーかrubyにはそもそもデストラクタってものは存在しないけど。
参照されてないオブジェクトを探して回収させるという意味なら
GC.startだが。
変数列挙してnil突っ込んでGC.startならできるんじゃないの
保守的GCなので、変数から指されてなくてもGCされない可能性がある。
preview2 はすぐ出るかな?
誰か、[ruby-list:39856]の人に、グローバル変数使いすぎって突っ込んでくれ...
>>280 書き直してから突っ込もうかと思ったけど、汚すぎてやる気が無くなった。
>>282 俺のなんちゃってPerlコードの方がマシ。
>>280 [ruby-list:39860]の人が
x1,x2,x3 = Array.new(3) {[]}
って書いてるんですけど、これって本当に
x1, x2, x3 = [], [], []
と同値なんでしょうか?
Array.new(3) {[]} って2次元配列になるようなきがす
だからこそ同じになるわけだが。
*x = [], [], [] も二次元配列になるし。
はっ、そうか。そっちも2次元配列か。
% irb
irb(main):001:0> a, b, c = [], [], []
=> [[], [], []]
irb(main):002:0> a, b, c = Array.new(3){[]}
=> [[], [], []]
確かに。
そういうのって二次元配列って言うのか?
中の配列数が不定だからか?
配列の配列と言いたい?
相変わらずの変態文法ですね
「次元」が不定なことのほうがキモイ鴨
Rubyがどうとは言わないがCやC++だって
見慣れてるだけで実は相当変態文法だと思うがな。
Rubyのオブジェクトには
デストラクタは無いんですか?
オブジェクトを破棄するために呼ばれるデストラクタはない。
オブジェクトが破棄された後に呼ばれるファイナライザならある。
>>295 サンクス。
本屋でみたら、「たのしいRuby」が読みやすそうだったのでこれにしました。
それから、オブジェクト指向ってのを全然知らないので、「オブジェクト指向でなぜつくるのか」
っていう本も買いました。
ある程度、理解できるようになれば、「Rubyソースコード完全解説」を見る予定です。
[264, 268, 295]
264と268は同じベージだが
295は違う、と暇人の俺が確認してみる。
264や268でも、ただで見れることにはたどり着くだろうがなー
>>298 ホントだ。なんつーまぎらわしいことを。
300
すまんこ、おまいらどぅしてまつか?。
1.9.*以降「VERSION」を返してくれないってのを...
毎回「configure」とか、書き換えてまつか????...
いまさら Perl とのベンチマーク比較なんて燃料としては弱すぎだよなあ。
>>302 RUBY_VERSION でまずい理由はなんでしょう?
make install しないで make test-all すると drb 関連で
えらーでまくりなのを何とかしてくれ。
あと、1.8でmake test-allできるようにしてくれ。
preview とか release を急かさないでくれよ。
後で泣く人が増えるから。
release は急かしてない。 preview は急かしたい。
Rubyって失速してるってホント?
なんでpreview出たってアナウンスをruby-listに流さないのだろうか。
dat2html.rbって、
$ ruby dat2html.rb hoge.dat
みたく呼ばないと動かないのはなんでだろ。
>>310 スクリプトの一行目の ruby コマンドのパスを自分の環境に合わせて書き換えてよし。
Subversion の Ruby binding ってないの?
>>312 日本のひとがつくってたのが一時期標準添付されてたけど、外されちゃったみたいね。
ドキュメント subversion/bindings/ruby/README にそのへんの事情が書いてる。
subversion の binding は、 swig 経由のインタフェースが提供されてるから、
これをもとに作ればいいんじゃないかな。
>>316 いままでずっとこの瞬間を待っていました。
あなたを神と呼ばせて下さい。
318 :
デフォルトの名無しさん:04/07/23 17:51
さがりすぎ
>>321 ん?いけるけどなあ。どう呼ぶようにしたいの?あと、実行環境は?
改行コードの問題じゃね?
CRついてるとだめなんだよね
>>324 おお、そうなのか。漏れは何故か無意識に改行コード変換してたよ。
chompもCR問わずになったことだし
ソースの改行も柔軟に扱って欲しいな
ソースの CR は、エラーメッセージから原因を推測しにくい。
というか過去に経験してないと分からんのじゃないか?
過去に経験してないと分からないとしたら、
その経験の前の経験がないってことだから、
最初の経験は経験しようがなくて、
絶対分からないってことになってしまう。
誰がアダムになるのだ?
mswin32 上でrabbit 動かすと [BUG] がでてつかえねー。
GREが悪いのかrubyが悪いのか俺が悪いのかぜんぜんわからん。
>>331[BUG]が出たときに悪いのはRuby。これ基本。
>>326 rubyとしてはCRがあっても問題ないはずだが。
もしかしてshbang行のことなら、rubyとは無関係な話。
334 :
デフォルトの名無しさん:04/07/24 12:38
さがりすぎ
そんな事気にする334があわれすぎ
[BUG]としか情報を出さん331が悪い。
「UFO演算子」って大元の出所はどこなんだろう?
>>331 いくらなんでも情報足りなさ過ぎ。
>>332 [BUG]と出たときに悪いのは拡張ライブラリ。これ基本。
つまり Ruby/GTK2 か。
>>337 大本はわからないけど、自分はたしかラクダ本で知った。
ftp サイトから shim の taball が消えちゃってるね。
ファイルを開きまくると [BUG] になるんですけど、これも Ruby が悪いの?
いや、開ける数に限りがあるのは分かりますけど。
files = (1 .. 200).to_a.map{|e| e.to_s}
files.each do |f|
open(f)
end
ruby 1.8.2 (2004-07-16) [i386-cygwin]
to_aいらなかったか
343 :
デフォルトの名無しさん:04/07/26 19:13
テスト
>>341 C:\>ruby --version & ruby -e "('0001'..'5000').each {|f| open(f)}"
ruby 1.8.1 (2003-12-25) [i386-mswin32]
ってやったけど落ちない。
rubyかもしれんが、もしかしてcygwinが悪さしてんじゃ?
ツクール厨が来なくてよかった。
なんだよ、[BUG] になるって表記は。萎え〜。
% /usr/local/ruby-1.8.2-preview1/bin/ruby-1.8.2-preview1 -v -e'("1".."200").each{|f| open(f)}'
ruby 1.8.2 (2004-07-16) [i386-cygwin]
-e:1: [BUG] Segmentation fault
ruby 1.8.2 (2004-07-16) [i386-cygwin]
↑タスクマネージャーから殺さないといけない
% cygcheck -c cygwin
Cygwin Package Information
Package Version Status
cygwin 1.5.9-1 OK
mswin32版で試したら問題なし。
Cygwin側の問題なのかなぁ
cygwin1.dll入れ換えたら直ることはよくある
cygwinのバージョンが違うけど、うちではオッケー。
% ~/ruby-1.8.2-preview1/bin/ruby-1.8.2-preview1.exe -v -e'("1".."200").each{|f| open(f)}'
ruby 1.8.2 (2004-07-16) [i386-cygwin]
% cygcheck -c cygwin
Cygwin Package Information
Package Version Status
cygwin 1.5.10-3 OK
350 :
デフォルトの名無しさん:04/07/26 23:50
いくらRubyが採用されたからといって、ここにツクール厨がくるわけないだろ。
なにに採用されたの?
352 :
デフォルトの名無しさん:04/07/26 23:53
情報不足ですんまそん。こんな感じで [BUG] になります。
ruby 1.8.1 (2003-12-25) [i386-mswin32]
ruby-gtk2-0.9.1-1-i386-msvcrt-1.8.zip
GTK-Runtime-Environment-2.2.4-3.exe
>ruby -I./lib bin/rabbit -e eucjp -f --type file sample/rabbit.rd
(font関連の警告がたっぷり)
./lib/rabbit/element.rb:399:in `draw_layout': destroyed GLib::Object (TypeError)
from ./lib/rabbit/element.rb:399:in `draw_element'
from ./lib/rabbit/element.rb:26:in `call'
from ./lib/rabbit/element.rb:26:in `draw'
from ./lib/rabbit/element.rb:25:in `each'
from ./lib/rabbit/element.rb:25:in `draw'
from ./lib/rabbit/element.rb:218:in `draw_elements'
from ./lib/rabbit/element.rb:217:in `each'
from ./lib/rabbit/element.rb:217:in `draw_elements'
... 12 levels...
from ./lib/rabbit/rabbit.rb:343:in `set_expose_event'
from ./lib/rabbit/rabbit.rb:332:in `call'
from bin/rabbit:152:in `main'
from bin/rabbit:152
./lib/rabbit/element.rb:399: [BUG] Segmentation fault
ruby 1.8.1 (2003-12-25) [i386-mswin32]
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
>現在の最新バージョンは 0.8.3 (2003/08/16)です。
影舞はいったいいつになったら正式リリースするんだ...
>>355 レポジトリを失ってやる気がなくなったんじゃない?
たむらさん復活おめ
なかださん入籍おめ
>>357 一年で0.0.1しか上がらないのか。
C#+XML+WebDAVで小規模なBTS作ってみようかな。
>>359 活発に開発されてるとはいいがたいが、バグへのパッチの提供
なんかは、まあまあ速いんじゃないかと。問題は、そのパッチを
まとめたリリースをしてくれないこと。
361 :
赤色名無しさん:04/07/29 21:41
Ruby/QtのアプリをWindows上で開発したいんです
そのために必要となるWindows用のQtのライブラリって
現在入手できるんでしたっけ?
過去に非商用利用版をtrolltechのサイトから無料ダウンロード
できてたみたいなんですが、現在はそのリンクがなくなってる
みたいです
いまさら「でつがスヌーピーに見える」はないよな。
なんの話題
amrita消えたのって鋼鐵が頓挫したから?
バイナリファイルから
hoge = open("hoge.bin", "r+b").read
foo = hoge[3, 2]
みたいにして切り出したデータを演算できるように数字列に変換するのってどうやるんだっけ?
foo.to_iやると0になっちゃうし、Integer(foo)だと不正な値と怒られるし…
日記を書く時間を ruby の開発に振り向けて欲しい。
マジで。
unpack
タイミング悪_| ̄|○
0x64636261(1,633,837,924)を"ABCD"みたいに変換する方法ある?
すまん。間違えた
×:"ABCD"
○:"abcd"
[0x64636261].pack("V")
("V")
(VvV)
継続の実用的なサンプル、実例ってないですか?
fast cgi 化ラッパは?
曹操
レシピブックって誤字多くね?
著者に教えてあげなよ
正規表現で大文字・小文字関係なく簡単にマッチさせる方法ってある?
「hoge|HoGe…」にマッチさせるのに「[hH][oO][gG][eE]」みたいに書くのでは見栄えがあまり良くないので…
補足。正規表現の一部だけ、大文字・小文字関係なくマッチさせたいなら
/AAA(?i:hoge)aaa/ みたいにする。
>>380 サパーリ分からない・・・
両ライブラリとも使ったことが無いからって事もあるんだけど。
>継続を使った数少ない実用的な例かも。
ということは継続は知らなくてもあまり問題ないのかな。
LL Weekend いくやつ挙手
ノシ
>> 389
ノシ
LL Weekend 去年行った人いますか?
LL Saturdayのコトに決まってるじゃないかヽ(`Д´)ノ
String#each が文字単位になるかもしれないことについて、おまいらの意見を聞かせて下さい
LL Saturdayは秋か冬にしてくれないかな。
貴重な夏の休日の一日、むさくるしいオタ男がいっぱいの
屋内に閉じこもりたくないよ。
396 :
デフォルトの名無しさん:04/08/03 08:13
age
Lightweightだから、そこまでむさくるしくないよ。
>>394 String#each で行単位に処理できることを最近知った (bitchannelのソースで) ので、
正直どっちでもいい。
400 :
デフォルトの名無しさん:04/08/03 17:58
400
each と each_line が別々になるんだろ?
いいんでね?
String#eachは文字単位が自然でいいな。
正直、行単位っていう仕様には違和感を感じてましたから、
今回それが文字単位に変更されるなら、素直にうれしいです。
オレはこんな感じ
・eachが行単位なのに違和感を感じる。文字単位が自然だと思う。(気分の問題)
・each_char(仮)は欲しい。
・String#each が each_line/each_char のどっちの alias だろうと気にならない。
(Stringに対しEnumerableのメソッドを使わない/使いそうにないので)
・互換の問題があるから、現状のままでいいんじゃない?
「文字単位 each だとこんなケースで役に立つ」みたいな事例があればキボンヌ
RubyのStringは、JavaのStringみたいな本当の意味での文字の列で
はなく、バイトの列だから文字単位というのはない。
文字単位がいいという気持ちもわからないでもないが、行指向は
sed→awk→perl→rubyと受け継がれてきた伝統なので
405 :
デフォルトの名無しさん:04/08/04 09:58
すでにPerlでかかれたモジュールがあって、
そのモジュール内のメソッドをRubyから呼び出すことってできるの?
いまだと2バイトコード込みで文字単位で列挙するのってどうやるの?
jcodeって未来永劫メンテし続けるつもりなのかね
いい加減UTF8で統一してStringを真の文字列型に生まれ変わらせればいいのに
Fedoraも脱EUCすることだし
>>408 unicodeは日本語についてはだめだから、それだと困るなぁ。
410 :
デフォルトの名無しさん:04/08/04 11:05
>>408 1.9 系に M17N がマージされるみたいだよ。
ruby-dev:23995
>>409 日本語なんて高々100年前の文章すらまともに読めないくらい
支離滅裂な変化を遂げてきたんだから
unicode化の変化を受け入れないのはおかしいだろ
少なくともunicode化には合理的な理由があるんだから
使えない漢字が増えた事で日本語の表現が損なわれるなら
その表現は非本質的で瑣末な表現だったってこった
>>407 str.split(//) より str.scan(/./) の方が速い、と言ってみるテスト
>>412 おたくの国はなんら失われるものがなくてうらやましいですわ、おほほ。
>>412 字がたりねーとかいうのはあまり気にしてないんだが、
変換表が複数あるのはだめすぎ。
同じJISコードがcp932経由とeuc経由で違うユニコードに
なるってどういうことよ。
ま、お隣さんなんかは過去にアクセスできなくなったおかげで総白痴化してて、
それがある意味強みだからなー。
韓国にはhcodeとかあるのかね
hなのはいk(ry
マジレスすると100年前(明治時代)の日本語はわりと普通に読める。学問の
すゝめとか。滝沢馬琴や井原西鶴くらいまでならなんとか読める人も多いと思
う。俺はできないが、きちんと教養のある日本人なら徒然草くらいでも読めるは
ずだ。
マジレスって論点ががずれとる。
LL Weekend、プログラムを見るとかなり面白そうだ。
チケット買っておくんだった。
マジレスするとRuby.NETが全てを解決する。
そしてRubyはRuby.NETに従属する。
これはそう遠い未来の話ではない。
マジレスするとMatz.NETが全てを解決する。
>>422 去年は飛び入りで参加できたらしいよ。
まぁ台風で欠席者が多かったからかもしれんが。
>>412 unicode もコードの一つでしかない。
世の中に unicode しかないならいいが、
実際はそうでないからね。
.NET運命共同体
428 :
デフォルトの名無しさん:04/08/05 06:00
Javaでいうところとpublicでstaticな変数を定義したいのですが
クラス変数をattr_accessorにするのではダメみたいです。
アクセサメソッドを定義するしかないのでしょうか?
>>416 UTF8以外のマイナー文字コードはそれこそオプションやjcodeで対応すればいい。
俺もUTF8以外を根絶しろというほどには鬼じゃないん。
ruby -s -- foo.rb -a hoge -b bar
って実行したときに
ARGVの中が["hoge", "-b", "bar"]になっちまうんだが仕様か?"-a"を取得する方法って無い?
1.8.1と1.8.0で確認したんだけど…
-s を使わない。
>>428 クラスのインスタンス変数を使う、かな。
class Klass
class << self
attr_accessor :foobar
end
end
まったく話題に上らなくなった
キモきち君 もとい、るびきち君
死んだのかな?
MarkdownとTextileはRubyで書かれた処理ツールがある(BlueCloth, RedCloth)けど、
reStructuredText用のツールはないのかな?
そういえばRDとRDtoolはメンテナンスされてるのかな。もうダメかしら。
PuTTYにセキュリティホールが見つかりました。みなさんアップデートしましょう。
って、rubyとなんの関係が???
>>435 RDフォーマット自体はメソッドリスト以降は新しい仕様は追加されていない。
RDtoolは…(ry
風呂入ったか?
また来週!!
>>439 >(窓の人)
年齢=いな(ryな俺なのに恋人に見えた・・・orz。
hoge = <<HOGE
能力
HOGE
みたいな表記をするときにrubyの起動時に-Kオプションが正しく指定していないと正常にhogeに格納されない(\x5cが欠ける)
んだけど、-Kオプションを使わずに正常に格納させる方法ってある?
いちおう
hoge = <<HOGE
\x95\x5c力
HOGE
みたいにすれば格納されるけど可読性が悪いし…
>>444 スクリプトの一行目に
#! ruby -Ks
とか書け。
>>445 すまん。説明不足だった。
rubyの起動時に-Ksとつけてしまうと正規表現の挙動が変わるせいか、今書いているコードがまともに動かなくなってしまうので
-Ksオプション自体が使えないんだ。
正直、そういうケースでリテラルに ASCII 以外の文字を使うのはおすすめできない
俺ならなんとかしてそういうのは外に追いやる
Rubyの限界。というやつですね。
>>446=444
$KCODE
を適当に弄って解決できない?
(将来問題が出そうな気もするが)
450 :
デフォルトの名無しさん:04/08/07 01:57
trimみたいな、文字列の前後の空白を除去するメソッドってないですか?
なかったら、誰か作ってくれないかなあ。
String#strip
UniCode [0x4E9C] を入力して
JIS [0x3021]または
SJIS[0x889F]と文字コードを得る方法はありますか?
レスありがとうございます。
結局、誤動作する正規表現の方を対策しました。
>>448 う〜ん…限界ですか…
正規表現も文字単位重視なスイッチとバイト単位重視なスイッチがあると…
ってバイナリ列を正規表現に掛けている方が悪いのか(´・ω・`)
>>449 $KCODEをいじっても\x5cを取りこぼす問題は解決しませんでした。原因はよくわからないんですが…
そこで鬼車とruby_m17nですよ。
おもしろそうだな、Ruby/Irrlicht
458 :
MoonWolf ◆BwMoonWLvE :04/08/08 14:15
日本Rubyの会が本日発足しますた
おまいら、どうよ?
どうでもいい。
>>458 発足つっても、どこに情報があるんだ?
www.ruby-lang.org にも書いてないし、ruby-list にも流れてないし。
以前作るっている情報が流れていたのは知ってるが。
>>455 >Regexp.newの第3引数
起動時に-Kオプションを指定しない&$KCODEも指定しない状態は、Regexp.newの第3引数に何も指定しない or 'NONE'を
指定した状態と同じですよね?
その状態でもバイナリ列に正規表現を掛けようとすると一部のデータ列で誤動作するようです。
起動時に-Kオプションを付けると更に悪化します。
バイナリ列をnByteごとにブロック化してイテレータを回したかったのでunpackで16進数な文字列に変換して.scanで数えたあと
イテレータの一番最初でpackを使ってバイナリ列に戻しました。
>>462 ぐぐらないと情報が出てこないか。Rubyコミュニティの閉鎖性を如実に反映してますな。
>一部のデータ列で誤動作するようです。
と言われても「ああそうですか」としか答えようがない
具体的にどんなデータかが分かれば、他のやり方を示すなり
(Rubyのバグなら)修正するなり、アクションの取りようもあるだろうが。
>>465 そうだよな…
そのバイナリを処理するとおかしくなることはわかっているんだけど、俺自身、問題が出るパターンはよくわからないんだ。
権利上問題ないサンプルデータを作れたら晒すからちょっと待って。
>>462 いや、ぐぐっても設立準備の話だけだろ。
>>466 LLW で発表されたらしいことは知ってるが、それ以外に情報がない時点で
「どうよ」って聞かれても答えようがないじゃん、ってこと
469 :
MoonWolf ◆BwMoonWLvE :04/08/08 20:10
>>468 とりあえず、ruby-listにメール投げようよ>たかはしさん
っつうことに尽きるな
.lzhって・・・
>>444 /./ が改行文字にはマッチしないから。
/.{104}/m とか Regexp.new(".{104}", Regexp::MULTILINE) とかだったら無問題っぽい
>>472 ……いつぞやと同じ事やっているな…俺…_| ̄|○
恥ずかしいポカミスにつきあってくれてありがとう
nokadaさんのページってどこにいったんですか。
>>475 会則の「目的」とかを読んでもいまいちわからないのは、ruby-list に
入っているような普通の Ruby ユーザにもこっちの会に入って欲しい
のかどうかってあたり。
Ruby を支援したい人はいいとして、Ruby を使った開発なんかを
実践してる人はたいてい ruby-list に入ってるだろうし、じゃあ、
こっちの会に入っとくとなにが嬉しいのかと。
DOSコマンドのPAUSEみたいな動作ってRubyのプログラム中でできる?
>>478 安直な方法
puts "ENTER を押して下さい"
gets
>>478 とりあえず、Enterキー待ちならこんな(↓)感じ。
pauseメソッドにすると雰囲気も同じになるかと。
PAUSEコマンドのように"任意のキー"を待つ方法はもう少し手間かな?
def pause
print "続行するにはEnterキーを押してください . . ."
gets
end
>>479,480
thx
あ、そうか。Enterだけにすれば楽なのか…
できれば"任意のキー"にしたい所だけど、とりあえずEnterでやってみます。
Enter無しでキー入力を取得するにはどうしたらいいのだろう…
hoge.bat
------------
ruby hoge.rb
pause
------------
Curses 使えばできそうだけど。
1文字キー入力取得と getpass あたりは標準で欲しいなあ。
>>482 最悪それも考えていますけど…できればRubyで処理したいので。
>>483 やっぱり外部のライブラリを使わないとダメですか…
そこまでやるほどの物でもないのでEnterのみで我慢します。
Curses 使った1文字キー入力取得のサンプルコードを、
短かくていいので、さくっと書ける人っていますか?
>>485 478さんの質問って、動作環境は何を想定してるんでしょう?
Linux?Windows?OSによって実現方法が違ってくることはないかな?
Linuxならsttyコマンドでraw modeに切り替えれば...みたいな情報が
Googleで出てきましたけど、Windowsではどうやるんだろう?
$ ruby -rcurses -e 'include Curses; noecho; addstr("Push Any key!"); p getch'
489 :
デフォルトの名無しさん:04/08/11 20:49
Net::Telnetを使うときに接続相手が、morizo@hogehoge:<CSH>[15] というような
プロンプトを出してくるのだけど、正規表現はどうしたらいいのでしょうか?
(∪) こんな感じかな
each問題は、
class 行指向 < String
end
しちゃだめなのかな?
PHP5 >>>>>>>>>>>>>>>>>>越えられない壁>>>>> Ruby
そりゃ無いだろ、eRubyと比較するならまだしも。
PHPって思想も実装も中途半端で言語として問題が多いと感じる。
PHPを言語として考えちゃ駄目で、環境として捉えないと
土俵が違うから、Rubyと比べても優劣を付けられるもんじゃない
言語仕様を売りにして大成功した言語ってあんまないんじゃないの
水清くなんとやらってね
Ruby はどちらかというと水清い方だと思う。
水前寺清子?
Rubyの停滞っぷりはWinny対Shareの対決を連想させるな。
ShareはWinny.succを目指して開発されたが
Winnyの欠点を改善した程度のアプリでさしたる特徴もないので伸び悩んでいる。
対するWinnyはWinMXに対して匿名性・キーワード指定による自動ダウンロードという
圧倒的なアドバンテージを備えていたのであっという間に広まった。
単に美しい文法ってだけじゃ人はついてこないよ。
特に汚水が積極的に好まれるような業界ではなおさら。
どんな文法が「美しい」と感じるかは人によってバラバラだろう
Schemeなんかは美しいと言われているけど俺はそうは思わない。
Cはあんまり美しいと言われるのを聞いたことないけど俺は美しいと思う。
GUIがちゃっちゃっと組み立てられたら、学校の授業で使ってみたいとは、思う。
>>502 tcl/tk なら。
拡張ライブラリを別途インストールする手間を惜しまないなら
GTK や FOX だね。
って、tcl/tk じゃなくて tk だった。
>>503 Windowsならvrubyもいいですよ。
Rubyが停滞しているのは、作者が日記を書くのにかまけて
コードを書いてないからに決まってるだろ。
俺の地方のオープンキャンパスでrubyの講習会があって、そこに作者がくる予定らしいから行って来る
いってらっしゃい
>>497=508がなぜその名前なのか気になって眠れない
高速に動くスクリプトを書くヒントみたいなページある?
ええっ、このタイミングでカブるのかよ……orz
XMLScan の中の人はこの手のテクをまとめたページ作ってないのかな?
517 :
デフォルトの名無しさん:04/08/14 16:19
文字列を一文字ごと処理するにはどうしたらいい?
s = "abc"
s.each_char { |ch|
print ch
}
みたいなことがしたい。
split
とか
unpack
とか
toarray
とか
devな青木氏を打ち負かす。 にみえた。
うほっ。
523 :
デフォルトの名無しさん:04/08/15 02:19
>>518 s = "abc"
s.split(//).each { |ch|
p ch
}
としてみたら、chはStringだった。Integerじゃないのね。
まあch.to_iしたらすむ話だったんだけど、なんか1文字ずつの文字列を
作成するのって効率わるいし。
というか、なんでString#eachが行指向なわけ?文字列は文字の集合
なんだからString#each()は文字を対象にしてほしかった。
Stingは文字列っぽく便利に使えるバイト列だからね。
おっと。
s/Sting/String/
>>523 1バイトずつ(整数で)扱いたいなら String#each_byte をどうぞ。
デフォルトの文字コードを決めきれない事で
仕様が歪んでしまったって事だよな
>>524 なら String#each で1バイトずつ扱うようにしてほしかった。
そのほうが自然に感じるし、驚きも少ないと思う。
でもいろいろ使ってみて思うけど、Rubyってよくできてる。
>>527 いや、デフォルトの文字コードなど決めないという仕様なんだと思う。
1文字8バイトの超ワイド文字を定義すれば火星人が攻めてきたって無問題
ヘプタポッドの文字は難しいだろうな。
無視って言うか無駄
Rubyの停滞ってRubyインタプリタの話か。
Rubyで書かれたアプリがたくさんできていて、思わぬところで
Powered by Rubyなんて書いてあって驚かされることも多いが。
停滞も考えものだが、 String#each の仕様を変えるなんていう
互換性をないがしろにした前進は嫌だなあ。
>String#each の仕様を変える
わざわざ現行のメソッドを変更しなくてもeach_charみたいなのを新設すればと思うんだがダメなのか?
言語仕様のリファクタリングに互換性を考慮する余地などない
>>536 ダメでしょ。
「each の仕様を変える」というのは、
Enumerable 系メソッドでの挙動を全て変える、と同義なので、
新設とかそういう対処でどうこうという話ではおさまらないと思われ。
>>537 仕様をいじる時点でそれはすでにリファクタリングではないだろう…。
>>538 元の話題は文字列を1文字ずつ処理することでしたよね?
それならString#each_charの新設で事足りるような気がします。
そういう話題じゃないんでしたっけ?
>>537 539のように、「リファクタリング」なら仕様を維持しつつ実装を改良するのでは?
既存のスクリプトへの影響を考えると、旧版との互換性は欲しいなぁ。
>>540 ML読んでないの?
まつもと氏がm17nが入ったら String#[] の仕様を変えると宣言していて、
前田氏が String#each の仕様も合わせて変えるべきだと言っている。
>>541 あら?ruby-listで話題が出てましたっけ?
公式サイトで検索してみると...ruby-devかな?
devは購読してないんです。過去の投稿をwebで読んでみます。
>>541 []ついでにeachも変えようって事か。
ならばメジャーバージョンアップついでに変えてもいいんじゃないかな。
互換性云々言ったって1.6→1.8の時も事故ったし、今更な気がする
>>543 いや、だから変えるのはいいとしても、それなら一体どれ
(each_line か each_char か each_xxx か ...) にするのか?ってな話。
String[]で行が取れるんならeachでも行単位
String[]で文字が取れるんならeachでも文字単位
String[]で1バイトが取れるんならeachでも1バイト単位
547 :
デフォルトの名無しさん:04/08/16 22:28
Rubyってアスペクト指向に対応してないの?
Riteで追加される(だっけ?)メソッドコンビネーションもアスペクト
みたいなものでOK?
>>549 サンプル見ると同じクラス内で定義してるんだけど
それだけだったら激しく無意味っぽいんだけど
実際は他のクラスからできるんだろうな。
552 :
デフォルトの名無しさん:04/08/17 14:50
>553
ありがとうございます。入手できました。
しかし、入手場所が何とも分かり難いのですが
改善はされないのでしょうか・・・
hoge = "abcdefg"
hoge2 = hoge
hoge[2, 3] = "123"
で
hoge2 == "ab123fg"
となるのは仕様か?
hogeのコピーを取りたければ
hoge2 = ""
hoge2.concat(hoge)
とかする必要があるのだろうか…
>>555 dup ってのがあるので、これを使って変数への束縛時に明示的に複製を
作ってから束縛してやれば(555の)期待通りの動きをします。方針は
合っています。
hoge = "abcdefg"
hoge2 = hoge.dup
hoge[2, 3] = "123"
hoge == "ab123fg"
hoge2 == "abcdef"
>>556 サンクス
仕様でしたか。なんか結構ハマる人が多そうな気もしますが…
参照については、初心者本のはじめのほうにだいたい書かれてると思う。
現実問題として直感(という言い方が嫌なら世俗的習慣とでも読み替えてクレイ)に
反する挙動ってバグの温床になったりしないの?
自分はフィルタ以上の事やったことないんでは幸運にもまった事ないけど。
文字列もオブジェクトだってことからすれば
この挙動の方が「直感的」
↓以下名札・箱論争が勃発します
やったことないんでは幸運にもまった事ないけど。
↓
やったことないんで幸運にもはまった事ないけど。
>>560 なるだろうけど、そういう直感は相対的なものだと思うし、
Ruby に限ったことではないでしょう。
早く Ruby の世界に慣れちゃえば?って思います。
正式リリースまであと20年くらいかかりそうだな
>>567 正式リリース(1.0?) じゃなくても、役に立つからいいんじゃない?
>>566 正直、あまりいらない。Wikiあればいい。
wikiでバグ管理しきれる程度のプロジェクトにはBTSは不要だと
Wiki でバグ管理しきれる程度のプロジェクトだけにかかわれるなら、それはそれで幸せだな
すいませんしつもんです。
Rubyの開発環境のRDE上で、
>>479のようなgetsを使ったプログラムを書こうとしていたのですが、
RDE上で
>>479を実行すると、なぜかgetsが先に(クラスロード時に?)動いて、putsが後に表示されます。
これってバグですか?それともなんか私が罠にかかってるだけで普通の挙動?
>>572 環境がないので当てずっぽうだけど、
puts の後に $stdout.flush すればよさそうな気がする。
>>572 $stdout.sync = true
とか
>>573>>574 スゲーどっちでもいけました。ありがとうございます。
今日の仕事中○×ゲーム作ってたんですが、
これで延べ2時間くらい嵌りましたよ・・。
コンソールからだと普通に動くんですよね・・なぜか。
RDE内部の実行モードの違いとかそんなんですかね?
それとも常に
>>574さんのようなのを指定しておく方が無難ですか?
>>575 パフォーマンスとか気にならないプログラムなら、いつも
>>574 のように
しておくのは悪くないかもね
>>575 RDEのヘルプのよくある質問のところに、このことが書いてるよ。
どもっ。
金光さんは元気でいらっしゃいますか?
M17N版ってもうバイナリパッケージ出てるんだっけ?
バイナリって何用の?
朝専用の
赤いヤツか!
あるクラスにモジュールをincludeすることで、そのクラスに
クラスメソッドを追加することは可能でしょうか?
具体的には、以下のようなことをしたいのです。
require 'singleton'
class Foo
include Singleton
def Foo.method_missing(cmd, *args)
self.instance.__send__(cmd, *args)
end
end
class Bar
include Singleton
def Bar.method_missing(cmd, *args)
self.instance.__send__(cmd, *args)
end
end
要するにFoo.instance.mymethodをFoo.mymethodという形でも
呼べるようにしたいんですが、これをSingletonモジュールに
何か追加することで実現できないかなぁ、と。
method_missingはクラスメソッドじゃないよ。
>>584 説明不足だったかも知れません。
上記コードでは期待通りの動きをするのですが
(Foo#mymethodをFoo.mymethodの形で呼べる)、
同様の機能を、Singletonをincludeするクラス全てに
与えたいわけです。それぞれにmethod_missingを
定義することに無駄を感じた次第でして。
>method_missingはクラスメソッドじゃないよ。
クラスメソッドというのはClassクラスの特異メソッドという
解釈でいいですよね?上記の例で言えば
Class#method_missingを特異メソッドとしてオーバーライド
していると思えばいいのでしょうか。
RDEが別に悪いという分けではないが、Windows環境でのrubyははっきり言って
価値は半分以下だよ。動かないライブラリ多いし、本当に快適な環境はunix系
でないと駄目だと思う。ActivePerlみたいにwindows環境のActiveRubyなpackage
があれば良いのだけれど。
(winではcygwinでもmswin32でも同じでrdocすらまともに読めないから)
あと、RAAにライブラリ登録している人もちっとリファレンスしっかり書いて
くれ。せっかく作ったのにメソッドとかクラスの関係が全く分からないし
rdでドキュメントが書いてある日にゃ、windows環境だと全く嫁ねー。
こんなかんじのを Singleton と一緒に include してみたら?
もしくは同等の細工を singleton.rb にほどこすか。
module Hoge
class << Hoge
def included(klass)
super
class << klass
define_method(:method_missing,proc {|cmd, *args| self.instance.__send__(cmd, *args)})
end
end
end
end
あ、あとwin環境はResolver辺りも動かなかったな。
>要するにFoo.instance.mymethodをFoo.mymethodという形でも
>呼べるようにしたいんですが、これをSingletonモジュールに
>何か追加することで実現できないかなぁ、と。
やりたいことがこれだけなら、無理してSingletonを
使わなくても適当なオブジェクトを定数に入れて
おけばいいだけという気がするけど。
Foo = Object.new
class << Foo
def instance
self
end
def hoge
puts 'hoge'
end
end
Foo.instance.hoge; Foo.hoge
erbcgi.rb って obsolete なの?
Cygwin版で勉強し始めたのですが、
2バイト文字を含むパスをFile.openできないのですが、
どのようにやったらいいんでしょうか?
ファイル名を1倍と文字に変える
>>592 日本語のフォルダ名やファイル名には
対応していないということなんでしょうかね。
Windows環境で便利なスクリプトとしてこれから
使おうと思っていたのですが、、、ちょっと残念。
Cygwin自体が2バイト文字(というかShift_JIS)対応がアマいんじゃなかったっけ?
-Ks 付けてもだめ?
あっ、mswin32版をダウンロードしてやってみたら
できました!
ruby -Ks script.rb
Dir.glob(%q(C:/マイ ダウンロード/あああ*.txt)) { |name|
print "filename=#{name}\n"
File.open(name) { |file|
file.each { |line|
print line
}
}
}
ちなみに-Ksオプションつけなくてもちゃんと日本語の行が表示されますね。
あ、cygwin版でもファイルパスを
/cygdrive/c/...から始めれば一応エラーは出ませんね。
(さっきはC:\...から始めてました)
でも期待した出力結果は出てこないですけど。
とりあえずmswin版でこれからはやってみます。
ひょっとして cygwin のバージョンが 1.5.10 だったりする?
>>598 インストール用のsetup.exeをダブルクリックしたら
2.427でしたけど違う?
cygcheck -c cygwin
1.5.10 は日本語ファイルの扱いがまずいらしい
あぁ、1.5.10-3だよ。多分最新のものだろうと思ってたんだが?
Cygwin Package Information
Package Version Status
cygwin 1.5.10-3 OK
それとも最新のものにバグがあるの?
$ cygcheck -dc cygwin
Cygwin Package Information
Package Version
cygwin 1.5.10-3
$ mkdir /tmp/2バイト
$ cd /tmp/2バイト
$ touch foo
touch: creating `foo': No such file or directory
604 :
デフォルトの名無しさん:04/08/24 07:00
ふと見たら、Eclipse のRubyプラグインが新しくなってるね。
WebPublisherとかいうやつが依存してるから、新しくなったのかな。
簡単にインストールできたから、もうRDEいらないや。(ちょっとEclipse起動に時間かかるけど。)
605 :
デフォルトの名無しさん:04/08/24 16:26
Ruby1.8.1のwin32版にRMagick1.6.0をインストールしようとしました。
ruby install.rb config とすると、
C:\RMagick-1.6.0>ruby install.rb config
install.rb: entering config phase...
---> lib
<--- lib
---> ext
---> ext/RMagick
C:/usr/local/ruby-1.8.1-i386-mswin32/bin/ruby C:/RMagick-1.6.0/ext/RMagick/extconf.rb
C:/usr/local/ruby-1.8.1-i386-mswin32/bin/ruby: No such file or directory -- C:/RMagick-1.6.0/ext/RMagick/extconf.rb (LoadError)
config failed
'system C:/usr/local/ruby-1.8.1-i386-mswin32/bin/ruby C:/RMagick-1.6.0/ext/RMagick/extconf.rb ' failed
try 'ruby install.rb --help' for usage
というエラーが出ます。
C:\RMagick-1.6.0\ext\RMagick\extconf.rb.inというのはあるんですが、ひょっとしてこれは
configureでextconf.rbを作れということなんでしょうか?よろしくお願いします。
最新のruby-modeはどこやねん
>>605 > C:\RMagick-1.6.0\ext\RMagick\extconf.rb.inというのはあるんですが、ひょっとしてこれは
> configureでextconf.rbを作れということなんでしょうか?よろしくお願いします。
ということ。
しかしこいつ、別ディレクトリだと全然コンパイルできんな。
うぉう。ruby本体に入ってたのね。ruby-modeでぐぐって
先頭に出てきたの入れたら動きやしねぇ。
本体に入ってたのは何の苦労もなく動きました。
なんかキモイのが間にはさまてるぞ
keijuさんのページごと消えてるみたいだね。
タグファイルを作りたいだけなら、最近のctagsはRubyにも対応してるけど。
$ ctags --version
Exuberant Ctags 5.5.3, Copyright (C) 1996-2003 Darren Hiebert
Compiled: Mar 14 2004, 22:28:44
Addresses: <
[email protected]>,
http://ctags.sourceforge.net Optional compiled features: +wildcards, +regex
$ ctags --list-languages | grep Ruby
Ruby
そうなのですか。ctags試してみます。ありがとう。
なんか最近rubyが全体的におかしくない?
もりさがってきたって言うかなんていうか。
いろんな部分でリンク切れや
ライブラリ製作者やプロジェクトの
不手際が目出つような。
プログラミング自体が盛り下がっているような……
プログラミング関連で勢いがあるのってWindows周りだけだしな。
後は淀んで腐り始めてるよ。
Windows環境でディレクトリ・ファイル操作(削除したりコピーしたり)
をしようとしてるんだけど、Permission のエラーで
全然動かないんですけど。。。
( ´_ゝ`)フーン
>>614 確かに、一時期の盛り上がりから考えると、最近は停滞しているかも。
でもまぁ、オープンなわけですから、我こそはと思う人が盛り上げるのもありですし。
私自身は業務にも趣味にもRubyを常用・愛用していて、盛り下がってるつもりはないんですけどね。
全体的にはRuby2待ちなのかなぁ。
>>617 どういった環境でどんなスクリプトでどういうエラーになってます?
エラーが示すように、権限がないんじゃありませんか?
>確かに、一時期の盛り上がりから考えると、最近は停滞しているかも。
java風なスクリプト言語のgroovyとかpnutsもあるしね。
そういえば最近ruby使っていてツクール厨房のフォースを感じるんだが、
すごく気分悪くなってくる。これが一番まずいようなヨカン。。。。
>>621 > そういえば最近ruby使っていてツクール厨房のフォースを感じるんだが、
どこらへんで?
623 :
デフォルトの名無しさん:04/08/29 03:31
いまさら、PHP やるよりも、Ruby をやったほうがいいよ。
PHP はセットアップがものすごく面倒なんだ。
他方、Ruby for Web というパッケージは、セットアップが簡単。
PHP 相当のことが直ぐできるよ。
パッケージのアップグレードも、個々のライブラリーの更新も簡単。
MySQL も直ぐ使えるし、楽勝なんだ。
PHPの隆盛について
ストラトの調弦は難しいから、ゾウさんにしな。
反射望遠鏡の光軸調整は難しいから、屈折望遠鏡にしな。
後から OSをインストールするのは難しいから、OSプレインストール PCにしな。
包丁を研ぐのは難しいから、ステンレスの包丁にしな。
Rubyのインストールは難しいから、PHPにしな。
たぶん、そういうことなんだろうと思う。Webプログラミングに限ってだが。
素人でも設定できることが重要、設定できなければ使えない。
ゾウさんが売れるのも、OS プリインストール PC が売れるのも同じ理由。
ギターもソフトウェアも、セットアップを簡単にすると、
素人向けで儲けが生じる。「素人」だからこそ、それに金を払う。分業だし。
オートフォーカスカメラが登場したときに、プロのカメラマンがバカにしていた。
ダシ入り味噌をバカにしている料理人も知っている。
それらは、素人向け商品なんだが。バカにすること自体、おかど違い。
Ruby の専門家がバカにするような Ruby パッケージ希望。
単純に PHP 相当になればよい。
>>624 どーなんだろうねぇ。
そんなんが出たら
>>621のような輩が毎日このスレにこう書きそうだぞ
----
そういえば最近ruby使っていてRuby パッケージ厨房のフォースを感じるんだが、
すごく気分悪くなってくる。これが一番まずいようなヨカン。。。。
>>624 gems がより洗練されて普及すれば
ライブラリのインストールも CPAN 並に楽になるよ。
Ruby 本体のインストールは別に現状でも難しくないでしょ。
クギャャャャヤャャャャャャャホホホホホホ!!!!
待て>625同志よ。rubyパッケージは最高だ。脳内では既にsp1が配布されている。
まず、あなたという人を知るために、1桁の数値に表されたあなたという人の人格の基本的な性格と運命傾向を探ってみることにしましょう。
◎1桁の宇宙数
→個としての在り方、宇宙の中で与えられた特質と運命ポジションを表す数値
→基本的な性格と運勢傾向
お名前:ruby
この数字を持つ人は、二つの個性を同時に内在させることになり、虚無的な明るさと孤独の暗さを持ち合わせることになります。
一見、無愛想で近寄りがたかったり、何処か翳りのある内向的な雰囲気を人に感じさせやすいでしょう。独特の個性が人に威圧感を与えることもありがちで、それ故、他人からは誤解されやすく、真実の姿をなかなか理解されないことになりやすいでしょう。
お名前:perl
誰が何と言おうと「ゴーイングマイウェイ」を貫く人です。自我が強く、またそうしたこだわりや自分なりの主張が髪型や服装、持ち物、ライフスタイルに現われている
かも知れません。また、それらはトレードマークというような周囲に受け入れられる個性になる部分でしょう。たくましく、逆境に強く、周囲や情報に敏感でありながらも、それに惑わされず、自分の時間で人生を生きることが出来る芯の強い人です。
お名前:python
気難しそうな外見とは裏腹に、気さくで気取りの無い庶民派気質の人です。どちらかというと自分第一な人に思われやすく、神経の細やかなタイプに見られにくいのです
が、さりげなく周囲に気を配って、人が嫌がる裏方の部分を引き受ける謙虚さを持ち合わせています。そうした安心感や信頼感が、いつのまにか人望を集めることになるでしょう。
629 :
デフォルトの名無しさん:04/08/30 15:45
RubyのよさげなWeb上の解説ってありやすか??
hoge = [0x69, 0x66, 0x61, 0x65, 0x72 …]
↓
hoge = "ifaer…"
みたいな感じで、数MByte分くらいある数字の配列データを高速に文字列(と言うかバイナリ列)に変換する方法って何かある?
hoge.collect!{|x|
"%c"%x
}
みたいにやるとめちゃくちゃ時間かかるんで…_| ̄|○
>>633 おぉ…かなり速くなった
こんな時間にサンキュ
635 :
デフォルトの名無しさん:04/08/31 19:01
HSB程度の機能も備えていないRubyの貧弱さには失望しました
>>635 恥ずかしながら..."HSB"とは何でしょうか?
色情報の形式の1つ?
high speed bootだろ
>>636 何故、検索をしないのですか?「検索」を知らないんですか?
すぐ人に聞いて解決を待つのは愚かな行為だと思いますよ。
CIIJQOIIXWZMZPEANCIUJDFIQJD程度の機能も備えていないRubyの貧弱さには失望しました
isalphaとかisalnumとかiswhiteみたいなメソッドはありますか?
isalpha(?a) #=> true
みたいな。
そういえばそうですね。
今、1バイトずつ読み込んで処理するスクリプト書いてて、それで文字列じゃなくて
Fixnumとして扱ってるので、正規表現を忘れてました。
どうもありがとうございます。
HSPじゃないの。最近日記で叩いてたから。
HSB for PC-9801 懐しすぎ。
Rubyで、特定のパターンにマッチするメールが来たら、そのログを出力するような
アクションを起こすPOP Proxyを作りたいなぁ、と思います。が、作れません。
わかんないんです。ぶっちゃけ教えて下さい。Tserver使えばいいような気がする
ところまででもう一杯一杯です。
Fromがxxxで、Subjectがyyyだったらログファイルに出力、という以外は全て通信を
透過させればよいはず、と素人なりに考えるのですが全然実装方法がわかりません。
透過処理を行う部分だけどなたかヒントを頂けないでしょうか。
.forward でスクリプトに投げるってのはよくやる手だけど、
環境とか背景をもうちょっと書かないとヒントの出しようが...
>>647 環境はWindowsです。
多数のメールソフトで使えるようにとPOP3のProxyという形で実装したいのです。
メールソフトが固定されていれば、そのメールソフトでのマクロという形での実装が可能ですが、
多数のメールソフトを対象にするので、POP3のProxyという形で実装したいです。
背景は、
・一日に自動的に自分宛てに送信されるメールが多数ある(件名はそれぞれ固定)
・それぞれのメールがそれぞれの規定時間帯に届いていない場合はアラートを発生したい
・障害を通知するメールを受信した場合もアラート発生したい
・メールソフトは非固定にしたい
・確認処理用のアカウント(メールボックス)の作成は不可
です。現在手動ですが漏れがでるので自動化したいのです。
方針としては、
・メール確認部分はPOP3のProxyとして動作。メールソフトに非依存。
・メール確認のトリガはメールソフトでの受信処理
・アラート発生処理はメール確認部分のログを確認して処理する別スクリプトとして実装
と考えています。
技術的には、POP3のProxy云々という所がどうしてもわかりません。他は何とかなりそうです。
それにあたり、技術的に自分には困難なのがメール受信
メールをRuby等で受信し件名などの情報をチェックするスクリプトを
その有無を自動的に管理したいのです。できればブラウザからその日のそれらメールの有無を
参照し、規定時間までに来ていない、もしくは緊急の対応を要するメールであれば
具体的な例としては、
・Fromがxxx1でSubjectがyyy1→
ログファイルにzzz1と日付、時刻と共に出力
・Fromがxxx2でSubjectがyyy2→
Aメールは〜9:30
なので.forwardはつかえないです。
>>648 技術的に調査するとしたらそこでしょうね。
APOP非対応として、Apopfilterを参考に実装することになるのでしょうか。
うーん、ぱっと見難しいですがこれが分からないとどのみち今回の実装は無理なのかなぁ。
見てみます。
while true; server.gets; server_str += $_
よりも、
while s = server.gets; server_str += s
server_str[0..(size-("\r\n.\r\n".size))]
は
server_str.chomp("\r\n.\r\n")
という方法もある。
server_ary[1..server_ary.size] は server_ary[1..-1] とも書けるけど
先頭の2行を消すだけなら server_str.sub!(/\A.*\r\n.*\r\n/, '') でいいんじゃないか?
つーか、Arrayのまま持ってたほうがいいんでは。
文字列の置換を行うときに置換する文字列の中に後方参照(\1, \2とか)が含まれていると置換時に消えてしまうんだが
何か対策ってある?
とりあえず
mes = 'Filename:<FN>'
fpath = '.\100\foo.dat'
mes.sub!(/<FN>/,fpath.sub(/(\\\d)/n, '\\\\\\1'))
みたいにすれば出力結果は正しい物になるけどコードの見栄えが良くないので…
>>654 String#sub!(pattern, replace) は使っちゃダメ。絶対。
String#sub!(pattern) {|matched| .... } の方を使いましょう。
mes.sub!(/<FN>/) { fpath }
>652
指摘ありがとうございます。その方がシンプルに書けますね。
正規表現で \A ってのは知りませんでした。
勉強になるなぁ。
あと
s/Beck/Becky/
でした。
>>655 サンキュ。できたよ。
String#sub!(pattern, replace)はバグ持ちって事?仕様?
俺が書いているコードはほとんどsub!(p, r) or sub(p, r) or gsub!(p, r) or gsub(p, r)だよ…
変な問題が起きなければいいが…_| ̄|○
#include<iostream>
#include<ruby.h>
int main(){
ruby_init();
ruby_init_loadpath();
int state;
VALUE volatile i;
i=rb_ary_new();
rb_load_protect(rb_str_new2("hoge.rb"),0,&state);
rb_p(i);
return 0;
}
hoge.rb の中でガベージコレクションを行うと、
iが回収されてrb_p(i); で落ちてしまいます。
なぜなんでしょうか?
「Rubyのガベージコレクタはスタック領域から参照されているオブジェクトにもマークを付ける」
との事なので、iが回収されるのはおかしいような気がするのですが…
ruby_initの中身を見れば自明だが
main以外の関数でやれ。
保守GCの常識。
あ、ruby_initの呼び出しは変数を使う関数よりも上でやれってことね。
Cのスタックの伸び方知ってればわかると思うが。
>>651 ありがとうございます!
でも、見たらリンク既に切れてました。
もう一度アップして頂けないでしょうか。
お手数ですがお願いできませんでしょうか。
>>652 アーカイブが手に入ったら見てみます。
>>653 参考になりそうですね。POPのリクエストを処理する参考になります。
>>651 なにとぞ再度のご降臨を・・・
>>644 叩かれて当然だよな、あんなの。何世代前の言語だよ。
ライブラリが豊富とか、コミュニティがどうのとか、そういうのは知らないけど。
何でそんな言語を使っている人がいるのかというのを考えないと
665 :
デフォルトの名無しさん:04/09/02 11:58
結局Rubyはプログラミング入門には使われてないし。
ホビーユーザーにも相手にされていない。
標準では窓一枚開けないしピクセル一つ描画できない。
VBやPerlが普及してHSPがそれなりに支持を得ているのは
言語の美しさが理由ではまったくないな。
オタクユーザーに普及しないのは萌えないから。
(ツクールに採用されたらしいから、状況がかわるかもね)
ruby信者による「なぜrubyが使われないのかについての考察」キボン
>>665 > 標準では窓一枚開けないしピクセル一つ描画できない。
各種OSで動かせるように作ってますからねぇ。
ライブラリを使えば、LinuxでもWindowsでも、それなりのGUIは組めますが、
標準で使えなきゃやだっ、という人には無理ですなぁ。
自分では、vruby(VisualuRuby)でアプリケーションを作って、
exerbでEXEファイル化して重宝してます。
もっとみんなにRubyを使ってみて欲しいんですけどね。
無料鯖で使えるわけでもなくゲームに向いてるわけでもない
使いどころがないから仕方ないね
PHPみたいにDB連携がいいわけでもないし
>>658 本家にあったのか…気が付かなかったよ…
ありがとう
>>667 tDiaryとか、UNIX者の名もなき自分用プログラムには使われてると思うけどね。
逆にHSPはそういう方面では使われてない。
対象としている利用者層がちがうんだから、これでいいんじゃない。
原始的言語は、覚えなきゃいけないことが少ない
=規則が少ない
きれいで便利な現代的?言語ほど規則が多い
=ある意味、言語デザイナーによる価値観や規則の押し付け。
便利さよりも、不便な自由?言語が中高生に選ばれるのは、
校則などで、押し付けはお腹一杯だから…
文部省
>>671 某プログラミングコンテストに応募するような若きプログラマの卵は
対象とする利用者層ではないと。
>>668 exerb知らなかった。
exeを作れるなら、またrubyをいじってみるから。
>>672 HSPって本当にそんなに自由なのか?
「gotoならどこにでも飛べるからifやwhileより自由、gotoさえあればいい」という論法?
gotoはフォンノイマン型世界の中で、限られた自由への道。
いい悪いは別だけど。
>>674 「利用者層」なんてこんな些細な違いでコロコロ変わるんだよね。
>>672の自由の意味を読み違えていると思うが。
不便な自由ってお仕着せの完結したでも簡単に目的が実現できる環境のことだろ。
Rubyの自由は無人島の自由だな。
>>671 漏れはウニクサじゃなくドザだけど、自分用ツール作成に重宝しているクチだな。
昨日、「Ruby/GTK プログラミング入門」を買ってきた。
Ruby/gtk2 の本が欲しかったんだけど見あたらなかった orz
>原始的言語は、覚えなきゃいけないことが少ない
>きれいで便利な現代的?言語ほど規則が多い
むかーし、6502の仕事をしたとき(他のCPUに比べて)命令数が
少なくて簡単だろ、と6502一筋の上司から言われたけど、
逆に簡単なことをするのにも、何行もコードを書いてパズルチックに
組み合わせを考えないといけなかったので、難しいと思ったことがあった。
>>669 > 無料鯖で使えるわけでもなく
少なくとも xrea では使える
tok2もバイナリ突っ込めば動く。規約はざっと呼んだけど違反ではないと思う
語るほどに突っ込みどころ満載のバカにマジレスしてちゃダメでしょ。スルーで。
>>660 こんな感じですか?
#include<iostream>
#include<ruby.h>
int sub(){
int state;
volatile VALUE i;
i=rb_ary_new();
rb_load_protect(rb_str_new2("hoge.rb"),0,&state);
rb_p(i);
return 0;
}
int main(){
ruby_init();
ruby_init_loadpath();
sub();
return 0;
}
しかし、これも同じように落ちてしまいます。
どこが悪いのか…
最近、Ruby 関係で調べものしようとぐぐると、
無関係な tDiary のサイトが大量に引っかかって頭に来ることが多い。
>>684 環境とrubyのバージョン、コンパイル時のオプションは?
int main(int argc, char **argv)
{
ruby_init();
Init_stack((VALUE *)&argc);
とするとうまくいく場合もある。
最適化でinline展開されてるとか
>>686 ありがとうございます!!!!!
参考にさせていただきマッスル。
691 :
デフォルトの名無しさん:04/09/03 03:34
Ruby は、素人には全く魅力のない言語。
といっても、玄人が仕事で使う言語でもない。
Ruby は、玄人のお遊び言語。
まつもと氏の言う "たのしさ" は、玄人の "たのしさ" だと思う。
「Ruby はプログラミング入門に最適の言語」って、たわごとでしょ。
全くプログラミングを行ったことの無い人間が、
最初のプログラミング言語として、Ruby を選択することはありえない。
入門者が Ruby を使う場合、誰かサポートする香具師が横についているよ。
Ruby本体やライブラリのインストールも含めて。
玄人にしても言語の字面や「美しさ」に関心がない人は
Rubyには興味を抱かないんじゃないの。
あとは手段としてのみプログラミング言語を用いる人。
コーディング・設計ではなく実際に動作するプログラムにのみ関心を持つ人。
逆に真性言語オタクはSmalltalk, Lisp, Haskellあたりに行くんだろうか。
とするとRubyのターゲットは中庸な言語オタクってとこか。
C言語の入門書は、変数、演算子、制御、関数など
プログラミング概念を取得することに、向いている。
ただ、成果主義の素人の目には、C言語の入門書ってバカバカしい。
配列を使ってスタックを作る。カッコの対応を調べる。
ソートする。素数を探す。
標準入力からデータを得て、加工して、標準出力へ出す。
「1冊読んで、こんなことしかできないのかよ」って驚いてしまう。
今の GUI が普及して、PC に触れることになった人々には、
Ruby の入門書も、それくらい、無味乾燥な印象を与える。
文字列処理に沢山の紙面を費やしている。
そんなのエディタで出来るから、ぜんぜんありがたみがない。
一方、HSP なら、いきなりスクリーンセーバーを作ったりするし。
素人には "たのしい" と思うよ。"たのしい" が違うんだ。
# そういえば、Java には AWT があった。
695 :
デフォルトの名無しさん:04/09/03 06:44
しかし、初心者に最適とされるWindows上で動作する言語、
(HSP、ひまわり、TTS)などがいずれも前世紀の遺物の
ようにBASIC程度の構造化や制御構造しか無いのは、日本の
プログラマの卵にとっては不幸としか言いようが無いな。
まあ責任は初心者プログラマではなく志の低い言語デザイナに
あるわけだが。
そういうのは後から必要尾に応じて言語乗り換えれてソフトウェア工学を勉強すればいいだけの話。
自分もN88BASICから入ってひたすら汚いコードを書き散らして根性でデバッグしてたよ。
構造化プログラミング、OO、硬いコードの書き方なんて勉強したのはずっと後だったな。
rubyって良くも悪くもオープンソースプロジェクトそのものだよな。
標準で何もなく、企業の作ったIDEレベルのものを備えず
各種ライブラリも半端でデファクトといえるものが存在せず
同機能異実装な物が乱立しユーザーはネットを這いずり回ってかき集めてきて
半端なドキュメントとGoogleで七転八倒しながら覚えていくと。
開発ツールに関しては一貫して商用の物を使ってきたな。ついでにOSも。
だからLinux的なものは今だにどうも馴染まないよ。付き合いは短くないのに。
プログラミング入門者はHSPとは言わないまでもWinでVBかC#かDelphiやっとくのがいいと思うな。
触れるならMathematicaでもいいけど。ハッカーコースではないけどね。
<aaa> bbb <ccc> dddd
↑こういう文字列から<>に囲まれた部分を取り出したいのですが、
a = str.scan(/<(..+)>/);
こう書くと、("aaa","ccc")ではなくて、("aaa> bbb <ccc")となってしまいます。
この場合どのように正規表現をかけばいいですか?
(もしくはscan以外に簡単な方法がありますか?)
要はライブラリとドキュメントとWindows対応とGUI対応を
強化すりゃいいってことでしょ。
単に時間の問題。
カッコの向きが違った。。。
/<([^>]+)>/
<(.+?)>
こうでもいいな。
<(. .)> sorry..
>>698 そりゃ頼もしいね。
あんまり進んでないように思えるけど例えばWindows向けにはどのGUIライブラリが普及しそうなの?
.NET,特にAvalonには対応できるのかな。
<(?_?)>
俺は、素人だしPCもプログラミングも専門外だが、
入門書1冊と本家のリファレンスマニュアルで大抵こと足りた。
まぁ、やってることがショボイからだろうけど。
でも、
>>691 みたいなのは理解できない。
サポートする人が横に必要だとか、素人というより自分に甘い人間に向いてないだけなんじゃないかと。
んな奴は、何やっても駄目だろ。
その点は万人向きじゃないかもしれないが、フリーなのだから当然だと思ってた。
>んな奴は、何やっても駄目だろ
こーゆー偏見的優越感を持つ人が多そうなのがRubyの欠点かも。。。
そもそも、素のBASICみたいな、現代的見地からすると糞としか思えないような
言語を知ってるからこそ、Rubyのよさがわかるんじゃないか?
HSPのソースコードをチラッと見たのだけど、あれでプログラミングを勉強した人は、
次のどの言語へ行くの?
Java, C++, PHP, (Ruby) どれにしても、移行はスムーズに行きそうにないのだが。
ruby-list 40000 到達おめ。
>>708 スムーズも何も用途しだいだろ。
これといった用途がないRubyには多分行かないだろう。
会社で他の人にも使わせるスクリプトを作ることを考えると、
「ActivePerl突っ込んどけ」で済むPerlが楽なんだよね。
>>706 > こーゆー偏見的優越感を持つ人が多そうなのがRubyの欠点かも。。。
これまた偏見ですね
>>712 このスレのながれから、GUI使うならどれだろ、Apolloかな。と考えはじめたところだけど、wxってどうなの?
>>703 webrick でサーバ立ててウェブアプリをブラウザで操作。
>714
wxWidgetsは結構使えるよ。wxRubyは判らないけど……>712の感想キボンヌ
>716
現時点でも簡単なGUI設計には使えると思うけど、まだまだ対応したてで拙い部分もあるから今後に期待ってとこ。
拙いところ
・エディタで日本語表示出来ない。
ただ、そのうちフォント設定くらい付くとは思うし、
エディタ以外の部分では日本語表示は全く問題なし。
GUIデザインだけやって、プログラム部分は常用のエディタで弄れば良し。
・フレームとかの色を変更するとwxRubyではなくwxPythonのものと思われるコードが追加される。
多分他にもそういう部分はあると思われる。
個人的に気に入ったところ
・サイズが小さい。インストールサイズが8MBくらい。
・レジストリを使わない。せいぜいプロジェクトファイルの関連づけ程度。
KNOPPIXでwxRubyをコンパイルしてみようとしましたが、
$ ruby -I /home/knoppix/ruby-1.8.1/lib/ extconf.rb
can't find header files for ruby.
となります。
ヘッダファイルのパスを指定することはできないのでしょうか?
>>718 自己レスです。
できないようです。
mkmf.rbの80行目に
if not $extmk and File.exist? Config::CONFIG["archdir"] + "/ruby.h"
$hdrdir = $archdir
elsif File.exist? $srcdir + "/ruby.h"
$hdrdir = $srcdir
else
warn "can't find header files for ruby."
exit 1
end
$topdir = $hdrdir
と書いてありました。
試しにsrcdirを見てみると
$ ruby -r rbconfig -e "p Config::CONFIG['srcdir']"
"/tmp/ruby1.8-1.8.1/build-tree/ruby-1.8.1"
ということなので、ここにリンクするとMakefileができました。
しかし今度は、wx-config: command not foundと。
とりあえず、最初にFedraで作ることにしました。
>>708 > HSPのソースコードをチラッと見たのだけど、あれでプログラミングを勉強した人は、
> 次のどの言語へ行くの?
> Java, C++, PHP, (Ruby) どれにしても、移行はスムーズに行きそうにないのだが。
私は、HSP→HSPのプラグイン(C++)→C++
→手軽さ美しさに惹かれてRuby→ポータブルなJava
という風に行きました。
移行は特に問題なく、人並みにスムーズにいけましたです。
HSPはアセンブリに近いです。
気軽にGUIアプリを実現できるインタプリタがゆえに
使ってて楽しいので、プログラミングの入門・基礎学習には良いと思いますよ。
正直ゲーム作りに興味ある人にとっては、HSPはRubyより魅力的かと思います。
あと、チラッと見ただけで判断できる優秀な人は別にいいのですが
他の勉強熱心な人は、言語の比較をしたいと思ったら
とりあえず触ってコーディングするのが賢いと思います。
HSPの良いところ、それは自分の興味に沿ったプログラミングが
すぐできることです。
また、HSPの作者はおそらく意図しなかったでしょうが
「やりたいことの連鎖(Chain of Demand)」が起こるのです。
Rubyでも同じことですが、HSPプラグインを書くために
いやがおうにもC++をやってみたいと考えるようになり
ついに自分で勉強を初めてしまいます。
Windows APIにも自然と詳しくなり、使っているOSに対する
理解も深まりますよ。
なるほど、HSPについて参考になった。個人的には、こういうレスは好きだ。
でもな、そろそろ巣に帰った方が良いかと。荒れるぞ。
つーか、そんな個人的な事情満載で推されたり比較されてもなぁ。
>>720みたいな人間はどんな言語やっても問題ないと思われ。
しかし「問題ない」と言っている言語間の移行がスムーズに
行かない人間の方が遥かに多い。
個人的にはBASIC的な文法を持つ言語は消え去るべき、と
思っていて初学者にも最初からRubyやLispを習わせたい。
言語の発生した順で習うのが自然。
>>724 じゃあLispを最初に習うべきだな。
HSPは最後で良い。
(そして、その頃には習う気になれない。)
>HSP
……VB? 構成要素の直交性上げるの大変そうだな……
3つ以上同時に考えられないジジイには無理です。使えません……
Rubyて「盆栽」ぽい気がするのは俺だけ?
Oh! Japanese "BONSAI "Programming Language
>727
比較的保守的だからじゃないの?
1,2年前のruby-devのメールだと思うのですが、akr さんが kosako さんに 「Java(C#?) にある hoge を
実装してもらえると、foo(忘れた) というのが一発でかけるようになる」と願望をだして実装されたと思うの
ですが、その番号を教えてもらえますか?
依頼のときに akr さんが書いた長くてカッコいい正規表現がすごく印象に残っているので。
20307?
37564?
Iconv と Uconv ってどう違うんですか?
Iconv は ICONV(3) のラッパ、いろんな文字コードに対応してるけど、実装は OS によりまちまち。
Uconv は UTF-8/16 と Shift_JIS、euc-jp 間の変換に特化。
最近このスレにHSPとかいう単語が俺のregexpな目に多量にマッチするんだが、
ツクール厨のこおばしい匂いがププーーンと・・・・
ruby を使った cgi で、MySQL とか PostgreSQL などのDBソフトが使えないサーバーで、
簡単なデータベース処理をしたい場合はどうすればいいんでしょうか?
perl と同様にテキストデータベースになると思うんですが、
ruby には DBM というモジュールがあるようですが、
これを使うのが一般的でしょうか?
ttp://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=DBM ruby で簡易DBを使った cgi を解説したサイトをググってみたんですが、
見つからないので質問します。
ruby はスタンドアロンでテキスト処理用のスクリプトは結構書くんですが、
cgi はなにぶん初めてなものでよろしくお願いします。
>>736 SDBMとかは? リファレンスマニュアルにも「外部ライブラリに依存しない」
と書いてあるし。
gdbmが入ってるならGDBMでも可かと。
>>735 先にHSPに喧嘩売ったのはmatzなんだから多少スレが荒れても信者は我慢しなさい。
しかしmatzもオープンソースじゃない実用言語が嫌いだからって
いちいち思い込みで批判して周る必要もないと思うんだが。
C以外の実用言語の現実的な知識(まあ文法くらいはチェックしてるにしても)は皆無なんだからさ。
まぁHSPはウンコだけどな。
つうか、HSP信者はすごいな。
お前HSP以外の実用言語の現実的な知識(多分文法すらも)は皆無なんだろ?
>>740 > C以外の実用言語の現実的な知識は皆無
matzがcmailのメンテナだったこととか知らんのか?
>>743 知ってる(使える)言語が少ないのに、言語の比較をやっている時点で、(ry
>>743 仕事で使うんじゃないなら
言語なんて好みの問題だからご勝手にというところです。
>>743 Perl使いやMac使いに恥ずかしい思いさせるんじゃないよ
って感じかな
>722
巣?私が唯一常駐しているのは、このRubyスレなんですが…。
何か勘違いしてませんか。
とにかくHSP楽しいですよ。
他人の意見にいちいち影響されて付和雷同しているようでは
島国根性から一生抜け出せませんよ。
>723
私も、初学者にはJavaかRuby、もしくはC#をすすめたいですね。
HSP が流行っているのは言語の出来不出来とはなんら関係なくて、
ゲームを作りたいワナビー層にというニッチに適した言語仕様と
コミュニティを形成できたおかげだと思う。
Windows版でインストーラがあればも少し敷居が低くなると思うよ
Cygwin入れるほうが大変だわ。
てか、Cygwinとか入れたくないわけよ。
読めないしな
758 :
デフォルトの名無しさん:04/09/05 23:24
>749
mswin版ならインストール不要です。
展開して$(Ruby.exeのあるパス)/ruby.exeで呼び出すだけ。
ruby 〜〜で呼び出したければPath通す必要あるけどね。
>748
まぁ、言語の出来不出来となんら関係ないなんて
よくそんな失礼なことを言えますね。
あなたがHSPを触ったことのないか、
もしくはHSPを全然知らない証拠ですよ。
でもコミュニティが発達していることが人気の一因
という点は当たってますね。
もしかしたらプログラマさんじゃくて、ライターさんなのかな?
ごめん、上げちゃった。
そういや、mswin版のwebrickでcgiって使えないの?
お手軽wikiを作ろうかと思っているんだけど、cgi動かない……
matzがWindowsに明るくないらしいから普及拡大もこれ以上は無理だな
結局Ruby作って何がしたいのかね
打倒Perlでしょ
>>758 自分だけで使う分には問題ないんですけどね。
スクリプトを周りにも使ってもらうためには、
パスを通してもらうだけでも敷居になってしまうのですよ。
何か俺でも言語作れそうかもって気分にはなったよ。RHG とか。
>>737-739 pstore,sqlite,SDBM ですね。
いづれも初めて聞く名称ばかりなので^^;
これからググってみます。
レスありがとうございました。
766 :
デフォルトの名無しさん:04/09/05 23:45
NDBMも!
>763
バッチファイルを実行してもらう & mswinの環境ごと配る で何とかなるかな……
十数MBを配るのも大変だけどね……
>764
言語設計は汎用性求めなければそんなに難しくないよ。
まずはアプリの設定ファイルから初めてみ。
遠足のおにぎりに電気釜と発電機持っていくみたいだ。
>>767 win32環境相手にrubyで作ったスクリプト配りたいだけなら、exerbでいいじゃん。
>>759 hello world ボタン出すくらいのプログラム作る程度には使ったことあるよ。
748 で言ったのは syntax-semantics のレベルの話。
ビルドインのグラフィック/GUI周りの機能がある程度揃っているとか
プラグインで拡張できるとかの feature の部分はまた別。
>>761 Windows 以外での普及と、開発者の秘密兵器提供。
インストールディレクトリに合わせてパスを通して、拡張子を関連付け
してくれるだけでいいんだけどな。
つまりRubyじゃそんなこともできないわけだ・・・
ActiveScriptRubyなら、
拡張子の関連付けとかインストール時にやってくれるんだけどね。
RubyはWebのドキュメントが微妙にヘボいのも気になる、
リファレンスもっと見やすくなら無いかな、Pythonのみたいだと良いんだけど。
つまりやる気あるのかと
>771
う〜んやっぱりあなたはあんまりHSP触ったことないんですね。
とくにHSPでゲームを作ったことがないとなると
HSPの本当の価値はわからないと思いますよ。
どの程度のパフォーマンスが実現できるかにも目を向けてくださいね。
VBよりも実行が速いとか、画像を簡単に扱えるとか、
そういうことが大切なんです。
シンタックスだのセマンティクスだの言わなくても
あなたが立派な勉強家であることは
わかりましたから、寝言で英単語を並べるのは
かんべんしてくださいナ*chuckle*
>>779 言語として興味がわかない
じゃ、ダメ?
駄目だと思う。
初心者相手だと言語への興味とか関係ないし。
ほしい機能が手っ取り早く実現できるか否かが、やはり問題。
>780
そろそろスレ違いでしょうから恐々謹言で終わりにしておきますね。
学んで思わざれば罔し。
思うて学ばざれば殆し。
あなたの場合は、話しているうちに論点がずれていってしまうのも問題です…。
>781
賛成。
Rubyスレの住人がそれを求めてるとも思えんが
>>779 昔 ベーマガのコードを打ち込んでた口だけど、
HSP のコード見て今さらあのころの気分に戻りたくないなと。
サーバサイドのプログラミングが主でゲームは作らないし。
HSP で Web サーバが簡単に書けたら使ってもいいよ。
>>782 わりぃ、通りすがりで余計なちゃちゃ入れちゃった。
おれ別人だから。
>779
こうやってフレームになっていくわけですな。
>VBよりも実行が速いとか、画像を簡単に扱えるとか、
>そういうことが大切なんです。
まあ、いいんじゃない? オレだったら素直に C / C++ 使うけど。
……C++ かな、やっぱ。
ところで、HSPではクラスてどうやって定義するの?
HSP解説ページみても関数までしか書いてないし……
いつから言語比較スレになったんでしょうか。
昔Ruby厨というのが涌いたことがありましたが
そのサガというかRubyという存在が好きで自信たっぷりなんですよね。
わかりますよ…。
>784
サーバサイドのプログラミング=Webサーバを書く、という認識でいいなら
HSPで書かれたWebサーバは既にどなたかが作られてましたよ。
それを再生産したいのなら、どうぞHSPでご自分でコーディングしてください。
ただ、さすがにRubyの方が簡単に書けるでしょうし、
私だったら賢くRubyを使うでしょうね。
>785
そうですか…
C++とHSPじゃウィンドウ表示する労力が全然違うよ。
敷居を下げる話をしてるんじゃなかったのか?
なぜRubyとHSP??
不思議な展開だ…
>>787 ゲーム作るなら HSP なりを使うことは否定しないよ。
Ruby でゲームを作ろうと思わないしね。
俺なら C++ か Delphi 使うけど。
言いたいのは HSP の構文は読む気しないってことだけだよ。
なぜRubyとHSPかって言うと、
matzがいつもの病気でHSPに噛み付いたからなんだよ。
>788
使う気もないのにこんな質問したらケンカになるだろ。解ってないなぁ
>789
wxWidgetがあるから問題ないよ。
他にもいいフレームワークあるしね。
>793
matzに直接言って欲しいよねぇ。こんなところでクダ巻かずに
いや、私はいつものようにRubyスレをのぞきにきて
「HSPのことをよく知らずに批判している」人がいたから
それは違うんじゃないですか、って言っただけですよ。
matzのことなんて知りませんよ。
HSPを使う気のない人、HSPちょっと使っただけでわかった気になっている人、
英単語を使いたいだけの人、Rubyを自慢したい人、
適材適所でいいじゃないかという意見の人、ROMの人、
いろんな人がいるのも承知してます。
でもmatzがHSPについて何を言ったか、知りたい気はしませんね…
なんだか後が怖いから(汗)
てか、誰が誰だか和漢ねーYo
>796
おにたまの弁護士 VS matzの弁護士かな?
>795
批判しているひとはHSPの字面を批判しているんだけどね。
HSPがパワフルだろうことも想像つくし、ゲーム作成にフォーカスしていることも判るけど、
そこじゃなくてあくまで字面(と構文/言語としての機能)。
>792
>言いたいのは HSP の構文は読む気しないってことだけだよ。
つうのがそのまんまですな。
>>747 勝ってに付和雷同だの島国根性だの決めつけるなっつーの、腹立つなぁ。
なんだよ、荒れないようにフォローしてやったつもりだったのに、荒らしに来てたのかよ。
かなり香ばしいので、それ以上喋らん方が良いぞアンタ。
ご心配なく。普段からこのスレで
自分の好きな時に喋ってますから。
>800
……もう、何て言うか……
とりあえず、「君子は和して同ぜず。小人は同じて和せず」と言っておこうかな
いちいちツンツンすんなよ。そんなこと書く前にHSPについての疑問(クラスの作り方とか)
について教えてくれ。HSPとRubyの比較だったら付き合うからさ。
#ナイフとハサミ比較しているような感じもするけど……
真性が沸いてるスレはここですか?
なんかHSPスレから真性キチガイ厨房が脱走したみたいで
Rubyスレにご迷惑をおかけしてしまいました。
>>801 プロトタイプベースだからクラスはないらしい
806 :
デフォルトの名無しさん:04/09/06 06:26
ヤフオクの出品リストを取得して、ある条件のものだけを抜き出すといった作業を
行いたいのですがRubyで出来ますでしょうか?
VBスレでC++を布教したり、C++スレでJavaを布教するようなもんだな。
HSP信者ってこんなに馬鹿だったのか。
>>809 住人の傾向が違う点だけだからどっちでもいいよ
このスレではHSPの話題を出すと大漁になる事がわかった
>805
へえ、(Rubyでいうところの) 特異クラス作ってCloneですか。
これって、設計と実行がごたまぜになるからむずかしいんだよね。便利だけど
……でも、"Hot Soup Processor プロトタイプ"で検索かけても何も出てこない……
814 :
デフォルトの名無しさん:04/09/06 11:41
>>790 あそこでmatzがHSPに喧嘩を売ったからでは。
外部に呼び出したコマンドの標準入力にデータを渡すにはどうしたらいい?
できればバッチファイルの類は使いたくないんだけど…
Open3.popen3使ってる。
レシピブック見ると、他の方法も載ってるなぁ。
`echo #{yourText} | yourcmd`
>>811 マイナー言語愛好家の成功言語に対する嫉妬と
無根拠なプライドがそうさせるのだろう。
thx.
>>816 Win版だとforkがないってエラーになってしまうようです。
一応パッチがあるようですがそれでは標準のインタプリタで動かないスクリプトになってしまいますし…
>>817 おぉ!と思ったのですけどよくよく考えたら渡したいデータがマルチラインでした…
バッチファイルでも無理でした…○| ̄|_
165 名前:デフォルトの名無しさん[sage] 投稿日:04/09/02 22:52
お前らRuby作者が喧嘩売ってますよ
http://www.rubyist.net/~matz/20040827.html >いくつかの応募作品は、HSP - Hot Soup Processorで書かれていた。
>これのソースを読むのはつらすぎ。ソースコードを読む審査員に負荷をかけるぶん、
>ちょっと不利かも。 30年前ならともかく、もう21世紀なのにこの言語はないだろう。
>>815 単純に
open("|cmd")
じゃ駄目なの?
>>821 どっちかというとプロコンの審査方法の方が気になる…
>審査員自身は応募されたプログラムを自分で操作する時間はない。
なんだそりゃ…
>>822 thx. open("|cmd")でできました。
class C; end
module M
class C; end
# ここで外側の C を参照するにはどうしたらいいですか?
end
ありがとうございます。
::C.new でできました。
Rubyは日本語で書かれたテキストを処理することは出来ますか?
Perlと比べてどっちがいいでしょうか?
できる
Perl
tDiaryの日付単位のページのURLは、?date=20040906 のようなものになりますが、
これを 20040906.html のように見せるやり方の説明がどこかにあったはずですけど
わすれてしまいました。知っている方がいれば教えてください。
>逆に言うと、Windows環境でお金をかけずにプログラミングしようと思ったら、 こういう言語しかないのだろうか。
そう思うんだったら、Windows対応を強化して
お願い
>>829 828じゃないけどPerlの方が良い理由って?
>> 830
Apache の mod_rewrite 使う、または squeeze.rb を使う
>>813 国際的プログラミング言語だから、
"Hot Soup Processor" "prototype-based"
で検索しないと、ろくなドキュメントにヒットしないよ
あと次期メジャーバージョンでは、本物のクロージャが
使えるようになるらしい
>>821 Rubyの作者はPythonのコミュニティにもさんざん喧嘩を売ってきたし、もううんざり
まああれですよ、当時のPythonは若干アレだったしね。
今は結構いいらしいじゃない。
リソースの多さではPerlを抜きつつあるんじゃないかな。
話題になってるんでHSPのソース見てみた。
Z80とかのアセンブリ言語のソース見てるみたいだった。
goto ばっかり。
巨人:Perl
阪神:Python
ダイエー:Ruby
>834
ググッてもyahoo叫んでも何も帰ってこなかったぞ ヽ(`Д´)ノ
>>833 いや、親切に説明したページがあったはずなんです。tDiaryにも何かのプラグインを
いれるはずだったし。そのページをご存知の方はいらっしゃらないでしょうか。
ところでtDiary関連の質問ってこのスレでよいですか?
オレが聞いた話だと、HSPは構造体も浮動小数点数も使えないらしいが。
そんな言語でよくゲーム作れるな。
Cで作るよりメンドクサイじゃねーかよ。
だって C で作ったらウィンドウを出すまでが一苦労だし
(開発環境構築を含む)
HSPの話は板違い
苦情はmatz宛てにどうぞ
ここでHSPの話ばかりするのも場違いだが、
DOSのバッチファイルの拡張と思えばHSPもそんなに変だとは思わない。
でもRubyと同じ土俵で語るのはおかしいよね。
適当に棲み分けておけばいいのに、なんで衝突するかなあ。
何でHSPの話題が出てるのか分からんのだが…
そもそも使う分野が違うと思うのだが…
疑問はmatz宛てにどうぞ
>821
残念だが、matzのコメントは適切だと思う……
特に
> ちゃんと構造化したプログラムが書けるのかもしれないけど、
) 言語仕様として推奨はしていない感じ。
> チュートリアルでもいきなりフラグとgotoを解説してるし。
というのは今回の件で痛感した……
>>843 サンキューです。
そちらのスレで聞いてきます。
場違いでもなんでもいいからHSPの話をしたくてしたくてたまらないんじゃないの
matzとかいうやつの言及は至極真っ当なもんだろ。
HSP使ってる人はHSPの言語仕様の酷さなんて理解して使ってるのに、
それを理解してないHSP製ソフトユーザが必死になってるだけでしょ。
不思議なのはなぜこんなに釣れるのかということだな。
さらに不思議なのはなぜコンテストにRuby製が0だったのかということだ。
いや別に大して不思議じゃないんだけどねw
HSPって言語仕様酷いのか?
使ってて特に問題無いが…
スレ違いだからどうでもいいけど。
HSP落として、sample/demo/demo.asっての読んで見たが、これ酷すぎ。
matzは正しい。
HSPでテキスト処理出来ますか?
>HSP
RubyにくらべGUI周りは強いけどデータ処理が糞。テキスト・バイナリ処理なんてやってらんない。
情報処理に関してはある意味N88以下かもしれない。
俺の場合
N88互換:糞遅い→C/C++:ちょっと使うのにめんどくさい→HSP:機能貧弱→Perl:ソースが読みにくい→Ruby:( ゚Д゚)ウマー
>>844 SDL使えば楽。
HSPは簡単なアプリ・ゲーム用と思えばいいじゃない。
861 :
デフォルトの名無しさん:04/09/06 23:17
大工の"ヒロシ"の嘆き。
ヒロシです。
最近、憲法論議が盛んなので、憲法について詳しくなるにはどうしたらいいのか、
知り合いの司法書士に聞きにいきました。
すると
「法律について根本的に理解するために、まずは、民法、商法、刑法の本を読んでください」
と言われました。
ヒロシです。
ダルファのサックス ア ゴーゴーを吹きたいので、近所の楽器屋へサックスを習いに行きました。
すると
「ジャズを根本的に理解するために、ナベサダのジャズワークショップを買ってください」
と言われました。
ヒロシです。
ゲームを作りたいので、どんなプログラミング言語を学んだらいいのか
近所の大学の先生に聞きにいきました。
すると
「プログラミングを根本的に理解するために、"計算機プログラムの構造と解釈" を学びなさい」
と言われました。
過剰教育。今、必要としていることとズレている。
専門家用教育の第一過程じゃあるまいし。
オレは、残念ながら HSP を薦めてしまう。
862 :
デフォルトの名無しさん:04/09/06 23:19
(1)美容師の千夏ちゃんがやってきた。
「お店の混雑状況を表示したい」
(2)酒屋の正文くんがやってきた。
「Web で、注文を受けたいんですけど」
彼ら自身でプログラミングできて、ライブラリの更新もできること。
ドキュメントが手に入りやすいこと。本が沢山発売されていること。
動作可能なサーバーが沢山あること。
彼らは、自分のサーバーを立てている人じゃありません。
HTML は書けるが、プログラミングは初めて。
オレは、残念ながら PHP か Perl を薦めてしまう。
Ruby は薦められない。
なんかHSP叩いてるのが同一人物に見えてきた今日この頃
>>821 >ちょっと不利かも。 30年前ならともかく、もう21世紀なのにこの言語はないだろう。
まつもと氏は誤解しているな。
アセンブリ, COBOL, BASIC, HSP のような言語は、未来永劫求められるよ。
無くなることは、ありえない。
# マルキストだった頃のオレは「将来、宗教は無くなる」と思っていた。
# あと、「民族も無くなる」と思っていた。
# 今は、大間違いだったと反省している。
# 宗教も民族も非構造化言語も再生産されている。
865 :
デフォルトの名無しさん:04/09/06 23:27
幼いころ字が書けるようになり鉛筆かシャープで言い争った。
もちのん書く文章になんて少しも関心なし。
結論: 達観気取りのやつが一番うざい
なんかHSPスレから真性キチガイ厨房が脱走したみたいで
Rubyスレにご迷惑をおかけしてしまいました。
Pythonとの比較の時もそうだったし、Rubyの普及を考えるなら、
いい加減matzはあの手の発言を控えるべきたと思うんだがなぁ・・・。
Rubyの興味を喚起する可能性より敵増やす可能性の方が多いよ、あの態度じゃ。
スクリプトなんて所詮使い捨てなんだから
OOだの字面の良し悪しなんて本質的な要素じゃないんだよ。
rubyが流行らないのは出だしの方向性を誤ったから。
だけどmatzは趣味でやってるから流行るかどうかは関係のない話。
他言語叩きも同様に趣味だから外野はごちゃごちゃいうなと。
RubyでGUIを実現できそうな物ってSDL以外にどんなのがある?
vrubyはWin専用だし…
できればマルチプラットフォームで、ライブラリがあまりでかくない物を
wxRuby?
>>869 客先の基幹業務で稼動してたりします...。
(webrick+druby+eruby)
>>870 少し前に話題に出てたVisualWxはどうでしょう?
試してないんで容量などを知らずに書いてますが。
GUIにwebブラウザを使ってよければwebrickという手も。
Ruby/Tkはもう論外ですか?貧弱すぎですか?(´・ω・`)
今までずっとやったことがなくて...
あるテキストファイルでRubyの機能を活用して文字列の置換(一般に、編集)をしたいとき
そしてワンライナーじゃ済まないとき( -i.bak は知ってます)
同一ファイルに変更を適用するにはどうするのが定石なんでしょう。
知ってる対処法:
1. 'r' でopenして一括して文字列の配列に読み込んでclose後に編集し
'w' で同じファイルを再openして書き出す
(メモリを食う? 書き出す途中で止まったら内容が失われる?)
2. 別ファイルに書き出してリネーム
(一時ファイルの名前をどうする? 途中で止まったら変なファイルが残る?)
3. ファイルポインタがどうのrewindがどうの(難しそうなので避けたい)
4. ???
>>875 1でいいと思う。
内容が失われて困るものなど無い。
>>870 何でもできると豪語していていざやろうとすると
半端ライブラリの海で溺死する言語。それがRuby。
>>878 半端じゃないライブラリのあるM$のC++でも溺死するよ。
>>878 根拠を提示してください。
まぁ、お前にゃ無理だろーが。
>>878 何にでも、かどうかはともかく、広い範囲の用途に利用できるのは確かですよ。
ライブラリが半端ということなら、それを補完するなどして他の人を救いましょ。
自分専用のライブラリであっても、手直しすれば汎用的かもしれないし。
どうせなら文句言うより頭と手を動かす方が楽しいですよぉ。
釣れてるなーおまいら
痛いとこ突かれまくってるからね
それにしても、2ちゃんって、
アンチ××のくせに××のスレ見に来る人多いよね。
(このスレで言えば、アンチRubyのくせにRubyスレ見に来る人)
・・・・素直になれよ。
なんかHSPスレから真性キチガイ厨房が脱走したみたいで
Rubyスレにご迷惑をおかけしてしまいました。
>なんかHSPスレから真性キ○ガ×厨房が脱走したみたいで
>Rubyスレにご迷惑をおかけしてしまいました。
放送禁止用語があったことを訂正してお詫びします。
pstore,sqlite,SDBM,NDBM なんですが、pstore 以外は
ぐぐっても使い方がよくわからなかったので、pstore
で行くことにしました。
やりたいことは、地元野球チームの選手管理システムを作ることです。
1.大会前にチーム代表は選手の名簿を入力し参加申し込みをする。
2.入力の手間を省くために、データは保存しておいて、次回の大会からは前回のデータを使えるようにする。
機能は基本的にはこれだけです。
1.チーム代表は自分のチームのデータの閲覧と編集ができる。
2.管理者はすべてのチームのデータの閲覧と編集ができる。
3.管理者は1名。チーム数は最大100。
4.1チームのメンバー数は最低9。最大30。
という制約があります。
この状況で、PStore のデータは
1.チームの一覧を入れるファイル(全体でひとつだけ)
2.各チームのメンバ除法をいえるファイル(チームごとにひとつ)
と複数にわけるべきでしょうか?
同時アクセスの問題を考えるとわけたほうがいいようにも思えるし、
でも全部のデータをひとつにして問題ないなら、そのほうがプログラムが簡単なんで
どうしようかなと悩んでます。
長文スマソ。
俺の大好きなRubyスレが盛り上がってるかと思ったら・・・。
記念カキコ
891 :
デフォルトの名無しさん:04/09/08 00:24
Zsh, Scheme, Ruby は、マニア言語。
相手にしてはいけません。
Sh/Csh, Lisp, Perl の天下は続く。
>>891 アンチRubyならRubyスレに粘着してんなよ・・・・と。
さみしい香具師だな。
>>888 全てのデータを一つのPStoreファイルに収めるということは、
言い換えれば全てのデータのアクセスに対して
(PStoreによる)単一の排他処理を行えるので、
それを利点だと考えれば一つのPStoreファイルにしても良いかも。
扱うデータの数が増えてきて、PStoreファイルの読み込み時間が
気になるようなら、予めいくつかに分割した方が扱いやすい。
各々のPStoreインスタンスに対する排他処理を気にして作れば問題ないと思う。
(個々のPStore同士の同期が取れているかどうか、とか)
>>892 人間は、口だけの人間と、何も言わずに作る人間とに別れる。
HSPのほうがまだマシ
すまん、HSPは眼中にない。
コンパイル済みのOggVirbisのサポートライブラリってどっかにある?
Debianにあるのを自分でコンパイルしようとしたけどMinGWだけでは無理っぽい…○| ̄|_
foo << 'hoge'
とやるとnkfを通して対象の文字コードを標準出力に吐き出すオブジェクトfooを
作りたいんだけど、どんな感じで定義したらいい?
>>899 require "nkf"
class Foo
def <<(arg)
STDOUT.print NKF::nkf("", NKF::guess(arg).to_s)
end
end
foo = Foo::new
foo << 'hoge'
>>899 すまん、「指定した文字コードで対象を標準出力に吐き出す」、だよな?
こんなのでどう?
require "nkf"
class Foo
@@DefaultNKFOption = "-e"
def initialize(nkf_option = @@DefaultNKFOption, out_port = STDOUT)
@nkf_option, @out_port = nkf_option, out_port
end
def <<(arg)
@out_port.print NKF::nkf(@nkf_option, arg)
self
end
end
foo = Foo::new("-s")
foo << '本日は' << '晴天なり' << "\n"
>>894 レスありがとうございます。
単一ファイルであることによる排他処理は特に必要ないのと
やはり読み込み速度に不安が残るので、
複数ファイルで言ってみたいと思います。
ありがとうございました。
配列の中にない最小の数字を知りたいときはどうすればいいんでしょう?
[1,2,4] の時は3
[2,3,5] の時は1
[1,2,3] の時は4
みたいな感じで。
配列内の数字は1万以下で、要素数は不定(要素数0のときもある)
とした場合です。
v=[1,3,4,5]
i=v.min
i.upto(v.max+1){ |i|
break if v.index(i)==nil
}
p i
ぼくのレベルだと上記のようなコードになるんですけど、
もっと簡潔な書き方があるんじゃないかと思い質問します。
宿題か?
-INF
>903
配列の中にない最小の自然数というのを色々と再定義してみろ。
そのうちいい方法が見付かるハズ
>>900-901 ありがとう。
できたんだけど、恥ずかしながらわからないところがあるのでよかったら教えて。
>def initialize(nkf_option = @@DefaultNKFOption, out_port = STDOUT)
引数が2つに見えるけど1つの引数で呼び出してエラーにならない理由
>@nkf_option, @out_port = nkf_option, out_port
何をしているのか?上と関係ありそうだけどコンマの働きがよくわからない…
こんなんでうごくんだったっけか?
[1,3,4,5].sort.uniq.each_with_index{|d|,|i|
if d != i+1 ; p i; break; end
}
>>907 前者は、引数をちゃんと指定すればその値、省略すれば右辺の値がデフォルトとしてセットされるの。
上の場合だと、1つ目の引数だけ指定してるから、 2つ目は STDOUT がセットされる。
後者は、コレと大体同じこと。めんどくさいから 1行にまとめて書いちゃったの。
@nkf_option = nkf_option
@out_port = out_port
>>909 なるほど!理解できたよ。後者は多重代入か、使わないからさっぱりわからなかったよ…_| ̄|○
勉強になったよ。ありがとう。
>>908 「indexと最初に2以上値がずれる要素」っていうのは気づきませんでした。
でも、Ruby だと結局一要素ずつ見ていくしかないみたいですね。
対象となる数字の配列 nn を用意しておいて
for i in 1..10000
nn[i-1]=i
end
(nn-v).min
というのを思いつきましたが、nn 初期化の際に1要素ずつ値をいれてやらなければ
ならないのは同じなので、これも微妙に簡潔じゃないなあと思います。
Pnuts だと、
min(set(list(range(1,10000))-set(v))
と書けるみたいなので(Pnuts は詳しくないですが)、
Ruby もひょっとして簡単な書き方があるかなぁと
思って質問しました。
・・・ないみたいですね orz
>>911 Pnutsが出てくるとは思わなかった(w
正直言って、 each か何かを使う方が普通だと思うが、簡潔な記述という点で
いえば、
((1..10000).to_a - v)[0]
で解は得られるね。たぶんやってることは、そのPnutsのコードと変わらない。
>>909 まったく同じではなく、大体同じってことは、微妙に違うの?
多重代入のほうが遅いとか。
多重代入は一回Arrayを作る。
>>912 (1..10000).to_a って書き方ができるんですか。
知りませんでした。
それと、「each か何かを使う方が普通だと思う」
というのはなぜでしょう?
要素数1万個の配列を作成し、そこから配列の差を
とるので、each にくらべて効率が悪いってことぐらいは
推測できるんですが、もしそれ以外に理由があったら、
よろしかったら教えてください。
普通っていうのは個人的な意見なので、他の人は違うかも。
理由は主に非効率的だからかな。特に配列の差分は(実装がどうなってるかは
よく知らないのですが)すごく効率が悪そうなので、あまり多用したくないの
です。
自分で書くなら、
s = Set.new(v)
c = 1.upto(10000) { |n| break n unless s.include?(n) }
とかかな。うーん、結局 each を使ってないですね……。
>>916 レスありがとうございます。
勉強になります。
>s = Set.new(v)
>c = 1.upto(10000) { |n| break n unless s.include?(n) }
これなんですけど、
>c = 1.upto(10000) { |n| break n unless v.include?(n) }
s を作らずに、s のかわりに v を書いても
ちゃんと動くみたいなんですけど、Set を使う理由はなんか別にあるんですか?
s.include?(n) は O(1) だけど
v.include?(n) は O(v.size) だから。
……なのかな?
Array#include? は存在を忘れてました……orz。でも原則としては
>>918の通り。
厳密に言うと、 Set を作成するときに v を一回トラバースするので、その時
点で、 O(v.size) のコストが払われるけど、以降の include? は O(1) にな
る。一方で、毎回 v.include?(n) をすると、 S を作成するコストを払う心配
がないけど、 include? で O(v.size) ずつを払わないといけない。余程のこ
とがない限り、前者の方が計算時間は少ない。
ちなみに当初の「eachを使う」というのは、 Set のかわりに Hash を、
include? のかわりに has_key? を想定していました。作成時に each を使う
以外はほとんどコードはかわらないです(やってることもほとんど変わらない)。
TCPSocket.new('hoge', 80) としたときに、hogeがダウンしていると
そこでブロックされてしまうわけですが、この待ち時間を変更することはできますか?
できれば Timeout は使わずに。
>908 はちょい拙い。
[1,3,4,5].sort.uniq.each_with_index{|d,i|
if d != i+1; p i+1; break; end
}
でOK。
配列内の数字が1万超えてるようなものでも処理できるしこっちの方が良いと思う。
>>921 [1,2,3]でやったら4って出なかったよ。
>>922 書いた後で気づいた。
v = [1,2,3]
v.sort.uniq!
c = v.last + 1
v.each_with_index{|d,i|
next if d == (i+=1)
c = i
break
}
p c
一応答えは出るが、ちょい長いな。
こっちの方が良いかな。
v = [1,2,3]
c = 0
(v.sort.uniq << nil).each{|d| break if d != (c+=1)}
p c
[1,3,4,5].sort.uniq.push(0).each_with_index{|d,i|
if d != i+1; p i+1; break; end
}
という手もある。
すまん、924見落としてた。吊ってくる...
s1='X'
s2= "<b>#{s1}</b>"
s1='Y''
p s2
と書くと、s2='<b>X</b>'になるわけなんですが、
これを s2='<b>Y</b>' にしたいんですけど、どういう方法がありますか?
cgi なので、`CMD` が使える eval は使いたくないし、
sprintf だと置き換える項目数が増えた時面倒だし、
s2="<b>%X%</b>";s2.sub(/%X%/,s1)
はなんかベタだし・・・。
`CMD` を解釈しない eval があったら一番いいんですが・・・。
928 :
デフォルトの名無しさん:04/09/09 21:27
>>903 まず、
v=[1,2,3,5]
p (1..10000).find{|i| !v.include?(i)}
でしょう。
なにがやりたいのか理解できてないのだが、s2はテンプレートとして使いたいのか?
だとしたらテンプレートエンジンを使え。ERbとかいろいろある。
>>927 s1='X'
s2=Proc.new{"<b>#{s1}</b>"}
s2.call # => "<b>X</b>
s1='Y'
s2.call # => "<b>Y</b>"
>>930 なるほど。その方法で行ってみます。
thx!
akr 氏や、かつての ZnZ 氏もそうですが、
一体、何をやってたらあんなに不具合をいっぱい見つけられるんでしょうか?
ruby でCGIの作り方を解説しているサイトはいくつか見つけたんですけど、
ruby でユーザー認証の仕方を解説してるサイトを見つけられませんでした。
どっか解説してるサイトあったら教えてくれ〜
>>933 .htaccessとかいう話じゃなくて?
>>933 String#cryptあたりとcookieの組合せでどう?
「紅い隕石」って、文体から誰が書いたのかバレバレなんですが(w
誰だかさっぱりわからん。
内輪でわかる人だけわかるなんてことやってないで、名前くらい名乗れ。
2ch の上にまで内輪の慣れ合いを持ち込むあたり、
Ruby コミュニティの狭量さと閉鎖性が如実に反映されていますな。
open() OR popen()を使って外部コマンド(sort、nkf…etc)へリダイレクトでデータを出力するときにEOFが必要だけど
EOF出すにはどうしたらいい?
>>944 即レスthx.
すまん。コマンドの出力結果を受け取りたいんで.closeしてしまうと.getsができなくなってしまうんだが…
open3 を使えばよい。
詳しくはマニュアルを読んでね
>>946 >open3
win32ネイティブなインタプリタでは素のままじゃopen3が動かないんだ…_| ̄|○
配布目的のスクリプトなんで要パッチというのはちょっと難
たびたびスマソ
>>939 greenteaさんかな?(/.Jとは別)
>>934 .htaccess じゃなくて、cgi でやりたいんです。
ユーザー自身でパスワード変更できるようにしたいので。
>>935 ぐぐってみたんですけど、全然、解説サイト見つかりませんでした。
困った。
>>936 にあった、nora が使えそうだなぁ・・・と思いつつ、
nora も解説サイト見つからず。ってか本サイトが落ちてるみたいだし・・・orz
困った。
>>949 どの程度の物を求めているのかわからないけど適当なファイルにパスワードをハッシュしたものでも書いておくんじゃダメなのか?
>>950 ログイン画面(たとえば、login.cgi)は950がいう感じで全然OKなんだけど、
ログイン後に表示されるcgi(たとえば、usermenu.cgi)でそのユーザーが
ログイン済みかどうか判定する方法が知りたいんですよ。
String#crypt & cookie でできそうだけど、nora にはその機能が
最初からあるっぽいので、nora について調べたいんですが、
ぐぐっても出てこねぇ。。。
>>951 Nora はまだドキュメントないから、本人にきいてみたら?
>>949 PerlでCGI::Session使ってやってるんだが、
RubyのCGI::Sessionでもできるんじゃねぇの?
>>954 できました。感謝。
よくよくマニュアル見たら書いてあるのね…_| ̄|○
>>900-901 selfを書くと出力の最後に\nが付いてしまうのだが何か対策ある?
selfを書かないと
foo << '本日は' << '晴天なり' << "\n"
みたいな書き方ができなくなるし…
Rubyist Magazine
まつもとさんインタビューの中にamazonアフィリエイトがある時点で萎え
>>956 ん?うちでは付かないんだけど、どうやったら付くの?
>>958 MoonWolf さんによる Nora のチュートリアルの連載が始まってますね。
RWiki server seems to be down...
>>959 すまん。printじゃなくてputsを使ってしまっていたのが原因だった…
微妙に挙動が違うのね…
>>864 アセンブリ、COBOLのようなものは残る理由があるだろ。
俺もちょっとチュートリアル見てみたけど、すごいね。
もう21世紀なのに〜という指摘に全くもって同意。
予想される検索キーワード: JSP Tutorial
しかし、HSPと一緒にされたらCOBOLも可哀想だ・・
WIN32OLEでMSIEを操作しているんですが、ボタンになっている画像
<input type="image" name="hoge".....>
に対して
@IE.document.FormName.hoge.click
とすると"名前不明です"と表示されてインタプリタが落ちます。対処法はありませんか?
966 :
デフォルトの名無しさん:04/09/12 11:11:48
ディレクトリを検索して jpg を見つけたら ImageMagic の convert に渡して
フォーマット変換、というスクリプトを書いたのですが、
system("/usr/bin/convert", filename, filename)
と見つかったファイルの数だけ、convert を呼びだしているので非常に時間が
かかります。convert そのものもわりと時間がかかる処理なのですが、
convert プロセスの開始と終了にも大きな負荷があるように思います。このへ
ん上手く処理する方法はないでしょうか?
>966
RMagickという選択肢は如何か。
RMagick といえば、cygwin で動かせた人います?
970 :
デフォルトの名無しさん:04/09/12 17:20:53
966 です。
>>968 RMagic はチートモ知りませんでした。ありがとうございます。
これから試してみます。
>>971 HSPってPart34までいってんのか。rubyの約4倍・・・(´д`)
何気に、初心者には良い言語なのでは?
と思ってその辺に公開されていたHSPのソースコードみたら、
感動の涙がでた。正直、感動した。
あれは神が使う言語だね。
対象年齢は神だね。
>>973 HSPスレの密度って、Rubyスレの数十分の一だと思う。
スレの数∝言語の良さではない罠
>>973 スレ読んでみなよ。
厨房向け板の雑談スレと中身はおんなじだよ。
>978
やあ (´・ω・`)
中身入れておいたよ
他に注文あるかい?
もうHSPネタはお腹一杯と思いつつ、漏れもそこら辺にあるソースを見てみた。
ある意味、感動した。
大仰で冗長的な文体を嫌ったのか解らないけど、かなり気色悪いな。なんかオモチャっぽいし。
> 30年前ならともかく、もう21世紀なのにこの言語はないだろう。
この一文に、かなり納得した。
>>977 御苦労様
HSP は難しすぎて俺の脳力では書けそうもないな。
NScripterと同レベル>HSP
オレはYGSを思い出した
ローカル変数と構造体がない言語だと数十行以上のコードは書く気になれない。
つか、最近はライブラリが豊富なオブジェクト指向言語に慣れたから、Cでさえ使うのめんどくさい。
>>985 perl、rubyあたりになれるとCって使うのめんどくさくなるよね。
でも、一番作り終わって達成感があるのはCなんだけど。
>>986 それ、すごーく作るのたいへんってことでの「達成感」?
#地獄がおわった....。自分で自分をほ(略
オナニーともいう