Ruby 初心者スレッド Part 17
at TECH
1:デフォルトの名無しさん
08/01/16 17:41:27
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
関連スレやURLは>>2-7あたりを見てください。Ruby on Railsの質問はWebProg板のRailsスレで。
■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
・ぐぐる
・マニュアルで探す URLリンク(www.ruby-lang.org)
・FAQを読む URLリンク(www.ruby-lang.org)
質問には以下を書くこと。へたくそな質問は再提出を要求される。
・詳しい内容(「動きません」「うまくできません」では回答しようがない)
・エラーメッセージ(なるべくそのままで)
・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
2:デフォルトの名無しさん
08/01/16 17:42:03
Q: Rubyの勉強をはじめようと思うのですけども、
一からRubyをはじめる初心者向けのRuby入門書は何がお薦めでしょうか?
A: プログラ自体の初心者だったら「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」
他の言語経験があるんだったら「プログラミングRuby 第2版 言語編」
3:デフォルトの名無しさん
08/01/16 17:45:20
■前スレ
Ruby 初心者スレッド Part 16
スレリンク(tech板)
■関連スレ
Rubyについて Part 30
スレリンク(tech板)
Rubyの宿題教えてください。
スレリンク(tech板)
スレリンク(tech板)
【ActiveScript】RubyをWindowsで使うスレ【GUI】
スレリンク(tech板)
Ruby on Rails
スレリンク(tech板)
Rubyについて(アンチ専用) Part002
スレリンク(tech板)
4:デフォルトの名無しさん
08/01/16 17:47:27
■公式/非公式関連リンク
Ruby Home Page
URLリンク(www.ruby-lang.org)
Rubyリファレンス(よくサーバーエラーになります)
URLリンク(www.ruby-lang.org)
URLリンク(www.ruby-doc.org) (英語)
リファレンスのHTMLヘルプ版配布
URLリンク(elbereth-hp.hp.infoseek.co.jp)
# Windowsで便利
Ruby FAQ
URLリンク(ruby-lang.org)
Programming Ruby - The Pragmatic Programmer's Guide
URLリンク(www.ruby-doc.org)
# 好評書籍をWebで公開中、ただし英語
逆引きRuby
URLリンク(www.namaraii.com)
5:デフォルトの名無しさん
08/01/16 17:53:42
RAA - Ruby Application Archive
URLリンク(raa.ruby-lang.org)
RubyForge
URLリンク(www.rubyforge.org)
# Rubyのアプリやライブラリが検索できる
日本Rubyの会 公式Wiki
URLリンク(jp.rubyist.net)
# メニューに表示されていない埋もれた情報ページ多数
Rubyist Magazine - るびま
URLリンク(jp.rubyist.net)
# コードレビューが好評
Matzにっき(Ruby作者の日記)
URLリンク(www.rubyist.net)
Ruby hotlinks 五月雨版(日記やblogのアンテナ)
URLリンク(www.rubyist.net)
Rubyの本一覧
URLリンク(www.ruby-lang.org)
<rubyXML/>
URLリンク(www.rubyxml.com)
6:デフォルトの名無しさん
08/01/16 17:54:46
■最近できたWiki
Ruby 初心者スレッド Hiki
URLリンク(starlet.s145.xrea.com)
Ruby Portal
URLリンク(ruby.morphball.net)
7:デフォルトの名無しさん
08/01/16 18:02:44
■Ruby1.9について
未だバグが多く、不安定です。
正式な日本語ドキュメントも出ていません。初心者は手を出さないように。
安定版リリースの1.8.xを使いましょう。
Changes in Ruby 1.9(英語)
URLリンク(eigenclass.org)
8:デフォルトの名無しさん
08/01/16 18:08:10
テンプレ少し整理しました
間違いとか重要なのに入ってないURLとかあればよろしく
9:デフォルトの名無しさん
08/01/16 18:27:06
>>1乙
10:デフォルトの名無しさん
08/01/16 20:03:39
>>1乙
11:デフォルトの名無しさん
08/01/16 20:05:11
スレリンク(tech板:988番)
:デフォルトの名無しさん:2008/01/16(水) 15:05:44
質問です。2つの文字のコマンドラインで入力された2つの文字列のレーベンシュタイン距離(編集距離)を求めたいです。
ただし、kakasiとtakasaは通常なら距離が2になるのですが、3にしたいです。
要するに母音に対して変換が行われたときのみ距離を2倍にしたいです。
できれば〜倍かはコマンドラインから指定できるとなお良いです。
扱う文字はaiuなどではなく、kakisuなど子音を含むものとします。nnやnya等も考えません。
つまり配列にいれるなら奇数のとこに必ず母音が入るというものです。
通常の距離を求めるコードは以下にソースはっておくので、どなたか改造、アドバイスお願いします。
12:デフォルトの名無しさん
08/01/16 20:05:37
スレリンク(tech板:989番)
:デフォルトの名無しさん:2008/01/16(水) 15:07:31
class String
def levenstein(other, ins=1, del=1, sub=1)
# ins,del,subは重みつきコスト
return nil if self.nil?
return nil if other.nil?
dm = [] # 距離行列
# 最初の行の値を初期化する
dm[0] = (0..self.length).collect { |i| i * ins }
fill = [0] * (self.length - 1)
13:デフォルトの名無しさん
08/01/16 20:09:32
スレリンク(tech板:993番)
:スレリンク(tech板:988番):2008/01/16(水) 17:33:21
続きです。
#重要な比較
dm[i][j] = [
dm[i-1][j-1] + (self[j-1] == other[i-1] ? 0 : sub),
dm[i][j-1] + ins,
dm[i-1][j] + del].min
end
end
#行列の最後の値が文字列間のレーベンシュタイン距離となる
dm[other.length][self.length]
end
u1 = gets
u2 = gets
yyy = u1.levenstein(u2)
puts yyy
#yyyが距離になります。
end
よろしくお願いします。
14:デフォルトの名無しさん
08/01/17 00:15:57
Syntax Error
15:デフォルトの名無しさん
08/01/17 00:36:05
質問です。
マルチスレッドを使用して非同期のP2P形式チャットプログラムを作りたいのですが、
クライアント側から送信しないとサーバ側で送信できません(同期通信になってる)
非同期にする方法がイマイチわからないので、できればサンプル等を用いてご指導お願いします。
最終的に作りたいものは、ユーザ1がユーザ2に接続し、任意のタイミングで文字列を送受信する
プログラム(メッセンジャーみたいな感じ)です。よろしくお願いします。
Windows XP(mswin32)/1.6.8
16:デフォルトの名無しさん
08/01/17 00:43:11
なんかRubyってよりプログラミング一般の質問ばっかりだな
17:デフォルトの名無しさん
08/01/17 00:43:43
>>15
こんなのがある。
URLリンク(blade.nagaokaut.ac.jp)
short codingになってて読みにくいので、自力でわかりやすく整形してくれ。
18:デフォルトの名無しさん
08/01/17 02:00:33
Windows・Ruby1.8.6にて、指定EXE(notepad.exe等)のプロセスが一つ以上存在していたら、
それら全てを(正常)終了させる、といったコードはどうなりますか?
19:デフォルトの名無しさん
08/01/17 02:13:18
tasklist taskkill
20:デフォルトの名無しさん
08/01/17 07:04:04
質問させて頂きます。
実行環境:
ruby: 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
OS: Windows XP Professional Version2002 SP2
サーバ:
21:20
08/01/17 07:10:21
すいません、間違って途中で書き込んでしまいました
実行環境:
ruby: 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
OS: Windows XP Professional Version2002 SP2
サーバ:Apache2
内容:
特定のURIから画像をひっぱてきて表示したいのですが、
うまくいかない場合があります。
うまくいくURI
requri = "URLリンク(www.google.co.jp)"
うまくいかないURI
requri = "URLリンク(mt1.google.com)"
上記URIに対し下記の処理を実行して画像を表示します。
require 'open-uri'
uri = URI.parse(requri)
str = uri.read
print 'Content-type: '+ str.content_type + "\n\n"
STDOUT.binmode #これやらないと画像などのバイナリ系が勝手に文字列エンコードされました。
print str
うまくいくURIの場合はCGIとして呼び出すと画が表示されますが、
うまくいかないURIの場合、 str = uri.read のところで
c:/ruby/lib/ruby/1.8/open-uri.rb:287:in `open_http': 403 Forbidden (OpenURI::HTTPError)
とエラーが返ってきます。
ブラウザのアドレス欄に うまくいかないURIを直接入力してジャンプした場合はFobiddenになりません。
cgi経由だとうまくいかないようです。
以上です。よろしくおねがいします。
22:デフォルトの名無しさん
08/01/17 07:49:36
str = uri.read("User-Agent" => "unko")
23:デフォルトの名無しさん
08/01/17 08:07:21
>>21
URLリンク(www.studyinghttp.net)
24:デフォルトの名無しさん
08/01/17 08:40:40
>but your query looks similar to automated requests
>from a computer virus or spyware application.
恐らくヘッダが足りないと見た
25:デフォルトの名無しさん
08/01/17 09:05:59
>>21
あんまRuby関係ないな
HTTPステータスコードと「サーバから拒否される理由」を勉強するべき
アクセルとブレーキを物理的に踏めるからといって交通標識を知らずに車を公道で運転することはできない
26:デフォルトの名無しさん
08/01/17 09:14:50
ユーザーエージェント付けてないだけでひどい言われようだな
27:デフォルトの名無しさん
08/01/17 09:21:02
車の例が適切だけど、アクセルとブレーキの使い方を知ったからって言ってそのまま公道走られると迷惑だからな。
小手先の迂回方法だけ教えてもゴミ増やすだけだ。ステータスコードとその意味を知らないなんて致命的。
どうせどっかで学ばないといけないんだし早いほうがいい。
28:デフォルトの名無しさん
08/01/17 09:48:43
>25,27
別にRFC2616見たからって、そこからヘッダが足りない、
という答えを導き出すことはまず不可能だと思うがね。
RFC的にはクエリ自体は合法なわけだし。
29:デフォルトの名無しさん
08/01/17 10:00:33
>>21 の「403 Forbidden」からどうやって >>22 を導き出したのか知りたい。
30:デフォルトの名無しさん
08/01/17 10:01:24
その通り。
31:デフォルトの名無しさん
08/01/17 10:22:13
>>28
RFCを出すまでもなく、おまえは話の本質が分かってないわけだがw
32:デフォルトの名無しさん
08/01/17 10:38:11
おいおい、こいつ話の本質とか言い出したぞ
33:デフォルトの名無しさん
08/01/17 12:28:44
こいつ話?
34:デフォルトの名無しさん
08/01/17 12:33:52
>>28
何しに来たんだこいつは?
35:デフォルトの名無しさん
08/01/17 12:34:50
ある種の勘違い君が、賢いことを書こうと背伸びすると
あんな風になる。
36:デフォルトの名無しさん
08/01/17 12:57:41
>>35
たしかに >>25 >>27 あたりは本当に酷いな
37:デフォルトの名無しさん
08/01/17 12:58:58
2chの程度の低い罵りあいは先に引いた方が勝ちだと思うんだぜ
38:デフォルトの名無しさん
08/01/17 13:12:55
じゃあ俺が先に引く
39:デフォルトの名無しさん
08/01/17 13:14:58
ざけんな俺の方が先に引く。
40:デフォルトの名無しさん
08/01/17 13:15:13
いや俺が先に弾く
41:デフォルトの名無しさん
08/01/17 13:16:25
これが初級ネット板クォリティ
42:デフォルトの名無しさん
08/01/17 13:34:44
>>37
ただ困ったことに、程度の低い罵り合いの多くは
「本人達は自分のレスが賢さの反映だと思っているから」続くんだよね。
俺は頭が良くて性格が悪い人間なんだ、そんな俺のレスは馬鹿の目から見れば
程度が低い罵りに見えるのだろう、でも本当は賢いから俺は言葉を巧みに操れるんだ俺にはわかる、ってね。
43:デフォルトの名無しさん
08/01/17 13:43:37
>>42
日本語で書き直してもらえませんか?
44:デフォルトの名無しさん
08/01/17 13:53:56
そのまま読めずにいたほうが幸せだよ。
都合の悪いものを避けようとする君の本能は、いま凄く正しく動いた。
45:デフォルトの名無しさん
08/01/17 13:55:21
>>43,44
が
>>42の例
46:デフォルトの名無しさん
08/01/17 13:57:04
めどくさがらずに書き直してもらえまんせか?
47:デフォルトの名無しさん
08/01/17 13:57:13
罵ってるようにはみえんが
48:デフォルトの名無しさん
08/01/17 14:02:15
むしろ、じゃれあってる
49:デフォルトの名無しさん
08/01/17 14:17:58
めんどぐざらずに書き直しらほうがいいと思います?
50:デフォルトの名無しさん
08/01/17 14:21:37
実にRubyスレらしい流れ
51:デフォルトの名無しさん
08/01/17 14:24:02
>>42
そういうことを考えないとrubyを覚えることはできないのでしょうか?
難しそうで残念です。
52:デフォルトの名無しさん
08/01/17 14:31:54
>42
最後の行が特に意味不明だ…
俺は…できる、俺にはわかる。って、自分のことが自分でわかるってなにそれw
53:デフォルトの名無しさん
08/01/17 14:41:06
>>52
おまえみたいなサル程度の脳じゃ理解できないんだろ
54:デフォルトの名無しさん
08/01/17 14:44:13
>>52
--yydebug というオプションをつけると、構文解析の過程が表示されます。
55:デフォルトの名無しさん
08/01/17 14:47:23
>>52
馬鹿が見ればこうなんだろうが実際はこうなんだ、という構図が、俺にはわかる、ってことだろ。
そもそも下の2行は、自分で一方的に自分の賢さを認めて完結しちゃってる自称おりこうさんの思考を
書いてるんだから、基本的に自己完結であるのは当然だ。
56:デフォルトの名無しさん
08/01/17 15:23:06
>>55
おまえがキモイのは分かったからw
57:デフォルトの名無しさん
08/01/17 15:45:27
いいかげんこのRubyスレらしい流れってのも邪魔くさいよな。
S/N悪くなるだけで。
本気で言い争いしてるんだったら氏んでくれ。
煽り合いで退屈を紛らわしているんだったら他の場所へ行かないかな。
58:デフォルトの名無しさん
08/01/17 16:00:33
>>57
そういうこと言うからいつまでも続くし、やめてもらえませんか?
59:デフォルトの名無しさん
08/01/17 16:14:08
結局、RFCがどうとかいうのは自慢だったんだなw
60:前スレ988
08/01/17 16:34:02
>>14エラーはなかったです。。。
61:デフォルトの名無しさん
08/01/17 16:37:18
>>59
kwsk
62:前スレ988現11
08/01/17 16:38:04
と見せかけて12と13のスレの間にこれいれるの忘れてました。
すいません。
# 最初の列の値を初期化する
for i in 1..other.length
dm[i] = [i * del, fill.flatten]
end
# 行列に値を入れる
for i in 1..other.length
for j in 1..self.length
63:デフォルトの名無しさん
08/01/17 16:48:04
>>11が何言ってるか解読できないのは俺がゆとりだから?
64:デフォルトの名無しさん
08/01/17 18:16:28
自分が関係ないなということを瞬時に判断できないのはまあゆとりだからかもしれん
大学の授業とかで専門的に学ぶような事柄だから
そもそも知らないって人が見ただけで理解できなくても桶
65:デフォルトの名無しさん
08/01/17 18:19:56
恐らく63は専門的なことが分からないのではなく、11の日本語そのものが理解出来ないと言ってるのだと思う
66:デフォルトの名無しさん
08/01/17 18:23:53
俺は分かったけど
たったひとつの専門タームが理解出来ないために
文章全体が意味不明のように感じるのはよくあること
67:デフォルトの名無しさん
08/01/17 18:26:21
英語長文や古文読解のセンター試験みたいなもんだな
68:デフォルトの名無しさん
08/01/17 18:26:39
$ hoge kakasi takasu
2
$ hoge takasu clinic
6
っていう結果が欲しいだけだろ
69:前スレ988現11
08/01/17 19:44:41
>>68さま
その通りに近いでございます。sagu sageだったら”1”ってゆー結果が得られますが”2”ってゆー結果にしたいです。
この場合だとeを置換してuにしますが、母音を扱うため2になるということです。
母音は必ず偶数文字目に出るとします。(sasasaはありえるが、asaはありえない)
おそらく僕がゆとり世代だからというのがすべての原因です。。。すいません。
70:前スレ936
08/01/18 00:00:43
>>>897 >>899
>Ruby関係なく、リソース開放などの処理するときはGCに依存しちゃダメだろwww
>明示的に書かないと・・・
>C#とかJavaとかでもそうだぜ?
>C#で言えば、Disposeみたいなの
すまん、おれがアホすぎる理由を教えてくれ。
Dispose なんか使わん。IDisposable 実装して、 usingでRAII だろ常考ということ?
71:デフォルトの名無しさん
08/01/18 04:48:18
下のコードをローカル環境で実行すると、必ず10桁で
某サーバにアップして実行すると、時々20桁になってしまいます。。。
ちなみにローカルとアップ先のサーバのRubyバージョンは1.8.5で同じです。
何故でしょうか?
cgi = CGI.new
cgi.out{sprintf("%010u", Time.now.to_s.hash)}
72:デフォルトの名無しさん
08/01/18 04:56:24
いいじゃん別に20桁でも
オブジェクトIDは10桁でなければならないって決まってるわけでもないし
73:71
08/01/18 04:56:52
あっ、今調べたらサーバのCPUがAthlon64でした。
これが原因でしょうか??
74:デフォルトの名無しさん
08/01/18 05:08:08
8進数
75:71
08/01/18 05:35:31
訳あって、10桁に揃えたいんです…
とりあえず、無理やりこんな感じで解決した事はしたのですが…
sprintf("%010u", [Time.now.to_s.hash].pack('L').unpack('L')[0])
76:デフォルトの名無しさん
08/01/18 07:12:17
二回実行されてんじゃないの?
77:デフォルトの名無しさん
08/01/18 08:35:00
String#hash再定義したら?
78:デフォルトの名無しさん
08/01/18 12:06:59
x86-64版rubyとみた
79:71
08/01/18 18:04:42
>>76
う〜ん、二回実行されている事はないと思うのですが…
>>77
とりあえず、>>75の方法で解決出来たので、これでやってみます。
>>78
そういうのがあるんですか。
もしそうならそれが原因でしょうね。
80:デフォルトの名無しさん
08/01/18 18:23:17
Time.now.to_s.hashが時折返す負数が問題ならば
sprintf("%010u", Time.now.to_s.hash % 10000000000)
のようにすれば一応は収まるような気がする。
81:デフォルトの名無しさん
08/01/18 19:12:19
ちょっと確認させてください。
正規表現スレかプログラム初心者で問う事かもしれないと、
思ったんですが特定の書籍の記述についての質問なので
こちらでさせてくだされ。
「オブジェクト指向スクリプト言語Ruby(まつもと氏/石塚氏 共著)」の
78ページと81ページにある
/\w\w\w+,?\s*(\w\w\w)\s*[\d:]+\s*(\d{4})/
最初の英数字三文字の一回以上の繰り返しのあとにカンマがあります。
これはメタ文字ですか?
それとも「+と?」と「+?」を書き分けるためのものですか?
82:デフォルトの名無しさん
08/01/18 19:32:52
>>81
メタ文字関係ない。まごうかたなき "," という文字。
メールヘッダなんかに使われる時刻文字列にマッチする正規表現だね。
"Fri, 18 Jan 2008 19:30:43 +0900"
みたいな文字列で、最初の部分に曜日があるんだけど、そこにマッチする。
83:デフォルトの名無しさん
08/01/18 20:14:23
むしろカンマの後の?がメタ文字だな。
84:デフォルトの名無しさん
08/01/18 20:21:56
>>82-83
つかえが取れました。感謝!
85:デフォルトの名無しさん
08/01/18 23:05:33
つかえとっちゃいかんだろw
86:11
08/01/19 00:47:43
わかりにくかったので・・・もう一度・・・
class String
def levenstein(other, ins=1, del=1, sub=1)
# ins,del,subは重みつきコスト
return nil if self.nil?
return nil if other.nil?
dm = [] # 距離行列
# 最初の行の値を初期化する
dm[0] = (0..self.length).collect { |i| i * ins }
fill = [0] * (self.length - 1)
# 最初の列の値を初期化する
for i in 1..other.length
dm[i] = [i * del, fill.flatten]
end
# 行列に値を入れる
for i in 1..other.length
for j in 1..self.length
87:11
08/01/19 00:48:21
dm[i][j] = [
dm[i-1][j-1] + (self[j-1] == other[i-1] ? 0 : sub),
dm[i][j-1] + ins,
dm[i-1][j] + del].min
end
end
#行列の最後の値が文字列間のレーベンシュタイン距離となる
dm[other.length][self.length]
end
u1 = gets
u2 = gets
yyy = u1.levenstein(u2)
puts yyy
#yyyが距離になります。
end
よろしくお願いします。
88:デフォルトの名無しさん
08/01/19 18:39:10
クッキーを設定するcgiをhtml中にimgタグで記述して
そのcgiを、htmlと同一サーバ内に置いてhtmlにアクセスした場合は
問題なくクッキーが設定されるのですが
cgiを別サーバに置いて、外部呼出しにした場合
Mozilla系のブラウザでは問題ないのですが、IEの場合クッキーが設定されません…
以下がクッキーを設定するコードです。
Cgi = CGI.new
cookie = CGI::Cookie::new({'name' => 'TEST', 'expires' => Time.now + 200})
Cgi.out("cookie" => cookie){''}
89:デフォルトの名無しさん
08/01/19 19:00:55
よくわかんねーけど
dm[i-1][j-1] + (self[j-1] == other[i-1] ? 0 : sub),
の行をどうにかすればいいような気がする
90:11
08/01/19 19:09:21
>>89さま
dm[i-1][j-1] + (self[j-1] == other[i-1] ? 0 : sub),
dm[i][j-1] + ins,
dm[i-1][j] + del
のところをいじれば良い・・・
多分sub.ins.delそれぞれがij行列の奇数要素で行われた場合
sub * g1
gi = gets
みたいにできればいいかなって思うんですが、、、
うまくかけません。。。
91:デフォルトの名無しさん
08/01/19 23:53:36
>88
Mozillaがセキュリティぶっちぎってるだけのような……
てゆーかXSSじみたことをさせようとしてるように見えるんだが
cgiを別サーバに置く理由は? 負荷とか実行権限ないとか?
92:デフォルトの名無しさん
08/01/20 00:08:33
クッキーは全くの別ドメインからは読めないよね
www.example.comとhoge.example.comならできるけど、www.example.comとwww.example.jpではダメ
前者でIEが動作しないってのはIEのクッキー設定で厳しくなってるだけのような気もするが
93:デフォルトの名無しさん
08/01/20 00:17:10
機種依存文字を含むファイル名のファイルを扱う方法ってありますか?
94:デフォルトの名無しさん
08/01/20 00:29:08
お着せの方法はないから自前で何か考えるしかないねえ
95:93
08/01/20 00:42:18
>>94
う〜ん、そうですか。
やっぱり機種依存文字を含んでる時点でもうよろしくないですよね。
なにかしらの回避策を考えてみます。どうもです。
96:デフォルトの名無しさん
08/01/20 00:53:34
機種に依存したスクリプトでいいじゃん
97:88
08/01/20 01:38:05
>>91
いや、別に悪意のある事をしようとはしてないです。
cgiを別サーバに置く理由は、ちょっと負荷が気になるので
メインのhtmlがあるサーバに置きたくないだけなんです。
>>92
一応、問題なく外部呼出しからクッキーが設定出来たFirefoxで見ると
クッキーのpathはcgiがあるサーバのものになってます。
もし下の様な場合
URLリンク(www.main.com) ←imgタグでcgiの呼び出しを記述した観覧用のhtmlがるURL
URLリンク(www.cgi.com) ←クッキーを設定するcgiのURL
"URLリンク(www.main.com)" にアクセスすると
Firefoxのクッキーのパスは "URLリンク(www.cgi.com)" になってました。
98:デフォルトの名無しさん
08/01/20 01:56:55
>>91
Mozzilaは他のドメインのクッキー上書きできるのか?w
99:デフォルトの名無しさん
08/01/20 07:08:35
>>97
「アクセスしたサイトからのクッキーのみ許可」が出来るブラウザって
結構あるし、自分はそれが出来るブラウザでは必ず設定してるけど、
そーゆー事する人には提供しなくてもいいサービスなの?
100:デフォルトの名無しさん
08/01/20 12:37:48
現在ruby.exeにスクリプトのパスを渡して実行しているのですが、
スクリプトをutf8で書いているため出力がutf8です。
スクリプト自体に変更を加えず、つまりruby.exeへの変数を弄くって出力を
utf8からShift_JISにすることは出来ないでしょうか?
宜しくお願いします _ _
101:デフォルトの名無しさん
08/01/20 13:04:42
Ruby1.9なら、LANGをja_JP.ShiftJIS系統にすれば
default_externalがうまいこと変更されるんじゃないかな。
102:デフォルトの名無しさん
08/01/20 13:06:19
>>101
>>7
103:デフォルトの名無しさん
08/01/20 13:08:23
>>100
難しいこと考えずに出力後にShift_JISに変換すれば用は足りると思われ
104:デフォルトの名無しさん
08/01/20 13:32:02
>>103
そんな方法があるのか? あるなら俺も知りたい
Windows環境だとShift-JIS以外の出力が文字化けするのが……
105:デフォルトの名無しさん
08/01/20 13:33:57
出力後->出力直前?
106:デフォルトの名無しさん
08/01/20 13:36:00
C:\>ruby -r 'nkf' -e "puts NKF.nkf('--euc','日本語です')"
ニ・ワク・ヌ、ケ
C:\>ruby -r 'nkf' -e "puts NKF.nkf('--euc','日本語です')" | nkf -s
日本語です
標準出力に関してはこういうことでは…
ファイルに書き出したのがShift_JIS以外だってのはファイル探して変換かけるとか
107:デフォルトの名無しさん
08/01/20 13:49:35
そういう時にこそIO.writeを書き換えるんだ
108:デフォルトの名無しさん
08/01/20 16:23:03
Structのvalueに対してmap! { |n| n[/\d+/}みたいなことをするにはどうしたらいいんでしょう?
#<struct
report="3件(3人)",
inheritor="1品",
comment="4件のコメントを読む">
上を下のようにしたいのですが。
#<struct
report="3",
inheritor="1",
comment="4">
109:デフォルトの名無しさん
08/01/20 17:05:52
dog = Struct.new("Dog", :name, :age)
class Struct::Dog
def map!(&block)
if block
size.times {|i| self[i] = block.call(self[i]) }
end
self
end
end
d = dog.new("taro", 9) #=> #<struct Struct::Dog name="taro", age=9>
d.map! {|m| m*2} #=> #<struct Struct::Dog name="tarotaro", age=18>
110:デフォルトの名無しさん
08/01/20 17:25:02
最近、StructがEnumerableだという事を初めて知った
dog = Struct.new("Dog", :name, :age)
d = dog.new("taro", 9) #=> #<struct Struct::Dog name="taro", age=9>
mapped = d.map {|m| m*2}
d = dog.new(*mapped) #=> #<struct Struct::Dog name="tarotaro", age=18>
111:デフォルトの名無しさん
08/01/20 17:39:01
>>99
今のIEは、アクセスしたサイトからのクッキー以外はデフォでブロックしますね
112:デフォルトの名無しさん
08/01/20 17:41:50
>>100-104
Windowsなら、UTF-8対応のターミナル使え
俺のお勧めは Poderosa
たぶん、puttyもいけるんじゃね?
113:デフォルトの名無しさん
08/01/20 17:57:23
業者乙
.NETの2.0入れないと動かないようなターミナルなんぞ問題外のさらに外
114:デフォルトの名無しさん
08/01/20 18:08:01
putty ってローカルで使えるの?
リモートでしか使ってない
115:デフォルトの名無しさん
08/01/20 18:18:11
>>113
.NET 2.0入れてないプログラマなんぞ問題外のさらに外
116:デフォルトの名無しさん
08/01/20 18:18:51
>>113
Poderosa 3 なら、.NET 1.0で動くよ
117:デフォルトの名無しさん
08/01/20 18:19:45
113は.Net2.0が入らない環境しか利用できないんだよ。
118:デフォルトの名無しさん
08/01/20 19:05:36
>>108
余計なお世話だけど
それらの値はStructに代入する前に数値型に直しておく方がいいと思う
119:108
08/01/20 19:13:48
>>109-110
ありがとうございます。勉強になりました。
120:デフォルトの名無しさん
08/01/20 19:44:50
Rubyist Magazine出張版 Ruby on Windows
URLリンク(www.amazon.co.jp)
ちょっと気になる
121:デフォルトの名無しさん
08/01/20 19:49:20
この人のるびま記事はすごく良かった
どの程度加筆されるかにもよるけど期待大
122:デフォルトの名無しさん
08/01/20 19:51:36
ちょっとまて、もう発売されてるみたいじゃないか・・・
漏れのバカバカバカ
123:デフォルトの名無しさん
08/01/20 20:01:01
立ち読みした限りでは「WindowsでRubyを使って楽をしたい」と考える人の最初の本として申し分ないように見える
載ってる例以外の事をしたいと考えたときに頼りになるかどうかはわからん
あとこれはどうでもいいんだが
def method_hoge arg
…
end
ってdefで引数カッコ省略の書き方をしてるのがどーにも性に合わん
124:デフォルトの名無しさん
08/01/20 20:02:43
>>120
> Javaや.NET CLRなどの膨大なソフトウエア資産を活用する方法まで
mjsk
125:デフォルトの名無しさん
08/01/20 20:03:28
JRubyとRuby.netか
126:デフォルトの名無しさん
08/01/20 20:15:59
>>124
URLリンク(book.mycom.co.jp)
> 第1回 Win32OLEことはじめ
> 第2回 Excel
> 第3回 ADODB
> 第4回 Outlook
> 弟5回 Web自動巡回
> 弟6回 Windowsアプリケーションの自動操作
> 弟7回 他の言語でのCOM
> 弟8回 WMI
> 弟9回 iTunes
> 弟10回 Exerb
> 弟11回 RubyCLR
> 弟12回 RjbとApache POI
> 弟13回 JRuby
5回目から弟になってるのはコピペ検知用の罠か何かか
127:デフォルトの名無しさん
08/01/20 20:31:21
弟に吹いた
Win32APIはあんまり書いてなさそうなのが残念だけど買っちゃおうかな
OLEとか情報集めるの大変だしね
128:デフォルトの名無しさん
08/01/20 21:06:13
目次見て俺でも書けるような気がしてきた
129:デフォルトの名無しさん
08/01/20 21:24:29
目次よりもサンプルスクリプト見たほうがいいな
130:デフォルトの名無しさん
08/01/20 22:06:51
インスタンス変数が設定されているかどうかを調べるために
class Object
def instance_variable_exist?(name)
self.instance_variables.include?(name)
end
end
としているんですけど、効率が悪いので、なんかもっといい方法あったら教えてください。
131:デフォルトの名無しさん
08/01/20 22:13:38
instance_variable_defined? 使えばいいんじゃない?
132:デフォルトの名無しさん
08/01/20 23:10:07
>129
そう思う奴のうち実際に書ける奴は半分以下
さらにそのうち本当に書く奴は1割以下
俺? もちろん最初の書ける奴、の上限で除外orz
133:デフォルトの名無しさん
08/01/20 23:10:33
上限てなんやorz
条件な
134:デフォルトの名無しさん
08/01/20 23:15:48
>>127
発売日に買って斜め読みした俺がコメント.
ExcelやOutlook,IEについては筆者セレクションによるメソッドやプロパティが
ちょろっと紹介されてる.ちょっと便利.
ただ,基本は限られた紙面に広範囲な情報を詰め込んでいて
個々のトピックについてはビックリするほどに紹介レベル.
ExerbRuntimeモジュールなんてメソッドすら載ってないよ.
でも,いつもexe化するのにしか使って無くて,そんなモジュールの存在を知らず
普通にdl/win32使ってexeのパス取得してた俺ショック.
WMIもPowershellの紹介とかで名前は聞いたことがあったし
デフォルトで実行パスにwbemが含まれているので気にはなっていたけど,使えるねこれ!
NICのIPアドレス取得するのにipconfig使ってて,一瞬,DOS窓が表示されるのがウザかったんだけど
WMIで解決しました.
上級者は必要ないかもしれないけど,初心者は買って損のない本.
135:88
08/01/20 23:40:34
>>99
おとなしく同一サーバにcgiを置く事にしました。
お騒がせしてすんまそん。
136:デフォルトの名無しさん
08/01/20 23:46:14
>>131
1.9からじゃないか?
137:デフォルトの名無しさん
08/01/20 23:59:07
>>136
1.8.6 から追加されてる
138:127
08/01/21 00:02:51
>>134
何という親切なコメント。ありがとね
そのあたりの知識も不足してる気がするし買うことにするよ
139:デフォルトの名無しさん
08/01/21 00:10:10
>>134
何という親切なコメント。ありがとね
そのあたりの知識も不足してる気がするし買うことにするよ
140:デフォルトの名無しさん
08/01/21 00:12:50
>>137
安定版という意味では変わらないか
141:デフォルトの名無しさん
08/01/21 00:41:00
>>137
ホントだすまん。
Refeでしか確認してなかったよ。
142:デフォルトの名無しさん
08/01/21 04:30:38
は!
143:デフォルトの名無しさん
08/01/21 04:40:53
503 対応してくれたみたいでありがとうございます><
144:デフォルトの名無しさん
08/01/21 09:10:19
>>131
そんなのあるんだ。それってどのバージョンから定義されているかわかりますか。
わしがもってるマニュアルには載ってなかったので。
145:デフォルトの名無しさん
08/01/21 16:14:08
1.8.6でこっそり追加だと思った
マニュアルには反映されてない可能性が
Emacs上でRubyスクリプト書いてる人はいる?
・rbファイルをruby-modeで読み込む
・普通に全部手書きする
・普通に別窓のコンソールでスクリプトを実行しエラーを目測
・普通に方向キー連打で該当行に到達
・普通に別起動のHTMLヘルプを見ながら修正
という、よく考えたらかなり無駄っぽい動きをしてる気がする俺をたしなめてくれ
146:デフォルトの名無しさん
08/01/21 16:43:12
>>145
めっ
147:デフォルトの名無しさん
08/01/21 17:10:38
> 普通に全部手書きする
Emacs自体に動的略語展開があるから、
一度読み込んだファイルに書いてある単語は2回書く必要はないかと
> 方向キー連打で該当行に到達
M-x goto-line
148:デフォルトの名無しさん
08/01/21 19:33:42
Rubyを使って大量のファイルに置換作業を加えたいんだけどどんなことを勉強すればいいですか?
149:デフォルトの名無しさん
08/01/21 19:46:23
>>148
それの期限を限りなく引き延ばすための技術や話術
普通に学んでる限りはそんなことをとりたてて聞いたりしないもんだ
聞かなきゃならないってことはRubyの基本やコンピュータの知識がなってないってことだから
150:デフォルトの名無しさん
08/01/21 19:51:43
>>148
すばらしいアイディアがあるよ
URLリンク(itpro.nikkeibp.co.jp)
151:デフォルトの名無しさん
08/01/21 20:03:08
>>148
入門書何冊かチェックして
テキストフィルタの話してるのを買って読めばいいよ
152:デフォルトの名無しさん
08/01/21 20:13:18
>>149
テキストエディタの正規表現を使って置換することはできるんですが、プログラミングに関してはパーです
>>150
ああ・・・でも変更を加えたいファイルはテキストベースなんです。
人間が簡単に読めるってのが売りのデータ形式なんで、データそのものを、62進数の文字列に変換 とかっていうのはいただけないです
>>151
わかりました
153:デフォルトの名無しさん
08/01/21 21:05:30
>>150
インデックスを使うっていうだけだよねこれ
154:デフォルトの名無しさん
08/01/21 21:25:14
>>153
もう一度読み返してみたら”それらをファイル名の集合体として別途管理する”って書いてあることに気付きました
155:デフォルトの名無しさん
08/01/21 21:32:54
FS(BTree系)+OSのディレクトリキャッシュで管理するか、
DBMSのテーブル(典型的にはBTree系)+DBMSのキャッシュで
管理するかの違いだけのような気がする
156:デフォルトの名無しさん
08/01/21 21:44:16
>>150
スラドで袋だたきされてる奴だろw
157:デフォルトの名無しさん
08/01/21 21:46:22
技術的には奇特人間大賞みたいなもんで別段問題ないっす
プレスリリースがアホっぽいので話題になってるだけ
158:デフォルトの名無しさん
08/01/21 21:52:33
まぁでも、初心者に勧めるようなもんじゃないな。
159:デフォルトの名無しさん
08/01/21 22:18:02
今ならPythonだな
160:デフォルトの名無しさん
08/01/21 22:21:27
スラドの関連ストーリーがLyee関係になってて
可哀想だった・・・・そこまでひどくはないと思うし・・・・・
161:デフォルトの名無しさん
08/01/21 22:48:06
Ruby検定がコンピュータベースで全国200個所で受験可能に − @IT
URLリンク(www.atmarkit.co.jp)
やったね!
162:デフォルトの名無しさん
08/01/21 22:50:03
松江詣でをする理由が無くなったな
163:デフォルトの名無しさん
08/01/21 22:58:17
Ruby検定なんてあったのか
そんなもん取ってなんの役に立つんだ?
164:デフォルトの名無しさん
08/01/21 23:02:39
そりゃー、おめー、あれだー、現行の幾つか前のバージョンの仕様ならちゃんと理解してた、つーことをだな
165:デフォルトの名無しさん
08/01/21 23:12:17
>>163
面接のときの話のネタになる、ということが言われております
166:デフォルトの名無しさん
08/01/21 23:26:29
とりあえずここは初心者スレだ
167:デフォルトの名無しさん
08/01/22 11:25:47
>>145
ruby-mode って組み込みクラスのメソッド補完とかできないの?
他のモードにはある C-c C-c での実行とか マニュアル表示とかも無理?
168:デフォルトの名無しさん
08/01/22 15:48:50
すみません教えてください。
自分のIPアドレスを知るためのhttpクライアントを作ろうとしています。
普通のページは .get できるのですが、CGIの返してくるものを取れません。
以下のコードです(URLは架空)。
require 'net/http'
Net::HTTP.version_1_2
Net::HTTP.start('URLリンク(YourIP.com)', 80) { |http|
response = http.get('/ip.cgi')
puts response.body
}
169:デフォルトの名無しさん
08/01/22 16:07:10
>>168
require 'open-uri'
html = open('URLリンク(YourIP.com)').read
puts html
open-uriで逆に面倒になることが事前にわかってる場合以外はopen-uri使い続けれ
上記でhtmlが空になる、あるいはopenでエラーが出る場合はCGIが悪い
170:デフォルトの名無しさん
08/01/22 18:14:32
>>156
URLキボンヌ
171:デフォルトの名無しさん
08/01/22 21:08:40
# 最近rubyの質問がすくねえな
>>168
まず、以下の点について答えよ
・そのCGIはお前が書いたモノかどうか
・http.post での結果
172:デフォルトの名無しさん
08/01/22 22:12:18
質問です。
Ruby 1.9以降で正規表現関係はどう変わりますか?
鬼車がどうこうというのは、あちこちで目にするのですが、
具体的な変更点が詳しく分かるサイトとかあれば教えてください。
173:デフォルトの名無しさん
08/01/22 22:50:45
質問です
あるディレクトリにある全てのファイルの中身を見て処理を行いたい場合の定石などありますでしょうか?
自分は
Dir.entries("ディレクトリ名") do |file|
File.open("ディレクトリ名" + file)
なんだかの処理
end
end
とかやっているのですが、いまいちです
Dirでディレクトリ内部のファイル一覧を取得するとどうもStringにしてくれるみたいですが、Fileをうまいこと取得できたりしないのでしょうか?
ついでにCやJavaでインクリメントする場合
value++
とか書きますよね
Rubyだと++はないようですが、どうするのがいいのでしょうか?
よろしくお願いいたします
174:デフォルトの名無しさん
08/01/22 22:52:23
value += 1 とするしかない
175:デフォルトの名無しさん
08/01/22 22:58:41
>>173
Dir.glob("./hoge/*").each do |path|
File.open(path){|f|
…
}
end
おそらくこれが一番人気
他のDirもPathnameの各メソッドもビミョーに使い勝手が悪い
インクリメントは作者がやだって言ってるので>>174以外の方法はないよ
176:デフォルトの名無しさん
08/01/22 23:08:39
>>174-175
さんくすです
助かりました
参考にさせてもらいます
value+=1はあったのですね
てっきり、+=も無いと思っていたのでvalue = value + 1と書いてましたw
177:デフォルトの名無しさん
08/01/23 00:58:08
>>170
>>150
スラッシュドット ジャパン | データをすべてファイル名扱いにして高速検索を実現?
URLリンク(slashdot.jp)
178:デフォルトの名無しさん
08/01/23 01:01:16
>>177
関連エントリー。アルファブロガーの反応
404 Blog Not Found:ニセ情報科学? - ISSEI
URLリンク(blog.livedoor.jp)
179:デフォルトの名無しさん
08/01/23 09:38:29
>>169
うまくいきました。
ありがとうございます。
>>171
cgiは、とりあえず既存のものです。
読むのがうまくいったので、送る方のcgiも自作するつもり。
.startでSocketErrorになっていました。
http.post は行っていません。
180:デフォルトの名無しさん
08/01/23 09:59:37
>>179
>.startでSocketErrorになっていました。
×Net::HTTP.start('URLリンク(YourIP.com)', 80) { |http|
○Net::HTTP.start('YourIP.com', 80) { |http|
181:デフォルトの名無しさん
08/01/23 10:18:36
そのアルファブロガー(笑)はどうでもいい
182:デフォルトの名無しさん
08/01/23 10:40:38
>>180
御指摘感謝
183:デフォルトの名無しさん
08/01/23 15:45:18
重複順列の中で各要素を必ず最低一つは含むものを生成するコードって効率よく書けます?
下のように書いてみたけど、全重複順列を生成して後でチェックするのはいまいちな感じ。
class Array
def each_perm(k)
if k == 1
each{|x| yield [x]}
else
each do |x|
each_perm(k-1) do |y|
yield [x]+y
end
end
end
end
end
k = 5; ary = [1,2,3]
ary.each_perm(k) do |x|
p x if x.uniq.size == ary.size
end
184:デフォルトの名無しさん
08/01/23 16:15:20
URLリンク(blade.nagaokaut.ac.jp)
irb> a = Array.new
irb> power(3, 5){|x| a.push([1,2,3].values_at(*x))}
irb> p a.size
243
3 個の異なった要素から重複を許して 5 個取り出す重複順列の総数は 3Π5 つまり 3^5 で 243
185:デフォルトの名無しさん
08/01/23 16:54:13
>>184
レスどうも。values_atって初めて見たかも。
やりたかったのは、各要素を最低一つを含むっていうので
[1,2,3]つから5つ取り出した順列だと
[1,1,1,2,3],[1,1,1,3,2],[1,1,2,1,3],,,
という感じのものでした。うーん、閃きそうで閃かない。
186:デフォルトの名無しさん
08/01/23 17:03:57
重複順列を全て生成してから不適なの弾くのがやっぱ素直なんじゃね?
187:デフォルトの名無しさん
08/01/23 17:51:04
>>177-178
そういえばファイルの保護ってファイル名に対してはかからないんだよね。
つまり、データをファイル名に使うことで・・壊れやすくなる。
ファイルサイズを0にするやつは、データを盗まれないようにする方法としては使えるね。
一旦デコードしないとコピーができないから。
企業のページでは
>次世代Web基盤技術
とか言ってるけど、なんでWebなんだろ。
データを取り扱うときに通常のファイル形式にしないといけないはずだが。
>独自のプログラムとデータ構造により、圧倒的なコストパフォーマンスを実現
・・・
ああ、コストパフォーマンスについてはそうかも。
DBMSを使うとそれにライセンス料を払う必要があるが、OS標準の機能なら追加料金がかからない。
・・・
フリーのDB使えばいいけど、遅いって話もなくもないし。
188:デフォルトの名無しさん
08/01/23 18:56:40
スレ違いを理解できない低脳は去ね
189:デフォルトの名無しさん
08/01/23 21:07:53
おい
リファレンスマニュアル検索できなくなってるんだけど
URLリンク(www.ruby-lang.org)
190:デフォルトの名無しさん
08/01/23 21:18:24
マニュアル本体をCGIやめて静的HTMLにしたって聞いたからその関係なんだろう
191:デフォルトの名無しさん
08/01/23 21:31:23
Ruby、かっこわるい
192:デフォルトの名無しさん
08/01/23 21:32:38
検索できないって終わってるなw
つかプログラミング言語の公式サイトが検索アプリもまともに作れないとか
193:デフォルトの名無しさん
08/01/23 21:34:22
e?
オヒサルで検索してる奴なんてこの世に存在するの?
194:デフォルトの名無しさん
08/01/23 21:40:20
ローカルで検索すればいいのにね。
195:デフォルトの名無しさん
08/01/23 21:40:58
Namazuとか使えば簡単にインデックス作れそうだけどな。
俺が暇になったときにまだ検索できないようなら作ってみよ
196:デフォルトの名無しさん
08/01/23 21:45:15
トップページには検索機能があるが、Radiantで管理してる部分だけの
対応みたいだな。
リファレンスはやっつけで静的HTML化したからカバーしてない(つーか
忘れてるだろ、おそらく)んだろうな。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5370日前に更新/271 KB
担当:undef