Ruby初心者スレッド Part 12

このエントリーをはてなブックマークに追加
803デフォルトの名無しさん
またすいません。メールCGIで、

sendmail.sendto( "[email protected]" )

と書く部分なんですが、

address = [email protected]
sendmail.sendto( "address" )

と書くと、作動しません。

address = "[email protected]"
sendmail.sendto(address)

ならOKなんですが、メアドは外部ファイルからの取り込みなので、これはできません。

sendmail.sendto( "address" ) のaddressを、
文字列ではなく、変数として認識させる方法を教えてください。
804デフォルトの名無しさん:2007/06/16(土) 09:59:17
外部ファイルからの取り込みだとできないってのがわからん
まあよくわからんが、eval使えば?
805デフォルトの名無しさん:2007/06/16(土) 10:23:23
「作動しません」とか「動きません」とか禁止
806デフォルトの名無しさん:2007/06/16(土) 10:25:14
ファイルが、
[email protected]
[email protected]
[email protected]

となっていて、
address = file.getsとやると、
どうしても、address = [email protected]となってしまうからです。

evalでもダメっぽいです。
エヴァルは""を解除するみたいですが、
僕がやりたいのは、""を付け加えることです。
807デフォルトの名無しさん:2007/06/16(土) 10:32:00
spam屋だな
変数内容確認の方法も知らずに永遠にさ迷っとれ
808デフォルトの名無しさん:2007/06/16(土) 10:32:50
ものすごく大きな勘違いをしてるようだが、、プログラムはRubyが初めて?
説明すんの面倒だな・・・
とにかくいろいろ試してみ、単純な形で解決すると思うよ
809デフォルトの名無しさん:2007/06/16(土) 10:34:13
>>806
つ p address
810デフォルトの名無しさん:2007/06/16(土) 10:37:37
yahooのメアドに一日100件送りつけて来るのはこいつか
811デフォルトの名無しさん:2007/06/16(土) 10:46:22
なんだ、スパマーだったのか
812デフォルトの名無しさん:2007/06/16(土) 11:05:59
ってもしかしてクオートの中に変数入れられる変なスクリプト言語からきてる勘違いか・・・
813デフォルトの名無しさん:2007/06/16(土) 11:09:11
色々根は深い
口頭で説明するのは割に合わん
814デフォルトの名無しさん:2007/06/16(土) 11:44:25
> ってもしかしてクオートの中に変数入れられる変なスクリプト言語からきてる勘違いか・・・
$foo = 'bar'
print "#$foo"
815デフォルトの名無しさん:2007/06/16(土) 12:03:49
"#{foo}" は変だと思わんが、"$foo"は変だろ
816デフォルトの名無しさん:2007/06/16(土) 12:23:53
>>814はわかってない
817デフォルトの名無しさん:2007/06/16(土) 13:33:20
リストに関数を適応するにはrubyではどうやってやればいいのですか?
mapcarにあたるものです。
818デフォルトの名無しさん:2007/06/16(土) 13:37:47
会社でrailsの案件をやることになった。俺以外rubyはつかえない。
んで、参考書を会社で買うことになったわけだが俺はネットで勉強したからどの本がいいのかわからん。
参考書も無駄に種類がでてやがって立ち読みするのも疲れた。
初心者〜上級者(になってもらわんと困る)におすすめな参考書を2,3冊教えてください。
819デフォルトの名無しさん:2007/06/16(土) 13:44:23
>>817
リスト.map{|v| 関数(v) }

でリストの各要素に関数を適用した結果が返るかと

mapの代わりに map! を使うと
結果を返す代わりに直接、元リストの内容を変更する
820デフォルトの名無しさん:2007/06/16(土) 14:00:14
>>819
ありがとうございます。なるほど、mapがあったのですね。
lispのmapcarやpythonのmapのように関数を渡すのとはちょっと違ってますね。
821デフォルトの名無しさん:2007/06/16(土) 14:09:08
>818
とりあえず
Ruby on Rails入門―優しいRailsの育て方
が上級でもリファレンスになっていいらしい
が、中級以上向けな気がする
手取り足取りな入門本は、俺も欲しい
822デフォルトの名無しさん:2007/06/16(土) 14:20:16
>>821
thx。リファレンスになるってのは結構でかいですね。

とりあえずrails本+入門書を何セットか買おうと思ってます。
823デフォルトの名無しさん:2007/06/16(土) 14:29:29
優しい本は変なAA使ってて気持ち悪いのがいやだなあ。
ああいうのがあるからRubyが変な目で観られる。やめてほしいよ。
824デフォルトの名無しさん:2007/06/16(土) 14:35:15
最初の19ページまでだよ
つか2chに出入りしといて言うなよw
825デフォルトの名無しさん:2007/06/16(土) 14:48:12
でかけたついでに立ち読み再会してきま
826デフォルトの名無しさん:2007/06/16(土) 15:45:59
網羅的なのはAWDwR。
入門ぽいのは「はじめよう〜」
最初から上級向けがマイッハ〜
「ライドオン〜」も入門パート少なめであとあと使える印象が。


827デフォルトの名無しさん:2007/06/16(土) 18:30:38
>>823
ワロス
828デフォルトの名無しさん:2007/06/16(土) 18:36:36
win32版の irb.bat がすごく使いにくいのですが、なんとかならいなでしょうか?
左右移動や、上下での履歴が効きません。

仕方なく、cygwin入れて、cygwin版rubyを入れて irb を使っているのですが、
そうすると、メインで使っているwin32版を更新すると
(例えば、バージョンアップしたり、gem入れたりすると)
cygwin版も更新しないといけなくなります。

これは仕方がないことなのでしょうか?
829デフォルトの名無しさん:2007/06/16(土) 18:39:38
>左右移動や、上下での履歴が効きません。
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
でおもいっきりできてるが。
830デフォルトの名無しさん:2007/06/16(土) 18:52:47
>>829
マジスカッ!
ところで、どこのバイナリでしょうか?

うちのは、OneClickInstallerで入れたのですが

って、

>ruby -v
ruby 1.8.5 (2006-08-25) [i386-mswin32]

古かたので、新しいのいれてきまつ

831デフォルトの名無しさん:2007/06/16(土) 19:13:38
げ、One Click Installer って上書きインストールできないのか・・・
mswin32版で上書きでいいのかな・・・
832デフォルトの名無しさん:2007/06/16(土) 19:24:57
>>829
アプデトしましたが、駄目でした orz

irb(main):003:0> dir%%%''''%%%%%'

みたいに、変な文字が入力されます。
WindowsXP SP2 のコマンドプロンプトです。

ruby -v は、

ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-mswin32]

です。
833デフォルトの名無しさん:2007/06/16(土) 19:25:31
ほほう
>ruby -v
ruby 1.8.1 (2003-12-25) [i386-mswin32]

古ッ!
834デフォルトの名無しさん:2007/06/16(土) 21:42:09
>>824
3xページにもあるよ。あと全般的に口調もキモい。
こういうクセのある書き方はそれだけで読者が逃げること
なんで気づかないかなあ・・・・
835デフォルトの名無しさん:2007/06/16(土) 21:49:20
>834
まあ、くノ一が主人公であんな技やこんな技を
継承しないだけでもよしとしようや
836デフォルトの名無しさん:2007/06/16(土) 21:59:00
>832
思いつきだがコマンドプロンプトから
> ruby -rreadline -e0
ってしたらどうなる?
837デフォルトの名無しさん:2007/06/16(土) 22:04:45
>>836

>ruby -rreadline -e0

>

なーんも表示されません
838デフォルトの名無しさん:2007/06/17(日) 00:35:03
>837
何も出なくておk
つか、それでエラーが出るんじゃないかなと思ってたが外したかorz

もしかしてだがWindowsの環境変数(cygwin環境外)で
cygwinのディレクトリ配下にPATH通してない?
839デフォルトの名無しさん:2007/06/17(日) 06:30:48
>>834
宗教関係の本ってそんな感じのが多い。
840デフォルトの名無しさん:2007/06/17(日) 10:05:34
>>838
あ、通してます。
コマンドプロンプトでも、cygwinを使えるように、

c:\cygwin\bin

みたいに通してます。
これが原因だったりするんでしょうか?
841デフォルトの名無しさん:2007/06/17(日) 13:22:01
ご質問です
wikiを作っているのですが,cgi上ではファイル書き込みができません.
ローカルでは動くのですが.
何か特別な操作が必要なのでしょうか?
お願いします.

OS:Redhat
ruby -v:1.8.5
842デフォルトの名無しさん:2007/06/17(日) 13:24:36
>>841
ディレクトリに書き込み権限は与えていますか?
apacheがsuExecで動いていいない場合は、
オーナー以外のその他に人にも実行権限を与える必要があるかもです。
707とか
843デフォルトの名無しさん:2007/06/17(日) 13:33:46
>>842
ありがとうございます
書き込み実行直前に権限を与えて,
終わったら権限を奪うというのがよさそうですが
可能でしょうか?
844デフォルトの名無しさん:2007/06/17(日) 13:41:31
>>843
書き込み権限を与える権限があるなら苦労しないと思う・・・
845デフォルトの名無しさん:2007/06/17(日) 13:46:42
>>844
あ,そうですね・・・
権限がなかったんだ(汗
ということは前もって与えておくしかないのか・・・
846デフォルトの名無しさん:2007/06/17(日) 13:52:24
セキュリティ上どうのという場合は、書き込み用のディレクトリを作ってそこだけ、書き込み許可するのがよいです。
847デフォルトの名無しさん:2007/06/17(日) 13:53:15
>>846 は、 あ、あらかじめ、作っておいて、あらかじめ書き込み権限を与えておくという意味です。
848デフォルトの名無しさん:2007/06/17(日) 13:57:43
>>846-847
なるほど,ちょっと試しにやってみます
ありがとございました〜!
849デフォルトの名無しさん:2007/06/17(日) 15:07:53
Greenbear Laboratory - Ruby/SDLスターターキット
http://mono.kmc.gr.jp/~yhara/w/?RubySDLStarterKit

Ruby/SDLスターターキットってどういう構造になっているのでしょうか?
RubyのDLLがないような・・・・
850デフォルトの名無しさん:2007/06/17(日) 16:11:22
>>849
Exerbを使って、dllごとgame.exeに固められている

あと、きちんとsageて欲しい
851デフォルトの名無しさん:2007/06/17(日) 17:14:11
>>850
おいおい。game.exeが、60KBしかないぞ・・・・
最低でも、RubyのDLLは500Kはあったと思う。

exerb40.dllに入っているが、これはどういう技術なんだ絽

852850:2007/06/17(日) 17:37:22
ごめんよ、思いっきりウソ教えるところだった
exerbではランタイム別にできるの忘れてた
853デフォルトの名無しさん:2007/06/17(日) 22:08:03
>840
ちとOS入れ直してからcygwin入れてなくて、しかも使ってるRubyはASR版という状況で
検証ができんでスマンのだがorz
とりあえずいっぺん、cygwin関係PATHから外してirb起動して味噌
Ruby-mswin32のreadline.soがcygwinのreadline.dllを読みに行ってる悪寒
854デフォルトの名無しさん:2007/06/17(日) 22:16:45
そんな欠陥OSは捨ててLinuxをいれれば全て解決
855デフォルトの名無しさん:2007/06/17(日) 23:13:03
すみません、質問させてください。
あるインスタンスから、そのインスタンスのクラスを取り出すのはどうすれば良いんでしょうか?
インスタンスからクラスメソッドを実行したいのですが。
856デフォルトの名無しさん:2007/06/17(日) 23:24:26
object.class
857デフォルトの名無しさん:2007/06/17(日) 23:25:16
>>855
object.class.クラスメソッド
858855:2007/06/17(日) 23:46:27
>>856,857
できました〜
すばやい返事ありがとうございます!!
859デフォルトの名無しさん:2007/06/18(月) 02:43:39
質問です。
バイナリファイルに数値を書き込むにはどうすればよいでしょうか?
例えば以下のようにファイルを作っても文字として書かれてしまいます。

num = 1
file = File.open("test.bin", "wb")
file.write(num)
file.close
860デフォルトの名無しさん:2007/06/18(月) 02:54:07
num.to_s
861デフォルトの名無しさん:2007/06/18(月) 07:39:49
file.write([num].pack("i"))
862デフォルトの名無しさん:2007/06/18(月) 15:09:04
この前のyahooスパマーではないのですが、net/pop net/smtpについての質問です。
Gmailアカウントを使用し、ローカルから送信するために、
Net::POP3.auth_only()を呼んでから、Net::SMTP.start(){sendmail()}を
実行しているのですがうまくいきません。
エラーメッセージは"execution expired (Timeout::Error)"です。
他になにか処理を追加しなければならないのでしょうか?
863デフォルトの名無しさん:2007/06/18(月) 15:40:53
Gmailって外からメールの送信できたっけ?
864デフォルトの名無しさん:2007/06/18(月) 16:07:54
gmailってMUAで読みたいだけなのにその時点で既に設定めんどくさいんだよな

普通の対応メーラーで読み書きできるのならそのプロトコルとポートをエミュレートすればいいんじゃね
SSLとか要るんだっけ?
865デフォルトの名無しさん:2007/06/18(月) 16:44:02
普通のPOPが使えるはず。
確か、Gmail側でウェブから設定するのが必要だよ。
866デフォルトの名無しさん:2007/06/18(月) 22:47:35
require 'open-uri'
open("http://www.ruby-lang.org/ja/", :proxy => nil) {|f|
f.each_line {|line| p line}
}

上のプログラムを実行すると下のようなエラーが出ます。
ネットで調べたらProxyが怪しいのですが、Proxyのない環境で実行しています。
他に原因が分からないのでどなたか教えてください。

C:/ruby/lib/ruby/1.8/net/http.rb:560:in `initialize': Bad file descriptor - connect(2) (Errno::EBADF)
from C:/ruby/lib/ruby/1.8/net/http.rb:560:in `open'
from C:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
from C:/ruby/lib/ruby/1.8/timeout.rb:48:in `timeout'
from C:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
from C:/ruby/lib/ruby/1.8/net/http.rb:560:in `connect'
from C:/ruby/lib/ruby/1.8/net/http.rb:553:in `do_start'
from C:/ruby/lib/ruby/1.8/net/http.rb:542:in `start'
from C:/ruby/lib/ruby/1.8/open-uri.rb:242:in `open_http'
from C:/ruby/lib/ruby/1.8/open-uri.rb:626:in `buffer_open'
from C:/ruby/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from C:/ruby/lib/ruby/1.8/open-uri.rb:162:in `catch'
from C:/ruby/lib/ruby/1.8/open-uri.rb:162:in `open_loop'
from C:/ruby/lib/ruby/1.8/open-uri.rb:132:in `open_uri'
from C:/ruby/lib/ruby/1.8/open-uri.rb:528:in `open'
from C:/ruby/lib/ruby/1.8/open-uri.rb:30:in `open'
from D:/My Documents/NetBeansProjects/test/lib/main.rb:2
867デフォルトの名無しさん:2007/06/18(月) 22:59:14
ホントにproxy無い?
telnet www.ruby-lang.org 80
って打って接続できる?
868デフォルトの名無しさん:2007/06/19(火) 00:24:26
接続中と出た後止まります。
ということはproxyがあるということでしょうか?
FireFoxのプロキシ設定では「インターネットに直接接続する」を選んでいます。
また、http_proxy, no_proxy環境変数は設定していません。
参考になるかどうか分かりませんが、診断くんで調べてみた結果を書いておきます。

ntoska6桁の数字.oska.nt.ftth.ppp.infoweb.ne.jp
判定:(未判定)
漏れ判定:(未判定)
総合評価:?(A 以上 or 生 IP。下記参照)

疑惑 〜20%:proxy の可能性もわずかにあります。
869デフォルトの名無しさん:2007/06/19(火) 00:30:37
ローカルでファイヤーウオールが邪魔してたりしない?
870デフォルトの名無しさん:2007/06/19(火) 09:35:13
ウイルスセキュリティのファイアウォールを無効にしたら無事つながりました。
ありがとうございました。
できればファイアウォールを有効にしたまま使いたいので、プログラムからの接続を許可したいのですが、ruby.exeを許可にしてもだめでした。どのプログラムからの接続を許可にすればいいのでしょうか?
ファイアウォールの履歴を見ると以下のようになっています。
ユーザー:SYSTEM 方向:送信 アクセス:拒否 説明:ルール不明 プロトコル:TCP(6) 送信元ポート:1047 リモートポート:80
8711/2:2007/06/19(火) 13:46:06
rdicという辞書引きプログラムを、某所にあった方法で サーバー化したのですが、
クライアントプログラムで失敗しています。

telnetでは、rdicが動作しています。
下のプログラムでも、単語をtelnetに渡して、rdicが動いているようなのですが、

rdic-client:10:in `gets': Interrupt ← n=s.gets.to_iの行
from ./rdic-client:10

rdicの仕様で、xtermの一文字目がクルクル回転するのですが、
それが邪魔をしているのかもしれません。

どのようにしたら、telnetから結果をとりだせるでしょうか。
アドバイス、よろしくおねがいします。
8722/2:2007/06/19(火) 13:57:17
>>871つづき
(このプログラムはGPLと明言されていなかったので、
著作権についてなにか支障があったら削除します)

(telnetでポートをオープンして、ファイルハンドラsとする、ARGV[0]が検索する単語)

s.puts(ARGV[0])
n=s.gets.to_i
for i in 0...n
s.gets
$_.chomp!
puts $_
end
STDOUT.flush
s.close
873デフォルトの名無しさん:2007/06/19(火) 15:07:12
pukiwikiの#contentsみたいに
.htm解析して<h1>〜<h6>の見出しのリンク作成するフィルタってないですか?
874デフォルトの名無しさん:2007/06/19(火) 15:19:45
>>853
「これが原因なんでしょうか?」っていう前に試せ馬鹿!っていう気がします。ごめんなさい。

試してきます。

cygwinのパスの前に、rubyのパスとおしてるけど、cygwinのパスの方を読みに行っちゃうものなんですかねえ・・・
875デフォルトの名無しさん:2007/06/19(火) 15:28:16
>>853
結局、ダメぽでした orz
cygwinのほかに、perlとか、pythonとかのPATHもはずしてみたのですが、
だめぽ・・・

うちと職場二つの環境で発生するので何か法則があるはずなのですが・・・
876デフォルトの名無しさん:2007/06/19(火) 15:28:25
パスを通すって環境変数PATHのこと?
$LOAD_PATH のほうかな
877デフォルトの名無しさん:2007/06/19(火) 17:34:42
セッション管理してるサイトから情報を得ようとしてるのですが、
w3mでヘッダ情報を見たときに
Set-Cookie: FOO=a,iueo; domain=example.com; path=/
Set-Cookie: BAR={kakikukeko}; domain=example.com; path=/
Set-Cookie: BAZ=sasisuseso; domain=example.com; path=/
と複数送られているときに
net/httpのレスポンスをres['set-cookie']とすると
["FOO=a,iueo", "domain=example.com", "path=/, BAR={kakikukeko}",
"domain=example.com", "path=/, BAZ=sasisuseso",
"domain=example.com", "path=/"]
と、適切に分離されてないようです。','でsplitするのは、FOOの中にも
','が含まれるので使えません。
どのようにするのがいいでしょうか。
878デフォルトの名無しさん:2007/06/19(火) 18:10:51
>>873
#contents専用のライブラリはたぶんない
HTMLを解析するライブラリを使ってスクリプト書いた方が早いよ
Hpricotかhtmlsplitあたりが便利
879877:2007/06/19(火) 19:29:11
get_fields('Set-Cookie')使えばよかったんですね。すつれいしました。
880デフォルトの名無しさん:2007/06/19(火) 21:50:58
犯罪者御用達言語
881デフォルトの名無しさん:2007/06/20(水) 11:01:51
>>820
亀だが、&付けて手続きオブジェクト(正確にはto_procを実装したオブジェクト)を渡すことによって
Pythonと同じようなこともできる

a = [5, 10, 15, 20, 25, 30]
p a.map(&lambda {|x| x + 1 }) => [6, 11, 16, 21, 26, 31]

Pythonのmap関数のように関数func(x)を渡して各要素をxとして処理することは標準ではできないが
ActiveSupportを入れれば Symbol#to_proc を使って

require 'active_support'

a = [5, 10, 15, 20, 25, 30]
p a.map(&:succ) => [6, 11, 16, 21, 26, 31]

とできる
882デフォルトの名無しさん:2007/06/20(水) 11:27:49
>>881
> p a.map(&:succ) => [6, 11, 16, 21, 26, 31]

1.9だと標準。
883デフォルトの名無しさん:2007/06/20(水) 13:59:32
なんだかんだいって、Rubyでもいろんなやりかたが増えつつあるな。 といってもPerlのそれほどではないが。
884デフォルトの名無しさん:2007/06/20(水) 17:44:27
弾ちゃんがクックブックにご不満の模様
ttp://blog.livedoor.jp/dankogai/archives/50856105.html
885デフォルトの名無しさん:2007/06/21(木) 00:59:50
アクセッサを作りたいのですが、

class Sample
attr_accessor :val

def initialize(str)
@val = str
end
end


s = Sample.new(2)
s.val(1)
puts "val is #{s.val}"


`val': wrong number of arguments (1 for 0) (ArgumentError)

writeができないようです。
attr_accessorの使いかたは間違ってないと思うんですが
何がいけないんでしょ?
886デフォルトの名無しさん:2007/06/21(木) 01:02:16
attr_accessorが定義するのは
Sample#valとSample#val=です。
887デフォルトの名無しさん:2007/06/21(木) 01:05:39
>886
俺の理解がいかんかったってことですね。
val=が解らないので炒ってきます。
888デフォルトの名無しさん:2007/06/21(木) 01:24:12
s.val = 1
889デフォルトの名無しさん:2007/06/21(木) 01:57:21
>>885
Perlだと、そんな感じのアクセサを定義することがあるな。
引数なしだと値を返して与えると変更みたいな。

けどRubyのアクセサは普通
def val()
def val=(v)
の2つ。当然 attr_accessor もコレに準じてる。

その例だと write が失敗してるのではなく
s.val(1) が失敗してる。

引数なしの val に引数与えてるから
「引数の数がおかしい」というエラー。
890デフォルトの名無しさん:2007/06/21(木) 02:07:58
>888,889
やっと解りました。
Java歴の影響か、val=はインスタンス変数を
直接変更するようなちょっと違和感がありまして
使ったことなかった
891デフォルトの名無しさん:2007/06/21(木) 04:15:23
>>890
Rubyではインスタンス変数を直接変更することは出来ない。
必ずメソッドを経由してアクセスしなければならない。
attr_accessor はそのメソッドを楽に書く方法ってだけ。
892デフォルトの名無しさん:2007/06/22(金) 01:33:55
俺もruby初心者だけど役に立ったぜ!
893デフォルトの名無しさん:2007/06/22(金) 02:26:13
>891
val=をメソッドと言われてもちょっと見た目が
894デフォルトの名無しさん:2007/06/22(金) 03:28:40
まあねえ。普段はメソッドのようには使わないしねえ。
凝った利用する段になっていきなり「こいつは実はメソッドなんでこう書いてください」とか言われてもって感じはする。


-------------
Ruby では arr[1] = 'B' とかいう代入表記自体が既にシンタックスシュガーで、実際は

irb> arr = ['a', 'b', 'c']
=> ["a", "b", "c"]
irb> arr.[]=(1,'B')
=> "B"
irb> arr
=> ["a", "B", "c"]

こういうことをしてるわけで、arr.[]=(1,'B') と書けば、obj.method(param) の形に見えんでもない。
これは hoge.hoo=10 なんかのときも同様。
実際は hoge.hoo=( 10 ) で、hoge で示されるオブジェクトの hoo= メソッドに引数 10 を渡してる。

初心者スレなのでツッコミ希望
895デフォルトの名無しさん:2007/06/22(金) 08:04:31
>>894
GJ
896デフォルトの名無しさん:2007/06/22(金) 10:10:08
カッコを省略できる、っていうのがRuby文法の肝なんだね。
897デフォルトの名無しさん:2007/06/22(金) 10:45:27
ときとして、ピリオドも省略できる…のもね。

a=3; p a.*(4)

アクセッサのセマンティックスの話も含めて、こういうRubyの変態性は
初学者にはどういうタイミングで学んでもらえばいいのだろう。
898デフォルトの名無しさん:2007/06/22(金) 10:51:20
やっぱ、クラス書き出すときじゃね
899デフォルトの名無しさん:2007/06/22(金) 10:55:27
「標準」よりもカッコやドットを省略してトクした経験はないんだが
900デフォルトの名無しさん:2007/06/22(金) 11:02:12
括弧の省略し過ぎには注意が要るけどな。
Perl ではよく↓みたいな書き方をするが

print sprintf "%f\n", rand;

このPerlコードをそのまま ruby 1.8.5 に読ませると
test01:1: warning: parenthesize argument(s) for future version
てな感じで警告される。
この場合、最初の print と、引数の無い rand くらいは省略できるが
sprintf の括弧は省略すべきじゃない。
901デフォルトの名無しさん:2007/06/22(金) 11:48:03
>>894
> 実際は hoge.hoo=( 10 ) で、hoge で示されるオブジェクトの hoo= メソッドに引数 10 を渡してる。

それは10が括弧に入ってるだけで、文法的には hoge.hoo = (10) とまったく等価なんで、
例としては不適切だろう。

hoge = class Hoge; def hoo=(x) self end; new end
p hoge.hoo=( 10 )
p hoge.send(:hoo=, 10)
902デフォルトの名無しさん:2007/06/22(金) 21:32:23
privateであるinitialize()をサブクラスのsuperで呼べるのは何故なんだぜ?
903デフォルトの名無しさん:2007/06/23(土) 01:03:13
Rubyのprivateは、同じインスタンスからしか呼べないという意味だから。
904デフォルトの名無しさん:2007/06/23(土) 01:16:24
privateはもう名前変えたほうがいいよな
905デフォルトの名無しさん:2007/06/23(土) 01:25:38
>>897
何言ってるんだお前。
別に、a * 4 はピリオドを省略してるわけじゃねーよ。

ピリオドを省略してる記法だとするなら、
a + b * 10
が説明できないだろうが?
906デフォルトの名無しさん:2007/06/23(土) 01:55:08
a + b * 10 → a.+(b.*(10))
b * 10 + a → b.*(10).+(a)
907デフォルトの名無しさん:2007/06/23(土) 08:02:35
>>906
右結合と左結合を混合しちゃった時点でダメと気付けよ…
908デフォルトの名無しさん:2007/06/23(土) 08:08:02
C++も a.operator*(4) と書けるけど、これを
「C++はときとして、ピリオドとoperatorと括弧も省略できる…のもね。」
とか言ったらアホだよね。
909デフォルトの名無しさん:2007/06/23(土) 09:26:12
C++ならどんな変態記法も思いのまま。
910デフォルトの名無しさん:2007/06/23(土) 09:27:30
>>905 kwsk

それでは、a * 4 はどうなってるの?
911デフォルトの名無しさん:2007/06/23(土) 09:52:25
if文もピリオドが省略されてるとか言いだすんだろうか
912デフォルトの名無しさん:2007/06/23(土) 10:00:39
>>910
a * 4はピリオドを省略した書き方なわけじゃないってことになってるの。
913デフォルトの名無しさん:2007/06/23(土) 10:08:56
Windows上で簡単にRubyからシリアルポートを使いたいのですが
何か良い方法があったら教えてください
914デフォルトの名無しさん:2007/06/23(土) 10:33:24
>>912
ほとんどの演算子は特別な形式のメソッド呼び出しです
915デフォルトの名無しさん:2007/06/23(土) 11:01:26
>>913
open("com$", "rb+")
916デフォルトの名無しさん:2007/06/23(土) 11:05:28
>>914
それはそうだよ?

でも、a * 4はピリオドを省略してるわけじゃない。分かる?
917デフォルトの名無しさん:2007/06/23(土) 11:09:17
918デフォルトの名無しさん:2007/06/23(土) 11:35:53
ピリオドの省略どうこうは、あんまり拘るところでもないと思うんだ
メソッド呼び出しのシンタックスシュガーだってことが分かってれば十分だろ
919デフォルトの名無しさん:2007/06/23(土) 13:13:19
>>916
たしかに。

def (obj = Object.new).+; end

しても obj +() とは呼べないもんね。obj.+() じゃないと。
つまり、2 + 3 と 2.+(3) は別物。
920デフォルトの名無しさん:2007/06/23(土) 20:25:09
a * b + c

a .* b .+ c
で実行結果違うしな
921デフォルトの名無しさん:2007/06/24(日) 05:50:11
関数の実行に優先順位があるんです!と言いたそうな勢い
922デフォルトの名無しさん:2007/06/24(日) 11:24:31
rubyで、あるクラスからメソッドを取り除くようなことはできますか。
class Foo
 def f(); end;
end
とあったときに、f()を無効化するようなことがしたいです。
923デフォルトの名無しさん:2007/06/24(日) 11:39:18
>>922
class Foo
undef f
end
924デフォルトの名無しさん:2007/06/24(日) 15:58:19
TCPserverとTCPSocketを使って
サーバー&クライアントのプログラムserver.rb, client.rbを作りました。
サーバーのserver.rbをバックグラウンドで常駐させていないと、
client.rbで、当然Connection refused になります。

しかし、なんとかサーバープログラムを常駐させなくてもよい、
rubyプログラミングの方法はないでしょうか。

xinetdで、たとえばport番号55555にserver.rbを設定したのですが、
それでは、client.rbからserver.rbを使えませんでした。

よろしくお願いいたします。
925デフォルトの名無しさん:2007/06/24(日) 16:07:40
>>923
ありがとうございます。undefなんてあるのですね。知りませんでした。
リファレンスマニュアルを読むと
http://www.ruby-lang.org/ja/man/?cmd=view;name=%A5%AF%A5%E9%A5%B9%A1%BF%A5%E1%A5%BD%A5%C3%A5%C9%A4%CE%C4%EA%B5%C1#undef

> undef のより正確な動作は、メソッド名とメソッド定義との 関係を取り除き、
> そのメソッド名を特殊な定義と関連づけます。この状態の メソッドの呼び出しは
> 例えスーパークラスに同名のメソッドがあっても例外 NameError を発生させます。
> (一方、メソッド Module#remove_method は、関係を取 り除くだけです。
> この違いは重要です)。

と書いてあるのですが、この重要な違いとやらがさっぱり分かりません。
どなたかわかりやすく解説していただけませんか。
926デフォルトの名無しさん:2007/06/24(日) 16:19:24
>>924
xinetdのログでも嫁。
927924:2007/06/24(日) 17:00:36
>>926
xinetdのログは↓です。
07/6/24@16:48:50: START: rubyserver pid=4529 from=127.0.0.1

 inetdから起動されたプログラムは標準入出力がソケットにつながっていて、
標準入出力を相手にしてやりとりするだけでネットワーク通信が行えます。
Rubyで言うなら、STDINから入力して、STDOUTに出力すればよいのです。

ということなので、server.rbでTCPserverをつかわずにただのプログラムにし、
client.rbで、server.rbのポートをたたき、
STDOUTでserver.rbの出力を受け取ればいいのでしょうか?
928デフォルトの名無しさん:2007/06/24(日) 19:04:31
>>925
undef_method のリファレンスに remove_method との違いが書いてあるよ
http://www.ruby-lang.org/ja/man/?cmd=view;name=Module#undef_method
929デフォルトの名無しさん:2007/06/24(日) 19:13:02
clientは変える必要ない。
clientとserverの間にTCPserverがはさまって、
ソケットの入出力をserver.rbのSTDIN, STDOUTに変換してるだけだから。
930924:2007/06/24(日) 20:01:37
>>929
おっしゃる通りで、
はじめは、そのようにTCPserverをつかったサーバープログラムを組んでいたのですが、
サーバープログラムを常に立ちあげておくのも勿体無いので、
スーパーデーモンのxinetdを利用することにしました。
xinetd経由でたたくプログラムをprog.rb内で、
a=[]
a<<ごにょごにょ
print(a.size)
a.each do |l|
print(l)
end
client.rbで、
s = TCPSocket.open('localhost','rubyserver')
n=s.gets.to_i
for i in 0...n
s.gets
$_.chomp!
puts $_
end
これだと、配列aの一番最後の1要素しか出力せず、そこにひっかかっています。
どこかお気づきになるところはないでしょうか。
931デフォルトの名無しさん:2007/06/24(日) 20:06:53
> print(a.size)
> n=s.gets.to_i

サーバとクライアントでプロトコル認識にずれがあるようだが
932924:2007/06/24(日) 20:55:48
>>931
xinetdをつかうとソケットと標準入出力をつないでくれるとあったので、
そうしたのですが、まちがっていますか?
一応、client.rb 内で p n をすると nの値は正しく渡せています。

自分が質問の意図を理解していない可能性が高いので、その点もご指摘ください。
933デフォルトの名無しさん:2007/06/24(日) 21:50:31
http://www.allinoneserver.net/index.html
ここのサーバーを借りて、
http://rubycgi.org/cgi_explanation/index.htm
ここにしたがって、CGIをやろうと思ったのだけど、
2章1節 print文を使おうの時点で躓きました。
Hello Worldが表示されません。

public_html/配下に設定したのですが、だめでした。
で、だめだったので、フォルダを作って、そこでパーミッションを775にして、
もう一度実行してみましたが、だめでした。

何がだめなのでしょうか・・・。
934MoonWolf ◆MoonWdLnkQ :2007/06/24(日) 21:59:05
>>924
printだと改行コードが送られないので次の行と結合してしまう。
client.rbでgetsしているのだからprog.rbからはputsする必要がある
ということなんでない?
935924:2007/06/24(日) 22:06:31
>>934
ご丁寧にありがとうございます。

prog.rbのprintをputsに変えたところ、
client.rbで配列aのすべての要素を標準出力にだせました。

改行コードのことを知らなかったので、勉強になりました。
936MoonWolf ◆MoonWdLnkQ :2007/06/24(日) 22:22:39
rubyがどこにインストールされているかは調べた?
/usr/bin/rubyだったり/usr/local/bin/rubyだったりで違ってるのかもよ。
パーミッションは755にするって書いてあるから合わせておいたほうがいいね。
cgi-binフォルダがあるならそこに配置しないと駄目ということもありえるね。

急がば回れで、一旦rubyから離れてPerlでHello Worldが動くか確かめてから
Rubyで動かすように書き換えたほうが確実じゃないかな?
937933:2007/06/24(日) 22:32:52
>>936
ありがとうございます。
サポートしないとあるので、問い合わせはしていないのですが、
RubyはFAQにてインストール済みとあるので、
/usr/bin/rubyと/usr/local/bin/rubyは試しました。
パーミッションも、775と755を試しました。

ファイル名をtest211.cgiにしたり、test211.rbにしたりしましたが、
前者は真っ白な画面で、ソースを表示すると、<BODY><PRE></PRE></BODY></HTML>な状態で、
後者は#!/usr/local/bin/ruby print "Content-type: text/html\n\n" print "Hello World" と1行で。

Perlとかわからないのですが、Perlを先に試してみるべきでしょうか。
938933:2007/06/24(日) 22:40:32
>>936
すみません!出来ました!

>/usr/bin/rubyと/usr/local/bin/rubyは試しました。
といっていましたが、前者は/usr/local/rubyでやっていました。
/usr/bin/rubyで試してみたら、出来るようになりました。

本当に初歩的なミスで、しかも間違った報告をしてすみませんでした。
本当にありがとうございます。
939925:2007/06/24(日) 22:45:26
>>928
そっちにありましたか。ありがとうございます。
ちなみに undef は構文で、undef_method はメソッドという理解であってますか。
940429:2007/06/25(月) 06:27:24
>>430
思いついて、$stdout = File.open("xxxx.txt", "w")のwをa+にしたら解決しました(´・ω・`)
941デフォルトの名無しさん:2007/06/25(月) 10:15:01
毎回閉じていたのかw
942デフォルトの名無しさん:2007/06/25(月) 11:46:02
改行が複数含まれた文字列に対して、
「3行目から10行目まで取得」、「最終行から50行文取得」
というような関数を作ろうとしています。

まず、str.each_lineのブロックの中でインクリで行数を取得してから
その後再びブロックで回し、if 指定した行数ならreturn文字列に結合
というような流れで作るつもりなのです。
もっとスマート方法をどなかたお願いします。
943MoonWolf ◆MoonWdLnkQ :2007/06/25(月) 11:59:14
split(/\r?\n/,-1)でArrayにしてからアクセスしたほうがいいんじゃない?
944デフォルトの名無しさん:2007/06/25(月) 19:17:17
String#to_aの方がいいんじゃね?
945デフォルトの名無しさん:2007/06/25(月) 19:25:25
head,tailをpopen。
946デフォルトの名無しさん:2007/06/25(月) 20:16:20
readlines もおわすれなく
947デフォルトの名無しさん:2007/06/25(月) 20:25:36
データ全部読んでからおもむろに分割、という手順を取るものばっかなので
巨大ファイルを連続起動の場合はコストに注意
948デフォルトの名無しさん:2007/06/25(月) 21:47:53
each_lineでカウントしつつ、ファイルポインタの位置をメモっておいて
シーク&必要サイズを読むとか。

富豪的にやるほうが普通な気がする
949デフォルトの名無しさん:2007/06/25(月) 21:54:13
そんなとこにRuby使っておいてそこに文句言うなアホ、で片付けられる例の分野だな
950デフォルトの名無しさん:2007/06/25(月) 21:55:20
そしてユーザーはハイパフォーマンスなPHPへ以降と
951デフォルトの名無しさん:2007/06/25(月) 22:14:17
Rubyで5〜20までの間だったら、みたいな条件文はどのように書くとエレガントでしょうか?

Cとかであれば
x >=5 && x <= 20
だと思うんですが、Rubyぽくない気がします

(5..20).include? x
だとなんか重そうです

皆さんはどうやってますか?
952デフォルトの名無しさん:2007/06/25(月) 22:38:14
俺は (5..20).include? x を使うなぁ。
ついでながら、比較で書くなら 5 <= x && x <= 20 と書く。
953デフォルトの名無しさん:2007/06/25(月) 22:51:43
>>951
「なんか重そう」で簡潔な書き方を控えるのは良くないよ
たいてい気にするほどの差はつかない

俺の場合は
case x
when 5..20
end
で基本的に統一してる
includeは語の順番が好きじゃないし、条件が増えると厄介
954デフォルトの名無しさん:2007/06/25(月) 22:52:05
あとは between? とか。
955デフォルトの名無しさん:2007/06/25(月) 22:53:21
if x in 5..20
って書けるようにして
956デフォルトの名無しさん:2007/06/25(月) 23:03:26
>>955
Object#in?を定義すれば解決するぜ
標準で欲しいとは思うが
957デフォルトの名無しさん:2007/06/25(月) 23:17:21
Range の include? はまさに境界値との不等号の計算しかしていない。
つまり (5..20).include? x は x >= 5 && x <= 20 と同じ意味。

下手に Ruby レベルの処理に戻ってこないぶん、 include? の方が速かったりするかもしれないよ(検証してないけど)
958デフォルトの名無しさん:2007/06/26(火) 02:51:03
str = File.read_lines(5..20)
ができればいいのにね
959デフォルトの名無しさん:2007/06/26(火) 13:16:12
デフォルトのrequireのパスってどこに記述してあるんですか?
追加したいんです。
960デフォルトの名無しさん:2007/06/26(火) 13:29:56
>>959
$LOAD_PATHのことかな?
961デフォルトの名無しさん:2007/06/26(火) 13:45:03
>>960
多分そのことだと思います。
962デフォルトの名無しさん:2007/06/26(火) 14:33:18
デフォルトの$LOAD_PATHを追加するなら環境変数RUBYLIB を設定する
963デフォルトの名無しさん:2007/06/26(火) 17:47:41
>>962
レスが遅れましたが、うまくいきました。ありがとうございました。
964951:2007/06/26(火) 18:05:38
色々なご回答ありがとうございました

Object#in?が一番Rubyっぽいですね
Range#include?だと本来操作するべきオブジェクトが逆?というかCっぽいというか。。

速度的にも問題ないようですし、些事で標準から外れるのもアレなのでRange#include?でいきたいと思います
965デフォルトの名無しさん:2007/06/27(水) 00:16:00
Base64エンコード/デコードを試してみているのですが、

ttp://ddo-jp.ddo.jp/download.php?no=6420
(DL pass "rb")

これだとテストに使ったJPEGは復号されずに壊れたものが出来上がります。
変換はpack/unpackに突っ込むだけなのでIO周りでわかっていないことが
あるのかと思っていますが…。

どこがまずいでしょうか。指摘していただけると幸いです。
966デフォルトの名無しさん:2007/06/27(水) 01:05:09
見ないで言うがbinmode
967デフォルトの名無しさん:2007/06/27(水) 01:16:58
>>966
$stdin、$stdoutはbinmodeしました…って言おうとして、
ARGFに触ってないことに気づきました orz

で、ARGF.binmodeする一行を付け加えたら
よくわからんエラーが出ました…

base64.rb:33:in `syswrite': Not enough space (Errno::ENOMEM)
from base64.rb:33
968デフォルトの名無しさん:2007/06/27(水) 01:38:35
>>965
素直にARGVの内容を見て、open(path, 'rb')するべき
ARGFの動作はよく分からんが、バイナリだと途中で内容が切れてしまうので
バイナリファイルを読むのに使うべきではない

あと、質問の内容とは関係ないけど
・syswriteを使うのはなぜ?
・mode_tblは不要なのではないか(proc_tblだけで十分では)
・ハッシュのキーがSymbolなのはなぜ?
という点が気にかかる
969デフォルトの名無しさん:2007/06/27(水) 01:50:00
>>968
syswriteは試行錯誤の名残です。
つまりIO#printに責任転嫁してみたりしてたんです。

HashのキーがSymbolなのって珍しいんですか?
わりとそんな例を見かけるもんで…
あとせこい高速化を期待して

modes_tblはif文を簡単に書きたかったっていう不精です
あとは、caseでencode, decode, none全部捕まえるよりも
Hashのリテラルのほうがパッと見でどういうモードがあるか
判りやすいかな、とかいう目算と、これまたせこい高速化を期待してです。
970デフォルトの名無しさん:2007/06/27(水) 09:44:58
>>968
ARGVをeachで回して、ひとつずつ開けても

base64.rb:33:in `write': Not enough space (Errno::ENOMEM)
from base64.rb:33
from base64.rb:32
from base64.rb:31

と、$stdoutにprintするところで叱られました。出力を止めて変換だけを
するとふつうに動くので、出力が原因っぽいのですが…

RubyのErrnoはCのerrno.hのラップだと思っていたのですが、出力で
メモリが足りなくなる状況がよくわからず、解決策が浮かばないです。

どなたか知恵を貸してください… orz
971デフォルトの名無しさん:2007/06/27(水) 10:25:38
>>970
自己解決しました。StringIOに突っ込んで
少ないバイトずつ取ってきてはprintしたら上手くいきました。
レスしてくれた方、ありがとうございます。
972デフォルトの名無しさん:2007/06/27(水) 19:34:47
euc-jpな標準出力をだすプログラムを変更して、
jisx0213な文字を数値実体参照にして、utf-8で出力したいのですが、
ヒントになるようなモジュールを教えてください。
iconvだけでは足りませんよね?

はじめ、perlで作ろうかと考え、perl質問スレで尋ねたのですが、
元々のプログラムがrubyだったので、不案内ながら、
そのrubyプログラム自体を改造しようと思いました。
マルチレスになるのでしたら、控えます。

よろしくお願いします。
973MoonWolf ◆MoonWdLnkQ :2007/06/27(水) 21:42:41
JIS X 0213な文字というのは2面のこと?
str.gsub(/\x8f[\xa1-\xfe][\xa1-\xfe]/n) {|x| ... } とかで最初に置換しちゃうとか。

UTF-8で出力するのに数値実体参照にする意味あるんですか?
XML全般だとしたら要素名は数値実体参照に置換できないとか制限あった気が。
974デフォルトの名無しさん:2007/06/27(水) 23:26:11
>>969
細かい突っ込みになるけど

>キーがSymbol
そのスクリプトの場合だと、わざわざinternするの面倒くさくないか?

>modes_tbl
proc_tbl.keysで代用した方がいいと思う

>>970
俺の方でも試してみたけど、2MB超のJpeg食わせてもENOMEMは出なかった
PCのメモリの差だろうか?
975デフォルトの名無しさん:2007/06/27(水) 23:58:23
>わざわざintern
まぁ二箇所ですし…。Stringより軽い…とか言いながら
実際は染み付いた性癖に近いような。

>>modes_tbl
>proc_tbl.keysで代用した方がいいと思う
思いつかなかった…
そうですね、確かにその通りです orz

RAMは512MBっす。
45KBのBMPでも落ちました。ショボ。
976デフォルトの名無しさん:2007/06/28(木) 00:12:34
メモリ破損じゃねーの?
リアルに。
977972:2007/06/28(木) 01:10:25
具体的には、æ & a e l i g ; のような発音記号です。
utf-8での数値実体参照は & # 2 3 0 ; や & # x E 6 ; になります。
euc-jp では \xa9\xdc です。

数値実体参照以外に、utf-8でæを表示する術を知らないので、
やむを得ずというところです。
エディタはutf-8なemacsなのですが、
発音記号をだそうとするとjisx0213のフォントをもってきてしまうのです。
じぶんでもよくわからないので、説明になっていなくてすみません。

教えていただいた
>str.gsub(/\x8f[\xa1-\xfe][\xa1-\xfe]/n) {|x| ... }
を参考に、がんばってみます。
\x8f が、JIS X 0212ということなのですね。
978MoonWolf ◆MoonWdLnkQ :2007/06/28(木) 02:34:12
>>977
ae1 = Iconv.conv('UTF-8','EUC-JISX0213',"\xa9\xdc")
ae2 = [0xe6].pack('U')
ae3 = '&#xe6;'
ae4 = '&aelig;'

このUTF-8なæをIE7,Firefoxで表示させてみたら、全部同じように表示されました。
Firefoxからxyzzyにコピペするとæと表示されます。
IE7からだと"a"=="\x61"に化けてしまいますが^^;

iconvで指定するencodingは'EUC-JP'ではなく'EUC-JISX0213'にしないと
Iconv::IllegalSequenceが発生しました。

> \x8f が、JIS X 0212ということなのですね。
単にJIS X 0213の2面という印ですので、1面に追加された文字については個別で
判定しないと駄目ですね。
http://x0213.org/codetable/ にある対応表が参考になるのかな?
[2000]とか[2004]と書いてある文字は注意が必要みたいですね。
979デフォルトの名無しさん:2007/06/28(木) 04:14:56
utf8にするんだったら
わざわざ数値ナンタラにする必要あんの?
とはいえ、どっかでそんなライブラリ?を見たな
980デフォルトの名無しさん:2007/06/28(木) 05:20:00
Rubyってvariantっぽい型ないの?
いちいち(...).to_iばら撒くのマンドクセ
981デフォルトの名無しさん:2007/06/28(木) 07:56:25
ume
982デフォルトの名無しさん:2007/06/28(木) 15:50:34
array0 = array1.map_with_index{ |x,i| x*i }
みたいなことって綺麗にできますか?
983デフォルトの名無しさん:2007/06/28(木) 19:06:37
>>982
arr1 = [10, 9, 8, 7, 6, 5]
arr0 = []
arr1.each_with_index{|val, index| arr0 << val * index }

すぐに思い付くのはこれくらいかなぁ。
984デフォルトの名無しさん:2007/06/28(木) 19:12:40
array0 = (0...array1.size).map{|i| array1[i] * i}
array0 = array1.enum_for(:each_with_index).map{|v,i| v * i}
985デフォルトの名無しさん:2007/06/28(木) 20:09:23
>>982
(0..array0.size-1).zip(array0).map{ |i,x| i*x }
986デフォルトの名無しさん:2007/06/28(木) 20:14:45
mapってのは(順番のない)集合から集合への写像のことだから
with_indexってのが最初から無理があるよね
987デフォルトの名無しさん:2007/06/28(木) 20:59:05
>>982
array0 = array1.each_index{ |i| i * array1[i] }
988デフォルトの名無しさん:2007/06/29(金) 07:52:47
system("gnuplot xxx.gp")
ってするとなんか実行出来ない。Cなら実行出来るのに
989デフォルトの名無しさん:2007/06/29(金) 10:14:32
そうですか
990デフォルトの名無しさん:2007/06/29(金) 10:40:48
>>983, 984, 985
ありがと。984さん勉強になりました。enum_forを使います!
991デフォルトの名無しさん:2007/06/29(金) 10:42:56
早くThread.newするんだ
992デフォルトの名無しさん:2007/06/29(金) 12:26:40
つーか今のこのスレって初心者スレというより、質問スレって感じじゃない?
993デフォルトの名無しさん:2007/06/29(金) 14:25:10
994デフォルトの名無しさん:2007/06/29(金) 16:54:59
throw :さじ
995デフォルトの名無しさん:2007/06/29(金) 19:36:12
>>994
さじ投げてんじゃねえよ
996デフォルトの名無しさん:2007/06/29(金) 19:44:02
自演乙
997デフォルトの名無しさん:2007/06/29(金) 20:16:02
998デフォルトの名無しさん:2007/06/29(金) 20:59:22
rubiestはコードゴルフに熱中しすぎて開発効率が悪いの法則
999デフォルトの名無しさん:2007/06/29(金) 21:49:44
うめ〜
1000デフォルトの名無しさん:2007/06/29(金) 21:55:52
1000ということで
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。