[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 23:11 / Filesize : 205 KB / Number-of Response : 981
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Rubyについて Part 34



1 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 03:34:28 ]
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

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

= 前スレ
Rubyについて Part 33
pc11.2ch.net/test/read.cgi/tech/1223709050/

過去スレ・関連スレは >>2-

508 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 17:33:12 ]
>>505
そんなことはない。今はCPUもメモリもHDDもアホみたいに安くて大容量で
速いんだし、変な最適化をする必要はない。ま、速さはちょっとぐらいは
速くしたほうがいいけど、メモリ使用量に関してはまったく気にすることはない。
ジャブジャブ使っていいよ。

509 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 17:38:14 ]
>>508
そう思ってた時期がおれにもありました

510 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 17:47:22 ]
演習問題レベルのプログラムならともかく、まともなアプリを組もうとしたら
言語仕様の範囲だけで出来る言語は無いからなあ。
・目的に合ったライブラリを持ってるか?
・カット&トライがすぐ出来るか?
C、Javaで事足りるアプリでのスピード競争は無意味だよ。

511 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 18:07:45 ]
>>502
そうか?どっちも下層階級にしか見えん

512 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 18:16:06 ]
さて、
チラシを順次スキャンして、
画像処理してOCRなどを行い、
お得情報を統計的にまとめ、
スーパーマーケット間の移動をTSP問題のごとく解いてくれる
プログラムをRubyで書くか。

513 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 18:31:06 ]
>>512
JPEG画像から商品名と価格をスキャンするのが死ぬほど難しいというアドバイスだけしておく
PDFが提供されてるサイトなら簡単かと思ったがそんなことはなかったぜ

514 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 18:35:22 ]
チラシ画像の新着のチェックとダウンロードだけ自動でしておいて、
実際の内容は10秒くらいかけてローカル画像を目視するというのが一番面倒がないという結論に達した

515 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 18:45:12 ]
>>510
Rubyが遅いと言われるというか実際に遅いのの半分は
起動時間とライブラリロード(読み込み&解釈)にかかる時間だったりする
だから、起動してちょこっと処理して即終了というプログラムはRubyは「不利」
本編の処理時間を速くすれば速くするほど相対的に初期時間に足を引っ張られる

516 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 18:54:43 ]
そこでMVMですよ



517 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 18:59:37 ]
ディレクトリを巡回してすべてのファイルリストを取得してみたいなコード書くと普通に激遅だけどな。
字面が好きだから使ってるけど過度の柔軟性は害でしかない。

518 名前:デフォルトの名無しさん [2009/02/26(木) 19:06:33 ]
>>517
それって言語とかの問題じゃなくて、I/Oが律速になってるだけでね?

519 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:06:55 ]
まあ、複数言語を使いこなしてる者は適材適所でやってるから、xxは遅いからダメ、とはわざわざ書かないだろうな。
Rubyの場合、DSLを組みやすいから目的別の実装(ネットワークに強い、DB周りが充実など)が多いのもあって
「これ1本でオールマイティ」と説明しにくいところはある。
C、Javaを使ってても、やはり似たような所があるが、実装が多いからというより、相性問題で欲しい組み合わせが
なかなか組めないのが悩ましい。

520 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:08:29 ]
ただし、Pythonはこれ一本でオールマイティです

521 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:10:44 ]
>>520
Pythonのダックタイピングに惚れたw


522 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:32:38 ]
RubyってPythonとPerlのパクリなんでしょ?

523 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:38:05 ]
LispとCLUとSmalltalkのパクりだよ

524 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 19:47:36 ]
再帰遅い

525 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:05:05 ]
sprintfの書式指定みたいなのってどうすればいいですか


526 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:13:12 ]
つ ttp://doc.loveruby.net/refm/api/view/method/Kernel/m/format



527 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:32:24 ]
>>524
末尾再帰を使ってる?


528 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 20:43:42 ]
>>511
「にしか見えない」時というのは大抵
「そう見たいから他の可能性を無意識的に枝刈りしてる」時だよ。

529 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 21:50:15 ]
別の話題に移ってるのにいちいち穿り返すなよww
空気読めない典型的な子だな

530 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:19:58 ]
「いちいち〜するなよ」というレスを「いちいち」書き込む子ってよくわからんな。
なんで自分はノーカウントなんだろ。
自分も世界の一部であることを忘れた物言いって、オタクの語りに多いけどね。

531 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:21:15 ]
ML見てPerl大丈夫かと不安になった

532 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:38:52 ]
>>531
詳細

533 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 22:44:55 ]
> /usr/local/lib/ruby/1.9.1/net/https.rb:102:in `require': no such file to load -- openssl (LoadError)

あああああああああああしまった SSL 有効の指定忘れてたああああああああ
また何時間もかけて ruby1.9.1 を make する仕事が始まるお…

534 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:16:40 ]
checkinstallで入れろよ

535 名前:デフォルトの名無しさん mailto:sage [2009/02/26(木) 23:25:06 ]
あるあるw

536 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 00:59:11 ]
>>533
PentiumII?



537 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 01:31:05 ]
しつもん。
Ruby1.9.1でNet::HTTPでHTMLを取得した場合、それのEncodingって何になるの?
ttp://jp.rubyist.net/magazine/?0025-Ruby19_m17n#l65
にある、
> IO は前述の外部エンコーディングと内部エンコーディングの設定の有無を見て、
> 読み込んだ文字列や書き込む文字列を変換したりエンコーディングを設定したりします。
の動作に依るの?

538 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:20:02 ]
HTTPのボディはテキストとは限らないよね。

irb> res = Net::HTTP.start('www.yahoo.co.jp', 80) {|http|
http.request(Net::HTTP::Get.new('/')) }
=> #<Net::HTTPOK 200 OK readbody=true>
irb> res.body.encoding
=> #<Encoding:ASCII-8BIT>

# まぁ、これは text/html なんだが。

レスポンスヘッダ見てテキストだったら、
ユーザーがボディをforce_encodingせよ、なのかな。






539 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:40:10 ]
Net::HTTP#get したものと open-uri で read したものの encoding って違うんだよね

#!ruby1.9
#coding=utf-8
require 'net/http'
require 'open-uri'
uri = URI.parse('www.yomiuri.co.jp/') # Shift_JIS/CP932

html1 = Net::HTTP.start(uri.host, uri.port){|http| http.request(Net::HTTP::Get.\
new(uri.path))}.body
sleep 1
html2 = uri.read
sleep 1
html3 = open(uri).read

p html1.encoding, html2.encoding, html3.encoding

けっか

#<Encoding:ASCII-8BIT>
#<Encoding:ISO-8859-1>
#<Encoding:ASCII-8BIT>


540 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 02:55:42 ]
>>539
Encodingってそもそもなんだっけって感じだな
ユーザーが内容を知らないファイルを読み込むということには対応してない概念なのか

でもこれで困ることって特にないよね?
これまで同様に NKF.guess で文字エンコード情報取り出せばいいよね?

541 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 06:02:24 ]
勝手に変換されて壊れるよりまし

542 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 07:00:38 ]
>>539
Ubuntu8.04 でやってみた。
ruby1.9は余り使わないんで問題ないが、1.9と、1.91では挙動が違うようだ。

% ruby1.9 -v
ruby 1.9.0 (2007-12-25 revision 14709) [i486-linux]
% ruby1.9 0227.rb
#<Encoding:ASCII-8BIT>
#<Encoding:ASCII-8BIT>
#<Encoding:ASCII-8BIT>

% ruby1.9.1 -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
% ruby1.9.1 0227.rb
#<Encoding:ASCII-8BIT>
#<Encoding:ISO-8859-1>
#<Encoding:ASCII-8BIT>


543 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 10:59:56 ]
そういえば、最近ちょっとハマったんだけど
ruby 1.9.1 では初期値空の StringIO にも外部エンコーディングが適用されるんだな

Encoding.default_external = Encoding.find('utf-8')
io = StringIO.new('ascii-string')
p io.read.encoding # => <Encoding:US-ASCII>
io = StringIO.new
io << 'ascii-string'
p io.string.encoding # => <Encoding:UTF-8>

文字列バッファ的な使い方してると落とし穴になる

544 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 11:04:01 ]
大体UTF-8で使ってればその辺はよしなに変換してくれるはずだろ?
CSIはUCSを包含してるはずだからなんとかできるはず

545 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 13:39:46 ]
1.9.xが微妙すぎてみんなPythonに流れ始めちゃってるな。

546 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 13:40:17 ]
ISO-8859 系と ASCII と UTF-8 しかない世界のガイジンさんが残念なコードを書くというのは一応共通認識だと思うが、
Shift_JIS と EUC-JP と UTF-8 あたりで互換が効くと思って NKF.guess ブチ込む日本人さんも同じくらいがっかりだと思った

知らないもんは仕方ないってことだあね、勉強勉強



っていうか Iconv はもうちょっと引数のエンコード文字列の制限を緩くしてくれてもいいと思うんだぜ



547 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 13:44:51 ]
>>539
ルビ1.9.1はどんだけ危険ナンダヨwww
charsetぐらい読めばいいのにwwwww

548 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 14:17:01 ]
>>547
open-uri は Content-Type ヘッダの charset トークンを内部で読んで force_encoding の引数に設定してくれる模様

require 'open-uri'
uris = %w(sankei.jp.msn.com/ dailynews.yahoo.co.jp/ b.hatena.ne.jp/ www.2ch.net/)
uris.each do |uri|
res = open(uri)
p "#{res.read.encoding.inspect}, Content-Type: #{res.meta['content-type']}"
end

results:
"#<Encoding:Shift_JIS>, Content-Type: text/html; charset=shift_jis"
"#<Encoding:EUC-JP>, Content-Type: text/html; charset=euc-jp"
"#<Encoding:UTF-8>, Content-Type: text/html;charset=utf-8"
"#<Encoding:ASCII-8BIT>, Content-Type: text/html"

Ruby1.9 の Net::HTTP はそれすらやらない、本当にプレーンな HTTP クライアントという性格に結果的になったってことだな
Net::HTTP のレベルで細かく処理されてたら確かに逆に面倒かもしれない

「HTTP ヘッダの Content-Type の charset があれば読んで設定、
それで valid_encoding? が偽なら meta タグの Content-Type を、
それでも invalid なら NKF.guess あたりの結果をブチ込み、
それでも invalid ならもうどうでもいいので ISO-8859-5 とかで流す」

という便利なんだか親切なんだかよくわからん HTTP クライアントは Ruby1.9 にこそあるべきだとは思う

あと、>>539のencodingの値はどれもほぼデフォルト値だから、
「あーこいつなんもエンコーディング処理やってねーな」と気づくことはできるぞ

549 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 14:27:50 ]
これで POST ができれば完璧なんだが
… 1.9.1 の open-uri は POST できたりする?

550 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 14:54:20 ]
>>548
ヘッダは見るけどメタタグは見てないということか?

551 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 16:01:41 ]
>>550
そう振舞うのが自然だと思う。
データの中身を見てどうにかするのは、そのデータを解析する層の仕事でしょ。

552 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 16:03:19 ]
>>550
そういう疑問はマニュアルくらい読めよ
……あああああ当たり前のように全く何も書いてねええええええ

え〜、OpenURI::Meta::meta_setup_encoding が該当処理になっとります
おーむねおーざっぱには次のような処理

res = Net::HTTP.start(uri.host, uri.port){|http| http.get(uri.path)}
charset = res['Cotent-Type].scan(/charset=(.+?)"/).to_s
if enc = Encoding.find(charset) then
 res.body.force_encoding(enc)
else
 res.body.force_encoding(Encoding::ASCII_8BIT)
end

<meta> タグを精度よく読もうとしたら HTML のパースをきちんとしないといけないから、
open-uri にとっては動作的にも意味的にも荷が重い

553 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 16:11:47 ]
なにこの「よくわからんがユーティーエフエイツって書けば黙るんだろファッキンジャップ」
とか言いつつLatin1を送りつけてくる無知外人を嵌めるブービートラップ


554 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 16:39:28 ]
それで嵌るのは大概こっち側だという罠

555 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 16:52:28 ]
Railsデプロイ
ttp://www.oreilly.co.jp/books/9784873114002/

…でぷろいって何よ

556 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 16:56:04 ]
まあ日本語で一発で表現できないからこそカタカナ語が残ったんだろうけどな
提供が近い?



557 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:00:17 ]
おれはいつも「配置」と脳内で訳しているが

558 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:01:26 ]
俺のイメージではインストールするだけじゃないインストール、つーかんじ?

559 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:01:51 ]
「Railsアプリのサーバ設置とユーザへの提供」だな

560 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:03:47 ]
Railsの本はRailsべったりでつまみ食いできないからつまんない
たまにはRailsからじゃなくても単独で便利に使えるライブラリ解説本とか出ないかな

561 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:08:12 ]
ちょこっとRailsとかやると新鮮でいいぞ
「だからRubyで書かせろよバカ」と思うことがないわけではないが

562 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:10:52 ]
ハッカーになるために必要な言語が
C/Perl/Haskell/Java/Ruby
ってまじっすか?

563 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:12:04 ]
Ruby 本体の open-uri に POST が入ることはないと思う。
どちらかというと、HTTP URI に post メソッドがつく方がまだありえる

564 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:18:46 ]
>>562
ハッカーに「なる」ことはそもそもできない
スーパースターになるために日々特訓、というのと似たような滑稽さがある

で、それらの言語はそれぞれ極まった特徴がある言語だ
一つの言語だけの知識しかないというのはプログラマー的には(趣味仕事問わず)かなり損なので、
なるべく色々な言語に触れることが好ましいとされている
で、「色々」をわりと学びやすいと思われる組み合わせとしてよく挙げられるのがそれだ、というただそれだけの話
それを頑なに信じて実践してもご利益は特にない
Lisp処理系が入ってないから片手落ちだけど

565 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:21:09 ]
Javaはいらないだろ

566 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:21:47 ]
>>563
post メソッドがついてたまるかー

query と同じような感覚で mutipart とかあのへんのデータがくっつく可能性ならあると思う



567 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:45:01 ]
>>560
ActiveRecord徹底解説みたいなのがほしい

568 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 17:47:49 ]
Rails2系に対応した詳細本って全く無いよな
仕方なくAmazonで英語の本買って読んでるけどRailsより英語に苦戦してほとんど進まない

569 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 19:50:03 ]
自作のライブラリのマニュアルとか書くじゃん?(書けよ?)
Sting#empty? みたいな述語なメソッドの説明あるじゃん?

 ・ ○○なとき真を返し、××なとき偽を返します
 ・ ○○なとき true を返し、××なとき false を返します

どっちがいい?

570 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 19:53:16 ]
真偽がtrue/falseを表すとは限らないから下の方がいい

571 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 19:59:15 ]
>>569

  このメソッドは△△についての真偽を返します

と言っておいて

  ○○なとき true を返し、××なとき false を返します

と書く
ただし、これがコンディションとして使われる場合はたとえば

  引数 param が nil か false だった場合…

とは(unless obj then ... みたいな実装だった場合の話だけど)書かずに

  引数 param が偽だった場合…

と広く書く

572 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 21:07:02 ]
質問。
Iconv の引数に渡すための文字エンコード名を、文字列を分析して取得したいんだけど、どんな方法がある?
ASCII/SJIS/EUC/JIS/UTF8 は NKF.guess があるよね

ISO8859-1 も Iconv の引数に入れたいんだ
どうやって検出すればいい?

573 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 21:19:12 ]
>>571
それってなんかの決まり事?
ルールみたいなのがどっかにあるんだったら教えてほしいな

574 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 22:32:06 ]
>>567
Pro ActiveRecordという本はある。
Railsと独立してActiveRecordを使う本。
まー、内容はソースが読める人ならいらないレベル。


575 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 22:57:13 ]
ソースを読めても効率を重視したい

576 名前:デフォルトの名無しさん mailto:sage [2009/02/27(金) 23:04:59 ]
>>574
そこまで高度な内容でもなかったような記憶。




577 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 00:10:06 ]
ttp://www.atmarkit.co.jp/news/200902/27/langs.html
まあ適当に数字いじり

578 名前:デフォルトの名無しさん [2009/02/28(土) 00:32:10 ]
1年後のIT土方御用言語の傾向と思って記事を読み直してみると、なかなか興味深い。

579 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 00:37:43 ]
Perl/Pythonより売れてるってのが驚きだ
Matzがバブルと言うのもうなずける

580 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:20:04 ]
>>579
だってドキュメントが金出して本を買うしかないwwww

581 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 01:55:47 ]
javaが落ちるのは当然だがrubyがJava以上に落ちるのは意味不明だなぁ
Railsで一瞬盛り上がっただけなのかね

582 名前:デフォルトの名無しさん [2009/02/28(土) 17:17:46 ]
Rubyはある程度使ったら本読むよりネットやソース見たほうが早いって感じか。
Rubyは1.9以降でPythonは3.0以降がもっと使われだすとまた変わってくるかもね。


583 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 17:45:12 ]
単純にrubyはpythonの代わりにはなれないと判断されただけだろ

584 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:40:35 ]
Rubyはもう衰退期に入ってるのかもな

585 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:42:27 ]
成熟期、ではないんだろうか。ないかな。ないよな

586 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:45:18 ]
ruby(笑い)



587 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:46:00 ]
もともとPerlやらPythonやらがあったところに食い込んでるんだから
よくぞ生き残ったと思うよ
これだけ発展すれば、もういきなり死ぬって事は無い

588 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 18:56:52 ]
Railsに生かされてる感じだけどな

589 名前:572 mailto:sage [2009/02/28(土) 18:58:52 ]
あれ、みんな困ってないの?
Encoding に指定するエンコーディング名だって困るよね?

590 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:04:33 ]
はなから自動検出などあきらめている。


591 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:48:25 ]
perl, python, phpと違って、mod_rubyが(事実上)無い事が一番致命的だった。
レンタルサーバーで使えない。

592 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 19:56:14 ]
mod_rubyがどうこうと言うよりも、レンタルサーバーに関して言えば単にキラーアプリの不足だろう
tDiaryはかなりrubyを広めるのに貢献したけれど、それでもperlやphpに追いつくには足りなかった

593 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:04:34 ]
RUbyはところどころ未完成なのがいいんだよ
完成しすぎてると人気がなくなる

594 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:04:59 ]
phpMyAdmin、Trac、MovableType あたりがキラーアプリかな?
特にMovableTypeのお陰で、そこらのへなちょこレンタルサーバでもCPAN
モジュールが使えるようになったのはPerlでは大きいな。ちょっと遅かったけど。

595 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:11:25 ]
>>591
www.google.com/search?q=ruby-on-rails-hosting+discount
www.google.com/search?q=django-hosting+discount
railsとdjangoで比べると、railsが圧倒的。

596 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:13:34 ]
中途半端なmod_rubyがあったが為に、まともなmod_rubyが開発されなかった。
CGIAlt以前のcgi.rbと同じ構図。



597 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:13:59 ]
ぬるぽ

598 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:24:38 ]
>>589
NKF.guessでいいじゃん

599 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:33:46 ]
質問の前提を覆すなよwかわいそうだろ

600 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 20:58:56 ]
Rubyは遅くてたまらん。
フルアセンブラで書き直して欲しい。
誰かやらないか?

601 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 21:05:48 ]
もっとこう、発展余地のある方向を・・・・
JIT組み込んでみるとかさ、GCのアルゴリズム改良してみるとかさ、
部分的な型付けや型推論に挑むとかさ

602 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 21:07:46 ]
はあ?

603 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:20:48 ]
フルアセンブラ(笑)
そんなに遅いならRubyなんかで書かずにフルアセンブリで書けばいいじゃない

604 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:45:11 ]
日本で、Ruby はマイナーなテキストエディタのように生き残るよ。
日本語の漢字コードに対応しているし。

605 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 22:54:34 ]
>>604
>マイナーなテキストエディタのように
何となくしっくり来る例えだな

まぁ日本に限らず世界でも、ここまで使われ始めたRubyが
そう簡単に死ぬこともないだろう
仮に知名度が下がったとしても、ハッカーは使い続けていくさ

606 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:44:55 ]
>>600
1.9系使ってそう思うのならお前に安住の地はない



607 名前:デフォルトの名無しさん mailto:sage [2009/02/28(土) 23:53:58 ]
>>596
mod_rubyって中途半端なの?

608 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:26:38 ]
一方俺は次のLispに逃げた

609 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:33:44 ]
一方おれは1.9に惹かれてRubyを始めた

610 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 01:35:10 ]
そして実践に使える場所がないことに気づく

611 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:29:10 ]
昔のRubyはgemだのrubyforgeだのなくて細々とRAAにユーザーのライブラリが
載ってるだけだったから、大抵のユーザーは自給自足してたけど、今は事情が違いすぎる。


612 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:43:57 ]
1.9使いたいんだが、使いたいgemのmswin32バイナリが1.9対応してない。

613 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:57:46 ]
>607
レン鯖にmod_ruby入れたら何が起こると思う?

614 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 03:03:08 ]
レンタルなんて仮想しか使わんがそれでもダメ?

>>612
何使いたいんだ?

615 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:42:48 ]
>>614
nokogiri

616 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:13:55 ]
>>615
まじで?ほんのちょっといじってみたが、おれが使う分には動作したのだが。
HTMLとってきてxpathを使ってデータ取り出すだけだけど。nokogiriのどの機能がだめ?



617 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 13:55:00 ]
>>616

実際に使いたいのはmechanizeなんだけど、それがnokogiriを必要としてるんでどうにかならんものかと。
一応状況説明。

ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ruby-1.9.1-p0-i386-mswin32.zip
といくつかの必要なdllを入れた環境で
gem install mechanize
とすると、
nokogiri-1.2.1-x86-mswin32-60
mechanize-0.9.1
がインストールされる。
で、インストールされたnokogiriのnative.soはmsvcrt-ruby18.dllを要求するけど、
入ってるrubyのdllはmsvcrt-ruby191.dllだからそんなものないということで動かない。
msvcrt-ruby18.dllを持ってきたとしてもまぁ色々拙くて駄目。

618 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 14:52:46 ]
ふむ
再現

619 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:16:26 ]
Nokogiri は今重点開発中だから報告すれば('(゚∀゚∩ なおるよ!
どっちかというと Mechanize のラテン文字バグを早めに直して欲しいんだが

require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
agent.get('www.google.com/language_tools?hl=en')

Iconv::IllegalSequence: "\240(Simplified)';n"...
   from /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.1/lib/www/mechanize/util.rb:29:in `iconv'
   from /usr/lib/ruby/gems/1.8/gems/mechanize-0.9.1/lib/www/mechanize/util.rb:29:in `to_native_charset'

ISO-8859-1 なページでラテン文字とか記号つき文字とかがあると絶対にそこでエラーになるという

620 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:27:03 ]
>>619
そんなんテストで気づけよ…

621 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:31:50 ]
「中でIconv使ってるから文字エンコードごとにメジャーなとこ10個くらい出入力のチェックしよう」
と考えてテスト作る人は正直なとこかなり稀だと思うっていうかめんどくさいというかむしろ
テスト書くのが面倒だというただそれだけの理由でIconv使うの止めそうだ

622 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:33:42 ]
>>617-618
まじかよ。1.8と1.9を両方入れてるから間違えたのだろうか。
これから1500万件データを入れなきゃいけないから明日試してみよう。

623 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:35:44 ]
俺のは直る直らないと言う以前に1.9.1環境でビルドしたバイナリgemも用意しといてねって話しなんだけどね。
まぁ、それはそれとしてそんなバグもあるのか。

VC++2008 Express Editionでビルドできたら自前でビルドしちゃいたいところだけど、
これもこれで色々とうまくいかないんだよね。

624 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 15:47:16 ]
Mechanize のは
「他人のコードを入れたらそこでだけバグって全体が止まった」
という教科書に典型例として載りそうな事例
メインのメンテナさんは頭抱えてると思う

教訓としては「欧米ファイルを変換する場合は NKF.guess の返り値の文字エンコード名を Iconv に渡さない」
Latin のファイルが NKF.guess で SJIS か CP932 と誤認されて(というか NKF はこの選択肢しかない)、Iconv の変換がコケる

625 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:49:42 ]
マジでテキストの文字エンコーディングが
プログラミング上の悩みの種になりつつあるな。
特にスクリプト言語だと、己のスクリプトファイル
自身のエンコーディングと、扱うテキストデータの
エンコーディングの両方ともに注意が必要だ。
正規表現でマッチしなくなるとか、かなり致命的。

626 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 21:55:52 ]
>>625
んなもの、webアプリの世界では遙か昔っからの問題だ
それをUNICODE文字セットで揉めに揉めるだらWindowsのよくわからんローカライズだら
EUC-JPからの切り替え遅延だら、ずーーーっと先延ばししてきただけの話じゃないか
Perlが内部エンコーディングをUTF-8にし、Encodeモジュールを標準添付にしたのは
何年前だと思ってるんだ



627 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:12:25 ]
Matzか誰かがUTF-8を毛嫌いしてるだけで
EUC信者のせいで導入できなかったのが敗因
さっさとUTF-8にするのは正解だと思う

628 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 22:31:05 ]
そうだ、ISO-2022-JPもShift_JISもEUCも滅べばいい。
世界の文字コードがUTF-8になれば世界は平和になる

629 名前:デフォルトの名無しさん [2009/03/01(日) 23:09:09 ]
そう。過去資産の一部をすっぱり諦めるという英断を、開発者、ユーザを含めた全員でできれば
幸せな世界が待ってるんだ・・・・・。

630 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:38:51 ]
2byteで済むのが3byte-6byteになるのが嫌で反対してるんですね
わかります

631 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:45:29 ]
リソースフォークに文字エンコードを書く風習が広まっていれば…

632 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 23:58:21 ]
よし、じゃあ2chをUTF-8化しよう

633 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:07:45 ]
なってなかったっけ

634 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:11:15 ]
2ch書き込みはcp932

635 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:14:23 ]
Unicode文字が使える設定の板があるってだけだな

636 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:27:57 ]
Unicodeにもいろいろ違いがあるようだが、あまりよくわかってないダメなおれ
16だのなかったか?



637 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 11:01:03 ]
Code Set Independent は正義

638 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 11:31:18 ]
> Matzか誰かがUTF-8を毛嫌いしてるだけで
> EUC信者のせいで導入できなかったのが敗因
> さっさとUTF-8にするのは正解だと思う
何を言っているんだお前は、RubyにUTF-8対応パッチが入ったのは1999年のことだぞ。

> そうだ、ISO-2022-JPもShift_JISもEUCも滅べばいい。
> 世界の文字コードがUTF-8になれば世界は平和になる
無知な人は幸せでいいですね。

> 2byteで済むのが3byte-6byteになるのが嫌で反対してるんですね
> わかります
全くわかっていないので、とりあえずRFC3629くらいは読んでください。

> リソースフォークに文字エンコードを書く風習が広まっていれば…
なので今更ながらmagic commentなんぞ作ったわけです。

639 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 11:37:22 ]
> Unicodeにもいろいろ違いがあるようだが、あまりよくわかってないダメなおれ
> 16だのなかったか?
Unicodeは1つだからuniなのです。
通信時に用いる符号化にはUTF-8、UTF-16、UTF-32があります。
UTF-16は不幸な過去です・・・。

>>619
glibc iconv や libiconv の未定義文字があると例外投げる独自仕様は、
ほんとに有害ですよね。全てがCitrusになるといいと思います。

>>572
自動推測なんてものを当てにしていいのは小学生までです。
ていうか、ISO 8859シリーズの自動推測って不可能でしょ。
# 単語辞書とかでがんばるのかね?
XML宣言なりHTTPヘッダなりmagic commentなりを探してきてそれを使ってください。
そういうライブラリや、フレームワークはそのうち標準添付されるかもしれません。

640 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 12:11:13 ]
>>636
文字集合としてのUnicodeと、そのエンコーディング(符号化方式)であるUTF、という認識から
始めればいいかと。
俺もその先は詳しく知らんけど。

CSIってのは、単独文字集合内での利用においてはそれなりの合理性があるんだろうが、
現実の開発・動作時に、文字セット間の「変換」「推測」が実質必要になるのが根元的な問題。
それぞれ勝手な文字集合を使う上、さらにそれぞれもろにエンコーディングの問題もある、はず。

物事を単純化したいなら、Unicode一択なんだろうか

641 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 12:37:00 ]
> CSIってのは、単独文字集合内での利用においてはそれなりの合理性があるんだろうが、
> 現実の開発・動作時に、文字セット間の「変換」「推測」が実質必要になるのが根元的な問題。
まず、推測が必要になる時点で何かがおかしい。
そのデータを送ってきたやつはなんでそのデータのエンコーディングを送ってきてないんだ?
送ってきているのだとしたらなんでそれを無視するんだ?
日本語使いだとデータだけから言語がすぐに推測できるのだと思い込んでしまうのかもしれないが、
ヨーロッパの言語だと同じ文字を使っているから、数単語の場合は推測など不可能だぞ。

> それぞれ勝手な文字集合を使う上、さらにそれぞれもろにエンコーディングの問題もある、はず。
内部エンコーディングに処理系が対応しているものを使う限りは、
エンコーディングの問題なんか変換時に用いるエンコーディング名を正しく設定する以上はない。
未だに「表」の2バイト目は0x5Cだからエスケープと衝突して・・・なんてのは古代の遺物です。

Unicode系を内部エンコーディングとして使うとよいのは、
Unicodeが実用上もっとも大きな文字集合でかつ他のほとんどを包含してるから。
例えばJIS X 0208で足りるなら別にEUC-JPでもよい。

642 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:24:42 ]
たとえばラウンドトリップ問題とかで、特定の内部コードに一元化という方法では
困る場合がある、というのがCSI派の主張のひとつだが。

643 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:47:49 ]
>>642
ラウンドトリップで一緒になってしまうケースでは例えばNEC選定IBM拡張文字とかがあるが、
実際問題として、そんなもん戻らなくてよくね?
比較や検索の問題があるので、その場合元で対処する必要があるにはあるのだが、
これもまた「同じ文字」が別扱いされるバグがあったとも言うわけで。

それ以外は行き帰りで同じ変換表を用いれば問題はないはず。

644 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 13:50:57 ]
>>641
> まず、推測が必要になる時点で何かがおかしい。
んだね。推測はいらない。ただ、文字集合間での変換は必要。
大体変換テーブル自体がUnicode経由だったりするし。

> 例えばJIS X 0208で足りるなら別にEUC-JPでもよい。
そういうことじゃん。JIS X 0208では足りないんだよ。それを代替できるのが、現実的にはUnicodeしかなく、
それなら独自文字集合に基づいたエンコーディングそのものが不要というか、問題の種にしかならない。
Unicodeで足りない、っていう問題は、新たに規格を作ったり拡張したりするのではなく、あくまでもUnicodeの
補完で対応するべき。JIS規格は、日本の文字規格の統一とUnicodeへの提案という意味のみで利用するべき

と思うんだがなあ
まあ文字コードの話はあんまり深入りしたくないってのも本音だな。
レガシーと現状と文化と将来の展望の主張がいり混じってほんとよくわからん。

645 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:01:48 ]
> それなら独自文字集合に基づいたエンコーディングそのものが不要というか、問題の種にしかならない。
その「独自」の定義は「Unicodeでない」ですかね。

> Unicodeで足りない、っていう問題は、新たに規格を作ったり拡張したりするのではなく、
> あくまでもUnicodeの補完で対応するべき。
補完って、外字でも使うんですかね。
あと、今はUnicodeの拡張可能な領域って2面しかないんですよね。

> JIS規格は、日本の文字規格の統一とUnicodeへの提案という意味のみで利用するべき
今のJIS規格って、国語審議会のおもちゃでしょ。
文字の追加以外はできないようにして欲しいね。

646 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:11:36 ]
よくCSI派から理由に挙げられるのはTRONコードとか文字鏡だっけか?




647 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 22:17:17 ]
いつまでスレ違い続けますか

648 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 23:55:28 ]
UNICODEについて最低限知っておくべきことを最小限の時間で知りたければ
「Joel on Software」の第4章を立ち読みすることをお奨めする。
俺はそれで UTF-8 がASCII圏の奴らのワガママだと知ったw


649 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:49:43 ]
米国でRuby関連書籍の売り上げが減速か − @IT

ttp://www.atmarkit.co.jp/news/200902/27/langs.html

そういうわけでRubyやめてC#かPHPやろうぜ。

650 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 00:54:15 ]
言語仕様的にはPHPよりRubyの方がずっといいように思う。
便利は便利だが、もうPHPに戻るつもりはない。

651 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 01:17:09 ]
禿げ堂
漏れもそう思ってPHPからRubyに乗り換えた
今はPythonを使っている

652 名前:デフォルトの名無しさん [2009/03/03(火) 01:58:52 ]
> UTF-8 がASCII圏の奴らのワガママ
たしかにそうかもしれんが、UTF-8は結構うまく考えられていると思うがな。

653 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 05:02:03 ]
>>648
UnicodeではなくUTF-8?

654 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 06:23:13 ]
他国語化考えてない古いアプリでも
UTF-8だと通ったりするからな
うまく考えられてるよ
そういう利点は素直に認めるべき

655 名前:デフォルトの名無しさん [2009/03/03(火) 12:10:12 ]
>>608
そんな俺は forth(というか concatenative language)に行く


656 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 18:15:20 ]
1.9.1でしつもん
irb で1.9対応が怪しいライブラリを実行して
ArgumentError: invalid byte sequence in EUC-JP
というようなエラーが出る場合、「悪い」のは irb の設定?
それとも元のスクリプト?
それともライブラリそのもの?



657 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 18:19:12 ]
マジックコメント入れて
ruby1.9 -E utf-8 hoge.rb
とか適当なエンコーディング指定してもエラーが出るなら、ライブラリの書き方が悪い可能性が大
マジックコメント入れてないなら、スクリプトが一方的に悪い

658 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:08:26 ]
>>652>>654
うん、確かにASCIIとの互換性を保ちつつ従来の文字エンコードの
課題を克服した、とてもよい設計だと思う。UNICODEの普及に
大きく貢献してるね。
>>648は「これで Joel に興味持ってくれたらいいな」とあえて偏見
気味に書いてみたw


659 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:41:22 ]
あっそ

660 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 07:12:54 ]
ということにしたいのですね

661 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 09:06:32 ]
void キタ! Rubyには型は無いのに!

662 名前:デフォルトの名無しさん [2009/03/04(水) 09:55:21 ]
型が無いわけじゃないんだけどな。

663 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:55:03 ]
一般的に型と呼ばれるもので「保証」されているあれこれがRubyには存在しない、が妥当な表現?

664 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 10:57:54 ]
プログラム言語の理論をあまり知らない初心者だけど、
一般的に型って言った場合、どういったものを指すの?

変数(入れ物)の型?中身(オブジェクト?)の型?
静的型言語って言った場合は、前者でいいのかな。

665 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:19:33 ]
>>664
そう
静的な型付けでは入れ物の型を先に決めるから、結果として入れることができる中身も限定される

666 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 11:45:05 ]
Rubyの概念的には
「変数そのものもなんらかのクラスのオブジェクトのようなもんである言語があるらしい」
だと思ってくれればそう間違ってもいない

bind_type(:str, String)

とすると str は絶対に String のインスタンスしか入らない(整数を代入するとTypeError)みたいなそんな感じ



667 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:40:32 ]
>>665
なるほど。中身そのものの型を変えられるのかどうかは知らないけど、とりあえず動的・静的って
言ってるときには、それはあんまり関係ないのかな。
あくまでも変数の型についての話、でいいのかな。

>>666
これは、TypeErrorを出しているのはその「なんらかのクラス」の機能ってことだろうか。
んでこういうこともできるから、一応Rubyに型がないわけではない、っていう意味?

668 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:52:27 ]
Rubyしかやらないのなら型について気にする必要は一切ない
公式には型はない
型のある言語を学ぶようになってから型について学べば十分

669 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 12:59:07 ]
中身の方に「お前は誰だ」って聞いてやればいいんだよね
unless(String == obj)
raise ArgumentError, "イテーヨシ"
end
みたいに。

670 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:09:07 ]
>>669
実行時にしか評価できないのなら型の実際的意味がない

671 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:12:41 ]
>>666
横から悪いが、何を言ってるのか分からんのだけど、どゆこと?

672 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:27:02 ]
静的だと値にも変数にも型がある
動的だと値には型があり変数にはない
とか

673 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:31:21 ]
>>670
型を間違ってコーディングした事を、実行前に知りたい、という事?
だったら趣味ならともかく、まともなアプリにはtestは必要なんだから、型の間違いはすぐ判る。
動的に切り替えできる必要がある場合は、動的型付けの方がやり易い。

>>671
>>664
横レスだが、型には多相型(Haskellなど)、単一型(C、Java、Rubyなど)があると思ってくれ。
単一型をさらに、静的、動的に分類可。

静的--->変数と型との対応が固定。
int i=1とした後、i='a'とするとエラー

動的--->オブジェクトと型との対応が固定。 変数とオブジェクトとの対応は可変。
a=1とした後、a="abc"と出来る。

>>672
> 動的だと値には型があり変数にはないとか
Rubyはそのとおり。

674 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:45:38 ]
>>673
いや、うん、そうだけど、あなたの言ってる事と>>666の内容は
およそ一致してると考えていいのかな?
俺にはそう取れなかったので

675 名前:673 mailto:sage [2009/03/04(水) 13:56:28 ]
>>674
「型についての知識が、静的型付け言語の範囲内」の人に始めてRubyを説明するときには、
>>666の表現は厳密ではないが受け入れ易いと思う。

676 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:17:33 ]
変数に型がないことを説明したいのに変数を型にはめることだけ例示されてもなー
という違和感が >>666 にはあるな



677 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:34:28 ]
文句言うなら自分で説明する
でもスレ違いなんだけど

678 名前:デフォルトの名無しさん [2009/03/04(水) 15:59:47 ]
俺がよく使うたとえ話としては

「変数は入れ物じゃなくて、ラベルみたいなもん」
「代入じゃなくて名前付け。データとかオブジェクトに対して名前をつける」
「ラベルはどんなオブジェクトにも貼り付けられる。型はオブジェクトそのものの属性」
「ラベルには賞味期限と有効範囲がある」
「すべてのラベルが剥がされると、参照不能になってGC様の餌になる」

厳密じゃないが、おおむねこれで理解してもらえてる。

679 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:53:38 ]
>>678
>「ラベルには賞味期限と有効範囲がある」
この辺をkwsk

680 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:03:07 ]
エクステントとスコープのことだな。

681 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:04:54 ]
Rubyに型がないという話なんて誰もしてないと思うんだが

682 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:10:52 ]
>>681
>>668

683 名前:デフォルトの名無しさん [2009/03/04(水) 18:17:44 ]
>>673
型testのコードは自動で生成されるの?
でなかったら結局人間による抜けがでそうだけど...


684 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:26:03 ]
便利さ・柔軟さのトレードオフとして危険性はある。

でも、プログラムは仕様通りの動作をすれば内部の変数にどんな型のオブジェクトがあるのかは関係ないし、
ライブライリーのpublicメソッドの引数なんかは型チェックをしてるよ。

685 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:34:44 ]
Ruby的にはオブジェクトの種類はどうでもいい
メソッドさえ動作すれば、引数のクラスは全く問わない
文字列の代わりに、Stringと同じメソッドが定義されてる別のクラスのオブジェクトを渡しても普通は動く

ただ、ぶっちゃけこの考え方は柔軟だが動作の保証が非常に面倒なので、勢い

raise ArgumentError unless param.is_a?(String)

とか書く

686 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:37:55 ]
bind_typeってどのバージョンから使える?

変数のエクステントって概念は知らなかった。
スコープの延長で、可視範囲から外れればだれからも見えなくなるから
忘れ去られると考えてた。これだと静的変数の説明がしにくいんだよな。



687 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:39:58 ]
>>686
bind_type は説明用の擬似的なメソッドだろう
あれば楽しそうだが

688 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:45:01 ]
respond_to?のお役立ち度の微妙っぷりは異常

689 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:56:33 ]
>>683
自動testはHaskell以外は知らない。
言語によらず、型に合った(or意図的にエラーを起こさせる)テストデータを与える必要があるんでは?

690 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:02:44 ]
>>680
そうかなーとは思ったのだが、「ラベル」の賞味期限とエクステントとがうまく結びつかない。
「オブジェクトには賞味期限があり、ラベルには有効範囲がある」なら納得なのだが。

691 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:19:30 ]
オブジェクトの賞味期限は貼るラベルによって変わってくるからいいんじゃない?
もうちょい気を利かせると「ラベルには賞味期限と有効範囲が書いてある」とかだろうか

692 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:03:27 ]
Smalltalkには、 Objectにbecome: というのがあった気がする。



693 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:28:13 ]
# v1.9.1
require 'prime'
Prime.instance.each_cons(2).select {|x, y| y - x == 2 }.first(10)

最初の10組の双子素数を求めようと、このようにすると、当然のように
selectから帰って来れません。ループ組んで10個見つけたら打ち切るみ
たいにするしかないでしょうか。


694 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:08:20 ]
仕方ないように見える
遅延評価があれば似たような書き方ができそうだが、
Rubyではサポートされていない

695 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:11:44 ]
selectってなんだっけ

696 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:17:53 ]
>>695
find_all

detect が find で
select が find_all で
collect が map だ



697 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:32:04 ]
うへ、Enumeratorが無限なのか
変なの作ったなあ

>>693
ループ組んで10個見つけたら終了、という使い方を想定していると思われる

698 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:38:16 ]
Ubuntu で Ruby1.9.1 をコンパイルしたんだけど irb で矢印キーが効きませぬ
readline5 の devel は入ってたのになあ

699 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:42:55 ]
クト類はわかりにくい

select が find_all で
collect が map で
detect が find で
inject が 特になしで
reject! が delete_if

700 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:48:14 ]
たぶん散々既出だと思うが、
select → grep
collect → map
にしなかったのはなぜなんだろ?(まあmapはあるのか)

701 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:53:12 ]
detect と select は意図的に使わない
というか detect は true か false を返すべきだと思う

702 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 23:55:59 ]
>>700
お前んちのgrepはマッチしなかった行を空行で返したりでもするのか?
てかあのへんは既存の言語の関数をRubyのメソッドに持ってきただけだからどうにもならん

703 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:06:06 ]
>>702
うん?
[0,1,2].select {|i| i == 1} #=> [1]
空行なんて返ってこなくていいよ

find_allって何から来てるの?
grep, map はPerlからなら素直に覚えやすいんだが。

704 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:15:02 ]
おそらく>>700は矢印をオレオリジナルで使っててなおかつ自覚がない

705 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:20:17 ]
全角矢印のム板汎用的な用法なんてあるのか?
意味は通じると思うが

706 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:33:26 ]
Prime.instance.each_cons(2).enum_for(:select, &->(e){e[1]-e[0]==2}).first(n)

first(3)まで見て出来た気になったがfirst(4)を見て全然意味を成していないことに気づく。
enum_for(*args)にはブロック渡せないぽいなぁ。




707 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:35:52 ]
1のとき[2,3]が返る時点で気づこう。


708 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:36:38 ]
>>705
断言しても言いが、経験上たぶん通じてない

709 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 00:50:56 ]
>>693
module Enumerable
def select_by(block)
return to_enum(__method__, block) unless block_given?
each {|e| yield e if block.call(*e) }
end
end

require 'prime'
Prime.instance.each_cons(2).select_by(lambda {|x, y| y - x == 2}).first(10)

でどう?

710 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 01:26:31 ]
>>709

>>Prime.instance.each_cons(2).select_by(lambda {|x,y| y - x == 2}).first(10)
=> [[3, 5], [5, 7], [11, 13], [17, 19], [29, 31], [41, 43], [59, 61], [71, 73], [101, 103], [107, 109]]

なるほどね。


711 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 02:34:18 ]
Prime.instance.each_cons(2).select {|x, y| $. > 10 ? raise 'sine': y - x == 2 }

712 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 12:03:00 ]
おおむねスレ違いなんだけどさ、github で「今の状態のライブラリをZIPでくれ」ということはできない?

713 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 13:18:30 ]
せめてLinux板のgitスレで聞け

714 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 13:44:10 ]
downloadsに用意されてなけりゃできないんじゃねーかと思う
素直に git インストールして git clone git://hoge.github.com/... するのが一番
カレントディレクトリに、たとえば rubygems のライブラリなら hoge/lib ができる

715 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:12:18 ]
もっと英語の作文勉強しておけばよかった
そんだけ

716 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:15:31 ]
Rubyって普及こんな特集記事が載せられるほど普及しているんですね

すっげー、かっけー

itpro.nikkeibp.co.jp/article/NEWS/20090126/323529/?ST=oss



717 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 16:20:21 ]
>>715
「書いてみたが、伝わるんだかどうだか不明」という場合は、既出だが自動翻訳サイトを通してみるといい
自動翻訳でなんとなく意味が通じる場合は、外人さんにもなんとなく意味が通じる可能性が高い

訳して何がなんだかわからない場合は、翻訳サイトがへぼい可能性ももちろんあるが、
そもそもの英文がかなり微妙な出来である可能性もかなり高い
日本人であることが相手に伝わってる場合、下手に凝る文章よりも
翻訳サイトで結果が出るようなプレーンな英文のほうが好ましく思われる傾向にある

スピーチとかサイトへの寄稿文とか書いてるという話なら失礼

718 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:49:47 ]
まつもとさんになんてことを

719 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 21:58:51 ]
どこの翻訳サイトはレベルが高いのがありますか?

720 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 22:03:06 ]
niftyが結構マシ

721 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:08:40 ]
やっぱ買うのがおすすめ。IT系の辞書とかつけて。

おれは英語のサイトだとすぐに回れ右していたが、
翻訳ソフトを買ってから割と読むようになったし、苦じゃなくなった。
翻訳されてるんだから当たり前だけどな。

722 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:13:49 ]
読むのはいいんだけど、書くのがねえ…

723 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:46:14 ]
It's easy to read, bat hard to write.

724 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:59:36 ]
そうか?翻訳ソフト使えば書く方が簡単だと思うぞ。
書くときは自分で簡単な言い回しに変更できるけど、読む方は相手次第なんだから。
元の文章を工夫するんだよ。オフィシャルな文章じゃそうはいかんだろうけど。

725 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:46:08 ]
書けないと読めないって良く言われるね

726 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:04:16 ]
きっちり書こうとすると前置詞とかが難しいのよね



727 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:13:51 ]
難しいというか、正しく伝わってるかどうか確信が持てない。
おかしい所にも気づかない。
という不安が常につきまとう。読む方にはそれがあんまりないので、
書く方がはっきり難しいと思う。

728 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:34:05 ]
冠詞も良く分からん
I am a God. は間違いらしい

729 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:39:40 ]
そりゃそうだ・・・

730 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:42:17 ]
go to the heaven
なのに
go to hell
だったり

731 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 02:48:29 ]
おかしいと思って調べたが「go to heaven」でいいはずだぞ。
theの使い方を覚えろよ。それにこのあたりの区別は日本語の助詞なみに難しいと思うぞ。
こんなとこ完璧にするより内容を考えろよw

732 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 03:18:33 ]
日本語ペラペラでも文章の稚拙な外人っているじゃん
そういう人の文章見てみんなどう感じる?

733 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 03:51:52 ]
言語的な問題なら仕方ないと思うかなあ。
でも論理的な明快さに欠けてたら、母国語でもそうなんだろうなと思う。
話せればいい文章を書けるなら、
日本人は日本語ならみんないい文章を書けることになってしまう。

って、Rubyの話じゃないじゃん。

734 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 05:26:21 ]
in the heaven
in hell
らしい

735 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 09:12:50 ]
1.9のEncodingのエンコード名称って大文字限定?

736 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 09:24:21 ]
>>735
まず自分でirbでも使って試してみるのがいいと思うよ!
Encoding.findオススメ



737 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 09:43:53 ]
>>735
1.8でも値だけ作っておくとかそういう時は大文字で書いておくのがいいと思う

738 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:48:30 ]
twitter.com/knu/status/1210022309
ふざけんな!
1.8.6と心中せざるをえない数万のプログラマーを見殺しにするのか!!

739 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:51:56 ]
1.8.6は今存在してるんだからそれ使ってればいいじゃない。

740 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:58:35 ]
PHP5が出た時と全く同じ騒ぎに見える。
PHPの場合は、本格移行の流れになったのは4のサポート停止が"されてから"だから大体3〜4年かかってる。
RubyはPHPほど実運用されてないので移行はもう少し早かろうが、逆にそのまま放置される恐れもあるよな。
Perl5.0や5.6も結構しぶとく残ってたし。

741 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 12:07:24 ]
>>738
> 1.8.6と心中せざるをえない
具体的にはどんな人?

742 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 16:02:12 ]
移行なんかしなくていいじゃん。

743 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 16:06:30 ]
>>741に回答が無い時点でたいしたもんじゃないな

744 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 16:38:30 ]
>>743
まあ1.8.7にアップグレードできないのも1.8.7向けに改修できないのもほとんどは契約の問題だと思う
個々のプロジェクトの契約の問題の責任をRubyに負わせるとかお前何様って感じだ

745 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 18:47:41 ]
このテストスクリプト間違ってる…

746 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 19:23:35 ]
1.8.6とかで放置でも問題ないケースも多い
スクリプトの寿命よりサーバーの寿命の方が先に来る




747 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 19:26:33 ]
> スクリプトの寿命よりサーバーの寿命の方が先に来る

だからなんだというのだろうか?

748 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:12:04 ]
1.8.7用に書いたスクリプトが1.8.6で動かない事はあるかも知れないけど
1.8.6で動くスクリプトが1.8.7で動かない事ってあるの?

749 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:34:09 ]
そりゃあるだろうが、割合的にはかなり稀

750 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 13:51:10 ]
>>745
悪いね、正しい結果を出すのが明らかな代表的なのしか書いてないんだ

751 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:15:03 ]
RailsのMultibyte拡張でStringにcharsというメソッドを定義してたのが
1.8.7のcharsと衝突したってのは結構知られているはず。
これは、Railsがmb_charsという名前に変更した。



752 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:50:22 ]
あれは組み込みクラス拡張するほうが一方的に悪いから、仕方ないな
利便性と引き換えの非互換リスク

753 名前:デフォルトの名無しさん [2009/03/07(土) 19:21:12 ]
>>748
rubyは1.8.6用に書いたスクリプトが1.8.6で動かなくなったことだってあるwww

754 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 19:27:05 ]
>>753はパッチの意味を理解していない

755 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 19:28:48 ]
RDoc フォーマッタで attr 系列が別待遇なものが多いのはなぜ?
あれ他のと混ぜて一律にメソッドとして説明すればいいじゃんね

756 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 19:35:32 ]
>>755
俺もそう思ってるんだけど、

 ・ プロパティ厨
 ・ attr で書いたものはそれ自体に意図があるよ説

が結構根強い

attr_accessor :hoge



def hoge
 @hoge
end

def hoge=(v)
 @hoge=v
end

には違いがないと思うんだけどねえ



757 名前:デフォルトの名無しさん [2009/03/07(土) 21:01:19 ]
初めまして。
webkeepersにgemを入れました。その後、rubyが1.8.5だったので、1.8.7にupdate。
install時特になにも環境変数?を指定などしていません。
gem -v => 1.3.1
ruby -v => 1.8.7
とどちらも正常なようですが、require 'rubygems'にすると、"no suck file to load"と怒られます。
whereis gem => /usr/bin/gem だったので、export GEME_HOME = /usr/bin/gem
と余計な事までしてしまいました。どうしたもんでしょう?お願いします。

758 名前:デフォルトの名無しさん [2009/03/07(土) 21:02:46 ]
such がsuck になっていて申し訳ございません。。。

759 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 21:15:53 ]
初心者スレかと思った

>>757

 ・ レンタルサーバのユーザー領域に自前でRubyをインストールしたが、gemが動かね

ということでいいか

760 名前:デフォルトの名無しさん [2009/03/07(土) 21:32:35 ]
ありがとうございました。解決はしませんでしたが、素人が余計なことをするなと言うことは理解出来ました。
けどvpsなので、rootで入れて、whereis ruby => /usr/bin/ruby /usr/lib/ruby /usr/local/bin/ruby /usr/local/lib/ruby /usr/share/man/man1/ruby.1.gz
まぁ素人が、vps使うなんて危ないというのも解るけど。。。
ありがとうございました。初期状態に戻します。

761 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:23:13 ]
素人だから余計なことをするのか
それとも余計なことをしてしまうから素人なのか
そもそも余計なことをしてしまったときに自分で修復出来ないから素人なのか

762 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:24:53 ]
自分で素人と思ってるのはまだいい

763 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:28:13 ]
>>757
インストールしたものがどこに入っていったかくらいわからんものか?

普通にソースビルドで何も指定せずに入れたらrubyは/usr/localに入り、
gemもそのrubyの設定に従って/usr/localに入るはず。
あなたのgem -vで出てきたのは、最初から入っているruby(/usr/bin)に対して
インストールされているもの。
rubygemも別途いれるべし。



764 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 22:31:21 ]
gem -v => 1.3.1
ruby -v => 1.8.5
のときはちゃんと動いていたのか?

765 名前:デフォルトの名無しさん [2009/03/07(土) 22:59:11 ]
764さん、それが、1.8.5の時は、ramaze,m4dbiが、動いていたんですね。
ありがとうございました。場を少し荒らしたみたいで、申し訳なかったです。
退場します。

766 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:10:06 ]
CentOSだろ?
システム提供のパッケージを更新するんだから、rpmでインストールするか、
システム提供の物を抜いてから入れるべきだ。

rpmforgeのレポジトリを指定してyumでアップデートするのが楽だと思うよ。



767 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:16:14 ]
うわーRubyきもい
うわーまじきもい

768 名前:デフォルトの名無しさん [2009/03/07(土) 23:19:20 ]
766さんありがとうございます。がんばってみます。レスをくれた人、勉強になりました。

769 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 23:46:59 ]
gemコマンドは使っているrubyと結びついてインストールされるから、
自力でrubyを入れたのならgemコマンドもそれに併せていれること。
# 1.9系列なら一緒にインストールされるけどね。


770 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:30:55 ]
なんでそんなアホな仕様にしたの

771 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 00:39:26 ]
別にアホでもない
gemが自分を実行可能なバイナリを勝手に探して自分に勝手に登録するだけだ
Rubyは何も関与しない

772 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 03:06:59 ]
下位互換性ことごとく無いよね。松本教信者しか使えないな。

773 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 03:30:19 ]
>>772
kwsk

774 名前:デフォルトの名無しさん [2009/03/08(日) 03:40:53 ]
>>754
1.8.6のpatchで仕様変更をして、それで互換性がなくなったことがあるんだが

775 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 08:24:45 ]
>>771
Rubyの位置が変わったくらいでgemまで再インストールしなくてもいいのに

「自分を実行可能なバイナリを勝手に探して自分に勝手に登録している」
その場所だけ1行かそこら書き換えるだけで済まないの?

776 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 12:20:46 ]
>>775
確信があるのなら自分で試してみたら。
Rubyは成熟してないから自分で手を動かすしかないこともあるよ。



777 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 13:41:31 ]
つまりrubyは出来が悪いと。

778 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 14:51:34 ]
>>777
というか出来上がっていないという話では?


779 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:38:10 ]
>>776
そういう意味じゃないよ
なんでそういうつくりにしなかったのっていう意味だよ

780 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:39:35 ]
ドキュメンテーションが半端なライブラリ等はプロジェクトに
持ち込むべきじゃないし、ドキュメンテーション活動が活発なところ
からチョイスした方が楽が出来る

781 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 20:50:57 ]
ドキュメンテーションが半端な言語についてはどうなんだろう

782 名前:デフォルトの名無しさん [2009/03/08(日) 22:24:17 ]
1.8 で動くアプリを走らせながら、1.9でも色々テスト開発したいので、1.8と1.9を共存させようと思っているんだけど、やめた方がいいですかねぇ?なんか色々面倒なことになりそうな予感が。
バーチャルマシンでOS2つ載せてそれぞれで1.8と1.9使うってのも考えてるんですが・・
同じOSに1.8と1.9共存させるってのについてはどんな印象でしょうか?ウェブ上でそいうことしてる人ちらほらとは見かけはするんですが・・

783 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 22:34:23 ]
>>782
きちんとやれば特に問題はない
gem のライブラリを大量にインストールしてる場合は
ほぼ同じものを 1.8 用と 1.9 用にインストールしなければならないので
心情的にもディスクスペース的にも無駄なのが若干寂しいが

784 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:07:56 ]
>色々テスト開発したいので
本気でそう思ってるなら 1.9 しか入っていない環境を一つ作るべき
Virtual でも Real でも何でもいいからね

出来たアプリを別のところに持っていって動かないケースが出てきたら
そっちに 1.8 が入っているのかどうかとか悩みたくないだろ


785 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:12:01 ]
>>784
1.8用と1.9用で外部APIの要求バージョンが違うとか極悪なことしてない限りそういうことはまずない

786 名前:デフォルトの名無しさん [2009/03/08(日) 23:20:36 ]
gemは?



787 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:24:36 ]
>>775
> その場所だけ1行かそこら書き換えるだけで済まないの?
先頭一行書き換えるだけ。
Rubyとは無関係な話なので、詳しくはshbangでググれ。


788 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:28:28 ]
>>787はたぶん勘違いしている

789 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:44:27 ]
Rubyは最近調子に乗ってって
勘違いしていると思う

790 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:48:17 ]
>>787はかなり勘違いしている

791 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:48:48 ]
どの言語にも取り巻きと他言語からの工作員がいるよな…

792 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:49:18 ]
gemって馬鹿な子なんだってことは分かりました
本当にありがとうございました

793 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:49:49 ]
>>783
1.8 用と 1.9 用ってインストールされるファイルを分けることはできる?
gem1.9 から起動されたら hoge-0.2.3-ruby19 をインストールするとか

794 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:51:47 ]
rubyは関係ないとかrubyのせいじゃないって言ってる香具師いるけど
perl用のgemとかphp用のgemとかpython用のgemとかあるわけ?


795 名前:デフォルトの名無しさん mailto:sage [2009/03/08(日) 23:53:44 ]
ばかですねわかります

796 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 00:04:45 ]
おれEclipseを二つ入れて使い分けてるが
開発オンリーでWindowsだけど



797 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 20:05:45 ]
はぁ?

798 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 21:55:18 ]
なにが「はぁ?」なのかわからんのだが
はっきり書いてくれよ

799 名前:デフォルトの名無しさん mailto:sage [2009/03/09(月) 22:53:34 ]
>>797
息が臭いです

800 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 00:29:31 ]
統合開発環境とか使いこなせないんだろ。
そういうのは争いのもとだから相手にする必要なし。

801 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 19:57:40 ]
万人には使えないとか。単に使いにくいだけだろ。

glibc並の酷いバージョン問題発生か。
進歩無いねえ。下位互換性ぐらい確保して当然だろ。
0.8とか0.9でリリースし直して徹底的に枯れてから1.xの安定板をリリースしろよ。

802 名前:デフォルトの名無しさん mailto:sage [2009/03/10(火) 20:14:41 ]
あん、何が何のdownward product だって?

803 名前:782 [2009/03/11(水) 17:32:25 ]
むーやっぱバーチャルマシン立てようかな・・
レスありがとうございましたm(_ _)m

804 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:58:43 ]
円周率を計算するプログラムを見かけたのでRuby用にしてみた
元はhaskellで、それを十進BASIC用にしたもの
多倍長整数で計算するらしい
何をどう計算してるのか内容についてはさっぱりわからんが
1万桁計算する時間を計ってみることに
require 'benchmark'
limit = 10000
Benchmark.measure do
q,r,t,i = 1,180,60,2
u,y = 3*(3*i+1)*(3*i+2), Integer((q*(27*i-12)+5*r)/5/t)
#print y
(limit-1).times do
q,r,t,i = 10*q*i*(2*i-1), 10*u*(q*(5*i-2)+r-y*t), t*u, i+1
u,y = 3*(3*i+1)*(3*i+2), Integer((q*(27*i-11)+5*r)/5/t)
# print y
end
end.display


805 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:06:50 ]
Windowsにて実行
Ruby 1.8.7-p72 Mingw32 17.20s
Ruby 1.8.7-p72 mswin32 25.02s
をぉ、かなり違いますな
てっきりVCの方がGCCより速いのかなと思ってたけど
最適化の封印とかされてるのだろうか

Ruby 1.9.1-p0 Mingw32 19.89s
Ruby 1.9.1-p0 mswin32 28.90s
がびょーん、1.8より遅くなってる…

Mingw32版は自前でビルド(configure と make しただけ)
mswin32版は(う)さんの


806 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:13:25 ]
>>805
お察しの通り、mswin32版は最適化封印されてるぞ。
最近のVCを使えば大丈夫、らしい。
それでもGCCの方が速いことが多いらしいけど。



807 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:17:04 ]
封印てw バカじゃないのかしらw
オープンソースなんだからサポートしてるコンパイラに最適化するのは当然。
そもそもVCてw せめてiccと比較しろよなw


808 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:18:48 ]
>>807
そのへんの「事情」はMLアーカイブ読んでこい。


809 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:21:49 ]
へたなコンパイラにへたな最適化させるとGCで必要な情報を「最適化」しちゃう?


810 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:22:00 ]
「w」の数が多いやつはバカが多い法則は健在だな

811 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:39:58 ]
AquesTalk/Ruby クソワロタw

812 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 23:22:09 ]
>>806
やはりそうでしたか
バイナリの互換性でいまだVC 6.0でコンパイルされているのは知ってました
本体や拡張ライブラリからリンクされてるランタイムライブラリが一致してないと駄目とかなんとか

あと、なにか不味いことがあって最大限の最適化もされてないとか以前どこかで見たような記憶があったので


813 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:13:04 ]
pythonはVC8に移行したよね

814 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 00:33:01 ]
VS2008(VC9)だな

815 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 06:51:25 ]
1.9.1の時点でVC9に移行しちゃっても良かったんじゃないかと思うんだがな
VC6とかインストールするのもめんどくせえ

816 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 10:14:32 ]
勝手にすればいいのでは



817 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 10:16:28 ]
確かにな。mswin32版も、あくまでも有志サイトでの配布って形を崩してないしw

818 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:25:14 ]
あちこちでmswin32向けにバイナリ配布されている拡張ライブラリは
VC9でコンパイルしなおした場合、使えなくなる可能性が高いということですか?
gcc版のrubyを使う場合は、拡張ライブラリは基本的に
自前でコンパイルしてインストールする必要があるとかそういうことですか?
mswin32版しか使ったことないから考えたことがないな。

819 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:39:40 ]
1.8の安定版スナップショット(2009/03/13 04:15:48)のwin32/resource.rbがバグっぽい。
make時に作るrcファイルがwindresでsyntax error。
rcファイルのFILEVERSIONとPRODUCTVERSIONの末尾が「,」になってるわ。0でも足しとけ。

820 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:40:32 ]
>>819
mingwでの話

821 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 23:44:17 ]
>>818
mingwとVC6でコンパイルしたruby本体と拡張ライブラリは互換性があるんで互いに使える
それ以外のcygwin、VC7/8/9、bccなんかでコンパイルしたruby本体では
同じコンパイラでコンパイルした拡張ライブラリしか使えないし逆もまたしかり

822 名前:デフォルトの名無しさん mailto:sage [2009/03/14(土) 03:40:11 ]
過疎w

823 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:03:01 ]
ruby厨ってrubyしか使ったことないかあるいは使えないんでひたすら布教するんだろうな
複数の言語を使いこなせないとは哀れな

824 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:06:23 ]
教祖が多数の言語に精通した言語ヲタなのにねぇ…

825 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:13:21 ]
>>823
彼らはRuby使えてないよ
実際に聞いてみるといい

826 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:18:50 ]
ことRubyユーザーで、Rubyしか使えない層ってのはごく少数だと思うが
そもそも、複数使えないと(相対的に)良い悪いなんて判断できんだろ……



827 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 10:23:09 ]
なんか想像力の豊かな人がいるみたいだなw

828 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:52:14 ]
教祖の教えだけに従うから宗教なんだろ。
教祖がこうだと言えば、反論せず賞賛するだけ。反論したら異教徒として火あぶりにされる。

plやpyの採用例に比べると、rbの採用例って驚くほど少ないから、実用面では厳しいよね。
学術研究ユーザが多いのかもしれない。

829 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:55:59 ]
MLとか読んでる?たまにmatzもぼこられてたりするぞ
ただ最終決定権(の多く?)がmatzにあるのをみんなが認めてるってだけじゃないのか

830 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 11:59:29 ]
イメージで言ってるだけだろ。不満なら完全民主制の言語でも作ればいい。

831 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 13:37:50 ]
>>829
matzが「コミット権取り上げますよ?」て言われたこともあったな

832 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 17:36:49 ]
>>831
マジですか?w

833 名前:831 mailto:sage [2009/03/16(月) 17:57:01 ]
>>832
今探しなおしてきた
ttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/29649?29386-29727
微笑ましい一幕です(悪い意味じゃなくね)

834 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:22:27 ]
ワロタ

835 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:23:20 ]
その後の言い訳がまた笑えるw

836 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:24:46 ]
>>833
ワロタw
サンクス



837 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:26:10 ]
ていうか、開発MLみたいなとこでも草生やしたりすんだなw

838 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 18:29:46 ]
基本的にはしない
無くても議論はできるからだ


が、草生やすのが最適だと思われれば躊躇うことはない

839 名前:デフォルトの名無しさん mailto:sage [2009/03/16(月) 20:52:55 ]
えーと、いわゆる優しい独裁者モデル? なんか違う肝。


840 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:30:47 ]
1.9.1のtrunkは6日から進んでないけど、なんか大きな変更をやってるの?

841 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 00:37:39 ]
コンビニ増えすぎだよな

842 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 08:58:45 ]
>>840
trunkはとっくに1.9.2devだよ。今見たら昨日も更新してた。
それともbranches/ruby_1_9_1のこと?

843 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 09:45:19 ]
>>842
そなの?
ホームページの最新版スナップショットとやらが(2009/03/06 04:13:00)から更新されてないので気になったんだけど。
1.8.8devの安定版スナップショット(2009/03/17 04:19:26)は毎日更新されているから。

844 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 10:13:24 ]
>>843
ああ、そっち見てたのね。
こっちはSubversion見てたもんで。

845 名前:デフォルトの名無しさん mailto:sage [2009/03/17(火) 22:16:57 ]
>>843
smn

846 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 08:52:33 ]
>>843についてIRCの方で報告があった
今は直ってます



847 名前:デフォルトの名無しさん mailto:sage [2009/03/18(水) 09:59:27 ]
>>846
サンクス

848 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:21:20 ]
配列をN個に(ほぼ)等分する必要があって、
グネグネしたコードを書いた。
で、気に入らないのでちょっと書き直してみた。
Ruby神、リファクタリングよろ。
メソッド名は堪忍してくんろ。

def equally(a, n)
sizes = [].fill(a.size / n, 0, n)
(0...(a.size % n)).each {|i| sizes[i] += 1}
#p sizes
sizes.inject([]) {|r, size|
sub = a.slice!(0, size)
break r if !sub || sub.size < 1
r << sub
}
end

(1..20).each {|i|
a = (1..i).to_a
p a
p equally(a, 3)
puts
}


849 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:31:06 ]
Enumerable#each_slice では用が足らんのか
面倒じゃのう

850 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 11:41:56 ]
リファクタリングとかいうレベルじゃないくらい別モンだけど
def equally(a,n)
 result = []
 div,mod = a.size.divmod(n)
 until a.empty?
  result << ( 0 < mod ? a.shift(div+1) : a.shift(div) )
  mod -= 1
 end
 result
end

851 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 12:01:16 ]
def equally(a, n)
sizes = [].fill(a.size / n, 0, n)
(0...(a.size % n)).each {|i| sizes[i] += 1}
sizes.map {|size| a.shift(size) }
end

852 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 16:24:32 ]
aは破壊しちゃっていいのか?

# 非破壊バージョン
def equally(a, n)
 result = []
 div,mod = a.size.divmod(n)
 (Array.new(mod, div+1) + Array.new(n-mod, div)).inject(0) do |i, m|
  result << a[i, m]
  i + m
 end
 result
end


853 名前:848 mailto:sage [2009/03/19(木) 17:02:41 ]
>>849 Enumerable#each_sliceは1.9からは組み込みですか。使ったことなかったです。
>>850 なるほど。modを減らしていくほうが、自分の元の思考ともあってます。
>>851 なるほど。breakさせないほうがメソッドの動作としては自然かも。その発想頂きます。
>>852 非破壊のほうが使いやすいですよね。その発想いただきます。

shiftに引数渡せるの知らなかったんで…、
などといいつつ手元の1.8.6では使えないのでやっぱりslice!

def equally(a, n)
tmp = a.dup
(0...n).inject([]) {|r, i|
r << tmp.slice!(0, a.size / n + (i < a.size % n ? 1 : 0))
}
end

くっ…。見にくくなっただけのような。
さらにメソッド名がいかんともしがたい。

854 名前:デフォルトの名無しさん mailto:sage [2009/03/19(木) 17:06:33 ]
はうっ。mapでよかったんだった。

def equally(a, n)
tmp = a.dup
(0...n).map {|i|
tmp.slice!(0, a.size / n + (i < a.size % n ? 1 : 0))
}
end

855 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:24:14 ]
Rubyでothelloをつくりたいのですが
何から始めればよいでしょう

856 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:25:38 ]
pc11.2ch.net/test/read.cgi/tech/1235727504



857 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:31:56 ]
>>855
とりあえずCUI版tic-tac-toe作れ。
出来たらそれのGUI版を作って基礎固め。
Reversiはその後だな。

858 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 21:46:42 ]
間にGUI版を作るのはなぜ?

859 名前:デフォルトの名無しさん [2009/03/20(金) 22:28:27 ]
>>855
すでに誰か作ってないかあるものを探すところから

860 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 22:49:32 ]
勉強のために作りたいんだろ

○×ゲームを先に完成させてから考えろというのは妥当だ

861 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 22:55:37 ]
マジレスするとオセロはかなり難しい
段階踏んで作るのが間違いない
最初からオセロだけ目指したら絶対挫折する

862 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:09:34 ]
初心者スレか宿題スレに誘導するのが一番妥当かつ親切じゃないかと思うんだが。
pc11.2ch.net/test/read.cgi/tech/1235727504/
pc11.2ch.net/test/read.cgi/tech/1200175247/

863 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:11:48 ]
話すこと終わっちゃった感もあるな

864 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:19:34 ]
オセロって作った人のレベル以上に強くならないって言うけどどうなんだろ

865 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:21:03 ]
「Rubyで」という部分を除けば完全にスレ違い

866 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:27:51 ]
まず、質問した人はオセロ盤を作りたいのか、思考モジュールを作りたいのか
はっきりしたほうがいいな。後者はRuby向きじゃないと思うが。



867 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:43:32 ]
>>865
「Rubyに関する部分」を除いたらあらゆるものがスレ違いなんだが

868 名前:デフォルトの名無しさん mailto:sage [2009/03/20(金) 23:50:26 ]
そしてMatzに関する部分だけが残った。

869 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:08:10 ]
初心者であればあるほど、言語固有の事情と言語非依存な部分の切り分けは出来ないからのう。


870 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:12:02 ]
ありがとうございます
移動します

871 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 00:12:49 ]
>>867
Ruby自体がいろんな他の言語のいいとこどりだから
すべての話題がスレ違い扱いされても文句言えない

872 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:35:48 ]
実はRubyは初めてでも、
アルゴリズムはめちゃくちゃすごい奴だったりしてな

873 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:52:43 ]
>>872
大丈夫
すごい人は放置されても自力で出てくる

874 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 01:54:04 ]
誘導しても結局ゴミみたいな雑談してるだけという

875 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 03:04:44 ]
オセロの対戦アルゴリズムは大変だろうな。

876 名前:デフォルトの名無しさん [2009/03/21(土) 11:36:12 ]
古典的なα-β法とかでシンプルに作ってやれば、
とりあえずそれなりに動く思考ルーチンは簡単に作れるyo!
強くするのはその後の課題になるけどな。



877 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 12:12:26 ]
全部で60手のうち
序盤20手くらいは定石がある
終盤40手くらいからは読み切れるんだろうけど
中盤20手〜40手をどうするかが課題
あとはすれち

878 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 14:44:48 ]
オセロは必勝法がもう分かっているから、
いかに人間に遊ばせてあげるか、だよ。

879 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 15:18:43 ]
>>878
初耳

880 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 16:49:03 ]
>>878 は嘘。

ただ、完全先読みで読み切られちゃうんで、そうとうの高段者でも
劣勢になったらひっくりかえせなくなっている。

881 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 16:49:50 ]
「終盤は」を付け忘れた。

882 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:00:43 ]
読み切られて負けるの分かってる状態よりも
引き分け前後の微妙なところで終盤にもつれる方が
ゲームとして面白いのは確かだよね
苦行をしたい訳じゃなくて遊びたいんだから

883 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 18:03:01 ]
相手がコンピュータの場合と人間の場合で戦略は違う
自分がまけそうなときに分かりやすい最善手を打ち続けるより
悪手でも相手が間違いやすいややこしい手を打った方が良いって
聞いたことはある


884 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 20:06:44 ]
そういう変則手って、相手が人間の時こそ有効なんじゃないの?

885 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:04:39 ]
そうだね

886 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:05:26 ]
相手が人間の時の話なんだが



887 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:06:07 ]
うほ

888 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 21:27:35 ]
囲碁くらい複雑になると顕著だね
悪手とは言えない手でわざと難しく難しく打つやり方

889 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:29:26 ]
オセロに必勝法があるなら、
先手か後手か決まった時点で勝負あったになるよな

すべての手を洗い出しても必勝法はないってことか?
やってみてなかったのか、やってないのかどっちだろう
将棋はめちゃくちゃ複雑だというが、
オセロでもすべての手を洗い出すことはできないのだろうか

890 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:32:23 ]
>>889
ゼロサム完全情報の二者間のゲームには必勝法が存在する。
オセロは6x6なら後手必勝というのはすでに解析済み。
8x8は後手必勝ぽいけどまだ解析中。

891 名前:890 mailto:sage [2009/03/21(土) 22:35:07 ]
> ゼロサム完全情報の二者間のゲームには必勝法が存在する。
あと、手数が無限にならないことも条件として必要だった。

892 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:35:25 ]
「確定」じゃないなら必勝法はないけどな

893 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:40:14 ]
まあもし必勝法が見つかったら10×10くらいにすればいいのかな
>>890
オセロには引き分けもあるが、それでも必勝法は必ずあるの?

894 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:42:10 ]
>>890-891
ふおおお、なるほど。6x6までは後手が必ず勝つのか。

完全情報というのは「手の内をさらす」ということでいいのか?
たとえばじゃんけんは当然必勝法はないだろうが、
駒を隠す軍人将棋にも必勝法があるとは限らないってこと?

5x5ならおれのPC(クアッド、メモリ8G)とRuby1.9でも
現実的な日にちで計算可能だろうか。

895 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:44:50 ]
ja.wikipedia.org/wiki/%E4%BA%8C%E4%BA%BA%E9%9B%B6%E5%92%8C%E6%9C%89%E9%99%90%E7%A2%BA%E5%AE%9A%E5%AE%8C%E5%85%A8%E6%83%85%E5%A0%B1%E3%82%B2%E3%83%BC%E3%83%A0

896 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 22:55:17 ]
>>895
サンクス、これはおもろい



897 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:00:01 ]
>>896
高校生かな?
大学行くと1年生の教養の情報系の授業で習うぞ

898 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:06:09 ]
いい年こいていちいちひねたレス付けないと気が済まないのかね

899 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:11:44 ]
>>897に他意悪意を感じ取るのは曲芸または深刻な学歴コンプレックス

900 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:13:23 ]
>>897
ゲーム理論習わないところもあるよ
実際、俺も情報系の学部で4年目だけど習ってない

901 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:17:26 ]
>>900
それはなんていうか大学に抗議したほうがよくないか

俺らは選択だった
ゲーム理論という名前でテレビゲームの話だと思った人がいて半分くらいは寝てた

902 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:18:08 ]
だいたい、大学生の誰もが「教養の情報系の授業」を取ってるって前提がおかしいw
一般教養の講義を選択できない大学があるんだろうか
どっちかというと、講義より「囚人のジレンマ」の話なんかから入る人が多いだろうし

903 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:18:56 ]
第81回 高階関数を理解できないとRubyは理解できない
ttp://d.hatena.ne.jp/bingo_nakanishi_perl/20090321/1237630273
うん、いや、その通りではあるんだけど、そんな大層なもんでもないかなーと
内容はブロックの話で、ある意味タイトルは釣り

904 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:34:50 ]
経済学にも応用されてるよね
株の必勝法とか

905 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:36:23 ]
必勝法というか負ける可能性を低くする定番な

906 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:36:26 ]
>>903
馬鹿が解説するとますます分からなくなるという罠



907 名前:デフォルトの名無しさん mailto:sage [2009/03/21(土) 23:38:14 ]
てか、ナニを目的とした記事なのかよーわからん
もうちょい無難なタイトルにしたほうが吉

908 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:10:21 ]
なんか内容がないな
高階関数って言いたかっただけなのか?

909 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:17:26 ]
高階関数とか無名関数とか、言い換えて余計わからなくする典型的な失敗解説の例?

910 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 00:44:26 ]
分かってないひとが無理に解説しようとするからw

911 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 01:07:50 ]
bladeはメンテ中? MLがwebで見れなかったんだけども

912 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 04:34:41 ]
原稿書く様な人は詳しくなかったりするのが問題。技術ネタは特に。

チェスでもスパコンで演算するレベルだしなあ。

913 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 09:25:51 ]
Deep Blue はスパコンというより専用機

914 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 09:28:06 ]
スパコンと専用機は互いに排他的な概念なの?

915 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:12:27 ]
排他的なら「スパコンではなく専用機」という表現になると思うが

916 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:17:32 ]
専用スパコン機でいいじゃない。駄目か。



917 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 10:47:53 ]
IBMのサイトだと
「In May 1997, IBM's Deep Blue Supercomputer played a fascinating match with the reigning World Chess Champion」
ってなってるから、ディープブルーはスパコンでいいんじゃないかな
チェスしか出来ない用途の狭いスパコンだけど。

918 名前:デフォルトの名無しさん mailto:sage [2009/03/22(日) 13:22:38 ]
>>913
DeepBlueと同じ開発チームが民生用のパソコン用にソフト開発して
例のカスパロフ氏と5分の勝負をしたって何年か前にニュースになってたと思う。
DeepBlueに似たような監事の名前だったはずだけど、思いだせない。

919 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 12:57:21 ]
Webで見られるMLの設定が変わったみたいだけどcharsetくらいはまともに返して欲しいものだ。
blade.nagaokaut.ac.jp/ruby/ruby-list/thrt1-217.html

920 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 13:11:09 ]
>>919
動的に出力してるページはHTTP headerでちゃんと吐いてるから、HTMLページだけかな
それならサーバよりmetaタグを各ページにきちんと埋め込む方がいいかもね
というかやるならきちんとXHTMLにしてもいいよね

bladeってソースはオープンになっていのかな?

921 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 19:13:50 ]
XHTML1.1だとmetaタグに制約があったりするけど
それ以前の問題だなぁ…

922 名前:デフォルトの名無しさん [2009/03/23(月) 20:36:34 ]
>>919
どう間違えたらcharset=iso-8859-1何て返すんだろうなwww

923 名前:デフォルトの名無しさん mailto:sage [2009/03/23(月) 21:06:16 ]
Apacheの初期設定を適当に使うと何でもかんでも
ISO-8859-1で返すようにするのは結構簡単にできてしまった気がする。


924 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 00:07:31 ]
mingwで1.9をコンパイルしてるんだけど、pthreadって使った方がいいの?

925 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:34:09 ]
>>923
というかiso-8859-1で返すのが正式
それ以外はオプション

926 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:38:05 ]
デフォルトでUTF-8で返してくれれば楽なんだけどな
3あたりで変わらないかな



927 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 01:46:04 ]
>>926
EUCなML書庫はそれでも文字化けするという

なんかW3Cとかが絡んでたんじゃない?>iso-8859-1
仮にXHTMLが標準となれば、UTF-8になるかもよ
ttp://www6.plala.or.jp/go_west/note/memo/xhtml_media_types.htm

928 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:16:30 ]
AddDefaultCharset は Apache 2.0.53 から httpd.conf 初期ファイル群には書かれなくなった
ユーザーやアプリケーションごとに設定すべきということなのだろう

929 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:22:24 ]
そもそも、charsetなんて文書ごとに設定するのが本筋なので、
サーバのデフォルトなんてどうでもいいってことではないのかな
XHTMLならXML宣言だろうし、HTMLならmeta要素?

930 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:33:00 ]
>>929
違う
サーバーは送出するファイルのtypeとcharsetをヘッダで送信「するべき」

現行これが行われてないのは単なるサーバの怠慢
と、処理コスト無限大なことによる
本当はファイルの文字エンコードをサーバはあらかじめ知っておかなければならない
画像ファイルの type が別個であるのと同様に、テキストファイルの charset も実際の値を送信するべき
これの努力を怠ってはならない

ちなみに、 meta 要素の http-equiv は 「HTTP等価値(equivalent)」の略だ
Web ブラウザはこれを HTTP ヘッダの結果と同様に扱わなければならないという意味
だから、HTTP ヘッダが基本

931 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:43:57 ]
meta の charset なんてのは、あれは

    仕
    方
    な
    く

読んでるんだよ

932 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 02:51:25 ]
>>930
> HTTP ヘッダが基本
その仕様が、Apache等の実装者を含めあんまり意味がわからないって問題では?
良ければさらっとでも解説希望。

画像のMIME typeなんかは拡張子で判別して現状それほど問題ないが、htmlやらxmlやらで
それは(今の文化的に?)無理じゃん
サーバ側の設定でやるとしたら、charsetによってURLをわけるとかディレクトリをわけるとか
拡張子をわけるとか、とにかく意味不明なサーバの挙動・仕様の要求になるわけで。
もしくは、サーバが文書の中を読んでヘッダ吐くとかのさらに意味不明な実装が出たりw

で、仕様上はHTMLヘッダの指定が優先らしいからブラウザとかもそうなってるけど、
それでは不便すぎるので、現実的にHTTPヘッダは省略しましょうってなってるんじゃないの?

933 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:43:10 ]
この辺がまとまってるか
www.fxis.co.jp/xmlcafe/link/jirei/sample_charset.html

934 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:47:36 ]
文字符号化スキーム charset名
ISO-2022-JP(RFC1468) ISO-2022-JP
日本語EUC(圧縮形式) EUC-JP
シフトJIS Shift_JIS

なんでUTF-8載せないんだろ

935 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 03:54:24 ]
非日本人は、HTTPの何も指定しない時はiso-8859-1でおkで困ってないというのが大きい。
個人的にはメールとの相互互換から、ISO-2022-JPに統一すべきだと思う。

936 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 04:02:54 ]
>>934
昔だからじゃね?
RFC2616が出る前みたいだし。ただ、charsetについては仕様の変更は無いか
www.studyinghttp.net/rfc_ja/rfc2616

ただ、↑の3.4とか3.7.1の立場からは、>>928のApacheの初期設定は明らかに後退だな

>>935
いやいや。文字が足りないって根本の問題の解決もそろそろ・・・。
それに日本国内だけで統一しても仕方ないじゃん
メールもUTF-8でいいよもう



937 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 04:13:14 ]
最近サブジェクトとかヘッダが
=?ut-8?B?
で来るメールが増えた


938 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 05:29:54 ]
gmailがそうだからね
俺も使い始めのとき、文字化けすんぞゴラァって言われてあわてて直した

939 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 10:08:26 ]
>>924
mingwではpthread関係ないというか何も指定しなくていい。
つかプラットフォームによらず1.9ではpthread関連の指定は一切不要。

940 名前:デフォルトの名無しさん mailto:sage [2009/03/24(火) 12:19:16 ]
>>939
ほーい、サンクス

941 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 00:56:12 ]
>>938
今時、utf-8 も処理できないようなメールクライアント使ってる方が悪い
と開き直ればOK


942 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 02:10:54 ]
うちは7ビットしか通らないよwww

943 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 07:08:36 ]
>>937
utf-8 ならともかく ut-8 はないな。

944 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 08:05:43 ]
ガイジンさんの文字エンコーディングわかってなさっぷりはガチ
慣れない英語で何度もバグトラッキング送るの疲れた
もうやだ
っていうかほぼ確実に、英語で書いた俺の意図自体は伝わってねえ

945 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 08:19:41 ]
>>944
バグ報告は症状1つに対し1エントリずつに小さく分けて送れ

あんまり総合的な題目で送るとたいてい独自解釈されてたいていエンバグする
2〜3行のカタマリの修正につき1エントリな感じでよろしこ

一気に3つくらい投稿が増えて正直なんか邪魔っけというか申し訳ない気もするが、
本当に不具合なのなら全く気にする必要はないし、堂々と送ればよい
バグ報告が2/2のライブラリよりも13/200のライブラリのほうが安心感があるものだ

946 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 08:25:07 ]
>>944
次はロシア語のメールをUTF-8で送ってやるんだ

>>942
そんな化石みたいなサーバ?は今すぐ捨てて下さい



947 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 08:30:08 ]
>>945
バグ報告の異常に少ないライブラリって使うのちょっと躊躇するよね
そういうのに限って2006年にバージョン0.2出したっきり
で、使ってみて、「あーやっぱダメだ」みたいな

948 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 11:50:05 ]
RMagickでpathに2byte文字含んでると処理がうまく行かないのを何とかしてほしい。

949 名前:デフォルトの名無しさん mailto:sage [2009/03/25(水) 21:31:21 ]
むしろ2バイト文字のほうが世界のマイナーだし。

950 名前:デフォルトの名無しさん [2009/03/26(木) 01:50:15 ]
でも中国人多いじゃん。

951 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 01:56:17 ]
マルチバイト文字に関わってる中国人は人口ほど多くはないと思う

952 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 02:09:26 ]
中国人のコンピュータ利用人口が少ないってことか?

インド系文字は?

953 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 02:19:38 ]
まだ支那ってインターネット十分に繋がってないと思うぞ。
繋がってたら、とっくにIPアドレス売り切れてる。

954 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 07:33:05 ]
ipv6の普及には支那の一般家庭のネット開通で十分ということか

955 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 11:21:53 ]
あれ?ruby-coreがあぼーんしてる
ttp://blade.nagaokaut.ac.jp/ruby/ruby-core/index.shtml

956 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 20:57:33 ]
>>953(とその周辺)
wbb.forum.impressrd.jp/feature/20080926/690



957 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 21:06:30 ]
MLアーカイブの番号順リストって何でいきなり無くなったの?
ML入ってなくても毎日追っかけられて重宝してたのに。。。

なんか文字化けもしてるしやる気ない感じ

958 名前:デフォルトの名無しさん mailto:hage [2009/03/26(木) 21:21:41 ]
やる気ない

959 名前:デフォルトの名無しさん mailto:sage [2009/03/26(木) 21:22:36 ]
リニューアルしようとして失敗してとりあえず稼動だけしておくというのがとてもRubyらしくてよい

どのへんが問題なのかぬ

960 名前:デフォルトの名無しさん mailto:hage [2009/03/26(木) 22:00:38 ]
そういう管理者を管理する管理者

961 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 13:16:24 ]
まだルビーも公開β版みたいな物だしな。
枯れて来てから使うのがいい。

962 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:01:24 ]
枯れる前に廃れる罠

963 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:09:19 ]
というか、MLのnagaokaut.ac.jpって何なんだ。
ここの職員の人が管理してるの?

964 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:12:05 ]
>>962
今から廃れさせることができたら大したもんだ

965 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:18:00 ]
MLはメーラーで読むものだろ。archiverが壊れたぐらいで文句をいうのはお門違い

966 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:22:01 ]
と、古参の方が申しております



967 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:24:05 ]
>>965
後者はともかく前者には異議あり。

968 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:30:15 ]
mboxでもMailDirでもいいから、公式でMLのログを配布してくれるんなら、
>>965にも同意できるが、現状あそこだけだしねえ

969 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 17:59:13 ]
>>963 原信一郎先生が個人的に提供してるものだが?

970 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:08:13 ]
グーグル先生でログを検索できないMLは役に立たないと思われ

971 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:13:16 ]
個人情報とかうるさい昨今、MLの内容もだんだん公開に気を使うようになっていくぅーんくぅーん おやどこかに子犬が

972 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 18:15:05 ]
>>969
数学の先生なんだな。web自体にはそれほど興味ないのかな
ご本人のサイト?もエンコーディングばらばらだし、何かの実験なんだろうか。
ttp://blade.nagaokaut.ac.jp/~sinara/

973 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:43:04 ]
>>968
せっかくRuby使ってるんだから
Rubyでgetして集めるスクリプト書いて公開してくださいおねがいします

974 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:46:26 ]
そんなものを作れるなら、掲示板なんかでくだを巻いていない

975 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:48:56 ]
日本語でなくていいなら
www.ruby-forum.com/
があるお

976 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:54:27 ]
>>972 昔からウェブページ作ってる人だと多いよ。
俺のウェブページもUTF-8とISO-2022-JPとEUCといろいろになってる。
まとまった暇があるときにUTF-8に統一したほうがいいかなぁとか、
考えてはいるんだけど。



977 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:55:10 ]
>>975
そこのruby-devが悲惨なことになってるな

978 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:55:38 ]
EmacsのUTF-8の扱いが酷いからメインに移行できないという話はまだちらほら

979 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 20:56:42 ]
>>973-974
じゃあ俺がPythonで書いて公開してやるからちょっと待ってろ

980 名前:デフォルトの名無しさん mailto:sage [2009/03/27(金) 23:09:52 ]
980






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef