◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net ->画像>5枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1493398918/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2017/04/29(土) 02:01:58.34ID:urVXnFrH
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 59
http://echo.2ch.net/test/read.cgi/tech/1475394638/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/
2デフォルトの名無しさん
2017/04/29(土) 02:04:15.15ID:urVXnFrH
埋めちゃったんで立てた
3デフォルトの名無しさん
2017/04/29(土) 02:11:02.44ID:BB1qYBqv
>>1
Rubyもっと流行って欲しいよー
4デフォルトの名無しさん
2017/04/29(土) 09:19:50.66ID:+NUMWd7U
>>1
5デフォルトの名無しさん
2017/04/29(土) 09:29:52.67ID:/b3MraXM
>>前1000
どうしてもインデックスの計算やメンバ検索などで
間にRubyのコードが入ってしまうので結局遅くなるよ
6デフォルトの名無しさん
2017/04/29(土) 10:05:49.82ID:LxFH88XB
まつもとがmrubyに力いててるからなぁ
Ruby3頑張ってほしいわ
7デフォルトの名無しさん
2017/04/29(土) 10:08:09.41ID:gzSp69Zc
Matzは最適化には興味ないでしょ
大半のRubyプログラマも然り
8デフォルトの名無しさん
2017/04/29(土) 11:21:01.87ID:AcfKxaUU
コンパイラはできんのか
9デフォルトの名無しさん
2017/04/29(土) 12:46:44.81ID:eMb5q7il
10レスくらいあれば落ちない?
10デフォルトの名無しさん
2017/04/29(土) 13:09:14.76ID:AqsgnRmH
Mastodonの急な流行によりRubyに脚光が!

浴びてないな
浴びてないね
Railsも微妙
11デフォルトの名無しさん
2017/04/29(土) 16:27:48.07ID:cjUk9ycm
>>8
mruby-cli?
mrubyからDLLを叩けるようになればWin32ネイティブで動くアプリを作れそうとは妄想している

mrubyは2.x.xと比べてもかなり遅いのが悩みどころ。2.x.xのつもりで書いていると速度が悲しいことになる
12デフォルトの名無しさん
2017/04/30(日) 04:15:05.53ID:C4fcJeOa
JRubyのドキュメント少ないなあ
JRuby+JavaFXでGUIアプリ作ってみたい
13デフォルトの名無しさん
2017/04/30(日) 07:04:15.22ID:HZc5pT/v
JavaFXの方もほとんど誰も使ってないぞ
パイオニアといえば聞こえはいいが後を追う人も誰もいなさそう
14デフォルトの名無しさん
2017/04/30(日) 10:18:17.54ID:V7fCcZ2D
JRubyFX便利
15デフォルトの名無しさん
2017/04/30(日) 10:59:05.21ID:HKpgHA6l
JRubyってCRubyより実行が速いって言われるけど自分が使う範囲だと遅いんだよなぁ
起動とかCRubyだと10msもかからないプログラムの終了に数秒かかるしあほらしくなるくらい遅いし
肝心の実行速度自体も速くない。1.8.x比ならともかく2.x.x比だと優位性は感じられなかった
16デフォルトの名無しさん
2017/04/30(日) 11:54:58.94ID:ZnazSADk
rubyで書かれたデスクトップアプリは何があるんだろう
個人的に知らないので、有名所があれば教えて欲しい
17デフォルトの名無しさん
2017/04/30(日) 12:16:26.06ID:VPr4LyhY
有名なものはない
18デフォルトの名無しさん
2017/04/30(日) 12:19:05.53ID:raNlWE+W
遅すぎてCに戻る。
19デフォルトの名無しさん
2017/04/30(日) 12:23:47.65ID:HKpgHA6l
昔プライベートなGUIツールをwxRuby+exerbで作ったことがあるけど大分苦労させられた
20デフォルトの名無しさん
2017/04/30(日) 12:53:10.79ID:eW5YwfF4
RubyでGUIは遅すぎて話にならなかった記憶しかない。
21デフォルトの名無しさん
2017/04/30(日) 12:56:04.44ID:VPr4LyhY
wxはPythonの方が造りやすい
22デフォルトの名無しさん
2017/04/30(日) 12:56:45.45ID:Yjf3oY9z
ほとんどc/c++だから遅くはならんでしょ
23デフォルトの名無しさん
2017/04/30(日) 13:05:44.18ID:eW5YwfF4
いんや。
起動がdll読みまくりだからC#の起動時よりさらに遅いのよ。
起動が終わればまあ、気にするほどじゃ無いんだが。。。
C#の起動でさえ焦れったいから、我慢の限界超える遅さ。
24デフォルトの名無しさん
2017/04/30(日) 13:27:18.11ID:HKpgHA6l
wxRuby+exerbで作った奴は一瞬で起動するよ
Javaや.NETの方が遙かに待たされる
Ruby2.x.xでwxが使えればなぁ・・・
25デフォルトの名無しさん
2017/04/30(日) 13:56:27.67ID:GKlomiNq
で、結局今はGUIは何で作るの?
26デフォルトの名無しさん
2017/04/30(日) 14:02:35.33ID:HKpgHA6l
HTMLですむ&RScriptをインストール出来るならActiveScriptRubyを使ってHTAと言う手もあるな
GUIを英語とにらめっこせずに標準的に書けるから結構楽
27デフォルトの名無しさん
2017/04/30(日) 14:58:18.35ID:VPr4LyhY
>>25
少なくともRubyは使わない
28デフォルトの名無しさん
2017/04/30(日) 15:29:46.79ID:HKpgHA6l
Rubyは遅いと言われるけど実際の処理だとそうでもないんだよなぁ
大容量のバイナリデータを読み込んでゴリゴリ演算するような用途だと
PythonやLuaにしたところでインタプリタ稼働率の上昇やI/O性能で
コーディング量が増える割に速くならない
Rubyでも標準のCライブラリを積極的に使うような書き方をすると以外と
大差ない速度が出ちゃったりするし
29デフォルトの名無しさん
2017/04/30(日) 15:47:34.18ID:VPr4LyhY
CPUの進化に助けてもらってる面はある
30デフォルトの名無しさん
2017/04/30(日) 16:25:39.24ID:HKpgHA6l
CPUはあまり関係なくね?自分は同じマシンで比べているよ
ベンチマークによってはRubyはPythonやLua(JITな奴)の1/数やそれ以下の速度しか出なかったりするけど
自分が試した限りそんなことはないな。圧倒的な速度で処理できるのかと期待すると肩すかしになる

JRubyやIronRubyも同じで、速くはならないどころか自分が試した限りでは遅くなったw
起動が遅くて実行も遅いのでは出番なし
31デフォルトの名無しさん
2017/04/30(日) 17:19:13.39ID:Yjf3oY9z
今のJRubyって滅茶苦茶速いはず
32デフォルトの名無しさん
2017/04/30(日) 18:11:13.89ID:GKlomiNq
エレクトロンの本ポチってみた
これでGUI作ってみるわ・・・
33デフォルトの名無しさん
2017/04/30(日) 19:03:42.97ID:HKpgHA6l
>>31
ホントに?自分が試したのは1年ちょっと前くらいだからそんなに大昔じゃないぞ
当時すでにJRubyの速度はCRubyに対して明確に速いのが常識的な風潮だったんで
試してみたら全然そんなことなかった

今作っているのがCRuby 2.1.xで数十秒から数分かかる代物なんでこれが1/数で終わると嬉しいなぁ
34デフォルトの名無しさん
2017/04/30(日) 21:18:20.36ID:V7fCcZ2D
当たり前のことだけど何をやらせるかにも依るでしょ
35デフォルトの名無しさん
2017/04/30(日) 23:56:49.84ID:HZc5pT/v
>>33はきっとライブラリの実装がボトルネックになってるんだろうな
36デフォルトの名無しさん
2017/05/01(月) 00:37:35.10ID:U8II69aQ
簡易的な計測なので参考程度だけど計ってみた

処理内容
 25MB程度のWaveファイル読みながらフィードバックタイプのエフェクトを掛けてWaveファイルに吐き出す
 読み出しはダブルバッファリング。書き出しは直書き
計測方法
 数回計ってそれっぽい時数を採用
jruby 9.1.8.0 (2.3.1) 2017-03-06 90fc7ab Java HotSpot(TM) Client VM 25.25-b02 on 1.8.0_25-b18 +jit [mswin32-x86]
 65sec程度 メモリの使用は440MB程度
ruby 2.1.2p95 (2014-05-08 revision 45877) [i386-mswin32_100]
 75sec程度 メモリの使用は200MB程度
ruby 2.4.0p0 (2016-12-24 revision 57164) [i386-mswin32_100]
 90sec程度 メモリの使用は130MB程度
インタプリタの起動時間は含まないからJRubyはこれに2~3秒加算される
jruby 1.7.12だと100秒以上かかっていたからかなり速くなっているけど、CRubyと
比べて劇的に速いってほどじゃないな。速度差はGCのさじ加減のような気も・・・
あと2.4を使ったら速くなるかと思ったら遅くなったw
37デフォルトの名無しさん
2017/05/01(月) 01:09:37.50ID:U8II69aQ
ruby 2.4.0p0 (2016-12-24 revision 57164) [x64-mswin64_100]
 70sec程度 メモリの使用は230MB程度
やっぱりCGのさじ加減?
38デフォルトの名無しさん
2017/05/01(月) 01:13:18.27ID:P+4F2YiV
>>36
それIOがネックになってないか?
CPU使用率を開示せよ
3938
2017/05/01(月) 01:16:50.69ID:P+4F2YiV
すまん、正確には「IOのためのAPI呼び出しのコスト」だな
CPU使用率が仮に100%でもRubyコードそのものの実行時間を測ってるのかどうかは疑わしいよ
40デフォルトの名無しさん
2017/05/01(月) 02:30:50.38ID:fBLf4yNS
メモリ節約と速度は反比例するのは常識だが。。。
41デフォルトの名無しさん
2017/05/01(月) 03:01:26.20ID:U8II69aQ
>>38
IOは足を引っ張っている。最初は処理単位(2Byteや4Byte)で呼んでいて洒落にならないほど遅かった
今は512KB単位で読み込んでいる。25MB程度の場合はreadの呼び出し回数が50回程度の
はずでかなり抑えられているはず
ただしバックグラウンドで読んでいるためにオーバーヘッドは増えている

オンメモリで処理すれば多少速くなるのは確かだろうけど扱うデータ量が多いと数百MBに達する
可能性があることを考えるとあまり現実的はないか

dl経由でCreateFileを叩いてFILE_FLAG_SEQUENTIAL_SCANを付けて開いてWinAPI経由で読み込むとか
などまだ改善しそうな策はあるけどどこまで速くなるかは何とも・・・
42デフォルトの名無しさん
2017/05/01(月) 07:02:53.40ID:lT1GiCV3
>>40
そんなことはない
速い言語ではメモリアクセスがボトルネックになることもある
それに、能力の低いプログラマはやたらとメモリを食うプログラムを作る傾向がある
43デフォルトの名無しさん
2017/05/01(月) 07:18:13.85ID:fBLf4yNS
画像処理みたいに同じデータにアクセスするコードが少ないか、Rubyインタプリタみたいにループで同じデータ(この場合Rubyコード)にアクセスするコードが多いかの違いだろ。

メモリ確保した割に速くなかったからバランス取ったんじゃねーの?
44デフォルトの名無しさん
2017/05/01(月) 08:19:56.73ID:3OyRI7P6
caseでラベルがラベルではなくラベルの文字列としかマッチしないって酷い仕様だな
アリエンティーすぎる
45デフォルトの名無しさん
2017/05/01(月) 08:40:59.02ID:3OyRI7P6
そんなことはなかった
木の生だった
46デフォルトの名無しさん
2017/05/01(月) 09:42:14.76ID:B7FMiEuI
Ruby初心者スレ的には使用メモリを気にするのは初心者の証
こういうスクリプト言語なんて自分のぶんの処理が速ければそれでいいのだ
ただし脱中級者認定要件に「Cレベルでのメモリ動作を理解し適宜気にする」という項目があるにはあるがw
47デフォルトの名無しさん
2017/05/01(月) 10:18:46.45ID:lXMk8r4o
def f1(n,r)
n
end
def f3(n,r)
(n+1)%2
end
def f4(n,r)
n%2
end
def f5(n,r)
(n%r)==0?1:0
end
fs=[f1,f1,f3,f4,f5]
fs[3](21,7)
みたいに関数を配列に入れて使いたいんだが触って5時間の初心者なんでわからん。
具体的なコード教えてくれめんす。
48デフォルトの名無しさん
2017/05/01(月) 10:34:15.38ID:B7FMiEuI
>>47
技術的には可能ではあるがカレーを箸で食べる方法を工夫するようなものだ
まずは何を食べるときの話なのか教えてくれると最初からスプーンを勧めることができるぞ
49デフォルトの名無しさん
2017/05/01(月) 10:47:11.79ID:lXMk8r4o
ありがとうございます。
詳細は明かせないです(説明すると人として恥ずかしいレベルのあれやこれやの理由で)。

関数の集合と適用順番を求める処理が上位にあって。
そこから降ってきたものを具体的に計算したりするときに使いたいのです。
引数の値に対応する関数リストがあるときに関数の適用順序をif文で分岐するとコードが偉いことになるので。
引数に1が来たら関数2,3,5
引数に2が来たら関数3,7,8,12,23
、、、
引数にnが来たら関数1,13を適用
みたいな対応表で、if文で適用関数を区別せず、リストとかで処理を記述したいわけです。
50デフォルトの名無しさん
2017/05/01(月) 11:04:38.77ID:F35eYYLf
>>49
単純に引数で処理変えたいなら、case文で場合分けすればええんで?
def fn(a,b,c)
case a
when a = 1
puts sum = b + c
puts sum = 2*b
when a = 2
puts sum = b - c
when a = 3
puts sum = b * c
when a = "div"
puts sum = b / c
end
end

fn(1,10,5)
#=>15
#=>20
fn(2,10,5)
#=>5
fn(3,10,5)
#=>50
fn("div",10,5)
#=>2
51デフォルトの名無しさん
2017/05/01(月) 11:18:46.93ID:ZySc29+x
Ruby始めてすぐなのならどっかででっかい条件分岐させて「実行したいメソッドとその処理順方法」を記した何かを紐づける記述が絶対に必要
それをたとえばデータ配列なんかに持つことは愚行であって(だいいちそのデータだけ見てもなにしてるか読めないし改変追加しんどいだろ)
素直に地の文で論理を記述するべきだろうね

てなわけで被らない分岐をすべて>>50のcaseで分岐させ、メソッドを実行する順番を書いただけの分岐後専用メソッドにぶん投げるのが妥当では
分岐が数十個超あるならクラス作ってファクトリーメソッドとかあのへんに行くんだろうけど1か月くらい早いと思う
52デフォルトの名無しさん
2017/05/01(月) 11:23:20.88ID:F35eYYLf
話脱線するけど、上のメソッドにp使うと
p fn(2,10,5)
#=>5
#=>nil
って表示されるけど、何に対してnilを出してるのかが分からん
53デフォルトの名無しさん
2017/05/01(月) 11:44:56.25ID:hzoMRY/L
>>42
firefox/realplayerの悪口はもっと言え
54デフォルトの名無しさん
2017/05/01(月) 11:53:49.39ID:ZySc29+x
>>52
Rubyのメソッドはすべて戻り値を返す
返すべき適当な値がない場合はnilを返す
んでirbとかはメソッド戻り値も律儀に表示する
irb> def m1; end
irb> m1
=> nil
そいで画面表示するメソッドを使うと標準出力内容とメソッド戻り値が2段表示になる
55デフォルトの名無しさん
2017/05/01(月) 11:54:30.99ID:L3YRsyvl
putsの返り値がnilだからでしょ
56デフォルトの名無しさん
2017/05/01(月) 11:54:54.16ID:lXMk8r4o
親切な返答ありがとうございます。
なるほど全然ダメな発想だったのですね私。

将来的な話なのですが、ゲームの雑魚敵を配列に入れた複数の関数で動きや思考や攻撃防御を制御して、
雑魚敵の部位ダメージ量や探索モードや怒りモードなどへの条件を満たすと、配列内の関数を入れ替えることで雑魚敵の挙動を制御したい。
という現時点での目標があります。

とりあえず教えてもらったコードを理解できるか今から頑張ってみます。
57デフォルトの名無しさん
2017/05/01(月) 11:56:43.97ID:F35eYYLf
>>54
メソッドの戻り値だったのか、ありがとん
58デフォルトの名無しさん
2017/05/01(月) 21:44:37.52ID:+TVy5Krd
ロボットの動きなどは、case文で書く方がまれ。
右に動く関数とか、上に動く関数とかを、Hash か配列に入れておく

キーマップなどもそう。
キー A~Z に該当する動きを、case文で書くのは大変

呼び出される処理を、ブロックで書く。
ブロックを呼び出すのは、yield

yield(引数)とすると、その引数は、ブロック引数として渡ってくる。
{ |引数| 処理 }
処理が2行以上あるなら、do ~ end を使えばよい

-> (引数){ 処理 }
lambda{ |引数| 処理 }

Proc.new{ |引数| 処理 }
proc{ |引数| 処理 }

Proc.new, proc では、return が使えないから、->, lambda を使えばよい
59デフォルトの名無しさん
2017/05/03(水) 02:23:03.67ID:wSFjLMka
>>56
enemy[0]=Slime.new
enemy[1]=Goblin.new
enemy[1].state=Angry.new
enemy[0].action #普通に弱い
enemy[1].action #Angryのメソッドにより強い

こういうことならオブジェクト指向について学ぶといい
ただ敵の数が多いとハードコーディングしないでメタプログラミングのがいいかもな
基礎を覚えたら
60デフォルトの名無しさん
2017/05/03(水) 23:40:20.15ID:zkWNfzXl
スライムとゴブリンを別のクラスにする意味はないだろ
そんなもんデータが違うだけ
61デフォルトの名無しさん
2017/05/04(木) 00:17:43.27ID:PMOSX9lZ
普通、スライムとゴブリンは、振る舞い・攻撃パターンが異なるから、
別の基本クラスを継承する

スライムは、無形モンスター。
ゴブリンは、小鬼か妖精族?
62デフォルトの名無しさん
2017/05/04(木) 01:07:10.81ID:kDn7ReiV
ちょっと古い DXRubyの話かと思った
63デフォルトの名無しさん
2017/05/04(木) 01:10:22.16ID:kDn7ReiV
2dのRPGやシューティングは作りやすかったけど
3dは他の使った方が良い

興味ないか……
64デフォルトの名無しさん
2017/05/04(木) 03:22:55.23ID:ufmsKYbO
>>60
基礎を覚えたらと書いてあるだろ
65デフォルトの名無しさん
2017/05/04(木) 10:08:11.63ID:4jJ2tlWM
いま流行りのますとどん

Rubyを学ぼうというインスタンスはないものか
66デフォルトの名無しさん
2017/05/04(木) 23:01:56.14ID:TB6ujr0/
rubyの求人が無くて泣く
プログラマになりたいと思って勉強したのに・・・…
これからrubyとrailsの需要が爆発的に伸びるとかってありえますか?
67デフォルトの名無しさん
2017/05/04(木) 23:38:24.44ID:ufmsKYbO
>>65
立てていいぞ
68デフォルトの名無しさん
2017/05/04(木) 23:41:48.41ID:ufmsKYbO
>>66
オブジェクト指向とか別の言語だろうと役に立つ
構文覚えただけならrubyの仕事増えようと役に立たない
それか言語を規定してない仕事でrubyを提案すればいいだろ
69デフォルトの名無しさん
2017/05/04(木) 23:44:35.87ID:lRx89izX
RubyもRailsも落ち目で衰退する一方だよ
でも所詮それらは道具であり大して重要なことではない
AWSとかのインフラ方面の知識を身につけて一通り自分で作れるようになるとか、
実際にサービス作って運用してみるとか
とにかくモノ作れる奴にはいくらでも働き口はある
70デフォルトの名無しさん
2017/05/04(木) 23:50:13.53ID:rtRP+bqL
趣味または職業プログラマーとして「生きていく」のにRubyは強力に役立つ
ただし職業プログラマーとして「働く」のにはあまり役に立たない

これはそういうものだ
食べていくのならRubyだけじゃなくRuby「とそれ以外」を身に着けろ
71デフォルトの名無しさん
2017/05/05(金) 00:40:00.34ID:ayKeenIH
それってRuby以外の言語でも言える事じゃね?

というか国はプログラマーの育成に力を入れているようだけどその実態はコーダーの育成
世界で戦っていく上で必要なのは英語の意味でのシステムエンジニア(≠ソフトウェアエンジニア)だろ・・・
72デフォルトの名無しさん
2017/05/05(金) 00:42:47.93ID:YKLEnk0e
ハローワークでも、Pythonの求人は、ほとんどないけど、

Rubyの求人は、たまに見る
73デフォルトの名無しさん
2017/05/05(金) 01:01:51.97ID:78DJCXmh
Ruby覚えたら次はJavaでもC#でも飯の種になりそうな言語覚えれば良いじゃん
他の言語について知ると元の言語の理解も深まるから
それこそプログラマとして働くなら特定の言語だけしか使えないなんてありえないよ
74デフォルトの名無しさん
2017/05/05(金) 01:05:47.85ID:TDjvniVu
日本に必要なのは質の高いプログラマーだと思うぞ
世界で戦えるサービスやアプリが少ないのはプログラマーの質の問題が大きい

教育面で言えばごくごく一部の大学と大学院を除くと
日本の大学よりCourseraで受けられる講義のほうがレベル高いからな
小学生にプログラミング教育するより高等教育に力入れないと話にならん

あとハローワークは知らんがRubyの求人は普通にあるよ
Rubyで人とるようなところはハロワに出さないだけじゃないの
リクナビとか一般的なサイトで調べてみたら?
75デフォルトの名無しさん
2017/05/05(金) 01:44:48.67ID:mu06C9qQ
文法覚えて食えるんだったらせわないわ。
76デフォルトの名無しさん
2017/05/05(金) 02:14:13.82ID:iQB12R96
とりあえずRubyで色々作れるなら、他の言語でも文法とライブラリ覚えりゃ作れるでしょ。
ある日Javaでこれ作って。って言われたらJava入門書とWebのドキュメントで翌日には学びながら作り始めるのが当たり前の世界よ?

ソースはおいら。
77デフォルトの名無しさん
2017/05/05(金) 15:07:31.63ID:K1twnG6D
ねえねえ、Rubyバイナリのバージョン管理って今でもrbenvでいいの?
78デフォルトの名無しさん
2017/05/05(金) 19:19:15.08ID:u3v3zIiy
https://ideone.com/baTUOX
二乗の和をもとめたいのですが,うまくいきません

https://ideone.com/may0rV
との違いはなんでしょうか?
79デフォルトの名無しさん
2017/05/05(金) 19:33:23.14ID:78DJCXmh
>>78
https://ideone.com/zCU275
評価順が違う
戻り値をそのまま使う時は {}
そうでなければ do end が普通かな
80デフォルトの名無しさん
2017/05/05(金) 19:55:45.07ID:yiYPdEw2
これはdo...endと{}の結合の強さの違いによる問題だね
ここ参照して
http://rurema.clear-code.com/2.4.0/doc/spec=2fcall.html#block
上でも言われてるけどブロック付きメソッドの戻り値をpしたいときは{}使わないと思ったように動かないよ
81 ◆QZaw55cn4c
2017/05/05(金) 19:56:57.31ID:u3v3zIiy
>>79
コメントありがとうございます.

しかし手元の教科書(たのしいruby)では
obj.method(list) do | ブロック変数|

end



obj.method(list) { | ブロック変数|

}
は互換であると書いてあります.評価順序の違い,とは >>78 のプログラム例では,どのような順序になるから,違う,といえるのでしょうか?
82デフォルトの名無しさん
2017/05/05(金) 20:02:27.64ID:yiYPdEw2
例えば
p (1..10).map{|i| i**2}
は(1..10).map{|i| i**2}の戻り値をpするけど
p (1..10).map do |i| i**2 end

p((1..10).map) do |i| i**2 end
と同じ動きをする。
互換というのは明らかな誤謬。
83 ◆QZaw55cn4c
2017/05/05(金) 20:05:43.45ID:u3v3zIiy
>>82
なるほど,よくわかりました
丁寧な回答ありがとうございました
84デフォルトの名無しさん
2017/05/05(金) 20:10:13.54ID:yiYPdEw2
ついでに、いちいち書き換えるのが面倒なら
(1..10).map do |i| i**2 end.display
(1..10).map do |i| i**2 end.tap{|e| p e}
とかって書くのもありだね
85デフォルトの名無しさん
2017/05/05(金) 20:20:15.00ID:sevG6PSJ
mapをdo end で書くのキモい
86デフォルトの名無しさん
2017/05/05(金) 23:25:26.52ID:G0OfeBgr
結合の強さって初めて知ったわ
こんな仕様あったのか
87デフォルトの名無しさん
2017/05/06(土) 14:02:42.85ID:2cSynca3
教えてください。(当方Rubyまったく無知です。)

下記のスクリプトを走らせるとSSLエラーが出るので、
拾ってきた証明書を読ませて何とかしたのですが、
open-uri.rb:359:in `open_http': 403 Forbidden (OpenURI::HTTPError)
と、エラーが出ます。UserAgentや認証やら何かでけられてると思うんですが。
403.1とかのサブエラー返してくれればまだしも原因わからず。

※Yahooボックスから一括DL
http://lp6m.hatenablog.com/entry/2016/08/12/184232
88デフォルトの名無しさん
2017/05/06(土) 14:25:24.99ID:5w6KEOXn
つまりそのためにYahooのアカウント取ってBOXに何か入れて検証しろと
89デフォルトの名無しさん
2017/05/06(土) 18:26:04.98ID:l3lhsLeM
普通に認証失敗してんだろ
認証に成功してるかどうかもわからないコード使って
Ruby無知です、わかりません、教えてくださいって酷いゆとりだね
90デフォルトの名無しさん
2017/05/06(土) 18:31:44.81ID:5w6KEOXn
Rubyを学んでいないのならこんな古臭いスクリプトをわざわざRuby入れて使う必要はない
91デフォルトの名無しさん
2017/05/06(土) 19:32:19.76ID:s8HixK2i
yahoo box さらうプログラムなら他にもあるよな
92デフォルトの名無しさん
2017/05/06(土) 20:03:38.15ID:2cSynca3
自覚も無い人間の屑共が消えろゴミカス
93デフォルトの名無しさん
2017/05/06(土) 20:23:44.39ID:s8HixK2i
私たちはあなたのような人を売るほど見てきてるのですよルンルン
94デフォルトの名無しさん
2017/05/07(日) 03:19:50.14ID:edBtKeoY
>>80-84
{ }, do~end は互換じゃなかったのか!

しかし、ブロックの外側に、p を付ける方が、おかしい!

ブロックの外側に、p を付けるって事は、ブロック全体の戻り値を表示する事になる。
ブロック内の各処理の結果じゃない
95デフォルトの名無しさん
2017/05/07(日) 03:25:08.49ID:edBtKeoY
>>87-92
たぶん、Rubyの問題ではない

「403 Forbidden OpenURI::HTTPError」で検索!
96デフォルトの名無しさん
2017/05/07(日) 04:53:57.72ID:cg7edk1d
case文書く時に
case 比較したいオブジェクト名
when 値1 then
文1
って書いてあるけど
別に比較したいオブジェクト名を省略しても動くよね
ただリファレンス見てもその辺の注釈が無いけど、どういう理屈で動いてるんだろう
97デフォルトの名無しさん
2017/05/07(日) 08:48:03.37ID:xlJMQ4jE
>>96
caseに値を指定するかどうかでwhenの値の扱いが変わる
特に不思議な仕掛けがある訳じゃなく、単純に文法上別の動作をするってだけのこと
リファレンスにも普通に書いてあるぞ
98 ◆QZaw55cn4c
2017/05/07(日) 10:30:19.21ID:qkFjvNg9
>>94
>しかし、ブロックの外側に、p を付ける方が、おかしい!
なるほど、何もしらない初学者だから、こういったこともよくわかっていなかったのです
今後ともよろしくお願いいたします。

今演習をしていますが、
s = "Ruby is an object oriented programming language"
に含まれるアルファベットの頻度をカウントしようとして
s.each_char do |c| で、手がとまっています
99デフォルトの名無しさん
2017/05/07(日) 10:32:21.91ID:ZvN12MF9
そうですか頑張ってください
100デフォルトの名無しさん
2017/05/07(日) 10:49:01.57ID:yCqO92dr
s.chars.uniq.each_with_object({}){|c,h|h[c]=s.count(c)}
101デフォルトの名無しさん
2017/05/07(日) 10:50:54.94ID:yCqO92dr
あと別にブロックの外側に、p を付ける事はおかしくない
ブロック全体の戻り値が知りたいときだってあるでしょう
102デフォルトの名無しさん
2017/05/07(日) 11:42:11.78ID:cg7edk1d
>>97
よく読んだらcase文の最後の所に
省略した場合の挙動が書いてありました・・・・・・申し訳ないです
しかしこれで色々と楽が出来そうです、ありがとうございました
103デフォルトの名無しさん
2017/05/07(日) 14:43:52.81ID:bug3EadL
>>98
Rubyに限った話じゃないけどある処理を実装しようとする時は
その処理の入力と出力の型を最初に考えるといいと思うよ
(厳密に定義されてる型じゃなくても別によくて入出力の形式くらいの意味)

例えば
文字列の文字出現頻度をカウントするメソッドの入出力は
string -> hash {“a” => 3, “b” => 5, …}

でeach_charに渡すブロックの入出力は
char -> hash

でcharを1つずつ受け取って意図したhashを返すにはどうするのかを考える
104デフォルトの名無しさん
2017/05/07(日) 15:02:27.91ID:bug3EadL
(続き)
例えば特定の文字が出てくるたびにインクリメントすればいいと考えれば
最初は↓こういう実装でもいい

s = "Ruby is an object oriented programming language"
result = Hash.new(0)
s.each_char do |char|
result[char.downcase] += 1
end

上のコードが手続き的で副作用が気持ち悪いと思うようになってくればreduceに変える
s.chars.reduce(Hash.new(0)) {|result, char| result[char.downcase] += 1; result}

reduceだとブロックの最後に明示的にresultを返してやらないといけないのが美しくないと思えばeach_with_objectに変える
s.chars.each_with_object(Hash.new(0)) {|char, result| result[char.downcase] += 1}

文字の集合をgroup byすればいいというふうに考えれば↓こういう感じとか(パフォーマンスは上のほうがよいけど)
s.chars.group_by{|char| char.downcase}
.map{|key, value| [key, value.length]}
.to_h

入出力の型を考えて、ロジックを考えて、ロジックをコードで表現する方法を見つける
105デフォルトの名無しさん
2017/05/07(日) 15:19:04.40ID:2pnfBwSz
>>104
副作用の意味分かってる?
106デフォルトの名無しさん
2017/05/07(日) 15:42:28.57ID:3+oylOXC
大学すら行ったことのない人は「演習」の意味も分からず>>103-104みたいなことを書くのだ
気をつけようね
107デフォルトの名無しさん
2017/05/07(日) 16:16:42.30ID:2pnfBwSz
reduceは考え方が手続き型に近いので、関数型特有のトップダウンな思考が身についてない人にも馴染みやすいためか、低スキルな人が好んで使うよね
故に>>104のように無自覚に副作用書いちゃう馬鹿野郎も多い
108デフォルトの名無しさん
2017/05/07(日) 18:08:01.01ID:vOdx9BxG
ここでネタ書いてる人がいる.

http://jbpress.ismedia.jp/articles/-/49927?page=3
109 ◆QZaw55cn4c
2017/05/07(日) 18:18:09.31ID:qkFjvNg9
ruby の記述力には感動すら感じさせられますね
今回、必要があって ruby を始めましたが、末永くお付き合いさせていただくことになりそうですね、C/C++ だけに眠っていたのは損失でした…
110デフォルトの名無しさん
2017/05/07(日) 20:38:50.83ID:YLCveNdh
>>108
自己紹介GJ
111デフォルトの名無しさん
2017/05/07(日) 21:06:49.51ID:edBtKeoY
>>98
>s.each_char do |c| で、手がとまっています

手が止まるのは、習っていない事をしようとするから。
そりゃ出来ないはず

先に「たのしいRuby 第5版、2016」を3回読めば、ほとんどの事は書いてある
112デフォルトの名無しさん
2017/05/07(日) 21:36:25.47ID:vOfy+8Oj
>>104
すでに>>105が指摘しているけど、破壊的代入は副作用の一つだよ

副作用の無い「関数型プログラミング」と呼ばれる作法に従えば、
以下のコードになる

http://ideone.com/d48CGm

詳しくは以下の文書を参照
・Rubyによる関数型プログラミング
 http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html

あと蛇足を加えると:
・上記のコードでは、reduce ではなく inject を用いた
・効率という視点では破壊的代入を用いる>>104のコードのほうが優れている
・わざわざメソッド String#chars で文字列を文字の配列に展開するよりも、
 ブロックを伴わないメソッド String#each_char は列挙オブジェクト
 (enumerator)を返すから、それを直接inject(あるいは reduce)へ
 チェーンさせたほうが効率的である
113デフォルトの名無しさん
2017/05/07(日) 21:47:04.67ID:hR29VPCg
>>109
ちゃんと覚えるつもりならRubyの一般的なコーディングルール調べてからのほうがいいよ
自然に do end と {} の使い分けも出来るように考えられてたりとか
無駄な時間を減らせるようになってる
114デフォルトの名無しさん
2017/05/07(日) 22:19:19.16ID:3+oylOXC
reduceという別名をつけてくれたのはありがたいことだと思う
厄介な人間の区別がつけやすくなったからな
115デフォルトの名無しさん
2017/05/07(日) 22:25:07.52ID:yCqO92dr
LISPER大激怒
116デフォルトの名無しさん
2017/05/07(日) 22:28:15.75ID:vQOCcspz
enumeratorが効率的なわけがない
117デフォルトの名無しさん
2017/05/07(日) 22:37:40.27ID:3+oylOXC
>>115
Rubyのreduceは別にreduceしてるわけではないし
関数型やってるわけでもないのに「わざわざ」reduceと呼ぶのは
・reduceの動作を理解していない
・Rubyと他の関数型言語等との区別をつけられていない
という点で危険人物の可能性が高い
そして実際にそうだったわけであって
118デフォルトの名無しさん
2017/05/08(月) 00:02:12.04ID:H9Jpde9f
>>112
副作用って書いたのはステートメント単位の話ね

each_charとcharsの違いはたかだか知れてるけど
インクリメントのたびに新しいHash作ってたら
100倍・1000倍のオーダーでパフォーマンス変わるよ
119デフォルトの名無しさん
2017/05/08(月) 00:17:01.28ID:cPdEWfXE
Rubyではほとんどの場合injectだよな
reduceという名前で書きたい処理だと思ったことはRubyではまだないわ
名前重要、は組み込みライブラリにも適用されるのだ
120デフォルトの名無しさん
2017/05/08(月) 01:00:12.59ID:H9Jpde9f
パフォーマンス比較
http://ideone.com/coBqfF
121デフォルトの名無しさん
2017/05/08(月) 01:16:43.69ID:RkG8OoQA
ループはwhile最強のはずと思ったけど、配列や文字列の添字参照は引数のパースにコストがかかるし
何文字目か数えないといけないからeach_charsのほうがマシだな
122デフォルトの名無しさん
2017/05/08(月) 05:42:30.32ID:WmCrZwJe
effective rubyに倣ってreduceだわ
123デフォルトの名無しさん
2017/05/08(月) 13:18:08.61ID:iGkkPwEU
Rubyist Magazine - map と collect、reduce と inject ―― 名前の違いに見る発想の違い
http://magazine.rubyist.net/?0038-MapAndCollect

俺はmap/reduce派
124デフォルトの名無しさん
2017/05/09(火) 00:44:03.70ID:AJpeMRYn
>>123
長ったらしいな。

まず、Rubyは他の言語を参考にした。
map と collect、reduce と inject と2つあるのは
Lispを参考にした名前が、mapとrecude、
Smalltaikを参考にした名前が、collectとinjectである。
というだけだろう?
ここまででRubyの話は終わりじゃないか。
125デフォルトの名無しさん
2017/05/09(火) 00:44:54.41ID:AJpeMRYn
JavaScriptに標準であるのは、mapとrecudeだな。
126デフォルトの名無しさん
2017/05/09(火) 01:55:29.32ID:lu7Bmdm9
配列の関係でお聞きしたいです
http://ideone.com/ntTNm5
127デフォルトの名無しさん
2017/05/09(火) 02:12:04.57ID:7rjXR/HL
スクリプトのちぐはぐさから見て、おそらくコピペ継ぎはぎだけで体系的な学習を全くしてないと思われる
書籍のたのしいRubyを買えとまでは言わないので、なんかどっか適当なアフィサイトででも勉強するといいよ
制御構造と変数のスコープについての勉強が足りない
第6章とか第7章とかそのへんまで読破だ
128デフォルトの名無しさん
2017/05/09(火) 02:21:33.84ID:7rjXR/HL
最初のスクリプト修正
input = gets.chomp
s1,s2,s3 = input.split(" ")

a = s1.split(//)
b = s2.split(//)
c = s3.split(//)

p a,b,c

次のやつの例
input = gets.chomp
arr = input.split(" ")

result = []
arr.each do |s|
result << s.split(//)
end

result.each do |e|
p e
end

うまく処理が行われるように変数名を変えたのがポイントであるが眠いので説明はほかの人に譲る
とにかく基礎知識が足りないので焦らずにまずは変数とかそのへんの解説を読むのだよ
129デフォルトの名無しさん
2017/05/09(火) 02:28:47.25ID:7rjXR/HL
追記、1行で書くアホが湧くかもしれないがその人は自分のことしか考えてないので現時点では無視してよい
あなたに必要なのは基礎なのだから
ではお先におやすみなさい
130デフォルトの名無しさん
2017/05/09(火) 02:39:10.44ID:lu7Bmdm9
>>128
あ、新しく空の配列作っておいて
繰り返しの時に、分割した結果をその中に入れるっていう処理にすれば良かったんですね
ありがとうございました!
131デフォルトの名無しさん
2017/05/09(火) 07:31:40.84ID:k6HrUJzH
違う
ローカル変数やブロック変数の動作を全く理解してないのだ
だから自己代入してバグっても何も思わない
132デフォルトの名無しさん
2017/05/09(火) 07:34:19.28ID:WySm2t97
>>131
あー、確かにその辺は凄い曖昧ですね・・・・・・
もう一回その周辺含めて勉強し直します
13387
2017/05/09(火) 20:42:21.42ID:ptoav/qt
結局、会社出入のSIの担当に個人的にお願いしました。
10分で数行追加して解決してくれました。Win10の問題とファイル100ケ問題2点があったとか。
自分で解決するのは無理でしたね。

解決してくれた方には10万くらい謝礼を考えていたのですが、この方には辞退されてしまいましたので
二人で銀座のクラブで豪遊して、逆に初任給相当くらいぶっとばしてしまった・・・
孫の写真をEOS-1D X で撮影した数千枚をぜんぶYAhooBOXにに保管していて、家内に怒られており
苛立ってしまい、お騒がせして申し訳ございませんでした。
134デフォルトの名無しさん
2017/05/09(火) 20:45:26.48ID:SmlWSda1
書き込みから頭の悪さが伝わってくるな
135デフォルトの名無しさん
2017/05/09(火) 21:36:06.57ID:V+0O6ahJ
孫もいるのに>>92みたいなこと言うのか……
136デフォルトの名無しさん
2017/05/09(火) 22:04:56.60ID:AJpeMRYn
だって娘ってもうおばさんじゃん
137デフォルトの名無しさん
2017/05/10(水) 21:24:41.33ID:mz/WKowH
まともに取り合ってれば俺が10万もらえたんか?
138デフォルトの名無しさん
2017/05/10(水) 21:38:57.44ID:T9zZBiea
いや、可哀想だが、鳥取も被害者だろ。
139デフォルトの名無しさん
2017/05/11(木) 12:25:59.80ID:3ycP24fA
一発だけなら誤射かもしれない
140デフォルトの名無しさん
2017/05/11(木) 22:46:17.95ID:SAAdjKtg
MonoにあるIronRuby(ir.exe)でRubyスクリプトを走らせようとすると

unknown: no such file to load -- gem_prelude.rb (LoadError)

というエラーが出て終了してしまいます。
どうすれば良いでしょうか?
141デフォルトの名無しさん
2017/05/11(木) 22:59:59.49ID:jM8xSb+p
IronRubyは全くメンテされてないゴミ
諦めてC#使おう
142デフォルトの名無しさん
2017/05/12(金) 00:42:07.19ID:lh1VWFPT
「gem_prelude.rb LoadError」で検索!

初心者は、paiza.IO, codepad などで、ブラウザでプログラミングするのが簡単
143デフォルトの名無しさん
2017/05/12(金) 03:23:42.25ID:KfydbfhB
Rubyとは直接関係ないのですが
RubyMineの補完機能で、入力した段階で自動的に一番上が選択されるようにするにはどうすれば良いのでしょうか?
(IntelliJの方では最初から自動的に選択されてました)
RubyMineとIntelliJの比較
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net	->画像>5枚
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net	->画像>5枚

RubyMineを使ってる方で分かる方はいらっしゃらないでしょうか
144デフォルトの名無しさん
2017/05/12(金) 19:32:54.36ID:HOHLzPdy
Rubyでスクレイピングしたいんですが、串がうまく動かないです。串はTorを使いたいと思います。

p "Creating tor agent..."
p "My raw ip address is #{Mechanize.new.get('http://ifconfig.me/ip').body}"
tor ||= TorPrivoxy::Agent.new '127.0.0.1', '', {8118 => 9150} do |agent|
begin
sleep 10
p "My ip address is now chenged to #{agent.ip}"
p tor.get("http://ja.wikipedia.org/wiki/Privoxy";).encode(Encoding::SJIS)
rescue
p "エラーです".encode(Encoding::SJIS)
end
end
145デフォルトの名無しさん
2017/05/13(土) 06:47:49.32ID:nrviLaTM
どの行で、どんなエラーメッセージが出るの?

そのエラーメッセージで検索すれば?
146デフォルトの名無しさん
2017/05/14(日) 09:17:54.13ID:c1+aTdNX
rubyでは現在の行とファイルをだすような__LINE__とか__FILE__はないんですか?
147デフォルトの名無しさん
2017/05/14(日) 09:32:49.01ID:4OWrar4G
標準的な動作で不足であるという場合
その不足な動作自体を満たすライブラリの有無を質問するのではなく
そもそも何のためにそれが必要だと考えているのかを述べてみなされ
148デフォルトの名無しさん
2017/05/14(日) 09:51:16.72ID:9iFdkmzT
>>146
ある
149デフォルトの名無しさん
2017/05/14(日) 10:01:11.30ID:c1+aTdNX
》》148
ありがとうごぞいます
150デフォルトの名無しさん
2017/05/14(日) 21:59:53.35ID:YpRHpm2r
Rubyの作者の技術力ってどのくらいなの?
低くはないとおもうけど、そんなにたかくもないの?
151デフォルトの名無しさん
2017/05/14(日) 22:07:52.12ID:2j/fEy8A
マルチスレッドや文字コード系はあんま詳しくないから詳しい人に手伝って貰ってたとか日経ソフトウェアの昔の対談記事で書いてたな。
ギークって程じゃないと言う印象。
152デフォルトの名無しさん
2017/05/14(日) 22:11:20.20ID:3p+3tmMb
技術力は知らんが心の底からプログラミング好きなんだなぁとは思うな、言語オタクだから言語作ったそうだし
153デフォルトの名無しさん
2017/05/14(日) 22:25:40.71ID:YpRHpm2r
>>151
マルチスレッドや文字コードの仕様もぜんぶ知ってないと、技術力は高いといえない?
日本で技術力が高い人ってどのくらいいるんでしょう。

Ruby作った人でも技術力が高くないといわれたら、道が険しすぎる。
154デフォルトの名無しさん
2017/05/14(日) 22:32:18.91ID:DiPyQd5B
言語処理系、特にパフォーマンスを度外視したスクリプト言語の実装ってそんなに難しくないよ
Rubyの互換実装って驚くほど短期間で作られたりするし
155デフォルトの名無しさん
2017/05/14(日) 22:40:30.08ID:0pt2h6WS
言語処理系の実装って、経験のない人はなぜかそれがすごく高度なことだというイメージを持ってるよな
やってみたらわかるけど、動かすだけなら意外と全然難しくないよ
ゲームとか作る方がずっと難しい
156デフォルトの名無しさん
2017/05/14(日) 22:58:19.67ID:zv0DKnzD
思ったほどには「あらゆることを深く知っている」必要はないよね
言語作成センスと時の運とコミュニティへの頭の下げ方だと思うわ
157デフォルトの名無しさん
2017/05/14(日) 23:12:20.70ID:3p+3tmMb
「実装」なら俺でもできるが「設計」はなぁ
158デフォルトの名無しさん
2017/05/14(日) 23:24:09.84ID:Xbcx3KQE
>>151
おいおい、Matzをもって
> ギークって程じゃないと言う印象。
とは、本気か?おまえどんだけえらそうなの。

>>153
> Ruby作った人でも技術力が高くないといわれた
だれじゃ、そんなこと言ったのは。
初歩的なインタプリタは学生でも作れるけど、rubyぐらい完成度の高いのは無理だろ。
159デフォルトの名無しさん
2017/05/14(日) 23:29:39.07ID:Xbcx3KQE
>>154
そりゃ仕様をまるごとパクって作れば短期間で作れるでしょ。理由がおかしい。
整合性のとれた言語仕様を考えるところがいちばん大変だろうに。

>>155
> 動かすだけなら意外と全然難しくないよ
だからといってrubyの作者がギークって程じゃないとは、ここはすごいプログラマの集まりですね。
160デフォルトの名無しさん
2017/05/14(日) 23:44:43.80ID:SkVs727u
あらゆる分野においてエキスパートじゃないと技術があるとは言えない、と本気で思い込んでる
人がちらほらいるようで

そんなウルトラスーパーハカーなんて世界に何人いることやら
161デフォルトの名無しさん
2017/05/14(日) 23:57:58.99ID:4upkAWVg
これでも貼ってみるか
マツドサイエンティスト・研究日誌 保存版 システムエンジニアリング(その4) 超人にならなくていい
http://anoda.web.fc2.com/weblog/20050424.html
日本は完璧主義だからか平気で完璧超人を求めるよね
162デフォルトの名無しさん
2017/05/14(日) 23:58:21.34ID:aG/BUJsi
多分「完成度」の基準がみんなバラバラすぎて上手くコミュニケーションが取れてないな
Brainfuck系言語というか、いわゆる難解プログラミング言語みたいなジョークみたいな物だったら
確かに「実装」は簡単
が、Ruby、PHP、Pythoみたいに一つの主要言語にまで昇華させるには
言語設計まで含めてめちゃくちゃ大変な作業が必要になる

なので
Rubyっぽい、プログラム言語っぽく動く何かを作る→頑張れば出来る
RubyやPythonの設計思想を受け継ぎながら、独自の言語設計に基づいて言語を作る→並大抵の人間には出来ない代物
っていう感じかな「
163デフォルトの名無しさん
2017/05/15(月) 00:04:17.64ID:6XCGPePS
>>158
だれだったか忘れましたが、ツイッターでだれか言ってました。
有名人?なのかな、それなりに有名っぽい人だったので、技術力の高い低いってどういう基準で判断するのかなと思って。
164デフォルトの名無しさん
2017/05/15(月) 08:25:41.29ID:AFguA/nP
だからだれなんだよそんな偉そうなのは
165デフォルトの名無しさん
2017/05/15(月) 09:26:37.14ID:jzzH2kBs
RubyはMatzが数学苦手なのが良かった
結果、平均的なPGの頭に合った言語になった
頭の良すぎる人が作った言語は結局一部の人間のオナニーで終わっちゃう
FortranとかCとかJavaとかC#とかは頭の良い人たちが本気でボリューム層向けに作った完璧な「製品」だけど、
そういうのに比べるとRubyはまあ適度な頭の緩さが馴染みやすいよね
166デフォルトの名無しさん
2017/05/15(月) 21:51:39.50ID:xoO/l6gC
>>164
誰っていわれても、ツイッターでみかけただけでどこのだれかまでは覚えてないです。
ごめんね。
たくさんのひとがリツイしてたから、自分で探したら出てくるかもよ。
167デフォルトの名無しさん
2017/05/17(水) 01:45:08.88ID:y0sg8W2t
それいいな。俺も困った時に使ってみよう
たくさんのひとがリツイしてたから、自分で探したら出てくるかもよ。
168デフォルトの名無しさん
2017/05/17(水) 04:25:58.23ID:Q6ZDgQU6
うーん、あまりにも初心者過ぎてあれなんだが、プログラミングを学び始めて
まずrubyを真面目にやろうと思ったんだ。他の言語もさわりはしたんだけどね。
でも、実際に環境を構築しようとrubyをインストールして、
環境変数のPathの設定も本の通りに確認したんだけど
実際に打つと#とかで内部コマンド~ファイルとして認識されていませんって
出るんよ、 Pathって打ってみるときちんとCドライブのRubyのbinを
参照?してるんだけど・・・私はどこを間違えているんだろう。
169デフォルトの名無しさん
2017/05/17(水) 05:58:15.48ID:AoGXWMN0
>>168
答えじゃなくてすまんけど感想を。
そういうことを聞ける場所が2chしかないのが残念だよね
Rubyを始める人のコミュニティってないものか
ずっとそういう場所を探している
170デフォルトの名無しさん
2017/05/17(水) 06:20:15.54ID:Q6ZDgQU6
>>169
そですねー、私もまずコミュニティ的なものを探したんですけど
勉強会みたいなのはあるのに、こういった掲示板的なものは
みつけられないんですよね。初心者はわりかしきついですね。
相変わらず四苦八苦してますw
2chはマイナーなものは、あまり素人は歓迎されない気もしますね。
171デフォルトの名無しさん
2017/05/17(水) 06:20:34.43ID:+84GJVyA
まさか生のrubyコードをコマンドプロンプトに『打ち込んでるんじゃ
172デフォルトの名無しさん
2017/05/17(水) 06:34:58.31ID:AoGXWMN0
>>170
無いなら作れってところなのだけど
それを作る技術を得るためには・・・
堂々巡りで困ってる

2chには妖怪が住んでいるからなぁ
173デフォルトの名無しさん
2017/05/17(水) 06:50:32.62ID:AoGXWMN0
>>171
なるほど!

ruby -v
を試してみればいいんだな

#とかでという意味がよくわからないけど
174デフォルトの名無しさん
2017/05/17(水) 06:53:25.51ID:+84GJVyA
きっと「#」で始まる行をコピペしてコマンドプロンプトにそのまま張り付けたんじゃないのかね
binにパス通ってるならirb起動すれば幸せになれるかもね
175デフォルトの名無しさん
2017/05/17(水) 07:06:09.77ID:Q6ZDgQU6
>>171
あははw
いろいろあって混乱してたんだw
本にもテキストエディタで書けって書いてあったw
その前にPath関係の確認させられてたから勘違いしてしまった。
すごいあっさり大事なことが色々かいてあるとこ見逃してたw
C言語の勉強をrubyの勉強する前に触っておこうと思って
コンパイラに書いてたような感覚でやってしまったw
rubyのさわりもブラウザ上で書く感じの勉強だったんだ
だ、だから違うんよ?うん、違う違う。知ってた知ってた。
176デフォルトの名無しさん
2017/05/17(水) 07:15:15.40ID:Q6ZDgQU6
まあ、初心者ってこういうくだらない質問するもんだから、許して笑ってくれさい。
そして、そういう初心者用のコミュニティは作れないっていうか、
初心者が作っても人集まらないだろうからここでできれば助けて下さい。
rubyスレ希少なんです・・・という初心者の声なのでした。
177デフォルトの名無しさん
2017/05/17(水) 07:20:26.73ID:AoGXWMN0
>>176
俺はそういうのが作りたいんだー
178デフォルトの名無しさん
2017/05/17(水) 07:21:52.55ID:AoGXWMN0
2chって「初心者」って言葉に食いつく妖怪もいるからなぁ
179デフォルトの名無しさん
2017/05/17(水) 07:35:16.07ID:zoT6JpA4
OKWAVEとかどう?
180デフォルトの名無しさん
2017/05/17(水) 07:44:52.13ID:AoGXWMN0
>>179
それは見てなかったなぁ
よっしゃ
これからそこへ質問入れてみるぞ
181デフォルトの名無しさん
2017/05/17(水) 07:53:53.40ID:S++XgTKO
>>172
掲示板を立ち上げること自体は難しくないけど、管理維持するには住人やISPなどのバックアップが必要不可欠
個人で運営する場合は、住人による自治が基本になるしそれで対応しきれない案件に関しては管理人やISPによる強権発動で対応
これらの支援を受けられなくなって久しいし、荒らしに対応できなくなるのは目に見えていて長期的維持を望めない

あと技術の初心者は構わないがコミュ力初心者は遠慮願わないと。今や「初心者は免罪符ではない」などと言われることも無くなったしなぁ・・・
182デフォルトの名無しさん
2017/05/17(水) 07:55:53.94ID:AoGXWMN0
>>179
そこのRubyカテゴリは1ヶ月眠ってるがな
183デフォルトの名無しさん
2017/05/17(水) 08:48:21.65ID:vMnI7rwx
2ch以外で質問できそうな所っていうとこの辺のサイトか

質問できる所
テラテイル
https://teratail.com/
スタック・オーバーフロー
https://ja.stackoverflow.com/

Rubyの記事投稿が多い所
Qiita
http://qiita.com/
184デフォルトの名無しさん
2017/05/17(水) 09:02:29.68ID:AoGXWMN0
>>183
teratailもstackoverflowも質問することがはっきりしてる場合なんだよね
ある程度のレベルがいるし。
Qiitaいいたっては聞くというより情報発信サイトかと思われる

でも
今Qiitaに登録したったw
185デフォルトの名無しさん
2017/05/17(水) 10:02:00.71ID:vwwaD4yq
>>170
まずWindowsを使いこなせてないからだな
言語のスレだとみんな環境違うしそういう知識は身につかないかも
適切なとこ見てれば質問のしかた(必要な情報)もわかってくるはずだ
186デフォルトの名無しさん
2017/05/17(水) 15:22:05.45ID:O9qCgXnQ
>>183
SOのjpはやめとけ
187デフォルトの名無しさん
2017/05/17(水) 15:34:35.54ID:P4LQUJ7D
>>186
stackoverflowあかんの?
ちょいとその辺の事情をお願い
188デフォルトの名無しさん
2017/05/17(水) 15:58:25.56ID:JDHyCaYk
日本語のスタックオーバーフローって検索の上位に出てこないイメージ
ってことは・・・・・・
189デフォルトの名無しさん
2017/05/17(水) 18:45:28.28ID:AoGXWMN0
Ruby2.4のリファレンスマニュアルをダウンロードするにはどうしたらいいのー
190デフォルトの名無しさん
2017/05/17(水) 19:08:51.18ID:+84GJVyA
階層構造を保持したままローカルに保存できるソフトでも使えば
191デフォルトの名無しさん
2017/05/17(水) 19:20:27.17ID:t1VY0/wg
昔はzipとかなかったっけ
192デフォルトの名無しさん
2017/05/17(水) 19:24:12.98ID:AoGXWMN0
古いバージョンのマニュアルと最新のならダウンロードできるようになってるんだけどね
193デフォルトの名無しさん
2017/05/17(水) 22:49:59.99ID:OcBoOJyM
>>164,166
どこの誰かは覚えてないといったけど、ふと思って探してみたら、あっさり見つかった。
https://mobile.twitter.com/kmizu/status/857032083046256641

> ソフトウェア分野一般に通じる「技術力」というのは実際には
> 存在しないのにあると信じられている幻想だと思う。その幻想が
> 広く信じられている結果として、たとえば著名プログラミング言語の
> 作者はスーパープログラマのように思われがちだとかいう現象が発生する。

たしかこれだった。
194デフォルトの名無しさん
2017/05/17(水) 23:14:17.43ID:Id1y7eqA
JavaとかC#の作者は実際凄いらしいね
Matzは祭り上げられてる割にはRuby以外でほとんど実績らしい実績を聞かない
195デフォルトの名無しさん
2017/05/17(水) 23:20:38.33ID:y0sg8W2t
JavaとかC#の作者の名前は?
Matz個人、人間一人と渡り合えるなんて、すごい人だろうね。
196デフォルトの名無しさん
2017/05/17(水) 23:23:53.49ID:Id1y7eqA
>>195
自分で調べたら?
どっちもチーフアーキテクトは個人崇拝されてる有名人だよ
197デフォルトの名無しさん
2017/05/17(水) 23:25:17.03ID:y0sg8W2t
「チーフアーキテクトは」ってことは
それ以外の役職の人がいるってこと?

Matz一人に対して複数の人があつまらないと
対抗できないってのはちょっと恥ずかしくね?
198デフォルトの名無しさん
2017/05/17(水) 23:27:09.81ID:SKu/yZ4u
>>197
それを言うならRubyだってMatzが全部決めてる訳じゃないよ
199デフォルトの名無しさん
2017/05/17(水) 23:27:10.61ID:y0sg8W2t
調べた

https://ja.wikipedia.org/wiki/C_Sharp 開発者 マイクロソフト
https://ja.wikipedia.org/wiki/Java 開発者 オラクル
200デフォルトの名無しさん
2017/05/17(水) 23:27:20.00ID:Noyf0zx+
コンパイラとインタプリタじゃ難易度全然違うしな。
C#の作者なんかはTurbo Pascal,同C,同C++,Delphi,C++Builder,Visual J++,VC#,TypeScriptと、言語もだけどライブラリも設計してる。
ベテラン中のベテラン。
センスも経験も数段上。
201デフォルトの名無しさん
2017/05/17(水) 23:28:28.62ID:Noyf0zx+
あ、言語はオリジナルはC#とTypeScriptだけだから、コンパイラとライブラリの設計がほとんどやね。
202デフォルトの名無しさん
2017/05/17(水) 23:30:32.17ID:zoT6JpA4
JavaとかC#はチームで作ったものだからね
基本的な部分はチーフがやったとしても全体を作り上げたのはチームだから
チーフがすべての部分についてウルトラスーパーハカーである必要はないんだよ
203デフォルトの名無しさん
2017/05/17(水) 23:46:22.36ID:0i9RfNds
Javaは忘れたがC#はアンダース・ヘルスバーグって人が作ったもん、余談だがDelphi作った人だからC#はとてもDelphiくさい
204デフォルトの名無しさん
2017/05/17(水) 23:54:49.77ID:q+Jp+PKK
日本人って何かにつけて神とあがめ立てて思考停止する奴が多いよね。なぜそうなのか、どうやったのかとか考えようとしない
205デフォルトの名無しさん
2017/05/18(木) 00:02:07.55ID:d+oDyp66
4月に、Win10の、Windows Subsystem for Linux(WSL)の大きな更新があった。
誰か、WSLから、Rubyを使っている人、いる?

居たら、報告して

日経Linux 6月号に、WSL の特集あり
206デフォルトの名無しさん
2017/05/18(木) 00:36:47.85ID:HnnQPjdl
>>193
ツイートが連続してて、そのリンクはろうとしたけどめんどくさいので、かわりにこれで。
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net	->画像>5枚
だんだん思い出したけど、スーパーハッカーとかスーパープログラマーで調べてたんだった。
ルビーの作者でもスーパープログラマーじゃないなら、どうしていいのかわかんないな。日本にいなさそう。
207デフォルトの名無しさん
2017/05/18(木) 00:42:18.01ID:mKKG/7h8
すごいプログラマだけどもスーパープログラマーという方向性の人ではないと思う
なんというか、仮面ライダーとウルトラマンくらい傾向が違う
だいたい正義の味方のだいたい超能力人間なんだけど、まとめると違和感
208デフォルトの名無しさん
2017/05/18(木) 01:07:17.85ID:dz2c6KN5
>>206
プロの一流の選手を、ドラフトにひっかかりもしなかった三流が「あの選手は大したことない」と言ってるみたいな感じか。
たまにいるよな、こういうの。
209デフォルトの名無しさん
2017/05/18(木) 02:12:28.50ID:k2/bnmai
こんなレベルの人の集まりかと思わせる雑談だな
これもパートスレの弊害だろ
210デフォルトの名無しさん
2017/05/18(木) 02:28:27.52ID:n0l9x2sF
>>205
rbenv で入れて使ってる。
ちょっとしたスクリプト動かすのに便利。
211デフォルトの名無しさん
2017/05/18(木) 07:40:51.40ID:HnnQPjdl
>>208
どちらかというと、半分以上は嫉妬心だと思う。つまりやっかみ。
大学の演習で作るようなレベルのものと、世界中のサービスで使われるレベルのものとでは、難易度がはるかに違うのにな。
212デフォルトの名無しさん
2017/05/18(木) 07:58:52.21ID:jHW9tOS8
設計技術と実装技術って無関係とは言わずとも別物だけど区別出来ていない人は多い
プログラミングは後者である
213デフォルトの名無しさん
2017/05/18(木) 07:58:54.30ID:uGmNBL+O
Matzさんはプログラミング言語の知識は凄いけど最適化周りは今一つってのは共通認識だと思っていたが…昔からずっと「Rubyは遅い」って皆でブーブー言ってたじゃない
でも前者の能力持ってる人は稀有だからやっぱりスーパープログラマーに違いないと思うよ

アニメーターの大塚康生さんが「宮さん(宮崎駿)は描くの早いけど絵は上手くない」って評してるけどMatzはプログラミング言語界の宮崎駿みたいなもんだよ
ある方向は秀でてるけどある方向はそれほどでもない。だけどスーパー○○には違いない
214デフォルトの名無しさん
2017/05/18(木) 08:10:53.60ID:jHW9tOS8
Rubyが遅いのはコーディング技術の不足よりシステム設計の制約だと思っていたけど違うのか?
あのシステム設計がJIT化の障害にもなっているみたいだし、Intelのプログラマー陣に書かせたら
爆速に!とはいかないと思うんだが
215デフォルトの名無しさん
2017/05/18(木) 08:52:05.04ID:a7kCQWZC
愚直なプログラミングだからドキュメントなしでやってこられたけど、未だにドキュメントが完成してないのは驚きである
216デフォルトの名無しさん
2017/05/18(木) 09:02:19.96ID:mKKG/7h8
○○がないなんて非常識で公式やる気なさすぎでウチでは使えないよ、という人たちにスルーされたからこそ今があるのでは
Linuxみたいなもんだw
217デフォルトの名無しさん
2017/05/18(木) 09:40:39.90ID:W+cXBvNa
>>213
> だけどスーパー○○には違いない
スーパーマツモト?
218デフォルトの名無しさん
2017/05/18(木) 10:21:34.30ID:k2/bnmai
いまさらかもしれないがプログラマってすごく偏ってるのかな
存在も考え方も
219デフォルトの名無しさん
2017/05/18(木) 12:17:40.22ID:nGaj6J50
C#の作者は普通の企業戦士としてクソ有能らしいね
ハッカーやアーキテクトとしての専門的技能を十二分に備えた上で、
マネージャとしてチームを率いて製品を作り上げられる超人
220デフォルトの名無しさん
2017/05/18(木) 15:06:50.15ID:6nNpr9wz
Rubyが普及(ω)したのはドキュメントを書かなかったからだよ
221デフォルトの名無しさん
2017/05/19(金) 00:02:38.38ID:JAygot/q
軽々しく他人のことを神だの超人だの言っちゃう人って実力は大したことないのにプライドだけ高いんだなろうな
しかも多分その自覚が無い。自分の能力が大したことないことを自覚できていればそういう表現の仕方はしないはずだし
神格化するより研究し自分の能力を伸ばすことを考えるはず
222デフォルトの名無しさん
2017/05/19(金) 01:30:43.67ID:4+vIujWP
一流を認められない人に成長はない
223デフォルトの名無しさん
2017/05/19(金) 01:45:17.48ID:ge9DZPXJ
よっぽど何かコンプレックスあるんだろうねこの人

ああ、この人ってのはこのスレに何日も同じようなことグチグチグチグチとえんえん書き続けてる人ね
224デフォルトの名無しさん
2017/05/19(金) 06:30:50.15ID:eboDhNue
矛盾を含んだ文章ってスパゲッティコードみたいだよね
225デフォルトの名無しさん
2017/05/19(金) 06:33:50.64ID:eboDhNue
そうだ
Rubyが好きなのは
Pythonみたいにインデント強制されないし
Javaみたいに大文字小文字まで強制されないからなんだ
226デフォルトの名無しさん
2017/05/19(金) 08:24:53.47ID:wMmgU2C4
>>206
なんで時系列が逆順なんだよw
2chでも古い書き込みが上で新しいほど下になってるだろ。
そのほうが自然なんだからそうしろ

>>223
>よっぽど何かコンプレックスあるんだろうねこの人
成功した人に嫉妬してる暇があれば自分で何か作ればいいのに、そうする人は少ない
227デフォルトの名無しさん
2017/05/19(金) 08:29:07.55ID:ax6ergs3
自分で何もできないから他人に嫉妬する、まあ俺のことなんですけどね
228デフォルトの名無しさん
2017/05/19(金) 15:13:31.24ID:4aXBqFa1
>>225
Javaのは強制でないだろ
229デフォルトの名無しさん
2017/05/19(金) 23:21:36.00ID:vjfQYplO
実際に結果を出した人は
その結果の現実における実在性から人生に安定感なり心の余裕が出てくるように見えますよね。
230デフォルトの名無しさん
2017/05/19(金) 23:29:01.51ID:JAygot/q
本当の天才や神もたまにいるけどきわめて稀。ほとんどの場合は普通の能ある人
大抵の場合聞き上手&話し上手でコミュ力が高いのと論理的な思考・判断が出来る

嫉妬している暇があるなら成功している人を分析した方が建設的だし結果を出す近道だろう
231デフォルトの名無しさん
2017/05/19(金) 23:33:19.60ID:ivu0jzcH
>>223
キチガイに絡まれたスレは悲惨だな
232デフォルトの名無しさん
2017/05/20(土) 04:52:57.18ID:Gofa0r8M
キチガイか・・・
この言葉の取り方も人それぞれだろうけど。

もっと適当な新しい言葉はないものかね
ネットコミュニティで使えるような・・・
粘着、凝り固まった、共鳴しがたい論理、複数人を装うタイプ
ついでに嫉妬、妬みもいれとこか
そんな人をいう言葉
233デフォルトの名無しさん
2017/05/20(土) 05:05:32.15ID:Gofa0r8M
そんなことより
誰かマジで教えてくれないか

herokuでRubyを動かしたいんや
RoRじゃなくてただのシンプルなRuby
Ruby環境のあるレンサバだとindex.rbで動くやん
あれと同じようにwebページを表示したい

windows7でやってる
gitでpushまでは出来るのだけど
どうしてもトップページが表示できない
Qiitaとかの情報はぐぐりまくってるいのだけど
ピッタリのものはない
php,node.jsがQiita情報では優勢や

rackというのがキーワードだということまではわかった
Gemfile,Gemfile.lock,Procfile,config.ru
も整えたつもりなのだけど
中身がまずいんやろなぁ

もういちど書くけど
RoRじゃなくて素のRubyで
一番シンプルにsinatraとかフレームワークを使わずに
herokuでindex.rbをトップページに表示したい
234デフォルトの名無しさん
2017/05/20(土) 05:11:20.26ID:Gofa0r8M
>>233
これだけじゃ意味が伝わらないかもしれないから
やってることをわかってもらえるようなgithubを
24時間以内に用意するわ
なんせrubyもgithubもherokuもやり始めたばかりの素人なもので
ちょっとしたことでも時間がかかるので24時間以内な
235デフォルトの名無しさん
2017/05/20(土) 05:17:48.16ID:Q4Q/cnZ9
そして一年が過ぎた・・・
236デフォルトの名無しさん
2017/05/20(土) 05:46:34.75ID:WmFfeyqJ
chef, vagrant から、VirtualBox で、Linux

それか、4月に、Win10の、
Windows Subsystem for Linux(WSL)の大きな更新があったから、WSLでするとか?
237デフォルトの名無しさん
2017/05/20(土) 06:58:20.85ID:S1Z+OH1L
IniFile使って初期化ファイルに"a\\b\\c\\r\\z"と書き込んで読み出してみたら
"a\\b\\c\r\\z"になっててハマったという愚痴
238デフォルトの名無しさん
2017/05/20(土) 09:13:37.26ID:4bKGcQHk
アイデアをかっぱらうと成功者になれる。
239デフォルトの名無しさん
2017/05/20(土) 17:53:17.49ID:5kEYc3L0
>>233
Qiita記事漁ってたらそれっぽいの見つけたけど
やりたい事ってこういう事?
Herokuで単純なrubyスクリプトを定期的に実行する
http://qiita.com/kasei-san/items/909f17c2c42b7e3a8489
240デフォルトの名無しさん
2017/05/20(土) 18:12:45.66ID:abd2HxZJ
>>233
PythonかNode.jsでAWS Lambdaおすすめ
241デフォルトの名無しさん
2017/05/20(土) 19:00:59.25ID:Gofa0r8M
>>239
それは見てなかった
でも最初の設定のgithub元はRailsのようだ
もっと単純にやりたい
どっちかというとこれに近いと思う
http://qiita.com/higuma/items/9baac9e97eeb862ef64e
これどおりにしても動作しなかったけど。
242デフォルトの名無しさん
2017/05/20(土) 19:02:15.16ID:Gofa0r8M
>>240
先のステップの課題として覚えておくわ
243デフォルトの名無しさん
2017/05/20(土) 22:54:23.09ID:Gofa0r8M
233の続き
誰かが間違いを指摘してくれることに望みをかけてここに公開する
244のqiitaを参考にしているのだけど
やったこと
githubは
https://github.com/sasisu/aiue01
これからherokuの方へdeploy
そうすると
https://aiue01.herokuapp.com/
このAplication errorのページになる
herokuはheroku/rubyのBuildpacksを適用

何かが足りないか間違えてるか
それとも全く勘違いなことをしているのか
わからない 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
244デフォルトの名無しさん
2017/05/21(日) 01:32:34.60ID:Fqssqcja
>>240
Pythonスレで言いなよ
245デフォルトの名無しさん
2017/05/21(日) 02:01:38.54ID:1evlh7eH
Herokuの説明書を読んだら?

それか、自分が書いたファイルに、1行ずつ、p を書いて、
変数の内容を表示するとか

まず、どこでエラーが起きたのか、切り分ける。
それがデバッグの基本
246デフォルトの名無しさん
2017/05/21(日) 07:01:26.49ID:kt8opZkV
>>245
まぁな
247デフォルトの名無しさん
2017/05/21(日) 21:55:20.21ID:kt8opZkV
24時間経っても>>243の応答が無いのでリンク先は削除しておきます

これからレスをしてもらってもすぐには見れないと思うので。
248デフォルトの名無しさん
2017/05/22(月) 08:26:38.46ID:oFkfOiZj
>>206
これはScalaの有名な人だね。調子こいたことを言ってMatzにたしなめられることが複数回あったようだから、逆恨みしてるんだろう。

なお有名な言語の作者たちは互いに尊敬しあってるよ。一流ってそういうもの。
249デフォルトの名無しさん
2017/05/22(月) 21:31:51.11ID:fASqKLCq
1.8.xの頃の拡張ライブラリを最近の2.x.xで使えるように改造したいのですが
Rubyの各バージョン間の拡張ライブラリのインターフェイスの差異がまとまっている資料とかないですかね?
250デフォルトの名無しさん
2017/05/22(月) 23:55:24.58ID:ENAWgACr
『Rubyレシピブック 第3版 303の技』という本を書店に残っているのを偶然見つけたのですが
Ruby1.8~1.9、JRuby1.5を対象にしているとあり
現行の2.2系、2.3系と互換性があるのかが分からず購入を迷っています

またもしあれば1.8系、1.9系、2.xx系以降の互換性や追加機能をまとめたサイトなどがあれば教えて欲しいです
251デフォルトの名無しさん
2017/05/23(火) 00:15:49.33ID:9lq+WTHz
プロジェクトマネージャーとしては絶望的にセンスが無いとは思ったことはある。
252デフォルトの名無しさん
2017/05/23(火) 01:52:19.84ID:OOs1u3xZ
Ruby2.0なら使えるんだけどね
それ以前のは「どうして使えないのか」「どこを変えればいいのか」の手間と情報の加減上全く勧めない
問題は2.xの逆引きレシピ本のいいのが現行では無いことだが
253デフォルトの名無しさん
2017/05/23(火) 05:16:29.68ID:ZEoEO5ey
レシピ本には、そんな長いコードは載っていないから、
動かなければ、自分ですぐに修正できるのでは?

数値を3桁ずつ、カンマ区切りにする関数は、参考になった

Railsの1日後とか、良いよな。
1.days.from_now
254デフォルトの名無しさん
2017/05/23(火) 06:50:04.85ID:qRgUoCZd
>>248
すいませんが若気のいたりということで大目にみてもらえませんか?
日本のScala界では貴重な人材なので。

それよりMatzの講演について話そうぜ!
http://srknr.hatenablog.com/entry/2017/05/20/235839
255デフォルトの名無しさん
2017/05/23(火) 08:14:22.26ID:Mb7W8Mqo
>>252
やっぱり2.x系のもので無いと互換性が厳しいですか・・・・・・
新しいレシピ本が出るまで見送りたいと思います
256デフォルトの名無しさん
2017/05/23(火) 16:42:43.02ID:xunAucQT
Ruby で文字列が英数字とハイフンのみで構成されていることの確認 (バリデーション) を正規表現を使わずに実現するのに、
string.delete("a-zA-Z0-9-").empty?
っていうやり方でとりあえず間に合わせてるんだけど、他にスマートな書き方ある?
257デフォルトの名無しさん
2017/05/23(火) 16:55:02.24ID:UVgxThtR
正規表現を使わない理由がわからないと
何言ってもそれはなしでと言われそう
258デフォルトの名無しさん
2017/05/23(火) 16:57:40.08ID:nu8Noumz
>>256
ぱっとリファレンス見てきたけどcountに条件逆で渡した上で0か調べるってどうかな
259デフォルトの名無しさん
2017/05/23(火) 16:59:58.40ID:nu8Noumz
ascii_only?ってメソッドあるけど完璧な動作ではないよなぁ多分
260デフォルトの名無しさん
2017/05/23(火) 17:12:57.96ID:/kxvtD+k
>>258
おお、情報ありがとう!
こんな感じかな。
たしかに処理的にだいぶ分かりやすくなったかも。

string.count("^a-zA-Z0-9-").zero?
261デフォルトの名無しさん
2017/05/23(火) 17:22:10.11ID:/kxvtD+k
>>257
どうしても正規表現を使わないと実現出来ない処理でもないんじゃないかと思ったのと、セキュリティ的にチェック漏れが怖いっていうのが理由かな。
正規表現に詳しくて、間違いない自信があれば正規表現でも良いんだけど、俺にはその自信がない。。
262デフォルトの名無しさん
2017/05/23(火) 17:25:33.79ID:/kxvtD+k
>>259
たしかに ascii_only? だとやりたいことに近いけど、アンダーバーとかその他記号も OK になっちゃって、希望する判定基準とは少し違ってきてしまうんだよね。
263デフォルトの名無しさん
2017/05/23(火) 17:28:08.27ID:UVgxThtR
>>261
deleteの独自ルールも不安だな
どっちにしろちゃんとテストコード書いとけとしか
264デフォルトの名無しさん
2017/05/23(火) 17:43:19.80ID:OOs1u3xZ
「ヒットしてほしい正規表現にマッチするかどうか」で書かれてたほうがよっぽど漏れがないし間違いがないしコードとしても明瞭で安心すると思うがね
countの引数の仕様は知ってる? あれってtrというUNIXコマンドと一緒なんだよ
アレに頼って長々書かれるよりは正規表現のほうがいいな俺は
265デフォルトの名無しさん
2017/05/23(火) 18:18:44.65ID:/xgNS39l
OK な文字列以外はどんな含まれ方をしていようと一概に弾くように、delete とか count で OK な文字列だけを列挙する指定の仕方を考えたんだけど、よく考えるとそれでも抜けがある可能性は依然として否定できないわな…
正規表現を使うか使わないかは宗教的な話になりそうだけど、テストコードを書けっていうのはまさしくその通りだわ。
266デフォルトの名無しさん
2017/05/23(火) 23:55:10.87ID:ZEoEO5ey
JavaScript では正規表現だな

2回以上、同じ正規表現を使うなら、
コンパイルを1回だけして、使いまわすことで、やや速くなる
267デフォルトの名無しさん
2017/05/24(水) 00:37:22.71ID:NrN6swuV
evenArry, oddArry = [], []
ARGV.each_with_index{|arg, i|
evenArry.push(arg) if i.even?
oddArry.push(arg) if i.odd?
}
evenArry.zip(oddArry){|x, y| print [x,y] } if evenArry.size < oddArry.size
oddArry.zip(evenArry){|y, x| print [x,y] } if evenArry.size >= oddArry.size
puts

このコード、Pythonのzip関数は短い方に合わせてくれるのに、rubyのzipメソッドが長い方に合わせて、
短い方の不足分に勝手にnil入れるから、長さ比べて短い方でzipメソッド使うようにしてるんだけど、nilを省くメソッドあったら一行浮く。
何か良いメソッド知りませんか?
268デフォルトの名無しさん
2017/05/24(水) 01:20:48.51ID:n3q9H30C
>ruby tes.rb 11 22 33 44 55 66 77
["11", "22"]["33", "44"]["55", "66"]
という出力をしてほしいだけなら
ARGV.each_slice(2).take_while{|e| e.size == 2}.each{|a| print a}
269デフォルトの名無しさん
2017/05/24(水) 03:39:14.16ID:oHzoLy1g
>>267
compact
270デフォルトの名無しさん
2017/05/24(水) 09:26:39.05ID:Qxrl1z8p
>>268
おお!
次世代言語スレで紹介して貰ったやつのエラー出ない版ですね?
そっちが動くならそっちが良いですね。

>>269
compactですか。
まさに小さい方に合わせるっぽいメソッド名。

両方コードで試してみます。
ありがとうございました。
271デフォルトの名無しさん
2017/05/25(木) 13:14:51.22ID:LTbJxhuY
pg gemをbundle installするとこける
gem install では通るんだけどなんでかな
272デフォルトの名無しさん
2017/05/27(土) 04:40:36.04ID:SdHoYqqp
rubyからWin32APIのGetLastErrorを使用したいんだけどエラーが出てしまう。
どうしたらいいか教えてください。。
module WIN32API
extend Fiddle::Importer
dlload 'C:\\Windows\\System32\\user32.dll'
extern 'short GetKeyState(int)' #こっちはOK
extern 'char* GetLastError()' #こっちはNG
end

--以下エラー
cannot find the function: GetLastError() (Fiddle::DLError)
273デフォルトの名無しさん
2017/05/27(土) 05:15:11.73ID:6GQ16ypm
「user32.dll getlasterror Win32API」で検索!

Library - Kernel32.lib
DLL - Kernel32.dll
には、有りそうだけど、user32.dll には、あるかどうか分からない

DllImport("kernel32.dll", SetLastError = true)
274デフォルトの名無しさん
2017/05/27(土) 06:45:17.62ID:SdHoYqqp
>>273
早速ありがとうございました!
無事読み込めました。。。
参考までに修正版のコードはこちらです。

module WIN32API
extend Fiddle::Importer
dlload 'user32.dll','kernel32.dll'
include Fiddle::Win32Types #DWORDとか使えるようにする
include Fiddle::BasicTypes
extern 'DWORD GetLastError()'
end
WIN32API.GetLastError
275デフォルトの名無しさん
2017/05/27(土) 10:22:39.80ID:SdHoYqqp
すみませんもう一つ教えてください。
SendInputを使って最終的にはマウス入力/キーボード入力を行おうと考えていますが
うまくいきません。何がおかしいのでしょうか。。
---
module WIN32API
extend Fiddle::Importer
dlload 'user32.dll','kernel32.dll'
include Fiddle::Win32Types
extern 'int SendInput(int,void* ,int)'
extern 'DWORD GetLastError()'
MOUSEINPUT=struct(["DWORD type","int dx","int dy","DWORD mouseData","DWORD dwFlags","DWORD time","ulong dwExtraInfo"])
end
module SendKey
INPUT_MOUSE = 0x00000000
MOUSEEVENTF_ABSOLUTE = 0x00008000
MOUSEEVENTF_MOVE = 0x00000001
end
input = WIN32API::MOUSEINPUT.malloc
input.type=SendKey::INPUT_MOUSE
input.dx=500
input.dy=500
input.dwFlags=SendKey::MOUSEEVENTF_ABSOLUTE|SendKey::MOUSEEVENTF_MOVE
p WIN32API.SendInput(1,input,28) #出力:0 備考:sizeof(MOUSEINPUT)=28
p WIN32API.GetLastError #出力:87(パラメータが間違っています。)
-----
276デフォルトの名無しさん
2017/05/27(土) 10:27:11.94ID:67vlwxuq
今回の件と関係あるかはともかくWIN32APIってもう非推奨じゃなかったっけ?
277デフォルトの名無しさん
2017/05/27(土) 12:01:00.86ID:pz2epJPP
rubyは32bit版なのかな?
278デフォルトの名無しさん
2017/05/27(土) 12:46:05.61ID:SdHoYqqp
Win32API非推奨なんですね。。
ググってみた感じいまはWSHSHELLとかでしょうか?
ちなみにRubyは64bit版を使ってました。。。
279デフォルトの名無しさん
2017/05/27(土) 13:10:51.88ID:reRwAhMh
非推奨とか言い出したらそもそもWinでRuby自体がアウトだから気にしなくてよい
280デフォルトの名無しさん
2017/05/27(土) 13:21:59.20ID:olQh0zw8
>>272 >>274
そもそもGetLastErrorは最後に呼んだAPIのエラーだから
rubyみたいに前後の行の間で何呼ばれるかわからん環境でまともなエラーとれるとは思えない
281デフォルトの名無しさん
2017/05/27(土) 14:00:44.16ID:4VVIqOhp
意図するライブラリがロードされていない or 意図しない関数がコールされているんじゃないか?

C/C++で同じ動作をするコードを書いて何のファイルのどの関数が呼ばれているのか調べた方が良さそうな気も
Rubyから呼ぶ場合に限らずその辺の管理は全てプログラマ任せの上に純正のSDKやIDEの支援も得られないしな

あとWindowsAPIを叩いて作業するならWindowsSDKはほぼ必須
282デフォルトの名無しさん
2017/05/27(土) 15:09:14.53ID:6GQ16ypm
>p WIN32API.GetLastError #出力:87(パラメータが間違っています。)

カッコを付ければ?
p WIN32API.GetLastError()
283デフォルトの名無しさん
2017/05/27(土) 15:15:15.96ID:pz2epJPP
>>278
64bitだと構造体のサイズが違うよ
284デフォルトの名無しさん
2017/05/28(日) 10:53:17.15ID:pzrDxs4u
case文でgetsを使って入力を受け付けたいとき日本語ってどうするんです?
hand = gets.chomp
case = hand
when "あ"
puts "グー”
.
.
.
else
puts "反則"
end
例えばこんな感じの簡単な文だけど
"あ"の中身の部分を1にしたり
そもそも .to_iにして数値にしたりすると
ちゃんと働いてくれるから
そもそも日本語入力はなにかいるんじゃないか、もしくはできないんじゃないか
と思っていて、検索してもわからんのです
285デフォルトの名無しさん
2017/05/28(日) 11:23:43.03ID:eyTJlEl0
case = handってなんだ
286デフォルトの名無しさん
2017/05/28(日) 11:38:33.26ID:nOYRngqN
print "input anything and Enter> "
input = gets.chomp
puts "default file encoding:"+ __ENCODING__.to_s
puts "actual external encoding: " + input.encoding.to_s

実行結果 (Windowsコマンドプロンプトで単に ruby test.rb と実行)
input anything and Enter> nya-
default file encoding:UTF-8
actual external encoding: Windows-31J

ということで文字列のエンコーディングが違うので別物だと思われてる
Windows-31Jの「あ」とUTF-8の「あ」は比較上別物になる
irb> str = "にゃー"
=> "にゃー"
irb> str.encode("Windows-31J") == str.encode("UTF-8")
=> false
「Rubyの文字エンコーディング」について調べて自分で理解するんだ
これはここでちらっと「おまじない」を述べても逆に泥沼になるぞw
287デフォルトの名無しさん
2017/05/28(日) 11:47:56.51ID:pzrDxs4u
>>285
ごめん=はいらんね
まちがえて打ってしまった。それは元の方では書いてない
>>286
よくわかんないけど、とりあえず先に進むよ。
逆に今、文字エンコーディングについて調べても理解出来る自信がないし、
おまじない、もいづれ出てくるかもしれない。
わいみたいな本物初心者にも答えてくれて
ふたりともありがとう。
288デフォルトの名無しさん
2017/05/28(日) 11:52:43.05ID:pzrDxs4u
しまった「いづれ」ではなくて「いずれ」だった、なんかこういうミスのほうが
恥ずかしい・・・
しかし文字エンコーディングの件で気になったけど
それは文字コードを指定している場合でも・・・?
なんか最初にそれこそ、そこをおまじないと言っているのかもしれない
けど、# coding: utf-8
みたいなの書いとけって言われるじゃない。
文字化けしないようにとか、そんな感じで。
289デフォルトの名無しさん
2017/05/28(日) 11:55:12.07ID:rKaPw5GE
狭義的にはスクリプトファイルのエンコーディングと外部入力文字列のエンコーディングを揃えないといかん
STDINのエンコーディングをスクリプトファイルのエンコーディングに合わせるのが楽だと思う
ruby -E UTF-8 hoge.rbでスクリプト起動しろ
getsで入ってくる文字列が全部UTF-8になる
290デフォルトの名無しさん
2017/05/28(日) 12:39:36.05ID:pzrDxs4u
>>289
ちょっとわかんなかった。
色々言っていることの推測はしたんだけど、
そんなファイルねーよ!からはじまり
そんなエンコーディングネーム知らんといわれ、ランタイムエラーといわれ
あ、コマンドプロンプトって文字コードシフトJISとかいうのだから
あかんのかな?って思って
utf-8にしてみたけど、判定がelseに行くのだった。
あははは。
わざわざありがとう。でも、私初心者だからだめみたいだぜ。
おまえなんかwhile文の勉強でもしてなさいってことだと思うわ。
291デフォルトの名無しさん
2017/05/28(日) 12:55:41.60ID:cMT8Sa9/
コマンドプロンプトなら"chcp 65001"しないと駄目なんじゃない?
ちょっと手許にwindows機ないからわかんないけど
292デフォルトの名無しさん
2017/05/28(日) 13:34:17.41ID:mQ0E20+1
cmd exe の chcp65001 はバグがあって使い物にならない
293デフォルトの名無しさん
2017/05/28(日) 15:22:51.06ID:aUadI2mt
VSCode使っている人いない?

デバッグモードでのgetsのって値入力処理はどうすればいいのか分からなくて困っている。
294デフォルトの名無しさん
2017/05/28(日) 16:49:16.07ID:rKaPw5GE
STDIN/STDOUTのねじ曲げは現行のIDEでVSCode「でだけ」できない
素のRubyではできるのにね

require 'stringio' if $DEBUG
$stdin = StringIO.open("にゃーん".encode("Windows-31J")) if $DEBUG

puts "You are a cat" if gets.chomp == "にゃーん".encode("Windows-31J")
295デフォルトの名無しさん
2017/05/28(日) 17:18:28.96ID:5PeSitGp
pythonのやつをパクるしかない
296デフォルトの名無しさん
2017/05/28(日) 17:40:48.08ID:MqtJ47ff
極薄view用意して、そこだけ手動でテストすればいいよ
297デフォルトの名無しさん
2017/05/28(日) 18:57:58.47ID:QwjzxVOm
コマンドプロンプトは、Windows-31J, CP932 か

PowerShell, PowerShell_ise は、UTF-8 じゃないの?
298デフォルトの名無しさん
2017/05/28(日) 22:05:31.04ID:OcOYN7N8
windowsで真面目にRuby使うならコマンドプロンプトのままじゃ辛い
コンソールエミュで良さそうなの探して入れると良いよ
299デフォルトの名無しさん
2017/05/29(月) 00:55:58.04ID:+B2zTCTS
いやVirtualBoxの上のLinuxにSSHクライアントで接続した方がいいよ
300デフォルトの名無しさん
2017/05/29(月) 01:06:21.43ID:zS+u+zXg
出力はワイド文字に変換してくれるのでpythonみたいにchcp 65001しなくていいから楽ちん。
入力は気を利かせてくれてないから、$stdin.set_encodingで設定したほうがいいかな
あとはARGVとかDirで取得するファイル名とかをデフォルトでUTF-8にしてくれたらうれしいな
全般的にWindowsに気を利かせてくれているけど、そのノウハウをまとめたページがないから
不親切に見えるだろうな
301デフォルトの名無しさん
2017/05/29(月) 13:33:58.90ID:SjlSz+oM
ネットにはデマ情報がいっぱい残ってるので正しい情報をメモ
cmd で UTF-8 使える方法 (chcp 65001 について) http://nazochu.blogspot.jp/2011/08/blog-post_26.html
mintty http://dogmap.jp/2011/11/15/mintty/
mintty http://tanakh.jp/posts/2011-11-15-windows-terminal.html

色々紆余曲折あったけど Git インスコして GitBash 使うのが一番楽っぽい
https://git-for-windows.github.io/
302デフォルトの名無しさん
2017/05/29(月) 13:49:40.20ID:lxl3zEmg
>>301
こういうWindows版を使ったこともなさそうな人がおせっかいで書く情報が迷惑でしかない
303デフォルトの名無しさん
2017/05/29(月) 18:54:37.47ID:8MRHN7xk
ルビとRubyの話
なぜWordのデフォルトフォントサイズは「10.5」なのか? - ねとらぼ
http://nlab.itmedia.co.jp/nl/articles/1705/29/news020.html
304デフォルトの名無しさん
2017/05/29(月) 19:14:35.71ID:ZV+SCRde
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744
305デフォルトの名無しさん
2017/05/29(月) 19:16:13.40ID:ZV+SCRde
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/
306デフォルトの名無しさん
2017/05/29(月) 19:33:27.14ID:00NVazHZ
>>305
Ruby終了の教えらせ?
307デフォルトの名無しさん
2017/05/29(月) 19:34:02.42ID:00NVazHZ
お知らせ
308デフォルトの名無しさん
2017/05/29(月) 21:37:42.32ID:LfszU9UW
契約自由の原則は消えないんだよな
http://www.techvan.co.jp/media/quality/civil-code

rubyとかだと小さいシステムやプロトタイプが多いだろうから
契約に漏らさず明記しておくのが大事か
5年とかもう使えないようなバージョンとか出てきて作り直しになりかねない
309デフォルトの名無しさん
2017/05/29(月) 21:50:13.10ID:0c0Yo+hh
個々の契約のほうが優越なのだからふつうはそんなに問題は起きない
最低最悪のラインを決めただけ
いちばん騒いでるのが働いたことのない人といういろいろ縮図なやつだ
310デフォルトの名無しさん
2017/05/29(月) 22:06:06.39ID:LfszU9UW
>>309
最低最悪ではなく、平均では?
労働基準法みたいな契約より優先されるものが最低最悪で。
311デフォルトの名無しさん
2017/05/30(火) 09:22:17.83ID:hVv0NVyW
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
312デフォルトの名無しさん
2017/05/30(火) 10:25:03.46ID:gxWnkgCC
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
313デフォルトの名無しさん
2017/05/30(火) 13:25:40.32ID:KV35bhXw
保守に強いとか関係ないだろ
結局は技術力が高かろうと
エラーは出るからな
314デフォルトの名無しさん
2017/05/30(火) 13:27:12.19ID:52EkKXSJ
>>313
これコピペ
315デフォルトの名無しさん
2017/05/31(水) 12:38:22.60ID:nyiBm3r5
こぴぺちぱー
http://tamae.2ch.net/test/read.cgi/php/1474523013/
316デフォルトの名無しさん
2017/05/31(水) 23:19:57.63ID:X74K7lOs
るびまの ePub 版ってないの?
たまに話題に出てたり個人的にやってる人はいるみたいだけど。
317デフォルトの名無しさん
2017/06/01(木) 03:04:21.50ID:TLZ7U8Co
>>308
民法程度なら上書き可能……客の説得が面倒になる、という話だけど
ライブラリのバージョン変えても動くこと、という要件は突っぱねれば5年は持つわね

そりゃどこぞの誰かさんが書き換えてるのに同じように動くかどうかわかりませんわ
こっちが確認したのは特定のバージョン決め打ちでっせ、とね

>>312
C#とJavaは耐性強そうだ

Pythonはダメだ(2のを3でも対応する系クソゴミ改修案件をやった人の意見)、グイドは自称するほど互換性を大事にしねぇ
「もう二度とやりません」と、Cバインディングをぶっ壊したのととString-Bytesでいいやがったんで、次もやる
318デフォルトの名無しさん
2017/06/01(木) 12:09:40.74ID:o/dQD8LP
>グイドは自称するほど互換性を大事にしねぇ

2から3の書き換えの感想でそんなこと言ってるのか
頭沸いてんな
319デフォルトの名無しさん
2017/06/01(木) 17:59:48.16ID:VtNuZqDV
>>316
そんなことできるのね
チャレンジしようぜ
320デフォルトの名無しさん
2017/06/01(木) 18:02:47.78ID:VtNuZqDV
あっ 勘違いしてた
「るびま」と書いてあったな
オレが関心あるのは「るりま」の方だった
321デフォルトの名無しさん
2017/06/01(木) 18:14:59.52ID:n7u6yBLf
るりまは元が html5 になってるみたいだし、
メタ情報をちょろっと追加してパッケージングすりゃ ePub になるよ。
そんなに難しいことじゃない。
322デフォルトの名無しさん
2017/06/02(金) 09:51:10.10ID:8FvNWFqN
>>321
教えて欲しいんだけど
例えば2.0.0のバージョンのドキュメントをまとめてダウンロードするにはどこに行けばいいんだろ?
https://www.ruby-lang.org/ja/documentation/
323デフォルトの名無しさん
2017/06/04(日) 07:56:22.18ID:4B60732N
書き込みできない?
324デフォルトの名無しさん
2017/06/04(日) 07:57:07.55ID:4B60732N
322はできることなら削除したい
もうレスを確認する為にここに来ることはない
325デフォルトの名無しさん
2017/06/06(火) 19:13:48.69ID:wrPFF999
windowsでirb使うとき何か一文字打たないと
↑キーで履歴が出ないんだけど何とかならない?
ググってreadlineとかbinに入れてみたけどダメだった
326デフォルトの名無しさん
2017/06/08(木) 13:19:43.68ID:oPuedIYN
うちはでるよ
327325
2017/06/08(木) 21:11:29.66ID:cdZWf+lt
マジか。>>325はActiveScriptRubyだがいろいろ試した結果(環境はWin7 32bit)
ActiveScriptRuby 出ない
+ readline.dll 出ない
RubyInstaller 出ない
+ readline.dll 出る
328デフォルトの名無しさん
2017/06/16(金) 16:28:56.85ID:qOsPLqtM
うちのRubyInstaller2(Win8.1)ではirbやpryは大丈夫
jirb(JRubyのirb)は何か一文字打たないと↑が反応しない
あとruby -pe ""も何か一文字撃たないと駄目な模様
329デフォルトの名無しさん
2017/06/17(土) 13:52:50.98ID:CkD5o1Z0
これからrubyをやる意味ってなにが考えられますか?
330デフォルトの名無しさん
2017/06/17(土) 14:36:25.65ID:qMkdrUOQ
過去に一度だけプチブームになったことがあったんだけど
その原因と、そのあと下火になった理由を探求するとかかな
駄目と分かっている人は初めから駄目だよ、って言ってたんだけど
残念ながら世の中の全員が賢明というわけではなかったから
やはり、一過性のブームとか、時代でとか、そういうのはあるもので
今から追体験したければRubyはよい選択だと思うよ
ただ、さっきも書いたけど、全員が間違ったわけじゃないんだよ
半数以上かそれ以上の人はダメって初めから言ってたんだよ

あとはMarzの勉強かな
あの人、頭の弱い人を騙すことに関してはものすごい技術を持ってるから
そういうのに興味があればって感じ
具体的には「モノ」を中心に考えさせて、大事なものを見えなくさせたり
一見効率的に見えて実は遠回りっていう「局所解」に追い込んだりするその手法
おもしろいのはRuby3.0をどうするのか、なぜか今本人も困ってるところ
人を呪わば穴二つって言うように、他人を追い込むツールを作ってるつもりで
自分自身もまた追い込まれるってのは在るみたいね
331デフォルトの名無しさん
2017/06/17(土) 15:18:40.82ID:KrWMylVm
具体論がまったくないところがすごいなw
332デフォルトの名無しさん
2017/06/17(土) 16:22:03.43ID:b4+zDofQ
>>329
日本人の場合
あらゆる言語の中で一番易しいプログラミング言語
(子供用のおもちゃを除く)
333デフォルトの名無しさん
2017/06/17(土) 16:52:41.05ID:CkD5o1Z0
そうですか
GUIはどれを使えばいいですか?
334デフォルトの名無しさん
2017/06/17(土) 17:23:28.18ID:RyxkXkzJ
どうしてもやりたいならjruby+jrubyfx楽よ
335デフォルトの名無しさん
2017/06/17(土) 17:39:53.37ID:ZEU2lDOZ
この時点で、rubyだめってヒシヒシ伝わる。
336デフォルトの名無しさん
2017/06/17(土) 18:11:55.35ID:n14YEU6w
>>330
初見のコピペ
337デフォルトの名無しさん
2017/06/17(土) 18:16:55.55ID:n14YEU6w
>>333
rubyでは向いてないからGUIやめとけ
pythonでGUIやるといいよ
338デフォルトの名無しさん
2017/06/17(土) 19:44:55.62ID:KrWMylVm
>>330 の文章とか論理展開とか見てて何かに似てるなーと思っててずっと思い出せなかったが
やっと思い出した

これって、「ゲンダイ」の論調に似てるんだ!w
339デフォルトの名無しさん
2017/06/17(土) 19:46:39.93ID:KgLuH5ks
まつもと氏は合理主義のようだけどGUIにはそういうのは及んでないんですか?
340デフォルトの名無しさん
2017/06/17(土) 20:05:28.72ID:x959dLvJ
>>339
まつもと氏の行動原理は「IT土建屋死ね」
だからWinでのGUI開発でRubyが広く使われるようなことはあってはならない
341デフォルトの名無しさん
2017/06/17(土) 21:40:11.74ID:83r52Wsn
>>329
普通にメジャー言語だから
そのメリットはあると思うけど

他のメジャー言語でも別にいいが
日本語情報が豊富なのが良い
342デフォルトの名無しさん
2017/06/17(土) 21:41:18.42ID:83r52Wsn
>>333
Tkが(旧)標準
見た目が簡素だが覚えやすいので
最初はこれがオススメ
343デフォルトの名無しさん
2017/06/17(土) 21:42:43.07ID:83r52Wsn
>>330
何がダメでどうすればいいのか言わないなら
たんなる代替なき批判に見える
あとMarzってなんだよ!
344デフォルトの名無しさん
2017/06/17(土) 21:44:31.17ID:83r52Wsn
>>339
Tkを標準にしたのは合理的だと思うけど?
もしPythonに移ってもTkは使えるからね
345デフォルトの名無しさん
2017/06/17(土) 22:00:59.26ID:qMkdrUOQ
あぁごめんな
ただあの人のインタビューとか読めばわかるけど
逆張り逆張り言ってる
あの人自身もRubyの筋が良いとかメインストリーム的な思想であるとは
考えてないんだよ
ただ、自分の人生の中で逆張りした場合にうまくいくことが多かったので
逆張りし続けているんだとか
だからRuby3.0でも逆張りの一種として
静的型の機能は導入しない方向を検討しているんだろうな
ただそう何度も逆張りが上手くいくとは思わないし
逆張りはしょせん逆張りだろ?あだ花というかなんというか
そういうこともあって結局Rubyはプチブームで終わった現状があるわけだし
変なことして注目を集めることはあってもそれは一過性だよ、芸人じゃあるまいし
しかも逆張りしたときに自分にとって都合がよいことが多かったってだけで
使い手のことは別に考慮されてないんだよなー
346デフォルトの名無しさん
2017/06/17(土) 22:03:22.44ID:KrWMylVm
>>345
あいかわらす週刊誌レベルの根拠ない批判しかできないんだなー
347デフォルトの名無しさん
2017/06/17(土) 22:07:45.91ID:qMkdrUOQ
普通に考えたら静的型を導入しない理由は全くないんだよ
ただ、あえて理由を挙げるとしたら、最初Rubyは動的型で出発したから
いまさら静的型の機能を入れ込むのは非常に難しいってことなんだよ
過去との互換性もあるし、そういうコミュニティーになっちゃってるしな
もちろんこれは動的型に「逆張り」した結果なんだろうけど
あとあと苦しいわなー
348デフォルトの名無しさん
2017/06/17(土) 22:10:52.30ID:KrWMylVm
>>347
もうちょっと言語について勉強してから長文で語ってくれないかなー
正直今のレベルではゲンダイにも載せてもらえないレベルのただの妄言だしさ
349デフォルトの名無しさん
2017/06/17(土) 22:22:53.33ID:qMkdrUOQ
ただここまで静的型が「ハマる」とは俺も想像してなかったし
Matzも想像できなかったんじゃろな
何だか知らないが、静的型はすべてにおいて丁度よい感じになってるんだよな
神がかった偶然がいくつも重なってるかんじで、最適解になってる
この牙城はなかなか崩せないよ、一つや二つのメリットじゃないからね
なんでこんなに上手くいったんだろうね
350デフォルトの名無しさん
2017/06/17(土) 22:26:25.66ID:83r52Wsn
>>347
>普通に考えたら静的型を導入しない理由は全くない
そんなことない

Python、JavaScriptなど
メジャーな言語が導入してるんだから
351デフォルトの名無しさん
2017/06/17(土) 22:31:07.35ID:KrWMylVm
http://hissi.org/read.php/tech/20170617/cU1rZHJVT1E.html
てかこいつ変な人間だったわ
相手しちゃいけないタイプ
352デフォルトの名無しさん
2017/06/17(土) 22:59:47.96ID:qMkdrUOQ
まず動的型の根本的な慢性的ともいえる文法上の悩みの種は
どうにかして変数宣言をなくしたい欲求にかられるって点にある
動的型であるから変数宣言に型を書く必要がないので
なんとかして変数宣言自体をなくしたいっていう
まぁ分からなくもない
しかしながら変数宣言には変数の型を決める役割があるのとは別に
「変数のスコープを決める」という役割もあったわけで
安易に変数宣言を削除してしまったRubyやPythonのような言語は
大体において変数のスコープが奇妙なことになっているのじゃ
例えばRubyにおいては「@」であったり、ブロックローカル変数であったり
Pythonであればnonlocalであったり、なにか場当たり的だし
実質的な変数宣言の一種のような気もする
あと、if文や繰り返し文の後ろに続くブロックなどでスコープを持てなくなって
しまったりもな、なんせ、文法上、宣言を代入で代用しているから
代入と宣言の区別がつかないような状態で、かゆいところに手が届かない
だから結局、実は変数宣言は有ったほうが良いんじゃね?ってなって
ならついでに型も書けばってなって、今はさらにこれに加えて
型を書きたくなければ型推論使えば?ってことにまでなっちゃってる
型推論使えば変数宣言をする手間はほぼなくなるし
スコープを細かく制御できるようになるんだから
もう変数宣言が無いことはメリットにならなくなってしまった
まぁこんなのは氷山の一角でジャブだ
コンパイラによる型チェック云々言いたくなるところだがそれ以外にも
文法上の問題としてこういうのもあるということ
その他にも実行性能であったり、ドキュメントの自動生成であったり
リファクタリングの容易さであったり
IDEの入力補完etcのサポートのしやすさであったり
人間も型があったほうが読みやすいんじゃないかとか
結局コメントで型を書いてるんじゃね?とか
色々あるわな
なんか複合的なんだよ
動的型がここまでケチョンケチョンになるとは流石に想像できなかったわ
353デフォルトの名無しさん
2017/06/17(土) 23:00:37.97ID:KrWMylVm
http://hissi.org/read.php/tech/20170617/cU1rZHJVT1E.html
はいはい、もう君の素性はバレてるよ
354デフォルトの名無しさん
2017/06/17(土) 23:04:50.91ID:qMkdrUOQ
ただ動的型にも良い点があって
「処理系の実装が楽」
しかしこれも実用性を考えて突き詰めていけばJSのV8エンジンのように
加速度的にむしろ大変なことになるというね
とにかく旨みが無い
355デフォルトの名無しさん
2017/06/17(土) 23:05:43.09ID:KrWMylVm
http://hissi.org/read.php/tech/20170617/cU1rZHJVT1E.html
はいはい、もう君の素性はバレてるよ
356デフォルトの名無しさん
2017/06/18(日) 00:20:30.41ID:lJ0QohrH
LISPみたいに動的型でも宣言ある言語の方がスコープが分かりやすい
357デフォルトの名無しさん
2017/06/18(日) 02:54:31.67ID:MwiRGqjx
動的型付けでダックタイピングみたいに
組みやすくなってるメリットがあるから

実際Ruby以外にもPerl、Python、PHPの
P言語はみんな動的型付けになってる

小規模Webサービスのサーバサイド言語
としての用途には動的型が合ってる
358デフォルトの名無しさん
2017/06/18(日) 07:50:58.11ID:ppLsekVC
>>357
何か勘違いしてるみたいだけど、ダックタイピングっていうのはオブジェクト指向言語の実装手法の一つで、プログラマにメリットなんかないよ
特にRubyだと多態をダックタイピングに任せるのは嫌われる傾向があって
無意味でも空のメソッドを定義しておいて継承したりするし
359デフォルトの名無しさん
2017/06/18(日) 08:09:30.26ID:ppLsekVC
ちなみに、Rubyでダックタイピングが好まれないのはドキュメントよりもコード読めという文化のせいだと思ってる
ダックタイピングだと「このパラメータにはアヒルを渡してくれ」じゃなくて
「このパラメータにはアヒルのように歩きアヒルのように鳴くものを渡してくれ」といちいちドキュメントに書かなきゃいけない
(静的型になる前の)Pythonはドキュメントを重視する文化だから実際そういうドキュメントの書き方をすることもあるんだけどね
Rubyだとそれを避けるために無意味とわかっていても空のスタブとしてアヒルクラスを定義しておいて「アヒルを渡してくれ」と書くわけ
360デフォルトの名無しさん
2017/06/18(日) 08:24:04.22ID:mREyO8+w
>>352
Rubyが動的型って言うより、
型宣言不要と特徴付けるのがええんちゃうかなぁ。

変数宣言なしは良いとして、変数のスコープが判りにくくなったってのは、
そうかも。
361デフォルトの名無しさん
2017/06/18(日) 08:29:35.01ID:F94toio2
ダックタイピング任せはメンバの追加がしづらいのも問題
静的型ならインターフェースにメンバを足せばコンパイルエラーになるからエラー箇所を直せばいいが
完全なダックタイピングだと手掛かりがなく修正漏れが発生しやすい
とりあえずスタブを継承させるようにしておけばメソッドを足してもメソッド未定義のエラーにはならない
362デフォルトの名無しさん
2017/06/18(日) 16:45:30.43ID:xPH4G83l
いまさら$とか@とかつけたくないな
363デフォルトの名無しさん
2017/06/18(日) 17:45:55.35ID:MwiRGqjx
>>358
>Rubyだと多態をダックタイピングに任せるのは嫌われる傾向
>>359
>Rubyでダックタイピングが好まれない

勝手に決めんなって
それはJavaみたいな静的型の発想で
Rubyを使おうとする奴の話だろ

インターフェイスの継承不要なのが
ダックタイピングのメリットだから
364デフォルトの名無しさん
2017/06/18(日) 17:56:41.46ID:mREyO8+w
Rubyのスクリプトをバックグラウンドで動かすにはどうすれば良いでしょう?
>ruby someScript.rb &

と実行してもTerminal.Appを閉じるとrubyも終了してしまいます。
OSはmacOS Sierraです。

以前、HP-UXで作業して居た時には、xtermを閉じても、logoutしてもバックグラウンドで動き続けてくれました。

launchdとかいうdeamonをコントロールするコマンドがある様なんですけど、これを使って動かさないといけないのでしょうか?
365デフォルトの名無しさん
2017/06/18(日) 18:03:58.53ID:kXxrIi51
tmux使え
366デフォルトの名無しさん
2017/06/18(日) 18:13:50.36ID:mREyO8+w
>>365
レスTHX
terminal multiplexerを使えば良いのでしょうか?

someScript.rbを動かすには、someScript.plistを書いて
>launchctl load someScript.plist
ってやるらしいのですが、plistファイルなんて書いた事ないぞぉ。

書き方がよく判らん。
なにか、勘違いしてたら、ご指摘を!
367デフォルトの名無しさん
2017/06/18(日) 18:27:18.73ID:mREyO8+w
>launchctl load a.plist
/work/a.plist: Invalid property list


property listの書き方がよく判らん。
ただのxmlファイルじゃないのか?コメントの放り込み方が悪いのか?
無効なproperty listだとぉー?
368デフォルトの名無しさん
2017/06/18(日) 18:38:44.94ID:mREyO8+w
やったぁー。動き出しタァ。
Terminal.Appを閉じても動いてる。ふぅー。
369デフォルトの名無しさん
2017/06/18(日) 19:28:18.01ID:mREyO8+w
俺的忘備録

必須key、3つ
<key>Label</key>
<key>ProgramArguments</key>
<key>KeepAlive</key>

3つ目のやつを<true/>にしないとbackgroundで動かん!
さらに、最後のはOnDemand=falseと等価なのだが、
OnDemandはshould not use!だって。
man launchd.plistに詳細が記載。
370デフォルトの名無しさん
2017/06/18(日) 19:51:32.81ID:mREyO8+w
Labelが無いとどうなるんでしょう?
371デフォルトの名無しさん
2017/06/18(日) 19:54:50.51ID:mREyO8+w
Invalid or missing service identifier
372デフォルトの名無しさん
2017/06/18(日) 20:02:09.12ID:mREyO8+w
さて、stdoutはどうやって拾うのだ?
373デフォルトの名無しさん
2017/06/18(日) 20:13:05.46ID:mREyO8+w
man lauchd.plist
して/stdout
すれば出て来た。
374デフォルトの名無しさん
2017/06/18(日) 22:47:06.74ID:o43mtcr6
>>364-368
Linux では、プロセス間に親子関係がある。
端末から、Aプロセスを起動すれば、端末が親で、Aが子

「親亀こけたら、子亀もこける」から、端末が終了すると、Aも終了する。
端末から、SSHで、リモートサーバーへアクセスしても、
接続断などで、リモートのシェルが終了すると、
シェルから起動したコマンドも終了してしまう

リモートで、tmux をずっと起動させておけば、コマンドは動き続ける

他には、サービス・デーモンのように、プロセスの親をなくす(デーモン化)

ptree コマンドで、プロセスツリーを見てみ
375デフォルトの名無しさん
2017/06/19(月) 00:00:57.99ID:7PGcweVa
>>364
マッキンは知らんので、Linuxだとして。
おそらくプロセスを切り離さないと。

nohup、disownとかぐぐれ。
376デフォルトの名無しさん
2017/06/19(月) 09:53:11.25ID:JRZAs/i8
>>374
そんな面倒なことしなくても
hoge.app &
でよくね?
377デフォルトの名無しさん
2017/06/19(月) 09:56:20.02ID:rtjcKsU2
>>376
それやっても親子関係が残るからだめだっつってるのに文盲か?
378デフォルトの名無しさん
2017/06/19(月) 10:00:51.58ID:zE2VOzv5
>>375
THX

mackin’でもnohup使えた。
launchctlなんて使わなくて良さそう。

>>376
hoge.app&ではterminal.appの終了時にhoge.appがkillされちゃうんだよねぇ。
mackin’では。Linuxでは違うのか?
最近LInux触ってないのでよく知らんのだ。
379デフォルトの名無しさん
2017/06/20(火) 00:23:19.32ID:8wgIueO/
pstree コマンドで、プロセスの親子関係をツリー表示して、見てみれば?

結局、Ruby を学んでも、OS を学んでいなければ、
システム系のプログラミングは出来ない

だから普通、プログラマーよりも、LPIC資格を持っている、
サーバー構築・運用者の方が、給料が高い
380デフォルトの名無しさん
2017/06/20(火) 00:54:05.18ID:uMblZ3Am
× システム系のプログラミング
○ 運用系のプログラミング
381デフォルトの名無しさん
2017/06/20(火) 08:29:32.89ID:rapwcYHc
>>379
system callを知らなくても、まあ、一部知ってるけどRubyスクリプト、スマホアプリは作れるよ。

OSを学ぶって、言うけど、それ幅が広すぎ!
まあ、パタ・ヘネ位は読んでます。
382デフォルトの名無しさん
2017/06/20(火) 10:01:32.57ID:8wgIueO/
まあ、プログラマーで、プロセスに親子関係があるとか、
cron の使い方とか、tmux とか、知っている奴はいない

cron あるあるとか、SSH あるあるとか、Linuxでは定番
383デフォルトの名無しさん
2017/06/20(火) 10:41:15.76ID:rapwcYHc
>>382
プロセスに親子関係がある。コマンド実行時にshellがforkされるのは知ってたんだけど。。。
以前はnohupなんて使わなくても、
>someCommand &
とすれば
>nohup comeCommand &
した事になったのに!

いつから、nohupなんて現れたのだ?
384デフォルトの名無しさん
2017/06/20(火) 10:45:41.82ID:rapwcYHc
どうやらbashは終了時に起動したプロセスにSIGNHUPを送るらしい。

俺が昔使って居た、csh, tcshではそんな事はなかったのに!
時代は変わったんだな。
385デフォルトの名無しさん
2017/06/20(火) 12:38:36.99ID:5s5M5H6z
>>383
だよな
いつからだっけ
386デフォルトの名無しさん
2017/06/20(火) 12:39:25.49ID:5s5M5H6z
>>384
ああそれか
なんでbashみたいな糞が流行ったんだろ
387デフォルトの名無しさん
2017/06/20(火) 12:51:49.38ID:rapwcYHc
zshってのが便利だってのを、webの記事でよく見るけど、
どうなん?

bashが糞なら、zshを使って見るかな。
zshもbashの親戚みたいな動きをするなら、zshも糞って事になるけど。
388デフォルトの名無しさん
2017/06/20(火) 13:51:30.44ID:DOO3yEYl
>>387
zsh もデフォの振る舞いは bash とおなじ。
設定で setopt nohup すれば、hup 送らなくなる。
bash でも huponexit オプション外せば送らなくなる。
ソフトウェアのマニュアルも読まずに糞とか言うのは、
自分は所詮そのレベルの人間ですと言ってるようにしか聞こえないよ。
389デフォルトの名無しさん
2017/06/20(火) 13:59:24.54ID:rapwcYHc
>>388
はい!
無闇に糞って言った事を、反省します。
390デフォルトの名無しさん
2017/06/20(火) 14:18:05.45ID:rapwcYHc
>>388
うぅーん。
macOS Sierraのbashにもshopt huponexitってのがあるが、
どうも、最初からoffになってるにも関わらず、signhupを送ってる。

ためしにonにしてみたが、bash終了時にbackground実行しているプロセスが死んでしまう事に、変わりなし。

nohupコマンドを付けないと、background実行できないみたいだ。
391デフォルトの名無しさん
2017/06/20(火) 15:04:00.33ID:DOO3yEYl
>>390
bash の終了を exit じゃなくてウィンドウ閉じるでやってない?
明示してないのにバックグラウンドで動きっぱなしになっていて欲しいユースケースってどんな時なの?
nohup/disown の方が好きな自分からは想像できないわ。
392デフォルトの名無しさん
2017/06/20(火) 15:20:19.60ID:rapwcYHc
>>391
Scrapingスクリプトをproxy経由で動かす場合、proxyのレスポンスが悪いので、数時間掛かります。proxyは10箇所を順に変えながらScrapingします。

ruby someScript.rb &で即backgroundで動いて欲しいです。
まあ、慣れればいいだけかもしれんけど、nohupっていうprefixが必要なのは、ちょいとなぁ。
393デフォルトの名無しさん
2017/06/20(火) 15:22:05.91ID:rapwcYHc
>>391
Terminal.appは動かしッパでも構わないのですが、
Vim7.4, Vim8.0が時々落ちます。その際、Terminal.appも巻き添いなんです。
すると、Scrapingも落ちちゃって困ってたのです。
394デフォルトの名無しさん
2017/06/20(火) 15:23:21.50ID:rapwcYHc
Vimが落ちるのはterminal typeがxterm-256colorが悪さをしていて、ansiへ変更がwork aroundだと聞いて、今様子を見ているところです。
395デフォルトの名無しさん
2017/06/20(火) 15:29:54.49ID:DOO3yEYl
>>393
vim 上の shell で実行してるの?
tmux か screen の上で動かすか、あきらめてnohup 書く癖を身につけるしかないかと。
396デフォルトの名無しさん
2017/06/20(火) 15:36:38.36ID:rapwcYHc
>>395
nohup書きます。
時代はnohupなんすね。

macOSアプリ作り始めたけど、AppKitってUIKitと似てるけど違うので、混乱するわぁ。
397デフォルトの名無しさん
2017/06/20(火) 16:02:58.26ID:HkCB1WW9
rubyスレ?
398デフォルトの名無しさん
2017/06/20(火) 16:14:40.13ID:+dHGS6wU
tmux使う方が早い
399デフォルトの名無しさん
2017/06/21(水) 00:25:07.92ID:39OgiOwj
>>392
> 即backgroundで動いて欲しいです。

冷静になったら、そうでないほうがたしかによい、と思うはず。
誤ってbgにしたり、bgにしたまま忘れたりした状態でログアウトした場合のリスクを考えれば。
400デフォルトの名無しさん
2017/06/21(水) 13:07:38.08ID:L1LFWazB
むしろ、WSH で、Excel など外部アプリを起動すると、Excel のプロセスが残り続けるから、

どんどん、Excel のプロセスが増えていき、
これらをどうやって終了するのか、皆苦しんでいるんだが
401デフォルトの名無しさん
2017/06/21(水) 18:38:55.26ID:xJXAtiMS
残らないが?
402デフォルトの名無しさん
2017/06/23(金) 10:35:54.52ID:0OdP20aK
>>399
bgの何が問題?
403デフォルトの名無しさん
2017/06/23(金) 10:36:22.71ID:0OdP20aK
>>400
馬鹿だな
404デフォルトの名無しさん
2017/06/23(金) 13:24:40.77ID:AzvmtT2M
初心者です、自作の汎用関数を定義したのですが、いちいちスクリプト内にコピペするのが面倒なので
外部ファイルにして冒頭でrequireすることにしました。
ですが、ここに具体的なファイルパスを書くと、ファイルの設置場所を変えたい場合に問題があるのでパスは書きたくないです。
require 'myfunc'
と簡便に書ければいいのですが、どこに置けばいいでしょうか?
405デフォルトの名無しさん
2017/06/23(金) 13:37:52.68ID:9PTuVR6v
現実の開発ではきちんとバージョン管理するのでフォルダの構成変更なんかそんなに頻繁にやることではない
だからリポジトリを分けるほどでもないなら気にせずパス決め打ちでいい
独立性と再利用性が高いものであればリポジトリを分けてgemにする
406デフォルトの名無しさん
2017/06/23(金) 14:21:13.96ID:AzvmtT2M
ありがとうございました
407デフォルトの名無しさん
2017/06/23(金) 14:40:20.24ID:tdHTYauf
rails で、自作ライブラリの、autoload なら、

lib/モジュール名/クラス名.rb
lib/foo/bar.rb

module Foo
class Bar

ファイル名は小文字で、単語の区切りは'_'に変える

class FooBar
lib/foo_bar.rb
408デフォルトの名無しさん
2017/06/23(金) 14:43:58.67ID:qsHmY7yg
>>404
場合によっては環境変数 RUBYLIBにmyfunc等のパスを淹れるのもあり
https://docs.ruby-lang.org/ja/latest/doc/spec=2fenvvars.html
409デフォルトの名無しさん
2017/06/23(金) 18:29:59.15ID:+um/cK3a
>>400
“終了しない excel application”でググったら出てきたけどこの仕様は罠だろ・・・
410デフォルトの名無しさん
2017/06/23(金) 18:31:41.63ID:PAAniHx4
馬鹿には無理
411デフォルトの名無しさん
2017/06/23(金) 19:09:21.56ID:F2nCEsS4
>>409
COM経由で起動させてるんなら自動で終了する方がきもちわるい
412デフォルトの名無しさん
2017/06/23(金) 19:49:53.85ID:+um/cK3a
>>411
自動化処理に使ったプロセスが不要になっても残りっぱなしの方が気持ち悪い
413デフォルトの名無しさん
2017/06/24(土) 18:05:14.46ID:M5zFSS9+
>>404
モジュールファイルへの相対パスなら確定できる場合はrequire_relative。
特定ディレクトリの設定だけなら許容できる場合は、そのディレクトリを$:に追加。
414デフォルトの名無しさん
2017/06/24(土) 18:06:46.13ID:M5zFSS9+
>>412
プロセス自身にはわからんじゃろ。。。
415デフォルトの名無しさん
2017/06/28(水) 09:33:18.25ID:+O8L6XqQ
瑕疵担保責任(かしたんぽせきにん)

瑕疵担保責任のポイント

民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない

http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt

改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている

全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html

ポイント1:修補や損害賠償、契約解除の期限がなくなる

従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。

もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
416デフォルトの名無しさん
2017/06/28(水) 10:47:59.83ID:+O8L6XqQ
366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744

367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/

372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する

Railsはマイナー、メジャーのアップデートが半年以内に必ずある

客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく

気づいてから1年以内に通知すれば、5年間無料保証ゲット

つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな

376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
417デフォルトの名無しさん
2017/06/28(水) 19:56:54.80ID:ZzpJpley
> RubyやPHPなど動的言語は確実に廃れる。
軽々しくこういう断言する人間の言葉は話半分どころか1/4以下にして聞け、ってばっちゃが言ってた
418デフォルトの名無しさん
2017/06/28(水) 20:15:29.47ID:kl/WEkBu
Rubyが現在進行形で廃れていってるのは確かな事実だけどね
419デフォルトの名無しさん
2017/06/28(水) 21:48:23.90ID:WbQwz649
ぶっちゃけて言えば、意味論的には普通なのに文法がぐちゃぐちゃすぎて使いづらい。
Perl のあまりの一貫性のなさに Ruby を試したりしたこともあるが、
多少はマシって程度でうんざりするような無茶苦茶さを指向していることにかわりない。
parse.y が黒魔術の塊だというのは聞いていたが、実際に見てみると常軌を逸している。
せっかく yacc を使ってるのに純粋な LALR として解釈できないようなわけわかんないクソが埋め込まれてて、
もはや統制が取れてない。
mruby をベースにして拡充していった方がいい気がする。
420デフォルトの名無しさん
2017/06/30(金) 00:38:26.19ID:UcGpMueB
使いづらいなら他の言語使えばいいじゃん
わざわざRubyスレ覗いてRubyの悪口書いてる暇があるなら他の言語でコード書こうぜ
421デフォルトの名無しさん
2017/06/30(金) 01:21:01.84ID:svEzz20W
>>420
だからもう十年以上使ってない。
事実として文法規則のごちゃごちゃしたところはあるという話だよ。
そして事実として私はそれを気に入らなかったという話だよ。

よくある場面を短く書けるとか人間の一般的な感覚に合わせたりもした結果だというのはわかっているし、
Ruby に向いた用途があるのは知ってるよ。
ただ、それの行く先には実装上の行き詰まりが生じそうだという懸念だ。
422デフォルトの名無しさん
2017/06/30(金) 01:37:54.59ID:UcGpMueB
>>421
うん、そんな人間がなぜRubyスレを覗いてて、なおかつ悪口を書き込むのか
はっきり言えば粘着質で気持ち悪い
423デフォルトの名無しさん
2017/06/30(金) 02:32:52.47ID:7V8Jdo2I
Rubyは読み書きしやすいから使ってる
規則が統一された文法が良ければLispを使えよ
424デフォルトの名無しさん
2017/06/30(金) 09:41:10.74ID:jqp1y4Nc
何で使ってない言語を見に来ているの?
暇なの?
425デフォルトの名無しさん
2017/06/30(金) 09:50:34.06ID:flSVgAwO
rubyは上級者には不満があるのかもしれんが、俺の様な素人が使うには使いやすい。
メソッドチェインも「.」でつなげていくだけだし、
正規表現使うのにimportとかしなくていいし。
でも複数行のコメントアウトは面倒。
426デフォルトの名無しさん
2017/06/30(金) 09:51:37.98ID:BBkM2EA1
>>422

Rubyスレに来て悪態さらすヤツってのは、喩えて言えばこんな感じだ。
最初は、良い会社だと思って就職した。
けど、外から見るのと、入って見るのとでは大違いで、内部は火の車だった。
(例:最近の東芝、タカタ)

転職活動も、うまくいかず、悪態をつかざるを得なくなる。
427デフォルトの名無しさん
2017/06/30(金) 10:15:14.59ID:pDIkSJMf
2ちゃんも昔は良かった
428デフォルトの名無しさん
2017/06/30(金) 11:25:06.46ID:BBkM2EA1
>>427
そうかぁ?殺人予告とかあったんだぞ!
そんでもって、本当に発生してビックリなんてのが、2chなのだ。
429デフォルトの名無しさん
2017/06/30(金) 11:30:06.98ID:hBaGJvUf
>>425
> でも複数行のコメントアウトは面倒。

初心者スレということでいちおうマジレスしておくと
=begin
=end
で囲むと一挙にコメントアウトできる
430デフォルトの名無しさん
2017/06/30(金) 11:33:27.81ID:BBkM2EA1
>>429
たしか、こんなのも
__END__

以下の行は全てコメント!
うる覚えだが。
431デフォルトの名無しさん
2017/06/30(金) 11:38:01.54ID:625dciv9
>>429
こんな糞みたいなの教えたって誰も使わない
432デフォルトの名無しさん
2017/06/30(金) 11:45:54.89ID:flSVgAwO
>>429
すみません。知っているんですが、
jsとかみたいに/**/とかだと入力がラクだなーって話です。
433デフォルトの名無しさん
2017/06/30(金) 12:42:16.16ID:UcGpMueB
>>432
メモ帳使ってるわけじゃないんだろうからそれぐらいショートカット使えば差はない
434デフォルトの名無しさん
2017/06/30(金) 12:50:26.31ID:hBaGJvUf
タイピングの文字数に拘るあたりが初心者だよな
(↑それが悪いことだとは言っていないし、一切の悪意は無い)
プログラミングを指の労働と捕らえてるんだよな
435デフォルトの名無しさん
2017/06/30(金) 13:04:45.36ID:mtvSOUWH
>>429
>>430
どっちもコメントアウト用じゃないから
436デフォルトの名無しさん
2017/06/30(金) 13:09:33.76ID:UcGpMueB
>>435
=begin, =end は一時的なコメントアウトにはよく使うよ
437デフォルトの名無しさん
2017/06/30(金) 13:35:43.48ID:2Da2vksV
>>434
それはMatz批判か?
処理系を黙らせるためだけの冗長な記述を強いられることは屈辱であると神が仰っている
438デフォルトの名無しさん
2017/06/30(金) 13:40:13.66ID:625dciv9
そんなperlのパクリ機能なんかもう使ってる人いないよ
普通は#で複数行コメントアウトするようなエディタ使ってるでしょ
439デフォルトの名無しさん
2017/06/30(金) 14:08:18.32ID:W0OUnv8/
黙らせるならexit!やな
440デフォルトの名無しさん
2017/06/30(金) 16:49:14.50ID:tesV9X+3
一時的に処理から外したいときは「そういやRubyにも複数行コメントの記述法があったななんだったかな」と思いながら
#と方向キーを交互に連打してるかコメントリージョン機能を使ってるかどっちかだな
441デフォルトの名無しさん
2017/06/30(金) 18:29:44.40ID:4uO/IbWe
atomやvscodeだったら Ctrl + / で行コメントの挿入削除
442デフォルトの名無しさん
2017/07/01(土) 04:05:27.85ID:J52nGMUC
俺は if false ~~~ else ~~~ end を使ってる
あるいは後置 if false
元の処理を走らせる場合は否定演算子を付けて if !false みたいにしてるなあ
443デフォルトの名無しさん
2017/07/01(土) 04:30:56.70ID:yR6MEKU9
>>442
それでは駄目なのだ
まあじきにわかる
444デフォルトの名無しさん
2017/07/01(土) 05:26:51.20ID:PPsHHHSM
>>434
まったくその通りだな
「=begin」程度でタイプ数多くてダルいとか

Rubyは記述だと簡潔な方だし
コメントアウトを多用するなんて
書き方してたらそもそも筋が悪い
445デフォルトの名無しさん
2017/07/01(土) 11:17:02.68ID:N+ZXroXE
>>414
爺なの?
446デフォルトの名無しさん
2017/07/01(土) 14:26:38.71ID:R60vnDrO
同じ処理をさせようとしても
初心者が書くのと慣れてる奴が書くのとですでに差が出てる
a = ['a', 'b', 'c']
b = []
i = 0
a.each {|c| b << (i.to_s + c); i += 1}
p b

↑こーいう書き方する人ほどタイプ数に拘り
↓こーいう人はもはやそこでは騒がない

c = %w(a b c).each_with_index.map {|c, i| i.to_s + c}
p c
447デフォルトの名無しさん
2017/07/01(土) 14:59:17.39ID:yR6MEKU9
いい加減壁に向かって物言うのやめたら
誰もそれを話題にしてはいないよ
448デフォルトの名無しさん
2017/07/01(土) 15:48:19.58ID:qX8eRJNR
>>446
それはわかる
ダメな奴は抽象度を上げようとせずに同じことを短く書こうとする
地頭悪いのをプログラミングの小手先のスキルで誤魔化してる奴にありがち
449デフォルトの名無しさん
2017/07/01(土) 16:44:27.93ID:R60vnDrO
>>448
そうそうw
なんかこう、間違った努力をしちゃうんだよねえ
450デフォルトの名無しさん
2017/07/01(土) 19:39:10.28ID:QATpSz/4
>>443
駄目でもないのじゃ。
違う処理を簡単に試してみたいときなんかは、外したい部分にも最低限の文法チェックがかかるので、事故が少なかったりな。
451デフォルトの名無しさん
2017/07/01(土) 20:41:44.60ID:M8KylmXN
b = []
b << 要素

1つずつ、配列に追加していく処理だけど、
エラー処理などがいらないなら、簡潔に書くべき
452デフォルトの名無しさん
2017/07/01(土) 21:37:44.67ID:sOThA7TG
>>446
> 初心者が書くのと慣れてる奴が書くのとですでに差が出てる

せやね

お前が書くと
c = %w(a b c).each_with_index.map {|c, i| i.to_s + c}

俺が書くと
c = %w(a b c).map.with_index {|c, i| i.to_s + c}

これはタイプ数の問題じゃねーよ?
配列から配列に変換して入れる処理で
eachって単語がでてくることキモいって話
453デフォルトの名無しさん
2017/07/01(土) 22:38:49.78ID:M8KylmXN
関数厨は、Ruby・JS のスレにやって来て、

何でもかんでも、map を使って、1行で書いてしまうからなw
454デフォルトの名無しさん
2017/07/01(土) 22:44:59.49ID:Tp0p2tiJ
>>452のようなことに特に興味がなくて
正直どっちでもよくね?
って考える普通の人はRubyを使わなくてもよいってことなんだよ
まさにこれがRuby
「タイプ数にこだわるのは初心者」
「そうそうそうなんだよね~」
とか言いながら動的型言語を使うのって最高でしょ
455デフォルトの名無しさん
2017/07/01(土) 23:45:31.46ID:N+ZXroXE
mapperかな
456デフォルトの名無しさん
2017/07/01(土) 23:49:19.16ID:cxvWbv+r
いくらRubyのコード効率が良いと言っても可読性を犠牲にするつもりはないな
無用に行数を減らしたりオブジェクト名の長さを減らしたりはしない
そういう書き方をすると後で苦労するのは自分だし
457デフォルトの名無しさん
2017/07/01(土) 23:54:52.06ID:sOThA7TG
>>456
可読性というのは読むべき「単語」を減らすものであって
行数を減らすことやオブジェクト名を減らすことは
単語を減らすことにはつながらない。

例えば行数を減らしたとしても、それが 空行や { などの
カッコだけの行を減らした所で単語数は変わらない。
むしろ空行がある方が読みやすい文章となることもある
名前も、短い名前にしても単語数は変わらない

単語数を減らすと結果的に行数が減ることはあるが、
行数を減らすことは可読性を上げる行為ではない。
458デフォルトの名無しさん
2017/07/01(土) 23:56:03.86ID:5xgWPcGQ
>>453
本当の関数厨は今時map程度に拘らんぞ。
どの言語でも採用されてるしな。

{|c, i| i.to_s + c }

のがどうにか出来ないか気になるw
459デフォルトの名無しさん
2017/07/01(土) 23:56:04.59ID:sOThA7TG
ちなみにさっき書いたこれ。

c = %w(a b c).each_with_index.map {|c, i| i.to_s + c}
c = %w(a b c).map.with_index {|c, i| i.to_s + c}

下の方が「単語数」が減っている。
each with index map ・・・ 4単語
map with index ・・・ 3単語
460デフォルトの名無しさん
2017/07/01(土) 23:57:42.07ID:sOThA7TG
>>458
できるぞ

c = %w(a b c).map.with_index {|c, i| "#{i}c" }
461デフォルトの名無しさん
2017/07/02(日) 00:03:47.37ID:0SO6fajC
あ、間違った。こうなw

c = %w(a b c).map.with_index {|c, i| "#{i}#{c}" }

俺としては、なんでmapがデフォルトでindexを持ってないかのほうが気になるな。
JavaScriptならこれでいいのに

a = ['a', 'b', 'c']
c = a.map((v, i) => i+v)
462デフォルトの名無しさん
2017/07/02(日) 00:18:14.45ID:IGa4njyh
>>461
というかJavaScriptが特殊なんだよ
引数の数のチェックをしないからな
463デフォルトの名無しさん
2017/07/02(日) 00:19:08.94ID:J2BCSwZK
JavaScriptはJavaの名前にあやかっただけで全くJavaじゃないって本当ですか?
464デフォルトの名無しさん
2017/07/02(日) 00:23:24.49ID:0SO6fajC
>>462
Rubyでもこの文脈では引数の数のチェックをしてないようですが?

%w(a b c).map.with_index {|c| "#{c}" } # 引数が足りなくてもエラーなし
%w(a b c).map {|c, i, x, y, z| "#{i}#{c}" } # 引数が多くてもエラーなし
465デフォルトの名無しさん
2017/07/02(日) 00:24:36.29ID:0SO6fajC
>>463
Rubyも宝石の名前にあやかってるだけで全くRubyじゃないよw
466デフォルトの名無しさん
2017/07/02(日) 00:24:58.24ID:J2BCSwZK
>>465
なるほどw
467デフォルトの名無しさん
2017/07/02(日) 00:29:32.61ID:WUsDB0eH
JavaScriptはLISPっぽい所ある
468デフォルトの名無しさん
2017/07/02(日) 00:38:11.58ID:yqVk05l0
>これはタイプ数の問題じゃねーよ?
と言いつつも
>可読性というのは読むべき「単語」を減らすものであって
と言うのであった

そして多くの人はこう思うのであった
「単語数と可読性ってそんなに関係あるか?」
「ここで言ってた可読性って、少々冗長であっても
 読みやすいほうが良いって話じゃなかったの?」

>下の方が「単語数」が減っている。
>each with index map ・・・ 4単語
>map with index ・・・ 3単語

一単語減らせて本当によかったね
>これはタイプ数の問題じゃねーよ? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
469デフォルトの名無しさん
2017/07/02(日) 00:49:17.22ID:0SO6fajC
>>468

> >これはタイプ数の問題じゃねーよ?
> と言いつつも
> >可読性というのは読むべき「単語」を減らすものであって
> と言うのであった

矛盾してないよ?

例えばコピペ、コピペを使うとタイプ数は減る。
CTRL+vとたった1文字タイプするだけで、
過去に書いたコードを複製できる。
だけど、読むべき単語は倍増していく


可読性のためにやらなければいけないのは、タイプ数を
減らすことではなくて単語数を減らすこと
470デフォルトの名無しさん
2017/07/02(日) 00:55:38.04ID:0SO6fajC
>>468
> 「単語数と可読性ってそんなに関係あるか?」
> 「ここで言ってた可読性って、少々冗長であっても
>  読みやすいほうが良いって話じゃなかったの?」

日本語に置き換えて考えればわかるだろ?
文章はシンプルな方が読みやすい。
ただそれだけのことなんだが。


まああと付け加えるとするならば「誰にとって」の話だな。
もちろんプログラマにとってだ。

これは数学に例えればわかるか?

数学者同士が会話をする時、数式を使ったほうがより簡単に説明できる。
数学者同士の会話で素人がわかるように数式を使わないで
会話するのは話をわかりにくくするだけ
なぜか? 数式を使えば短い単語数で説明できるから。

ここで素人でもわかるように難しい単語を使わない方がいいという意見は
数学者同士の会話で、素人でもわかりやすく話せといってるようなもん。
素人のために生産性を大きく落とすだけ
471デフォルトの名無しさん
2017/07/02(日) 00:57:54.25ID:NbWg8gon
>>470
その冗長なレスをまず自覚しろ
472デフォルトの名無しさん
2017/07/02(日) 01:08:47.26ID:yqVk05l0
プログラムを書くのであれば誰しも可読性が良いプログラムを書きたいと考える
部分があるかもしれないが、そんなとき、単語数などというものの脳内に
占めるウエイトは、ほぼ無い

「あのプログラムのソースコードは単語数が少ないから非常に読みやすかったよ~」
なんて会話は、無い

というと、じゃあ単語数が多いほうが良いのか?と言い出すかもしれないが
そもそも単語数など論点にするのがピンボケ

労力の方向がおかしいし、論点がおかしい
473デフォルトの名無しさん
2017/07/02(日) 01:14:15.76ID:0SO6fajC
>>471
お前が短く書き直せば?w
474デフォルトの名無しさん
2017/07/02(日) 01:15:48.32ID:0SO6fajC
>>472

> 「あのプログラムのソースコードは単語数が少ないから非常に読みやすかったよ~」
> なんて会話は、無い

無駄がないとかシンプルっていう言い方をしてるはずだよ。
無駄がないとかシンプルとはどういうことか?というと
それは殆どの場合単語数が少ないことを意味してる
単に言い方の違いだねw
475デフォルトの名無しさん
2017/07/02(日) 01:23:00.07ID:yqVk05l0
ついでに言っておくと、俺は別に冗長に書けばわかりやすくなるとも思ってない
元の人がそのようなことを言っていたから、そういった風なことも書いたが
俺自身はそうとも思っていない
というか、そういったことは、割とどうでもよいというか
多少コードがシンプルになったぐらいで一喜一憂する気分ではない
そりゃ少しはうれしいが、それはまぁなんていうか、青信号だったラッキー、みたいな感覚
どちらかというと、1円見つけた!のほうが嬉しいかなー
476デフォルトの名無しさん
2017/07/02(日) 01:28:42.17ID:0SO6fajC
> 多少コードがシンプルになったぐらいで一喜一憂する気分ではない

割合で考えようか?

4単語が3単語になったら、25%もシンプルになったとみなすことができる
477デフォルトの名無しさん
2017/07/02(日) 01:36:42.12ID:yqVk05l0
ほらもう、プログラムの美的センスがまるでないでしょ

>無駄がないとかシンプルとはどういうことか?というと
>それは殆どの場合単語数が少ないことを意味してる

大体において、ソフトウェアの可読性について考えたとき
そのほとんどは設計に依存していると考える人は多いっつーか
まぁ普通の感覚であるところだけど
じゃあなるべく素晴らしい設計をしようって意気込んだ時
「できるだけ単語数を減らせるような設計にしよう」
なんてこと考える奴居るのかね
そんなことがシンプルさの基準になるんかね
これはコードレベルでも同じことだろう
と、俺は思っているわけ
478デフォルトの名無しさん
2017/07/02(日) 01:39:30.83ID:yqVk05l0
>4単語が3単語になったら、25%もシンプルになったとみなすことができる

なんでシンプルさの基準が単語数なのか本当に不思議な奴だ
プログラム書いたことないんじゃね?説
479デフォルトの名無しさん
2017/07/02(日) 03:26:13.52ID:0SO6fajC
>>477
> 「できるだけ単語数を減らせるような設計にしよう」
> なんてこと考える奴居るのかね

いるだろうな

言語とかライブラリの比較みてみ?

あの言語・ライブラリではこんなに面倒なコードが
たったこれだけのコード(単語数)で書けるって
話になってるから。
480デフォルトの名無しさん
2017/07/02(日) 03:29:27.16ID:0SO6fajC
>>478
> なんでシンプルさの基準が単語数なのか本当に不思議な奴だ

単語数だけじゃないけど?

それ以外の条件が同じ時。
単語数が少ないほうがシンプルなコード


それ以外の条件っていうのは、単語の長さはどちらも同程度であること
一行の文字数はどちらも同程度であること
関数の行数はどちらも同程度であること
ファイル数やクラス数や関数数はどちらも同程度であること

それ以外の条件を同じか、同程度にした時
単語数が少ないほうがシンプルなコードになる。
481デフォルトの名無しさん
2017/07/02(日) 05:05:29.89ID:mUyXxhhW
各「.」で何の型が返ってきているのか、実装を見ずとも自明になっている。

最悪でも、マウス当てただけで自明になる書き方。

これを守ってるほうが遥かに重要だわ。
482デフォルトの名無しさん
2017/07/02(日) 05:55:04.26ID:X/s5VUlf
ああもうあなたが初心者であることはよくわかったので他のスレでやってくれ
https://mevius.2ch.net/test/read.cgi/tech/1475332848/
483デフォルトの名無しさん
2017/07/02(日) 06:33:34.29ID:tl1wWlTJ
うますぎるプログラムはいけない
484デフォルトの名無しさん
2017/07/02(日) 12:23:01.69ID:Ey9UZy2f
>>461
確かにその文法欲しいな。
485デフォルトの名無しさん
2017/07/02(日) 13:05:35.53ID:NbWg8gon
>>477
同意
プログラミングの難しさは設計の難しさ
コードの美しさは設計の美しさ

それが分かっている奴は
初心者が騒ぐ観点で騒がない
真顔で黙ってる

タイプ数が少ない?よかったね
単語数が少ない?よかったねえ
486デフォルトの名無しさん
2017/07/02(日) 13:08:21.66ID:0SO6fajC
コードが美しい?よかったねえ
487デフォルトの名無しさん
2017/07/02(日) 13:49:07.69ID:27xX9ykc
>>422
改善してほしいところさ。
Ruby を使いたいのに全然使いこなせる気がしない部分をなんとかしてほしいっていう要望は悪口なのか?
いや、ユーザーたちは本当にクソだと思わずに使ってんの?
488デフォルトの名無しさん
2017/07/02(日) 17:59:14.19ID:NbWg8gon
既存の言語が気に入らないんなら
自分で作ってみればいいんじゃね?
クソじゃない言語とやらを
489デフォルトの名無しさん
2017/07/02(日) 18:07:42.30ID:IGa4njyh
>>487
使ってて言うのならまだしも、10年使ってない人間が言ってもそりゃ悪口にしか聞こえないだろうよ
しかも10年使ってないのにRubyスレを覗いてるという粘着性の高さ
490デフォルトの名無しさん
2017/07/02(日) 21:49:13.80ID:19kDKEGS
>>487
Haskell良いぞぉ~。
491デフォルトの名無しさん
2017/07/02(日) 22:48:36.18ID:ynDhLM7Z
Java + Groovy = Kotlin

Groovy == Ruby

つまり、Kotlin は、Ruby, Groovy に静的型チェックを付けたもの。
型チェックがあるから面倒くさいが、型推論もある

または、Java に関数型を付けたものとも言える
492デフォルトの名無しさん
2017/07/02(日) 22:51:40.39ID:WUsDB0eH
>>491
使ったことないでしょ君
493デフォルトの名無しさん
2017/07/03(月) 00:51:18.19ID:6nx2OSAK
>>461
>デフォルトでindexを持って
それは思う

「with_index」って冗長だし
eachでもデフォで持ってて欲しい
494デフォルトの名無しさん
2017/07/03(月) 01:32:13.92ID:95u0vCaW
デフォでindex持ってたらそれこそ冗長じゃないの
495デフォルトの名無しさん
2017/07/03(月) 01:33:52.97ID:NVKo/d7Z
>>494
冗長であるとはどういうこと?
496デフォルトの名無しさん
2017/07/03(月) 03:30:38.10ID:6nx2OSAK
>>494
たしかに記述が冗長か構成が冗長かだけど別に良くね
イテレータがインデックス持っててもおかしくない

配列はデフォで配列の長さ分かるじゃん
そんなようなもん
497デフォルトの名無しさん
2017/07/03(月) 03:42:56.46ID:2SpTAV0H
構成が冗長ってどういうことだろう?
普通、冗長ってそういう意味に使わないよね?
498デフォルトの名無しさん
2017/07/03(月) 10:06:01.55ID:looyCaxt
>>493
each_with_index は素の each に比べて 3~4 割遅い。
each のデフォルトで index を持つよりは、遅くても index が使いたいときに明示するという使い方の方がリーズナブルだと思うけど。
499デフォルトの名無しさん
2017/07/03(月) 10:29:47.39ID:edaN+zHQ
でもそういう使い分けこそ、まつもとさんに言わせればムダなわけだし
あのひとは機械にできることはすべて機械にやらせるべし、って言ってるからね
コンパイラはインデックスを必要としているかどうか、判断できるわけだから
勝手に使い分けてくれればよいんじゃね?
てことでRubyを静的型にしてオーバーロードで解決すればよいだろう
静的型にするとコンパイル時に型チェックをさせることができるし
最適化もかけやすくなるし、入力補完との相性もよい
機械で出来ることがどんどん増えるから
まつもとさんの機械にできることは~の考えによく合ってるね
500デフォルトの名無しさん
2017/07/03(月) 11:00:51.38ID:looyCaxt
>>499

> あのひとは機械にできることはすべて機械にやらせるべし、って言ってるからね
発言を自分に都合よく拡大解釈してない?

> コンパイラはインデックスを必要としているかどうか、判断できるわけだから
あなたの脳内のコンパイラはそれができるみたいだけど、
現状のMRIにその機能は無いよ。

> てことでRubyを静的型にしてオーバーロードで解決すればよいだろう
> 静的型にするとコンパイル時に型チェックをさせることができるし
> 最適化もかけやすくなるし、入力補完との相性もよい
機械で出来ることがどんどん増えるから

現時点で解決したいならCrystal使ったほうがいいよ。
変数の型を変えると言う言語の根幹に影響する変更が受け入れられるとは思わないけど、あなたがそんなに強く望むのならコミュニティに参加して意見が通るほどの功績を積むのが最短の道。
501デフォルトの名無しさん
2017/07/03(月) 20:57:22.46ID:91Pqu4Id
>>500
久々に普通な常識を元にしたレスを見た
502デフォルトの名無しさん
2017/07/03(月) 23:47:51.07ID:7Hia1uWl
まあ別にeachにインデックスを渡してても良かったと思うけどね
(3..9).each_with_index {|e| p e }
503デフォルトの名無しさん
2017/07/04(火) 04:47:02.02ID:nYPV9UDZ
つーかeach_with_indexが長いから
each_iとかで良かったんじゃね?
極端な省略だけどto_iとかもあるから
504デフォルトの名無しさん
2017/07/04(火) 10:42:41.42ID:olJiM2Cb
オブジェクト指向なんだからオブジェクトによって振る舞いが変わればよくね?
なんでこっちで使い分けなきゃならんの?
505デフォルトの名無しさん
2017/07/04(火) 11:11:52.06ID:XKRg/8mz
最初に each_with_index つくったのがいまとなっては浅はか
もしかしたら当時 Enumerator がなかったんかもしれんけど
506デフォルトの名無しさん
2017/07/04(火) 12:27:20.90ID:FYa81knm
それとは別でeach.with_indexもあるって言うね。。。
507デフォルトの名無しさん
2017/07/04(火) 12:29:22.36ID:jC9x4mB4
JavaScriptみたいにcallback関数(ブロック)の引数の数で
挙動を変えられるようにできたら良いんじゃね?

つまり

[1,2,3].map(v => v) だったらインデックスなしのコードが実行されて
[1,2,3].map((v,i) => i + ':' + v) だったらwith_index相当
508デフォルトの名無しさん
2017/07/04(火) 12:36:39.44ID:Qa2xT13J
話をぶった切るけど

Rubyで人工知能、それもワトソンのクローンを作りたいんだけど
Ruby界隈ではどうやって人を集めたら良い?
成果としてRubyの人工研究関連の書籍がだせるし、出来上がったソフトかそのサポートでビジネス出来る可能性あるし、何かの縁で研究関連の所と一緒に仕事できるかもしれないし、政経的な所に話を持っていける実績つくしで、
良いことばかりだからやってみたいんだけど

基本、金は出したくないけど、Rubyで大きな事がやりたい
509デフォルトの名無しさん
2017/07/04(火) 12:37:00.52ID:XKRg/8mz
>>506
流れに逆らうけど勝手にindex乗るのはきもい
Enumerator#with_index
のみならよかったとおもってる
510507
2017/07/04(火) 12:40:29.48ID:jC9x4mB4
補足しておくとJavaScriptは

function foo() {}
function bar(i) {}
function baz(i,j) {}

foo.length => 0
bar.length => 1
baz.length => 2
のように関数定義の引数の数が取得できる

const hoge = (i) => i+1
hoge.length => 1
アロー関数でも使える

function map(callback) { console.log(callback.length + ' arguments') } みたいにしておくと

map(i => i+1) => 1 arguments
map((i, j) => i+1) => 2 arguments
map((i, j, k) => i+1) => 3 arguments
みたいに関数の中で、コールバック関数の引数の数で処理を変更することができる
511デフォルトの名無しさん
2017/07/04(火) 12:40:38.40ID:Fv1Dj8Gj
>>508
人は金に群がるから、その性質を利用して人を集めるが良し。

ただし、若い人は、やり甲斐とか求める人も居るから、うまく説得
するのも良し。
512デフォルトの名無しさん
2017/07/04(火) 12:42:55.91ID:Qa2xT13J
ワトソンの解説みたいなのをRubyでコード実装して試す本、
ってのなら割と興味もたれて売れると思うんだよ
どうかな?
513デフォルトの名無しさん
2017/07/04(火) 12:43:23.19ID:Fv1Dj8Gj
>>508
ワトソンは厳密にはAIでは無い。
人口無能ってやつだ。基本、失敗した技術。
マーケティング的に成功している。
クイズの回答をさせるのとか、いかにも考えて居る風に装って、
実は探索を行うのだ。
514デフォルトの名無しさん
2017/07/04(火) 12:44:13.45ID:Fv1Dj8Gj
>>512
Rubyで作る人工無脳、って本があったはず。
515デフォルトの名無しさん
2017/07/04(火) 12:45:12.42ID:Fv1Dj8Gj
>>514
>Rubyで作る人工無脳
はじめてのAIプログラミング―C言語で作る人工知能と人工無能

こんなのもある。
516デフォルトの名無しさん
2017/07/04(火) 12:47:14.56ID:Qa2xT13J
しってるしってる
だからワトソンのクローンをRubyでつくるんだよ

で、あの人工無能のどこに深層学習やら何やらの技術が使われてるかRuby使って解説する本を出すんだよ
517デフォルトの名無しさん
2017/07/04(火) 12:47:34.81ID:jC9x4mB4
>>508
ワトソンよく知らないけど、これが本当なら泥臭いソフトだと思うわ
https://wirelesswire.jp/2016/11/57683/

> しかし、それは失望と呼ぶしかないものでした。
>  WatsonのAPIとして提供されているものは、「自然言語分類」
> 「検索およびランク付け」「文書変換」「会話」「音声認識」
> 「音声合成」といったもので、これは基本的にはディープラーニングとは
> 無関係な、既存技術の寄せ集めに過ぎません。もっというと、
> Watsonを有名にしたはずの、クイズに正解する機能すらありません。
> 少なくとも汎用的は皆無です。

人工無能でも膨大なデータを投入して、ちゃんとした
検索エンジンを使えば、それなりに使えるものができる。
みたいな認識。
518デフォルトの名無しさん
2017/07/04(火) 12:47:46.71ID:Fv1Dj8Gj
>>512
ontrogy、オントロジーってのを学ぶのがよろしい。
AI冬の時代ってのがあって、ontrogyを追求した結果、だめだぁー、となって冬の時代に突入した。
519デフォルトの名無しさん
2017/07/04(火) 12:51:53.36ID:jC9x4mB4
ワトソンは人工知能ではない
だが商業的には成功している
人工知能ではないが使える技術はある
使える技術=検索エンジン

↓ってことでこれなw

本当に必要ものは人工知能ではなくて検索エンジン [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498937148/

検索エンジンを求めている客に
人工知能ですよという言葉で近づいて
検索エンジンを売る商売w
520デフォルトの名無しさん
2017/07/04(火) 12:54:36.48ID:2/r2iAfu
>>510
引数の数は取得できるし、この話はそういうことじゃなくて、引数の渡し方の問題
521デフォルトの名無しさん
2017/07/04(火) 12:55:29.02ID:Qa2xT13J
先ずはワトソンを、組織的かつ学術的に解析するために、
資料集めたり研究者に聞きにいったりする必要があるんだけど、
一人でやるのとは違うから会社みたいに事務というか書類や議事といった形式をまとめないといけない

で、Rubyでやるわけだから誰かruby界隈での人の集め方知っているかな?って思いでレスしたんだ
出版社さんあたりが絡んでくれると、バックボーンができるから(確実に出版にまで漕ぎ着けられるから)うれしいんだけど
522デフォルトの名無しさん
2017/07/04(火) 12:57:14.60ID:Fv1Dj8Gj
人工知能とは、Neural Net、しかも学習済みのNeural Net(スペル自信なし)なのだ。

NNの構造に、自己学習、つまり入力から入力を出力するNNを取り入れて居るところに、昨今のNNのbreak throughがある。

この認識でOK?エロい人?
523デフォルトの名無しさん
2017/07/04(火) 12:59:01.56ID:Fv1Dj8Gj
>>521
大学の図書室へ行ってまずは、文献調査するのが良いでしょう。
会社も交通費出してくれるでしょう。

少なくとも、二百人位の俺の会社は、文献調査に金出してくれるよ。
524デフォルトの名無しさん
2017/07/04(火) 13:01:25.57ID:jC9x4mB4
>>520
mapはデフォルトでインデックスあり(with_index相当)であればいいのにって話じゃないの?

そしたらwith_indexは遅いって話が出たから、
ブロックの引数を見て、indexを参照しているときだけ
with_index相当にすれば、速度は遅くならないって話をしてるんだけど
525デフォルトの名無しさん
2017/07/04(火) 13:02:50.26ID:Fv1Dj8Gj
>>521
あんたが、どういう組織に属し、これまでどの様な実績を積んできたか、知らんが、出版社に飛び込みで、話しをしに行ってみれば!

多分、鼻で笑われる。けど、それも良い経験だよ。
526デフォルトの名無しさん
2017/07/04(火) 13:03:01.58ID:Qa2xT13J
そもそも人工知能研究ってその当代の計算機性能で出来る、自動で組み合わせて問題を解く研究なんだよ
でも計算機性能で無限じゃないからできることには制限がある
だから人の手等をつかって計算量を減らしたり人手で統計を用意したりして、計算機性能の低さをカバーしてきた
それが計算機性能があがっていきできる事が増えてきた、というのが現在
ワトソンでクイズに答えられるようにまなった

人工知能研究の成果で出来た物は本来はもう人工知能とは呼ばないんだけど、
マーケティング用語というか通りが良いから人工知能ってつけてるわけなんだ
527デフォルトの名無しさん
2017/07/04(火) 13:13:51.50ID:1Tk0DRaF
ID変えてネガキャンする流れからは変えられたみたいだけど今度は人工知能に噛み付きだしたか
そんなに噛み付いて荒らすだけならrubyスレにくるな
rubyの興隆が気にくわないとか知ったことではない
528デフォルトの名無しさん
2017/07/04(火) 13:26:47.51ID:2/r2iAfu
>>524
rubyでeachの速度なんて気にする人はwhile使うからそんなこと考えなくていいいよ
529デフォルトの名無しさん
2017/07/04(火) 13:29:09.59ID:Qa2xT13J
Rubyで人工知能って書籍はすでにいくつかあるけど、
Rubyでワトソンを解説するってのは凄く面白いと思う
いままでワトソンの資料を個人的に集めて見てきたけど、
ワトソンをRubyで誰でも作れるようになれば、これってrailsの次のRubyブームにならない?
530デフォルトの名無しさん
2017/07/04(火) 13:39:30.76ID:jC9x4mB4
>>528
俺もwith_indexなんかやめてJavaScriptみたいに
map(やそれに類するもの)は全てインデックスがあればいいと思ってるよ。
速度よりもシンプルさ、可読性のほうが重要
531デフォルトの名無しさん
2017/07/04(火) 13:40:58.31ID:Qa2xT13J
深層学習はPythonが有名だけど、
みんながみんな深層学習じゃなくてワトソンのような、技術そのものじゃなくて実用できるものを作りたいんだと思う
だったらRubyで大元の部分をつくっちゃえば良くない?って考えなんだけど
532デフォルトの名無しさん
2017/07/04(火) 13:54:58.37ID:Fv1Dj8Gj
昨日と同じく、眠くなってきた。
カフェインを摂取した。
533デフォルトの名無しさん
2017/07/04(火) 14:07:04.87ID:jC9x4mB4
>>531
そうするとRubyで?ことになるんだけどな。

なんでかっていうと、ワトソンみたい物を作る時、
「自然言語分類」にはどのライブラリを使うか?
「検索及びランク付け」にはどのライブラリを使うか?
「文書検索」には略
「会話」には略
「音声認識」には略
「音声合成」には略

これらのライブラリをRubyで再実装するわけじゃあるまい?
再実装するならRubyで作るって話でいいけど
そうでないなら何を組み合わせるか?って話で
検索エンジンであればSolrやElasticsearchを使いましょう。
とかになるだろうし、

Rubyで作るというよりか、既存のオープンソースの何かを使って
システムを構成しましょうって話になると思うよ。

Rubyで大本の部分を作るんじゃなくて、大本の部分はあるから
Rubyでそれらをつなぎましょう程度じゃね?
534デフォルトの名無しさん
2017/07/04(火) 15:09:51.34ID:Qa2xT13J
深層学習という技術そのものにおいて相も変わらずPythonは有力な一つの候補だし、ネイティブな所は相も変わらずC/C++で書かれたライブラリがあるわけだけど、
(大勢の人がワトソンクローンを理解、組めるように)Rubyなら(コードを)書きやすい、書き換えやすい、(個人的に)図示しやすい
だからRubyで
という話なんだ

ライブラリの選択どうするの?本の構成どうするの?細部をどうするの?ってのは紙面に依るとしか言えない
ページをだいたいこのぐらい見積もるから、こういう構成で行きましょう、ここはこういう形で行きましょう、というのが一般的な普通の流れ
ページが無限ならそれこそRubyの内部の仕組みから全て書けるわけだけど、残念ながらページは有限、でもって何ページになるのかも未定の状態
要はページ数によって内容がダイナミックに変わってしまうという事
それに対して、ページ数やら構成を考えるのに、判断の元となるものが必要となる
個人で書ける本ならその人の持ってるあんちょこでも別段かまわないんだけど、じゃあ複数人でっとなった場合はその個人一人のあんちょこじゃ問題がある(「それって結局、君の場合でしょ?」で終わってしまう)
だからこそ決め打ちでは語れないし、判断の元になるものを"公"に"形式"をとって、(誌面に載るかどうかはおいて置いて)網羅的に準備しなければならないわけなんだ
決め打ちしてそれに基づいて必要とする資料だけを集めて済むなら万々歳なんだけど、そうはいかないんだ

で、Rubyを基本とするからRubyできてもらわなければ困る
だからRuby界隈での実動者が私を含めて必要になるわけなんだよ

自前で用意するものが出てくるかもしれないという話は、当然だけど結局は誌面やら規模やらで判断される
535デフォルトの名無しさん
2017/07/04(火) 15:10:33.91ID:A9sYzzwp
NIH症候群にかかるのは企業の要職ばかりではない
フルスクラッチネイティブではない外部ライブラリ拡張ライブラリを「正しくない」と考えてしまうことは…どうしてもある
優れた使い心地のラッパーを作るということは元APIと主言語とUIのすべての理解と研究が必要なのだからもっともっと技術的に誇っていいのだけどもね
536デフォルトの名無しさん
2017/07/04(火) 15:13:59.53ID:Qa2xT13J
やっぱりいつの時代も本を書く上ではページ数が全てだよ
537デフォルトの名無しさん
2017/07/04(火) 15:18:01.70ID:JdC3mg/z
イテレータの美点は
今までつきまとってきた添え字文化を切り離したとこにあるんだよ
最大サイズ、インデックスの準備、インデックス操作、このへんは本質的じゃないよね
我々がしたいのはホントは、集まってるオブジェクト一個一個を触りたいだけだよねっていう

そのへんわきまえてるのがrubyだと思う
インデックスがデフォで付いてたりするのは原始人じみてる
538デフォルトの名無しさん
2017/07/04(火) 15:32:22.71ID:Fv1Dj8Gj
>>537
なるほど!
初めてeachを見た時、面食らったのを思い出した。
539デフォルトの名無しさん
2017/07/04(火) 17:46:25.87ID:nYPV9UDZ
>>508
IBMがワトソンにどれだけ投資したかという話
タダで同じものを作るとは虫が良すぎる
540デフォルトの名無しさん
2017/07/04(火) 17:48:12.89ID:nYPV9UDZ
>>513
ワトソンは人工知能でしょ

そこらへんのボットは人工無能だけど
ワトソンはクイズに答えたり
病気の治療見つけたりして有能だから
「無能」じゃないでしょ?
541デフォルトの名無しさん
2017/07/04(火) 17:50:26.31ID:nYPV9UDZ
>>522
ニューラルネットだけが人工知能じゃないよ
NN系のディープラーニングの
取り上げられ方が目立つってだけで
定義にしちゃうのはただのミーハー
542デフォルトの名無しさん
2017/07/04(火) 17:52:57.98ID:nYPV9UDZ
>>521
人を集める、特に企業と絡むっていうのは
先に一部でも成果を公開しないと難しい
向こう側にメリットがないでしょ?
543デフォルトの名無しさん
2017/07/04(火) 17:57:26.81ID:nYPV9UDZ
>>529
>ワトソンをRubyで誰でも作れるようになれば
無理無理

誰でもワトソンは無理
誰でもボットなら可能

Rails本体を誰でも作るのは無理だろ
Railsを利用してブログを作るとかなら可能

だからAPIを使ってボットを作るみたいのなら可能
544デフォルトの名無しさん
2017/07/04(火) 17:58:01.46ID:8gzuv+lo
「俺がRubyを使いたいから」で金が集まると本気で思ってるのかな
まあ国内技術を使うことが重要であるとか言ってうまく騙せば公的機関から引き出せるかもしれないけど
君のやろうとしていることは本質的には不必要なガラパゴス化を招き日本の衰退を加速させるだけの国賊行為であることを忘れないように
545デフォルトの名無しさん
2017/07/04(火) 18:10:32.16ID:jC9x4mB4
>>537
インデックスそのものと、インデックスを使ったループは別だと思うよ。

ハッシュのmapでキーが取れるように、
配列の場合はキーの代わりにインデックスってだけだと思う。

キーとインデックスって本質的には違いはないでしょ?
546デフォルトの名無しさん
2017/07/04(火) 18:13:20.70ID:jC9x4mB4
>>543
誰でもワトソンを作るは無理でも、
誰でも既存のオープンソースを繰り合わせて
ワトソン相当を作ることは可能だよ。

ただクイズ番組とかワトソンの成果っていうのは
ワトソンというソフトよりも、大量のデータを投入させた所にあるので、
仮にワトソンそのものを入手したとしても、クイズ番組優勝とかは無理だよ
膨大なデータをひたすら入力する地道な作業が必要
547デフォルトの名無しさん
2017/07/04(火) 18:22:23.28ID:nYPV9UDZ
>>546
>ワトソン相当を作ることは可能だよ
甘く見過ぎ
そんな簡単ならIBMより先にもっとできてた

>膨大なデータをひたすら入力する地道な作業が必要
それもワトソンのうちなんじゃないの?

ゲームからデータ抜いたらゲームじゃない
知能から知識抜いたら知能じゃない
548デフォルトの名無しさん
2017/07/04(火) 18:24:30.73ID:8gzuv+lo
>>547
ワトソンは知識はユーザーが与えるんだよ
単なる検索エンジンと思えばいい
549デフォルトの名無しさん
2017/07/04(火) 18:25:37.93ID:Qa2xT13J
>>543
Rubyでワトソンを解説ってのがスッポ抜けてるけど大事なところだよ
550デフォルトの名無しさん
2017/07/04(火) 18:26:26.94ID:nYPV9UDZ
>>548
ワトソンはたんなる検索エンジンじゃない
仕組みが似てる部分はあるけど
たんなる検索エンジンはクイズに答えられない

知識の与え方と引き出し方も
エキスパートシステムのうち
そこをすごく甘く見てる
551デフォルトの名無しさん
2017/07/04(火) 18:27:32.37ID:1Tk0DRaF
ネガキャンが人工知能に噛み付いてくたおかげでスレがいくらか平和になったな
相変わらずうざいけど
552デフォルトの名無しさん
2017/07/04(火) 18:32:42.18ID:nYPV9UDZ
>>549
ワトソンは無理だから絵に描いた餅だよ

Rubyで人工無能みたいな本はあるし
その辺のラインが現実的だと思う
553デフォルトの名無しさん
2017/07/04(火) 18:38:48.19ID:Qa2xT13J
ワトソンの解説をRubyのコードをつかって行うって事が重要なのに
ってなんか話が噛み合わないなと思ったら単にレスを適当にしか読んでなかったのか

納得
554デフォルトの名無しさん
2017/07/04(火) 18:41:41.93ID:jC9x4mB4
>>547
> >膨大なデータをひたすら入力する地道な作業が必要
> それもワトソンのうちなんじゃないの?

そこに一般の人が考える人工知能の違いがあるんだよな。
大変な仕事をコンピュータが自動でやってくれるのと同じように考えてしまう。

人工知能は自動で知識をあつめてくれるわけじゃない。

コンピュータが利用できる形にデータ化されているものであれば
それを解析するのは得意だけど、そうなってないものを
データ化する作業っていうのは人間がやるしか無い。
555デフォルトの名無しさん
2017/07/04(火) 18:45:16.48ID:nYPV9UDZ
>>553
あのね

WindowsみたいなOS、Googleみたいな検索エンジン、
作ったら大もうけできるのに何で寡占されてると思う?

そこまで行かなくてもRubyみたいな言語作ったら
解説本くらいは書けるだろうけど
Rubyと同じくらい普及してる日本発の言語はないよね?

なんでワトソンなら自分にもできると思っちゃうの?
556デフォルトの名無しさん
2017/07/04(火) 18:47:18.87ID:nYPV9UDZ
>>554
違う違う

データを全自動で集めると思ってるわけじゃない
その「データ化する作業」も含めてワトソンでしょって言ってるの
557デフォルトの名無しさん
2017/07/04(火) 18:48:27.80ID:jC9x4mB4
>>550
> たんなる検索エンジンはクイズに答えられない

だからクイズに答えれるように人間がデータを入れるんだよ。

クイズの多くは知識問題。
例えば総理大臣の名前とか。

ありとあらゆるクイズの問題と答のペアを登録していくことで
クイズ専用のデータベースを作る。

ウェブサイトの検索エンジンがクイズに答えられないので
データベースががウェブサイトだから。
ウェブサイトは人間用の文章がほとんどなのでクイズのデータとしては適切じゃない

だからクイズに適したデータベースを作り上げる。
そういう作業を人間が行うんだよ。

それを行える人間は知能があるということになるし、
人間の知能を使ってデータベース化すれば
人工知能とやらはデータベースを検索するだけでいい。
558デフォルトの名無しさん
2017/07/04(火) 18:50:11.16ID:jC9x4mB4
>>566
> その「データ化する作業」も含めてワトソンでしょって言ってるの

人間が行う作業も含めて、ワトソンっていってる?
例えば自動車を運転する人間は、自動車の一部。みたいな
559デフォルトの名無しさん
2017/07/04(火) 18:51:28.49ID:nYPV9UDZ
>>557
それは対話UIの部分を軽視してる

たしかにエキスパートシステムも
DBの問い合わせは行うが
たんなる検索エンジンとの違いは
対話システムを備えているところで
そこが思っているほどかんたんじゃないんだな
560デフォルトの名無しさん
2017/07/04(火) 18:55:30.46ID:8gzuv+lo
IBMのビジネスモデルは基本的にパッケージ販売とSIなので、
学習済みのワトソンのAPIを提供して終わり、だとあまり意味がないわけ
IBMとしては、クソ高いパッケージとして買わせてサポートもがっつり付けてもらって、その上あわよくば下請人員まで投入して大規模案件を作りたい
だからワトソンはセルフサービスでなきゃいけないんだよ
応用として医療分野を執拗に推してるのも、医療分野はプライバシーの問題があるのでSaaSに食われにくいという面があるの
561デフォルトの名無しさん
2017/07/04(火) 18:57:49.38ID:nYPV9UDZ
>>558
たとえばRubyは標準ライブラリまで含めて
みんなRubyとして使ってるでしょ?

Rubyのコアな言語の文法だけを模倣するなら
誰でもできるかもしれないが実用に耐えない

同じようワトソンのコアな検索部分だけなら
模倣できるだろうけど実用に耐えない

ワトソンなんて検索エンジンだから簡単だよって言うのは
Rubyなんてインタプリタだから簡単だよって言ってるのと同じ
562デフォルトの名無しさん
2017/07/04(火) 19:03:28.55ID:jC9x4mB4
>>559
対話システムは難しいが、その反面間違っても
許されるシステムだから、ある意味簡単とも言える。

そもそも人間同士であっても、相手の言ってることが100%
通じるわけじゃない。言う側に問題がある場合だってあるしね

ある程度正しければ許されるシステムだから裏技が使える。
それは意味を理解しなくても、単語の重要度さえ判断できればいいんじゃないか?
ということ。人間とは違ったアプローチで実装できる。

対話システムというよりも、重要度判断システム
それでもいいんだよ。ある程度の正しさがあれば許されるからね。
563デフォルトの名無しさん
2017/07/04(火) 19:08:32.62ID:jC9x4mB4
>>560
> 学習済みのワトソンのAPIを提供して終わり、だとあまり意味がないわけ

面白い(当たり前?)のは、分野ごとに学習済みデータが存在するということ

素人(?)考えで言えば、すべての分野を学習させたスーパーワトソンを
一つだけ提供すればいいと思うかもしれないが、そうはならない。

ようは学習というのはデータベースにすぎないので、
違う業界のデータベースを混ぜて使うと、関係ないデータが
検索で引っかかるようになる、つまりノイズが多い。

そういうところを柔軟に判断してはくれないんだよね。
知能があるわけじゃなくて、単なる検索エンジンだから。
564デフォルトの名無しさん
2017/07/04(火) 19:11:35.56ID:jC9x4mB4
結局重要なのはデータベース(学習データ)であるし、
そのデータベースを作るのは人間の地道な作業で、
ワトソンっていうのは最終的には学習データ販売ビジネスになります。
565デフォルトの名無しさん
2017/07/04(火) 19:17:37.33ID:1Tk0DRaF
ID:8gzuv+lo
ID:nYPV9UDZ
ID:jC9x4mB4
この三つのIDが延々ワトソンの謎を話し合っているけど、けっして誰もワトソンの構造について説明しようとしないよな

自演かこれ
誰か団子呼んでこいよ
566デフォルトの名無しさん
2017/07/04(火) 19:21:22.51ID:jC9x4mB4
>>565
ワトソンの構造はこちら

https://wirelesswire.jp/2016/11/57683/

> サンプルのソースコードはGithubで公開されています。 
>
>  まずは、IBMが先端技術と考える、その素晴らしい
> "コグニティブコンピューティング"のソースコードを御覧ください。

データがないと何もできないってのがわかるだろう?
567デフォルトの名無しさん
2017/07/04(火) 19:24:15.28ID:nYPV9UDZ
同じ話の繰り返しになるからそろそろ切り上げたいけど
Googleなんて検索エンジンだから簡単かっていえば困難でしょ?

データを含まないデータベースの問い合わせ部分だけならできても
ネット全体の規模で検索できるから普及したわけであって

それをなんでワトソンなら自分にもできると思っちゃうのか?
っていうのが言いたい
568デフォルトの名無しさん
2017/07/04(火) 19:34:05.92ID:jC9x4mB4
まあワトソンと同等レベルのソフトウェアはできるだろう。
だけど、データベース作成の人力作業コストはどうにもならないってことだ。

データがオープンになればいいんだがねw
569デフォルトの名無しさん
2017/07/04(火) 19:41:51.75ID:1Tk0DRaF
自演あきた?
ならば良し
570デフォルトの名無しさん
2017/07/04(火) 19:58:39.76ID:olJiM2Cb
ワトソンのことはよく知らんが、>>566のリンク先のことが本当だったとしたら
あまり面白いものではないな

それはそうとして、別の観点からちょっと思うことがあって
2chで人を集めて研究して本を出版しようって発想がかなりアレなんだわな
2chで人を集めたってゲームですらまともに完成するほうが珍しいってのに
本を出版したりアプリ売って金儲けとかもうね

もし本当にそういうことがしたいんなら、本人だけで
ほぼ完成させて、デモも動いているんだけど、どうよこれ
ぐらいまでは最低でも持って行っておかないと誰も相手にしないっつーかありえないよ
そこまでやっても多分うまくいかないと思うけど

本来なら本人が優秀なら実社会で勝手に人が集まってきて勝手に輪ができて
それでどうこう、って話なんだよ
それを、なんで、2chで人集め?
って時点でもう
それもこんな人の減った末期の2chで
571デフォルトの名無しさん
2017/07/04(火) 20:06:46.34ID:1Tk0DRaF
スレチ

うせろ
572デフォルトの名無しさん
2017/07/04(火) 20:27:17.39ID:1Tk0DRaF
粘着野郎は食事か風呂のどっちかか
あいつ0時過ぎたらまたID変えてまくって何食わぬ顔で荒し行為繰り返しやがる
うぜー
573デフォルトの名無しさん
2017/07/04(火) 20:39:45.57ID:/bsbbamh
>>570
技術は面白くないが役に立つ
574デフォルトの名無しさん
2017/07/04(火) 20:44:12.57ID:KFTmH+Xw
>>508
多分Ruby使える人で人工知能に詳しい人を探すより、大学訪ねて人工知能に詳しい人にRuby教えた方が手っ取り早い。
575デフォルトの名無しさん
2017/07/04(火) 22:31:25.00ID:C0QCHaIb
ちょっと前まで何十億掛けてAIに東大の入試問題解かせて合格させようってプロジェクトがあったけど
それ以上のプロジェクトを気軽に始めようとする人って素敵☆()

壮大な目的はあるけど人集めが初心者スレなのは笑う所かなw
576デフォルトの名無しさん
2017/07/04(火) 22:44:59.86ID:KFTmH+Xw
案外そういう怖いもの知らずのが成功するから世の中分からんね。
パラボラアンテナもスパコンのけい
577デフォルトの名無しさん
2017/07/04(火) 22:46:30.79ID:KFTmH+Xw
途中で送信。。。
スパコンの京も、海外より予算少ないのに海外より性能良かった。
パラボラアンテナなんか、それで世界に広がった。
578デフォルトの名無しさん
2017/07/04(火) 22:47:49.56ID:KFTmH+Xw
フロッピーディスク、切り口で怪我をしない缶詰めetcetc...
579デフォルトの名無しさん
2017/07/04(火) 23:28:44.33ID:olJiM2Cb
まずまともな人望があったらこんなところで人集めの質問しないだろってのがあってだね
逆に一人でもやり遂げてやるぜって訳でもなさそうだし
そーゆー部分を見て、判断しよるよ、大人は
内容とか以前に
580デフォルトの名無しさん
2017/07/05(水) 05:47:53.58ID:WM8wHrYP
どうやって正答のための元となるデータを形成するか、どうやって問から正答を導く処理を行うか
この二つがワトソンにとって重要な部分なんだけど、文で色々書くよりRubyのコードで示した方がわかりやすいと思う
IDをかえて一人で書き込んでいる人のレスみてるとやっぱりそこを理解できていないみたい
581デフォルトの名無しさん
2017/07/05(水) 12:01:58.02ID:Qpg00Afa
>>428
ハトむぎ茶だっけ
582デフォルトの名無しさん
2017/07/05(水) 13:25:37.62ID:UBafGJG+
ヒヒヒヒヒ
583デフォルトの名無しさん
2017/07/05(水) 13:44:49.29ID:Qpg00Afa
っつーかむぎ茶も出所しておまいらくらいの歳になってんだな
2chに住み着いてるかもな
584デフォルトの名無しさん
2017/07/05(水) 16:49:24.95ID:ZXlk9SbS
スレの流れをぶった切って質問。
当方、数日前に
Rubyを2.1.5 -> 2.4.1へとアップグレードしたのだが、
なんかスクリプトの実行速度が3割から4割遅くなった。

実際のところ、以前の2.1.5はgcc5.3.0でソースからビルドしたブツで、
今回入れた2.4.1はgcc7.1.0(これもちょっと前に入れた)でビルドしている。

ちなみにうちの環境だとdtrace関係でminirubyが落ちるので、
configure --disable-dtraceが必要だった。(2.1.5は無い)

正直rubyが遅くなったのかgcc等他に問題があるかどうかも判らないんだが、
2.1以降の各バージョンでのベンチマークとか、
変更点で遅くなったとかの情報が集まっているサイト等、
知っていたら教えて欲しい。

ちなみにOSは32bit版FreeBSD 10.1系とかなりマイナーな環境。
585デフォルトの名無しさん
2017/07/05(水) 18:14:21.42ID:WM8wHrYP
プロファイラで旧と新それぞれまわしてどこに時間がかかってるかみてみたら?
http://blog.livedoor.jp/sonots/archives/39380434.html
586デフォルトの名無しさん
2017/07/05(水) 18:40:35.78ID:nlxiuXwv
>>584
ruby-2.4.1もgcc5でビルドして比較してみたらどう?
あるいはruby-2.1.5をgcc7で比較するとか
新しいものが常に最良とは限らないし
587デフォルトの名無しさん
2017/07/05(水) 18:54:07.87ID:nlxiuXwv
>>586
自己補足

個人的で尖りまくったものを述べるよ
以前、とあるInteger関係のベンチマークを比較した事があったけど
(速い) ruby-2.4 > (ruby-2.3, ruby-2.2) > ruby-2.0 > ruby-2.1 (遅い)
という結果になった

ゴンパイラはgcc8-devel、FreeBSD-11-AMD64上で実行
588デフォルトの名無しさん
2017/07/05(水) 20:40:32.03ID:IBgoqo2I
http://takenaka-akio.org/etc/benchmark/
どうも、40倍~200倍ぐらいは遅くなることを覚悟しないとダメ見たよ
仮に100倍遅くなるとしたら、3GHzのCPUが「30MHz」相当になるってことだから
ちょっと無視できるようなものではないね
コードの書き方を工夫するなどしても、100倍の差はなかなか埋まるものではないよな
もともと1秒で済んでいたはずの処理に100秒もかかることになるし
ここまで遅いと、ちょっとしたことが命取りになってくる
最初見積もっていたより処理に二倍の時間がかかかるようになってしまった場合
1秒が2秒になるのは1秒増えるだけだから我慢できても
100秒が200秒になるのは、追加の+100秒もは我慢できないとおもうよ
589デフォルトの名無しさん
2017/07/05(水) 21:36:48.67ID:LKhZWwoW
すまん
誰か>>588 の言っている事を翻訳してくれ
590デフォルトの名無しさん
2017/07/05(水) 21:42:41.90ID:z3CI8qH6
処理の規模によってはアルゴリズム考えないとヤヴァイぞ☆
って言ってる。
591デフォルトの名無しさん
2017/07/05(水) 21:57:18.69ID:i6JVabOm
アセンブラで書くのが絶対的正義ってことでしょ
592デフォルトの名無しさん
2017/07/05(水) 22:00:41.82ID:IBgoqo2I
二つの意味が含まれているから確かにわかりにくな

まず一つ目は、既に100倍ぐらい遅いんだから
今更、3~4割遅くなったぐらいで騒ぐほどのことじゃない
速度が欲しかったらほかの言語を使え

二つ目は、100倍も遅いということは、3.0GHzの最新CPUを使っていたとしても
実質30MHzのCPUを使っているようなものだから
ほんのちょっとしたことが命取りで、更なる3~4割もの性能ダウンは到底無視できない
考えてもみれば、100MHzのCPUが主流だったころは、本当にシビアだったとおもう
最適化最適化で、1クロック縮めるのに命を懸けている人たちもいたね
今更そういった時代に逆戻りしてしまうのはなんだかなーと思うし
速度がほしかったらほかの言語を使え

何故か同じ結論にたどり着くわけだが、Rubyではよくあること
593デフォルトの名無しさん
2017/07/05(水) 22:03:48.33ID:z3CI8qH6
昔はね。
C++でさえCからすれば遅い言われてた。
(これは理論上今でも、再利用性を得る代わりに遅くなる。C++はCの後継として、遅くなるのを最小限に抑える仕様。でも確実に遅い)
でも、CPUの進歩やコンパイラの進歩で人間が直接アセンブラ触るより速いと言われてる。
594デフォルトの名無しさん
2017/07/05(水) 22:09:10.95ID:W7p06HKZ
Railsみたいに、I/O 処理があれば、C/C++でも遅くなるから、Rubyと大差ない

一方、数学・アルゴリズム系で、I/O 処理がなければ、C/C++が断然速い
595デフォルトの名無しさん
2017/07/05(水) 22:21:10.70ID:LKhZWwoW
つまりちょっと前からいるIDを変えてトンチンカンな書き込みを続ける例の荒らしだな

失せろ、スレチだボケェ
596デフォルトの名無しさん
2017/07/05(水) 22:26:23.22ID:IBgoqo2I
>でも、CPUの進歩やコンパイラの進歩で人間が直接アセンブラ触るより速いと言われてる。

まさにその通りだ
ここでもいくつかのことが言えて

一つ目は普通にC/C++使っとくのが現状最速だろうってことと

二つ目は当時はアセンブラと比べたらC/C++ですら遅いといわれていたが
別に100倍も遅かったわけではない、ということと

三つ目は、二つ目の続きなわけだけど
アセンブラと比べてC/C++が遅いといっても100倍も遅かったわけではないんだが
CPUがあまりに遅かったからちょっとのことで騒いでいた
Rubyは3.0GHzのCPUを使っていても実質的には30MHzのCPUでプログラムを動かしているようなものだから
まるで当時のような状況、ちょっとのことが命取りな状況、ということと

四つ目は、100MHzのCPUが主流だったころ、もし100倍の性能のCPUが発売されたら
みんなそっち使うよね、ってこと
できることが全然違う、速度的には新幹線と徒歩ぐらい違う
東京から大阪へ行くのに、新幹線なら、考えうる限りの寄り道しまくっても絶対徒歩より早く着く
と、言い切れるぐらいには速度差がある、ので、コーディングで手を抜けそうだね、ってことと

五つ目は、既にC/C++の最適化は鬼のような状況で、普通の人がアセンブラで書いても
到底太刀打ちできない(SEEは別)
C/C++はアセンブラより速くなったといえるだろうし、克服したといえるし、良い選択になっているが
一方で、今現在、RubyはC/C++よりも100倍遅いという現実がある

「でも、CPUの進歩やコンパイラの進歩で
 (Rubyを使ったほうが)人間が直接C/C++を触るより速いと言われてる。」

という風な文章は成り立たない
597デフォルトの名無しさん
2017/07/05(水) 22:35:31.37ID:i6JVabOm
>>596
その代わり面倒なコードがてんこ盛りで生産性の落ち方が半端ない
そこまでの速度を要求されるコードなんてほとんどないんだから、生産性の方が重要だよね、
ってのが高級言語の考え方なんだから速度だけにフォーカスした考えは世の中の高級言語を
すべて否定するものだ
598デフォルトの名無しさん
2017/07/05(水) 22:59:13.93ID:IBgoqo2I
>>597
またいくつか言えて

>その代わり面倒なコードがてんこ盛りで生産性の落ち方が半端ない

本当にそう言えるのかどうなのか
今現在の状況で、静的型言語に比べて動的型言語の生産性がはるかに高い
と言い切れる人はいったいどれだけいるんだろうか
むしろ動的型言語のほうが生産性がない、という風潮ではないだろうか
だってここ最近新しく出てきた言語は当たり前のように静的型だし
それを売りにしている

で、これもかなり譲って、生産性は同等ぐらい、と考えるのなら
「実行速度100倍差」が重くのしかかる
3.0GHzの最新CPUを使っても30MHzと同等
ここまで遅いと、別の方向で頭を使う

C/C++が新幹線の「のぞみ」だとしたら
JavaやC#は「ひかり」ぐらいの速度、あるいはそれ以上は普通に出る
これなら同じ土俵に立っているといえるし
そのうえで生産性などを考える、これはわかる
だから俺は別に生産性etcの高級言語の考え方を否定する立場はとってない

しかしRubyの速度は「徒歩」である
こうなればまた考え方が変わってくる
599デフォルトの名無しさん
2017/07/05(水) 23:10:18.58ID:i6JVabOm
>>598
JavaだってC/C++に比べれば降級言語で速度も遅いが、普通に使われている
それはC/C++より生産性が(まだ)マシだからだ
これは静的型とか動的型とかは関係ない

つまり速度だけにフォーカスした比較は大きく間違ってるということだ
600デフォルトの名無しさん
2017/07/05(水) 23:19:57.66ID:k8UT78WG
続きは「C/C++はRubyより100倍早いスレ part24」でやってくれ
601デフォルトの名無しさん
2017/07/05(水) 23:20:10.86ID:WM8wHrYP
588ってどのレスへの返しなの?
遡って100レス程見たけどどこからも繋がっていないように見えるんだけど

こういうのはちょっと怖い
602デフォルトの名無しさん
2017/07/05(水) 23:22:21.12ID:IBgoqo2I
>>599
C/C++が新幹線の「のぞみ」だとしたら
JavaやC#は「ひかり」ぐらいの速度、あるいはそれ以上は普通に出る
これなら同じ土俵に立っているといえるし
そのうえで生産性などを考える、これはわかる
だから俺は別に生産性etcの高級言語の考え方を否定する立場はとってない

しかしRubyの速度は「徒歩」である

そのうえ、生産性が高いかどうかすら分からないというのは
>>598に書いた通り
603デフォルトの名無しさん
2017/07/05(水) 23:26:32.17ID:i6JVabOm
>>602
徒歩でも問題ない場面であれば気にしなくてもいい
そして世の中のほとんどは徒歩で問題ない

徒歩でも問題ないところに「いや新幹線が必要なんだ!」なんてのはもはや技術的な問題ではなく、
ただの思考停止
604デフォルトの名無しさん
2017/07/05(水) 23:37:18.10ID:nlxiuXwv
>>602
zlibで圧縮処理する場合、Cとrubyでどんだけ差が出るかわかる?
rubyを徒歩に例えているけど、途中で新幹線を利用してるんだぞ
605デフォルトの名無しさん
2017/07/05(水) 23:38:31.89ID:IBgoqo2I
それは「徒歩」とか「新幹線」という言葉にとらわれすぎである
これは単に、あまりにも速度差が有るということを表現するために
「徒歩」とか「新幹線」とか言っているわけで
利便性その他まで含めて比喩しているわけではないんだぞ

なおかつ、生産性が高いかどうかすら怪しいというのは>>598にも書いたし
実際世の中そういう空気になっているじゃろ

生産性が低くて速度が遅かったら後は何が残る?

もし生産性が同程度だったとしても、それならば速いほうが良いだろ
100倍も圧倒的な差があるんだから
多少非効率な書き方したっておつりがくるぞ
606デフォルトの名無しさん
2017/07/05(水) 23:40:47.70ID:VZUi/cSm
>>598
> 今現在の状況で、静的型言語に比べて動的型言語の生産性がはるかに高い
> と言い切れる人はいったいどれだけいるんだろうか

どちらかがどちらかを上回るって話じゃないからなぁ。

動的言語だと書くのが楽。型を書かなくてもいい場面が多いから
短いコードで目的を達成できる。その点で生産性が高いと言えるが、
大規模アプリでは、型が書いてないためにコードの把握に時間がかかる。

静的型言語では要所要所に型が書いてあって、記述量は増えるが
その分コードを把握しやすく、コンパイラが見つける矛盾の量も増える。


だから開発するものがどれだけの規模のコード量かで生産性が高い方が決まる。
つまり静的型言語の方が高い場合と、動的型言語の方が生産性が高いかの境目があるということ

しかしその境目がまた問題で、技術力が高い人であれば短いコードでシンプルに書くことができる。
だから境目は技術力が高い人ほど動的型言語の方が生産性が高いことを示すことになる。
607デフォルトの名無しさん
2017/07/05(水) 23:41:32.36ID:i6JVabOm
>>605
> それならば速いほうが良いだろ
別に?
徒歩5分のところに行くのに新幹線と車と自転車と徒歩とどれがいい?とか聞かれても「どれでもいいや」
って思うだけだし
608デフォルトの名無しさん
2017/07/05(水) 23:47:31.26ID:VZUi/cSm
徒歩5分のところに新幹線や車を使ったら
たいてい遅くなるぞw
609デフォルトの名無しさん
2017/07/05(水) 23:53:49.42ID:VZUi/cSm
技術力が高い人ほど動的型を好むのは
たまたまとかいうわけじゃなくて、
短く書けてしまうから「この程度の小さな規模」の
コードになってしまうことが多いからなわけだよね
610デフォルトの名無しさん
2017/07/06(木) 00:02:07.40ID:AOJFjP+S
>>607
あるコマンドかアプリか処理か、何か知らんが、何かあって
処理に5分もかかったら、対話性などというものはないし
まず使い方そのものからして考え直さなければならない
進捗ぐらいは表示したいし、アプリの構成そのものからして考えないとな
5分という時間は何もしないには長すぎるので、作業いったん中断ってところだな

これが100倍速いと3秒で終わる
3秒なら、まぁ、待てるかな
ちょっと遅いが、ギリギリ、リアルタイムな対話といえるレスポンスだな
作業は中断しないな

5分と3秒の違い、わからない?

あと、徒歩五分のコンビニに行くにしても、瞬間移動が使えるなら
俺はそういった能力、ほしいな
大は小を兼ねるというし
瞬間移動が使えることで生産性が落ちるわけでもないしな
611デフォルトの名無しさん
2017/07/06(木) 00:05:57.18ID:AOJFjP+S
まぁフォトショップでフィルタをかけるとか、なんでもよいんだけど
5分待たされるのはしんどいよ
ほんと、作業が中断しちゃう
コーヒー飲むかタバコ吸うかウンコするか

3秒ならまぁ何とかってところ
612デフォルトの名無しさん
2017/07/06(木) 00:06:41.72ID:EqEhEZ9Z
>>610
徒歩というたとえだから5分と設定しただけだよ

実際に計算だけで5分かかるような処理ならそりゃC/C++を使うだろうし、そんな処理をガンガン書く場面は
想定できないし問題ないよ
613デフォルトの名無しさん
2017/07/06(木) 00:15:20.73ID:EqEhEZ9Z
要するに徒歩5分はスクリプトで言えば1秒以内に終わる処理だね
1秒を0.01秒に縮められます!とか言われても、でも1秒で十分なんでって思うだけだしね
614デフォルトの名無しさん
2017/07/06(木) 00:22:28.74ID:hXlN8tOU
結局何を主張してるのか理解出来ねえ
rubyなんざ使い物にならねえよって>>610が言いたいのか?
同意を得たいなら他のスレで暴れろよな
615デフォルトの名無しさん
2017/07/06(木) 00:36:23.27ID:AOJFjP+S
そもそもからしておかしいんだよ
プログラムの実行速度が速すぎるのが原因で生産性が落ちることはない
聞いたこともない
大は小を兼ねるということわざが当てはまって、速すぎて困るということはない

プログラムの実行速度が速いことのトレードオフだけど、これも良くわららない状況だ
今現在はどちらかというと静的型のほうが生産性があるんじゃないか、とすら言われている
そんな状況で100倍も遅かったら、どうなるんだ?
3.0GHzのCPUでも実質的には30MHz相当

あと、静的型言語が速い傾向があるといっても、本当に誰も何もせずに速いってわけじゃなく
コンパイラが最適化を相当キバってくれているから速いわけだ
プログラマがちまちま考えなくてもコンパイラが頑張ってくれる、という方面での生産性という見方もあるし
速くなった分は余裕ができるのでプログラムを手抜きできるっていう生産性もある

また、動的型言語であっても速いのはある
例えばJSは静的型と同じ土俵に立てるぐらいに速いだろ?
これをもってしてMatzは動的型でも速度は出せるって言い張るんだけど
そのような実装を用意できてない状態でそんなこと言って何になるんだ?
616デフォルトの名無しさん
2017/07/06(木) 00:38:42.41ID:EqEhEZ9Z
>>615
> 大は小を兼ねるということわざが当てはまって、速すぎて困るということはない
別にRuby程度の速度で困ることもない場面がほとんどなので、問題はない
617デフォルトの名無しさん
2017/07/06(木) 00:39:54.73ID:DNqxUdzY
> そんな状況で100倍も遅かったら、どうなるんだ?
> 3.0GHzのCPUでも実質的には30MHz相当

その計算をすることに意味はない。
今後一切やめてくれって言いたいレベル。

現実としてその違いは、重大な問題を引き起こすかどうかで決まる。
わからないと言うならば、問題は起こってないということだ。
618デフォルトの名無しさん
2017/07/06(木) 00:43:06.60ID:DNqxUdzY
> プログラムの実行速度が速すぎるのが原因で生産性が落ちることはない

当たり前だ。実行速度と生産性は無関係だからだ。

無関係といったんだ。実行速度を速くしても生産性は落ちないとは言ってないからな。

無関係ということは、実行速度を速くすることで
 生産性が落ちる場合もあるし、
 生産性が落ちない場合もある
 生産性が上がる場合だってある
ということだ

> 大は小を兼ねるということわざが当てはまって、速すぎて困るということはない

速くするため生産性が落ちるのであれば困る。
619デフォルトの名無しさん
2017/07/06(木) 01:01:27.03ID:AOJFjP+S
Rubyが今の100倍速くなったとしたらどうなんだ?
前のままで十分だったから遅くしてくれ、戻してくれ、とはならんだろ
速いほうがいいに決まっているのに、遅くてもよいと言い張るのは
すでに普通の感覚を失ってしまっている
Ruby3.0ではどうにかネイディブスレッドを導入しようという話だが
これもどうにか実行効率を上げよう試みだ
結局速いほうが良いという話

ものすごく変な言い方をすると、Rubyが今の100倍速かったら
もっといろいろなことにRubyを使えるはずなのに
そういったことをユーザー自ら否定してしまうのは変なコミュニティーだ
「自分たちはこれでよいんだ」的な
でも1億あげるっていったら間違いなく飛びつく

速度を落としてまで動的型にしたが
それもちょっと前からどちらかというとメリット無いんじゃねと言われていて
今ではその評価もすっかり固まってしまったが
これなら何故速度を犠牲にしたのか意味がよくわからない状況
620デフォルトの名無しさん
2017/07/06(木) 01:03:39.40ID:EqEhEZ9Z
>>619
> 結局速いほうが良いという話
大事な前提条件が抜けている
「コードが変わらないならば」という条件がな
621デフォルトの名無しさん
2017/07/06(木) 01:12:20.24ID:AOJFjP+S
必ずしもコードが変わらない場合にのみ速度が速いことが歓迎される
というわけでもなかろう
処理系の実行速度が速いことには何時でも一定の価値基準がある
622デフォルトの名無しさん
2017/07/06(木) 01:13:25.30ID:EqEhEZ9Z
>>621
> Rubyが今の100倍速くなったとしたらどうなんだ?
君がこういう前提を出したんだよ?
623デフォルトの名無しさん
2017/07/06(木) 01:13:59.37ID:AOJFjP+S
周りを見渡せばRubyよりも100倍速い言語や処理系が既にあって
しかもRubyのような動的型は失敗だったんじゃないかという空気だ
624デフォルトの名無しさん
2017/07/06(木) 01:16:51.07ID:EqEhEZ9Z
>>623
君の頭の中ではそうなんだろうね
世間に出た方がいいと思うよ
625デフォルトの名無しさん
2017/07/06(木) 01:32:38.58ID:hXlN8tOU
>>623
お前が吐き出した空気じゃねえか
澱み杉
626デフォルトの名無しさん
2017/07/06(木) 07:30:15.82ID:LqVtic6r
失敗も何も動的言語は生まれた時から「動作は遅いが作るのが早くできるので素晴らしい、しかしそれゆえ脆いので長期堅牢には向かない」ときちんと認識されていた
完璧を目指していたことなど一度たりとてない
627デフォルトの名無しさん
2017/07/06(木) 09:30:16.79ID:jsnas7L+
そもそもMatzが遊びで作った言語だろ?
それをわざわざ公開してくれて
我々は彼の善意によってタダで使わせてもらってんだろ?

そのへんの間隔というか距離感というか
忘れちゃってる奴おるよな
自分のオカンに対して無限に批判するような態度の
628デフォルトの名無しさん
2017/07/06(木) 09:43:08.71ID:k46M2gqo
文句があるなら自分で言語作ればいいじゃん。
629デフォルトの名無しさん
2017/07/06(木) 10:11:36.56ID:IrPrEl9j
仇ばかり広めやがっておいたが過ぎる
630デフォルトの名無しさん
2017/07/06(木) 11:25:53.97ID:YVvleWfm
RubyでつくるRubyとかでも読もうよ
631デフォルトの名無しさん
2017/07/06(木) 12:15:37.69ID:OTGRz3s4
リファクタリングのRuby版読むと、
Rubyのコードが如何に解説するのに向いているかわかる

こんな感じのRubyのコード使った解説本はもっと増えて良い
632デフォルトの名無しさん
2017/07/06(木) 12:41:45.00ID:JvJmzwJo
とりあえず
> 今現在はどちらかというと静的型のほうが生産性があるんじゃないか、とすら言われている
このソースが欲しいとこだな
まーこいつの妄想だろうが
633デフォルトの名無しさん
2017/07/06(木) 13:20:06.18ID:YVvleWfm
リファクタリングするときとかIDEの力を借りれば
静的のほうが生産性が上がるかもとは
散々言われてきたが?
634デフォルトの名無しさん
2017/07/06(木) 13:39:42.81ID:tNWdrmh7
>>631
それ暗にRubyはクソコードはが多いとdisられてるんじゃね
635デフォルトの名無しさん
2017/07/06(木) 22:14:31.93ID:DNqxUdzY
>>619
> Rubyが今の100倍速くなったとしたらどうなんだ?
速い代わりに、C++言語みたいになったりしたら
戻してくれって言うよ。生産性が落ちるんだから当たり前じゃないかw
636デフォルトの名無しさん
2017/07/06(木) 22:19:42.92ID:DNqxUdzY
プログラム言語っていうのは道具だからね。(その言語の開発者以外は)

一般的な道具で考えてみればわかる
速いけど不便。少し遅いけど便利。

遅くても実用上問題なければ、便利な方を
取ることの方が多いだろう。

誰もがF1カーに乗るわけじゃあるまいしw
637デフォルトの名無しさん
2017/07/06(木) 23:14:22.78ID:jsnas7L+
既存の言語に文句いうやつが
その言語以上の素晴らしい言語を作った例は皆無

あるとしたら…それこそperlに対するrubyくらいのもん
638デフォルトの名無しさん
2017/07/06(木) 23:19:58.00ID:OTGRz3s4
633 :
デフォルトの名無しさん
2017/07/06(木) 13:20:06.18 ID:YVvleWfm
リファクタリングするときとかIDEの力を借りれば
静的のほうが生産性が上がるかもとは
散々言われてきたが?
634 :
デフォルトの名無しさん
2017/07/06(木) 13:39:42.81 ID:tNWdrmh7
>>631
それ暗にRubyはクソコードはが多いとdisられてるんじゃね

流石にこれは気持ちわる過ぎる
639デフォルトの名無しさん
2017/07/06(木) 23:24:14.70ID:DNqxUdzY
>>633
> リファクタリングするときとかIDEの力を借りれば
> 静的のほうが生産性が上がるかもとは

大規模システムの場合はそうだけど、
小規模の場合は大差ない。

そして技術力が高い人ほど、システムを小規模に保つことができる。

技術力が高い人ほど動的の方が生産性が高い場合が多くなる
640デフォルトの名無しさん
2017/07/06(木) 23:29:32.44ID:OTGRz3s4
そんなに健常者に混じりたいのか?
641デフォルトの名無しさん
2017/07/07(金) 01:03:55.66ID:6Wd58F7c
OpenGLのgemつっこんでぐりぐり動かしてるけど、
テクスチャ関連やアニメーションモデルのデータの持ち方がいまいちピンと決まらない
その場で決めても後日、なんか手をいれなければならなくなる気がして二進も三進も

Rubyならでは冴えたやり方ってない?
642デフォルトの名無しさん
2017/07/07(金) 05:22:24.20ID:1OiH67XQ
>>596
>>593だけど、おいらのレスに乗っかって何やら面白いことになってんね。
自分で関数から何からLLで書けばそうなんだけど、LLのライブラリじゃCで書かれてること多いからね。
それにI/O多いLLお得意の文字列処理とかは>>594の言う通り大差ない。
計測した事あるけど誤差の範囲って言って良い。
小説何十冊分が1ファイルに入ったりした時に差が体感できる程度。
100冊分超えたらCや他のコンパイラ言語検討して良いと思う。
30MHZが遅いって言ってもPICとかのマイコンは4MHzとかで、それでも十分人間より速い。

Prolog勉強した時はプログラミング言語は本来こうあるべきって書いてるページあって、方向性はそうだけど、その解は絶対Prologじゃねーって思ったけども。
確かにここまでCPU速くなったなら、人間がコンピュータのアーキテクチャに合わせる必要はない。
とは言え、CPUのx86と同じ、すでにコード資産が無視出来ないんよな。。。
643デフォルトの名無しさん
2017/07/07(金) 08:48:43.90ID:ntVt91QO
バージョン上げたgccでrubyのバージョン更新したら遅くなったからgccに要因があるのかrubyに要因があるのかヒントになる情報をくれって>>584 が訊いてるのに
なぜこんなアホな話が出てくるんだ?
644デフォルトの名無しさん
2017/07/07(金) 11:01:19.92ID:ntVt91QO
晒しage
645584
2017/07/07(金) 12:15:57.82ID:de0deAJS
まあ関係ない話はおいといて…

>>585
gemの入れ直しが面倒なのでプロファイラは後回しの予定.
>>586
家のマシンだとgccの入れ替えに10時間かかるんだ……(フルビルドしてるせいだけど)
というわけで手元にソースがあった3種類のrubyをgcc7.1.0でビルドし直して入れ替えて
問題のスクリプトをtimeで計ってみた。

ruby2.1.2 2.0秒 -> ruby2.3.1 2.4秒 -> ruby2.4.1 2.8秒
もちろんioとか抜いたuser時間ね。

修正履歴をざっと調べたところ
Bignum(だっけ?とにかくでかい整数)周りの修正が影響しているんじゃないかと現在考慮中。
646デフォルトの名無しさん
2017/07/07(金) 12:35:48.56ID:6Wd58F7c
二日前の話をなぜ今に?

もしかして情報がもっと欲しいの?
だったらrubyのソースコードを読むしか無いよ
647584
2017/07/07(金) 14:11:00.10ID:de0deAJS
>>646
あーいや、情報についてはあんまり期待してない。

もともと
「実際に体感できるレベルで速度低下してるが適当にググっても情報が無い」+
「gccの入れ替え面倒というか今週暑過ぎ」
というのが質問の理由だったからね.

実際幾つか他の適当なスクリプトでも実行時間を計測して比較してみたところ、
ここまで大きな速度低下は無かったというのもあって今では少し安心してる。
入れ替え後最初に実行したスクリプトで地雷を踏んだのは運が悪かった。
648デフォルトの名無しさん
2017/07/07(金) 14:38:37.78ID:6Wd58F7c
ますますわからない
何を求めての書き込みだったの?
649デフォルトの名無しさん
2017/07/08(土) 13:12:39.97ID:3StuOUHl
>>619
>>635
CとのインターフェースならPythonの方が良いよ
650デフォルトの名無しさん
2017/07/08(土) 13:18:08.48ID:lhqNZaXL
いつまその話引っ張るつもりだよ
651デフォルトの名無しさん
2017/07/08(土) 13:19:15.07ID:lhqNZaXL
いつまでその話引っ張るつもりだよ
652デフォルトの名無しさん
2017/07/08(土) 14:06:59.57ID:fcf9I7tU
これをRubyで解きなさい
普通のパズルではない「正規表現クロスワード」がBBCラジオに登場 - GIGAZINE
http://gigazine.net/news/20170707-regular-expression-puzzle/
653デフォルトの名無しさん
2017/07/08(土) 15:45:07.53ID:FfZt44/H
>>645
まさか、Fixnum関係ではないよなあ?
ペナルティがないこともIntegerに統合した理由だろうと思ってたんだけど。
654デフォルトの名無しさん
2017/07/11(火) 01:41:06.03ID:MbVhLJ6O
railsスレから移動してきました。

def index
UNIXSocket.open('/tmp/myapp.sock') do |sock|
sock.write(params.to_query)
rt = sock.readline
render text: rt
end
end

みたいなことがしたいのですが、どうも
rt = sock.readline
のところで処理が止まってしまうように見えています。
renderの部分まで処理を進めるにはどのような書き方をすればよいのでしょうか。
教えて頂けますと嬉しいです。
655デフォルトの名無しさん
2017/07/11(火) 02:00:52.46ID:7uNv3Rqd
sock.write(params.to_query)
rt = sock.readline

書き込んで、読み込む?
矛盾してないか?
読み書き両用なのか?

もし両用なら、相手からの返事を待っているのだろう
656デフォルトの名無しさん
2017/07/11(火) 02:19:22.94ID:MbVhLJ6O
レスありがとうございます。
やりたいこととしては、socket.writeでソケットにクエリを投げて
通信先で処理を行ってレスポンスが返ってくるので、
それを sock.readline で読み取るという双方向な感じのことです。

通信先のプロセスをkillするとなぜか処理が進んで、rtに正しいデータが格納され、
render まで処理が進むのですが・・アドバイスいただけると幸いです。
657デフォルトの名無しさん
2017/07/11(火) 02:34:39.39ID:3Ue5zlRS
>>656
flushしてみるとか?
658デフォルトの名無しさん
2017/07/11(火) 02:46:23.42ID:MbVhLJ6O
レスありがとうございます。
すみません自己解決しました。

def index
s = UNIXSocket.new("/tmp/myapp.sock")
s.send(params.to_query, 20)
render text: s.recv(20)
end

こっちの方の書き方を試してみたところ、うまくいきました。(20は適当な数値)
何がどう違うのかよくわからないですが・・
659デフォルトの名無しさん
2017/07/11(火) 08:15:25.04ID:qelYWZQu
>>658
656ではないけど確認。
flushはダメだった?
660デフォルトの名無しさん
2017/07/11(火) 08:15:55.92ID:qelYWZQu
657の間違い
661デフォルトの名無しさん
2017/07/11(火) 19:44:38.95ID:3Ue5zlRS
>>658
sendで使っている数値の20だけど、第二引数は flags になってる

mingw32(windows)だと (MSG_MAXIOVLEN | MSG_DONTROUTE)
linuxだと (MSG_PROBE | MSG_DONTROUTE)
FreeBSDだと (MSG_TRUNC | MSG_DONTROUTE)

を意味することになり、あなたの意図するところじゃないはず

recvの方は第一引数で最大20バイトの読み込みを意味するけど、
readlineは改行まで読み込むメソッドだから、振る舞い方に違いがある


一つの通信単位が任意長で、改行で終わらせたいなら
s.send(params.to_query, 20) を s.puts(params.to_query); s.flush

s.recv(20) を s.readline じゃだめかな?

もっとも params.to_query に改行が含まれているとうまく行かないけれど
662デフォルトの名無しさん
2017/07/12(水) 06:30:11.01ID:HQm2gXhD
バッファリングされているから、flush で出力するのか
663デフォルトの名無しさん
2017/07/12(水) 10:12:13.87ID:z1EDa6/Q
>>661
そのあたりは、通信先のkillで挙動が変わらないのでは?
どうせ真のkillではないんだろうし、flushがありがちじゃない?
664デフォルトの名無しさん
2017/07/13(木) 10:59:11.29ID:0lfkoIF4
エラーの時のスタックトレースがコンソールに大量のログが出るのを減らすことってできませんか?
665デフォルトの名無しさん
2017/07/13(木) 11:41:39.10ID:DhWBmBwc
logger使え
666デフォルトの名無しさん
2017/07/13(木) 12:17:59.84ID:FtHnJB7n
エラーなんだから仕方なかろうよ
もしプロダクションレベルであんまり内部パスとか詳らかにしたくないというのなら全体をrescueするしかないね
begin

# main_thread()

rescue RuntimeError => e
warn e.message
exit(1)
end

RuntimeErrorじゃないのだったら適当に増やしとけ
667デフォルトの名無しさん
2017/07/13(木) 17:38:19.70ID:fH9gUBRZ
ruby -W0 で起動して減らなかったらどうしようもない
そういう便利オプションみたいなのはないのですわ
668デフォルトの名無しさん
2017/07/14(金) 12:23:44.38ID:M2zlfEHR
○○課
○○課○○室
○○課○○係
○○課○○室○○係
○○課○○ライン

みたいな文字列を入れたときに

[○○課]
[○○課, ○○室]
[○○課, ○○係]
[○○課, ○○室, ○○係]
[○○課, ○○ライン]

みたいに分割してくれる関数を作りたいのですが上手くいきません
いい方法はないでしょうか
669デフォルトの名無しさん
2017/07/14(金) 12:53:09.53ID:M2zlfEHR
>>668
とても下手くそなやり方だと思いますが一応できました

def my_split(str)
 arr = Array.new
 str_arr = Array.new
 arr.push 0
 str.each_char.with_index do |ch, i|
  arr.push i+1 if ch == "課".encode("windows-31j")
  arr.push i+1 if ch == "室".encode("windows-31j")
  arr.push i+1 if ch == "係".encode("windows-31j")
 end
 arr.each_with_index do |e, i|
  str_arr.push str.slice(arr[i-1]..(arr[i]-1)) unless i == 0
 end
 str_arr
end
670デフォルトの名無しさん
2017/07/14(金) 14:04:05.91ID:Oez5CIDd
>>668
def spj(s)
reg = Regexp.new("[課室係]|ライン")
a1=s.split(reg)
a2=s.scan(reg)
return a1.zip(a2).map{|x| x.join("")}
end
671デフォルトの名無しさん
2017/07/14(金) 14:48:32.40ID:JyiCltLg
>>668
"○○課○○室○○係"..scan /.*?(課|室|係|ライン)/ # => ["○○課", "○○室", "○○係"]
なお○○の部分に"課"等の文字が来てはいけない
672デフォルトの名無しさん
2017/07/14(金) 15:50:02.09ID:NNElhd0j
そーか頭も含めりゃ確かにscanだけでいいのか。ボケてるな。
673668
2017/07/14(金) 17:28:16.98ID:+o1J8cU+
>>670>>671
ありがとうございます
すごくシンプルに書けるんですね
674デフォルトの名無しさん
2017/07/14(金) 23:19:58.67ID:nq2jK5zh
>>670
おー、かっけー。

こういうのがすぐ頭に浮かぶようになりたい。
675デフォルトの名無しさん
2017/07/15(土) 00:52:30.17ID:1BB6lano
scanて文字切り出しに便利だよね
676デフォルトの名無しさん
2017/07/15(土) 16:03:05.98ID:5dwax4jd
おまえらどう書くかより何を作るかに集中しろや
677デフォルトの名無しさん
2017/07/15(土) 16:06:46.01ID:leA2r81r
>>676
エンジニアの三大美徳のひとつ、「傲慢」を否定しちゃいけません
678デフォルトの名無しさん
2017/07/15(土) 16:46:46.89ID:N0flRzpM
七大美徳も忘れるな

暴食、色欲、強欲、憤怒、怠惰、傲慢、嫉妬
679デフォルトの名無しさん
2017/07/15(土) 19:43:02.39ID:37mK/jgH
>>677
あとの二つもおねがい
680デフォルトの名無しさん
2017/07/15(土) 21:43:00.98ID:leA2r81r
>>679
怠惰、短気
681デフォルトの名無しさん
2017/07/15(土) 23:48:56.02ID:oxvwpB//
>>676
それはこのスレで語ることではない
682デフォルトの名無しさん
2017/07/15(土) 23:50:17.93ID:oxvwpB//
>>679
遅刻、有休
683デフォルトの名無しさん
2017/07/16(日) 00:35:02.61ID:Ki8GsNb9
仮病で有休
684デフォルトの名無しさん
2017/07/16(日) 14:47:36.60ID:m8yy8euc
俺のパソコンは納期前によく壊れる
困ったものだ
685デフォルトの名無しさん
2017/07/16(日) 18:59:56.18ID:yo5XpH/o
壊れてもバックアップ環境あるから
使いにくくなって効率下がるだけで他は変わらない
686デフォルトの名無しさん
2017/07/17(月) 11:01:21.40ID:cSztc20o
未だにgemって良く判らない。インタプリタなども含めて一式を配布するような場合は邪魔でしかない印象
687デフォルトの名無しさん
2017/07/17(月) 11:05:59.42ID:5WhJSLEy
外部のライブラリをスッ…とインスコできるやつ、色々作ってる側からすると便利、まああんまり好きじゃないけど
688デフォルトの名無しさん
2017/07/17(月) 11:14:05.33ID:fxU6unKK
バージョン変わって依存関係めちゃくちゃなって
何か月とか何年かあとになって
再度同じ環境構成しようとしても
以下略
689デフォルトの名無しさん
2017/07/17(月) 11:38:02.62ID:PBO0/BLN
>>686
Rubyはそんな使い方しないからね
RailsのDSLなんだから
690デフォルトの名無しさん
2017/07/17(月) 11:59:55.25ID:V9kDayPy
>>686
>インタプリタなども含めて一式を配布するような場合
Rubyでそういうことをしてはいけない
スクリプト言語にとってのインタプリタバイナリはライブラリ選択前に既にインストールされているものなのだ
rubyがインストールされ(てい)ない環境でも実行して欲しいようなものをRubyで作っては「絶対に」いけない
691デフォルトの名無しさん
2017/07/17(月) 13:21:14.47ID:Uy8niamL
vagrant, chef, SASS とかに、Ruby の実行環境も入れて、配布しているだろ?
692デフォルトの名無しさん
2017/07/17(月) 13:41:49.80ID:CuRtYSJT
>>691
VagrantやChefはユーザーによるスクリプティングを可能にするためにRubyを入れてるんであって、
プロダクトをRubyで作っちゃったから仕方なくRubyを入れてるわけではないよ
一方SASSはRubyで作っちゃった例だけど、Rubyが嫌われてnodeへ移行した
693デフォルトの名無しさん
2017/07/17(月) 14:20:06.37ID:H+ZLTTJY
> Rubyが嫌われてnodeへ移行した
nodeには移行してない
Cに移行している
694デフォルトの名無しさん
2017/07/17(月) 16:57:19.47ID:shGqANuA
そんな時のためのmrubyにはならないのか
695デフォルトの名無しさん
2017/07/17(月) 17:05:21.70ID:CuRtYSJT
残念ながらmrubyが獲るはずだったポジションはNodeに獲られちゃった
696デフォルトの名無しさん
2017/07/17(月) 18:22:28.87ID:cSztc20o
gemを使わないで何とかしようとすると情報が一気に減るんだよな。下手するとビルド方法の資料すらなかったり

>>688
あるあるすぎる。今まさにそれで頭を抱えている。昔出来たはずのことを再現しようとしているけどどうしたものか・・・

>>689-690
exerbやocraを全否定ですか

>>694
mrubyは検討したけど使えそうなライブラリが無くてcrubyにせざるを得なかった。ライセンス不明はやめてほしい
697デフォルトの名無しさん
2017/07/18(火) 00:28:34.69ID:2jGZGtzj
わかってると思うけど、Rubyのネガキャンやってるのがこのスレに粘着してる
こういうのは見付け次第叩いてやらないといけない
698デフォルトの名無しさん
2017/07/18(火) 00:50:06.81ID:tovqy0R7
>>691みたいにヘタに突っついて論破されるのも準アンチ行為だから注意な
699デフォルトの名無しさん
2017/07/18(火) 07:19:41.41ID:soRF6X66
いまだにRuby万能説に縋りRuby万能を否定されると発狂する人が住んでるのか
それは10年も前に終わった言説だ
いつまで寝ているんだ目を覚ませ
700デフォルトの名無しさん
2017/07/18(火) 12:48:36.31ID:6DbTRi2A
Ruby が最上流。
他の言語よりも、常に、2, 3年早い

Rails, vagrant, chef, SASS など

DSL では、Ruby, Groovy が優れているから、
最初にこれらの言語で作られてから、Python, JS へ移植される

Kotlin も注目されているけど、型を指定するのが面倒。
まあ、型を省略して、型推論もできるけど
701デフォルトの名無しさん
2017/07/18(火) 16:13:18.86ID:bC2KM4MS
rubyが最上流?
ワロス
そんな優れてるならphpもpythonも喰ってるよ。

しかも、落ち目だし。
702デフォルトの名無しさん
2017/07/18(火) 16:18:08.82ID:bC2KM4MS
しかも、型省略して型推論とか微妙な言い回ししてるあたり、分かってない臭がすごくてやばい
703デフォルトの名無しさん
2017/07/18(火) 17:14:45.02ID:PS9r5OZ5
>>702
C#のvarみたいなもののことなんじゃないの?
704デフォルトの名無しさん
2017/07/18(火) 18:59:56.81ID:jUpeemmL
Kotlinの型推論はただの典型的な型推論ですよ
それこそ「型指定が必要だけど型推論に任せることもできます→まあ便利」で済むレベル
わかってないのは間違いないのだろうけれど
705デフォルトの名無しさん
2017/07/19(水) 22:04:21.42ID:nwQCI0l5
たとえばArrayにメソッドfuncAを追加する時は
class Array
 def funcA
  return ["AAA"]
 end
end
みたいに書けば出来ますがこれをCの拡張ライブラリにしたい場合ってどうすれば良いんでしょうか?
Cからメソッドの登録を行う場合は
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(), int argc)
を使用するようですが第一引数をどのように得ればいいのか判りません
706デフォルトの名無しさん
2017/07/19(水) 22:15:34.36ID:kPQDkgCo
rb_define_method(rb_cArray, "funcA", hoge_func_a, 1);

static VALUE hoge_func_a(VALUE self, VALUE arg1) { }
707デフォルトの名無しさん
2017/07/19(水) 22:52:50.29ID:nwQCI0l5
え?"Array"というRubyの名前空間上の文字列?からklassを得る方法って無いの?
実際にメソッドを追加したいのは拡張ライブラリなんだけど、クラスやメソッドの登録は
関数内で行われていてklassが明示的に外部へ公開されているようには見えないのだが・・・
708デフォルトの名無しさん
2017/07/20(木) 01:14:47.75ID:pXT/1iWX
>>707
組み込みクラスやモジュールに関してはグローバル変数として用意されている
ruby/ruby.hを見るべし
https://github.com/ruby/ruby/blob/trunk/include/ruby/ruby.h#L1871


ちなみにこういう事もできる

#include <ruby/intern.h>

VALUE cDigestBase = rb_path2class("Digest::Base");
709デフォルトの名無しさん
2017/07/20(木) 09:35:50.76ID:s/SNqpfK
naoyaのはめ撮り動画アップされたね
710デフォルトの名無しさん
2017/07/20(木) 14:22:33.47ID:+aBWrhxZ
697の見え見えの釣り針にひっかかる粘着なんておらんやろ
って思ってたけど、見事に食い付いてるな

マジスゲー
711デフォルトの名無しさん
2017/07/20(木) 22:29:26.18ID:wsBNKQXr
>>708
ありがとう
弄りたいのは野良の拡張ライブラリです
rb_path2classで出来そうなのでこれを使ってみます
712デフォルトの名無しさん
2017/07/22(土) 14:27:06.95ID:GRw82bJl
拡張ライブラリをコンパイルする時に任意の場所にあるヘッダファイルやライブラリファイルを
探索させるようにするにはどのようにすればいいのでしょうか
713デフォルトの名無しさん
2017/07/22(土) 14:50:45.74ID:ZFWxmOeg
それRuby全く関係ない
Cのコンパイラだけの問題
714デフォルトの名無しさん
2017/07/22(土) 14:59:47.85ID:6KQ6+UpV
>>712
extconf.rb 内で have_header や have_library を使う
使い方は ruby に含まれる doc/extension.ja.rdoc を見よ

https://github.com/ruby/ruby/blob/trunk/doc/extension.ja.rdoc#appendix-c-extconfrb%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E9%96%A2%E6%95%B0%E3%81%9F%E3%81%A1
715デフォルトの名無しさん
2017/07/22(土) 15:46:06.83ID:GRw82bJl
>>713
そうですけどextconf.rbで作ったMakefileをいちいち手編集するのは正攻法ではないですよね

>>714
have_header("C:\\foo\\hoge.h")
とか
have_header("C:/foo/hoge.h")
とかやってもnoと言われてしまいます
716デフォルトの名無しさん
2017/07/22(土) 15:56:18.40ID:GRw82bJl
あ、自己解決。dir_configを使えば良かったのか
dir_config("myproject")
とか書いて
ruby extconf.rb --with-myproject-include=C:\foo
とかするとそのディレクトリを探索対象に加えてくれるみたいです
717デフォルトの名無しさん
2017/07/22(土) 16:07:27.55ID:LM/qA1ao
mkmf.rbでdir_config("opt")してくれてるので、--with-opt-includeならはじめから使える
718デフォルトの名無しさん
2017/07/22(土) 20:13:36.13ID:6KQ6+UpV
>>715
まだ見てるかな?
すまない、find_header、find_library を伝えるべきだったな
719デフォルトの名無しさん
2017/07/23(日) 03:04:04.86ID:nJm1oPvD
IDE には、ライブラリパスの参照という、ボタンがあるはず
720デフォルトの名無しさん
2017/07/23(日) 08:53:05.99ID:1hI9T8Bk
ひとまず形にはなった。ALLOC_Nの開放の仕方が判らないのでALLOCA_Nにした
ALLOC~って初期化してくれないんだな。ゴミが混じってメモリ破壊の
バグがあるのかとしばらく悩んだ。でもCはど素人だしなんかありそう

>>718
コマンドラインの方が容易に変更できるのでdir_configで行こうと思います
721デフォルトの名無しさん
2017/07/23(日) 10:43:01.15ID:FBMkfY4k
>>720
ruby/ruby.hを大文字のALLOCで文字列検索してみ
RB_ZALLOCとかRB_ZALLOC_Nとかが0で初期化してくれる

あと確保したこれらはxfree(void*)で解放してね
722デフォルトの名無しさん
2017/07/23(日) 21:56:04.93ID:1hI9T8Bk
>>721
ありがとう。ZALLOC_N&xfreeにしてみました
ALLOCA_Nってruby/ruby.hをみたらallocaを呼んでいるだけじゃないかw

拡張ライブラリ内部における動的なメモリの確保ってどうするのが好ましいんだろうな
スタックに積む方法はメモリのリークはないけどスタックを圧迫する(.今の環境だったら気にするほどでもない?)
allocして後にfreeする方法だと意図せず途中で抜けた時にメモリがリークする
Rubyの文字列を作ってそれを利用すると言う方法を紹介しているblogもあったけど・・・う~む・・・
723デフォルトの名無しさん
2017/07/23(日) 23:04:03.89ID:FBMkfY4k
>>722
俺も外部の人間だから本当に適切な方法なんて知らないけど……

VALUE bufvalue;
size_t bufsize = 1024;
void *ptr = RB_ALLOCV(bufvalue, bufsize);

任意の処理を行う
ここで例外が発生しても次のGCで勝手に開放される
bufvalueはrubyの世界へと出さないように気をつける

/* メモリの即時開放(freeされる) */
RB_ALLOCV_END(bufvalue);



VALUE bufstr = rb_str_buf_new(bufsize);
void *ptr = RSTRING_PTR(bufstr);

任意の処理を行う
rubyの世界に出しても問題なし
ただし出したあとで再び使う場合は必ず
rb_str_modify(bufstr); /* freezeされたらaboneするけどな */
ptr = RSTRING_PTR(bufstr);
をやり直す

/* メモリの開放(即時開放されるかは実装任せ) */
rb_str_resize(bufstr, 0);


こんな感じかな
724デフォルトの名無しさん
2017/07/24(月) 00:44:09.77ID:7DZLuR6j
今気がついたのだが・・・
自作メソッドの入力値が不適切→rb_raiseを叩く→Segmentation fault
rb_raiseの引数に動的な物は含まれていないし、未解放のメモリがあるわけでもないしどうなっているんだ
例外を発生させる時の作法とかあるのだろうか

しかも2個作ったメソッドの片方だけこの現象が起きる。処理内容に問題があるわけではないけど
これを放置するのはマズイよな

>>723
ありがとう。参考になります
725デフォルトの名無しさん
2017/07/24(月) 05:46:45.69ID:q6ge4pC6
メモリスタック確認するのが一番じゃね?適当だけど
726デフォルトの名無しさん
2017/07/24(月) 08:11:09.42ID:rFx+DNZY
なるほど・・・ってVC++環境でコアダンプってどうやって取れば良いんだろ
ググるとWindows Error Reportがトラップしている時にタスクマネージャからダンプさせる
とか出てくるけどトラップされている訳じゃないのでこの方法は使えないし・・・
それともどこかにダンプが保存されているんだろうか
727デフォルトの名無しさん
2017/07/24(月) 12:01:57.41ID:YHai+DFK
プロセスにアタッチしてブレイクしたら。
728デフォルトの名無しさん
2017/07/24(月) 19:26:11.30ID:R/9Imr1c
困った時のprintfデバッグ
729デフォルトの名無しさん
2017/07/26(水) 14:44:00.57ID:P+h1MRRW
【Unity】ソートアルゴリズム12種を可視化してみた - Qiita
http://qiita.com/r-ngtm/items/f4fa55c77459f63a5228
730デフォルトの名無しさん
2017/07/27(木) 10:11:51.47ID:FeDFxsXm
ソフトウェアデザインがインターフェースの記事を丸々パクって問題になったことがあったな
731デフォルトの名無しさん
2017/07/29(土) 18:02:23.06ID:Xgmp5DuD
VisualC++でビルドすると--disable-debug-envを付けてもデバッグビルドになってしまうように見えるけど気のせいかな・・・
インストールされるサイズが--enable-debug-envと比べてちっとも変わらない
生成したMakefileにデバッグ関係のオプションを削ったCFLAGSとLDFLAGSを書き込んだらインストールサイズが大分小さくなった
732724
2017/07/31(月) 01:44:48.62ID:0NH1HYUL
ようやく原因がわかった
rb_scan_argsの第3引数が"22"と不適切な値にしていたことが原因だった。適切な"2"にしたら問題なくなった
複数のスレッドが動いているため?か例外を起こす場所が一定になるわけではない模様
rb_pでデバッグしていくと>>724の位置で例外が起きる(rb_raiseの第一引数がぶっ壊れていると
思われる)んだけど、デバッガで追いかけるとrb_scan_args内部で例外が起きる
733デフォルトの名無しさん
2017/07/31(月) 02:05:04.23ID:9Hgupd7z
要約すると
Ruby ⇔ C と行き来するのはえらく面倒だ
ってことだな
これなら、Rubyを使うことそのものが目的じゃないのならだが
初めから Java、C#、C++ などを使ったほうが良かったってこったな
734デフォルトの名無しさん
2017/07/31(月) 07:03:37.88ID:VY/jm5nF
というか今時はRPCやメッセージキューを使って完全に分離してしまえばいい
WindowsでRubyの時点でどのみち実用性のないオナニーなんだから好きにすればいいけど
735724
2017/07/31(月) 08:10:27.67ID:S3S/4XWd
引数を間違えると警告もなくメモリをぶっ壊す関数って絶対にこれだけじゃないよね・・・
今回の件で困ったことまとめ
・VC++のコマンドラインからビルドした物をデバッグする例が全然見つからない
 VC++のIDEで開発したプロジェクトやgcc&makeで開発した物をgdbでデバッグする例なら沢山出てくるんだけどな
・CLIアプリケーションのためかデバッガから起動させるとgem関係のファイルがないとRubyが例外を吐いて動かない
 requireの後に$<.getsを書いてコマンドプロンプトから起動。デバッガからアタッチしてブレークポイントをセット後に
 Enterを入れて実行を再開。ただし100%上手くいくわけではない模様。無限ループ?にはまる時もある
 エントリーポイントで止めて環境変数やカレントディレクトリを適切に設定した後に再開すれば動くのかな?
 やり方が判らないけど
・RubyがSegmentation faultをトラップしてしまうためにメモリダンプを取れない?
 signal.cやwin32.cでそれっぽそうなところを書き換えてみたけどトラップを止めさせることは出来なかった
 どこを弄ればいいのだろうか・・・

C/C++は不慣れなので変なことを書いていたらスマン
736デフォルトの名無しさん
2017/07/31(月) 15:59:11.85ID:2wHF06gt
ファイル名以外でファイルを識別するにはどうしたらいいんだ?
ファイル名変更したとしてもファイル名変更前とファイル名変更後のファイルを同じものとしてみたい
ファイルクラスのドキュメント見てみたけとそれらしいのはなかった
737デフォルトの名無しさん
2017/07/31(月) 16:30:54.00ID:PivEBbdv
何を以て同じファイルとみなすかに依る
単に内容だけ比較するなら FileUtils.#cmp を使うと良いよ

https://docs.ruby-lang.org/ja/latest/method/FileUtils/m/cmp.html
738デフォルトの名無しさん
2017/07/31(月) 23:41:34.38ID:X3kyqB8s
>>736
ファイルシステム次第なんじゃないの。
Linuxならだいたいinodeでいいだろうし。
739デフォルトの名無しさん
2017/08/01(火) 01:21:43.84ID:eJYTTdCf
>>737
こんな便利なメソッドがあったのか
でも変更前のファイルが残ってるやけじゃないからここでは使えないかな…

>>738
https://docs.ruby-lang.org/ja/latest/class/File=3a=3aStat.html
LINUXだからこの辺使ってinodeで判別できそう!ありがとう!
740デフォルトの名無しさん
2017/08/01(火) 08:33:14.08ID:YiDwID17
>>739
そういう用途なら、ハードリンクに注意。
741デフォルトの名無しさん
2017/08/01(火) 11:24:21.35ID:QsBohnup
inodeは再利用されるからいつかギョッとするときが来ると思う
https://ideone.com/zPXgqb
742デフォルトの名無しさん
2017/08/01(火) 16:59:50.09ID:T1EbqLjy
いまどきのファイルシステムなら拡張属性つかえんじゃない?
索引つくれないと面倒だけど中身比較するよかまし
743デフォルトの名無しさん
2017/08/01(火) 19:11:35.76ID:ggiqqoER
>>742
拡張属性をRubyから使うのは面倒じゃないか?

オレとしては、要件を考え直すことを勧めたいが。
そういうアプリを見ないのはそれだけの理由があるんだから。
744デフォルトの名無しさん
2017/08/01(火) 19:40:15.57ID:PARHYe6N
まあ「inode見ればファイル名変更にも追従できる!」なんてやらなきゃいけない時点でなにかがとてつもなくおかしいわな
gitみたいなかんたんファイル変更検知機能付きアプリケーションを見てみると絶望できるかもしれないね
745デフォルトの名無しさん
2017/08/02(水) 13:55:20.56ID:5on7mlkV
rubyでcoincheck apiを使ってみたいんだけど、いまドットインストールを見終わって、たのしいRubyを見終わったんだけど、opensllとかuriとかnet/httpとかの使い方はどうやったら分かるようになるのかな
746デフォルトの名無しさん
2017/08/02(水) 20:17:50.89ID:Y8o6EGzu
それくらいはマニュアル見ろよ
ということでマニュアルの読み方の勉強が必要

ただ、それらのライブラリはプロトコルをちっとも隠蔽してくれてないのでOpenSSLやURIやHTTPの基礎知識は必須だぞ
普通なら使いたいapi試しながら勉強しろと言うんだが絶妙にトライアルアンドエラーのしにくい分野のapiなのが辛いな
747デフォルトの名無しさん
2017/08/03(木) 19:35:54.85ID:Yq3e1WJ9
Ruby並みに生産性が高く、C並みに高速で何でも作れる言語があったら神
748デフォルトの名無しさん
2017/08/03(木) 19:55:35.10ID:eWbe8h/f
KotlinあたりにRubyっぽいライブラリがあれば案外簡単に実現できそう
749デフォルトの名無しさん
2017/08/03(木) 19:59:35.69ID:Yq3e1WJ9
Javaがないと動かない時点で全然C並みじゃない
750デフォルトの名無しさん
2017/08/03(木) 21:17:20.06ID:Wy5AX0em
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語

じゃーC++だね
生産性はJavaやC#には負けるかもしれないが
静的型言語だから少なくともRubyより生産性あるしな
751デフォルトの名無しさん
2017/08/03(木) 21:59:48.18ID:yhj86Quo
>>750
C++の生産性が高いって、マジ発言っすか?
C++である程度の規模のアプリ書いたことある?
752デフォルトの名無しさん
2017/08/03(木) 22:12:01.14ID:Wy5AX0em
8万行ぐらいのフリーソフトなら作ったことあるけど
逆にRubyでこの規模のソフト開発するのは嫌だなぁ
753デフォルトの名無しさん
2017/08/03(木) 22:14:29.74ID:Wy5AX0em
C++は割と何でも作れる懐の深い言語だと思うよ
速度も最速といってよいレベルだし
C++で作って重かったらもう諦めるっつーか
諦めも付く
754デフォルトの名無しさん
2017/08/03(木) 22:16:49.93ID:Wy5AX0em
そもそも
>ある程度の規模のアプリ書いたことある?
って聞き方がおかしいんだよなぁ
どちらかと言えばRubyは短いプログラムをサクッと作るのが得意分野なのに
ある程度の規模が前提なら、そりゃ、静的型の方が良いだろうよ
755デフォルトの名無しさん
2017/08/03(木) 22:20:14.12ID:rbKeWnbz
一般的にメモリの保護機構を持たないと言うだけでその言語の生産性はかなり下がる
後に開発された言語の多くがメモリの保護機構を用意していることからもこれは明らか
C++でコンパイルが通れば一発動作のスーパーハッカーなら生産性は高いだろうけど
そりゃ言語の生産性が高いわけではなくそいつが凄いだけw
756デフォルトの名無しさん
2017/08/03(木) 22:22:18.12ID:yhj86Quo
>>753
それと生産性の高さとは何も関係ないけどね
757デフォルトの名無しさん
2017/08/03(木) 22:27:07.72ID:JmT9ks+l
rubyなら8千行
758デフォルトの名無しさん
2017/08/03(木) 22:27:27.39ID:Wy5AX0em
だから
>(C++は)生産性はJavaやC#には負けるかもしれないが
って書いただろ
でもRubyより有ればひとまずそれで良いんだろ?
しかも>>751なんかは「ある程度の規模」って条件を指定してるし
759デフォルトの名無しさん
2017/08/03(木) 22:29:36.38ID:yhj86Quo
>>758
C++はRubyより生産性は明らかに低いよ
メモリ管理は面倒だし、ちょっとなにかやればSEGVするし
760デフォルトの名無しさん
2017/08/03(木) 22:36:03.43ID:Wy5AX0em
それでも静的型の方が生産性があるってのが業界のFAだろ?
最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
あと、C++はRubyよりシェア(という言い方が適切かは分からないが)高いし
コミュニティーも活発だよ
だから
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
の回答はC++だ
他に選択肢有るか?
761デフォルトの名無しさん
2017/08/03(木) 22:37:48.85ID:Wy5AX0em
あと、C++はライブラリも結構豊富な方だと思うよ
Cのライブラリも使えるし、まぁ、大体は何でも
言語の生産性を考えたとき、利用者が多いことも有利に働くよ
762デフォルトの名無しさん
2017/08/03(木) 22:44:10.59ID:yhj86Quo
>>760
> 最近出てきた言語はどうなってる?当たり前に静的型の機能を持ってるだろ
最近出てきた言語はどうなってる?当たり前にメモリ管理機能を持ってるだろ

静的型のメリットをメモリ管理のデメリットが塗りつぶしてるんだよ、C++は
763デフォルトの名無しさん
2017/08/03(木) 22:48:11.18ID:Wy5AX0em
Boehm GCでも使えばよいだろ
764デフォルトの名無しさん
2017/08/03(木) 22:51:34.98ID:Wy5AX0em
それに周りを見渡してみればC++で書かれた
大規模中規模アプリが山のようにあるのに
本当に生産性が低いといえるのかどうなのか
765デフォルトの名無しさん
2017/08/03(木) 22:58:07.67ID:6SHaFuae
生産性が高ければそこそこの「シェア」も自然とあるだろうが
そこそこの「シェア」があるからといって生産性が高いとは限らない
766デフォルトの名無しさん
2017/08/03(木) 23:01:51.14ID:yhj86Quo
>>763
それだとC++のメリットないじゃん
Java使えばいいじゃん
767デフォルトの名無しさん
2017/08/03(木) 23:02:53.79ID:yhj86Quo
>>764
スーパーハカーがよってたかって書いてるからね
残念ながら一般人はスーパーハカーではない
768デフォルトの名無しさん
2017/08/03(木) 23:08:35.02ID:Wy5AX0em
>>765
>生産性が高ければそこそこの「シェア」も自然とあるだろうが
いいこと言うね、つまりRubyは生産性が無いってことだな

>>766
Java使えばよいよ
ただ、質問者?はC並みの速度って注文を付けてるからね
だったらC++だね、と
それでもRubyよりは生産性有るから問題ないだろう

>>767
君の思ってる一般人の基準がおかしいんじゃないの?
769デフォルトの名無しさん
2017/08/03(木) 23:10:08.67ID:yhj86Quo
>>768
> 君の思ってる一般人の基準がおかしいんじゃないの?

君の方がおかしいよ
C++の方が生産性が高いかどうかアンケとってみた方がいいよ
770デフォルトの名無しさん
2017/08/03(木) 23:11:31.02ID:9Ns8iW3Z
>>759
メモリ管理が面倒と思えるのは下手な証拠
C++ の RAII は手放せないのだが,他の言語でこの手の手法は使えないんだよね
771デフォルトの名無しさん
2017/08/03(木) 23:12:12.72ID:yhj86Quo
第一、なんでそんな人間がRubyスレ覗いてるの?
君の意見だとRubyには見るべきところなんて一切ないはずなのにさ

別の言語を叩いてスッキリしたいのか、煽ってるだけなのかどっちかだよね
どちらにしても性格最悪だね
772デフォルトの名無しさん
2017/08/03(木) 23:17:01.30ID:9Ns8iW3Z
>>771
そりゃ ruby を愛しているからだよ(ぼそ)
773デフォルトの名無しさん
2017/08/03(木) 23:20:08.59ID:Wy5AX0em
>>770
実際問題、スマポもあるしな
問題になるのは循環参照がある場合だけだけど
でもそれは設計段階でわかることだから
片方をweak_ptrにすれば良いだけだしな
言うほど面倒ということもないし
世の中のC++アプリは普通に動いてるし
あと、短い間しか生きてない、常駐しないプログラムなら
メモリをいちいち開放する必要もないしな
OSに任せておけばよいだろうよ

>別の言語を叩いて
俺は別にC++に所属しているわけじゃないし
「別」も糞もない、俺にとってC++もRubyも一言語にすぎないよ
774デフォルトの名無しさん
2017/08/03(木) 23:21:25.18ID:Wy5AX0em
だいぶズレてきてしまっているけど、もともとは
>Ruby並みに生産性が高く、C並みに高速で何でも作れる言語
ってお題だぞ
C++しか無いだろ
775デフォルトの名無しさん
2017/08/03(木) 23:24:01.10ID:rbKeWnbz
C++の生産性が次世代C、C++を目指して開発されたD、Go、Rustなどを上回ることはないと断言して良いはず
C++の名を挙げるならその前にこれらを挙げるべきだ
776デフォルトの名無しさん
2017/08/03(木) 23:28:11.69ID:Wy5AX0em
シェアが少なかったり使える人が少ない言語なんか選んじゃだめだよ
今は生産性の話をしているのに
だからC++なのさ
777デフォルトの名無しさん
2017/08/03(木) 23:28:54.47ID:rbKeWnbz
シェアと生産性はなんの関係もないw
778デフォルトの名無しさん
2017/08/03(木) 23:30:28.02ID:6SHaFuae
>>768
「生産性が高ければそこそこの「シェア」も自然とあるだろうが
そこそこの「シェア」があるからといって生産性が高いとは限らない」
という言説からどういう論理で
「つまりRubyは生産性が無いってことだな」
という結論が出るんですかね
これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できないということ
肝心なところの説明がふわっとしてて独善的なんだよ
779デフォルトの名無しさん
2017/08/03(木) 23:31:12.11ID:Wy5AX0em
特にD言語なんか挙げてる時点で何もわかってないね
あれはもうダメでしょ、誰がどう見ても
D言語の開発がいつ始まったか知らないけど
10~15年ぐらい経ってこの状況なのに
これから先どう化けるってのよ
あんなので開発するのは生産性以前の問題だよ
780デフォルトの名無しさん
2017/08/03(木) 23:33:45.92ID:yhj86Quo
結局何が言いたいんだろうね
Rubyなんて使えないってことですかね?
だとしたらそれはRubyスレで語ることですかね?
781デフォルトの名無しさん
2017/08/03(木) 23:38:14.16ID:Wy5AX0em
>>778
自分で
>生産性が高ければそこそこの「シェア」も自然とあるだろう
って言ったんだろ
言い換えれば、シェアが無い言語は生産性が無いってことになるだろ?
分かりにくかったら会話風にして例を出してやろうか?
A:Rubyって生産性高いんですか?
B:生産性が高ければそこそこの「シェア」も自然とあるだろう(実際には無い)
A:あ、低いんだ・・・

>これらから言えることは飽くまで「シェア」があることからは生産性に関して何も推論できない
そういうことが言いたかったら
「生産性が高くてもシェアがあるとは限らないし
 シェアがあるからと言って生産性が高いとも限らない」
っていうべきじゃん
でも君の言ったのは
「生産性が高ければそこそこの「シェア」も自然とあるだろう」
だからね、お忘れなく
782デフォルトの名無しさん
2017/08/03(木) 23:39:38.23ID:Wy5AX0em
>>780
>>774
783デフォルトの名無しさん
2017/08/03(木) 23:40:45.06ID:yhj86Quo
>>782
そういう言語があるならRubyスレ覗かないよね?
なんで覗いてるの?
784デフォルトの名無しさん
2017/08/03(木) 23:42:53.41ID:Wy5AX0em
Rubyの初心者だからだよ
785デフォルトの名無しさん
2017/08/03(木) 23:43:34.73ID:rbKeWnbz
生産性は成果/コスト
C++を含むC系言語の生産性ってどのくらいなんだろうね
非標準ライブラリの信頼性検査コストや、デバッグのコスト、言語仕様に
起因する事故の損失や対応に要したコストを積み重ねたら悲惨なことになりそう
786デフォルトの名無しさん
2017/08/03(木) 23:46:00.36ID:yhj86Quo
>>784
初心者がなぜRubyはC++より生産性が低いって断言してるの?
使ってもいないくせに断言できるわけないよね?
787デフォルトの名無しさん
2017/08/03(木) 23:52:39.73ID:85r5WZPx
ぶっちゃけて言うと、メモリ管理がびみょいC++は生産性低いかも知らん



「特定の業種だと」C++がデフォルトって話にはなるわな
なに組み込んでんの? 的な意味で
ゲームもそうらしいが俺はゲーム業界知らんので

あとは単純な「慣れ」の問題もあるだろう
「慣れ」は個人の主観的感想
キチンとポジション明確にしてる人(例:「俺組み込みやってるんだけどさ」と前置きがあったといった人)
が言ったのでなければ無視すべき項目

とりあえず >> 768 の
> それでもRubyよりは生産性有るから問題ないだろう
という一文を見る限り、RubyじゃなくてC++スレに行くべき人ではないかなぁと判断している
RubyよりC++のほうが得意ならC++の話をC++スレでしているべきだ
788デフォルトの名無しさん
2017/08/03(木) 23:55:37.05ID:6SHaFuae
「生産性が高ければ「シェア」もある」は
「「シェア」がある」が真ならこの命題は満たされてこれ以上『生産性に関して何も推論できない』でしょ
もちろんこのことから「シェア」がなければ生産性が高くないと言えるという指摘は正しい
しかしそれまでにC++はRubyより「シェア」があるとは言っているがRubyには「シェア」が無いとは言っていないのでふわっとしてて独善的と評しただけの話
789デフォルトの名無しさん
2017/08/03(木) 23:56:56.33ID:85r5WZPx
うわー俺酔っぱい度高ぇな、もう寝るか

あと久々にRubyist Magagineみたら「RubyからPython蹴ったら統計処理の対応できなくね?」という
変態の記事があったので……ああ、うんRuby使いっぽいなって思った(小学生の日記風感想)
Pygmentsもそれで対応してるからな、どんだけ他人の成果を再利用するつもりだあいつら(いい意味で)
790デフォルトの名無しさん
2017/08/04(金) 00:01:33.92ID:6xnwiv0x
「C++のほうがRubyより生産性高い ※個人の感想です」

とか書いておいたら誰もケチ付けなかったと思うがねえ
レスは全部「お前の中ではな」になるだろうが
791デフォルトの名無しさん
2017/08/04(金) 01:04:33.14ID:2RnUdeBz
横に長い言語は生産性が高い。
792デフォルトの名無しさん
2017/08/04(金) 08:10:50.87ID:NssrcL9O
つーか言語の評価に標準ではないライブラリを持ち込んでいる時点で頭のおかしい人だろ
これが許されるならRubyで数値計算ライブラリや画像処理ライブラリを利用した時の速度をもって
Rubyでも高速に演算できると主張できてしまう。そんなことを吠えている奴がいたらアホ丸出しw
793デフォルトの名無しさん
2017/08/04(金) 09:14:05.59ID:PF1N3/4o
>>790
言語を比較する際に、生産性のみを論点にするのはナンセンスだ。
生産者は人間および組織であって、その人間、組織の言語習熟度が生産性に大きく影響するからだ。



言語を比較する際に、
1. 学習容易さ
2. 作ったアプリの実行効率(実行に要する、時間、バッテリーの効率性)
3. 多様なアプリを作れるか?
4. 大規模、多人数組織でアプリを構築容易か?

こういった観点で比較しないと!
794デフォルトの名無しさん
2017/08/04(金) 09:44:59.17ID:ABZoxKZM
初心者なら明らかにrubyのが生産性高いな
自分でプログラミング用のツール組むようになってくるとどの言語も大差なくなってくる気がする
簡素に書けるとかはストレスやミスを減らすのには役立つけど
自分がフレームワーク使ったり作ったりして結局ビジネスロジック記述だけが最終的な仕事だと思ってるからかもしんない
795デフォルトの名無しさん
2017/08/04(金) 10:22:37.37ID:PF1N3/4o
Ruby初心者が毎日
# sample.rb
foo 14
bar 15
boo { | val | val > 5 }
bar 18

こんなビジネスロジックを記述するDSLばかり仕事で書かされていても、
Rubyについて習熟する事にはならない。

このファイルsample.rbがconfig.instance_eval File.read sample.rb
されている事を知らないと、全く何やってるか?判らんだろうなぁ。

おまけに、configがどのクラスのインスタンスなのか?判らんと初心者は、
生産活動しているとは言え、それはロボットと同じだ。

Railsアプリなんかは、こんな感じじゃ無いのか?
796デフォルトの名無しさん
2017/08/04(金) 10:28:16.49ID:PF1N3/4o
SinatraのDSLの例

#sinatra.rb
get '/' do
'how are you?'
end

get '/path/to' do
"this is [/path/to]"
end

get '/erb_template_page' do
erb :erb_template_page
end

こんなん、がWebサイトになるなんて、初心者は納得できるのだろうか?
797デフォルトの名無しさん
2017/08/04(金) 10:36:36.83ID:ABZoxKZM
お前だってtcpとかhttpレスポンスヘッダいちいち書かないだろ
大事なのは理解してるか、何かあったとき対応できるか
798デフォルトの名無しさん
2017/08/04(金) 11:24:56.64ID:zdzyWEfw
プログラミング好きな奴がWebに籠もりたがるのは、仕事でソフトウェア開発すれば気持ちがわかるよ
手の届かないところに自分のコードをリリースするということがどれほど忌々しいことか
799デフォルトの名無しさん
2017/08/04(金) 14:03:05.98ID:7yKCvYxX
実行環境を制御できないこともね
たとえ仮想でもサーバごと納品できるのは(その点においてだけ)最高
JavaScript書かなくてもよくなればもっといいんだけど、まあ、そこは現実のお金との兼ね合いということで
うまくいっている部分があればあるほど我慢もききますわいな
800デフォルトの名無しさん
2017/08/04(金) 15:15:50.08ID:Mgeezcro
これだけ反応があってモゴモゴしてるってことは図星だったってことだな
>少なくともRubyより生産性あるしな
801デフォルトの名無しさん
2017/08/04(金) 18:32:45.78ID:szkrtuN4
>>800
アレはRuby初心者がRubyのことを知らないのに煽りで書いた文章だよ
本気にしちゃダメ
802デフォルトの名無しさん
2017/08/04(金) 19:57:38.99ID:US5e0j3V
>>794
> どの言語も大差なくなってくる気がする

あーそれ分かる
意外とねぇ、言語ごとのあれこれってのはどうにでもなる
どうにでもならない部分は逆に言うとどの言語でも同じ
苦しむところはどこでも同じと思う
803デフォルトの名無しさん
2017/08/04(金) 21:02:33.10ID:Mgeezcro
だとしたら実行速度が速い言語ほど優秀って事になりますね
1.5倍ぐらいなら全然許容範囲だろうけど
50倍~100倍遅い言語は存在価値ありませんよね
804デフォルトの名無しさん
2017/08/04(金) 21:15:48.69ID:szkrtuN4
>>803
はいはい、また君か
805デフォルトの名無しさん
2017/08/04(金) 21:42:15.51ID:Jq4PnWl3
出来ることに大差ないっていう文言を生産性等に大差がないと臆することなく換言する図々しさよ
806デフォルトの名無しさん
2017/08/04(金) 21:47:51.74ID:Mgeezcro
>初心者なら明らかにrubyのが生産性高いな
>自分でプログラミング用のツール組むようになってくるとどの言語も大差なくなってくる気がする

>あーそれ分かる
>意外とねぇ、言語ごとのあれこれってのはどうにでもなる

↑これは生産性についての話じゃないのかね?
807デフォルトの名無しさん
2017/08/04(金) 23:51:53.04ID:US5e0j3V
日付変わる前に見たので一応レスしとく

>>806
ごめん
流れも読んでないし
さらに
切り取って部分的にレスしただけ
生産性とかについて特にコメントしたつもりはない
何に大差が無いかについては
実はなーんも考えてない
808デフォルトの名無しさん
2017/08/05(土) 00:01:37.19ID:CDgy3mrn
>何に大差が無いかについては
>実はなーんも考えてない

そういうことにしないとRubyに良いところが何も無くなるからな
遅い、だけが残る
809デフォルトの名無しさん
2017/08/05(土) 06:58:32.21ID:pAL2FsqO
速度はだいたいIOがボトルネック
なのでどの言語でも実行時間同じになってくる

一部のアプリでは速度が大事でアセンブラとかで最適化されてたりもするけど
810デフォルトの名無しさん
2017/08/05(土) 07:00:10.28ID:pAL2FsqO
>>805
生産性を上げるツールやマクロ作れない初心者にはそうかもね
811デフォルトの名無しさん
2017/08/05(土) 08:01:57.22ID:Zex8il51
漏れは、10言語ぐらい知っているけど、DSL を作りやすい、Ruby が圧倒的。
次いで、Groovy

vagrant, chef, SASS, Homebrew とか、ツールを作る際、
真っ先に、Ruby を候補に上げる

型安全性を高めるなら、Kotlin。
Kotlin = Java + Groovy

GC が無い、C/C++ などは、数年やってもバグるから、まともなアプリを作れない。
MISRA-C とか、安全にするには、学習コストが高い

派遣で行けば、分かるけど、数十人来ても、即さよならw
できる人が見つからない

デバイスとか、やる事が低レベルだから、
募集企業は、コンピューターリテラシーが必要って書いてる

コンピューターリテラシーって書いてる所は、要注意。
コンピューターのすべてを知ってる人の意味だから、
何百年勉強しても、分かることは、絶対にあり得ない

「Linux プログラミング・インタフェース」の著者は、
Linuxのman ページを書いてるけど、世界で唯一の、すべてを知る人
812デフォルトの名無しさん
2017/08/05(土) 08:10:39.26ID:INBBpNiE
LLVMのruby実装も頓挫しちゃってるみたいね
813デフォルトの名無しさん
2017/08/05(土) 13:09:40.79ID:ncTzjPCq
バージョンアップのたびに、互換性を心配しなくちゃいかんのが面倒。
Microsoftとかすこしはみならえ。
814デフォルトの名無しさん
2017/08/05(土) 13:35:28.94ID:pAL2FsqO
>>811
別にツールは対象となる言語で作る必要はないけどね
815デフォルトの名無しさん
2017/08/05(土) 13:36:41.39ID:CKOXuY3S
rubyも長期サポート対象となるバージョンを出せば多少はよくなるかな
と思ったけどエンタープライズエディションってのがあったっけ
816デフォルトの名無しさん
2017/08/05(土) 14:53:35.10ID:wQFjSmwa
MatzをはじめとしたMRIの連中はドカタIT大嫌いだから望みはないよ
実際、意図的にドカタITとは馴染まないようにしてる面もあるみたいだし
817デフォルトの名無しさん
2017/08/06(日) 06:23:44.08ID:HgYWswov
RubyでElectoronみたいなツールないの?
Rubyだとマルチプラットフォームで動くGUI付きのアプリ作りづらいわ
818デフォルトの名無しさん
2017/08/06(日) 06:44:56.72ID:8894pkNA
> Rubyだとマルチプラットフォームで動くGUI付きのアプリ作りづらいわ
それはRubyの仕事ではないからもうちょっとツールキットに優しい言語使え、がいちおう答ではあるのだが
819デフォルトの名無しさん
2017/08/06(日) 08:55:36.45ID:mR27ajyC
簡単な物ならJRuby+JavaFXでサクッと作れるよ
820デフォルトの名無しさん
2017/08/06(日) 09:28:36.41ID:6pWMTSH/
クライアントJavaとかもう世間の認識では存在自体がウィルスだから
821デフォルトの名無しさん
2017/08/06(日) 13:21:15.86ID:ImnldfPH
そりゃjavaアプレットの話じゃね?
822デフォルトの名無しさん
2017/08/06(日) 21:04:44.54ID:kcWz1cTJ
マルチプラットフォームのGUIはだいたいクソ。
よっぽど本気のアプリでなければ。
823デフォルトの名無しさん
2017/08/06(日) 21:07:30.87ID:fFJNwhsI
wxRubyは悪くない感じだが最近のRubyで使えるコンパイル済みバイナリが無かった気がする
824デフォルトの名無しさん
2017/08/07(月) 01:29:48.60ID:A20vwfd9
SDLとRubyで良いじゃん
winでもlinuxでもmacでも可能で、
互換性もばりばりあるだろ
825デフォルトの名無しさん
2017/08/07(月) 19:48:29.80ID:8DHQ/UcZ
起動速度が気にならないのであれば>>819もあり。起動時間はwxRubyの方が早いと思う
826デフォルトの名無しさん
2017/08/07(月) 22:27:29.16ID:RsgpLAOY
Ruby/TKとかどうなんだろ?
827デフォルトの名無しさん
2017/08/08(火) 00:00:33.50ID:3lFQ60WO
>>826
機能的に間に合うならあり。標準で使えるしwxRubyより安定していると思う
828デフォルトの名無しさん
2017/08/08(火) 00:05:21.54ID:Nlx7hk6l
>>826
最近のバージョンで、とうとう標準ではなくなったんだろ。
829デフォルトの名無しさん
2017/08/08(火) 00:28:18.36ID:m8GLf68F
まさに「Perlがあるのに何故Rubyを作るのですか?」状態だなww
ジョークのように思えて実は的を得ているのが面白い
830デフォルトの名無しさん
2017/08/08(火) 00:46:50.98ID:qcoC0xc5
自分用のソフトだとGUI必要になること滅多にないな
画像や動画関係のソフトはともかく
831デフォルトの名無しさん
2017/08/08(火) 02:57:24.40ID:HqOSCtNa
>>811
>世界で唯一の、すべてを知る人
いやいやそれは言い過ぎ
「Linuxのすべてを知る人」ならともかく

無名だけどメチャクチャ有能な奴が
グーグルとかにいっぱいるから
832デフォルトの名無しさん
2017/08/08(火) 03:03:21.71ID:HqOSCtNa
>>813
Win32APIとか長持ちしてるからな
Javaもそうだが大企業が作ってる言語は
後方互換性がしっかりしてるよな

RubyみたいなLLは
行き当たりばったりでバージョンアップしてる
833デフォルトの名無しさん
2017/08/08(火) 03:06:05.95ID:HqOSCtNa
>>818
>それはRubyの仕事ではない
オブジェクト指向はGUIで真価を発揮するので
むしろRuby本来の仕事だと思う

良いGUIツールキットがないのはRubyの弱点
まあRailsのWebアプリが主力なんだろうけど……
834デフォルトの名無しさん
2017/08/08(火) 03:07:45.02ID:HqOSCtNa
>>826
Tkは見た目がショボイとかで
すごく不人気で標準から外された

でも個人的には学習量が少なくて
手軽に使えて良いと思う
Pythonとか他言語でも潰しが利くし
835デフォルトの名無しさん
2017/08/08(火) 03:09:41.42ID:HqOSCtNa
>>830
ユーザの選択が複数必要なときにCLIだと困る
けっこうGUIが欲しいときはちょくちょくある
836デフォルトの名無しさん
2017/08/08(火) 07:36:09.02ID:9yxzxkwB
配る時にGUIが欲しくなるんだよね
837デフォルトの名無しさん
2017/08/08(火) 09:42:20.79ID:z6OjstMn
わざわざ起動引数を指定させたり説明したりミニスクリプト作ってメソッドを呼んでもらったりするよりかは
10行程度の記述でボタンやテキスト欄やスライダーなどを作りそこから指定できるようにしたほうが絶対便利で楽だろうということでRuby/Tkが採用されたのだが
フツーの人が期待するところのGUIアプリケーションというのはそういう機能重視の素朴なものではなくもっとリッチで精緻で高速描画なものであったのだというオチである
まあガチプログラマの考える添付GUIサポートライブラリなんてのはそんなもんだw
Tkもツールキット部分の見た目は頑張ってたのだがね
838デフォルトの名無しさん
2017/08/08(火) 11:42:08.06ID:akdCGEty
>>832
× RubyみたいなLL
○ Ruby

いわゆるLLでも、Perl5は高い互換性を維持してる。
あっちはさすがの伝統と資産があるからな。
839デフォルトの名無しさん
2017/08/08(火) 13:01:36.82ID:HqOSCtNa
でもPerlよりRubyの方が
読み書きしやすいから
もっぱらRuby使ってる

Rubyの長所は可読性が大きい
840デフォルトの名無しさん
2017/08/08(火) 18:16:05.55ID:/HyVzMZd
短く書けることは正義
見通しの良さを生かしてDRYを徹底し
その場限りの言語を作って構造を要約する
省力に拘るオタク遊びをするだけで
最も読みやすいプログラムが勝手にできるし
読みやすいからコメント入れる作業もほぼ不用
841デフォルトの名無しさん
2017/08/08(火) 19:54:43.96ID:9yxzxkwB
昔wxRubyでGUIアプリを作った時はGUI関係のコードが7~8割いっていた気がする。GUIって効率悪いよね
842デフォルトの名無しさん
2017/08/08(火) 20:44:41.18ID:HqOSCtNa
プログラマ側はCLIの方が作りやすいけど
一般ユーザが使いにくいので
商業アプリではほぼGUI必須だね
843デフォルトの名無しさん
2017/08/08(火) 23:08:29.20ID:OEX1Zqjt
>>829
ほんと、PerlがあればRubyなんていらないよな
多様性なんて害悪だよな
844デフォルトの名無しさん
2017/08/08(火) 23:38:22.50ID:m8GLf68F
Rubyがもっと素晴らしいものだったらよかったんだよ
例えば今風の最新の静的型の機能を持ったスクリプト言語とか
もし当時あったら珍しかったんじゃないかな
https://ja.wikipedia.org/wiki/Standard_Template_Library
↑はC++のテンプレートの話だが、「歴史」の項目が面白い
Matzが一所懸命Ruby作ってた裏では天才たちがこんなことしてたんだな
動的型のような将来性のない(今となっては負の遺産)もの作ってもしょうがないだろ
まさにPerlがあるのに何故Rubyを作るのですか?だな
今後どうなるのかわからないけど、もう、どうにもならないでしょ
本人も静的型は入れたくない(というか入れれない)ってゲロってるし
今後Rubyの時代は絶対来ない、コボルみたいな存在になるんだよ
845デフォルトの名無しさん
2017/08/08(火) 23:44:09.88ID:m8GLf68F
当時JavaもC++のテンプレートを馬鹿にしていて
あんなものはオブジェクト指向じゃない
オブジェクト指向言語のJavaにあんなものは必要ない
って言ってたんだけど
結局似たようなのを導入したよね
やっぱコンパイル時に型チェックが入るのはメリット有るんだよ
846デフォルトの名無しさん
2017/08/08(火) 23:44:13.51ID:qcoC0xc5
必要なやつがお実装すりゃいい
847デフォルトの名無しさん
2017/08/08(火) 23:52:56.74ID:OEX1Zqjt
>>844
意味が通じなかったかwww
ごwめwんwねwww
848デフォルトの名無しさん
2017/08/09(水) 00:04:27.70ID:hEgnFYnk
君が多様性があったほうが良いと思っているのは承知だけど
それならそれで、もっと良いものじゃないと意味ないだろ、ということだ
849デフォルトの名無しさん
2017/08/09(水) 00:09:22.53ID:hEgnFYnk
Perlを増築してオブジェクト指向を導入する方向で頑張ってもよかったんだよ
そしたら過去のPerlの資産も使えるからね
だけどそれが気に入らないから一から作ったんなら
もっと最善を尽くさなきゃ作る意味ないでしょ
特に最初の一歩は重要で、Rubyは動的型にしてしまったから
今現在にっちもさっちもいかなくなったわけ
850デフォルトの名無しさん
2017/08/09(水) 00:52:16.87ID:zBzPXqGw
Perlは覚えようとして挫折してRubyに流れ着いたのは自分だけか
Perlはパッと見て何をやっているのか全然判らない
851デフォルトの名無しさん
2017/08/09(水) 01:14:55.85ID:v3IDtueA
>>848
俺が思ってる事に勝手に限定してんじゃねえよ
Perlが標榜するものの一部だろうが
それに人間性に問題があるのか知性に問題があるのか知らねえけど、
Perl6ならオブジェクト指向プログラミングが可能だし変数を型で縛れるぞ
852デフォルトの名無しさん
2017/08/09(水) 01:19:24.43ID:v3IDtueA
>>850
俺は一度Ruby-1.6シリーズを触ったけどその時は合わなくてPerlに行った
PerlでCGIゲームを書いたけど結局1年半でRubyに流れ着いた
その時はRuby-1.8.1か2になってたかな
それからは個人利用だとRubyが中心になってる
決定的となったのはRuby Hacking Guideの存在だったな
Web版で済ませましたスンマセン
853デフォルトの名無しさん
2017/08/09(水) 08:17:40.99ID:/WbeABcG
Rubyが動的言語なのは必然
何も分かってない

影響を受けたPerl、Lisp、Smalltalkが動的言語
利用形態が近いLAMPのP言語のPerl、Python、PHPが動的言語
854デフォルトの名無しさん
2017/08/09(水) 09:35:00.76ID:ocU/hJiZ
>>852
>Ruby Hacking Guide
これって、今でもWeb版が閲覧できね。
知らんかった。
855デフォルトの名無しさん
2017/08/09(水) 18:40:53.88ID:C8BEXwt3
Win7(32bit)上のRubyInstaller2からwin32oleを使ってデータベースに接続しようとしてるんだけど
ODBCデータソースのOpenで例外が出てしまう。
エラーメッセージは↓
システムエラーコード126 指定されたモジュールが見つかりません (~)
カッコ内はODBCドライバのフルパスが書かれているけどファイルは間違いなくそこにある。
試しにActiveScriptRubyでやってみたらうまく繋がる。
これってどんな原因が考えられるでしょうか?
856デフォルトの名無しさん
2017/08/09(水) 18:58:08.43ID:hEgnFYnk
>>853
ダメなものの真似する意味あるの?
Pythonは動的型にしたおかげで苦しんだよね
857デフォルトの名無しさん
2017/08/09(水) 21:47:11.29ID:v3IDtueA
>>855
不確かな答えになるけど
ODBCドライバが依存しているライブラリが読み込めないから?
環境変数のPATHを確認してみると違いがあるのかな
ruby -e 'p ENV["PATH"]'

あとはActionScriptRubyのruby.exeがあるディレクトリに移動してRubyInstaller2のruby.exeを起動してみるとか
858デフォルトの名無しさん
2017/08/09(水) 21:53:39.57ID:v3IDtueA
>>857の追記
ググったらかなりの数がヒットしたから解決できるかもよ
https://www.google.com/search?q=ODBC+システムエラーコード126+指定されたモジュールが見つかりません
859デフォルトの名無しさん
2017/08/10(木) 00:54:17.37ID:CnaRda9Q
>>856
別に苦しんでないけど?
860デフォルトの名無しさん
2017/08/10(木) 03:49:56.14ID:HGihyxQL
今現在も苦しんでる途中といってよいんじゃないかな
初めから静的型を導入してれば何でもなかったのにな
Pythonのこの様子をみてmarzは
Rubyに静的型を入れるのを止めたわけで
どのみち行くも留まるも地獄
初めから静的型にしておくのが正解だったわけだな

動的型っていったい何のために有るんだろうな
開発速度も実行速度も遅いんじゃ意味わからないよな
処理系を用意するのが楽ってこと以外はメリットが見当たらない
861デフォルトの名無しさん
2017/08/10(木) 04:03:30.21ID:HGihyxQL
JSも非常に苦労が絶えないよね
まず使いにくいから静的型のTypeScriptとか作られたり
ブラウザのJSエンジンも速度上げるためにキチガイじみたことやってるよね
なしてこんなことにって感じ
動的型って世の中を混乱させて無駄なエネルギーを使わすために有るんかね
862デフォルトの名無しさん
2017/08/10(木) 04:08:47.85ID:2C7jZkmh
スレ違い
863デフォルトの名無しさん
2017/08/10(木) 06:58:53.68ID:1rmPYDcN
スレが伸びてると思ったらまた例の粘着荒しか
こんなのを生み出したこいつの親に製造責任とって欲しいよ、ホント

win32oleの話題が出てるけど、
ファイルダイアログ扱うCOMってOSのメインバージョン、xpとかvistaとか7とか違っていても共通でいけるの?
それともメインバージョン毎に異なるCOM使わないといけないの?
864デフォルトの名無しさん
2017/08/10(木) 07:05:51.34ID:1rmPYDcN
メインじゃなくてメジャーだったな
865デフォルトの名無しさん
2017/08/10(木) 07:36:31.27ID:CnaRda9Q
>>860
だから苦しんでないけど?
866デフォルトの名無しさん
2017/08/10(木) 09:29:44.68ID:HGihyxQL
>>865
TypeScriptって凄い名前でしょ
なんたって「Type」Scriptだもんな
言いたいことが名前に表れてる
何に対するアンチテーゼなのか明確
これが今後の常識
867デフォルトの名無しさん
2017/08/10(木) 09:36:29.21ID:stL+geP9
>>855
"mfc71.dll"、"msvcp71.dll"、"msvcr71.dll"の3つのファイルを入手してOSのシステムディレクトリ"c:¥windows¥system32"に保存すればよい。
868デフォルトの名無しさん
2017/08/10(木) 09:40:32.90ID:stL+geP9
VC++ 2010(32bit版)、VC++ 2012(32bit版、64bit版)、VC++2013(32bit版、64bit版)の計5つのランタイムの内、1つをinstallすれば解決できるかも。

まあ、この手のエラーは、ランタイム地獄とか、DLL Hellとかで検索!
869デフォルトの名無しさん
2017/08/11(金) 16:38:50.24ID:XzR2MkFB
プログラム初心者がrubyを1から学ぶ上でおすすめの本とおすすめのサイト・ブログを教えてほしいです。
ちなみにルビィの冒険はすでに持ってます。
というかルビィの冒険を読んで興味持ちました。
870デフォルトの名無しさん
2017/08/11(金) 17:43:52.20ID:rRCrIO51
ルビィの冒険

はじめてのRuby

パーフェクトRuby

Rubyベストプラクティス
EffectiveRuby
メタプログラミングRuby1版or2版
Rubyによるデザインパターン

リファクタリングRubyエディション
Rubyのしくみ。

ウェブアプリ方面
パーフェクトRubyonRails
RubyonRails5アプリケーション・プログラミング
Docker教科書
JapaScript本格入門第二版
入門Git
GitHub実践入門
SQL 第2版 ゼロからはじめるデータベース操作
達人に学ぶ SQL徹底指南書
SQLアンチパターン
871デフォルトの名無しさん
2017/08/11(金) 17:57:19.54ID:yo7J1RVM
JapaScriptってなんか国産っぽい
872デフォルトの名無しさん
2017/08/11(金) 18:27:13.22ID:XzR2MkFB
>>870
沢山ありがとうございます!
ちなみに発売日が古い本でも問題はないでしょうか?
昔と今との変更点とかで
873デフォルトの名無しさん
2017/08/11(金) 18:35:22.99ID:7nyPWQh8
>>872
残念ながら大有り
そこに気づけただけでも君はバカではないようだ
874デフォルトの名無しさん
2017/08/11(金) 20:51:31.14ID:rRCrIO51
>>872
基礎的なことを学んでいくなら問題はない、

しかしJavaScript等は最近大幅なテコ入れがあった。
だから不安なら、ここ最近1年以内の本を買ったほうがいい。

またそもそも基礎的な事、基本的な事なら10年以内の本でも
名著であり続ける。だがその数は少ない。
875デフォルトの名無しさん
2017/08/11(金) 23:43:16.47ID:iboA2f8X
>>869
たのしいRubyが定番の入門書
876デフォルトの名無しさん
2017/08/12(土) 03:50:23.72ID:oUZskOr3
Rubyの言語仕様をある程度覚えたら、
次にリファクタリングRubyエディションを読むと良い
コードの最も筋の良い書き進め方を会得できるし、一般的なプログラミング作法の本質を学べる
コードをバリバリ書けるようになるし、Rubyを便利に使いこなす理解も深まる
877デフォルトの名無しさん
2017/08/12(土) 05:52:30.53ID:w+TtGEkw
ary = ["a", "b"]

ary[0] = ary[0] + "x"
puts ary[0] #=> ax

ary[1] =+ "y"
puts ary[1] #=> y

上なら、文字列が連結されて、
下なら、b が消えて、上書きになるのは、なぜ?

文字列の、=+ 演算子は意味が異なるの?
878877
2017/08/12(土) 06:04:00.61ID:w+TtGEkw
ary = ["a", "b"]

ary[0] = ary[0] + "x"

# ary[1] =+ "y"
ary[1] += "y"

puts ary

表示
ax
by

自己レス
+= だったか。
=+ と逆に書いていたw

でも、コンパイルエラーが出ない
879デフォルトの名無しさん
2017/08/12(土) 06:10:46.47ID:YomJun0W
よっぽど仮想学習的な環境でない限りNoMethodErrorが出るよ
irb> a = %w(a b)
irb> a[1] =+ "y"
NoMethodError: undefined method `+@' for "y":String
880デフォルトの名無しさん
2017/08/12(土) 08:30:27.74ID:4WztSMRy
Ruby2.3からString#+@(immutableならば複製)が追加されている。
https://docs.ruby-lang.org/ja/2.3.0/class/String.html#I_--2B--40
881877
2017/08/12(土) 08:33:50.03ID:w+TtGEkw
paiza.IO で実行したけど、コンパイルエラーにならなかった
882デフォルトの名無しさん
2017/08/12(土) 08:47:10.82ID:4WztSMRy
>>881
paizaは2.4系だから。あと細かいけど、インタプリタだからコンパイルエラーと呼ぶのは違う気がする
883デフォルトの名無しさん
2017/08/12(土) 11:48:52.04ID:CSnAjTr3
文字列のimmutable化による変更のひとつとして、Stringクラスに単項演算子+、-が追加されてる。
http://qiita.com/iwamot/items/2ddf8de09d5dbcad2df9

こういう事情らしい。
http://d.hatena.ne.jp/ku-ma-me/touch/20151004
Rubyはやっぱりクソ。互換性に対する配慮が甘い。
884デフォルトの名無しさん
2017/08/12(土) 11:53:23.96ID:CSnAjTr3
>>882
言いたいことはわかるが、コンパイルエラーでも問題ないと思う。
実行前の文法エラーなのであれば、あきらかに事前のコンパイル段階のエラーなんだから。
885デフォルトの名無しさん
2017/08/12(土) 11:59:10.11ID:CSnAjTr3
あ、>>884に追記。
インタプリタどうこうの点についてのつもりなので、念のため。
881がコンパイルエラーといってるのはおかしいと思うよ。
886デフォルトの名無しさん
2017/08/12(土) 12:02:12.46ID:45XD5hPK
>>883
誰かと思えば遠藤さんか
それなら説得力あるな
887デフォルトの名無しさん
2017/08/12(土) 12:33:20.77ID:4WztSMRy
>>883
+@, -@の追加は別にいいけど3.0以降のデフォルトimmutable化はさすがに勘弁して欲しいなあ、Railsの声が強すぎる……

>>884
RubyのNoMethodError(というかException全般)は実行を試みて初めて出されるから実行時のエラーだよ。(ランタイムエラーと呼びたいがRuntimeErrorクラスと混同しかねないので悩ましい)
endが足りないとかのSyntax Errorとは別物だと思うけど。こっちは実行前の構文解析。
888デフォルトの名無しさん
2017/08/12(土) 13:33:01.18ID:K4TPp3Ad
>3.0以降のデフォルトimmutable化
定数は自動的にfreezeするくらいの対応で良かったな
889デフォルトの名無しさん
2017/08/12(土) 13:41:07.20ID:zBhrUX+c
だからそれじゃRailsさんは満足しないんだって
890デフォルトの名無しさん
2017/08/12(土) 13:46:16.09ID:K4TPp3Ad
Rails(無理)が通ればRuby(道理)が引っ込む
891デフォルトの名無しさん
2017/08/12(土) 13:57:56.00ID:pblAmUa6
RoRのためのrubyをフォークしろって事だな
892デフォルトの名無しさん
2017/08/12(土) 14:01:19.65ID:zBhrUX+c
Railsという単一の言語でいいと思うのよ実際
893デフォルトの名無しさん
2017/08/12(土) 14:25:04.02ID:zLZ79VVH
Railsさんを追い出したら島根のお役所へのPRに使えるようなRuby採用事例がほとんど無くなって金貰えなくなるからね
Chefみたいなインフラ系の事例を出されても役所の人「ハァ?」だろうし
894デフォルトの名無しさん
2017/08/12(土) 14:51:06.74ID:4WztSMRy
RoR上でのみデフォルトでimmutable、ってのも立派な"Rail"じゃないのかなあ。
どうせマジックコメントで切り替えられるようにするんだったらわざわざRuby全体のデフォルトを変えんでもいいでしょうに……
895デフォルトの名無しさん
2017/08/12(土) 15:19:12.43ID:K4TPp3Ad
>>892
よくねーよ

Rubyで作れるのは
Webアプリだけじゃねーから

Railsみたいなフレームワークを
言語仕様にしちゃうと窮屈になる
896デフォルトの名無しさん
2017/08/12(土) 15:26:53.07ID:zLZ79VVH
>>895
他に何に使われていようが、金を産んでるのもMRIにコミットしてる開発者が作ってるのも事実上Webアプリだけだから
他は無視しても全く問題ないのよ、残念なことに
897デフォルトの名無しさん
2017/08/12(土) 15:28:23.95ID:K4TPp3Ad
>>896
そんな発想だから
機械学習とかWeb以外の
ライブラリが充実してるPythonに
国際的に負けてしまう
898デフォルトの名無しさん
2017/08/12(土) 15:29:12.97ID:MaFRFCaQ
>>895
知らんよ
RailsがRailsで何を作ろうが関知するものではない
899デフォルトの名無しさん
2017/08/12(土) 23:34:01.47ID:QBhBJkcV
>>870
俺的今日のNo1、カキコ
900デフォルトの名無しさん
2017/08/13(日) 00:56:22.58ID:SYaWjJhn
Rubyが、ドンドン、Elixir に近づいていく

>>887
そう言えば、「メタプログラミング Ruby」にも、
NoMethodError を上書きするな、って言う格言があった
901デフォルトの名無しさん
2017/08/13(日) 01:10:49.40ID:PA7iDDOj
これも結局速度のために手動で変な最適化をプログラマに課してるだけのことだよな
こーゆーノリはC言語時代にはよくあったと思うけど
なんせ当時のCPUは今から考えるとものすごく遅かったからなぁ
だけど今時だとCPUも速いしコンパイラの最適化も凄いから
特に何も考えなくても十分に速いので、変な最適化に技巧を凝らすより
読みやすいコード書けってのが主流だよな
だけどRubyはメジャー言語より平気で50倍とか遅いし
コンパイラの最適化も糞なので手動で最適化するんだなwww

3.0GHzの最新CPUを使ってても50~100MHzのCPU相当の速度になるし
加えてコンパイラの最適化も糞で手動で最適化とか
まるで20年ぐらい前の感じだな

動的型でプログラミングが楽になるはずが
静的な型チェックもなければ速度が遅くて手動で最適化とか
本当に動的型は素晴らしいですね
902デフォルトの名無しさん
2017/08/13(日) 01:15:14.97ID:WE0t0sIJ
スクリプトで手間暇かけて凝ったアルゴリズムで計算量減らすより
C++でブルートフォースしちゃった方がてっとり早くて速かったりするのはよくある話
スクリプト向きのタスクか否かを感覚的に見抜けることは大切
903デフォルトの名無しさん
2017/08/13(日) 01:20:36.73ID:PA7iDDOj
今もう2017年だよな
Rubyはこんな最適化のために
今更言語仕様を変えるだとか変えないとかで盛り上がってて
何なんだろうな
これから先もずっとこんな調子なのかね
元の実行速度が遅いから速くするための最適化のために言語仕様をどうのこうの

今はforループを自動で並列展開してマルチスレッドとかSIMDとかで
コンパイラに頑張ってもらって速度を稼ごうとか
そういうこと言ってる時代なのに
やってることがあまりにも原始的というかなんというか
技術的に何も面白くないし、触ってて本当に楽しいんだろうか?
よく考えられた静的型のシステムがあるわけでもないし
化石言語だな
ありとあらゆることをプログラマに丸投げ
904デフォルトの名無しさん
2017/08/13(日) 01:31:38.50ID:PA7iDDOj
ありとあらゆることが悪い方に作用している様は本当にすごいよ
動的型のおかげでそもそも遅そうなのにろくに最適化もかからないから鈍足
遅すぎるのでプログラマが手動で最適化してください
加えて静的な型チェックもしないのでテストするなりなんなり
プログラマが頑張ってください
動的型って何なんだろうね
905デフォルトの名無しさん
2017/08/13(日) 02:53:31.36ID:9GyPh5fY
専ブラを使っている人は次の正規表現をNGIDとして突っ込んでおきましょう
\b(ppLsekVC|qMkdrUOQ|IBgoqo2I|AOJFjP\+S|bC2KM4MS|Wy5AX0em|m8GLf68F|hEgnFYnk|HGihyxQL|PA7iDDOj)\b
906デフォルトの名無しさん
2017/08/13(日) 04:14:05.84ID:SQfD9dn9
ワッチョイじゃないからあんまり意味ないんだよなぁ
1行読んで心のNGフィルターに突っ込んでるから問題ないけど
907デフォルトの名無しさん
2017/08/13(日) 14:33:04.78ID:bHAx/aO4
ま~た涌いてるのか
はよー親に製造責任とってもらえよ
908デフォルトの名無しさん
2017/08/17(木) 15:09:10.89ID:ESEriUZI
趣味で作られた「オレ様の考える最強言語」にちょっと高望みしすぎじゃないの とか言っちゃダメかな
909デフォルトの名無しさん
2017/08/17(木) 15:16:46.98ID:+kyvImyc
初心者スレで暴れまわって機能不全に陥れるとは
Rubyは完全に澱んでるな
Pythonコミュニティとすっかり差が開いてしまった

人気ランキング1位
Pythonは今のうちに習得すべき?『スラスラわかるPython』著者・岩崎さんとPyCon JP理事の寺田さんが語る:CodeZine(コードジン)
http://codezine.jp/article/detail/10329
910デフォルトの名無しさん
2017/08/17(木) 18:26:41.54ID:iwOtRZLz
>>908
いわゆるスクリプト言語の多くがそうなんだよなあ。
911デフォルトの名無しさん
2017/08/17(木) 20:41:32.26ID:ENaOxomf
コマンドライン引数が表示できません。
OSはwin10、rubyのバージョンは2.4.1-2-x64です。

コードはprint_arg_1.rbという名前で、
#!c:/ruby/bin/ruby
print ARGV[0]

コマンドプロンプトには
c:\ruby\samples>print_arg_1.rb A

と入れてみるのですが、何も(エラーも)表示されません。
Aと表示させるつもりなのですが・・・。
ちなみに、powershellに入力した場合はAと表示できます。
912デフォルトの名無しさん
2017/08/17(木) 20:44:36.46ID:KIRXYCO4
c:\ruby\samples>print_arg_1.rb A
のAの前のスペースが全角だからじゃね
913デフォルトの名無しさん
2017/08/17(木) 21:09:45.66ID:ENaOxomf
>>912
すいません、そこは半角でした
半角で入れてみても、うまくいきません
914デフォルトの名無しさん
2017/08/17(木) 21:12:53.32ID:KIRXYCO4
>>913
ruby -e "p ARGV[0]" A
ってやったら
"A"
って出力される?
915デフォルトの名無しさん
2017/08/17(木) 21:16:37.74ID:KIRXYCO4
ruby hoge.rb A
頭にrubyをつけてみては
916デフォルトの名無しさん
2017/08/17(木) 21:28:46.60ID:ENaOxomf
>>915

コードを
#!c:/ruby/bin/ruby
p ARGV[0]
と書き換えるということですか?

やってみたところ、nilとでました
917デフォルトの名無しさん
2017/08/17(木) 21:50:18.63ID:eXIxbYLq
powershellではどう入力したの
918デフォルトの名無しさん
2017/08/17(木) 22:00:16.19ID:ENaOxomf
>>917
.\print_arg_1.rb A
と入力しました。
"A"と出力されます。
919デフォルトの名無しさん
2017/08/17(木) 22:07:40.53ID:eXIxbYLq
謎すぎてわからん
920デフォルトの名無しさん
2017/08/17(木) 22:18:52.38ID:CKP1LJFf
コマンドプロンプトからwhere ruby
多分rubyがバッチファイル
921デフォルトの名無しさん
2017/08/17(木) 23:48:20.77ID:+Rt8Y1Dv
バッチファイルだとしても引数渡さないとかアホやろ
922デフォルトの名無しさん
2017/08/18(金) 00:04:08.29ID:pRy4OxRt
windowsの関連付けのバグじゃないのかな
923デフォルトの名無しさん
2017/08/18(金) 01:34:08.78ID:0sQWyUaj
以下、そういうときの正確な状況を確認する方法。

次のコマンドラインを実行して、関連付けを確認。
assoc .rb

その出力結果を引数にしてftypeを実行して、実行されるコマンドラインを確認。
924デフォルトの名無しさん
2017/08/18(金) 05:42:06.33ID:kayGF/0k
powershellで実行してるものと、コマンドプロンプトで実行してるものが別ファイルである可能性くらいしか無いのでは
925デフォルトの名無しさん
2017/08/18(金) 09:35:17.44ID:dcEfP3Wf
rubyでOpenglいじってるけどコード書き換えやすくて楽しすぎ
他にも楽しそうなもの無い?
926デフォルトの名無しさん
2017/08/18(金) 10:03:46.81ID:5/NGjmsA
Sequel4でSQL server上の日本語てんこ盛りのテーブルに接続できるか試しているんですが
日本語以前にシンボルを使ったアクセスだと全部upcaseされているっぽくて
大文字小文字混在の識別名?が指定できなくて詰んでます。

これどこで設定すればいいんでしょうか?
927デフォルトの名無しさん
2017/08/18(金) 11:21:40.62ID:MkY1nhvU
.\print_arg_1.rb A
.\ は、カレントフォルダだから、相対パス付き

c:\ で始まっていたら、絶対パス

print_arg_1.rb A
これは、パスではない。
print_arg_1.rb というコマンドになるから、そんなコマンドは存在しない

基本は、実行したいスクリプトファイルのあるフォルダへ、
cd で移動して、そのフォルダで、.\ を付けて、
.\print_arg_1.rb A
とする

#!c:/ruby/bin/ruby
Windows でも、シバンが使えるのか。
パス区切り文字は、/ でも認識できるのか
928デフォルトの名無しさん
2017/08/18(金) 12:56:54.66ID:TX/e1x6q
>>925
OpenCVとか?
929デフォルトの名無しさん
2017/08/18(金) 13:02:16.70ID:TX/e1x6q
>>927
> Windows でも、シバンが使えるのか。

使えるともそうでもないともいえる。
シェルではなく、Ruby自身が解釈する。

https://docs.ruby-lang.org/ja/latest/doc/spec=2frubycmd.html#shebang
930デフォルトの名無しさん
2017/08/18(金) 16:02:30.99ID:eIpnBeVf
しまねω
Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net	->画像>5枚
931デフォルトの名無しさん
2017/08/19(土) 00:44:19.65ID:drv+oAyy
rbのファイルタイプを常に
ruby.exeで開くように設定したんだろう
そのときにたぶん"%1"ぐらいは設定されてるのだろうけど
932デフォルトの名無しさん
2017/08/19(土) 01:00:58.21ID:WAJdahb2
pythonのインストーラーが尋ねる2通りの選択
pathに設定するかwindowsシステムにアプリケーションを登録(推奨)みたいなやつがあって謎だったが
今意味が分かった
933デフォルトの名無しさん
2017/08/19(土) 12:53:30.00ID:9KU7ntuJ
環境変数PATH をいじくったら,

すべてのコマンドの起動に影響するから、大変
934デフォルトの名無しさん
2017/08/19(土) 13:10:45.58ID:s/Tmv27m
WindowsでのRubyプログラムで
一番大変なのは環境構築だからな
環境変数がどうこうはよく調べておくように
935デフォルトの名無しさん
2017/08/19(土) 13:47:01.70ID:9KU7ntuJ
pyenv, rbenv など、仮想環境を使うと、
環境変数PATH の先頭に追加するから、極めて危険

~python2
~python3;~python2

例えば、python コマンドの実行ファイルが、
~python2 ではなく、先に、~python3 のパスで見つかるから

そのコマンドが、どの実行ファイルを起動しているのか、くれぐれも注意せよ
936デフォルトの名無しさん
2017/08/19(土) 15:34:54.77ID:vQyZjPpv
ruby って -K で文字コード指定して実行出来るみたいだけど
バージョン指定して実行するようなオプションってあったっけ
937デフォルトの名無しさん
2017/08/19(土) 15:37:33.84ID:shqQNwwD
>>936
ない
938デフォルトの名無しさん
2017/08/20(日) 20:41:41.88ID:UK9Z84hT
version指定というか、ruby処理系を指定しての実行なら可能なはず
上ででてきた#!c:/ruby/bin/rubyを応用して、
version毎にディレクトリ作ってパス指定
939デフォルトの名無しさん
2017/08/20(日) 21:16:31.03ID:RkJWvq6Y
rbenv 入れろ
940926
2017/08/21(月) 10:32:12.71ID:b3IxGKL2
突き止めました
エクステンションを導入して変換を無効化すればよかったです。

DB.extension :identifier_mangling
DB.identifier_input_method = nil
DB.identifier_output_method = nil
941926
2017/08/21(月) 15:46:43.43ID:b3IxGKL2
間抜けなことしてました。
ODBC使うのにsequelが自前でやってると思ったらruby-odbc使ってた。
だからodbc-utf8を先にrequireしないとutf8が通らなくて日本語以前だった。
ほかにもfreeTDSでutf-8だと指定効かないとか気がつかなかった。

bundlerが依存関係全部処理してたから気がつかなかった…
942デフォルトの名無しさん
2017/08/21(月) 19:28:02.56ID:QB5Pvnbo
おつかれい
943926
2017/08/21(月) 21:57:25.45ID:b3IxGKL2
ありがと。

さらに問題発覚。というかsequelの手抜きなんだけど
likeを発行するときにsql server向けの互換レイヤはLatin1_General_*を強制的に付け足す。
ハードコードされてて切り替えできない。とりあえずlib/sequel/adapters/shared/mssql.rbにパッチ当てたけど
gitみてもこの辺対処されて無いっぽい。5になれば期待できそうな感じはあるけど。

あーやっとやっつけ集計バッチをこれで置換できるかもしれん
あとはsinatraとhamlとsassか…
944926
2017/08/22(火) 11:19:06.95ID:BnyIu5Np
いろいろいじった結果
FreeBSD 11.1R
ruby 2.4.0
sequel 4.48.0
ruby-odbc 0.99998
unixODBC 2.3.4
freeTDS 1.00.131,1
Microsoft SQL Server 2008 R2
の組み合わせで日本語てんこ盛りのデータベースを読むは問題なさそう。作ったり書いたりはこれからだけど基本集計だけだし。
結局utf8周りの設定は一切合切消してもrequire 'odbc-utf8'があれば普通に日本語通ってしまった。
数年前に試したときにうまくいかなかったのも多分これのせいだったんだろう。
945デフォルトの名無しさん
2017/08/23(水) 08:24:54.57ID:UQYl7YfQ
そういば、1.8かどうか忘れたけど、
Arrayの派生クラス同士に+をつかって、新しい派生クラスのインスタンス出力しようとしたら、
派生元のArrayのインスタンスが出力されることがあったな

長い間気づかずどつぼにハマッてたのを思いだした
946デフォルトの名無しさん
2017/08/23(水) 08:33:32.73ID:UQYl7YfQ
Arrayの派生クラス同士に

Arrayの派生クラスのインスタンス同士に
947デフォルトの名無しさん
2017/08/23(水) 14:36:30.50ID:PKj56klS
たいがいの言語でそうなっちゃうでしょ。
まあしかたないね。
948デフォルトの名無しさん
2017/08/23(水) 19:49:57.47ID:XbrvJbom
>たいがいの言語でそうなっちゃうでしょ。

そんなことないよ
静的型だったならどこかでコンパイルエラーになって気づけた可能性もあるよ
949デフォルトの名無しさん
2017/08/23(水) 20:17:43.31ID:UQYl7YfQ
まーた涌きやがったかコイツ

まぁRubyだからこそ直接Arrayクラスのメソッドをself.classをつかったコードに書きえて、
派生先のクラスでも問題なく動かすようにできるわけだけど
当時もそうやって楽に対応できたし、今のverなら書き換える必要も無く対応してるんじゃないか?
確認してないけど
950デフォルトの名無しさん
2017/08/24(木) 04:24:49.42ID:tqCPVr7b
このような実例があると
動的型にすると無駄な時間が増えることが
初心者にも分かりやすくてよいですね
951デフォルトの名無しさん
2017/08/24(木) 07:03:14.83ID:gO5USKuu
普通、配列のような基本的なクラスからは、クラスを派生させない

継承を使うのは、自分で作ったクラスか、
継承されることが前提のクラスだけ

一般的には、継承より包含を使う

包含の方が、継承よりも柔軟だから、
配列のような基本的なクラスには、合っている
952デフォルトの名無しさん
2017/08/24(木) 12:21:31.80ID:NrLz+nwx
DSLに何言ってんだか
Rubyの書きやすさ書き換えやすさは他の言語にない重要なポイントのひとつだろ
953デフォルトの名無しさん
2017/08/24(木) 12:32:10.15ID:5a7RKQDl
>>952
意味不
954デフォルトの名無しさん
2017/08/24(木) 14:28:41.04ID:gfjynZsV
>>948
静的型とか動的型とか全く関係ない

>>945
マニュアルくらい読もうぜ
Array#+ は self + other -> Array
https://docs.ruby-lang.org/ja/2.4.0/method/Array/i/=2b.html

pryでshow-doc, show-sourceすればすぐ分かる内容
show-source Array#+

>>951
言いたいことはわかるがArrayを派生したい場合だってある
Rubyはそういうことを制限しない言語
そのかわりに相応の力量が求められる
955デフォルトの名無しさん
2017/08/24(木) 14:56:19.91ID:gfjynZsV
Arrayから直接派生させるよりも、
EnumerableやForwardable使うほうが普通だとは思うけどね
956デフォルトの名無しさん
2017/08/24(木) 15:12:33.89ID:+u51O4Tc
結果収束的には「可能ではあるが極力行わないようになる」こと自体は間違いはない
なんでもかんでもメソッドチェーンにしないのと似たような感覚
ただし(古い表現だが)足元を弾痕穴だらけにしないとわからない感覚なので、未経験者に最初から指示するようなものでもないな
それはそれで「本当は何もできないやらないわかっていない」机上の人だろう
957デフォルトの名無しさん
2017/08/24(木) 15:38:18.44ID:NrLz+nwx
DSLに何言ってんだか
Rubyの書きやすさ書き換えやすさは他の言語にない重要なポイントのひとつだろ
958デフォルトの名無しさん
2017/08/24(木) 16:33:57.27ID:gfjynZsV
>>956
Arrayを継承したいと考えた理由次第だろ

モンキーパッチ、リファインメント、継承、コンポジション
それぞれメリットデメリットあるんだから初心者であっても
そのトレードオフが理解して自分で判断できるようにならないとダメだよね?

基本クラスであってもどういう方式を選ぶのがいいのかは状況次第だから
背景理由を無視して、一つの選択肢を採用したほうがいいっていうのはちょっとっ極端に感じるよ
959デフォルトの名無しさん
2017/08/24(木) 20:44:43.22ID:tqCPVr7b0
🐒
960デフォルトの名無しさん
2017/08/24(木) 20:49:02.11ID:tqCPVr7b
>>954
仮にArrayを継承させたとして
何かのメソッドで思っていた型と違う型が返ってきたとして
静的型ならコンパイルエラーになって即気づける可能性が高いよね
せっかく>>945がRubyが動的型のせいで
> 長い間気づかずどつぼにハマッてたのを思いだした
って告白してくれてるのに

あるメソッドが、どのような仕様になってるかなんて
そんなものはどのような仕様にでも実装できてしまうわけで
(そう書けばそう動く、というだけ)
大事なのは、勘違いしたとき、間違ったときに、直ぐに気づけるかどうか

だからArrayを継承すべきじゃないとかってのは話の本質じゃなくて
長い間気づかずドツボにハマってたのは何故かって部分なんだよ
961デフォルトの名無しさん
2017/08/24(木) 20:50:35.58ID:tqCPVr7b
俺みたいなののほうがマトモなこと言ってるのがもう不思議なぐらいだろ?
962デフォルトの名無しさん
2017/08/24(木) 20:50:57.98ID:tqCPVr7b
それぐらいダメってことなんだよ、言語もコミュニティーも
963デフォルトの名無しさん
2017/08/24(木) 21:04:10.31ID:sQWhHmgZ
はいはいNGNG
964デフォルトの名無しさん
2017/08/24(木) 21:37:49.84ID:gfjynZsV
>>960
言語を使う側の能力の問題を
全部言語のせいにしちゃだめだよ

var result = myArray1 + myArray2

↑みたいに型推論使ってたら似たような事起きるだろ
それは型推論自体がダメだからなのか? 型推論使用禁止にする?
使う道具のメリットデメリットをちゃんと理解して使いこなせてないからだろ

静的型にメリットがあるのはわかるが結局それはトレードオフなんだよ
何を選択するかの問題
965デフォルトの名無しさん
2017/08/24(木) 21:46:32.32ID:tqCPVr7b
その場合でもresultをどこかに渡したり
継承で拡張したメソッドを使ったり
実用的なことをしようとした瞬間にコンパイルエラーになる
お前はそのresultを何も使わずにそのまま捨てるのか?
結局、現実的な部分が全くないんだよね
机上の空論、それがRuby
966デフォルトの名無しさん
2017/08/24(木) 21:51:04.51ID:tqCPVr7b
しかも俺は
>気づける可能性が高いよね
とも書いてるわけで
現実的にはどこかの段階でコンパイルエラーになる可能性が高い、と
967デフォルトの名無しさん
2017/08/24(木) 21:55:21.82ID:Z79NM4TL
スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
968デフォルトの名無しさん
2017/08/24(木) 21:56:03.09ID:yIhxd10m
コンパイルが通ってもその後テストを走らせることになるけどな
969デフォルトの名無しさん
2017/08/24(木) 22:02:02.88ID:gfjynZsV
>>965
オーバーライドしたメソッド呼び出してもコンパイルエラーにならないだろ
静的型でも同じこと十分起こりえるよ

運良くコンパイルエラーで拾えるケースだけ上げて
静的型使うべきなんていう主張はナンセンス

力量が低いやつは静的型選んだほうがいいよっていうアドバイスなら
まだ理解できるけどね
970デフォルトの名無しさん
2017/08/24(木) 22:05:10.57ID:Z79NM4TL
再三にわたり伝えましたが、もう一度
スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
971デフォルトの名無しさん
2017/08/24(木) 22:10:19.62ID:tqCPVr7b
起こりえるが、可能性は低いわけだ
運良くコンパイルエラーで拾える、というより
運悪くコンパイルエラーで拾えないケースもありうる、ということ

運が良くないとコンパイルエラーで拾えないんなら
静的型言語はこんなに普及してないし、もてはやされてもない
現実が全く見えていないんだね
972デフォルトの名無しさん
2017/08/24(木) 22:10:38.73ID:kEm5qs8H
>>967
LLスレで相手にされなくなったからな
隔離スレの自覚持って欲しいもんだ
973デフォルトの名無しさん
2017/08/24(木) 22:13:45.33ID:gfjynZsV
>>970
「だから動的型はダメなんだ」とか思っちゃう初心者が出ないように
きちんと反論しとくことは重要じゃねーの?

>再三にわたり伝えましたが、
って>>967の1回だけじゃんww
974デフォルトの名無しさん
2017/08/24(木) 22:18:05.33ID:lIOBscyk
>>973
私たちにとってはなんら重要ではありません
お帰りください
975デフォルトの名無しさん
2017/08/24(木) 22:19:22.21ID:gfjynZsV
>>971
型推論禁止すれば運悪くコンパイルエラーで拾えないケースも潰せるね
976デフォルトの名無しさん
2017/08/24(木) 22:20:59.16ID:gfjynZsV
>>974
なんでお前が勝手に決めてんの?
977デフォルトの名無しさん
2017/08/24(木) 22:23:28.89ID:lIOBscyk
>>976
あなたにはもうそれを判断できるだけの客観的知性が残っていないからです
978デフォルトの名無しさん
2017/08/24(木) 22:26:09.58ID:yIhxd10m
>>969
力量が低いだけに留まらず、現実逃避する頭の悪い知ったかぶりのお馬鹿さんなら
あなたが話しかけてるそこにいますよ
979デフォルトの名無しさん
2017/08/24(木) 22:39:55.72ID:tqCPVr7b
俺が言うのもなんだけど
ID:Z79NM4TLやID:lIOBscykのが正解だと思うよ
「そんなことは初めから分かってて承知の上で使っているのだから
 放っておいてくれ」
って所でしょ
欠点を認められずに使ってる方が異常
980デフォルトの名無しさん
2017/08/24(木) 23:09:32.94ID:Z79NM4TL
スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
スレッドの趣旨が分からないなら1を読んで下さい
これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、
措置を取ります
981デフォルトの名無しさん
2017/08/24(木) 23:11:07.39ID:h4EzWrOx
自分が何をしてるか全く理解できないんだろうな
レスがつくことそのものに興奮してここがどこかも判断できていない

貴方達そのものを我々は必要としていない
貴方達が書き込んだそのものを私たちは歓迎しない
我々私たちの望みはひとつだけ、二度とここに来るな
982デフォルトの名無しさん
2017/08/24(木) 23:27:57.47ID:tqCPVr7b
何か映画とかで、スラム街とか田舎町の住人に言われそうなセリフ
983デフォルトの名無しさん
2017/08/24(木) 23:38:06.01ID:Z79NM4TL
スレッドの進行を妨害するのは止めてください
みんなが迷惑を被っています
スレッドの趣旨が分からないなら1を読んで下さい
これ以上妨害を続ける場合は、過去の妨害行為時のログを元に弁護士との相談の上、
措置を取ります
984デフォルトの名無しさん
2017/08/24(木) 23:39:36.79ID:c/yv4qcw
過去のgem配布サイト復活しないかな
985デフォルトの名無しさん
2017/08/25(金) 05:58:03.30ID:ZShOFEd5
「Effective Ruby」項目21にも書いてある

コアクラスを継承するな。委譲・包含(Forwardable)を使え。
is-a よりも、has-a を使え

たいていの言語では、String型なども継承できない。
final 指定されてる

初心者は、コレクションを継承したがるが、アンチパターン。
継承すれば、バグるだけ

たいていの「Effective 何々」とか、デザインパターンの本にも、書いてある
986デフォルトの名無しさん
2017/08/25(金) 06:40:42.06ID:aRYPlL4U
>>981
例の人は自分が来るせいで誰も居なくなったんだってわかってないからな
コミュニティは衰退したのではなく特定の人物の書き込みにより破壊されたのだ
987デフォルトの名無しさん
2017/08/25(金) 07:08:25.93ID:w/d6Mddl
Arrayのような多くの人が慣れ親しんだインタフェースを提供したいと考えてるんだが、
それ自体が慣れで運用してしまうから問題、ということなのか?
極端な話myaddとかにした方がいいのか
988デフォルトの名無しさん
2017/08/25(金) 07:24:38.55ID:w/d6Mddl
>>985
アンチパターン名は?
989デフォルトの名無しさん
2017/08/25(金) 10:40:58.89ID:ZShOFEd5
JavaScript の、prototype.js なども、コアクラスを上書きして、挙動が変わるから、
皆から、うっとうしがられてる

とにかく、バグるから、個人で、コアクラスを修正してはいけない

やってもいいのは、Date クラスに、便利な関数を追加したり、
Rails とか、使用説明書・メンテナンスもしっかりしている、
有名なフレームワークだけ
990デフォルトの名無しさん
2017/08/25(金) 11:07:17.19ID:8cxOpMBd
↑こいつはRuby畑の人間じゃないな
991デフォルトの名無しさん
2017/08/25(金) 11:27:54.95ID:BwHFndLq
>>985
項目21の根拠はなんでしょう?

1. 継承を使うとなるとSuper Classの詳細を知る必要がある。
2. 移譲なら使いたい機能をつまみ食いすれば良いので楽。

こう言う事でしょうかねぇ?
992985
2017/08/25(金) 12:26:40.27ID:ZShOFEd5
例えば、親のArray から、子のDerivedArray を派生させて、
reverse を呼んでも、子クラスを返さず、親クラスを返してしまう

全メソッドを、派生クラスに対応させるのが、無理だから

委譲で、Forwardable モジュールの、def_delegators で、
使うメソッドだけ、宣言する方が簡単

漏れも、10言語以上、数十冊の本を読んでるけど、
配列など、コアクラスを継承した、ソースコードは見た事がないし、
たいていの言語で、継承よりも委譲を使うように書いてある

そういう論文も多い
993デフォルトの名無しさん
2017/08/25(金) 12:36:03.24ID:BwHFndLq
>>992
ところで、論文はどのJournalから?
994985
2017/08/25(金) 13:01:27.87ID:ZShOFEd5
「c++ 継承 委譲」で検索!

ほとんどの論文が、継承よりも委譲
995デフォルトの名無しさん
2017/08/25(金) 15:26:58.12ID:W3qddKKH
クロージャーつかおう
996デフォルトの名無しさん
2017/08/25(金) 15:28:23.63ID:sLUvaIRs
a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
b=[[1,3,4,5,6,8,9,11,13],[2,3,4,5,7,8,10,12,14]]
aの配列からbの配列を作り出すにはどの様にしたらいいでしょう?
997デフォルトの名無しさん
2017/08/25(金) 15:32:56.84ID:BwHFndLq
>>996
>a=[[1,2],3,4,5,[6,7],8,[9,10],[11,12],[13,14]]
まずは、
a=[[1,2],[3, 3],[4,4],[5,5],[6,7],8,[9,10],[11,12],[13,14]]
を作る。
998デフォルトの名無しさん
2017/08/25(金) 15:36:12.98ID:BwHFndLq
ar = []
a.each do |e|
if !e.instance_of?(Array) then
ar << [e, e]
else
ar << e
end

まずはこんな感じ!
999デフォルトの名無しさん
2017/08/25(金) 15:50:59.00ID:4MOWRfGQ
>>996
b = a.each_with_object([[],[]]) {|(x, y), acc| acc[0] << x; acc[1] << (y || x) }
1000デフォルトの名無しさん
2017/08/25(金) 16:00:09.35ID:HsL9LVKJ
次スレ
Ruby 初心者スレッド Part 61
https://mevius.2ch.net/test/read.cgi/tech/1503644351/
10011001
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 118日 13時間 58分 11秒
10021002
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php

ニューススポーツなんでも実況



lud20250303001037ca
このスレへの固定リンク: http://5chb.net/r/tech/1493398918/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Ruby 初心者スレッド Part 60 [無断転載禁止]©2ch.net ->画像>5枚 」を見た人も見ています:
Ruby 初心者スレッド Part 66
Ruby 初心者スレッド Part 67
【UE4】Unreal Engine 4 初心者質問スレッド part1
【ドラガリ】ドラガリアロスト 初心者スレ part 8 【リセマラ相談】
【LoL】League of Legends 初心者スレ Part304
【LoL】League of Legends 初心者スレ Part297
【LoL】League of Legends 初心者スレ Part284
【LoL】League of Legends 初心者スレ Part346
【投資一般板】初心者質問スレッド Part 71
【LoL】League of Legends 初心者スレ Part185
【LoL】League of Legends 初心者スレ Part204
【LoL】League of Legends 初心者スレ Part372
【MTGA】Magic The Gathering Arena 初心者スレ 49
【LoL】League of Legends 初心者スレ Part206 [無断転載禁止]
MacOSX86初心者スレッド Part7
★☆時計板の初心者総合質問スレッド Part84★
【PS4】ARK: Survival Evolved 初心者 part55
【PS4】ARK: Survival Evolved 初心者 part72
【PS4】ARK: Survival Evolved 初心者 part73
【PS4】ARK: Survival Evolved 初心者 part93
【投資一般板】 初心者質問スレッド Part66
セキュリティ初心者質問スレッド Part144
【投資一般板】 初心者質問スレッド Part33 [無断転載禁止]
優しくお前らが初心者である俺にRubyを教えるスレ
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part104
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part87
【セルフ用】ジェルネイル初心者中級者向け質問・雑談スレ Part.4
◆◆園芸初心者質問スレッド PART127◆◆
【サブキャラ】自称初心者観察スレッドPart10【詐欺】
PC版】APEX LEGENDS初心者スレ Part115
【疑問】アジング初心者スレ【質問】 Part.2
コンカラーズ・ブレード 質問・初心者スレ part8
【初心者】ダイエット質問・相談スレPart210
Microsoft Flight Simulator初心者質問箱 Part2
くだすれPython(超初心者用) その45【Ruby禁止】
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part8
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part196
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part479
【プリコネ】プリンセスコネクト! Re:Dive初心者スレ Part117
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレpart192
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレpart210
DQ10】初心者大使を語るスレッド485
Elona初心者質問スレッド その120
ヤフオク初心者質問スレッド 811問目
ヤフオク初心者質問スレッド 813問目
超初心者のための質問スレッド★アンプ編 46★
超初心者のための質問スレッド★スピーカー編 70★
エアブラシ総合スレッド Part 83
youtube初心者スレ収益化 跳躍編part20
youtube初心者スレ収益化 飛躍編part6
シャドウバース初心者&質問スレPart4 [無断転載禁止]
【初心者】ダイエット質問・相談スレPart219
メビウスFF初心者・質問スレPart18 [無断転載禁止]
【若葉】運転初心者のためのスレPart121【黄|緑】 [無断転載禁止]
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレpart410
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレpart267
【プリコネ】プリンセスコネクト! Re:Dive初心者・中級者スレpart863
【DQ10】初心者大使を語るスレッド583
【DQ10】初心者大使を語るスレッド582
Elona初心者質問スレッド その115
ピアノ大人初心者のためのスレッド 21日目
囲碁・初心者専用の質問スレッド 第24局 [無断転載禁止]
【FF14】初心者の館 Part464
【初心者】キャンプ質問スレッド【達人】 26
【DTM】初心者質問スレッドVol.86ワッチョイ無し
【FF14】初心者の館 Part520
07:10:31 up 51 days, 8:09, 1 user, load average: 8.06, 7.78, 7.49

in 0.19055581092834 sec @0.19055581092834@0b7 on 060720