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


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

Ruby 初心者スレッド Part 32



1 名前:デフォルトの名無しさん [2009/10/24(土) 06:18:12 ]
プログラミング言語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を読め」でいいので、叩かない&怖がらせない。
 ・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
 ・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。

91 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 12:57:45 ]
ラブレターなら直接相手に言わないと伝わらないんじゃないか

92 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 13:07:20 ]
>>91
リア充は帰れ

ラブレターってのは
「○○って△△さんのこと好きなんだって」
「えーうそー△△ちゃん可哀想〜」
みたいに周りからじっくり攻めていくのが正しい姿

93 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 13:10:00 ]
明らかに周りからも祝福されてねーじゃねーか

94 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 13:24:46 ]
なにごとも一度でうまくいくことはそうそうないよ
突然話を振るよりも事前のネゴとコネと日頃のコミュニケーションが大事

95 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 13:33:47 ]
>>92
> 「えーうそー△△ちゃん可哀想〜」
やめろ

96 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 14:57:09 ]
クソワラタwww

97 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 04:59:52 ]
ruby1.8.7をcheckinstallでRPMパッケージを作成してインストールしたのですが、
ri -cコマンドを打っても標準ライブラリのクラスが表示されません。(Railsのクラスのみ表示される)
ri GCと打ってもNothing known about GCと出力されるのです。
これはrubyのriドキュメントがインストールされてないということでしょうか?
RPMパッケージでインストールせずにconfigureでオプション付けたりしないといけないのかな。

98 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 05:51:33 ]
>>97
checkinstallはよくわからないけど、自前でコンパイルするときは
./configure
make
sudo make install
sudo make install-doc # ドキュメントのインストール
が必要だった気がする

99 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 05:59:15 ]
質問です。Mershall使ってインスタンスの状態を保存しているのですが
一度インスタンスをnewしてdumpした後、その後オブジェクトを変更して
追加されたor削除されたクラス変数を検知して初期化したいです
どのようにしたらいいでしょうか 以下のようなソースです

class DataObj
attr_accessor :cnt
def initizalize
@cnt=0
end
end

class SaveData
attr_accessor :data
def initialize(file_name)
load(file_name)
end
 def load(file_name)
if File.exist?(file_name)
@data = File.open(file_name, "rb"){|f| Marshal.load(f) }
else
@data= DataObj.new()
end
end
def save
File.open("test.dat", "wb"){|f| Marshal.dump(@data, f) }
end
end




100 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 06:35:07 ]
よーわからんが、Marshalはオブジェクト全体の復元しかできない
復元してからオブジェクトが同一かどうかチェックするしかないな

101 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 06:52:34 ]
>>100
そうですね、Marshalだとかそういうライブラリは、この際あまり関係なかったですね
保存時のオブジェクトが復元時のインスタンスのオブジェクトと違う場合を許容したい場合は
どのような処理をすればいいでしょうか、ということみたいです
クラス変数が一つ一つ存在するかチェックして、なければ初期化、しかないでしょうか

イメージとしては クラス変数にし対して obj.each{|i| i=0 if !i.exist? }
という配列処理っぽいことがやりたいです (もちろん配列じゃないのでこの操作は不適ですが)

102 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 07:22:48 ]
クラス変数は @@ で始まる
@ で始まるのはインスタンス変数
初期化の意味がわからない

特定の条件の場合にオブジェクトを同一とみなして欲しいというときは
適宜 == メソッドを再定義して new == old を行う

class C
def initialize(params=nil); @params=params; end
def ==(other)
self.instance_variables.all? do |e|
self.instance_variable_get(e) == other.instance_variable_get(e)
end
end
end

c1 = C.new('a')
c2 = C.new('b')
p c1 == c2 #=> false

c3 = C.new('a')
p c1 == c3 #=> true ('a' == 'a' が true なので)

default = C.new
c4 = C.new
[c1, c2, c3, c4].each do |c|
if c == default then puts 'default!' else puts 'modified' end
end
# => modified, modified, modified, default!


103 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 07:29:36 ]
>>101
>クラス変数が一つ一つ存在するかチェックして、なければ初期化、しかないでしょうか

よーわからんけど、オブジェクトにバージョン番号をつける方法じゃだめかな。
バージョン番号が違っていれば初期化、とか。

104 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 07:29:49 ]
===

105 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 07:43:32 ]
質問です。
1. プラットフォームがwindowsかどうかを判定する方法は、どうするのがいちばんいいでしょうか。
RUBY_PLATFORM をチェックするのが王道だと思いますが、そのチェックの仕方で悩んでいます。

2. windowではバイナリファイルの読み書きにはFile.open(file, 'rb')のように'b'をつけないといけませんが、
これはcygwinでも同じでしょうか。
('b'が必要なプラットフォームが何かを知ろうとしています)


106 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 07:58:24 ]
fopenの仕様を読みましょう

107 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 08:04:18 ]
皆さんありがとうございます
・・・恥ずかしながらインスタンス変数とクラス変数を勘違いしていました
>>103氏のいうようなバージョン管理でやろうとすると

class DataObj
attr_accessor :ver,:a,:b,:c
def initialize(obj) #
@ver=0
@a,@b,@c=0,1,2
end
end

class DataObj_1 < DataObj
attr_accessor :d,:e,:f # 変数を追加
def initialize(obj)
super
@ver=1
@a,@b,@c=obj.a,obj.b,obj.c
@d,@e,@f=3,4,5
end
end

current_version=1
a=load("save.dat")
a=Data_Obj_1 if a.ver == current_version # あるいは a === DataObj_1 かな?

ということでやりたいことは、できそうです スマートな方法とは言い難いですが・・・

108 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 08:08:23 ]
すいません、最後は a.ver が 0 のとき
if a.ver < current_version の間違いですね

109 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:13:30 ]
>>105
1. は ttp://jp.rubyist.net/magazine/?0017-CodeReview#l17




110 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:32:33 ]
>>109
その記事にある「Win32API.soがrequireできるかどうか」は、
1.9だと全部ダメとか、1.8でもWINE環境でrequireできちゃう
とかあるので注意。

2の方は、いわゆるDOSISHなプラットフォームが該当する。
具体的にはcygwin以外のWindows、DOS(djgpp)、
x68000(human68k)、OS/2(emx)

111 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:37:09 ]
自動で判断するぶんには RUBY_VERSION =~ /mswin|mingw/ でいいんじゃね
クラス変数とかに結果入れておいてユーザーが変更可能にしておくとかすれば喜ばれそう

112 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:52:38 ]
バイナリ扱う時に環境判断せずに「とりあえずbつけとけ」ではだめなんだっけ?

113 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:55:16 ]
ミリ秒の差が数千万円になるようなエッジな環境では命取り

114 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:55:44 ]
>>112
それが望ましいっす。

115 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 10:32:51 ]
>>107
Marshalで保存したオブジェクトは自分のクラスを記録してるから
別のクラスのインスタンスとして復元する事は出来ない
Hashを中間データとして使う方法をすすめる
ついでにmarshal_dumpとmarshal_loadについて調べておくといい

116 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 10:39:58 ]
>>102で用が済むと思うのだが

117 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 11:09:13 ]
質問します。
ディレクトリ内にあるhtmlファイルの読み込みで、Data/a/1.htmlを読み込ませたあと
Data/b/1.html→Data/c/1.html・・・とずらずらとディレクトリ違いの同じ名前のhtmlファイルを
読み込ませるにはどうしたらいいですか?

118 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 11:12:47 ]
それに必要なのはなんだと思う?
というようなとこから考えて欲しいと思った

とりあえずいちばん簡単なの

dirs = ['a', 'b', 'c', 'd', 'e', 'f', ...]

dirs.each do |dir|
File.open("#{Data/#{dir}}/1.html"){|f| f.read}
end

119 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 11:13:36 ]
>>117
Dir.glob("Data/*/1.html") do |file| ... end




120 名前:117 mailto:sage [2009/10/27(火) 11:24:16 ]
即レスどうもです!
とても参考になります!
ちょっくら試してみます。
ありがとうございました!

121 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 22:59:08 ]
しつもーん!
どこからも参照されなくなったオブジェクトは GC によって破棄されるだよね?

loop { /正規表現オブジェクト/ }

この場合 /正規表現オブジェクト/ はループのたびに生成されるの?

122 名前:中田 mailto:sage [2009/10/27(火) 22:59:18 ]
>>89
Power ShellのUTF-8対応なんてしらん


123 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 23:04:27 ]
>>121
いいえ、固定の正規表現リテラルはパース時にチェックされ、スクリプト内で1回だけ生成され保持参照されます

ただし、変数を #{ } などで含んでいる場合は毎回変数を参照して新規作成される
最初の1回だけにしたい場合は //o と o オプションをつける
この理屈で言うと、/re/ がたくさんあるとメモリ食う

124 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 23:19:19 ]
>>123
なるほど、ありがとうございました。

125 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 23:23:51 ]
>>12
cygwin1.5系や素のcmd.exeは未だにCP932だから、UTF-8はそのままだと表示できません。
考えられる方法はだいたい以下の通り。
(1)素のcmd.exeにて、nkfでCP932に変換して表示
(2)cmd.exe にて chcp 65001 によって UTF-8 モードにして UTF-8 を表示 (挙動妖しい)
(3)cygwin 1.5 にて、nkf で CP932 に変換して表示
(4)cygwin 1.7 (デフォルト UTF-8) にて UTF-8 で表示 (開発途上)

まぁ、どれもろくでもないんで、cucumberだったらHTMLにでも書き出して、
ブラウザで見た方がいいんじゃないですかね。

126 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 23:31:54 ]
そーいえば、PowerShellはシェルとしてはcmd.exeとしては同レベルです。
コネがある方がいらっしゃいましたら、ちゃんとUnicode通るようになんとかしてやってください

127 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 00:05:56 ]
WriteConsoleWでがんばってください

128 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 09:30:42 ]
"123.6"をdecimalの123.6に変換するメソッド(例えばto_iのようなもの)はないでしょうか?

129 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 09:39:40 ]
decimalではなくてfloatでした。すいません。



130 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 09:56:03 ]
>>128
マニュアル嫁
文字列だから String のマニュアルを読む
ttp://www.ruby-lang.org/ja/man/html/String.html

131 名前:12 mailto:sage [2009/10/28(水) 09:59:20 ]
ロックマンが海外で『Mega Man』の名称に変更された理由とは… - Game*Spark
gs.inside-games.jp/news/196/19696.html



1993年に発行されたGame Playersマガジンのカプコン副社長Joseph Morici氏のインタビューによると、
当時日本で作られたロックマンのローカライズを検討していたMorici氏は、“Rockman”というタイトル名が単純に気に入らなかったそうです。

  ”あのタイトルは酷すぎました。そこでMega Manという名前を思いついたんです。
  するとそのアイデアは気に入られて北米版で使われることになりました。ゲーム内容は日本版と全く同じでしたけどね。”



パッケージ画像
gs.inside-games.jp/_files/images/9696.jpg

 ___
/ ||Mega|| ∧_∧
|.....||Man || (     )  どうしてこんなことに…
| ̄ ̄\三⊂/ ̄ ̄ ̄/
|    | ( ./     /

132 名前:12 mailto:sage [2009/10/28(水) 10:00:08 ]
誤爆

133 名前:12 mailto:sage [2009/10/28(水) 12:03:40 ]
変なもん誤爆しちゃった…

>>12 の件ですが、結論から言いますと、
--color を引数に明示的に指定することで解決しました。

コマンドプロンプトでは色づけされる、んならすでに指定してたんじゃないんかい!と言われそうなのですが、
実際には指定しておらず、
.featureファイルに以下の記述をして「i18nで日本語を使う」とcucumberに知らせていた場合にだけ、
何故かコマンドプロンプトのみ色付けされるようでした。
# language: ja

--colorの指定は、ルートディレクトリにcucumber.ymlファイルを置いて、

default: features -f pretty --color -l ja

のように記述することで、デフォルトの引数を指定できました。

とりあえず、解決ということでありがとうございました。

134 名前:12 mailto:sage [2009/10/28(水) 12:04:50 ]
連投スマソ

>>125
ありがとうございます。

もっとロクでもない方法(?)として、以前はRUBY_PLATFORMがwin32でTERMがnilのときだけ、
$stdout.writeでSJISにnkfで変換する方法も使ってました。
Railsスレあたりに投下した覚えがあるので検索すればでてくるかも。

cygwinはUTF-8化用のDLLを入れてあり、ターミナルソフトのck.exeでUTF-8を表示できるのですが、
cygwin上でwin32のautotest使うと、テストが再実行しようとCtrl+Cを押すと何故かされず、即終了してしまうんですよね。

最近は、coLinuxのUbuntuを入れて、かなり普通にあたりまえに動くしUTF-8も問題ないので、それでもいいか、という気がしています…。

135 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 12:19:05 ]
cygwinのttyはWindowsのコンソールとは見なされないからね。
それはもうcygwinとmswin32を組み合わせるのが悪いとしか言いようがない。

136 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:05:18 ]
拡張モジュールの中で struct FRAME や struct RNode を触りたいんですけど、ruby.hには含まれていなくて困っています。
今はnode.cから extern strct RNode { ... }; を自分のソースにコピーしていますが、
もっといい方法があると思うので、ぜひ教えてください。


137 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:42:49 ]
rbbrのツリーってタブおしたら落ちない?再現率100%なんだけど

138 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 16:56:22 ]
>>136
node.cって何?

1.8ならenv.h、node.hが普通にあるはず。
1.9なら方法はないので諦めてください。

139 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 19:18:40 ]
拡張ライブラリのソースを ext/foo/foo.c に置いたら、extconf.rb も同じ場所に置かないといけない?
それともextやREADMEと同じ場所においておくもの?



140 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 19:21:51 ]
gem なら Rakefile に gem.extensions = 'ext/extconf.rb' とか直接書く

141 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 20:42:02 ]
>>139
基本的には同じところに置かないといけない。
別のところにも置くことはできるけど、それを聞いてくるということは、説明してもしかたなさそう。

142 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 22:54:07 ]
>>136
何のために?
99%方針が間違ってる。

143 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:06:54 ]
htmlファイルの読み込みについてなんですが、
マッチングでマッチした文字列以降を表示させるにはどうすればいいですか?

144 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:13:22 ]
HTML あんま関係ないな

簡単なのは「キーとなる文字列の直後から必要な別のキーの直前まで」をマッチさせること
$1 とか $2 とかの正規表現の勉強をするといい

# <title></title>で囲まれた文字列
/<title.+?>(.+?)<\/title>/i =~ html
puts $1

145 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:14:47 ]
>>143
コードを書いて実行すればいいよ

146 名前:143 mailto:sage [2009/10/29(木) 17:26:50 ]
>>144-145
あざっす!!

147 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 18:17:28 ]
フォームから入力されたユーザー名とパスワードで
Kerberos認証をしたいのですが何か方法はありますでしょうか?
(ApacheのBasic認証にKerberosを利用するのではなく、
Rubyで作成したCGIの任意の箇所で認証処理をしたいです。)

ライブラリ等あればいいのですが…。
Kerberos認証を行うシェルを作成して、
CGIからユーザー名とパスワードを渡して実行させるしかないですかね?

148 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 20:26:46 ]
>>143
$'

149 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 21:34:35 ]
>>147
使ったことないけど、rubyforge.org/projects/krb5-auth/ とかかな。




150 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 10:12:29 ]
質問
Time#to_i の秒数って、時差というかタイムゾーンとかどうなってますか?

151 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 11:07:10 ]
そのオブジェクトが地方時か協定世界時かにかかわりなく、
to_iが返すのはUnixタイム。

152 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 11:11:15 ]
あのへんは UTC とはなんぞやということを外部で習ってるということ前提だからな
Ruby で初めて意識したという人にとってはやや不親切だ

153 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 11:19:13 ]
to_i で整数にして計算して at で戻すと一瞬わけわからんことに

154 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 04:36:09 ]
教祖がデビアン住人だしな。世界の外の事は知らない。

155 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 07:35:31 ]
>>154
どういう意味?


156 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 10:27:39 ]
教祖とか宗教とかモルモンとかそういう単語の入ったレスは読み飛ばしてOK
NGにしておいても一向に損をしないことを保証する

157 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 16:53:54 ]
Pentium4(HT)のWindowsXP環境で
CPUを100%使い切って計算しようとおもったら、マルチスレッド対応にしないとだめかな?
タスクマネージャーみたら、なんかCPUに余力が有るみたいなんだが・・・

158 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 17:05:46 ]
複数プロセス同時に動かすのは?

159 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 21:12:16 ]
>>157
HTは、1コアを2コアに見せかける技術だから、1コアをもし使いきっているなら、
タスクマネージャでどう表示されようが、100パーセント使い切ることになるように思うけど、どうだろう。
ファイルやネットワークの入出力がある場合は100パーセントになりにくいけど、
非同期I/Oを使って頑張れば100になるんじゃないかなー。

最近のCPUは2コアが普通だから、158のように複数プロセス起動しないとだめだろうね。



160 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 23:49:32 ]
そんなことまで考えてプログラミングしてるのか
すごいなお前ら

161 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 00:06:26 ]
"begin a,b,a,a,b end"
のような、中身が繰り返しているような文字列のマッチはどんなふうにするのがいいでしょうか?
/begin ((a|b),)*(a|b) end/
とすればできましたが、2回同じこと(a|b)を書いているのがちょっと気になります
あと、できれば繰り返しの部分を$1,$2,$3・・・のようにあとで取得したいのですが、可能でしょうか?



162 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 04:12:38 ]
>>161
>2回同じこと(a|b)を書いているのがちょっと気になります
正規表現なら我慢して書くしかないように思う。

>繰り返しの部分を$1,$2,$3・・・のようにあとで取得したい
マッチする個数がわからないと難しい。
/begin ((a|b)(,(a|b))*) end/
として、
$1.split(/,/)
とするぐらいか?

あと (a|b) は、もしほんとにaとbを使うだけなら[ab]のほうがいい。
/begin ([ab](,[ab])*) end/


163 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 08:00:11 ]
ここはRubyスレなので、Rubyの正規表現なら、という話なら、
(?<名前>任意の表現) と
\g<名前> の組み合わせでできる。

/begin ((?foo<(a|b)>),)*\g<foo> end/

164 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 08:06:53 ]
Rubyの正規表現と称して>>163がOniguruma実装限定の正規表現持ち出してきたのが笑える

165 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 08:23:44 ]
begin 〜 end だけ抽出しておいてそれに (a|b) の scan かけるんじゃだめなん

166 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 10:51:59 ]
>>164
1.9ならOnigurumaが標準だろ

167 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 10:55:27 ]
そんな寝言は1.8.7を撲滅してからほざくがよいぞ
それまでは両バージョン用併記か注釈で対応バージョン明記

168 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 10:58:37 ]
スレとしては 1.8.7 が推奨バージョンなんだから、
1.9 限定動作は「1.9.1 だとこれで一発」みたいなコメントはつけとくべきかもな

169 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:04:48 ]
普段く1.9の質問したら、氏ね、1.8使えと煽るくせに、
正規表現は1.9で書き込むとか、
ここの住人はダブルスタンダードだな、おい



170 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:24:05 ]
1.9でレスしてもいいんだがそうと明記すべきだぬ

171 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:24:40 ]
いつの話だよ
さすがに今1.9を使うなって奴はいないだろ

172 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:28:12 ]
>>169
だって君の言う「ここの住人」って、一人しか居ないわけでもなければ、
まったく同じ考え方をする集団ってわけでもないもの。
ダブルスタンダード認定は、前者と後者が同じ人間によって書き込まれたことを
確認してからでないと。

173 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 11:32:48 ]
初心者が使用すべきものと熟練者が使用して便利なものとは違うということをいまさら講釈しないといかんのか

174 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 16:05:25 ]
1.9はsp2出るまで町だな。

175 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 16:27:06 ]
1.9.3のこと?

176 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 17:33:30 ]
2.0マダー

177 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 17:39:55 ]
>>171
います

178 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:01:12 ]
>>168
>1.9 限定動作は「1.9.1 だとこれで一発」みたいなコメントはつけとくべきかもな

だな。1.8.7からの新機能の場合もその旨書いておいてほしいよね。
今度から>>1に追加しといてもらおう。

>>171
>いつの話だよ
>さすがに今1.9を使うなって奴はいないだろ

おまえはまず>>1を声だして100回読め




179 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 21:27:12 ]
>>158-159
繰り返しの計算処理なんだわ
具体的には、ニューラルネットの実装やってる
はんぱない回数の計算が学習には必要なんだけど
1プロセスだと、スレッド分けしても、複数CPUは使ってくれないってことかな?

だとすると、プロセス間通信とかを眼中にいれて設計しないとダメってことかな?
ってことは、向かうところはdRubyあたり?



180 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 01:06:18 ]
ほう、膨大な計算量を必要とする分野にも進出してるんだなあ

181 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 03:07:06 ]
>>180
実用とか研究とかじゃなくて趣味だけどね。
Rubyでやってもいいんじゃない?ってかんじで

182 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 06:53:38 ]
Rubyの入門書では、サンプルプログラムの出力を大抵以下のように書いてます。
puts 'Hello World!'
ですがたまに以下のように書き方も見かけます。
$stdout.puts 'Hello World!'

どっちも正しいと思いますが行儀の良い書き方という意味では後者になるのですか?

183 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 07:07:13 ]
意味不明。内部でやってることは同じだし後者には何のメリットも無い。

184 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 07:16:11 ]
printf("Hello World\n");と
fprintf(stdout,"Hello World\n");の違いみたいなもんだぞ
簡略できるようにしてあるのにあえて冗長に書く必要はないと思う

185 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 07:48:49 ]
冗長に書く意味があることはありうる

が、これに限ってはまず無いだろうな
前者の関数的メソッド puts の出力先を捻じ曲げるためには $stdout をいじるしかないわけだが
それをすると後者の $stdout.puts も捻じ曲がるんで意味がない
Ruby における 関数的メソッド puts と $stdout は不可分だ(C の puts を知ってると引っかかるかも)
もしなんらかの気の迷いで関数的メソッド puts の出力先の $stdout が標準出力以外になってるなら
それは putserr とか putsfile とかなんかメソッドを新たに作るべき

むしろ後者を書かれるとがっかりだ
むしろそのサイトなり解説書なり晒せ

186 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:15:02 ]
バッチファイルの作成を自動化できないものかと思い、eruby がつかえそうだと思いました。

REM *******************************************
REM * 作成者:ビル・ゲイツ(マイクロソフト)        *
REM *******************************************

のようなファイルをつくりたいのですが、

REM *******************************************
REM * 作成者:<%=PERSON%>(<%=COMPANY>)     *
REM *******************************************

と定義して、行の末尾の '*' の位置を変えないことってできますか?




187 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:17:47 ]
つか $stdout なら write すべきだと思うんだが
$stdout が指してるオブジェクトに puts というインスタンスメソッドが定義されてる可能性はそれほど高くない

188 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:20:47 ]
>>186
文字列なんだから String のマニュアルをダメもとで読め
ttp://www.ruby-lang.org/ja/man/html/String.html#ljust

189 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:30:54 ]
>>187
それはputsに応答しないオブジェクトを$stdoutに入れたヤツが悪くないか?
STDOUTがIOのインスタンスなんだし、IOやそのサブクラスのインスタンスであるか
相応のduck typingができることを期待するのは当然だと

実際に期待できない例にはどんなのがある?



190 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:46:20 ]
$stdoutっていずれ廃止になるんだろ?
なるべく使わない方がいいんじゃねーの

191 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:48:21 ]
$stderrなら警告メッセージのテストで使うことあるな。
begin
class << (stderr = "")
alias write <<
end
# テスト
$stderr, stderr = stderr, $stderr
ensure
$stderr, stderr = stderr, $stderr
assert_match(/.../, stderr)
end


192 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 11:49:05 ]
>>190
廃止された$defoutと混同してないか?

193 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 12:24:41 ]
>>190が代わりに何を使う気だったのかがちょっと気になる

194 名前:182 mailto:sage [2009/11/03(火) 18:12:54 ]
たくさんのレスありがとうございます。勉強になりました。
公式も見てみましたが、
単にputsとした場合はKernelモジュールのputsを指し、
そのputsはデフォルトで$stdoutに対して出力をするようですね。
やっぱり冗長なだけなようですね。

>>187
>むしろ後者を書かれるとがっかりだ
>むしろそのサイトなり解説書なり晒せ

具体的には、「JavaプログラマのためのRuby入門」という本の初っ端の例文が
$stdout.puts 'hello world !'.upcase
となっていました。
著者のartonさんはコミッタですよね?

195 名前:182 mailto:sage [2009/11/03(火) 18:13:57 ]
>>187ではなく>>185でした。すいません。

196 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 18:16:55 ]
>>194
それはJavaのSystem.out.printlnになじんだ者が類推しやすいように
そう書いてあるんじゃあないか?


197 名前:182 mailto:sage [2009/11/03(火) 18:36:50 ]
おおなるほど、そういうことだったのかな…。

198 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 19:36:32 ]
その本は読んでないけど、読んだ者が混乱するような記述なら困りものだな
後ろの章を読めばわかるのかなとは思うけど

199 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 20:34:50 ]
モジュールの場所を知るコマンドはありますか?
perlでいう perldoc -l のような。



200 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 20:55:12 ]
>>199
ri
refe
他にもなんかあったような気がするけど忘れた

201 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:01:03 ]
>>199
gem の場合は gem which

$ gem which nokogiri
(checking gem nokogiri-1.3.3 for nokogiri)
/home/me/.gem/ruby/1.8/gems/nokogiri-1.3.3/lib/nokogiri.rb

標準ライブラリの場所を探す方法はあれば知りたい
いちいち「/usr …のどこだっけ」と試行錯誤するのは面倒

202 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:23:14 ]
>>199
gem whichはgem以外にも使えたはず

203 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:44:58 ]
ほんとだ知らなかった
いいこときいた

204 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:54:21 ]
$ gem which uri
/usr/lib/ruby/1.8/uri.rb

ほほう

String とか Regexp とか rb のファイルになってないものは駄目っぽいな

205 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:11:29 ]
>>200-202
あざっす。

206 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 22:26:20 ]
ライブラリもいけるみたいだな。
$ gem which Readline
/usr/local/lib/ruby/1.9.1/x86_64-darwin10.0.0/Readline.bundle

>>204
StringやRegexpでどのファイルに出てきて欲しいんだw


207 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 08:30:58 ]
>>186
>と定義して、行の末尾の '*' の位置を変えないことってできますか?

<%= str = "#{person} (#{company)" %>
REM * 作成者:<%= '%-50s' % str %> *

とするしかない。

208 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 08:31:51 ]
間違えた。
<% str = "#{person} (#{company)" %>
REM * 作成者:<%= '%-50s' % str %> *



209 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 09:23:58 ]
Rubyの文字列は
"hello"と'hello'のように書けますが、皆さんはどちらをメインに使っていますか?
もちろん二つの書き方には違いがあることは理解してますが、
多くのケースではどちらの書き方でも可なので、そういう場合にどちらの書き方をすべきか迷っています。

個人的にはシングルクォートをメインにして、"my name is #{name}"のような変数展開を使う場合のみダブルクォーテーションにしています。
というのもHTMLと一緒にrubyを使うことが多く、HTMLタグの値にダブルクォーテーションを使うからです。

ただ入門書やネットに転がってるサンプルなどを見ると大抵ダブルクウォーテーションのようです。
CやJavaなどの習慣でダブルを使う人が多いのでしょうか?あるいは他にメリットがあったりしますか?



210 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:13:32 ]
そもそもとして、" " でも ' ' でも処理負荷的にはたいして変わらない
文字列を数まんことか大量に使用すれば若干違うかもしれんが、たぶん他の部分チューニングしたほうが速い

よって、それ以外が効いてくることになる

で、まあ、" " が人気があるのは
変数展開を入れようとしたときにクオート部分をわざわざ書き換えなくてもいいとか
\n とかがそのまま利用できて面倒がないとか
大部分のフォントで '' の文字見栄え的な安定性が低くて使っててガッカリだからとか
そういう理由だと思う

'hello\nworld' と書いてそのまま \n が表示されて「ん?」となるのは一度や二度ではない

211 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:27:08 ]
俺は両方使い分けてるな
別にダブルクォートで統一してもいいとは思うんだけど
最近、なんとなくシングルクォートの方がきれいに見えるようになった
あとシングルクォートだと「ここでは変数展開をしません」という宣言にもなる

212 名前:209 mailto:sage [2009/11/04(水) 10:28:08 ]
>>210
おおなるほど…分かりやすい説明ありがとうございます。
それだけ例を示されると確かにダブルクウォーテーションのほうが理にかなってますね。

213 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:29:56 ]
>>211
ダブルクォートを最終的にシングルクォートに書き換えることはよくある
それはやっぱり意思表示だな

214 名前:209 mailto:sage [2009/11/04(水) 10:32:10 ]
>>211
ありがとうございます。

>あとシングルクォートだと「ここでは変数展開をしません」という宣言にもなる
これは自分も思っていました。
変数展開が必要になった時にダブルクウォーテーションを使った方が目的がはっきりするというか。

215 名前:209 mailto:sage [2009/11/04(水) 10:42:19 ]
ついでにRailがgenerateで吐くコードを調べてみました。

シングルクォート
flash[:notice] = 'Profile was successfully created.'
<%= link_to 'New profile', new_profile_path %>

ダブルクォート
format.html { render :action => "new" }

どっちも使ってる…。どういう基準で分けてるのかさっぱり分からない。
ただ適当なのか、何かちゃんとした理由があるのかな。

216 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:49:28 ]
アトリビュートとみなせる(小さな)文字列はダブルクォートであることが多い
ハッシュのキーとか値とか、配列の短い文字列とか

あるいは生成されて埋め込まれた文字列とか

irb> 1.upto(10).to_a.map{|e| e.to_s}
["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] ←この部分をコピペ

深い意味は何もない
打ってる途中で
「あーシングルクォートでよかったなーと思ったが修正面倒なのでこのままダブルで閉じる未来の俺訂正よろしく」
とか普通なので気にしてたら禿げるぞ

217 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 11:08:33 ]
String#inspect が吐く文字列がダブルクオートというのは意外と
強い動機になるよね。

218 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 14:10:01 ]
>>209
>個人的にはシングルクォートをメインにして、"my name is #{name}"のような変数展開を使う場合のみダブルクォーテーションにしています。

このルールでいいと思う。あとは ¥n をいれるときとか。

219 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:36:31 ]
そのルールに何の意味も無いだろ
面倒だし両方の表記が入り乱れることになるだけ
なんでダブルクウォーテーションだけで済ませるのが嫌なんだ?



220 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:48:35 ]
変数(というか、式)展開やバックスラッシュ記法の有効化は、すこし機能が強すぎる
その機能を使用しないのなら、そもそも機能が有効になっていないほうが好ましい

めんどいからダブルでいーじゃん、というのでももちろん構わないし
スクリプトに直接リテラルで書くぶんには実際上の問題は何もないが、
慎重にシングルとダブルを使い分けるという姿勢は賞賛されるべき

221 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 18:51:52 ]
>>219
>なんでダブルクウォーテーションだけで済ませるのが嫌なんだ?
べつに嫌いとまでだれも言ってないけど。>>213が書いたように、シングルクォートを使うことで、
式展開もなにもありませんという意思表示をしているだけ。
なんでこんな曲解するやつがいるんだろうね。

222 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 20:03:43 ]
Railsマンセーな俺は>>215>>216辺りを見てシングルを主に使っていこうと決めた
アトリビュートというかシンボルに置き換えられるのようなケースではダブルを使ってる気がする

223 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:01:01 ]
Windows環境だとパス区切りがバックスラッシュな関係で
文字としてのバックスラッシュを扱いたい場合は多いな
>>210 とは逆に、バックスラッシュが解釈されるせいで「ん?」と思う場面のが多い

224 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:19:40 ]
考え方は>>220に同感だけど、職場ではダブルクォートで統一されてる。
ネットで拾うサンプルも大抵ダブルクォートだ。
単純に、ダブルクォートで文字列を表現する言語が多いという理由だけの気がする。
コーディングスタイルにおいて慣習ってのは大きな要素なんじゃないかな。
○○にすべきだ、という100%正しい解釈があったとしてもそれが慣習に反していれば採用するのはやっぱり難しい。

225 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:30:24 ]
100%正しい解釈などない

226 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:31:39 ]
>あったとしても

227 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:34:04 ]
信念を持って慣習を破るのは悪いことじゃないな。

228 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:34:12 ]
Rubyの場合%表記使うことも多いからダブルクォートに対するこだわりなんか全くない

229 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 21:34:35 ]
無意味な仮定ってことだろ



230 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 22:10:31 ]
> 慣習
こないだ '%s' % str したらMatzの写真で踏み絵させられた
わかる人にはわかるらしい

ちなみに初めてのRuby的には
「後述のエスケープ文字や式展開を含まない場合、
一重/二重のどちらの引用符を用いるかは好みの問題です」(p.58)
だって

231 名前:デフォルトの名無しさん [2009/11/04(水) 22:50:02 ]
Ruby1.8.7でsqlite3を使いたく、環境を構築しました。

sqlite3-ruby(1.2.5)
dbi(0.4.3)
dbd-sqlite3(1.2.5)
sqlitedll-3_6_19

上記の環境でDBI経由だと
ERROR DBI::InterfaceError: Unable to load driver 'SQLite3' (underlying error: uninitialized constant DBI::DBD::SQLite3)

というエラーが発生します。
ドライバが見つからないと言うようなエラーだと思うんですが、全部最新です。
何が原因でしょうか?

232 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 23:50:35 ]
ドライバを入れろ

233 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 00:06:05 ]
>>231
×SQLite3
○sqlite3
db = DBI.connect("DBI:sqlite3:#{filename}")

234 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 00:44:56 ]
>>231
ごめん>>233は間違い
うちは
db = DBI.connect("DBI:SQLite3:test.db")
で接続できた
ドライバはdbd-sqlite3で Unable to load driver だから
sqlite3自体がインストールされてない?

235 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 02:13:52 ]
>>209
>個人的にはシングルクォートをメインにして、"my name is #{name}"のような変数展開を使う場合のみダブルクォーテーションにしています。
>というのもHTMLと一緒にrubyを使うことが多く、HTMLタグの値にダブルクォーテーションを使うからです。

正解

236 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 04:09:19 ]
%!hogehoge! 使うべさ

237 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 06:34:11 ]
俺はハッシュの値とかも含めて基本全てシングル使ってるぞ
変数展開したい時だけダブル
これで特に困ったことは無い
空文字が''になるので、他人にソース見せる時に突っ込まれることはあるが。

238 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:22:34 ]
ダミアン先生によると空文字は、%{}にしたほうがわかりやすいと

239 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:36:12 ]
まあ''と"と"'と'''と''''と'"'と""と'"'と'''''の区別は咄嗟にはつけにくいからな
いちばんわかりやすいのは String.new だが

余談だが俺は配列も Array.new だしハッシュも Hash.new だ
自分から [] や {} を使うことはゼロ



240 名前:231 mailto:sage [2009/11/05(木) 08:39:55 ]
>>232
>>231に書いた以外に必要なドライバがあれば
ドライバ名を教えてください。

>>234
一応 gem search を実行すると全部インストールされているんですが
sqlite3-ruby をインストールするときにリンク先のような状態になったのが
気になりました。
ttp://www.rubylife.jp/railsinstall/other/index1.html
そのほかはバージョンもそろえてるしSQLite3の本体も入ってるし、
もうどうすればいいのか・・・

241 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 08:51:14 ]
新しく配列作る時って Array.new と [] って一般的にどっちがいいとかある?
好みの問題くらいでどっちでもいい?

242 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:12:05 ]
初期値の存在しないふつうの空の配列を作るならどっちでもよい

10万個くらい Array.new と [] が書いてあったら、後者のほうがパース完了は遅いとは思うが

243 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 09:23:13 ]
>>240
DBI.available_driversで使えるドライバがわかる
そこに"dbi:SQLite3:"が無ければインストールに失敗してる

244 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:06:41 ]
初期値が無い場合は
var = Array.new
初期値がある場合は
var = ["hoge", "hogege"]
って感じだな。
特に理由は無いけどこういうパターンで書く人が多い気がする。

245 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:13:01 ]
[] でいいじゃん

246 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 10:36:36 ]


247 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 14:25:20 ]
Array.new, Hash.new はメソッド呼び出しが入るので遅い。

248 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 15:03:37 ]
>>244
そうかあ?初期値がなくても [] と {} を使うほうが多いと思うけど。
デフォルトの初期値が必要な場合だけHash.newとかを使うんじゃないか。

249 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:51:24 ]
配列からある値を一つだけ削除って簡単にできる?
- とかdeleteだと複数あった時に全部消えちゃう



250 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 16:58:30 ]
delete_at

251 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 17:01:43 ]
>>249
簡単にはできない
若いの1個だけ消したいと予測

arr = ["a", "b", "c", "b", "a"]
arr.delete_at(arr.index('b'))
p arr

["a", "c", "b", "a"]


252 名前:231 mailto:sage [2009/11/05(木) 18:21:11 ]
>>243
driver = DBI.available_driversしてみました

ArrayEmptyでした orz=3

一度アンインストールしてインストールし直しても同じです
どうやればインストール成功するんでしょうか(´;∀;)

253 名前:249 mailto:sage [2009/11/05(木) 18:50:35 ]
>>250,251
なるほどね見つけてから_atで消すのね
ありがとう

254 名前:231 mailto:sage [2009/11/05(木) 19:19:05 ]
sqlite3-ruby dbi dbd-sqlite のバージョンを下げたりしてみたけど
やっぱりドライバが認識されませんでした
同じコードとドライバでも1.9.1だと動きまする・・・

255 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 19:24:01 ]
インストール手順を示さないとアドバイスしようがないと思ふ

256 名前:231 mailto:sage [2009/11/05(木) 20:05:44 ]
解決しました。いや、解決はしてませんが、ドライバが原因では無いことはわかりました。
NetBeans6.7.1でデバッグをすると「ドライバがないぞゴルァ」って言われるんですが
コンソールから実行すると何事もなかったように動きます。

どうもお騒がせしました。

257 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 21:30:32 ]
えええええw

258 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 22:32:30 ]
コンソールから使ってるRubyとNetBeansから使ってるRuby
が違うんでないかい?


259 名前:231 mailto:sage [2009/11/05(木) 22:41:01 ]
>>258
自分もそう思って確認したんですが
インストールされてるバージョンは1.8.7-p72と1.9.1-p243の二つしかなく
コンソールもねとびーんも1.8.7-p72を使ってました。
ねとびーんのGemマネージャにも、きちんとドライバは登録されていました。
その後も色々試していますが、未だに原因がわかりませんです。



260 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:03:10 ]
printf("%d %d\n", n, n+1)の出力にマッチする正規表現は書けますか?

261 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:29:25 ]
動的に正規表現を生成するのでも構わないのなら

n = 3
"%d %d\n" % [n, n + 1] =~ Regexp.new("%d %d\n" % [n, n + 1]) #=> 0


ところで以下には驚いた。勉強しなおさないとだ

'%d %d\n' % [n, n + 1] =~ Regexp.new('%d %d\n' % [n, n + 1]) #=> nil
"%d %d\n" % [n, n + 1] =~ Regexp.new('%d %d\n' % [n, n + 1]) #=> 0

262 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:40:43 ]
>>261
s = '%d %d\n'
p /#{s}/ # /%d %d\n/と等価

文字列として\nが解釈されなくても、正規表現をパースする段階で解釈される

似たような話としては、String#gsubで引数に\を渡そうとすると
ダブルクォートの場合はエスケープの都合で\の個数がキモいことになる

263 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 02:17:32 ]
>>262
サンクス。完全に間違って理解してた
> 文字列として\nが解釈されなくても、正規表現をパースする段階で解釈される
よく覚えとくよ

で、>>261でなんではまったかと思ったら普段あまり使わないRegexp.new使ってるからだった
'\n' にマッチする正規表現をリテラルで作ろうとしたら /\\n/ って直感的に書けるけど
Regexp.new で作ろうとすると相当キモイことになるね

264 名前:デフォルトの名無しさん [2009/11/06(金) 06:35:26 ]
質問です。
さくらインターネットのスタンダードプランでrubygemをインストールしたのですが,
gemコマンドを打ち込んでも
gem: command not found
と、出てしまいます。
これはインスト失敗しているのか、単に環境設定がうまくいってないのか…。
ご教授願います。

インスト時には
wget rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar zxvf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb --prefix $HOME

で、
RubyGems installed the following executables:
/home/hogehoge/bin/gem18
と出ていました。

265 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 06:38:37 ]
じゃあ/home/hogehoge/bin/gem18って打ち込めば

266 名前:260 mailto:sage [2009/11/06(金) 08:02:12 ]
>>261
動的でもいいんですがnの値は不明です。
一旦nを求めて式展開するしかないでしょうか?
一回で
line =~ /(\d+) #{\1.to_i + 1}/
みたいには書けない?

267 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:08:12 ]
実効上のご利益がないのでどうでもいいのだが正規表現を先に書いてくれると嬉しい

/re/ =~ str

268 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:22:50 ]
>>264
PATHの設定。


269 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:23:59 ]
それと、 gem じゃなくて gem18 と入れることか。




270 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:29:54 ]
>>264に足りないのは(PC-)UNIXの知識だな
Ruby関係ないシリーズの筆頭だ

はいそこさくらが使ってるFreeBSDがUNIX4文字で包括されうるかどうか議論しない

271 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:32:18 ]
ruby2.0はいつ出るのじゃ

272 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:35:10 ]
>>271
その質問には意味がない

273 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 08:43:54 ]
新しいバージョンを待つ香具師は、そのバージョンが出たら
その次のバージョンを待つことになる。



274 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 10:46:28 ]
1.9もまだ満足に移行出来てない状況でw

275 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 11:09:59 ]
2.0になった場合の変更予定点とかってもう案があったりするの?

276 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 12:45:25 ]
>>275
それこそ1.8の出る前からある。

277 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 16:43:52 ]
だから待ち焦がれてる椰子が多いんだよ。
Ruby2.0が出たらそのサブセットをどっかで標準化したりするのかね。

278 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 18:15:47 ]
2.0はこうなる!
みたいな解説どっかにある?

279 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:26:11 ]
ないでもないけど(Ruby Riteで検索すれといくつか)大昔のものなので、
1.9で実現しちゃったもの(YARVとか)もあれば、方針転換があったりしたものが
(たとえば括弧の省略があまりできなくなる方向で動いてたのを、断念しちゃったり)
あったり、全く刷新の気配もないもの(GCとか)とかで、全然参考にならない。



280 名前:231 mailto:sage [2009/11/06(金) 19:33:23 ]
必要ないかも知れないですが経過報告です。

全く違う別のPCで1.8.7-p72、NetBeans6.7.1という同じ環境を構築して
SQLite3をDBI経由で読んでみましたがコンソールからだと問題無く動くコードが
同じエラーになりました。ドライバが認識出来ないようです。
同じコードでも1.9.1だとNetBeans6.7.1でも問題無く動作するので環境の問題のようです。

もし上の環境でDBI経由でSQLite3が使えてる人がいたらアドバイスください。

281 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 19:50:20 ]
txt = open('hoge.txt').read

ってするとオープンされたファイルのストリームは開いたままですか?

282 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:03:17 ]
>>281
えーーーーと、
クラスメソッド File.open は File オブジェクトを返すだけ
関数的メソッド open も File オブジェクトを返すだけ
インスタンスメソッド File#read はストリームを閉じない
クラスメソッド File.read は File オブジェクトを開いて File#read して閉じて read 結果を返すユーティリティ的メソッド

File.open(path).read は不完全
open(path).read も不完全

File.read(path) は安全
File.open(path){|f| f.read} は安全
open(path){|f| f.read} も安全

ブロックつきメソッドで書けるメソッドは、ブロック作らないと危険
ブロックつきメソッドで書く意味がなさそうなメソッド(File.read、File.readlines 等クラスメソッド)はブロック作らなくても安全

クラスメソッドは「便利メソッド」として作られてることが多い

283 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 20:05:12 ]
>>281
GCされるかスクリプトが終了するまで開いたまま
ちゃんと閉じるか閉じてくれる書き方をするクセをつけたほうがいい

手っ取り早いのはこれ
txt = File.read('hoge.txt')
本当はIO.read、ただし1.9系じゃないとこの方法でbフラグ付けるのは無理

284 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 22:39:33 ]
IO.binreadは1.9だっけか


285 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 01:20:25 ]
String::squeezeの使い道が分からない

286 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 02:19:12 ]
1.9はvistaの様に飛ばして、2.0のsp2が出るまで1.8で耐えた方が良さそうw

287 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 05:32:37 ]
今までrubygemsで取得できるもので済んでいたのですが、
tar.gzで配布されているruby-clusterやruby-gnome(gtk?)を使うことになり、
Emacsでのanythingやauto-complete-rubyでも↑のライブラリを読み出して欲しいと思って調べたのですがわかりませんでしたので質問させてもらいます。
anythingではfri -lやrefe -lの結果から候補を、auto-complete-rubyではrcodetoolsからどうにかして候補を出しているみたいなのですが、
そのソースとなるのはtar.gzがもつドキュメントorコードから生成されたドキュメント(?)を元にしているみたいなのです。
そのようなドキュメントを生成するのはrdocなんでしょうか?そうだとしたらどのように生成すればいいでしょうか?
rdoc --riとやって.rdocの中に色々とできているのですが、そこをLOAD_PATHに加えればいいのでしょうか?

長くなってすいません。

288 名前:デフォルトの名無しさん [2009/11/07(土) 16:37:36 ]
Rubyで外部コマンドを単純に実行したいときで質問。
変数hogeにデータが入っていてこれを引数としてコマンドを実行したい。

system("command", hoge)

なら安全?
例えば、パイプでつなげられてrm -rfされる心配はないか、とか。

289 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:50:01 ]
はい
sysytem 等の第2引数はシェルを介しません

irb> system('ls', '-la|date')
ls: invalid option -- '|'
詳しくは `ls --help' を実行して下さい.
irb> system('ls -la|date')
2009年 11月 7日 土曜日 16:42:32 JST

ls が | についてのエラーを返していることに注目です
| を含んだ引数を ls コマンドに直接渡している証拠です

ただ、この場合、第1引数は完全に正しい実行可能文字列でなければなりません
オプションとかなんか余計なものを含んでいた場合はエラーです

irb> system('echo ', 'hello!')
false
irb> system('echo', 'hello!')
hello!

「echo 」という末尾に空白を含んだ実行ファイルは存在しないためコマンドが実行されず、system が false を返しています



290 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:55:35 ]
>>289
ありがとう。

291 名前:デフォルトの名無しさん [2009/11/08(日) 10:16:43 ]
テンプレに

・Ruby 1.9.0
 不安定にして先鋭機能が超満載の開発版バージョンだったもの
 1.9.x は本来全てが開発版の呼称だったのだが、事情が変わって(ここ笑うところ)

とありますが、どう事情が変わったのでしょうか?

"1" + 1 とするとエラーが出てしまいます。
エラー内容的には 整数を文字列に出来ないよ。 ということだと思っています。
しかし、 1.to_s を実行すると "1"が返ってきて、1.to_s.classはStringだと言っています。
数値の 1 を文字列に変換することは出来ているのに上記のようなエラーが出る理由が分かりません。
教えてください。

292 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:23:14 ]
Rubyは、その種の暗黙の変換はしないので、

"1".to_i + 1 #=> 2がほしいとき
"1" + 1.to_s #=> "11"がほしいとき



293 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 10:53:20 ]
オブジェクトが違ってるということはプログラミングの手順が間違ってるということがほとんどなわけで
こういう場面では暗黙の変換をしてもらわないほうが多くの場合は便利

動作と投入値のとり得る全てを事前に完全把握してる場合は暗黙の変換をしてもらったほうが面倒ないけどな
まあそういう時はRubyにこだわらず適当にそういう動作の言語使ってだらっとプログラム書けばええ
とりあえずRubyはその手の変換は行わないようにメソッドが作られてることが多い
困ったことに + 系のメソッド内でクラス比較して変換かけてるパターンもあるけどな

>>291
> どう事情が変わったのでしょうか?
このままだとバージョンナンバーを普通に使い切ってしまい
栄光のバージョン2.0が普通の1.9の上位バージョンになってしまうという危惧
1.9.0を元にした安定版を出す際に、通常のバージョンのつけ方なら
 ・ 1.9.x … 開発版
 ・ 2.0.x … 安定版
となるはずだし従来はこの予定だったのだが、2.0の名には値しないと判断されて、無理矢理
 ・ 1.9.0 … 開発版
 ・ 1.9.1 … 安定版
とされたということ


294 名前:デフォルトの名無しさん [2009/11/08(日) 15:19:36 ]
じゃあ、1.9.1は2.0ってことですか

295 名前:デフォルトの名無しさん [2009/11/08(日) 15:23:13 ]
matzを罵ってやる!

296 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:28:41 ]
Rubyでは、2.0は人参と呼ばれている。
「開発者のモチベーションを引っ張り続けるが到達できないもの」
来世紀くらいには追いつけるかもしれないがユーザーが待つのは馬鹿。


297 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:46:26 ]
まあ10年くらいしたらなんとかなんじゃねえの、とは思う
少なくとも5年では無理

298 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 15:47:49 ]
なにが人参だか。どうでもいいわ

299 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:01:55 ]
RubyにはRubyしか知らない人が多いというのはやっぱり真実なのだと思う
ようはPerl6と同じことだろ



300 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:23:16 ]
>>285
String#squeezeはたぶん正規化じゃないかなぁ

require 'jcode'; $KCODE = "s" # 1.9なら不要
Words = %w(google キター).map {|s| s.squeeze }
def exist?(s); Words.index(s.squeeze); end
p exist?("goooooogle")
p exist?("キターーーー")


301 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:23:36 ]
PHP6、Perl6、Ruby2のうち一番早くリリースするのはどれですか?

302 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 16:48:32 ]
やっぱり1.9sp2まで待ちだな。

303 名前:ダーク藤本 ◆ULFoMaooII mailto:sage [2009/11/08(日) 17:12:54 ]
SB3.5改
ttp://ux.getuploader.com/clonegameup/download/56/SB3.5%E6%94%B9.zip

Rubyは多次元配列の仕様が糞すぎる
まぁ多次元配列なんてWEBプログラマーには不要なもんだがw

304 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:29:27 ]
Rubyの多次元配列?
それなんていうライブラリ?

305 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:42:01 ]
ruby 1.9.3あたりが安定版になっても俺は驚かない
驚かないが、「またユーザーを混乱させるのか・・・」と思う

306 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:56:09 ]
>>305
1.9.1 以降は全部、1.9 系列の安定版だよ
1.9.2 が出たとしたら、それは1.9系列の最新安定版
1.9.3 が出たとしたら、それは1.9.2より新しい、1.9系列の安定版

開発版は常に 1.9.0
パッチレベルが上がるんだったかなんだったかで区別するとかしないとか
1.8.5やそれ以前のような「とりあえずリリース」はない
tenny(バージョン x.y.z の z)が 0 でないときは必ず安定版リリース

この理屈だと Ruby 2.0.0 は 2.0 系列の開発版ということになるが、まあそういうことなのだろう
情報の古いうっかりさんが「これが Ruby2.0 か」とか勘違いして 2.0.0 をインストールしてシステム壊すとかそういうの希望

まー 1.9.1 の中でもパッチレベルが違うと動作違うけどな(正しくなっただけなのだが)
1.8.6 でもあったが、なかなか酷い

307 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:57:08 ]
驚き最小の法則w

308 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 17:59:44 ]
>>307
情報の古いうっかりさんこんばんは

309 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:01:51 ]
ja.wikipedia.org/wiki/驚き最小の原則
結城浩は1996年、この原則を人間関係を円滑にすすめるための心得に拡張し、「驚き、最小の法則」として紹介した。
たとえば、プログラムを顧客に納品する際に、判明しているバグがあるのなら、それを伝えておいたほうが顧客に
とっても利用時の戦略を立てやすくなる、といったものである。「『どうしようかな?』と思ったときには、 相手の
『驚き』を最小にするような選択をすべき」であるという[1]。

プログラミング言語 Ruby は、一時期「驚き最小の原則」とともに語られることが多かった。ただし、作者のまつもと
ゆきひろはこの原則を Ruby の設計哲学として採用したことはないと述べている[2]。Ruby については、「さまざまな
バックグラウンドの人々すべてを驚かせないことではなく、Ruby のやり方に十分に慣れた人が持つ常識が一貫して通用
するという意味」[3][4]であるとして、「Matzの驚き最小の原則」という言い方も提案された[3]。現在では Ruby が
「驚き最小の原則」とともに語られることは少なくなっている[5]。



310 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:04:35 ]
驚きの連続w

311 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:09:19 ]
>>309
コミュニティ内では「Rubyらしい動作」という言葉で語られる概念だな
Rubyらしい動作をするクラスやメソッドは推測が利いて使いやすい、という程度の意味

312 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:10:14 ]
一時期のruby-talkとかひどかったもんな。

いろんな言語バックグラウンドを持つ香具師が、想定外の挙動に対して
「これは驚き最小に反している!」
そして「おめーにとってはそうだろうがよ」と総ツッコミ。


313 名前:305 mailto:sage [2009/11/08(日) 18:19:50 ]
>>306
説明ありがとう! 1.9.1からルールが完全に変わったんだな

> ruby 2.0.0 は 2.0 系列の開発版
そうなるのか? ruby 2.0.0 からまた元のルールに戻るとかじゃなくて?
そうなるんだとすると、本当に訳が分からなくなりそうだ

314 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:23:52 ]
>>313
2.0 系列の開発版は常に 2.0.0
2.0.0 で安定版が作れたと思ったら 2.0.1 としてリリース
2.0.1 がパワーアップしたら 2.0.2 としてリリース
2.0 系列の次のバージョンの開発版を作る場合は 2.1.0 でやる

こんだけ
x.y.z の y だか z だかが奇数のときは開発版で偶数は安定版、みたいな
冷静に考えるとへんてこなルールと実質上は何も変わらない

315 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:32:54 ]
>>314
ソース求む。

どこにもそんな話、なかったと思うんだが。

316 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 18:46:28 ]
ruby 1.9.3あたりが安定版になっても俺は驚かない
驚かないが、「またユーザーを混乱させるのか・・・」と思う

317 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 00:40:14 ]
順調に迷走してるね、この言語。

318 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 01:17:13 ]
迷走してるのはおまえの脳みそだろw

319 名前:デフォルトの名無しさん [2009/11/09(月) 02:02:57 ]
すくなくとも驚き最小の原則を標榜している言語が
脳みそを掻き回したらいかんだろ



320 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 02:09:56 ]
>>319
Rubyのことなら、標榜してないよ。


321 名前:デフォルトの名無しさん [2009/11/09(月) 02:13:44 ]
よそから飛んできたんでひょっとしたら320は空気が読めてなかったかもしれない

322 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 02:18:43 ]
ruby厨WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

323 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 08:23:38 ]
一時期のRuby厨が荒らしてたPythonスレみたいになってるw

324 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:33:42 ]
2.0が出てもみんな1.8.7を使いつづけるというオチでは?

325 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 09:44:20 ]
そこはJRubyでしょ

326 名前:デフォルトの名無しさん [2009/11/09(月) 11:24:20 ]
C言語みたいにクラス定義を別ファイルに書きたいのですが
#include "MyClass.h"
に相当するRubyの命令がわかりません。
手持ちの本にも載っていません。
誰か教えてください。


327 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 11:27:40 ]
require

328 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 18:12:07 ]
>>326
require "myclass" # myclass.rb を読み込む

329 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 19:50:19 ]
この言語って他の言語にある程度慣れてる人が多い?
プログラミングはRubyからです!って人は少なそう。



330 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:01:19 ]
>>329
Ruby から始めましたが。
理由は、基本的な構文はどの言語も似ていると思ったので...

331 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 20:27:41 ]
VBA → ちょっとだけJavaScript → VB.NET → C# → Ruby

332 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:14:56 ]
rubyから始めましたってのはニート出身のPGとかだけだろ
学歴ある奴はあり得ん

333 名前:330 mailto:sage [2009/11/09(月) 21:19:51 ]
>>332
大学で始めてプログラミングやった子なのかな?(^^;

334 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:20:44 ]
>>332
なにその根拠のない自信?ホントにプログラマ?

335 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:21:53 ]
>>332
ム板池よITドカタ

336 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:21:59 ]
おまいら釣られすぎですよ

337 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 21:56:53 ]
マジレスすると大学で覚えるプログラミングなんて大したことなくね?
いいとこの大学でもC言語を基礎から教えてたりするわけだし、そんな状態から4年間での伸びしろなんてたかが知れてる。
その周りの専門知識は大学じゃないと勉強するのは難しいかもだけど、実務で生かせてる知識がどれほどあるか。、
自分の大学生活が薄っぺらかっただけなのかな?
中卒高卒でも小さい頃から趣味でプログラミングやってた奴らには勝てる気がしないんですよ。
なんというか、雑学というか知識の幅というか、そこら辺が埋めようの無い差を感じる。

338 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:01:57 ]
安心しろ、ラジオを分解すらしたことがなくても
電気電子系の学科に進学する、という人が増えている。

今はそういう時代。

339 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:02:52 ]
モチベーションの差とかもあるかな
大学出てない奴は少なからず劣等感を持ってると思う
うちの会社に大学中退者が何人かいるんだが彼らのハングリー精神は恐れ入るよ



340 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 22:28:33 ]
>>337
小さい頃からプログラミング続けてる人はベースが完璧にできあがってるし
そういう基礎的な部分で苦労しない分、応用とか開発にリソース使えるんだろうね

341 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 01:15:40 ]
小さい頃からプログラムやってる人はうらやましいね。
田舎だとそういう情報もハードも少なくて外で走り回ってるくらいだったよ。
その年頃でマイコンとかやってる奴とかいるかと思うと・・・。
まだ、勉強し続けなきゃならないな

342 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 02:17:28 ]
あとは環境かねぇ。
親の環境次第で当時、高価なPCを買えたかどうかとか。

343 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 03:48:57 ]
子供の頃、親が遊びに投資してくれたかどうかで
将来がだいぶ変わるよな
ゲームばっかすんなとか言うけど
そこからプログラムに入れば職業につながる可能性だってあるんだしね

遊びの価値を理解してない人が多い気がする
自分の場合、学校で教わったことなんかより
遊んだ分の知識の方がメシの種になってる

勉強し倒したか、遊び倒したかという極端な人ほど
「使える」人になってる気がする

>>342
今は高価な PCじゃなくても、そこそこの性能で
今の子供はうらやましいよね

344 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 05:24:12 ]
そう言われてみれば、消防ん時からプログラミングやってる俺は
親がオーバークロックとか日常茶飯事な自作erだなあ

物心ついた時には周りにPCパーツ転がってたし
俺がPCに興味持ったと知るや、いきなりパーツ屋連れてかれたなw

ま、結局それはあんまり肌に合わなくて
PCじゃなく、ソフトウェアを組む方にハマったんだが

345 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 05:52:33 ]
今の子供は羨ましくもあるが、
ネットも無く毎日外で秘密基地とか作って遊んでた自分の小学生時代はこれはこれで良かったと思ってる。

346 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 06:23:59 ]
一方小学生の>>344はアメリカの某サーバにバックドアを仕掛けた






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

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

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