1 名前:デフォルトの名無しさん [2010/03/04(木) 11:00:57 ] プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。 ★注意★ Ruby 1.9.1 は初心者にはまだ時期早尚です。初心者には Ruby 1.8.7 を強くお勧めします。 (理由:現時点では有名ライブラリやアプリが 1.9.1 に完全には対応していないためです) 1.8.7 でも 1.9 系に導入された新機能のいくつかが利用可能なため、1.8.7 を習得すれば将来スムーズに 1.9 系に移行できるでしょう。 関連スレやURLは>>2-5 あたりを見てください。Ruby on Rails の質問は Webプログラミング板の Rails スレへ。 ■質問する人へ 質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。 ・モジュール名やエラーメッセージでググる ・マニュアルで引っかかったクラスの記述を探す www.ruby-lang.org/ja/man/ ・FAQを一応読む www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ 質問には以下を書くこと。へたくそな質問は再提出を要求される。 ・詳しい内容(「動きません」「うまくできません」では回答しようがない) ・エラーメッセージ(自力で訳さずなるべくそのままで) ・実行環境(OS名、Rubyのバージョン(ruby -v でわかる)) ・最終的にやりたいこと(もっとよい方法がある場合が多いので) 回答してくれた人には「ありがとう」のひとことをいってあげて。 ■回答する人へ 相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。 それができないならこないこと(だって初心者スレだもん)。 ・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
116 名前:111 mailto:sage [2010/03/08(月) 14:43:33 ] 調べてみたところ、LL系とコンパイラ系の両方1つづつ 覚えていると良いらしいので簡単だと言われている RUBYをやってみようと思ったのですが 実際どういう感じで使われているのかがよくわからなくて 質問させていただきました WEBアプリを作ることはまずないんですが >>115 さんのようなことができるならちょっと興味があります
117 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 14:50:22 ] >>116 やめとけ 君の考えているようなものではない
118 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:00:05 ] >>114 例外について。 あまり例外の階層構成については細かく考えられていない。 現在TypeErrorを返している一部はArgumentErrorを返すべき(逆だった かも)といった指摘も現在進行形で存在する。数学のほうの例外 体系もErrnoとは分けて作るような動きがあったかな。
119 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:05:13 ] >>117 使ってるの普通にWindowsだろうしな コマンドプロンプトの使用の概念から慣れていかないと RubyがLinuxやらCGIやらと親和性が強くて便利だと言われる理由は 「普段使ってるもの」をRubyスクリプトで直接パワーアップさせることができるから 普段からコンソール使ってコマンドラインプログラムを利用してるLinuxやCGIなんかの場合は Rubyで作ることができるものがそれそのものと同種のものだから、即取り入れることができる それこそ、覚えた日から即生活が豊かになる しかしWindowsは違う ごく一般的にはウィンドウアプリケーションじゃないとどうにもならん そして、それは「Rubyを使うべき分野」ではない(苦行の趣味に近い)
120 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:09:45 ] Windowsでプログラミングしたことない、、一度も。
121 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 15:51:30 ] 俺もWindowsはないな。MS-DOSはTurbo PascalとSmalltalk/VとModula-2ぐらいだな。
122 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:12:21 ] >>116 Rubyがそれほど簡単だとは思わないけど。
123 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:35:37 ] 簡単かどうかで言えばかなり簡単な部類 ただし、プログラミング初心者には難しい リアル師匠にあたる人がいればなんてことないが、これはどの言語でも同じか Perlは基本がわからないわけではないんだがなんともいえず挫折した、とかいような素養で充分なんだが それに該当するものをRuby単体独学で身につけるのは意外と辛いしRubyの役目かどうかもちと怪しい
124 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:40:59 ] 中学生に EPSON BASIC(中古・マニュアルのみ) → 大学で Perl4 → KENT CGI(笑) → うーんなんか違う という経緯をたどった俺には Ruby はどんぴしゃべったりで一生もの 「ちょっと遅いけどでも許す」ということを本当に口に出して言ったことをよく覚えている Ruby1.4 くらいだったかなあ
125 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:43:45 ] どんな顔か想像ついたw
126 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:44:39 ] ブラック会社みたいな物言いだな> 他の言語で基礎素養を身につけた方歓迎
127 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:48:07 ] >>126 めっちゃ平たく言うと完全初心者を歓待するためのドキュメント準備がない こんなとこでもいまだに適切な分野の人員不足が足引っ張ってる状態 書籍ならなんとかなりそうな気もするんだが、オンラインでもある程度あったほうがいいよね PerlとかPythonとかはnewbieを扱うための準備をかなり前からしてる Rubyはどっちかってと「わかってる人向け」で突っ走ってきたので
128 名前:111 mailto:sage [2010/03/08(月) 16:51:19 ] インストールで挫折した ネットも繋がないといけない?ようで気味悪いので削除しました 皆様ありがとうございました
129 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:53:59 ] よーしrubyのためにwindows消して ubuntuいれちゃうぞー
130 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 16:57:52 ] パパやめて!Windows消すぐらいならVMwareかVirtualBox使って!
131 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 17:01:47 ] もともと持ってないならまだしもわざわざ自分から捨てるような権利でもないな というかそのへんは本スレでやれ
132 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 18:34:28 ] Ruby が簡単かどうかは >>119 さんもが書いているいるように それまでの慣れや経験に依るだろうね Unix, Linuxを使って来てシェルスクリプト,sed, awk 等 使ってきた人間だと簡単に感じる 本一冊(hunt/thomas)通勤中読んでいたらすぐに簡単なものは書けるようになった 確かにターミナル使ったことない人にはわかりにくいだろう
133 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:09:23 ] つまり新しい言語に対応できない無能なおっさんが いきついた場所がRubyということですね
134 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 19:14:54 ] >>133 真面目にそんなこと言っているのだとしたら、そうとう恥ずかしいぞ。
135 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:32:51 ] 真面目じゃなくても恥ずかしいわw
136 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 20:36:12 ] 今時、小学生でもLinuxでサーバ構築できるというのに...
137 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 22:47:11 ] ここほど口だけ出来る奴が居座ってる初心者スレは無いよな。
138 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:07:40 ] そんなことを言っても出せないものは出してあげられませんよ
139 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:12:27 ] 逆に貧相なCMD.exeでもRubyで花を咲かせることができる windowsユーザーだってRuby使ってるぜ
140 名前:デフォルトの名無しさん mailto:sage [2010/03/08(月) 23:49:53 ] でも根本的に向いてない。 教祖自らウィンドウズ使ってないしねえ。 教祖と同じデビアンから入信してみるのがいいんじゃ? まあシェルでまずは挫折して逃げ出すと思うが。 pc11.2ch.net/test/read.cgi/linux/1267107714/ Debian GNU/Linux スレッド Ver. 63 pc11.2ch.net/test/read.cgi/linux/1154631461/ Debian原理主義者テラモエス
141 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:03:36 ] 逆に、WindowsでRubyをバリバリに使ってる人ってガチガチに独自の快適コンソール環境を構築してそうだよなあ。
142 名前:デフォルトの名無しさん [2010/03/09(火) 00:42:22 ] ある課題があって、それをRubyで解決したいのですが御知恵を。。。 課題というのは、仕事でつかってるIBM系のメインフレームのデータセット? という1レコード3Kbyte程度のバイナリファイルをFTPでおとしてきて 読み込み加工して出力し、またメインフレーム上に戻す(できれば)という ものです。 そのバイナリファイルとは別に、項目名と、その項目の値は何バイト目から 何バイトがPACだ、小数点以下は何桁だ、CHARだというレイアウトファイル なるものがあります。文字コードはEBCDICというものらしいです。 このままじゃデータをエクセルに落して、手作業でやらされる羽目になります。。。 どう料理していけば良いでしょう?
143 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:44:40 ] どう加工するかによるだろそりゃ。 バイナリファイルの扱い自体は別に困難じゃない。 unpackして適当に加工してまたpackすりゃいい。 問題はEBCDICの扱いになるかな。なんかライブラリあったかなあ?
144 名前:デフォルトの名無しさん [2010/03/09(火) 00:52:39 ] さっそくありがとうございます。 pack,unpackの扱いについては、このあたりで良いですか? ttp://www.ruby-lang.org/ja/man/html/pack_A5C6A5F3A5D7A5ECA1BCA5C8CAB8BBFACEF3.html
145 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 00:56:11 ] バイナリ列をバイナリのまま扱った経験がないとしたら茨の道と言わざるを得ないが Rubyはそのへんを助けるようなことはしない
146 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:04:49 ] COBOLとRubyって、すごい対比だなw 金融機関の人間だけど、そういう場合は必ずいったんRDBに入れたり最悪でもCSVかTSVに変換してるなぁ。 つまり汎用機→情報系用に変換→各種処理→戻し変換→汎用機というルート。 変換にはうちはF*TRANを使ってる。 iconvとかでもEBCDIC扱えるみたいね。 データセットを直接扱うなんて、 リスクが高すぎてうちでは絶対に許してくれない。
147 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:17:23 ] 質問に?が多すぎ。 バイナリ、とは言うが、実はASCIIの文字列かいな。 .txt の処理は、Rubyだとより柔軟にできる訳だが、今からでは、間に合わないでしょ。 SEDとか、AWKのスクリプトも書けないのか、それともそんなものも知らないのか。 おそらく、今から勉強しても間に合わないから、あなたの得意なエクセルで作業をスタート。 あとは、時間との勝負。 だな。
148 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:19:28 ] F*TRANって、FORTRAN? なんで伏字にするの?
149 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:24:45 ] FORTRANに嫉妬しているから。
150 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:33:02 ] >>148 www.bsc.fujitsu.com/services/ftran/
151 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:34:01 ] c#なら10行書けば済む処理だな
152 名前:149 mailto:sage [2010/03/09(火) 01:41:46 ] それは、知らんかった。 音(的には)P-TOSのなんとかに似ているね。
153 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 01:42:02 ] >>150 こんなのあるのか。笑ってしまった。
154 名前:デフォルトの名無しさん [2010/03/09(火) 02:31:05 ] >>145 まさにその茨の道を進もうとしてるようですよ。 >>147 正直よくわかんね!ってところだからですよ、ええ('A`) 学生の頃も本職になった今もC++で離散系のシミュレーションとかやりつつ時期によっては しょぼいエクセルの業務システム作りをやってますよ。(VBA嫌いなので得意じゃない) sed,awkはそんなものがあるのは知ってたけど,perlでやってました。 バイナリとはいいつつ、ファイルレイアウトを見ると間違いなくパック10進数といった類 の補足説明があるので文字だけってことはないようですね。 とまあそんな自己紹介はいいから、とりあえず明日明後日ともうちょっと下調べして出直 してくる。納期もあってないようなもんなのでまったりやりますよ。 >>146 手掛かりくれてありがとう。
155 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:01:13 ] >>114 freeze は(少なくとも組み込みや添付では)破壊的動作のメソッドの動作を禁止させるフラグ立て def hoge! raise "can't modify frozen Hoge" if self.frozen? ... end というメソッド定義に「自分でする」 破壊的動作や内部構造への再代入をされるとどっかに @foo||= なんかで残ってるインスタンス変数とかが 変更前のまま残ってて場合によっては食い違い動作の原因になりそうだとか そういうおそれがあるクラスに提供する ぶっちゃけこれ使わずに「お前が困る動作組み合わせは全部書いてあるからちゃんとマニュアル読め」でもいい マニュアル読まない人が(あるいはうっかりで)よくないタイミングで破壊的動作をしてしまっても 変更して欲しくないとタグ付けされたオブジェクトだったらメソッド動作の時点でエラー出して守ってあげよう、 そんな若さと渋さの間で揺れるナイス・サーティのアナタに贈る鼻歌みたいな応援歌
156 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:32:47 ] a = [ [ ] ] a.freeze a.frozen? #=> true a[0].frozen? #=> false なんだよな。 当然といえば当然なんだが。
157 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:36:24 ] >>156 それは a つまり Array の freeze メソッドの動作に依存する 配列中の全要素に freeze を適用するという動作にしても構わない(不便だとは思うが) Array#freeze がそういう「外の入れ物だけフリーズさせる」ような動作にたまたまなってるだけ freeze の実装自体はもっと柔軟に対処が可能
158 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:50:48 ] freeze は def hoge! raise_if_frozen … end とか def hoge! … end freeze_method :hoge! とかいう仕組みを作って簡易に利用できるほうがよかったと思う
159 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 12:58:03 ] freeze 自体が Ruby 文化とあまり適合しないと言われているから うまい構文糖や実装ポリシーが 熱心に研究されていないんじゃないかなあ
160 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:11:39 ] evil rubyたのしいです。
161 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:11:51 ] private や protected の動作がイマイチなのと根っこはたぶん一緒だよね
162 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:44:44 ] if hoge && fuga.size > 0 と if hoge && !fuga.empty? どっちがいい? どっちでもない別の表現がいい?
163 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 13:46:31 ] あと if fuga.size > 0 は unless fuga.empty? にした方がいいんだろうか? どれもお好きなようにっていう程度だろうか
164 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 14:07:25 ] >>162-163 字面が違うから意味が違う が、fuga が配列みたいなもんなら、俺は empty? の活用をまず考える empty? を使うことで否定要素が複数混じってしまうようならすっぱり諦めて size の比較とかにする そんな感じ あと配列なら Enumerable 由来の any? とか all? とかの利用も考えるといい
165 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:21:52 ] >>164 書き忘れてましたfugaはArrayインスタンスです 配列であれば162も163もそれぞれ動作は同じですよね?
166 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 16:51:22 ] なにを心配してるのかわからん sizeが整数や実数を返す可能性とか考えてる?
167 名前:162 mailto:sage [2010/03/09(火) 17:42:10 ] 心配しているわけじゃなく 意味が同じなら書き方としてどっちがRubyっぽいのかなと思って >>162 ,163で例に出した形の文は今まで前者で書いてたんですけど empty?を使う方がいいという意見を別のところでも見たので。 特に>>162 の方は否定(!)をつけてまでempty?にするのがいいのかどうかってことです
168 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 17:49:23 ] ? を使う述語があるならそっちのほうがいいという話にはどうしてもなるな !foo.empty? みたいなのにはうんざりしてるのか、 ユーザーの作るライブラリでは相反する述語がセットで定義されてることも多い && などで繋ぐ場合は !foo.empty? みたいな記述はけっこう容認されてる雰囲気 if !foo.empty? だけだったら unless foo.empty? 使えという話になるんだけど
169 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 18:26:00 ] >>162 fuga.size > 0 より断然 fuga.empty? をお勧めします。 理由は、fuga.empty? はまさに「空かどうか」を調べるメソッドであり、やりたいことを明確に示しているからです。 これに対し、fuga.size > 0 は「サイズが0より大きいか」を表しており、「空かどうか」を直接表しているわけではありません。 つまり、fuga.size > 0 より fuga.empty? のほうがより抽象度の高い記述になっています。 なお Ruby では .empty? のほうが若干ですが動作速度が速いはずです。
170 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:01:57 ] 「要素があるか」を調べたいのに「空か」を調べてさらに加えて否定まで付けなきゃならんのは如何なものかってことじゃろ
171 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:35:09 ] だから標準で all? とか any? とかあるって それで不足ならメソッドに掃き出すことを厭ってはならね
172 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:41:12 ] unlessがあるんだから使おう、と思うか、他の言語と同じようにifで書こう、と思うか、は 微妙なところだな。自分の場合、何年かの周期でふらふらしてる。
173 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:42:39 ] メソッドフル活用派とプリミティブ派のたたかいはまだつづく
174 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:44:37 ] Pythonスレ 社会人が多く、大人の発言 初心者に優しい Rubyスレ キチガイ、偏執狂、厨房の巣窟
175 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:49:56 ] 要素の数が0以外なら真を返す、みたいなメソッドがないことが問題をややこしくしてる 本当はこのへんは対称性があってもいい(なくてもいいが) うまいメソッド名が思いつかなかったっぽい雰囲気はあるが
176 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 19:56:30 ] >>170 (誤) さらに加えて (正) かてて加えて
177 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:05:28 ] any? はよいんだけど、 [ nil ].any? #=> false なので 要素が1つでもあるか、という判定としては万能ではないかもなー。
178 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:11:51 ] 万能ではないも何も > 要素の数が0以外なら真を返す、みたいなメソッドがない という話が既に
179 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 20:18:35 ] def hage? … end def fusa? !hage end みたいなメソッド定義はよく見る empty? も時流に乗るべきだとは思う
180 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:24:10 ] 富士通御謹製エフトランを知らん奴が意外と多いんだな 汎用機、オフコンを知らん世代が増えて来たったことだな z/OSで仕事してたころはデータセットをFTPのBINでダウンロードして shift-JISに変換とかよくやってたぜ
181 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:33:53 ] 懐古厨乙
182 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:37:02 ] >>181 レスしたのお前だけだぞ
183 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:41:39 ] おっさん多いなこのスレ。。
184 名前:デフォルトの名無しさん mailto:sage [2010/03/09(火) 22:51:59 ] うんにゃ、知らない奴はレスしないだけ バックグラウンドがたまたま見えただけに過ぎない
185 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 04:22:42 ] メソッドと変数が見分けがにくいな
186 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:11:00 ] ローカル変数のように見えて実はメソッド、というのはままある。
187 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 09:19:08 ] 「値は必ず確固としたオブジェクト」なので、メソッドだろうがローカル変数だろうが 値を返すキーワードが実際は何でできてるのかは使用者からは区別する必要ないよねというポリシーがある mes(foo) としたとき、foo が変数なのかメソッドなのかは実際どうでもいい foo という名前が解決されてその結果返されるオブジェクトだけが重要 代入が文脈依存なのはそれなりに面倒 selfの有無で同じ名前を2回使い分けられるということでもあるが
188 名前:デフォルトの名無しさん [2010/03/10(水) 09:26:35 ] さすがにそれはどうでもよくないだろー local_var()もできないんだし
189 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:01:42 ] 問題になる状況自体が問題だと思うぞ どういうネーミングだよ
190 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:10:12 ] めっちゃプリミティブな名前のインスタンスメソッドを作って、なおかつローカル変数もそのままの名前である場合 uri とか
191 名前:デフォルトの名無しさん [2010/03/10(水) 10:34:48 ] 下記コピペの拡散、お願いします! -- ここから -- 欠陥だらけの悪法、民主党が準備を進めている「子ども手当」がまもなく国会を通過する見込みです。 そこで、この法案に対するクレームを直接政府に届けて、少しでも本法案を阻止できるよう動きませんか!? クレーム先:www.cao.go.jp/sasshin/hatomimi/re_hato/uketsuke.html ハトミミ「国民の声」 受付窓口 の「■ 一般受付窓口 【おかしなルール(規制・制度)】」に、「基準や要件の見直し」として、本件に関する 抗議をお願いします。実名とメールアドレスが必要となります。○制度の所管省庁 は、厚生労働省です。 なぜ本法案がまずいのか?子ども手当支給対象者、民主党支持者もじっくり考えてみてください。 【子供手当て驚愕の真実】 www.youtube.com/watch?v=Y4wuKv8ExeM&feature=related 驚愕の子供手当て 5959goc.iza.ne.jp/blog/entry/1475880/ 2010/3/10付の中日新聞 up3.viploader.net/pic/src/viploader1186653.jpg viploader.net/pic/src/viploader1186654.jpg 要件をまとめると、 「外国籍の人間も支給対象」「海外在住の日本人は支給対象外」「養子も支給対象」「財源が赤字国債」 「子どもが外国にいても支給対象」「子どもの存在証明として、法的な力を持つ手段がない」 となります。これにより、以下のことが考えられます。 1. この手当目的に、日本より経済状態が低い外国において不当な養子縁組を作るケースが激増する。 2. この手当目的に、日本にやってくる外国人(特に中国人)が激増する。 3. なによりも、負担は将来の子ども達が背負わなければならない。 国会答弁にて、政府も設計に難があるのは認めていますが、今後検討するという理由で、この欠陥を そのまま推し進めようとしています。まだ諦めるのは早いです。できる限りの手を尽くしましょう!! -- ここまで --
192 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:57:01 ] スレ違い
193 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 10:58:59 ] >>192 レスしたのお前だけだぞ
194 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 13:02:57 ] >>191 民主は売国政党だからな
195 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:09:34 ] 初心者は1.8.7をインストールすればいいんでしょうか?
196 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:36:37 ] はい、そうです。
197 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 17:37:07 ] はい Windowsならarton.hp.infoseek.co.jp/indexj.html ただしコマンドプロンプトの知識がどうしても必要
198 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:11:43 ] def method1(x) return true if (0...1000).include?(x) return true if (2000...3000).include?(x) return true if (4000...5000).include?(x) return false end --- def initialize @arr = [] for i in 0...1000 @arr.push(i) end for i in 2000...3000 @arr.push(i) end for i in 4000...5000 @arr.push(i) end def method2(x) return @arr.include?(x) end 上のmethod1とmethod2をそれぞれ呼び出したとき、 結果は変わらないと思うんですが、処理速度に違いは出ますか?
199 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 18:49:57 ] def method3(i) case i when 0...1000, 2000...3000, 4000...5000 then true else false end end ほんとうに整数ならこれが速くてわかりやすい 整数なのならわざわざ配列作る必要はない
200 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:22:30 ] int x=1000; for(int i=0;i<=x;x*i) { }
201 名前:デフォルトの名無しさん [2010/03/10(水) 19:40:05 ] (0...1000).include?(x) は 0<=x && x<1000 と同じだけど (0...1000).to_a.include?(x) は配列の要素を一つずつ比較するので当然遅くなる
202 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 19:48:12 ] 処理が遅いってどういうとき遅いの?
203 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:05:01 ] >>202 実際に遅いかどうかプログラム作って確かめてから考えたほうがいい 机上で遅そうだと思っても意外と許容範囲内であることは多い
204 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:09:02 ] .NETで作ったdllは参照できますか?
205 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:16:00 ] dll <-> COM <-> Ruby
206 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:18:58 ] へー、COMなら参照できるのか どういう原理なんだ?
207 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 20:38:42 ] COM Ruby でぐぐると…わあ微妙
208 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:27:35 ] pause(2) に相当するメソッドでないんですかね。 とりあえずKernel.#sleepによる無限スリープで代用していますが > sleep(sec = 0) -> Integer > sec が省略されたり 0 を指定した場合、他スレッドからの Thread#run > などで明示的に起こさない限り永久にスリープします。 sleep(0) してもすぐ戻ってきやがる。 マニュアルと実際の挙動が違うのはなぜ? ちなみに引数を省略した場合は仕様通りなんですけど。
209 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:33:11 ] pause(2)ってサスペンドの時に発行される奴だっけ? Process.kill :STOP, $$ じゃだめですかね?
210 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:34:53 ] >>209 ああ、それいいかもです。 ところでKernel.#sleepの挙動がマニュアルと異なるのが気になりますw sleep(0) ですぐリターンするのは何故でしょう??
211 名前:デフォルトの名無しさん mailto:sage [2010/03/10(水) 22:38:10 ] まあ個人的にはただしい挙動だとは思いますが。 シェルから sleep 3 を実行すると0秒後に復帰しますし、永久にスリープはしませんね。はい。
212 名前:198 mailto:sage [2010/03/11(木) 00:38:23 ] みなさん、ありがとうございます。 method1の代わりには、ご提示くださったmethod3が確かに良さそうですね 0...1000等はデータ的な数値(整数)で、頻繁に比較するのですが、 データ専用のクラスに数値の配列とmethod2を定義して呼び出し側のクラスから参照して比較したほうが、 呼び出し側のクラス内に直接method1を書くよりも記述のまとまりとしては良いと思ったんです かと言って、データのクラスにmethod1や3のような記述をしても、 データを管理しているイメージはないですよね
213 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 00:58:39 ] www.ruby-lang.org/ja/man/html/_C1C8A4DFB9FEA4DFB4D8BFF4.html ここには0の場合永久スリープとは書いてないな。 RubySpecには it "pauses execution indefinitely if not given a duration" (引数がないなら無限に止まる) はあるけど0を指定した場合の仕様は書いてない。 github.com/rubyspec/rubyspec/blob/master/core/kernel/sleep_spec.rb でもって、るりま doc.okkez.net/static/187/class/Kernel.html には0だと永久スリープとある。 るりまの間違いだろうか。
214 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:02:12 ] >>212 え、なにそれ class HogeDataRange def include?(x) case x when 0..1000, 2000...3000 then true else false end end end puts "13は含まれてるよー" if HogeDataRange.new.include?(13) とかやる気なの?
215 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:24:00 ] Rubyでできないことって何?
216 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:26:47 ] >>215 あなたができそうだと思っているようなことは全てうまく行えない と答えるのが一番実態に近いと思うん 説明してだいたいをわかってもらえるような人はそういう聞き方しないので
217 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 01:33:05 ] そっか
218 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 02:40:42 ] ものそい他人任せだが、他の初心者にやさしい「見た目わかりやすい」言語を学んでからだと Rubyのような言語の立ち位置がよく理解できるかと思う 最初からRubyだけ与えられている状態はけっこう不幸だ だから大学1年の授業にRubyを使うとかいうのは俺はあまりいいと思わん
219 名前:212 mailto:sage [2010/03/11(木) 02:53:01 ] >>214 そんな感じのをやる気なのですが
220 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 04:49:39 ] pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=%B5%D5%B0%FA%A4%ADRuby%2FTk ここの一つ目のサンプルコードをコピペして実行したのですがエラーになってしまいます それとサンプルのVisualnovelも他のrbファイルを取り込むところで 見つけられないらしくエラーが出てしまいます requireをしないコードは普通に実行できます それと実行はRDEでやっています Pathはbinが環境変数のところで通っています 何がいけないんでしょうか? XPsp3 Ruby1.8.7 RDE1.1.1.1 C:/DOCUME~1/***/LOCALS~1/Temp/rbF.tmp:1:in `require': no such file to load -- tk (LoadError) from C:/DOCUME~1/***/LOCALS~1/Temp/rbF.tmp:1 Complete(1)
221 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 06:08:59 ] tcl入れてないんじゃね?
222 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 10:16:02 ] そのRuby自体が、tkをサポートしてないRubyに見える
223 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 11:27:44 ] net/httpライブラリでデフォルトのリクエストヘッダを設定する賢い方法ない? http.rbのHTTPGenericRequest#initializeを直に書き換えるのは気持ち悪いよな
224 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 11:44:58 ] そのような動作をするクラスやメソッドを別途作る net/http そのものを弄ることは推奨されない 固定の HTTP ヘッダが必要なら、固定の HTTP ヘッダを追加して Net::HTTP オブジェクトを作るメソッドを作る
225 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 11:46:51 ] 手順的に不正確だった > 固定の HTTP ヘッダを追加して Net::HTTP オブジェクトを作るメソッドを作る は Net::HTTP オブジェクトを作って固定の HTTP ヘッダを追加して返すメソッドを作る
226 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 11:57:11 ] そこまで書くなら Net::HTTP オブジェクト自体はヘッダのデータ持たないと思うにゃん
227 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 12:16:18 ] よーわからんがこういうの? require 'net/http' # Net::HTTP.version_1_2 # 1.8.7では既にtrue def http_get(uri, header={}) Net::HTTP.start(uri.host, uri.port) do |http| req = Net::HTTP::Get.new(uri.request_uri) header.each_pair{|k, v| req[k] = v} return http.request(req) end end uri = URI.parse('www.ruby-lang.org/ ') p http_get(uri, {'Accept-Language' => 'ja'}).response['location'] p http_get(uri, {'Accept-Language' => 'en'}).response['location']
228 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 12:19:50 ] /aaa\/bbb/ という正規表現文字列にマッチする正規表現というのはどう書けばいいんでしょうか。 \/.*?\/ と書いて、中の\/にマッチしないように \/[^\\\/]*?\/ としてもダメでした。
229 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 12:37:15 ] irb> Regexp.new(Regexp.quote("/aaa\\/bbb/")) =~ "/aaa\\/bbb/" 0 irb> Regexp.new(Regexp.quote("/aaa\\/bbb/")) /\/aaa\\\/bbb\// irb> p "/aaa\\/bbb/".scan(/\/aaa\\\/bbb\//) ["/aaa\\/bbb/"] nil irb> p "/aaa\\/bbb/".scan(/\/.+?\\\/.+?\//) ["/aaa\\/bbb/"] どこまで汎用になればいい? 本当にマッチさせたいものはなに?
230 名前:220 mailto:sage [2010/03/11(木) 12:41:00 ] jp.rubyist.net/magazine/?0011-CGIProgrammingForRubyBeginners-2#l2 ここに書いてある通り、One clickインストーラーをインストールしたので tkは自動で入っているらしいのですが tk.rbで検索してもHDD内のどこにもなかったんですが やっぱりインストールされていないということなのでしょうか?
231 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 12:53:06 ] >>230 OneClickInstallerを使って1.8.7になるはずがない あれは1.8.6しか存在しない 君が使ったのはRubyInstallerで、これはtkライブラリは含まない Windowsでtkライブラリを使いたいのなら>>6 のActiveScriptRubyを使うべき これならActiveTclが別途入ってればなんとかなる 余談だけど > 更新日時:2005/11/16 21:36:46 5年も前の記事をほいほい参考にすべきではない
232 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:47:54 ] >>224-227 Thanks! やっぱソコソコ手間かかるか 目的を正直に白状すると,デフォルトのUAがアレなので 常時ナチュラルなUAでライブラリを使用したいだけなんだよね 俺仕様ってことで推奨されない方法で行きます
233 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:53:49 ] >>228 str = "hoge/aaa\/bbb/fuga" re = /\/[^\/]++\/[^\/]++\// p str.slice(re) #=> "/aaa/bbb/"
234 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 13:59:46 ] >>232 Net::HTTP を直接使用することは極力避けたほうがいい(第一面倒だ) 自作のスクリプトで何度も使うというのならそのようなライブラリを自作するチャンス 俺は wget を定義して require 'orelib/wget' してしばらく使い回してたぞ
235 名前:232 mailto:sage [2010/03/11(木) 14:15:56 ] >>234 >極力避けたほうがいい それはどうして? net/httpのAPIは結構気に入ってるんだけど コネクションがスレッドセーフじゃないとか Errno系の例外が不親切とかそこら辺?
236 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 14:28:03 ] Net::HTTP は抽象度がわりと低いほうだからじゃないでしょうかぬ システム的な問題ではないと推測
237 名前:220 mailto:sage [2010/03/11(木) 15:25:24 ] >>231 仰る通り単体のRubyを入れていたようです oldと書いていたので新しいもののほうがいいと思って そっちをダウンロードしてしまったみたいです ActiveRubyをダウンロード gemのアップグレード この時点で試しに require "tk" したけどエラー、tcltklibbなどtk関連のファイルがあるのに開けないみたい >これならActiveTclが別途入ってればなんとかなる この一文がなければここで挫折してました そしていろいろぐぐっているとVisualuRubyはすでに入っているようなので こちらでGUIを作りたいと思います ありがとうございました
238 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 16:51:12 ] すみません。お尋ねします。 ファイル上書き確認のコードを書いているのですが if File.exist?(outfile) print "#{outfile} は存在しています。上書きしますか ? (y/n): " answer = STDIN.gets if /y/i !~ answer exit; end end 問題ないときもあるのですが、状況によっては(その状況が いまいちよく分からないのですが)printが実行される前に STDIN.getsに入って、何も表示されないまま待ち受け状態に なってしまいます。printの対象を事前にflush(?)するには どうしたら良いのでしょうか?
239 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:08:07 ] >>213 あんまりよくわからんなりにソースを読んで見たところ(Windows版Ruby1.8.7だとして) sleep は引数が無いなら WinapiのSleep(INFINITE)で無限に待つみたいで 引数があるなら Winsockのselectっていうのを呼んでた selectはタイムアウト0秒だとすぐに帰って来るみたいなので sleep(0) だと sleep() とは違ってすぐに帰ってくるようだ るりまが間違ってるんじゃないだろうか? あんまり自信があるわけじゃないので だれか詳しい人、正確な説明よろしく
240 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:08:27 ] 自分で答言ってる if File.exist?(outfile) print "#{outfile} は存在しています。上書きしますか ? (y/[n]): " $stdout.flush exit if $stdin.gets =~ /\Ay/i end
241 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 17:09:19 ] >>238 flushって言葉を知ってるなら IOのインスタンスでありprint等の出力先である$stdoutにそれをすればいい と言えばわかるんじゃないかな
242 名前:238 mailto:sage [2010/03/11(木) 17:25:47 ] >>240 , 241 バッチリ動きました。ありがとうございました。 情けないことに$stdinの方をflushして 動かんなー、と悩んでました・・・。
243 名前:220 mailto:sage [2010/03/11(木) 18:02:05 ] tkの方が解説サイトや機能が多いので TCLフォルダにActiveTCL入れてみたけど実行するとエラーになる いろんなサイトみて環境変数にパスもちゃんと入れたのに TCL_LIBRARY TKL_LIBRARY INCLUDE LIBなど 実行するとここを読みに行ってエラー /Ruby/lib/ruby/1.8/i386-mswin32 ここにもActiveRuby入れたときのTCLがあるのになぜエラー? もう疲れたよ・・・
244 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:11:21 ] ActiveScriptRuby(ActiveRubyというものは存在しないしこう表現してもいけない)は デフォルトで C:\Program Files\ruby-1.8 にインストールするはずだが C:\Ruby にインストールされるのは RubyInstaller の Ruby
245 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:18:22 ] RubyInstallerをアンインストールしなかったのか 予想外だ というかRubyでGUIなんかわざわざやろうという人はもっと熟練して賢いもんだと思ってた
246 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:24:04 ] やはりTkへのアクセスの存在は隠したほうがいいのかもしれない もう応対がめんどくさすぎる デフォルトOFFのRubyInstallerの判断は賢い …正式版じゃないからかもしれないが どうしてもTkに処理を渡したいとき用のライブラリであって、 Rubyでウィンドウを作るためにあるわけじゃない なんでRubyでウィンドウアプリケーションを作ろうと考えるのかもう全く理解できない
247 名前:220 mailto:sage [2010/03/11(木) 18:32:29 ] 簡単なのはRubyと聞いたのでやろうと思ったんだけど まさかインストールするだけで2日かかるなんて
248 名前:220 mailto:sage [2010/03/11(木) 18:35:42 ] >>244 空白開いてるといけないとかどこかで見たから デフォルト変えてD;\直下にインストールしただけ エラー表示されるときのパスもちゃんとインストールされた 場所のTCLを参照しているし、でもエラーが出る RubyInstallerはActivescriptRubyを入れる前に ちゃんとアインインストールしました 残ったフォルダも直接削除しましたし
249 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:38:28 ] >>247 簡単だよ ただ、OS操作とコマンドライン文化に不慣れなプログラミング初心者が独学でやっても簡単だと言った人がいたなら 俺が許可するのでグーで殴れグーで
250 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:40:00 ] >>249 スレのテンプレすら読めない人も追加で
251 名前:220 mailto:sage [2010/03/11(木) 18:46:47 ] >>246 >なんでRubyでウィンドウアプリケーションを作ろうと考えるのかもう全く理解できない ここを見たので、この通りやろうとして躓きました jp.rubyist.net/magazine/?0002-FirstProgramming 逆になぜ作ってはだめなのか私にはわかりません そういった説明もないですし
252 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:48:50 ] >>250 そだな、>>1 の注意書きとか読めてないような人にはたぶん無理だな
253 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 18:51:41 ] Rubyを使ってる人は程度が低いので、Ruby以外の知識が要求されるGUIプログラミングを否定しようとします そういった人に騙されないようにしましょう
254 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:00:11 ] >>253 今のお前恐ろしくつまんないんだけど…
255 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:05:13 ] いや、Rubyとかじゃなく、GUIに関するドキュメント少なすぎるだけだと思う。 LinuxでGTKプログラミングやろうとすると多くの人が挫折するし。
256 名前:220 mailto:sage [2010/03/11(木) 19:06:06 ] エラー内容 D:/Ruby/lib/ruby/1.8/i386-mswin32/tcltklib.so: tcltklib: fail to open tcl_dll (LoadError) from D:/Ruby/lib/ruby/1.8/tk.rb:6 Complete(1) ソースコード require "tk" Tk.mainloop xpsp3で以下をダウンロード ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub ActiveTcl8.5.8.1.291945-win32-ix86-threaded.exe 参考サイト arton.hp.infoseek.co.jp/indexj.html www.db.is.kyushu-u.ac.jp/rinkou/ruby/activescriptrubyinstallwindows.html lldev.jp/ruby/tips/ruby_tk_install.html など・・ こんな感じです
257 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:27:32 ] 環境変数が設定できてないか参照できていないように見える コマンドプロンプトから C:\>echo %TK_LIBRARY% C:\Tcl\lib\tk8.4 C:\>echo %TCL_LIBRARY% C:\Tcl\lib\tcl8.4 C:\>ruby -e "require 'tk'" (何もエラーが出ないまま終了) どうせ RDE がなんかしてるんだろうと思う
258 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:29:51 ] Ruby と Tk をインストールしてから一度も RDE を再起動してない場合はこうなるな
259 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 19:43:46 ] RubyもTclも入ってない環境だったので Windows 7 Ultimate 64-bit で試してみた 1. ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub をインストール 2. ActiveTcl8.5.8.1.291945-win32-ix86-threaded.exe をインストール (インストーラは管理者として実行) > cd "C:\Program Files (x86)\ruby-1.8\bin" > irb irb(main):001:0> require 'tk' => true irb(main):002:0> Tk.mainloop() # ここでTcl/Tkのウインドウが表示される => true ウインドウを出すところまでは普通に動くね
260 名前:220 mailto:sage [2010/03/11(木) 19:56:49 ] >>257 全く同じ結果でエラーも出ませんでした もしやと思って、test.rbをdblclickしたら普通に起動しました ruby consoleで >test.rbとやってもフォームが表示されました >>258 再起動は何度もしましたが同じ結果でした >>259 そのTCLはActiveScriptRubyに入っているTCLですか? それとも別途インストールしたほうのTCLでしょうか? どこかのサイトにRubyが参照しているライブラリのディレクトリを表示する コマンドが書かれていたんですけど、閉じてしまってわからなくなった
261 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 20:00:39 ] 詰まる初心者の9割はRDE使ってるよな なんなの
262 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 20:12:21 ] >>261 誘蛾灯みたいなもんだと思う コマンドプロンプト上から ruby -e "require 'tk'; Tk.mainloop" を実行してウィンドウが出るのに RDE のエディタ部に require 'tk';Tk.mainloop と書いて F5 押してエラーログが出るなら RDE の問題
263 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 20:58:57 ] zipとrarを回答する短いプログラムを作ろうと思っているんだけど、 OSのコマンドを使わずに作りたい できればwindowsとlinuxのどっちでも動くようにしたい 教えてエロい人!!
264 名前:220 mailto:sage [2010/03/11(木) 21:01:03 ] 初心者は蛾扱いか プログラマってこういう人間ばっかりか
265 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:05:01 ] >>263 ソース読んでそういうライブラリ作るとか。 tarは自分で作ったことあるよ。
266 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:10:03 ] 正直RDEというだけで話聞く気9割減
267 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:13:10 ] >>264 1〜2日くらいしか考えてないんだろ そんくらいで怒るなよ みんな親切にしてるじゃないか
268 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:16:51 ] >>263 コマンドじゃなければいいだけなのならほぼ全てのスクリプト言語でできるぞ その言語環境がインストールされていることが前提だが というかシェルに展開を任すような処理をしてる言語を俺は知らない
269 名前:263 mailto:sage [2010/03/11(木) 21:18:06 ] >>265 tarを解凍するコードをRubyで書くのって、面倒じゃないんですか? Rubyの文法がまだ分からないんでorz 頑張って作ってくれと頼まれたもので..
270 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:21:00 ] >>269 いやtarの展開だけなら数百行でおk。 アーカイブに追加するのは、ちゃんとテストしないと恐ろしいのでやめた。 面倒なら外部コマンドに投げるのが楽。
271 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:25:18 ] >>266 Rubyを知らない人間がRDEを使うのは嫌われる Ruby on RailsはRubyとは実質無関係なので他所で Ruby1.9.1はとりあえず初心者は使うな RubyInstallerはインストール後がめんどくさいから使うな Rubyで関数と言って教える何かがあったらそいつから即手を切れ こんなもん? >>269 それは 「ZIPとTARの仕様構造を自力で調べてそれを展開するようなプログラムを作ることで勉強しろ」 という意味だろうから話がちょっと違う Rubyは(少なくとも1.8は)いわゆる文字列とバイナリ列は同じなので ○バイト目から△バイト目までをどうにかする、という処理は普通に書ける もし「外部コマンドがインストールされてないとZip用ライブラリやTar用ライブラリが動作しないのではないか」 と思っているのなら、そんなことはない 普通にインストールされていればRubyは両者をそれこそ3行くらいで展開する
272 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:27:13 ] あ、Zipってそっちか それはrubygemからの追加インストールがいるな
273 名前:263 mailto:sage [2010/03/11(木) 21:27:41 ] >>268 zipを解凍するライブラリーはrubyにもあると思いますが、 rarはライセンスのせいでライブラリーが・・・と思ったので >>270 さすがに、制限時間があるなかで「Rubyの文法 + 解凍のコード」を 書くのは厳しいですね〜
274 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:47:28 ] @hoge = hoge こんなコードがrubyにはあるわけですが、 perlと同じく変数は宣言しなくていいんですか? 最近のperlはmyをつけて、変数を宣言するのが一般的になってきていると思うのですが
275 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:51:18 ] >>260 > そのTCLはActiveScriptRubyに入っているTCLですか? というか ActiveScriptRuby には Ruby と Tcl をつなぐものしか入ってなくて Tcl は ActiveState のサイトから持ってきた ActiveTcl に入ってる ActiveTcl をインストール済みなら環境変数 PATH を使って Ruby/Tk が勝手に Tcl を見つけてくれるはずだよ でもって > もしやと思って、test.rbをdblclickしたら普通に起動しました > ruby consoleで > >test.rbとやってもフォームが表示されました RDEの設定に問題があるんだろうから RDE から ENV['PATH'] して Tcl\bin が含まれているかチェック もし含まれていなければ環境変数 PATH か RUBY_TCL_DLL に Tcl\bin でも設定して試してみて
276 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 21:55:04 ] >>274 Rubyの変数はハコではない Rubyのデータは全てオブジェクトでどこか「オブジェクト置き場」に厳然と存在してて、 「変数代入」はその置き場に転がってるオブジェクトにその名前のラベルを貼る行為に同じ ただのラベルだから宣言はいらない オブジェクトはすでに存在してるわけだし @var = hoge は hoge の指す(というか hoge の返す)オブジェクトに 「@var」という4文字のラベルをつける行為 …実際は宣言してるはずなんだが、完全に隠蔽されててRubyスクリプトからは見えないし触れないし関われない
277 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:02:08 ] プログラミングがしてみたい、というだけなら 今はMSのSmall Basicがいいんじゃなかろうか。
278 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:07:28 ] >>277 うん、マニュアルだけ見れば十分な既言語取得済該当言語初心者はいつもそう言う プログラミング初心者に本当に必要なのは十万の解説と百万のサンプル
279 名前:274 mailto:sage [2010/03/11(木) 22:19:12 ] >>276 オブジェクトは既に存在していて、オブジェクトに対して名前をつけているってことか? @var = hogeはjavaでいうと class Hoge { Test test; void setTest(Test t) { this.test = t; }} と同じになるの?
280 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:24:11 ] >>275 ごめん、もうアンインストールした この2日間、時間の無駄使いしただけだった
281 名前:220 mailto:sage [2010/03/11(木) 22:31:58 ] 環境変数という言葉すら初耳の状態からスタートしたおれにとって まさに>>278 の言う通り 教えてくれても、専門用語だらけでわからない それでも単語ひとつひとつぐぐりながらこの2日間がんばったが コード一つ書かないまま、いや、2行だけは書いたが 終わってしまうとはまさに予想外 俺の考えている初心者とプログラマーの初心者の立ち位置が違いすぎた あなた達とはもう2度と出会うことはないでしょう さようなら
282 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:36:06 ] >>278 その見地ならJavaが最適ってことで。 でもなぜかJavaを勧める人はあんまりいない、気がする。
283 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:42:04 ] >>281 本当にもう見ていないことを期待して書くが、たとえば キーボードやマウスの使い方、エクスプローラの使い方なんかは言語の範疇外だ それと同様、コマンドプロンプトやOSの環境変数、標準のインストーラ動作なんかは言語解説の範疇外 コマンドプロンプトに日本語を表示したら化けたとかそういうのも本来無関係 文字コードって何ですかとかシフトジス?ってなんですかとかそういうの知らないのも問題外 HTTPとURI関連のライブラリ使うならRFC準拠の基礎知識くらいは持ってから来いやポートの説明からか泣くぞオラ とまあ、どこまで巻き戻ることを想定するかは残念ながらこちらで決めさせてもらわざるを得ないのだ Rubyさんは貧乏でリソースは有限であるがゆえ もし他の(お金持ちでそれゆえ親切な)言語でプログラミングの楽しさを身に付けたなら、 そのときは気が向いたときにでも振り返ってRubyを検討してみてくれると嬉しい
284 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:46:46 ] すこぶるRDEは嫌われてるみたいですが、 ここに居る人はどんな環境使ってるんですかね? 自分は会社だとEmacs。家だとEclisp WindowsだとEmacs使う気が失せるんですよ・・・・。 ちなみに仕事はソフトウェア関連ではなく超初心者です。
285 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:47:03 ] 最近はさすがに減ったが、「プログラミングの全くの初心者にもRubyは簡単」という喧伝が多すぎたな プログラミングの経験がなくても結構使うまでいける言語である保証は頑張ってしたいところだが、 そこまでの道のりがどなたにも簡単かと言われるとかなり大きな疑問符
286 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:49:52 ] >>284 えまくすくりーんぷてぃー 何らかの手段でLinuxを起動して接続してその上でRuby使うのがたぶん一番妥当 Windows上でRuby使うとかなんかボリショイサーカス見てる気分になる
287 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:50:44 ] やろうとしたことが GUI でしかも IDE 使用という 二重のトラップにかかったのが不幸だったといわざるを得ない 『たのしい Ruby 』とか適当な初心者本買って コマンドプロンプト+テキストエディタでリベンジしてほしいな 地味だけど
288 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 22:54:57 ] >>287 コマンドプロンプトではエラーなく動作してる時点で 「あっじゃあこっちでやりますRDEはステで」 という判断にならなかったのがなんかもう供養塔立てて忘れないよう祀るレベル 今度から「RubyではGUIできません」と答えることにしようと思う
289 名前:デフォルトの名無しさん [2010/03/11(木) 23:10:44 ] >>281 プログラミング初心者ならそれこそ1日や2日でマスターできるもんじゃないんだから、 根気よくやらないといかんよ・・・ 毎日プログラミングし続けて3年くらい使い続ければそこそこプログラミングできるようになる。 頑張れ
290 名前:デフォルトの名無しさん [2010/03/11(木) 23:13:57 ] >>281 誰にGUIをRubyなら簡単にできると教えてもらったのか知らんが、そいつを殴ってもいいぞ 俺ならC#を押すよ。初心者でもポトペタでいきなりGUIが作れる。 サンプルコードもネットにたくさん。フリーのコンポーネントも一杯ある。 Delphiでゲーム作ってプログラミング覚えた俺だけど、いきなりRubyやってたら多分挫折してる
291 名前:デフォルトの名無しさん [2010/03/11(木) 23:23:23 ] 最近で見たRuby初心者でいえば、チンパン団のロプロスはすごかったな。 ニートから1年くらいでphp→Rubyと来てtwitter関連のwebサービス立ち上げて、アフィリエイトで飯食ってる。 でもロプロスはRDE使ってるんだよな。 twitter関連のwebサービスのtwilogはユーザー数数万人だが、Railsすら使ってない。 index.cgiだったぞw 何がいいたいかって、GUIじゃなくてwebに興味持てばまだよかったと思う
292 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:25:56 ] アフィリエイトって w
293 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:33:24 ] しょうもないこと言うやつばっかりになったな
294 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:37:41 ] moduleってC++のnamespaceやjavaのpackageと同じ?
295 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:39:29 ] クラウドだのシンクライアントだのって数年前のサーバサイドに先祖返りしてるけど Railsは本命にはならんだろうな なんだかんだ言ってcgi+javascriptがこの先も主力だろう
296 名前:デフォルトの名無しさん mailto:sage [2010/03/11(木) 23:55:12 ] > なんだかんだ言ってcgi+javascriptがこの先も主力だろう > なんだかんだ言ってcgi+javascriptがこの先も主力だろう > なんだかんだ言ってcgi+javascriptがこの先も主力だろう > なんだかんだ言ってcgi+javascriptがこの先も主力だろう > なんだかんだ言ってcgi+javascriptがこの先も主力だろう
297 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 00:00:44 ] 気持ちはわかるが5行はやりすぎだ落ち着け
298 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 00:04:14 ] RoR と cgi+javascript じゃ目指してるものが違うから住み分けるんじゃないの? サイトの数としては後者の方が多くなるだろうけど
299 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 00:10:38 ] >>294 C++のnamespaceとJavaのpackageが同じに見えるのなら、 moduleも同じだということにしてもいい。 あ、classも同じでいいよ。
300 名前:294 mailto:sage [2010/03/12(金) 00:14:15 ] >>299 そんじゃ、moduleもpackageみたいに使います あえて言うなら、何か違いありますか? 今のところ趣味でプログラミングしているんで、namespaceを使うことが無いんだよね〜 だから、namespaceとpackageの細かな違いがわかんない
301 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 00:15:24 ] このスレっていつもこんな感じなのか? プログラムというよりは「自宅サーバ板」のおまけスレみたいだな
302 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 01:15:58 ] 3月は春休み
303 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 01:41:29 ] >>301 あなたがここに来たのと同じような理由の人がいます
304 名前:デフォルトの名無しさん [2010/03/12(金) 04:47:02 ] CentOS5のrubyが、rubygemsを入れるには古いので、 RPMとソースインストールを共存させようと思いました。 RPMは/usr/bin、ソースインストールは/usr/local/binに入るので、 位置的には問題なく入ったのですが、 このままだとRPMのrubyが優先的に使われます。 ソースインストールのrubyが優先的に使われるようにするにはどうすればいいですか?
305 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 05:11:32 ] >>281 Cygwin の Ruby なら簡……と言いかけたがダメだなこりゃw
306 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 08:24:01 ] >>304 PATH
307 名前:304 mailto:sage [2010/03/12(金) 08:45:44 ] ありがとうございます。 よく見たら/usr/local/binが先に書いてあるので このままでもソースインストールのrubyが優先されました
308 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 08:59:02 ] 共存か…CentOSにalternative的なものって無かったっけ
309 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 10:19:39 ] >>308 man 8 alternatives chkconfigパッケージに入ってる。
310 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 11:04:29 ] >>304 うん、Linuxのパスについての勉強しれ rubyインタプリタは自分の場所を考慮して起動用設定ファイルを読むから、 /usr/local/bin/ruby と /usr/bin/ruby と /home/ore/usr/local/bin/ruby くらい違えば小細工ゼロで共存するはず
311 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 12:47:40 ] updating newgem でメモリ使い切って10分くらいガリガリ言ってる…
312 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 13:14:55 ] 最近のrubygem updateはプア環境ではまた辛くなってる 1.2くらいの頃が一番よかった
313 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 13:35:05 ] スワップに突入するくらいメモリがない場合は 一旦アンインストールしてから再インストールしたほうが所要時間的には早いよね アップデート対象のgem一覧を返して終了する、みたいなオプションがないのが辛い
314 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 14:00:19 ] >>263 7-zipインストールを前提にした上で、それをコマンドラインから叩くのが楽かな。
315 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 14:15:22 ] >>314 win32のゲームの配布でRubyスクリプト使ってアーカイブ作ってたときは、俺も7zip使ってたな。 外部コマンドあるならそっちも手っ取り早い
316 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 14:34:25 ] ちょっと質問ですが、ふつーはRubyGemsで入れたライブラリなどのリファレンスくるのって何が手っ取り早いんでしょうか? 今までRailsやってて、るりまのchmと ↓で配布されてたchmと(更新停止中)、 d.hatena.ne.jp/kabus/20081202 あとは最新のは railsapi.com/doc/rails-v2.3.5_ruby-v1.8/ とか見てたんですが、 るりまはともかく、railsのchm配布サイトが更新されてなかったり、 最後のサイトはprivateメソッドやnodocのものが乗ってなかったり、不便に感じてます・・・。 こういう不便さを解消できるものでしょうか? また、ri入れるとRubyGemsのインスコが激遅になるんで使ってないんですが (.gemrcに gem: --no-ri --no-rdoc とか書いてます)、 普通はri使うもんなんでしょうか?
317 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 14:45:15 ] >>316 基本的にはソース読む 公開されてる部分のドキュメントが内容を正しく反映しているとは限らないし、 端折られてる部分の重要性のほうが高いことがほとんどだから というかほとんどの場合:nodoc:の使い方が不正 nodocにするべきではないものまでガンガンnodocにしてある privateメソッドを内部で呼んでいるならその動作もpublicメソッドのドキュメントに反映すべきだし privateメソッドだからといって説明をしなくてもいいということには絶対にならない ちなみに「Rubyにはprivateやprotectedは不要」派でございます
318 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 15:34:10 ] >>316 自分が参考にする大まかな順番 1.ri(マクロでエディタから呼び出せると便利) 2.自動生成したUMLクラス図 3.ヘルプファイルや書籍(親切・有名なプロジェクトなら) 4.Google先生 5.ソースコード・テストファイル・スペックファイル 6.自動生成したコード片のコールグラフ(ソースに黒魔術満載の場合) 7.職場のネ申 8.2chで祈りを捧げる(時間をつぶすともいう) 9.諦める riとrdocは中身は同じだからrdocでもいいと思う。好みで。
319 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:26:18 ] 超初心者向けの言語でない事は確実だな。 教祖が使ってるデビアンから入る必要が有るし。特に広く一般に普及してるウィンドウズからは敷居が高い。
320 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:31:50 ] >privateメソッドだからといって説明をしなくてもいいということには絶対にならない >ちなみに「Rubyにはprivateやprotectedは不要」派でございます リファクタリングのコストが高くなりすぎないか?
321 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 16:33:37 ] >>319 お前Ruby以外使ったことないだろ
322 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 18:44:12 ] 拡張子の変更がうまくいきません foo = "foo.c" File.extname(foo) = ".o" とするとエラーが出ます
323 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 18:51:52 ] extnameが返すのは左辺値じゃない。 1.9 なら Pathname('foo.c').sub_ext('.o').to_s で。 1.8 なら素直に文字列置換。
324 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 18:57:48 ] >>322 # File.extnameメソッドは最後のドット以降の文字列(いわゆる拡張子) # を返すだけ。設定はできない。 foo = "foo.c" p File.extname(foo) #=> ".c" # File.basenameメソッドは第2引数に文字列を与えるとファイル名の末尾から # その文字列を取り除く。 p File.basename(foo, File.extname(foo)) #=> "foo" # おそらくあなたがしたい事はこれ p File.basename(foo, File.extname(foo)) + ".o" #=> "foo.o"
325 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:23:30 ] rubyの処理系(windows)の違いを教えてください ActiveScriptRubyと公式な実装(ビルドが沢山ある?)があるみたいですが
326 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:25:51 ] >>325 C#なら何も悩むことはないよ
327 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:27:05 ] >>322 C#ならファイル名変更なんて簡単に一行でできるのに かわいそw
328 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:30:20 ] >> 323 sub_extなんてものがあったのですね。 ありがとうございます。勉強になりました。 以前リファレンスを探したときは見つけられませんでしたので見直しましたが やはり1.9のリファレンスにsub_extがありません。 >>324 違います
329 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:31:04 ] 公式なWindowsバイナリは存在しない (Windowsで動作するようなソースは取り込まれているが、コンパイルしたものそのものは配布していない) バイナリはすべて有志の個人またはネット上の第三者プロジェクトの提供による あとは>>6 これでは端折ったが要はActiveScriptRubyがMSWin32でRubyInstallerがMinGW32 この言葉が理解できないならこれ以上の情報は不要なので素直にActiveScriptRuby使え これはほぼ全てのスクリプトでWindows環境だと思ってもらえる 通常の利用上の問題はないから
330 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:36:13 ] >>329 windowsで公式な実相が無いなら、適当に選ぶことにしますわ thx
331 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:38:10 ] >>328 riには普通にあったよ るりまにはないようだ
332 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:39:34 ] >>329 ftp://ftp.ruby-lang.org/pub/ruby/binaries/ これはどういう位置づけなの?
333 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:46:00 ] >>330 適当に選んでは駄目 実用上、コンパイラが何かということよりも プラットフォーム文字列にwin32の文字列が含まれているかどうかが重要 C:\>ruby -e "p RUBY_PLATFORM" "i386-mswin32" mingw32はRubyに慣れた人向け スクリプトの修正とかできない人が使ったらどーでもいいとこで詰まるぞ
334 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:49:13 ] >>332 こんぱいるしたひとがるびーのさばにふぁいるをおいてる インストーラつきじゃないから少なくとも初心者スレで話題に出すようなもんでもないかと
335 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:54:58 ] >>332 そういやこれは結局どうなったんだっけ 本気で「ふぁいるおきば」以上の意図はないんだっけ 根性入れて更新するけど公式にサポートしたバイナリではないとかそんな立ち位置なんだっけか
336 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:58:21 ] Rubyにはサポートレベルというものがあるんだが、 実はWindows系とMacOSXとFreeBSDは同じレベルにあるんだよな。 とてもそんな扱いを受けているようには見えないが。
337 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 19:58:50 ] ガラクタの寄せ集め言語なんていらない
338 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:05:45 ] Pathologically Eclectic Rubbish Listerのこと?
339 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:13:26 ] 初期Rubyユーザが母なるPerlを叩く図式は最高にかっこわるかったな
340 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:13:38 ] RubyでGUIは鬼門、という方向に話が流れてるなあ… Pythonのように、インストールすれば即座にTkも使える状態になってれば 少しは違ったんだろうか… かといって、VisualuRubyを推すのもどうなんだという気もするし… アレはWindows限定だし… 言語の作者自身が「Windowsなんか知らね」属性の人だったのが そもそも不幸の始まりだったのだろうか… Windows嫌ってる人って、GUIも否定的な人が多い印象もあるし
341 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:13:40 ] 何も見ずにもう一回書いてみろ
342 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:14:07 ] うが。何故瞬間に2レスも間に入るw
343 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:24:04 ] Wdh=cgi["width"] <INPUT type="text" name="width" value="50"> print Wdh Wdh =Wdh / 2 としたところ、 undefined method `/' for "":String と怒られてしまいました。右も左も分からないので解決策をご教示願います。
344 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:25:04 ] >>343 とりあえず、てきとうな解説サイト(お勧めは特にない)か本読め
345 名前:343 mailto:sage [2010/03/12(金) 20:25:16 ] すみません、追記です。 print Wdhの結果は何も表示されませんでした。
346 名前:343 mailto:sage [2010/03/12(金) 20:33:33 ] >>344 ありがとうございました。
347 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:40:36 ] >>344 でよかったのだろうか…
348 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:43:31 ] >>347 適切ではあったとは思う 変数の規則知らない上にエラーの読み方わからんのではさすがに遠隔ではどうにも
349 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:45:44 ] 単純には、文字列(String)は整数(Integer)ではないから割り算したいなら 変換しろ、ってだけのことなんだけど。 cgiがCGIクラスのインスタンスだとして、こいつの返すパラメータはかなり 変態なので、今後もいろいろ罠に掛かるかもしれない。
350 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:53:25 ] >>349 >Wdh >print Wdhの結果は何も表示されませんでした
351 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 20:59:49 ] >>343 たのしいRuby 第3版 www.amazon.co.jp/dp/4797357401/
352 名前:343 mailto:sage [2010/03/12(金) 21:25:59 ] 数々のエスパーレスありがとうございます。 すみません、Wdhが読み込まれてない原因はHTMLのFORM文にミスがあったせいでした。 >>349 個人的にRubyの変数に型はないからString/Integerは気にしなくておkという先入観があったのですが、この先入観はトチ狂ってるのですね。 エラーは脱せていませんがおすすめの書籍と関連サイトで粘ってみようと思います。ありがとうございました。
353 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:28:19 ] 変数には型はない。 オブジェクト(値・モノ)には型(クラス)がある。 これは、変数はどんな型のオブジェクト(値・モノ)でも指せるってこと。
354 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:29:51 ] >>331 へぇそうなんだ riはファイル数削減のため削除した ウィルスチェックを毎日フルスキャンする義務があるんで 消したらだいぶスキャン時間が短くなった
355 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:33:08 ] 何度でも言われるがRubyの変数は箱ではなくただのラベル いつ剥がれるか(変数名で参照できる範囲)は決まってるが、貼る先のオブジェクトは区別しない
356 名前:343 mailto:sage [2010/03/12(金) 21:41:39 ] わかり易い説明ありがとうございます。 なるほど、ラベルに入ったオブジェクトの型は明示してやる必要があるのですね。 アドバイス通りに検索するとすぐに解答がありました。 Wdh=cgi["width"].to_i として解決しました。
357 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:52:41 ] >>356 違う Rubyには型は存在しない クラスは型ではない >>353 は誤り
358 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 21:56:58 ] タコツボここに極まれり、か
359 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:01:38 ] そもそも型とかいう考え方は即ごみ箱に捨てろ
360 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:08:36 ] 型(Type)だな 一時期オブジェクトの説明に間違って使われたタイヤキの鋳型(flask)が後を引いて…はいないか
361 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:11:13 ] >>360 あれは「型」という字にはタイプとテンプレートと鋳型の3つがあるということを失念した例示だったと思う… タイプやテンプレート相当のものを持った言語を中途半端に習った人大混乱
362 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:15:51 ] この流れはすごいなあ というかたのしいRubyってタイヤキの例え使ってなかったか
363 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:25:27 ] >>362 うん使ってる 言われてみれば言葉の選び方的にあまりよくないな 鯛焼きのカタという言葉は「変数の型」を想起させて混同させる可能性があるのか 第3版が出ようかというときに新しすぎる知見だろそれ 鋳型ならいい?
364 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:34:09 ] タイヤキの型って、まさしく鋳型じゃない? >>363 の言葉選びのポイントがよくわからん
365 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:44:17 ] >>363 型ってのはそもそも値の集合と操作の集合なので 別にRubyに使ってもなんもおかしくない んでクラスとインスタンスは英語で言うところのaとtheの関係なので タイヤキの鋳型とタイヤキでなんも問題ない
366 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 22:51:37 ] 数学的な話ではなく、変数の型とクラスの型の2つの混同で クラスを従来の変数の型のようなものとして誤解してしまう可能性があるという話では >>356 のように
367 名前:デフォルトの名無しさん mailto:sage [2010/03/12(金) 23:02:35 ] それは「変数に型があるかデータに型があるか」の話 型ってそもそもなによって話とは無関係
368 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:09:45 ] >>336 Windowsならスレッドがちゃんと動くが他のプラットフォームだと動かない、 とかいう罠があったりしたこともあるので、なかなか侮れない。
369 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:13:40 ] Unicode の U+2295 みたいな表記を Ruby1.8 で該当バイナリ文字列に変換する方法はありませんか
370 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:24:07 ] >>369 「U+2295」が文字列という前提で (0.入力文字列の書式をチェックします。) 1.分割します。 U+ … ポイ 22 … 1バイト目 95 … 2バイト目 2.1バイト目と2バイト目をごにょごにょします。Array#pack() 、かなあ?
371 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:27:09 ] >>369 require 'nkf' s = 'U+3042 U+3044 U+3046' puts NKF.nkf('-w, --numchar-input', s.gsub(/U\+(\d+)/){"#{$1};"})
372 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:32:54 ] >>371 > /U\+(\d+)/ 16進数じゃない? /U\+([0-9a-fA-F]{4,6})/ でいける?
373 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:37:46 ] >>371 間違ってるぞ puts NKF.nkf('-w, --numchar-input', s.gsub(/U\+([\da-f]+)/i){"#{$1};"})
374 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 00:52:39 ] 1.8では、量が多くない場合はNKFに頼るのが間違いないと思う 1.9だと簡単なんだけど
375 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 01:20:47 ] $ cat a.rb require 'nkf' sikaru = NKF.nkf('-w, --numchar-input', %w(20B9F).map{|s| "#{s};"}.join) p sikaru puts sikaru $ ruby -Ku ./a.rb a.rb:2: [BUG] Segmentation fault ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux] うひょう
376 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 04:18:36 ] 本来はiconv使うべきとは思うが、実用的なのはnkfだしなあ。
377 名前:デフォルトの名無しさん [2010/03/13(土) 05:37:51 ] >>369 "U+20B9F".gsub(/U\+([0-9A-Fa-f]{4,6})/){[$1.to_i(16)].pack("U*")} >>371 -w, の , が余計
378 名前:66 mailto:sage [2010/03/13(土) 05:57:18 ] > File.expand_path('あ', '/'.force_encoding(Encoding::ASCII)) Encoding::CompatibilityError: incompatible character encodings: UTF-8 and US-ASCII となるのですが、これはバグ? ちなみに実際やりたいことは、Tempfile.open('あ') です。 環境:fedora11、ruby 1.9.2dev (2010-03-06 trunk 26825) [i686-linux]
379 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 06:46:02 ] ライブラリのインストールに滅茶苦茶時間掛かるんだが なにこれ
380 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:12:06 ] gem search -r hoge searchっていちいち入力するの面倒いだけど、searchの短いオプションって無いの?
381 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 10:50:10 ] スレのバージョンお勧めに従わない人間は自業自得なのでスルー >>379 そりゃ君のパソコンがプア過ぎるのだよ 気になるなら -V をつけて gem install -V hogehoge すると固まったような時間帯に何してるのか見える "Building native extensions. This could take a while..." はCで書かれたファイルをコンパイル中(ものによっては遅い) ごっついライブラリだと定番ライブラリを10個くらい追加インストールするからどんなマシンでも一見とても遅いぞ 来週くらいに gem -V update しても遅いならまたおいで >>380 sea なにこれ超中途半端 正確には先頭から文字列にマッチするコマンド探してるので、s と se では複数マッチしてエラー $ gem s mechanize ERROR: While executing gem ... (RuntimeError) Ambiguous command s matches [search, server, sources, specification, stale] $ gem se mechanize ERROR: While executing gem ... (RuntimeError) Ambiguous command se matches [search, server] $ gem sea mechanize *** LOCAL GEMS *** mechanize (1.0.0, 0.9.3)
382 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:01:06 ] 質問ですが、 PythonのPython Image LibraryみたいなRubyの画像処理ライブラリってありますか?
383 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:13:21 ] >>382 ありません ImageMagickインストールしてgem install rmagickするしかないねえ
384 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:13:50 ] 用途にもよるけど、既存のCで書かれた画像処理ライブラリを Rubyから呼び出して使うことが多いと思う。 RMagick(ImageMagickのライブラリを使用) Ruby/GD2(GD2を使用) Rcairo(cairoを使用) など。 ImageMagickは機能過多だ、サムネが作りたいだけなんだという 人向けにImageScienceというのもあるな。サムネ作成専用。
385 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:15:29 ] >>381 スレの勧めないバージョンインストールしておきながら お勧めなら引っかからない基本的エラーで文句言うような人はスルー というのが正しいかと思う お勧めでなくても入り口以外で引っかかってるなら質問どうぞ
386 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:19:17 ] >>378 バグっぽい気がしたのでチケット切ってみた。 #2955
387 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:21:38 ] >>383-384 なるほど、ありがとうございます。 画像出力より入力の機能の方を重視したいので PILと同程度のライブラリとなるとImageMagickをつかないといけないんですか・・・ FFIするならGIL辺りが良さそうですね。 参考になりました。
388 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:23:54 ] 春休みスレ
389 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:32:34 ] >>388 間違ってるならあとから正せばいい 質問者には数時間くらいは待ってもらえるといいかもしれん
390 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:55:34 ] >>380 俺は面倒だから工夫してる。何度も同じコマンドうつのはDRYじゃあるめえ Windowsなら以下の内容をgems.batとしてパスが通ったところに置いておき、コマンドラインで gems hoge で検索 gem.cmd search --details --both --all %* Unix系でbashなら、~/.bashrcに以下を書いておいて gems hogeで検索 alias gems="gem search --details --both --all" あくまで例なのでコッチのほうがいいとか指摘してください
391 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 11:58:15 ] あんまりコマンドのエイリアスは設定しない方がいいって 誰か言ってなかった?
392 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:03:40 ] * 別の環境に移ったときになんぞこれってなるからエイリアスすんな派 * 自分好みに環境をカスタマイズしてこそUNIXのシェルだろJK派 どっちを選ぶも自由
393 名前:66 mailto:sage [2010/03/13(土) 12:03:56 ] >>386 ありがとうございます! 文句を言いたいわけじゃなく、バグなのか仕様なのか自分の勘違いなのか自信が持てないから、 このスレを利用させてもらっちゃったんですが、相応しくなかったみたいですね。 すみません。 もう書くの止めときます。
394 名前:380 mailto:sage [2010/03/13(土) 12:46:52 ] >>381 seaね、ありがとう >>390 linuxを使っているならaliasを使うけど、 今はwindowsを使っているからそんな方法があるなんてわからんかったよ
395 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:55:19 ] >>393 1.9.1だったなら俺も>>385 に同意だけど、1.9.2devは本スレが妥当じゃないかな
396 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 12:55:54 ] ライブラリが全然整理されてない印象<Ruby
397 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:11:18 ] うおお、ライブラリが全然整理されてない印象さんがRubyと喋ったぞ
398 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:45:08 ] <Rubyでなくて>Rubyだと思う 固定された意味はないけど 質問 エンコーディングプラグマ、通称マジックコメント、は、 該当するマルチバイト文字のようなもんが書かれてないようなライブラリを 自作して公開する場合はつけないほうがいい?
399 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:45:51 ] あ、>>398 は1.9.1の場合ね
400 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:48:35 ] require 'Qt4' app = Qt::Application.new(ARGV) hello = Qt::PushButton.new('Hello World!') hello.resize(100, 30) hello.show() app.exec() テストコード(コピペ)を動かそうとしているんだけど、動かない >C:\Ruby\lib\ruby\gems\1.8\gems\qtruby4-2.1.0-x86-mswin32\lib\ はちゃんとあるんだけどね 環境変数が問題なのかな?
401 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:52:19 ] >>400 動かないのならエラーメッセージを貼っておくれ スクリプトをダブルクリックして実行したのなら コマンドプロンプトから実行して
402 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 13:59:36 ] おー、WindowsでQtライブラリ使ってる人初めて見た
403 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:08:03 ] rubygemsでインストールしたパッケージのヘルプってどうやって見れますか?
404 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:09:59 ] >>398 書かない場合は US-ASCII を指定したのと同義。 ASCII文字しかないなら書いても書かなくても結果は同じ。 8ビット目が立ったシングルバイト文字は入れてないよね?
405 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:12:27 ] >>403 riかrdocか。 gem server を起動して localhost:8808/ でも読める。
406 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:13:09 ] 正規表現の動作が変わるんじゃなかったか
407 名前:400 mailto:sage [2010/03/13(土) 14:14:30 ] >>401 test.rb:1:in `require': no such file to load -- Qt4 (LoadError) from test.rb:1 見てのとおりライブラリの読み込みに失敗しています let-your-heart-soar.txt-nifty.com/blog/2008/07/qtqtrubywindow_82d9.html この通りにやって、C++のチュートリアルは動くようになっています でも、こんな事をやってqtrubyに関係あるのか疑問 >>402 ruby gtk2を使おうかなと思ったけど、gtk+のライブラリ全然わかんないから linuxでもqtrubyが動けば、linuxで開発してwindowsでexeを作ろうかな〜と それに、2週間くらい前にこんな本を買ったし >入門 Qt 4 プログラミング >ttp://www.oreilly.co.jp/books/9784873113449/
408 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:15:52 ] >>403 gemディレクトリ/ruby/1.8とか/doc/ の中にファイルが入ってるので好きなときに読め ActiveSriptRubyの場合はC:\Program Files\ruby-1.8\lib\ruby\gems\1.8\doc\
409 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:17:57 ] >>407 require 'rubygems' require 'Qt4'
410 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:25:42 ] >>406 US-ASCIIなソースにUS-ASCII以外のマジコメを書く場合?
411 名前:400 mailto:sage [2010/03/13(土) 14:26:51 ] >>409 文法を覚える前にテストをするもんじゃないですねwww 助かりました、ありがとうございます
412 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 14:44:08 ] >>403 HTMLファイルでいいならシェルから gem environment した出力の - GEM PATHS: の1行目(になかったら2行目)の場所の doc ディレクトリの中に
413 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:20:07 ] #=>って習慣なの?
414 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:25:32 ] >>413 doc.okkez.net/187/view/help
415 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:26:05 ] 習慣かどうかはしらん ふつうコメントの直後にスペースをひとつ挟むから # => value だよな はちどりのRuby本もそうなってる
416 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 16:39:23 ] 個人的にはあまり好きではない まあ、書籍向けの表現だと思う
417 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:23:40 ] gem install -r XXXX ERROR: could not find gem XXXX locally or in a repository 何これ?
418 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:33:32 ] 文字通り。
419 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:33:47 ] >>417 その質問に至った経緯をまず聞こうか
420 名前:413 mailto:sage [2010/03/13(土) 17:37:04 ] >>419 linuxでそう入力しただけだけど 得にそれ以外に何もしていない
421 名前:420 mailto:sage [2010/03/13(土) 17:37:46 ] 名前を間違えた >>417 ね
422 名前:420 mailto:sage [2010/03/13(土) 17:39:28 ] ごめん、ただのスペルミスですたorz
423 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 17:39:54 ] まずはgem search- rを使うんだ、でその結果から選ぶがよろし 自分で入力せずに素直にbash,zshの補完機能に頼った方がいいと思う
424 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 21:46:53 ] 他の言語のisXXXメソッドは、XXX?とrubyではなってるみたいですね 三項演算子とかと一緒に使うと読みにくいと思います お前らはどうやっていますか? return windows.visible? ? 値A : 値B
425 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:07:58 ] それほどでも・・・ return (windows.visible?) ? 値a : 値b
426 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:10:57 ] ぶっちゃけ、うっかり window.visible? A : B と書いて怒られることはよくある。
427 名前:424 mailto:sage [2010/03/13(土) 22:13:57 ] そんなもんですか そんじゃ気にしないようにしますわ
428 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 22:20:29 ] 条件演算子はぶっちゃけそれほど使わない 不自然感を感じてるうちにifとかに書き換わるのでむしろラッキー
429 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:03:17 ] include Enumerable した場合、自分のクラスで each を定義しますが def each @array.each do |e| yield(e) end end def each(&block) @array.each(&block) end どちらが好ましい書き方なんでしょうか?
430 名前:デフォルトの名無しさん mailto:sage [2010/03/13(土) 23:27:40 ] 後者 irb1.9> class C; include Enumerable; def initialize; @a=[1,2,3]; end; def each(&b); @a.each(&b); end; end irb1.9> p C.new.each #<Enumerator:0x931483c> irb1.9> class C; include Enumerable; def initialize; @a=[1,2,3]; end; def each; @a.each{|e| yield(e)}; end; end irb1.9> C.new.each LocalJumpError: no block given (yield)
431 名前:429 mailto:sage [2010/03/13(土) 23:43:14 ] >>430 なるほど、ありがとうございます。
432 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:00:43 ] 前者は昔の名残だね。
433 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:10:16 ] 前者は return @array.to_enum unless block_given? を最初 にやればよさそうだけど、今回は無理に使うこともないな。
434 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:16:42 ] javaかC++のプログラマのための、Ruby入門のサイトを教えてください
435 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:19:42 ] www.google.co.jp/search?q=Ruby%E5%85%A5%E9%96%80&ie=UTF-8
436 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:21:15 ] C++やJavaの特有事情は忘れて勉強したほうが習得はうまくいきそうな気がする それこそBasicの制御構造レベルの知識だけある人のほうが吸収早そう
437 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:44:12 ] >>424 return windows.visible?? a : b 疑問符を二個つなげてすげー疑問って雰囲気を醸し出す
438 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 00:48:41 ] >>386 のチケット、 r26909 で修正された。 $ ruby -ve "puts File.expand_path('あ', '/'.force_encoding('US-ASCII'))" ruby 1.9.2dev (2010-03-13 trunk 26909) [x86_64-darwin10.2.0] /あ
439 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 02:15:40 ] >>430 前者の書き方しか知らなかった。
440 名前:66 mailto:sage [2010/03/14(日) 07:03:08 ] >>395 今度から本スレに書きます。 >>438 ありがとうございました。 確認しました。
441 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 08:44:47 ] 春休みで盛況だなw
442 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 11:49:30 ] moduleってパッケージとMixinを、実現するための予約語なんだよね Mixinは実装を持ったインターフェイスみたいなもんだから、 moduleはmoduleを継承する事ができるの?
443 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:18:51 ] >>438 乙乙!!
444 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:24:46 ] >>442 > moduleはmoduleを継承する事ができるの? そもそも文法的に継承できない(module M2 < M1 は SyntaxError) メソッド検索順位のひとつ上にモジュールをぶちこむ include を使う module M1; def m; "M1!"; end; end module M2; include M1; end # M2 の上に M1 module M3; include M2; end # M3 の上に M2 module M4; include M3; end # M4 の上に M3 class C; include M4; end # C の上に M4 p C.new.m p C.ancestors # 継承とインクルード込みの検索優先順位を表示 結果 "M1!" [C, M4, M3, M2, M1, Object, Kernel] 検索順位的には継承と同じなので実用上の問題はない class C1; end class C2 < C1; end class C3 < C2; end p C3.ancestors #=> [C3, C2, C1, Object, Kernel]
445 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:40:44 ] じゃあ継承でいいじゃん
446 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 12:46:49 ] >>445 よくねー 人間を継承した俺がいたとして、翼が欲しいと思ったら class 俺 < 翼 end するのか? 俺は翼の一種なのか? 俺は翼の子分か? 人間且つ翼の俺って何? 翼って機能だろ class 俺 機能追加 翼 end とするのが筋だろ、わかりやすいし、渾然一体になる継承よりは機能外すのも簡単そうだ だから翼はモジュールにして、includeで追加する 実際は 俺 = 人間.new(params) 俺.extend(翼) とするのが妥当ではあるがまあ細かいこと気にするな禿げるぞ
447 名前:442 mailto:sage [2010/03/14(日) 13:12:23 ] >>444 ,>>446 ありがとう >>445 なりすましっぽく見えるレスだな
448 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:18:08 ] ○引数で複数のディレクトリパスを与える ○与えられたディレクトリに対して再帰的にファイルを全て削除する ○ただし.txt拡張子が付くファイルのみ削除しない プログラミングに不慣れながらこんなスクリプトを書こうと思い、以下のようになりました。 #!/usr/bin/ruby require 'fileutils' ARGV.each do |i| FileUtils.rm(Dir.glob(i + '**/*[^(txt)]'), :force => true) end 突っ込みどころなどありましたら教えていただけないでしょうか。 簡単なテストをすると意図したように動くのですが少し不安なので質問させていただきました。 自分で怪しいと思ってる箇所は以下の2箇所です。 @ i + '**/*[^(txt)]' こんな指定の仕方でいいのだろうか AそもそもFileUtilを使うべきなのか 宜しくお願いします。
449 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:25:51 ] >>448 他のスレから飛ばされてきたなら、 飛ばされましたって書かないとダメだよ
450 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:39:50 ] >>448 死んでいいよ
451 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:41:46 ] Dir.globのワイルドカードはあまり知らんが(Windowsユーザーなもので) 否定形なのはRubyでやったほうが無難だと思う Dir.glob(i.sub(/\/?$/,'/**/*')).reject{|e| test(?d,e) or e =~ /\.txt$/i}
452 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:43:52 ] i ってなんだろう? そもそもグロブでいいのか。
453 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:45:01 ] require 'fileutils' noop = verbose = ARGV.include?(':noop') ARGV.each do |s| pathlist = Dir.glob(File.join(s, '**/*')) pathlist.delete_if{|path| File.extname(path) == '.txt'} pathlist.each do |path| FileUtils.rm(path, :force => true, :noop => noop, :verbose => verbose) end end $ ruby ./del.rb tgtdir :noop
454 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:45:48 ] *[^(txt)] は、 最後の文字が 開き括弧 でも t でも x でも t でも(アゲイン) 閉じ括弧 でもない という意味になるんじゃないか?
455 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:48:11 ] >>453 next ですっ飛ばしていいと思う require 'fileutils' noop = verbose = ARGV.include?(':noop') ARGV.each do |s| Dir.glob(File.join(s, '**/*')).each do |path| next if File.extname(path) == '.txt' FileUtils.rm_r(path, :force => true, :noop => noop, :verbose => verbose) end end
456 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:48:38 ] >>454 それはない
457 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:56:02 ] $ ls x.c x.doc x.tex x.txt $ ruby -ve 'p Dir.glob("*[^(txt)]")' ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] ["x.c", "x.doc"]
458 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:57:18 ] はいはい勘違いゴルファーは帰ってね
459 名前:デフォルトの名無しさん mailto:sage [2010/03/14(日) 23:58:40 ] [^(txt)]を検証しただけじゃね?
460 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:00:42 ] マニュアル嫁でよくね?
461 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:01:32 ] どっちでもいいよ…
462 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:04:39 ] ここは初心者スレだろ? テンプレ読めない奴はカエレ 暴れるなら本スレでやr
463 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:05:49 ] 検証が漏れてないかどうかはどうやって検証すればいいのかという
464 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 00:11:10 ] >>458 どこをゴルフと誤認したのか気になる。
465 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:18:47 ] rmdir -rで綺麗さっぱり消せばいいのにw
466 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:54:20 ] RubyをWindowsで開発環境構築する方法教えてください。 OSはWindows7です
467 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 01:55:11 ] 開発環境ってたとえばなーに
468 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:22:10 ] >>448 「再帰的」と書かれていますが、別に find を使うような要件ではなく 引数のディレクトリ直下のみ走査すればよさそうなので、こんなかんじ ではいかがでしょうか。 require 'pathname' ARGV.each do |d| Pathname(d).children.each do |f| f.unlink unless f.extname == ".txt" end end # Pathname は標準添付ライブラリだから使ってもいいよね ところで、Ruby に限らず Perl でも Python でも glob ってシェルの ワイルドカード展開のエミュレートだと思いますが、機能としては中途半 端(文字列の単純比較 < glob < 正規表現活用)ですし、プラットフォーム 毎に微妙な挙動差も考えるとムダにドツボにはまりそうですし、(少なく とも「初心者」は)あまり積極的に使わない方がよくない?
469 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:33:02 ] >>468 書いてるあなたがすでにglobの罠にはまっているという。 再帰的に走査したいんだよ。> **/
470 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 02:42:35 ] Dir.glob('**/*') は許容されるべき というか普通はこれしか使わない 残りは返ってきた配列に入った文字列を正規表現とかでどうにかする 短く1行で書かないと家にいる妻がスナイパーに撃たれるとかそういう時にのみグラブ条件を書く
471 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 04:18:21 ] 1行記述を強要する妻かw
472 名前:468 mailto:sage [2010/03/15(月) 05:11:59 ] >>469 うへ、自分がドツボにはまっていました、というか **/* の意味を 知らんかった orz >>470 を参考に Pathname.glob でも使えばよいのでしょうが、あえて Find 利用ということで: require 'pathname' require 'find' Find.find(*ARGV) do |f| t = Pathname(f) t.unlink if t.file? and t.extname != ".txt" end
473 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 05:24:32 ] >>471 強要しているのはスナイバーかと。>>470 は愛妻家なんですね。
474 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 08:55:46 ] いや恐妻家なんだろうw
475 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 09:57:07 ] 要求を呑まないと何も知らない家族が射殺されるというのはわりとポピュラーな展開かと グラブ文字処理はメソッド独自だから、明白な全抜き出し以外は正規表現などを駆使、という方向性は妥当 グラブ処理の時点で小細工すると後々遺恨になるぞ
476 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 10:41:36 ] なるほど
477 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:43:17 ] >>466 まずはテンプレくらい嫁よ ・ActiveScriptRubyをインスコ ・るびまのchmをダウンロード ・NetBeans IDE(統合開発環境)をインスコ これでなんとかなるだろ。Rails開発ならcoLinuxかPortableUbuntu入れろ。
478 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:44:12 ] >>466 あ、あと、c:\Program Files\以下にはRubyをインスコしない方がいいみたい。 RubyGemsが動作しないとかの報告があった (今のバージョンはどうかしらん)
479 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 12:53:05 ] ねこび〜ん勢力の工作を検知しました
480 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:02:44 ] Windowsでも、XPなら c:\usr\local\ruby とかにインストールした方が精神衛生上よろしい気がする UACとか入るとそう簡単にはいかないんだろうけど
481 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:17:04 ] >>479 ねこび〜んはダメだね コードの補完が遅すぎて使えない
482 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 13:35:16 ] ActiveScriptRubyはデフォルトのインストール場所が性善説に過ぎる ttp://d.hatena.ne.jp/kitamomonga/20100202/ruby_watir_crash_with_autoitx3 まあこれは間違えるほうが悪いんだけれども
483 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:06:24 ] array = [1,2,3,4,5]とすると配列ができますが、わかんなくなりませんか? javaとかだったら、IDEが配列だよって教えてくれるけど やっぱり、最初にこうするべきなんですかね? array = Array.new
484 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:20:31 ] >483 ならない Array.new はリテラルに比べると遅い。
485 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:21:39 ] >>477 >・るびまのchmをダウンロード リファレンスchmならASRに同梱されてたはず それと初心者スレでるりまとは呼ばない方がいいよ
486 名前:483 mailto:sage [2010/03/15(月) 14:27:49 ] >>484 そうですか ありがとうございます
487 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 14:44:11 ] a = [1, 2, 3, 4, 5] はわけわかんなくならないが hogedata = [] は hogedata = {} との区別がわけわかんなくなることはある ので、そういうときは hogedata = Array.new と書くことはある 要素が入ってれば配列なのか Hash なのかは一発なのでわざわざ初期化なんてしない
488 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 15:14:22 ] >>485 > それと初心者スレでるりまとは呼ばない方がいいよ なんで?
489 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:05:56 ] というかるりまるびまってなんですか?
490 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:18:20 ] ここは大喜利すべきか
491 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:21:11 ] まあ、マニュアルという認識でいいよ chm形式のマニュアル読んでれば十分
492 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:24:11 ] >>488 マイナーな専門用語は避けるべき。初心者スレだし。
493 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:25:13 ] >>488 まさにこの流れが理由 るびまと区別がついてないならなおさら
494 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:50:12 ] 何やら貢献できたようで何より 1.9.1は初心者向けじゃなかったのかー 今まさにダブルクリッコするところだったぜー ここに来てよかった ってことでActiveScriptRubyなるものをダウソしてきます
495 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 16:51:41 ] ここIDないのね 494は489の人てことでw
496 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:31:53 ] 質問です エクセルで書かれた名簿を整理して出力するプログラムを書いているのですが、 名前、郵便番号、住所の分離が上手くいきません 与えられた名簿は半角or全角スペースで区切られているのでsplitを使おうと試みているのですが、 例えば以下のように記述すると"―"や"県"が消えてしまいます puts '山田 太郎 〒0000−0000 山田県山田333-333-333-333'.split(/[ 〒]+/) 何か良い知恵があればなにとぞご教授お願いします ちなみに元のプログラムではputsせず、分離後にある配列に入れています
497 名前:496 mailto:sage [2010/03/15(月) 17:34:18 ] 追記失礼します rubyはver1,87を使用しております
498 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:48:49 ] >>496 Excelってことなので、WindowsでSJISのソースコードとして、 スクリプトの先頭に #! ruby -Ks もっと推奨の方法があったかもしれない
499 名前:496 mailto:sage [2010/03/15(月) 17:51:44 ] >>498 ご教授いただいたとおりにしたところ速やかに改善されました! ありがとうございます
500 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 17:53:59 ] Rubyが取り扱う文字のエンコーディングを指定しなければASCIIとして扱われてしまうのでそういうことになる Ruby 1.8まででは 1 Ruby起動時にスイッチで -Ks とかで指定する 2 スクリプト先頭に #!ruby -Ks とか書いておくとスクリプト実行時にそのスイッチが考慮される 3 $KCODE を設定する 4 個々の正規表現のオプションでエンコーディングを指定する ただし1,2はスクリプト自体のエンコーディングと正規表現の振る舞いの両者を変更するが 3,4だと正規表現の振る舞いを変えるだけなので スクリプトがシフトJISで書かれていると p "表" # エンコーディングを正しく指定しないと 文字列リテラルが終了してないことに("\225\" と同じ扱い) とかのいわゆるダメ文字(2バイト目が\)問題にぶち当たる UTF-8やEUC-JPだとそのような問題は起きない(のかな?)
501 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:05:26 ] るびまってRubyのマニュアルのことだったの? Ruby Magazineの事だと思ってた
502 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:15:09 ] >>491 どもです 礼するの忘れてやした
503 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:16:09 ] るびま:Rubyist Magazine るりま:Ruby reference manual Ruby Magazineだと思いこんでると、無関係な記事が多すぎるように映るかもね
504 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:16:29 ] >>501 どっちでもいいよ いやよくはないが 初心者的にはるびまは読むべきではない 古くて有害な情報が渾然一体となっている
505 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:19:31 ] >>503 それ、テンプレに入れたらどうかね?
506 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:24:13 ] Rubyinstか。失礼。 上のほうよく見たらるびまとるりまの区別が付いてない(人がいる)って話だったのね 読み違えてたわ
507 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 18:27:44 ] まだ間違ってるぞw
508 名前:496 mailto:sage [2010/03/15(月) 18:29:54 ] >>500 亀ですが、ありがとうございます これを気に文字コードにも意識を向けてみます
509 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:16:01 ] くっ Rubyist
510 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:51:11 ] includeは名前空間を使えるようにするものってことで、おk? C++@namespaceみたいな感じ
511 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 19:53:43 ] なんというか include はふつうに include だと思うのだが 既存言語の機能になぞらえないと理解し難いほど複雑難解な概念なのだろうか
512 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:00:50 ] includeの動作的には本当に>>444 だよね メソッドを探す順番の指定をする方法のひとつ
513 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:07:50 ] モジュールの存在理由のほうがムズカシイかもしれない
514 名前:510 mailto:sage [2010/03/15(月) 20:34:24 ] 読んでいた記事が間違えていたらしい 本当の使い方は、結局なんなんだろ? Mixinを実現するためにしか使わないのか
515 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 20:39:59 ] モジュールは、メソッドを用途ごとにまとめるためのしくみ メソッドがあるだけで、オブジェクトには依存しない機能のカタマリ 共通の機能をメソッドから追い出して別途メソッドを作るのと同じように、 共通の機能をクラスから追い出して別途モジュールを作る(でincludeする)というのも妥当
516 名前:デフォルトの名無しさん [2010/03/15(月) 20:45:11 ] Mixinのためと単なる名前空間のため両方に使われる
517 名前:510 mailto:sage [2010/03/15(月) 20:54:21 ] >>515-516 thx
518 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:17:04 ] プロパティも実装されていない糞言語
519 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:27:30 ] それで遊んでくれるのはPythonスレぐらいだぞ ここは意外とDRY
520 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 22:52:35 ] クラスインスタンス変数とは、そのクラスオブジェクトの特異クラスに属する インスタンス変数という理解で正しいですか?
521 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:00:11 ] ごめん、さっき違うスレで質問したけど理解してなかったorz 3 class Hoge 4 def self.set 5 @hoge = "dynamic" 6 $hoge = "static" 7 end 8 9 def self.out 10 puts @hoge 11 puts $hoge 12 end 13 end 14 15 Hoge.set 16 Hoge.out 実効結果 dynamic static $hogeと@hogeって何が違うのさ?
522 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:12:55 ] 理解してたらああは言わん クラスインスタンス変数はクラスオブジェクトが存在する限り存在する Hoge と書くことで定数 Hoge に Class クラスのインスタンスが Ruby によってセットされる (同名のクラス定義がなかった場合は定数とみなされ、事前に代入されてない未定義定数でエラー) で、Hoge.set を実行することでインスタンス変数 @hoge がインスタンスの中でふつうに設定される それが属するインスタンスとは Class クラスのインスタンスで、つまり定数 Hoge が指すものだ だから、無理矢理 Hoge の内容を nil にするとインスタンス変数 @hoge はスコープごと失なわれる irb> class Hoge; def self.set; @hoge='hoge'; end; end irb> Hoge.set irb> p Hoge.instance_variable_get(:@hoge) "hoge" irb> Hoge = nil (irb):4: warning: already initialized constant Hoge irb> p Hoge.instance_variable_get(:@hoge) nil
523 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:22:49 ] 特異メソッド上で書くからわかりにくい? class Hoge @hoge2="hoge2" end p Hoge.instance_variable_get(:@hoge2) は "hoge2" を返すよ
524 名前:デフォルトの名無しさん mailto:sage [2010/03/15(月) 23:38:33 ] "プログラミング言語 Ruby" のp.326のなかほどに クオート文字列にマッチすることを意図した正規表現の例が以下のように 載ってるんだけど,文字集合内で番号指定後方参照ってできたっけ? /(['"])[^\1]*\1/ わがRuby1.9.1ではこうなった re = /(['"])[^\1]*\1/ p %('\1')[re] #=> nil p %('hoge'hoge')[re] #=> "'hoge'hoge'" いちおう念のために言っておくと クオート文字列にマッチする正規表現を求めているわけじゃなくて 文字集合内で後方参照や部分式呼出しができるか否かの確認ね
525 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:23:29 ] >>457 が何でそうなるのか解説求む
526 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:27:01 ] >>525 >>454
527 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:28:31 ] globってワイルドカードでも正規表現でもないのか なんでこんな面倒なもん作ったんだ
528 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:31:15 ] いや、zshの**を取り込んでるくらいで、 ワイルドカード(UNIXシェルの、だが)だよ。
529 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:31:34 ] ああ勘違いしてたわ txtだけはじかれてるのかと思った
530 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:32:09 ] ほぼワイルドカードじゃね?
531 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:32:50 ] あら遅レス失礼した
532 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:33:41 ] globにlsコンパチの引数受け付けるようにしてくれ
533 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:34:20 ] >>532 UNIXで誰がファイル名展開をやってるか知ってるかい?
534 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 00:44:33 ] えっ? 誰かがやってるなんてことあるわけないでしょう?
535 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 03:16:47 ] echo *
536 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 03:27:47 ] もうshellの機能をrubyに組み込むべきだなw login shellを/bin/rubyshにできていいかもしれないw
537 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 07:53:49 ] RubyShell って面白そうだな。 誰も使わないだろうけど。
538 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 07:55:47 ] RashだかRushってシェルがなかったっけ
539 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 08:46:18 ] イラネ
540 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 09:30:18 ] とある人のウェブページに、perlをログインシェルとして使ってみた報告があるぞ。 一度読んでおくといい。
541 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 09:33:51 ] いやRushが既にあるから
542 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 11:51:29 ] コマンドライン引数は定数じゃないの? 普通に文字列を代入できるんだけど
543 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:01:40 ] >>542 Rubyの定数は、警告 warning: already initialized constant ARGV は出るけど代入自体はできる。 あ、あと、 ARGV << 'hoge' なんてのは「定数への代入」じゃないからな。
544 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:03:05 ] $ ruby -e "ARGV=nil" -e:1: warning: already initialized constant ARGV いやきちんと定数として警告出ますが というかただの定数に過ぎない Rubyはこれを起動時から用意してるだけで、用意したあとは特別扱いをしない ただの配列を指す定数で、配列としての動作に従う 配列だから、要素を弄る限りはオブジェクトIDが同一で、定数としての適正を失わない irb> arr = [1, 2, 3] irb> arr[0] = 'one' irb> ARGV[0] = 'one'
545 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:18:43 ] 代入はできるけど、データのコンテナとして ARGV を使うのはおすすめはしない ただ、これは グローバル変数と定数を使う→ クラス変数を使う→ インスタンス変数だけを使う→ 全部引数での受け渡しにする→ 引数の数が大量になって鬱陶しいのでアクセサメソッド経由のインスタンス変数と引数の併用にする というような変遷をどうしてもみんな辿るので今はまだ気にしなくてもいいとも言える
546 名前:542 mailto:sage [2010/03/16(火) 12:25:44 ] とにかくコマンドライン引数には入れるなってことでしょ
547 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 12:47:18 ] def hoge= この=って何?
548 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:00:04 ] >>547 そのまんま 「hoge=」 という5文字の名前のメソッド ただ、末尾に = があるメソッド定義を Ruby は特別に扱うので、引数つきで定義しておいたほうがいい あと、foo.hoge = と = の前に空白があっても、Ruby はとりあえず foo のメソッドの中から hoge= を探す foo.set_hoge(v) とするよりも foo.hoge = v と書けたほうがなんかわかりやすくね、という理由で特別扱いされてる
549 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:07:59 ] 「プログラミングRuby 第2版 言語編」ですが、今から読むには 古すぎますか?それとも第3版が出て、絶版になる前に読んでおく べき? たのしいRuby、Well-Grounded Rubyist、初めてのRuby は読みました。
550 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:08:28 ] >>548 理解した、ありがとう
551 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:16:29 ] >>548 >「hoge=」 という5文字の名前のメソッド 通常の方法では代入文でしか呼べないから、ただのメソッドではなく演算子定義の一種と見た方がいい 一応引数無しでも定義できるけど__send__使わないと引数なしでは呼べない
552 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:17:42 ] >>551 Rubyの演算子はメソッドですよ
553 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:24:32 ] Rubyのユーザーは学生と暇人が多いのか? C/C++のスレには全然書き込みが無いんだけど Rubyは簡単だから、学生に人気があるのかな
554 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:29:41 ] 最近質問が多いね、春休みなんじゃないの? まあ俺も春休みだけど。。
555 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:30:46 ] 去年からずっとやすm
556 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:31:17 ] 仕事探せ
557 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:32:16 ] >>555 勝った!
558 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:33:11 ] >>557 お前は必死に仕事探せ
559 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:35:25 ] 学生と暇人とニートがいないとプログラミング言語は成長致しませぬゆえ
560 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:37:43 ] 学生と暇人なんて放っておいても沸いてくるんだから 無職連中はとりあえず生活基盤作れ
561 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 13:39:35 ] 暇な香具師を無料で奉仕させてこそオープンソースだしな。
562 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:18:15 ] >>549 初めてのRuby(yugui本)を読んで自分のものと出来たのなら 好きに進んでいいよ。
563 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:43:10 ] Rubyはいつになったら仕様が固定されるの? 安心して使えない
564 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 14:48:04 ] 1.8 は少なくともあと5年は使えるな。
565 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 15:06:10 ] >>562 レスどうも。 ツール作りでもしてみます。
566 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 15:08:40 ] 本の内容が新しいかどうかという話なら、新しくはない 1.8.7の1.9新機能入りプログラミングができないというのはなんとも歯痒い が、それはWebの情報でアップデートできる程度なので問題はなさそうかも むしろ最初からこれ教えたら混乱しそう
567 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 16:19:22 ] >>563 固定化されることはないと思う
568 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 16:22:33 ] >>563 はそもそも使わないからどうでもいい
569 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:52:28 ] ちなみに今から使い始めるならどのバージョンがお勧めなんだ
570 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:58:53 ] >>569 はテンプレも読まないからどうでもいい
571 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 18:58:54 ] 始めるだけなら 1.8.7 の最新だと思うが、 最新(p249)はString#inspectで最後の多バイト文字が文字化けするという デバッグや実験中に微妙にイラッとするバグがある。 気になるなら p174 で。 1.9系は夏に1.9.2が出るのでそのときまた判断だな。
572 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:16:27 ] やっと1.9sp2が出るのか。
573 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:18:21 ] それはまだ 1.9正式が出ただけ sp1が今度出る
574 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:22:45 ] >>571 $KCODE を設定した上で p で日本語を表示しようとした場合に最後の文字がバイト列のままになる だ p で日本語を表示しようとさえしなければ問題はないし、俺は表示しようと思ったこともない というかむしろ p を使うような事態のときは1.9でもデフォルトでバイト列表示しろやわかりにくいわぼけー どういう日本語を普段扱ってるかで違うんだろうな、このへん
575 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:25:49 ] p の意義からしてエンコーディングを考慮するほうが正当 ShiftJIS 文字列とか表示されて端末乱れるのはイラッとくるが
576 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:34:14 ] オブジェクトを機能拡張するためにモジュールで拡張したんだけど さらに状態の保持が必要な機能追加がしたくなった モジュールへの修正じゃ対応できないの?
577 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:35:16 ] require 'Hoge' include Hoge なんで、requireにはシングルクォートを付けないと怒られるのに includeには付けなくても怒られないの? たまたま、そうなっただけなのかな〜
578 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:41:28 ] >>577 require は基本的にはファイルパス 実際のファイルの大文字小文字が考慮される (が、あまりにも面倒なのでファイル名の時点で小文字だけにしようという取り決めがある) include の引数はモジュール名、つまり定数
579 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:44:08 ] >>576 すれば include はするたびにその順番に機能する
580 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:44:15 ] require 'Hoge' は主ファイル名だからじゃね?
581 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:46:41 ] >>578-580 ありがとう
582 名前:576 mailto:sage [2010/03/16(火) 19:47:24 ] >>579 (and all) どうすれば状態を保持できますか?
583 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:51:32 ] 状態って何
584 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 19:52:35 ] >>577 requireも単なる関数的メソッドとして実装されているのも理由の一つ Hogeというキーワードはrequireの実行を終える前には当然定義されていないし 予約語でもないから、リテラルを使うしか渡す方法(requireメソッドを実行する方法)がない 「Hogeをrequireしろ」「Hogeってなんだ?」 「Hogeを読めばわかる」「だからそのHogeって何だよ」 NameError: uninitialized constant Hoge Symbolでもよさそうだけどそのへんは>>578 なんだろう
585 名前:576 mailto:sage [2010/03/16(火) 20:01:14 ] もともとのオブジェクト以外に追加の情報を保持したいんですが たとえば配列クラスに最大値を保持するなど
586 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 20:22:21 ] >>585 エスパー発揮で obj = [1,2,3] obj.instance_eval{ @mymax = self.max } obj.define_singleton_method(:mymax){ @mymax } p obj.mymax なんか頭の悪そうなコードですまん
587 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 20:25:30 ] >>585 本当にしたいことを書いたほうがいいと思う include ではクラスにもともとあるメソッドを上書きすることができる でも、おそらくはそれが解決方法ではないと思われ 組み込みや標準添付のクラスを拡張することは好ましいこととは考えられてない(オープンクラスのくせに) 自分でクラスを作ってインスタンス変数とかにオブジェクトを保持するほうがいい オブジェクトの操作は自作のクラスのメソッド経由で行う class HogeData def initialize(a) raise ArgumentError, 'must be Array' unless a.kind_of?(Array) @hogedata = a end def <<(e) return if @hogedata.size > 2 @hogedata << e end def data; @hogedata; end end irb> hoge = HogeData.new([1,2]) irb> p hoge.data [1, 2] irb> hoge << 3 irb> p hoge.data [1, 2, 3] irb> hoge << 4 irb> p hoge.data [1, 2, 3]
588 名前:576 mailto:sage [2010/03/16(火) 21:18:59 ] では言い直します。 自分で書いたクラスのオブジェクトに追加の情報を持たせるには、 継承したり別のクラスに包含すれば可能だけど、すでにModuleで拡張しているので そこはできるだけ触らずにModuleに少し書き足す程度で実現できないか? Module内でインスタンス変数的な情報を保持する何かを定義できないか?
589 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:34:12 ] >>588 よくわからんけどこれでダメ? ダメならどうダメかをコードとして提示してくれると他の案を言えるかも module M end class C include M def foo @foo end end module M def bar @foo = :bar end end obj = C.new obj.bar p obj.foo #=> :bar
590 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:53:46 ] >>586 Moduleの使い方・考え方が間違ってるような気がするなあ あるクラスがModuleをincludeした時点でそのクラスのインスタンスは 存在していないわけだからインスタンス変数を設定したり保持したり できないでしょ アクセサの定義ならModuleでもできるけど module M def data @data end def data=(arg) @data = arg end end class C include M end
591 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 21:55:33 ] 591レス目 ズレている人はレスデータの再読み込みをしてください
592 名前:576 mailto:sage [2010/03/16(火) 22:01:45 ] それだとobj.barを書かなければいけません。 質問は、Module内を書き換えるだけで、外側には一切手を加えずに@fooを初期化できるかということです。
593 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:02:14 ] なにその出来の悪いGUIのリストみたいな現象
594 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:04:28 ] module内でinitialize書き直したら?
595 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:08:09 ] >>594 それはできない
596 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:16:53 ] ほんとにできない?
597 名前:576 mailto:sage [2010/03/16(火) 22:18:32 ] >>590 インスタンスが作成された時点でincludeされたmoduleを通して 何かしらinitialize的メッセージが送られるようなことは無いよねって話です あるいはC言語で言うところのスタティック変数は無いよねってことでも結構です >>594 もう試した
598 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:20:06 ] module M def self.included(klass) klass.class_eval do def initialize @foo = :bar end end end end class C def initialize @foo = :baz end attr_reader :foo include M end p C.new.foo #=> :bar
599 名前:デフォルトの名無しさん mailto:sage [2010/03/16(火) 22:21:22 ] >>595 めんどくさい、が正解だと思う include先が継承とかしてたらsuper呼ばんといかん
600 名前:576 mailto:sage [2010/03/16(火) 22:51:09 ] >>598 すばらしい!! ありがとうございました。
601 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:02:54 ] 読み込むモジュールを変えるとinitializeが スイッチされるってのは面白いかも なんか騙されてるような気もするなあ
602 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:16:58 ] まあ、あまり性質のよいものではない
603 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:26:10 ] 複雑なマッチ条件を使いたい場合、 if /hoge/ =~ obj.str and /huga/ !~ obj.str and ... と延々と続いて見づらいのですが、スマートに書けますか?
604 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:27:24 ] >>603 メソッドにしてしまうのがひとつの手ではある 基本的には全部書くしかない
605 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 00:31:44 ] 自分が時々やるのは match1 = obj.str =~ /hoge/ match2 = obj.str !~ /fuga/ match3 = obj.str =~ /fuge/ if match1 and match2 and match3 body_stmt end こう。 でも条件分岐だけで10行超えるなら独立のメソッドにする
606 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 01:02:19 ] なるほど。ありがとうございます。
607 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 03:52:24 ] &&= 使った方が無駄なマッチングがないんじゃないかな。 正規表現のマッチくらいでそんなに重くなったりしないけど〜。
608 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 08:17:07 ] >>481 aptanaよりは軽いぞw そもそもRubyの文脈考慮するコード補完でまともに高速に補完できるIDEみたことない。 俺もそれは困っているし、もっとよいIDEがあればぜひ教えて欲しい。 irbとかJavaとかC#みたいにバンバン補完できればいいんだけどねー。早々簡単にできないのわかってていってるけどw テキストエディタレベルの単語補完ならばNetBeansでも高速できる(デフォだとたしかCtrl+K)。
609 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 08:43:03 ] 現在の単語に続く語を見つけるだけならEmacsでも超高速でできるぞ
610 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 09:03:06 ] >>482 > ttp://d.hatena.ne.jp/kitamomonga/20100202/ruby_watir_crash_with_autoitx3 複数引数のsystemを使うべきところだな。 クォートだとなんだの気にする必要がなくなる。
611 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 09:33:26 ] >>609 もちろん、vimでもxyzzyでも単語の補完はできるけど、>>481 はそういうこといってるんじゃないんだろうし インテリセンスみたいなやつだろ
612 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 09:52:28 ] >>575 > ShiftJIS 文字列とか表示されて端末乱れるのはイラッとくるが これは 1.9.2 の改善点の一つ
613 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:07:47 ] 実行しているスクリプトが置かれているディレクトリを調べる方法を教えてください
614 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:10:40 ] __FILE__
615 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:12:36 ] File.dirname($0)
616 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:19:01 ] Dir.pwd
617 名前:613 mailto:sage [2010/03/17(水) 11:25:40 ] 絶対パスで欲しいんですが
618 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:27:05 ] expand_path … は内部で呼ばれてるからいらないんだっけか
619 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:31:17 ] ああ、やっぱいるよな >>617 :~$ cat a.rb p File.dirname(__FILE__) p File.dirname(File.expand_path(__FILE__)) :~$ ruby a.rb "." "/home/ore" :~$ ruby /home/ore/a.rb "/home/ore" "/home/ore"
620 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:38:49 ] >>481 >>608 NetBeansの文脈依存補完ってどのレベルまで補完してくれるの? 変数の参照先オブジェクト(のクラス)を推測したり メソッドチェーンの返り値を推測して 続きのメソッド名を補完できたりする?
621 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:40:27 ] >>618 だいぶ前にあったのは expand_path の基点となる第2引数が自動で dirname されてるという話だと思った dirname の中で expand_path が使われるということはないように見える
622 名前:613 mailto:sage [2010/03/17(水) 11:51:55 ] >>619 ありがとうございます
623 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:53:48 ] $0 と __FILE__ ってどうちがうんですか?
624 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 11:59:29 ] $0 は実行中のスクリプトのファイル名 __FILE__ はそれが書かれているファイル自身のファイル名 スクリプトファイルを実行した場合は両者が一致する。 requireなどで他のファイルから読み込まれた場合は一致しない。
625 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:09:46 ] 相談です。 ttp://www.rubylife.jp/ini/japan/index5.htmlのページにある 1 #! ruby -Ku 2 print("表示する") 3 [EDF] というプログラムをterapadで作り保存してコマンドプロンプトで実行すると、 そのページに依れば文字化けした言葉が出てくるはずなのですが、しかし test1-3.rb:2: unterminated string meets end of file test1-3.rb:2: syntax error, unexpected $end, expecting ')' と表示されます。 でも「表示する」の部分を「日本語で表示」に変えるとちゃんと文字化けします。 原因がプログラムで解決できるものなのかエディタを変えないといけないと解決できないのかも分からないので、 どうしたらよいかを教えてくれないでしょうか?
626 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:29:10 ] 俺はこのサイト(正確には「このチュートリアルサイト群」)はあまり好きではない 初期のSEOがあまりに迷惑で悪い印象が残ってしまっている はともかく >>625 あんま気にするな 表示する端末のサポートするエンコーディングと 文字列のエンコーディングが合致していないとまともに動作しない、が本質 ぶっちゃけ、日本語文字列を直接書いてしまったファイルが、-Ks などのエンコーディング指定なしで 日本語文字列を含んだRubyスクリプトとしてきちんと解釈される保証はない 「うわーまともに動いてねーよ」と納得したら次のステップに行ってよし
627 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:36:07 ] 回答ありがとうございます。納得してから気にせず先に進みたいと思います。 どうしても出費を抑えたいのでそういったサイトに頼っているのですが… 自業自得か。orz
628 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:37:44 ] 文字列変えるだけでパースエラーになったりならなかったりってのは エンコーディングの不一致とは関係ないんじゃない? 表 (SJISのダメ文字のひとつ) の位置が問題なのかな。
629 名前:デフォルトの名無しさん [2010/03/17(水) 12:41:59 ] RubyってWindows用だといろいろあるじゃないですか Linux用の場合は1つしかないのでしょうか? このへんであまり考えたくない為、もしLinuxで1つしかなのでしたらLinuxで始めたいと思います。
630 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:42:37 ] それエンコードの不一致でおきる問題ですがな
631 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:43:33 ] >>629 1.6.x 1.8.x 1.9.x いろいろある Rails のバージョンによってもさらにバリエーションがw
632 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:43:42 ] >>629 まあ動作的にはひとつとみなしてよいかと 少なくともWindowsのような面倒なことはない
633 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:44:44 ] Windows 版のどこがどう問題なのですか
634 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:46:21 ] スレでWindowsという文字を見ると不機嫌になってしまうおじちゃんからいじめを受けます
635 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:48:55 ] Windowsで使いたければPython使った方が良いんじゃない? RubyはWindowsのメンテナが不足気味。LinuxかMacで使うべき。 Rails だって Windows はサポートしてなくて、今までたまたま 動いてたけどいつの間にか動かなくなったとか聴いた。
636 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:50:04 ] ほらな
637 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:51:34 ] 漏れもそう思う RubyはWindowsと相性が悪い Pythonの方がWindowsとの親和性は高い *nixの場合はどっちでも相性が良い つまりPython>Rubyであって Rubyを選ぶ理由がないんだよなぁ
638 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:57:48 ] つまりC#最強ということですね
639 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:57:50 ] Pythonってインデントで書くから気持ち悪い
640 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 12:59:06 ] VBみたいな記述のRubyのが気持ち悪い
641 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:02:12 ] end ってw
642 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:04:56 ] Rubyはプログラミングと関係ない部分で手間がかかる
643 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:08:02 ] >>637 そんなポータビリティが常に必要か? たとえばMacOSXで動作しないバイナリを吐く言語で書く意味は何?
644 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:11:22 ] うん、あなたはRubyをWrite once, run anywhereの再来だと吹き込まれたのかもしれないが、それは違う それを暴いたのは俺たちかもしれないが、殴るなら暴いた人間ではなくあなたを騙した人間を殴れ
645 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:12:45 ] IronRubyが出る頃には、まともになってる?
646 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:17:27 ] >>644 似たようなものに「Rubyは初心者にも簡単」があるな パソコン初心者やプログラミング言語初心者の人にとって独習可能なほど易しいとはそれほど思えない
647 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:34:44 ] 初期(または現在も)の謳い文句に「Cで拡張ライブラリを書くのも簡単」があった これも 「(動作上速度等で不満があれば、あなたが使い慣れている)Cで拡張ライブラリを書くのも (たとえばこんなふうにC言語でずらっと書けばほら)簡単」 という意味だったからな 初心者として想定しているレベルがそもそもぜんぜん違う C言語をある程度使えることは当然だし、Perlや主要UNIXコマンドの動作を知っていることや 文字エンコーディングの知識をもっていることも当たり前とされている (初心者の想定としてはワークステーションの使い方教えられて慣れた感じの大学3年生くらい?) それはマニュアル見れば一目瞭然 「Cのあれ」「コマンドのあれ」「Perlのやつ」という表現ばかりだ 最近は文章上は若干表現が砕かれたが、知識として知っていることが前提なのは何も変わらないのでむしろ
648 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:37:57 ] 隔離スレに帰れ
649 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:39:04 ] 質問スレだしなあ ・ Ruby自体は便利 ・ ただしコンピュータ初心者やプログラミング初心者が独習可能なほど易しいかは怪しい ・ Windows上ではあまり便利ではない ・ Rubyは便利だが、儲かることや役に立つこととは別の便利さ こんな感じ?
650 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:42:47 ] ・ Rubyは自分のため ・ Javaは給料のため ・ Pythonは他人のため ・ Rubyがコンピュータ初心者やプログラミング初心者が独習可能なほど易しいかは怪しい ・ Rubyは自分のために使うと便利だが、Windows上ではあまり便利ではない こうだ
651 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:44:48 ] Windows上で便利に使いこなしてるおれは勝ち組
652 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:53:45 ] Ruby厨っていつも言い訳してるよねw 便利ってなんだよw まともなIDEもないのに便利も糞もあるか ライブラリはバグだらけで使えない バージョン変わると言語仕様も変わってソース書き直しw
653 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:55:38 ] >>620 (NetBeans勧めておいてなんだが)文脈依存補完は重くてあまりつかってないんだが、 あまり優秀でない感じがした。irbの補完とどっこいどっこい 静的型付けの言語みたいに hoge.(ドット) ってうっていきなりリファレンス替わりにいきなり補完の候補だして 書き始めることはできない感じだった。補完速度の遅さももちろんあるが、候補が多すぎる。 メソッド名途中まで書いてからならかなりしぼれる。この辺はirbもそうだけど。 どんな技術で補完してるかは詳しくないので公式サイトなりでも調べてもらった方がよい気がする
654 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:56:32 ] なんか春を感じるな
655 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 13:57:21 ] >>646 (Windowsユーザー以外の、パソコン初心者以外には)「Rubyは初心者にも簡単」
656 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:08:29 ] >>655 それは初心者とは言わない コンソールでちまちまやっているのが日常のやつなんて一部 それなのに「初心者がはじめるにはどの言語か」という発言だけで Rubyすすめるバカがいるからな
657 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:12:21 ] >>656 あれは意図的な悪意だろ 俺らが止めることはもはやできない
658 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:29:59 ] >>625 です。エディタので文字コード指定再読み込みをUTF−8 でしたらちゃんとエラー表示がなくなり日本語が表示されましたので一応ご報告を。
659 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:47:00 ] なんでもできるなら迷わずC#だな これでできないことはないし 非常に便利 Rubyのどこが便利なんだよwwアホかw
660 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 14:55:30 ] >>652 >>659 もりあがっているところ申し訳ないのだが、その手の話題は本スレでお願いしたい。 Rubyについて Part 39 pc12.2ch.net/test/read.cgi/tech/1265467681/
661 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:06:32 ] これから学ぶならPHPではなくパイソンかルビーがオヌヌメ って記事読んでこのスレに来たけど騙されたか・
662 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:12:20 ] >>661 C#がいいよ 未だに進化し続けている言語はこれぐらい
663 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:19:37 ] >>662 Pythonは進化は一休み宣言してる Rubyは進化のためなら互換性を切り捨てることを厭わない
664 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:20:58 ] >>661 これから( のために)学ぶなら( な)PHPではなく ( な)パイソンか( な)ルビーが( の点で)( な人に)オヌヌメ これが全部埋まってないようなものは与太 信じるほうが悪い
665 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:22:23 ] 女に嫌われるタイプだなw
666 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:22:52 ] PHPっていらない子なの?
667 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:23:37 ] >>666 >>664
668 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:37:34 ] むしろRubyは初心者向け言語ではない難しい言語だっていう イメージをもっと広めてもらいたい Rubyが超得意ですキリッっていっても 初心者向け言語ねプッ初心者いらね とあしらわれるのが現状の就職戦線だからな
669 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:39:20 ] rubyをやる気なくしてきた…(´;ω;`)
670 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:41:50 ] 今のところプログラムの話題なし Ruby擁護レス、批判レス、バグ報告レスだけ
671 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:44:53 ] Rubyで就職狙うなんてありえんわww これがWindowsもないころなら 簡単と言ってもよかったがな 今更文字処理得意ですなんて言われてもな 真っ黒い画面で文字打つだけって最近のガキじゃ無理だな
672 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:49:34 ] Rubyをやりたくてやるんじゃない、やってしまうのがRubyist
673 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:51:22 ] >>671 加齢臭がします>< >真っ黒い画面で文字打つだけって最近のガキじゃ無理だな 小学生でも出来るよそんな事^^
674 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:53:18 ] Rubyistはスキルも性格もいいので開発メンバーからは良くたよりにされる だがたよりにされたいからRubyをやってもダメだと言う事が最近わかった Rubyをやるのは真にRubyistの人だからRubyをやりたくてやるんじゃないやってしまう者がRubyist PHPerはざんねんがはっきりいってスキルはつかわないし性格も裏メールとかイマイチだから信頼されにくい
675 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:53:46 ] つまんねっていってるんだよ C#ならいきなりGUIが作れます
676 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:54:55 ] >>674 妄想乙 Ruby信者は各スレを荒らしている キチガイばかりが集まった低脳集団 だから就職でも嫌われるんだよ
677 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:55:50 ] ブロントさんネタがどこでも通じると思ったら大間違い。
678 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:56:02 ] >>661 >>669 結局、用途によるよ (異論はあるだろうが)初心者=Windowsとして・・・ ・ちょっとした文字列処理とかの書き捨てるようなスクリプトには便利 ・mechanizeとか使って、コピペサイトや2chからエロ画像とか自動収集してきてzip化!!1とかに便利 ・かっちょえー、webサービス作りたい!!11とかならcoLinuxかVMWareか入れてRails学ぶ ・別にちょっとしたCGI的webアプリならRailsじゃなくてもいい(やってる人はやってる) 他の言語でもできる、と言われたらそうだけどw 「Rubyはプログラミングを楽しみたい人のための言語」というように言われるが、それはあるとおもうよ。 (ただし、環境整えるの面倒とか、Windowsでこのライブラリ動かねーとか普通にあるのはおいておいてだな)
679 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:56:21 ] Ruby信者=C++も使えないバカ ここはC言語わからなくて逃げ出しちゃった子の巣窟
680 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:57:22 ] 一人変なのがすみついたな・・・
681 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:58:11 ] 初心者スレでここは云々言われても
682 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:58:51 ] ぶっちゃけ、ここが本スレじゃないの?
683 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 15:59:44 ] ぷ
684 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:01:16 ] >>678 それぐらいならC#で余裕で出来るな まずインストールでこける 無事インストールできてもRubyは日本語リファレンスが充実していない サンプルがない ユーザー数が少ない Rubyスレは低脳ばかり 就職で使えない 特異言語のRuby覚えても他の言語で応用が効かない ライブラリはバグだらけ メンテナンス作業をするために時間をとられてWindowsユーザーはまずプログラミングに集中できない 初心者=Windowsユーザーではない 大部分の初心者がWindowsユーザーということだ
685 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:03:11 ] まともにレスするのが馬鹿らしくなってきた。。。
686 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:04:39 ] >>684 C#スレから来ました スレとは関係ないんですが、もしかしてニートですか? 僕も30歳ニートです。
687 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:09:21 ] >>678 仮想osにubuntuでも入れれば使いやすくなると言うこと? 将来性の面ではrubyはいいと言うのをよく見かけるけど、 これに関しては他のと比較してどうですか? > Rubyはプログラミングを楽しみたい人のための言語 個人的にはこれが気になる。 趣味だから楽しんでなんぼだし
688 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:11:19 ] 楽しくないよバグだらけで GUIすらまともに作れない IDEもないじゃねぇ
689 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:14:08 ] オーケー IDEをNGワードにした WIDEとかAIANMEIDEN(ローマ字綴り)とかの話題をしないようにお願い
690 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:20:12 ] >>687 とりあえず仮想OSの話だけ。 webアプリ作るのに便利なRailsというRubyで動く代表的なwebフレームワークがあるんだけど、 それを使うには仮想OSやcoLinuxでUbuntuでも入れた方が、格段にトラブルが少ない、ということ。 Railsのコア開発者がそもそもWindows使ってなくて、Windowsだとイマイチ不安定だったり起動が遅かったりするのと、 Windowsでそのまま動かせないライブラリなんかがあったりする。 最終的に動作させるOSもUbuntuとかのUnix系OSになるだろうし、 仮想OSにUbuntuかCentOS入れて開発した方が楽ということ。 ただし、そもそもRailsは共有レンタルサーバーだと動かしにくい(というか重い)のに注意。 だからRails使わずにCGIで頑張って作ってる人もいることはいる。Railsばかり注目されて目立たないけど。 ちなみに、ちょっとしたスクリプト書いたり学習する分には別に仮想OSじゃなくても問題ないだろう。
691 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:20:14 ] I.D.Eもない糞言語なんて今時やってられるかよ 真っ黒い画面で文字打つだけで何が便利だよww どこが楽しいんだよwww笑わせるなww
692 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:24:52 ] ID欲しいな。 IDEは別にいいや。
693 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:30:07 ] この荒らし他のスレでもいるっぽい?数日続くようなら後でまとめて運用に報告してくるんで、スルーしといて下さい。 下手にレスしてまきぞえ規制くらってもしらん
694 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:43:06 ] 批判されると荒しとかどんだけゆとりなんだよ
695 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:45:18 ] >>694 荒らしかどうかは内容によらない
696 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 16:51:26 ] >>693 C#スレにコピペ荒ししたのお前だな 報告しておいたから
697 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:16:52 ] コア開発者というのはだいたい10人くらいなのだが、その半分くらいはWindows使ってるはず。 Windows向けのコードも数人書いてるし、定期的にビルドもされている。 Windowsで遅いってよく言われるのは、バイナリモードの話と、プロセスの起動が遅いって話じゃないかな。 前者はFAQだし、後者はcygwinのconfigureで顕著だけどWindows自体の話だからどうにもならん。 Windowsで動かないライブラリがあるのはその逆も真なはずだからいいよね。
698 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:39:30 ] >>697 1.8.7-p160のような話も混じってるのかもね ライブラリの不満は動くかどうかよりも バイナリが用意されていない(gem install一発で使えない)のほうが多い気がする もしかしたらASRでも一発でいける方法・設定があるのかもしれないけど俺は知らない
699 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:40:51 ] てかRubyがJava|C++|C#|Pythonじゃないって、だからなんなのって感じ
700 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 17:41:38 ] >>699 PerlやPHPもIDEがないから流行ってないんだよきっと
701 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:04:31 ] ぶっちゃけインタプリタで最強なのはPHPしかないよ Rubyはメモリ関係が弱いって言うじゃんしかもWinは動作保証してないんでしょ Pythonはあの独特なコーディングと日本語訳がないから英語読めない人お断りじゃん
702 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:04:32 ] IDEらっきょ
703 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:05:58 ] いや別に最強とか決めるためにプログラム言語使ってるわけじゃないんで
704 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:09:19 ] ASRをインスコしてデスクトップのショートカットをダブルクリックしたら コマンドプロンプトが起動した… WINのrubyってコマンドでプログラム書くの? 自分は何か致命的なミスをおかしてますか?
705 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:11:18 ] >>704 実行環境であって開発環境ではない
706 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:12:23 ] >>705 なる もーちょっとあちこち見て回ります
707 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:13:10 ] >>704 文法に沿って書いたテキストファイルをruby.exeに読み込ませると ruby.exeが必要なRuby用ファイルを読み込んで テキストファイル内で指定された動作を対象ファイルとかに対して行う 動作を指定したいことがないような人には無用の長物
708 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:15:54 ] >>704 あれはRubyを実行するのに都合のいい設定済みのコマンドプロンプト
709 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:18:22 ] >>704 コンパイルするときいちいちコマンドプロンプトで ファイル名書いてやらないとだめだよ またライブラリ使うとオプションも書かないとだめだし 何度もテストするのにいちいちファイル名を文字入力しなければならない
710 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:22:25 ] スレ住民一同苦笑しております
711 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:23:23 ] しまったコンパイラじゃなかったわ
712 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:27:58 ] >>707-709 ども 開発環境はRDE? なんか上の方でRDEは嫌われてるっぽいんですが というか仮想OSでUBUNTU辺りでやった方が良いの? もーなにがなんだかw >>710 ここで自分の質問が問題あるならこれをもってROMに戻ります 問題あるならここにでも行って帰ってくんなと言う誘導でも下さいね
713 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:28:46 ] >>712 >>709 は無視 無視してないの君だけだ
714 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:33:34 ] >>712 RDEはRuby無関係のRDE固有のトラブルを自力で切り分けて解決できる人向け 「普通のRubyではできるのにRDEでは違うということはRDEが悪い」という判断ができないと無理 基本はテキストエディタさえあれば作成は可能で、それだけで作ってる人もわりといるが、 そういうことに慣れていないならそれだけで嫌になる可能性はたいへん高い
715 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:36:46 ] >>712 多分インストールする時点で挫折するでしょう ここではインストール方法は教えないので自力でやってください
716 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:39:52 ] >>712 >>710 は >>709 あて とりあえずWindowsでやってみて不満が出るようなら 仮想マシン+Ubuntuへの乗換えを検討してみたらいいんじゃないか 出回ってる本で勉強するぐらいならWindowsでもまったく問題ないよ コマンドプロンプトの使い方がわからなかったら カレントディレクトリっていう概念とCD、DIRコマンドの使い方だけ抑えてくれ テキストエディタは保存と編集だけできれば十分
717 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 18:47:27 ] めんどくさ >>712 なんらかの、IDEと呼ばれるタイプの開発環境を使用したことがないのなら何も勧めない >>714 の言うようにRDEは初心者が使うものではない どうしてもウィンドウが3つくらいないと死ぬとかそういう病気の場合は EclipseかNetBeansがいちおうRubyに対応している ただ、IDEを使ったことがないなら使用は勧めない IDEの余分な操作で余計に混乱すると思うから メモ帳でも開いて puts "Hello, Ruby!" と1行書いて "a.rb" とでもしてファイル保存して ruby console ダブルクリックして a.rb を黒い画面にドラッグアンドドロップしてEnterすると Hello, Ruby! と黒い画面の次の行に表示される そんな程度
718 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 18:50:57 ] >>713-716 了解 しばらくエディタでやってみます >>715 インストールは何のインスコを指してるのか判然としないが とりあえず自力でやります >>717 めんどくさいことわざわざどうも
719 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:07:10 ] ruby console ダブルクリックして a.rb を黒い画面にドラッグアンドドロップしてEnterすると ↑この作業を毎回しなければならないのは苦痛でしかない C#ならF5押すだけで済む
720 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:09:45 ] a.rbをダブルクリックでおk
721 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:10:33 ] インタプリタの意味が無いな
722 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 19:12:12 ] >>719 コマンドプロンプトの履歴は上キー 一覧から選びたいならF7 コマンドライン入力中に履歴補完したいなら入力途中でF8 ファイル名補完は設定によってはタブでも動作する
723 名前:デフォルトの名無しさん [2010/03/17(水) 19:15:35 ] rubyで出来たpukiwikiのパーザってありますか?? pukipaはtableが使えないのでダメでした
724 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 19:16:09 ] あと >>719 > C#ならF5押すだけで済む それはC#の機能ではない そもそもC#に編集機能などない それはVisualStudioの機能だ
725 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:25:26 ] >>709 csc /t:winexe hoge.cs /r:PresentationFramework.dll /r:PresentationCore.dll /r:WindowsBase.dll こうですね、わかりません
726 名前:デフォルトの名無しさん [2010/03/17(水) 19:53:08 ] >>◆Y4m3jU.1h. 全レスはとても親切だと思うんだけど, 入門書の第1章を読めばわかるレベルの質問ならば 入門書を挙げるだけでいいと思う。 なにも読まずにつまづいて調べもせずに いきなり人に聞こうとする質問者に 手を差し伸べてたらキリがない。 あと妙な書き込みにレスつけてると相手の思う壺。
727 名前: ◆Y4m3jU.1h. mailto:sage [2010/03/17(水) 19:55:35 ] >>726 こうやって可視化すると文句言えるんだな
728 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 19:59:36 ] この板はIDあったほうがいいなと思うことはある
729 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 20:21:10 ] C#荒し厨(C#厨ではない)にはレスつけずスルー推奨 C#スレ見たけどあっちでも嫌われてるじゃねーか(そりゃそうか
730 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:01:16 ] >>724 そんなのわかっているし、そういう発言自体がナンセンスなの 言語だけでプログラミングできるとでも思ってるわけ? 開発ツールがなければできないだろ 電波飛ばして直接ハードディスクにデータ書き込む気?
731 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:02:54 ] >>727 名無しではみんな強気だからな
732 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:25:50 ] 匿名になると無責任になるってばっちゃが言ってた
733 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:26:00 ] C#で湧いてくる人を見ると 『あぁブビ厨ってこんな感じだったんだろうなぁ』 と、当時が偲ばれてノスタルジックになれる ・・・かもしれない
734 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:29:36 ] 最近Rubyはじめた初心者だけど、IDEとか使わない方が 覚えることが少なくて楽だと思う 確かにDOSプロンプトで作業するとなんかイライラするけど、 cygterm (cygwin+teraterm) の端末なら快適
735 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 21:36:14 ] cygwinならminttyもいいぞ "mintty -"でログインシェルで起動するのを忘れずに
736 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:25:38 ] DOSプロンプトなんてとっくに滅んで存在しないだろ。 NT系は最初から「コマンド プロンプト」だぜ。 つか、現代のコマンドプロンプトは、ヒストリついてるし、 最初からファイル名補完有効だし、意外と便利。
737 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:30:40 ] UTF-8も満足に表示出来ないターミナルで便利とかちょっと PowerShellならまあ…っていまだに使い方わからんけど
738 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:30:48 ] 最近はPowerShellとか言うやつじゃないのか。
739 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 22:35:13 ] コマンドプロンプトからPowerShellを起動した場合はUTF-8表示できなかったような ただPS用にISEっていう統合環境があってそれなら表示できる ただPSは肝心の文法がキメラでして
740 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:03:53 ] 統合開発環境ってのはまずそいつの使い方を知らないと勉強を進められんからな 知ってりゃいろんな事がボタンひとつで出来るかもしらんが環境変わるとまた使い方を調べにゃならん そしてWindowsはこれがないとプログラミングがまともに出来ない
741 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:17:35 ] コマンドプロンプトUTF-8非対応のおかげで、rspecとかautotestで文字化けするから spec_helperとかでモンキパッチで変換かますか、 autotestでCtrl+Cで強制終了してしまうのを我慢してUTF-8対応cygwinターミナル使うかという感じだ。 PowerShellだと表示出来るのかな、試してみるか・・・ 結局、UTF-16に変換かまさないといけなかったらあまりおいしくないなあ
742 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:19:46 ] >>740 IDEというか統合環境のいいところは、1つ覚えたら大体他もそれなりに使える、というところじゃないかなぁ? そんなにカスタマイズしなくても馬鹿でも使えるからいいんであって。 emacsとかvimはカスタマイズしないとまともに使えないだろw
743 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:22:51 ] エディタとコマンドプロンプトの切り替えにAlt+Tabがあれば基本なんとかなるだろ 必須になる意味がわからん まさかマウスクリックでタスク切り替えしてるのか
744 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:27:18 ] >エディタとコマンドプロンプトの切り替えにAlt+Tabがあれば基本なんとかなるだろ そんな環境でプログラミングしてるのか大変だな
745 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:29:29 ] >>741 ISEはあくまでPowerShell用の環境 コマンドプロンプトの上位互換的使いかたはできないと思われ もしISEのプロンプトからirbとかしようものなら 延々入力を待ち続けてCtrl+Breakするまで戻ってきますん
746 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:30:16 ] エディタカスタマイズ派 統合開発環境派 メモ帳+Alt+Tab派 他には?
747 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:30:46 ] 脳内にRubyインタプリタ実装派
748 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:33:58 ] cmd.exeでUTF-8の表示だけできれば満足ならプロパティでフォントをMSフォントに変更してchcp 65001してやりゃいい 入力はあきらめた方がいいけど
749 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:45:08 ] ここは本スレか
750 名前:デフォルトの名無しさん mailto:sage [2010/03/17(水) 23:49:27 ] 本スレです。
751 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 00:12:00 ] なんというかココ酷いね
752 名前:デフォルトの名無しさん [2010/03/18(木) 02:39:30 ] rubyで出来たpukiwikiのパーザってありますか?? pukipaはtableが使えないのでダメでした
753 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 02:47:05 ] なんでこんなに粘着アンチは毎日ネガキャンに必死なんだろうな 周囲の環境を否定することでしか自我を保てない哀れな野郎だ
754 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 03:31:29 ] Windows厨なんで開発環境といったら ・メモ帳 ・TeraPad ・RDE ・Eclipse ぐらいしかしらんなぁ IronRubyに限るなら ・SharpDevelop っていうのもありだな 個人的には、RDEが好きなんだが バグが多いのと、開発が止まっているのが難点だな IDEは、どっちかというと、オレのように頭の悪いやつ向けだな オブジェクトがどこにあるとか、どこにどのメソッドがあるとか 解りやすくしてくれる。 ただし、設定が面倒で、動作がもっさりしてる。 そういうのが嫌いなら、TeraPadとかの高機能テキストエディタがいいね 何にも設定しなくても、それなりに見やすい。 動作も、さくさくしてる。 IDE使ってると見落としがちな、Rubyそのものの動作を体感できる。 初心者は逆にこっちのほうが良いかもね。 しばらく、メモ帳つかってメンドクセーって思うようになったら、IDEつかってみたら?
755 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 09:12:18 ] >>748 chcp 65001するとまともに使えない@Vista
756 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:53:23 ] そういうのが嫌いなら、TeraPadとかの高機能テキストエディタがいいね ^^^^^^^^^^^^^^^^^^^
757 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 10:59:46 ] >>756 ttp://www.vector.co.jp/vpack/filearea/win/writing/edit/terapad/
758 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:01:13 ] メモ用紙で充分
759 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:03:56 ] 自由帳と脳内インタプリタでおk
760 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:25:58 ] require するファイルがたくさんある場合 thread を使って並列に読み込むと 速くなりますか? 何か副作用はありませんか?
761 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:27:54 ] >>760 速くならない
762 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:35:30 ] 結局I/Oでブロックされそうだな。
763 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 11:44:42 ] インストール時に1枚のファイルにするようにするとかの気遣いが欲しいところ require 'hoge' するとでっかいひとつ require 'hoge/foo' だと個別
764 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:00:57 ] >>761-763 ありがとうございます! >>763 それは自分がライブラリを作って公開する場合の心得ってことですよね
765 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:50:22 ] Rubyのスレッドの実装っていまどうなってるんだっけ
766 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:55:03 ] >>765 実装の話題は本スレで
767 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:57:23 ] じゃあ質問を変えるよ requireに限らず、ボトルネック回避以外の目的にスレッドを使って高速化することはできる?
768 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 12:58:17 ] >>767 できない 少なくとも1.8ではできない
769 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 13:00:38 ] C++で作られているライブラリのバインディングを使っているのですが、 列挙型ってどうすればいいんですか? >Ruby には言語の機能としての列挙型がない。 >ちょっと使いたいことがあって、いくつかのパターンで列挙型ぽく振舞うものを書いてみた。 こんな事を書いてる記事もあるわけですが、いちいちこんなに面倒くさい事をしないとダメなのかな
770 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:34:37 ] p true and false #=> true p true && false #=> false なんで? あれなんか凄い勘違いしてる?
771 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:44:51 ] >>770 p (true and false)
772 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:46:36 ] >>770 演算子の優先順位のせい ttp://www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#and p true and false #=> (p true) and false p true && false #=> p false
773 名前:デフォルトの名無しさん [2010/03/18(木) 14:48:24 ] www.ruby-lang.org/ja/man/html/_B1E9BBBBBBD2BCB0.html#and まず、左辺を評価して、結果が真であった場合には右辺も評価します。and は同じ働きをする優先順位の低い演算子です。 and を伴う式をメソッドの引数に渡す場合は二重に括弧が必要となります。
774 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:49:36 ] かぶりすぎワロタ
775 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:54:56 ] >>771-773 thx 把握した そして and or が嫌いになった condition = hoge and fuga も condition = (hoge and fuga) か condition = hoge && fuga としなきゃいけないわけか
776 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 14:57:11 ] ちなみにPerl5の同様の演算子を踏襲している。 式2つをえせ英語として読めるように書きたいときはand/or を使う感じ。 do(it) || raise; do it or raise;
777 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:02:08 ] そだな ttp://perldoc.jp/docs/perl/5.6.1/perlop.pod 集合とかの AND や OR とかのように and や or を使うことはできない 記号優先なのが Perl っぽいといえば Perl っぽいといえなくもなく
778 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:02:43 ] a == 0 and b < 0
779 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:05:47 ] perl のは or die と書きたかったがためだけにこうしたような気がしてならない
780 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:56:10 ] >>779 十中八九そうだと思う・・・
781 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 15:57:03 ] Perl はどうかしらんが Ruby で foo or bar and baz は (foo or bar) and baz なので注意。 foo || bar && baz は foo || (bar && baz)
782 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:03:27 ] RubyもPHPみたいにCGIとして動作させることができるの?
783 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:05:01 ] もちろん
784 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:15:00 ] Rubyというか 標準出力を吐けるものならなんでもCGIで使用可能 むしろCGIって名前自体がそういう意味なんだと思うけど httpdでハンドラが適切に設定されている必要はある
785 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:29:01 ] >>782 ただしすこし遅い PHPやPerlより確実に遅い(mod_rubyでも素のPHPに勝てるか怪しい) 遅くてもいいようなまったり用途向け
786 名前:デフォルトの名無しさん [2010/03/18(木) 17:29:44 ] Full Book Now Available For Free! blog.rubybestpractices.com/posts/gregory/022-rbp-now-open.html sandal.github.com/rbp-book/pdfs/rbp_1-0.pdf
787 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:31:38 ] >>783-784 サンクス それ出来るならちょうどよかった PHP以外に何か軽くでも使えるように勉強しようと思ってたんだ
788 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:44:01 ] Perlすらgeekしか知らないような頃、CでCGI書いてる会社の先輩が いて、あきれるやら感心するやら。 # もちろんCで書くことが必要な状況ならそうすべきだけど。
789 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:53:38 ] なぜあきれるやら関心するやらなのか解りかねる。
790 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 17:56:59 ] 感心ならともかく呆れるのは理解できない
791 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 18:00:13 ] rubyでcgi書いててそこから呼ぶモジュールはがんがんCで書いてたなあ
792 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:17:07 ] >>754 つvim
793 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 19:55:06 ] つい先日もCでCGIを書く仕事があった。 非常にアホ臭いとは思ったが、呆れるとか感心するとかいうようなものでもないな。
794 名前:デフォルトの名無しさん mailto:sage [2010/03/18(木) 20:04:24 ] で?
795 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:02:39 ] 文字列:ABC=DEFG パターン:ABC 文字列がABCから始まるかを調べる方法ありませんか?
796 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:04:32 ] /\AABC/
797 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:06:41 ] >>796 それで理解できる人はそういう質問はしないと思う str = "ABC=DEF" if /\AABC/ =~ str then puts "ABCから始まっています" else puts "ABCから始まってません" end 「正規表現」についての知識は必須なので、 使いやすい簡単なのだけは覚えておくといい
798 名前:795 mailto:sage [2010/03/19(金) 00:09:40 ] >>797 これくらいの事なら、メソッドで準備されているかな?と思ったので
799 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:11:05 ] こういうのも。 s = 'ABC=DEF' s.start_with?('ABC') #=> true
800 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:12:36 ] 正規表現で簡単にできる「これくらいの事」をすべて メソッドで装備していたらかなり煩雑だと思う
801 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:13:45 ] >>800 そこから先は本スレでどうぞ
802 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:14:31 ] ruby -e 'p String.instance_methods - Object.instance_methods' とかやって、それっぽい名前のメソッドがないか探してみるのもよい。
803 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:16:35 ] >>799 はRuby1.8.7以降とRuby1.9.1以降限定 初心者的に大きな問題はないとは思うが >>800 String#include?さんなめんあ
804 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:19:18 ] start_with? なのか starts_with? 派との間で血みどろの抗争が繰り広げられたに違いない
805 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:21:37 ] >>804 ruby的には、is_a? 以外は原形不定詞を使うとかいう約束だったと思う。 三単現派は ActiveSupport を使えば starts_with? を定義してくれる。
806 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:25:24 ] JavaはstartsWith, endsWithなんだな >>805 なるほど この場合主語が単数なのはほぼ異論無いとして、一人称なのか二人称なのか三人称なのか。 意外と深い?のでその原則は結構ナイスかも。 って日本人ユーザからすると面倒なだけとか。
807 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:27:07 ] >>804 1.9から降りてきて1.8.7からだよなという確信が持てなくて検索したとき 最初は starts_with? でやったことは秘密だ ttp://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-talk/216680?216576-217484
808 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:33:55 ] is_a? との類推で三単現にしてしまうんだよなあ まったく is_a? は鬼っ子だ 初心者の皆さんにおかれましては is_a? は表記的に時代遅れなので kind_of? 使ってくださいね
809 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:36:36 ] >808 is_a? と kind_of? は意味が違うことをわかってんの?
810 名前:804 mailto:sage [2010/03/19(金) 00:39:03 ] >>805 興味深いマジレスありがとう 原型不定詞ってなんだっけってなったのは内緒
811 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:42:42 ] >>809 横からだけど、kwsk 古いのと一応最新ぽいのでも同じ扱い(てか丸移し)だけど、違うの? ttp://www.ruby-lang.org/ja/man/html/Object.html#is_a.3f ttp://doc.okkez.net/static/191/method/Object/i/kind_of=3f.html
812 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:47:43 ] >>809 あまり is-a と kind-of を区別してるとは思えないし、そもそも実装上区別してねえ んなこと言うなら is_a? から kind_of? と instance_of? の機能を、kind_of? から instance_of? の機能外せ
813 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 00:48:17 ] instance_of? と混ざったかな?
814 名前:804 mailto:sage [2010/03/19(金) 00:49:18 ] >>807 d。読んできた 他の名前との一貫性からstart_withになったけど Pythonに敬意を表してstarts_withにするのしないのって話もあったのかw
815 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 01:42:41 ] File.exist? File.exists? みたいに両方あるのもあるよね。
816 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 01:46:21 ] ポリシーのまったく無かった時代の古いメソッドだな まあ今もポリシーとか薄いけど
817 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 01:59:49 ] だからRubyは汚いんだよ。 Pythonの美しさをみ・・Pythonも似たようなもんか。
818 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 02:04:58 ] メソッド(に相当するもの)の名前のつけ方は似たようなもんだな どこも決定打に欠ける 永遠の問題なのかもしれない
819 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 06:22:30 ] rubyはCASを目指しているのですか?
820 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 06:39:55 ] カス
821 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 07:20:02 ] そろそろrubyの次の言語で再出発する季節だな。 今度はguiとideとrails標準で。
822 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 08:16:52 ] こうして >>821 は旅立って行ったのであった。 ー完ー
823 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 10:52:45 ] アップキャストとダウンキャストがないから不便だ
824 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 11:02:38 ] e-
825 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:03:05 ] wxRubyをいじってみたくて導入しようとしたら cygwin用が用意されてなくてコンパイルもそのままじゃ出来なかった ↓みたいに_rb_〜〜が見つからないって大量に言われるんだけど Rubyのソースとか必要なのか?どっかのパス指定ができてないだけなのか? /home/hoge/wxruby-2.0.1/src/Icon.cpp:1410: undefined reference to `_rb_define_class_under' /usr/lib/ruby/1.8/i386-cygwin/ruby.h:697: undefined reference to `_rb_cFixnum' 色々いじってコンパイルしてみてるけど諦めてRuby自体mswinにするか・・・
826 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:10:31 ] Makefile とか configure 読めないのに cygwin 使おうとする男の人って…
827 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:16:42 ] なんかインストールだけでなく運用自体が茨の道のようにも見える mswin32でやったほうがよさそうなふいんき
828 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:23:04 ] >>826 そりゃここでこちょこちょ勧める人がいるからだろ ぶっちゃけ初心者にはcolinux+Debianとか勧めておけばいいのに cygwinはwin,*nix両方知らなきゃいけないから難しいよ
829 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:23:31 ] >>825 こういうひとってなんでRubyやめようと思わないのかな
830 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:25:06 ] はじめに Ruby ありきなんだよな 目的と手段を取り違えるタイプ
831 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:26:35 ] >>828 俺は勧めてないしテンプレにも一文字もないぞ >>830 Rubyで遊んでみるのが目的なのに他の手段でウィンドウ作ってどうする
832 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:51:22 ] 色々勉強足らずのようなので精進します Rubyありきなのはどうしようもないですがcygwinありきだった点を直そう おとなしくmswin32でいじることにします
833 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:52:10 ] 「Rubyの初心者」のスレなのに 「プログラムの初心者」と決めつけて・勘違いして回答してるのが何人かいるな
834 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 13:55:21 ] >>833 「OS操作や他言語プログラミング等にある程度造詣があってRubyに挑戦しようとしてる人」 の質問はそれなりに洗練されている そういうような質問にはそれなりの回答が返ることが多い プログラミング経験者なのにPC初心者向けな回答をされたという場合は そりゃ質問の書き方がまずいのだろ
835 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:14:38 ] >>829 なんでRubyやめようと思うと思うの?
836 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:32:24 ] なんでRubyやめようと思うと思わないの?
837 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:42:45 ] 思わないことに理由を求められても
838 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 14:53:56 ] >>837 このひとはなにもかんがえてません ずっといます
839 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:04:33 ] いったい誰と戦っているんだ
840 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:07:15 ] 中高生の春休みにはまだちょっと早いと思うんだが、 ここ数日どのスレもなんか雰囲気違うな
841 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:13:29 ] もっと簡単に使えるrubyみたいな言語が有ればいいのにね。 visual rubyとかmsが用意すればいいのに。
842 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 15:14:59 ] 諦めきれずにやってたらインストールできた 単純に-lrubyが足りなかっただけでした やっぱり次につまずくまでcygwinで行こうと思います
843 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 20:39:12 ] >>841 簡単に使えるってどういう意味よ。
844 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:09:24 ] るび厨って未だにema糞だから言語、エディタ、デバッガ、ライブラリ、ドキュメントが 高度に統一された環境がどれほど快適であるか理解できないんだろうね。
845 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:11:15 ] Rubyを使ってない人がなんでこのスレにいるの?
846 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:30:11 ] かまってくれるからだろう
847 名前:デフォルトの名無しさん mailto:sage [2010/03/19(金) 22:59:43 ] 1.9 への覚悟を決めた さっき 1.8.7 を入れた