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を読め」でいいので、叩かない&怖がらせない。 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
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)