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

Ruby 初心者スレッド Part 66 YouTube動画>16本 ->画像>2枚


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

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

1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 65
http://2chb.net/r/tech/1545421414/

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

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

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

2デフォルトの名無しさん (ワッチョイ 422c-RM0q)2020/01/04(土) 01:17:09.19ID:X7t3Qsuc0
Rubyの絵本、2008
たのしいRuby 第5版、2016

3ステップでしっかり学ぶ Ruby入門、2018

かんたん Ruby (プログラミングの教科書)、2018

プロを目指す人のためのRuby入門、2017

改訂2版 パーフェクトRuby、2017

改訂2版 Ruby逆引きハンドブック、2018 (中級者向け)

Effective Ruby、2015 (中級者向け)

メタプログラミング Ruby 第2版、2015 (中級者向け)

リファクタリング:Rubyエディション、2010 (中級者向け)

RubyでつくるRuby ゼロから学びなおすプログラミング言語入門、2017 (中級者向け)

Rubyのしくみ、2014 (中級者向け)

改訂4版 基礎 Ruby on Rails、2018

パーフェクト Ruby on Rails、2014

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、2014

オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016

Seleniumデザインパターン&ベストプラクティス、2015

3デフォルトの名無しさん (ワッチョイ 422c-RM0q)2020/01/04(土) 01:17:57.47ID:X7t3Qsuc0
開発環境

RDE
Windows用IDE
https://ja.osdn.net/projects/sfnet_rubyde/
以下、RDEの使用説明
http://rubyde.sourceforge.net/hiki/ja/FrontPage.html

RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること。
RDE付属のdebug2.rbは、ruby1.8用のスクリプトのため、現在のrubyのversionには使えません

サクラエディタ
Windows用高機能エディタ
https://ja.osdn.net/projects/sfnet_sakura-editor/
以下、ruby用設定の説明
http://supportdoc.net/support-sakura/ruby.html

Emacs
GNUの高機能エディタ

Vim
Emacsと同じぐらい有名なCUIベースのエディタ

VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
https://code.visualstudio.com/download

4デフォルトの名無しさん (ワッチョイ 2ed3-9wJp)2020/01/04(土) 01:58:51.41ID:HyaapUw60
乙です

前スレの「メソッドはオブジェクトか?」に関連してなんですが
RubyのUnboundMethodやMethodのインスタンスたるメソッドオブジェクトって
既存のメソッドと等価な複製が作れるってだけで
元のメソッドをオブジェクトにしたものってわけじゃないですよね?

たとえば、特異クラスなんかだと普段はオブジェクトじゃないけれど
class << self; self end みたいなイディオムや Object#singleton_class メソッドでオブジェクトとして取り出せるし
ブロックも &b のような仮引数を付すことでやはりオブジェクトとして取り出せるわけですが
これらとはメソッドとは話が違う

つまり「Rubyのメソッドはオブジェクトではない(〜としては扱えない)」と考えるのが妥当だと思うのですが
この理解で合っていますか?

5デフォルトの名無しさん (アウウィフ FFa5-p4uH)2020/01/04(土) 12:04:30.94ID:trUJS7QSF
今北だが
前スレの終わり方が酷過ぎてワロス
もう新スレなんだしそれ以上言うな

6デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/04(土) 12:53:40.81ID:I8dHRpysa
これか

996 デフォルトの名無しさん (ワッチョイ 6265-oRfB) sage 2020/01/03(金) 21:03:06.07 ID:e4Snrs1J0
>>993
間違っているという指摘、そのものが誤りだということ

モダンな関数型言語において、すべての値(object)は第一級市民であるが
値と値との関係である適用は値ではない
したがって、そもそも値ではない適用を第一級市民ではないと否定する主張が誤りである
そんなの当たり前だよね

同様に、純粋オブジェクト指向言語において、すべてはオブジェクトであるが、
オブジェクトとオブジェクトとの間の関係であるメソッドはオブジェクトではない
したがって、そもそもオブジェクトではないメソッドを、あえて否定する>>991が誤りではないかと

たとえば、>>986 とそれにに対する反論である>>987 を改ざんして:
  986 rubyって全てがオブジェクトなところがいいですよね
    (ただしメソッドがオブジェクトなのは常識ですから、あえて言及しませんけど)

  987 コメントはオブジェクトじゃないぞ

だったとして、それでもなお>>987を擁護する?

7デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/04(土) 15:14:00.74ID:I8dHRpysa
これはメッセージとメソッドの区別が付いていない
よくあるパターン?

8デフォルトの名無しさん (ワッチョイ 422c-RM0q)2020/01/04(土) 23:46:45.39ID:X7t3Qsuc0
Ruby には関数スコープ内に、ブロックスコープがある

関数は、外側の変数を通さない。
一方、ブロックは通す。つまり、クロージャ

C と同じの、強固な2段階スコープ!

一方、JavaScript はクロージャしかない。
関数もクロージャだから、第一級関数

その欠点は、外側の変数を通してしまうから、バグが増える。
だから、Ruby は、2段階スコープを採用したのだろう

処理を持ち運ぶ場合だけ、オブジェクトに変換すればよい

9デフォルトの名無しさん (ワッチョイ 2ed3-9wJp)2020/01/05(日) 01:29:02.13ID:+qhlN9cW0
つまりRubyではメソッドそれ自体はオブジェクトではない
ということでしょうか?

10デフォルトの名無しさん (ワッチョイ 9233-YCNF)2020/01/05(日) 01:51:26.84ID:CSAIgDGG0
>>9
メソッド自体を、独立したオブジェクトのように扱えるか?
扱えないならそういうこと。

ただ、ちょっと工夫すれば、似たようなことはだいたい実現できるから、その区別にはそれほど意味がない。

11デフォルトの名無しさん (ワッチョイ 8201-TJkF)2020/01/05(日) 15:36:12.39ID:NzdiaSgk0
「The Ruby Programming Language」David Flanagan and Yukihiro Matsumoto

6.7 Method Objects
Ruby’s methods and blocks are executable language constructs, but they are not objects.
Procs and lambdas are object versions of blocks; they can be executed and also manipulated as data.
Ruby has powerful metaprogramming (or reflection) capabilities, and methods can actually be represented as instances of the Method class.

12デフォルトの名無しさん (ワッチョイ 422c-RM0q)2020/01/05(日) 22:47:41.92ID:BPHXVrhY0
JavaScript 第6版、2012、David Flanagan

彼は、JS のバイブル、表紙がサイの絵の、いわゆるサイ本も書いてる!
Google などのエンジニアの机に、必ず置いてある

13デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/05(日) 22:55:53.02ID:UM8RYdV+0
サイフォン?

14デフォルトの名無しさん (アウアウカー Sa69-JS+6)2020/01/05(日) 23:56:52.37ID:DQgvXjWRa
同じ純粋オブジェクト指向言語のSmalltalkと比べてみた
Rubyのメソッドオブジェクトは要求される度に作っているみたいで持ち出し専用
Smalltalkのメソッドオブジェクトはそのものでその気になれば中身も弄れる

class Object; def foo; "bar" end end
um1 = Object.instance_method(:foo)
um2 = Object.instance_method(:foo)
um3 = um1.clone
p [um1, um2, um3].map{ |m| m.object_id }
#=> [60, 80, 100]

obj = Object.new
bm1 = obj.method(:foo)
bm2 = obj.method(:foo)
bm3 = bm1.clone
p [bm1, bm2, bm3].map{ |m| m.object_id }
#=> [120, 140, 160]

--

"Pharo Smalltalk"
Object compile: 'foo ^''bar'''.
cm1 := Object compiledMethodAt: #foo.
cm2 := Object compiledMethodAt: #foo.
cm3 := cm1 copy.
{cm1. cm2. cm3} collect: [:cm | cm identityHash].
"=>#(832658944 832658944 425444352) "

self foo. "=> 'bar' "
(cm1 literalAt: 1) at: 3 put: $z.
self foo. "=> 'baz' "

15デフォルトの名無しさん (ワッチョイ 9233-YCNF)2020/01/06(月) 00:28:28.35ID:bN5NBzFy0
C#も、メソッドをランタイムにビルドできるんやで!

16デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 01:11:00.75ID:Bux8XPhea
いやここでのポイントはメソッドがオブジェクトなのかどうかであって
ランライムにメソッドをビルドできるかは関係ないしむしろ出来て当前

17デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/06(月) 09:04:50.20ID:0zhzHQ2W0
>>14
> その気になれば中身も弄れる
それが良いことだと思わないんだけどなw

そんなことやるか?やらない。できる必要あるか?ない
アセンブラであれば、中身だろうがなんでもできる
言語というのは成長するにつれてより制限されるもの
制限といえば聞こえは悪いが、ある機能に特化することで
ミスを防ぎ、コードを書いた人のより正確に表すことができる

18デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/06(月) 09:05:20.36ID:0zhzHQ2W0
、コードを書いた人の意図をより正確に表すことができる

19デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 09:24:31.96ID:9LVBkQo0a
Rubyは自分の足を撃とうと思えばそれが出来る(自由がある)のがLisp譲りの
言語持つのパワーでありある種のウリなんだけど初心者だから知らないのかな…

20デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/06(月) 09:35:32.06ID:0zhzHQ2W0
> Rubyは自分の足を撃とうと思えばそれが出来る

それがいいことだと思い込んでるのがおかしい
常識に囚われ思考を放棄してる

21デフォルトの名無しさん (アウアウエー Sa4a-9wJp)2020/01/06(月) 09:35:53.64ID:N9H2b+k8a
Smalltalkの最後の例はメソッドオブジェクトがRubyのモドキと違って
現物だと端的に示すための例であって流石に普段はやらないと思うぞ!

22デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 09:40:05.07ID:x7xAEFKOa
>>20
おやおやそんなナイーブな考えじゃRailsみたいなのは永久に作れないよ?

23デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/06(月) 09:48:15.44ID:0zhzHQ2W0
>>22
何も根拠がないねw

24デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/06(月) 09:49:47.24ID:0zhzHQ2W0
Railsみたいなフレームワークはたくさんあるね
Rubyの機能なんて不要だったってことさ

25デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 10:00:05.37ID:x7xAEFKOa
んRailsがなければRubyが今の地位はないし
Railsの実装はRubyの黒魔術が効果的に活用されているというのは
説明不要の有名な話だと思っていたが?
やっぱり初心者だから知らないのか…

26デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 10:01:33.21ID:x7xAEFKOa
>>24
語るに落ちているよ…(´・ω・`)

27デフォルトの名無しさん (ワッチョイ c2d2-hZl1)2020/01/06(月) 10:03:22.46ID:ymuirMBT0
初心者だから「メソッドはオブジェクトじゃない」という発言に対して見当はずれな頭の悪い反論をしてたんだな

28デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 10:16:33.06ID:x7xAEFKOa
どうやら>>7のセンも濃厚っぽいな…

29デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/06(月) 10:21:29.07ID:0zhzHQ2W0
>>25
Railsの実装はRubyの黒魔術が使われてる・・・事実
同等のものはRubyの黒魔術を使わなくても作れる・・・事実

30デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 10:27:39.91ID:x7xAEFKOa
>>29
他言語のRailsモドキはRailsと同等な機能もあるがすべてが等価ではない・・・事実
Railsの覇権はRailsモドキとの差異によってもたらされている・・・事実

31デフォルトの名無しさん (オッペケ Srf1-1wr4)2020/01/06(月) 10:30:38.61ID:MCXR7U+mr
どうやらガチで頭の残念な子みたいだねw
作れるかどうかなんて、入出力さえ十分にできればほぼすべての言語で作れるっつーのw

32デフォルトの名無しさん (ワッチョイ e514-DsOW)2020/01/06(月) 10:52:42.23ID:0zhzHQ2W0
作れるかどうかの話はしてないよ。
どれだけ簡単に作れるか

Railsの開発速度が際立って高いわけではない
むしろ後から追いつかれてる

33デフォルトの名無しさん (アウアウカー Sa69-9wJp)2020/01/06(月) 11:12:38.64ID:x7xAEFKOa
>>32
アンチ隔離スレに行け!

34デフォルトの名無しさん (ワッチョイ c2ad-oe9l)2020/01/06(月) 14:44:11.25ID:DmV1IuhC0
現在使用してる教材でテストツールとしてminitest、test-unit、RSpecが紹介されてたんですが
実際のところどれを使えばいいんでしょうか?

35デフォルトの名無しさん (ワッチョイ 8201-TJkF)2020/01/06(月) 16:19:52.25ID:78RinjQr0
>>34
Spec形式が好みならRSpec
xUnit形式が好みならminitest

よく分からないなら標準ライブラリに入ってるminitestから

36デフォルトの名無しさん (ワッチョイ c2ad-oe9l)2020/01/06(月) 18:44:57.86ID:DmV1IuhC0
ご回答ありがとうございます
とりあえずminitestでやってみて何か不都合があれば他も試してみる方針でやってみます

37デフォルトの名無しさん (ワッチョイ 4914-DsOW)2020/01/06(月) 19:25:48.00ID:6twfZFtd0
で、最終的にはrspecになるんやろ?
もしくはrspecを横目にminitestはminitestで
これもありなんだって言い訳しながら使うw

38デフォルトの名無しさん (ワッチョイ 422c-RM0q)2020/01/07(火) 00:37:14.85ID:ueOqy5pf0
BDD(behavior driven development) では、RSpec が標準!

宮下剛輔が作った、サーバー構築テストのServerspec も、RSpec。
JavaScript(JS) のMocha も、RSpecのコピー

基本的に、Rubyで流行ったものは、すぐに、JS, Kotlin へ移植される

39デフォルトの名無しさん (ワッチョイ c214-DsOW)2020/01/07(火) 03:12:30.76ID:tLIimsUP0
RSpecのJS, Kotlin移植版ってどれのこと?
BDDってそんなに流行ってるの?
まああるかもしれないけどxUnitの方が主流だと思うな。JUnitとか

40デフォルトの名無しさん (ワッチョイ 422c-RM0q)2020/01/07(火) 07:26:57.50ID:ueOqy5pf0
Windows で、Ruby 2.4 から、2.5へ変えたら、
selenium webdriver を使うのに、ffi が必要になった!

でも、コードはそのまま動く

41デフォルトの名無しさん (ワッチョイ 9233-YCNF)2020/01/07(火) 20:57:12.48ID:9/TsdlFE0
必須でないモジュールが分離されていってんのやろ。

42デフォルトの名無しさん (ワッチョイ 7fad-n+mb)2020/01/09(木) 16:02:09.08ID:sfRV4jRV0
irbで(整数).object_id と入力すると(整数)*2 - 1 が帰ってくるんですが、そういう仕様なんですか?

43デフォルトの名無しさん (ワッチョイ 7fad-n+mb)2020/01/09(木) 16:08:04.37ID:sfRV4jRV0
訂正
× (整数)*2 - 1
○ (整数)*2 + 1

44デフォルトの名無しさん (ドコグロ MM7f-JyDu)2020/01/09(木) 17:47:10.30ID:H5szYUtEM
>>39
BDDというかテストコードを自然言語に似せようとする系は、Goの台頭に伴ってすっかり廃れちゃったね
自動テストの最大の意義は入出力のスナップショットとして予期せぬ挙動の変化を検出できることにあるので、
細かい仕様をテストコードで表現しようとするよりも単純に入出力を並べた方が手っ取り早いし効果も高いんだよな
一方BDDは、網羅性や変化検出性能が不十分でも最低限大半のコードを通ってれば無いよりは遥かにマシだ、
それだけでもスペルミスのような初歩的なバグの大半は潰せるだろう、という手抜き欲求が根底にある
ところが最近は静的型が主流になっちゃってスペルミスみたいなのは起きなくなったから、BDDのようなとりあえず通すだけのテスト手法にはあまり意味がなくなってしまった

45デフォルトの名無しさん (ワッチョイ 5f14-WchB)2020/01/09(木) 17:51:07.91ID:Mk2U0HaP0
>>44
goでテストって何使ってるの?

46デフォルトの名無しさん (ワッチョイ 5f14-WchB)2020/01/09(木) 17:53:19.45ID:Mk2U0HaP0
これ?

Ginkgo is a BDD-style Go testing framework
http://onsi.github.io/ginkgo/

47デフォルトの名無しさん (ワッチョイ 7f2c-JQ6m)2020/01/09(木) 17:59:47.69ID:zp680iXY0
1234567890123456789.object_id
#=> 2469135780246913579

12345678901234567890.object_id
#=> 21368380

大きい整数は、無関係なID になる

たしか、整数は最適化して、オブジェクトを作っていないのじゃなかった?
どこかに、値だけを収めているのじゃ?

48デフォルトの名無しさん (ワッチョイ 7f01-KDxU)2020/01/09(木) 18:13:24.04ID:VxfXfT1S0
>>44
書き方が違うだけでSpec形式でもxUnit形式でもテストする内容は同じだぞ
RSpecじゃなくCucumberみたいなのを使ってたテストはレイヤーが違う

んでもってGoの台頭とか関係ないし
JSで一番使われてるJEST、Mocha、Jasmineの3つともSpec形式が基本

それぞれメリット・デメリットあるからそれを理解して
言語の特性や文化も考慮してから選択すればいい

49デフォルトの名無しさん (ワッチョイ df14-WchB)2020/01/09(木) 18:17:48.65ID:sNMr72pi0
JavaにもRSpecみたいなのってあるんだっけ?
言語的に無理がありそうなんだけど

50デフォルトの名無しさん (ワッチョイ 7fa5-sEAu)2020/01/09(木) 19:54:43.22ID:nuQhSBU10
コンパイラがスペルチェックまでしてくれるからじゃないの
未来のことはわかりません、っていう宗教観でしょ
作った時点で未来に何が起こるか全て分かるのが静的

51デフォルトの名無しさん (ワッチョイ 7fad-n+mb)2020/01/09(木) 20:26:41.00ID:sfRV4jRV0
>>47
そうなんですか
まだRubyをどう使うか勉強中の身ですが、Rubyそのものの仕組みも面白そうですね

52デフォルトの名無しさん (ワッチョイ 7f01-KDxU)2020/01/09(木) 21:53:54.80ID:VxfXfT1S0
>>49
RSpecっぽいのはSpek
RSpecとはちょっと違うけどBDDを謳っててメジャーなのはSpock
あとCucumberはJavaにも対応してる

53デフォルトの名無しさん (ワッチョイ 5f14-Qm2w)2020/01/09(木) 22:05:09.38ID:edJ5p5Tx0
>>50
スペルチェックの話はテストと全く関係ないですよ
テスト以前の問題

54デフォルトの名無しさん (ワッチョイ 7f33-b7GS)2020/01/09(木) 22:54:54.76ID:C+kuIm3o0
>>53
スクリプト系言語では意味があるんだよなあ。

55デフォルトの名無しさん (ワッチョイ 5f14-t8Ak)2020/01/10(金) 00:36:36.31ID:hCTYsry70
>>54
今はgoの話ですよ?
goはスペルチェックさえすればテスト不要だとでも?

5647 (ワッチョイ 7f2c-JQ6m)2020/01/10(金) 17:27:12.96ID:PkgwRlbI0
>>51
こんなに多くの内部実装の解説本が出てる言語は、Ruby以外にない!

まつもとゆきひろ 言語のしくみ、2016

コマンドA | コマンドB
のような、パイプに似た表記で並列処理できる、新言語「Streem」のデザイン・実装

Rubyのしくみ、2014
外人が書いた本。
Cookpad の笹田耕一が作った、Rubyの実装系、Ruby1.9のRuby仮想マシンの説明

笹田耕一は今、RubyVM の仕組みを雑誌、WEB+DB PRESS で連載中

Rubyのなかを覗いてみよう!池澤あやかが「Cookpad Ruby Hack Challenge」に参加してみた
https://next.rikunabi.com/journal/20180601_c11/

NHK Eテレでお馴染みの、Ruby の女神、池澤あやかによるリポート。
たしか、彼女は学生時代に、Rails 合宿に参加して学んだらしい

57デフォルトの名無しさん (ドコグロ MM7f-JyDu)2020/01/10(金) 17:29:32.05ID:915LIh+yM
一般論として、内部実装を知らないと使えないのは作り手としては恥

58デフォルトの名無しさん (ワッチョイ 7fa5-sEAu)2020/01/10(金) 17:31:43.84ID:YP/p9xdd0
真顔で「わたくしはC言語を極めました」と言える人物向け

59デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)2020/01/10(金) 18:18:32.14ID:puBSVXWRF
池澤あやかωωω

60デフォルトの名無しさん (ワッチョイ ffd3-7q2y)2020/01/10(金) 22:32:36.44ID:VhdPbdF+0
しゅき…

61デフォルトの名無しさん (ワッチョイ 7f44-Y/Zm)2020/01/11(土) 13:04:33.98ID:e4hNIYBE0
rubyイスポーラー

62デフォルトの名無しさん (ワッチョイ 7fad-n+mb)2020/01/11(土) 15:44:52.50ID:cvQKeu200
n.object_id == (2 * n + 1) が成立しなくなる条件を調べて試行錯誤した結果
2進数の区切りの良い数ではないかと当たりをつけたところビンゴ

n = 0
loop do
if (2 ** n - 1).object_id == (2 ** n - 1) * 2 + 1
n += 1
else
p n
break
end
end

#=> 63

63デフォルトの名無しさん (ワッチョイ 7fad-n+mb)2020/01/11(土) 15:48:51.00ID:cvQKeu200
(2 ** 62 - 1).object_id == (2 ** 62 - 1) * 2 + 1
#=> true

(2 ** 62 - 1).class
#=> Fixnum

(2 ** 62 ).object_id == (2 ** 62 ) * 2 + 1
#=> false

(2 ** 62 ).class
#=> Bignum

Integerに統合される前のFixnumだと n.object_id = 2 * n + 1 #=> true
Bignumだと n.object_id = 2 * n + 1 #=> false

64デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)2020/01/11(土) 15:48:59.14ID:l/QLWHKHF

65デフォルトの名無しさん (ワッチョイ 7f33-b7GS)2020/01/11(土) 15:51:56.31ID:usOdB8FH0
まあ、とくにきまってるわけでもないやろし、特定してもあんまり意味ないけどな。

66デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)2020/01/11(土) 15:55:40.95ID:l/QLWHKHF

67デフォルトの名無しさん (オッペケ Srb3-VpI/)2020/01/12(日) 00:51:50.16ID:Vj2aFgw8r
頭の悪い奴がひたすらここを自分の日記帳替わりにしてんのくっそ邪魔
そんなん試行錯誤ですらねえよ

68デフォルトの名無しさん (アウアウウー Sa05-s5Rz)2020/01/17(金) 09:22:39.20ID:E+lfOmbYa
Ruby riを使おうとしても「Nothing known about 〜」と出て
repl内でdocumentationを参照できないときの対処法

How do I install the Ruby ri documentation?
https://stackoverflow.com/questions/3178900/how-do-i-install-the-ruby-ri-documentation

69デフォルトの名無しさん (ワッチョイ 220c-muX5)2020/01/17(金) 14:31:01.12ID:vdDSAPn50
東洋経済という株の雑誌の今週号は、今年こそ始めるプログラミング
プログラムの説明は初歩の初歩の初歩レベル
学習難易度がもっとも低い、覚えやすいのがruby、最も平均年収が高いのがGoと紹介
ほんとかなあ

70デフォルトの名無しさん (ドコグロ MMd5-mgaX)2020/01/17(金) 15:51:59.65ID:0sb73h15M
Goは言語自体の難易度はRubyより低い
でもGoエンジニアってGo書けるだけじゃなくてAWSやLinuxやコンテナを使いこなすことが前提なので、
オレRoRやってますウェーイ君なんかとは比較にならないくらい高い技術力と幅広い知見が求められるんだよ
彼らは様々な言語を経験してきた末に「コードなどシステムの1要素に過ぎない」という境地に到達し、
足回りも含めた全体としての柔軟性を追求した結果として、Goという面白みもクソもない「道具」を選択しているんだ
Goだけできても仕事はない

71デフォルトの名無しさん (ワッチョイ 022c-Sfrr)2020/01/18(土) 01:21:19.24ID:ciDfAHTw0
元々、サーバー側は、Ruby の1強だった!
Vagrant, Chef, Serverspec とか

数年後、
Rubyを真似したのが、Node.js で、
Go のDocker も出てきた

先行者利益を得るためには、ビジネスでは、Ruby 1強!
だから、ハーバード大学でも、小資本のベンチャーは、Rubyを勧められる

他の言語では、数年遅れる。
DSL で作りにくいし、開発が非常にややこしく、人材を集められず、費用が膨大だから、
小資本のベンチャー・起業に向かない

SASS も、Rubyで始まった!

72デフォルトの名無しさん (ワッチョイ a914-+9Wh)2020/01/18(土) 02:07:34.56ID:w6J1AYPB0
つまり、Rubyはプロトタイプ用

7371 (ワッチョイ 022c-Sfrr)2020/01/18(土) 02:25:10.35ID:ciDfAHTw0
小資本で起業して、新しいコンセプトの自社サービスを開始するのに、適した言語がRuby。
スタートアップ企業だから、サイトの速度は遅くてもよい

あくまで、ベンチャーは成功しないのが基本w
Rubyは実験用言語とも言える

ところが、たまに化物みたいなサイトを生み出すのも、Ruby

Rails で作った、このサイトの速度は尋常じゃない!
他の言語では、絶対に作れないw
https://dev.to/

Ruby on Rails Part21
http://2chb.net/r/php/1545146635/103

74デフォルトの名無しさん (アウアウエー Sa0a-mgaX)2020/01/18(土) 02:41:28.23ID:AhPxC9uwa
これのことか?
https://dev.to/ben/making-devto-insanely-fast
フロントエンドの設計が優秀なのと静的コンテンツにFastly使ってるから速いって
だけで、ほとんどRails関係ないな

7571 (ワッチョイ 022c-Sfrr)2020/01/18(土) 03:54:28.83ID:ciDfAHTw0
でも、DB は、Rails でしょ?

ちょっと考えられないぐらいに、速いw
あり得ないw

だから、Ruby からは、こういう怪物が出てくるw
実験用言語だから、とんでもない事をやりたいような、面白い香具師が集まってくるw

Cookpad でも、Rubyの実装の中身を覗いてみようという変な企画にも、百人応募してくるw
他言語の香具師も面白がってやってくるw

それがRubyの面白い所w
知的好奇心がそそられて、何か新しいことに挑戦したくなる言語

76デフォルトの名無しさん (ワッチョイ 82a5-36M6)2020/01/18(土) 09:12:19.27ID:6Wtj4R8r0
>>69
アホの東洋経済はわざと因果を逆転させてるアホ集団だから気にしない方がいい
もとから年収の高い集団が内製の新言語使いだしただけだろ

要するに、東洋経済の従業員自体の年収はそんなに高くねーモン
企業内にバカしか詰まって無いから自身が取材したノウハウの全てを使ってない
だから10億プレイヤーが東洋経済にいない

同じ理由で潰れたのがbig tomorrow

77デフォルトの名無しさん (ワッチョイ a914-+9Wh)2020/01/18(土) 09:30:31.53ID:w6J1AYPB0
いやRails遅いでしょ?何と比べて速いって言ってるのさ?

78デフォルトの名無しさん (ワッチョイ e252-iiEx)2020/01/18(土) 10:05:38.54ID:Qnj8VWpB0
>>75
5chを荒らすことしかしてないお前が言っても説得力ゼロだ

79デフォルトの名無しさん (ワッチョイ 5233-j5lD)2020/01/18(土) 17:00:27.15ID:gfH5d2Um0
つうかそもそも、DBはRailsってどういう意味なんや?w

8071 (ワッチョイ 022c-Sfrr)2020/01/19(日) 12:09:49.13ID:qcodQ+dh0
元乃木坂46 の川後陽菜のブログ
https://kawagopro.com/

上を、下のサイトで分析したら、これも、Rails だった!
https://builtwith.com/

アイドルの会員サイトの専門の、SKIYAKI が作っているけど、どおりで速いはず!

81デフォルトの名無しさん (オッペケ Srd1-Ip36)2020/01/19(日) 12:14:17.68ID:7HHjQocqr
×どおりで
○どうりで(道理で)

82デフォルトの名無しさん (ワッチョイ e252-iiEx)2020/01/19(日) 12:40:31.29ID:Wel1D6/w0
>>81
そいつ(>>80)はいつもの荒しだから、道理がわからないのも納得だなw

83デフォルトの名無しさん (ワッチョイ 927c-s5Rz)2020/01/19(日) 13:11:12.72ID:AinWVopR0
いよいよRubyにも型チェックの機能が取り入れられる
型定義は別ファイルに書くようになっていて、文法は以下の感じ
class Foo
  def foo: -> void
  def to_s: -> String
      (Integer) -> String
end
このようなクラス定義によく似た何かを別ファイルに用意しなければならない(面倒だね)
この際、クラス名Fooやメソッド名foo,to_sなどを細心の注意を払って間違いなく正確に記述しなければならない
もし間違えてしまうと型チェックが働かなくなる(だろう)
そして、型チェックツールはそのことを教えてくれないだろうね
何故ならRubyは型定義が無くても動くのが前提だから、名前を間違ってても「あ、型定義無いのね」って思うだけ
なんならクラス名やメソッド名を間違えていないことをチェックするテストコードを書かなければならないかもしれない
そうしないと正しく型チェックが働いたことを誰も保証できないだろう?
「ソースコードのクラス名やメソッド名を変更したけど、型定義ファイルのそれらを修正し忘れる」
というのは普通にあり得るケース、というか一番ありがちなヒューマンエラーの類
絶対だれかヤラカス、容易に想像できる

お気づきのかたも多いだろうが、同じことを二回書かせるから間違える
これはまさに「DRYに反している」典型的事例
ところがmatzに言わせれば、ソースコード上に型を書く方が「DRYに反している」らしい
理由も意味不明 (普通に考えれば別ファイルに書く方がDRYに反している)
https://logmi.jp/tech/articles/321280

このように口を開けば事実と反対の事ばかり言うのがmatzであり
そんな人が作ったRuby自体も反対のあべこべ逆張り言語である

84デフォルトの名無しさん (アウウィフ FF05-otum)2020/01/19(日) 15:31:51.01ID:ehZNNwbSF
俺のRubyがこんなに速いわけがない

85デフォルトの名無しさん (アウアウウー Sa05-s5Rz)2020/01/19(日) 23:07:31.87ID:JsYzYAKPa
入門書に飽きてきた人におすすめ
Rubyだと実例を入手しやすいからいいね

新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
https://speakerdeck.com/todokr/xin-siihurokuraminkuyan-yu-falsexue-hifang-httpsahawozuo-tutexue-hu-java-scala-clojure
https://github.com/todokr/simple-http-server

86デフォルトの名無しさん (ワッチョイ 022c-Sfrr)2020/01/19(日) 23:44:41.65ID:qcodQ+dh0
実践TypeScript - BFFとNext.js&Nuxt.jsの型定義、吉井 健文、2019/6/26

この本を読んでるけど、TS も型地獄w

React(Parcel)でも、型定義ファイルがいる。
npm -i -D @types/react @types/react-dom
@types 以下に、各フレームワークの型定義ファイルを入れておく


React, Next.js, Vue.js, Nuxt.js, Express など、
各フレームワークで、TSへの型対応を進めているけど、地獄w

87デフォルトの名無しさん (ワッチョイ a12d-GCXE)2020/01/20(月) 20:49:11.90ID:YZhtkMgR0
最近、誰でも高額が稼げるような言い方でRuby教材を売ってる人らが目立つな

88デフォルトの名無しさん (ワッチョイ f901-otum)2020/01/21(火) 00:25:49.49ID:dRlbVwUu0
稼げるからね。

89デフォルトの名無しさん (ワッチョイ a12d-GCXE)2020/01/21(火) 00:43:52.91ID:98cKibZ60
本当に稼げるんならいいけど、100万円取られて終わりじゃないの

90デフォルトの名無しさん (ワッチョイ f901-otum)2020/01/21(火) 01:06:10.14ID:kOBQMwNv0
100万稼げるからねって意味だったんですけど。

91デフォルトの名無しさん (ワッチョイ 8d9b-otum)2020/01/21(火) 11:25:04.38ID:USbDfMqQ0
詐欺御用達

92デフォルトの名無しさん (ワッチョイ 82a5-36M6)2020/01/21(火) 12:15:08.17ID:/80lr+DT0
スコップを売って100万稼ぐんだろ

スコップ売りの少女から学ぶべきは一つ
スコップで穴を掘ることではなく、スコップの売り方

93デフォルトの名無しさん (ワッチョイ 8d9b-otum)2020/01/21(火) 12:31:08.84ID:USbDfMqQ0
ruby最強ωωω

@YouTube


94デフォルトの名無しさん (ワッチョイ a12d-GCXE)2020/01/21(火) 16:39:26.54ID:98cKibZ60
>>90
そっちか!勘違いしてたぜ

95デフォルトの名無しさん (ワッチョイ 225c-muX5)2020/01/21(火) 19:28:13.89ID:essSqG5l0
"abc".size などの . は前後に空白があってもOKだった(最近の発見)
"abc" . size

96デフォルトの名無しさん (ワッチョイ 022c-Sfrr)2020/01/21(火) 21:28:11.63ID:nuZnWP/f0
Windows 10, VSCode では、

関数の引数の( ) の有無とか、
obj.method arg_1
obj.method( arg_1 )

メソッドチェーンでのコメントの有無とか、
obj.method_1 # コメント
.method_2 # コメント

こういうので、エラーになったり・ならなかったりする、基準が分からないw

97デフォルトの名無しさん (ワッチョイ 5233-j5lD)2020/01/21(火) 22:49:54.70ID:YQwIan5u0
Rubyは、IDEと相性が悪いからな。
動的型だけじゃなくても、文の区切りがわかりにくい文法も。
しゃあない。

98デフォルトの名無しさん (ワッチョイ 4201-73fV)2020/01/21(火) 23:13:36.42ID:Vd2KBMmO0
しゃあないわけあるかw
使ってるプラグインの作りが悪いだけだろ

99デフォルトの名無しさん (ワッチョイ 022c-Sfrr)2020/01/21(火) 23:27:09.32ID:nuZnWP/f0
VSCode が中心になってから、開発者全員がVSCode を使うようになって、
すべてのエディタ・IDE で使える、言語サーバーの規格化が始まった!

Ruby も対応してくれるかな?

10099 (ワッチョイ 022c-Sfrr)2020/01/21(火) 23:28:44.69ID:nuZnWP/f0
Julia, Python, Ruby に対応してくれれば、

Jupyter Notebook でも良いけど

101デフォルトの名無しさん (オッペケ Sr7b-3C30)2020/01/22(水) 09:39:40.18ID:1i745hKir
メソッドチェーン中の#によるコメントは2.7.0からの新機能

102デフォルトの名無しさん (ワッチョイ 5fa5-UqN9)2020/01/22(水) 09:50:31.20ID:mkyLzVly0
VSCodeの開発言語がVSCodeにとっては最重要言語でしょ
そうじゃない言語は傍流だから切られる

使えますよとしてるのはVSCodeに囲い込むための方便
ゆくゆくはそんな傍流には消えてほしい……とするのが普通の策略

103デフォルトの名無しさん (ドコグロ MM5b-9ipO)2020/01/22(水) 10:10:14.80ID:uoDMOHZtM
MSはVSCodeをTypeScriptで書くことによって動的型に止めを刺したよね
ついでにMatzの愛するEmacsも完全にパイを奪われて死んだし、そんな因縁のエディタでRuby書くとか恥知らずもいいとこ

104デフォルトの名無しさん (オッペケ Sr7b-3C30)2020/01/22(水) 10:56:05.26ID:1i745hKir
Emacsが死んだとかどの世界の住人ですか

105デフォルトの名無しさん (ワッチョイ df33-TZXF)2020/01/22(水) 22:50:36.18ID:rp7FIzPH0
テキスト編集能力よりも、アプリケーション開発能力を優先すると、IDEが勝つ。
ターミナル経由だと、IDEは動作しようがないので、テキストエディタが勝つ。

106デフォルトの名無しさん (ワッチョイ 5f2c-++Vr)2020/01/22(水) 23:10:32.35ID:fyGKoId60
require 'webrick'

srv = WEBrick::HTTPServer.new( {
:BindAddress => '127.0.0.1', :Port => 20080 } )

srv.mount( '/', WEBrick::HTTPServlet::FileHandler, './' )

Signal.trap( :INT ){ srv.shutdown } # Ctrl+C で終了
srv.start

Windows 10, Ruby 2.5 で、
カレントフォルダに、index.htm と画像ファイル、abc.jpq を置いて、
WEBrick のServer/Servlet を起動して、ブラウザで見ると、
HTTP 304 で画像を、ローカルPC のキャッシュから取得するので、見えない!

1-liner で、
ruby -run -e httpd . -p 20080
としても見えないが、ポート番号を10080 に変えると見える!

常に見えるようにするには、どうすればよい?

107デフォルトの名無しさん (オッペケ Sr7b-3C30)2020/01/22(水) 23:15:37.70ID:1i745hKir
jpqだからじゃねえの

108106 (ワッチョイ 5f2c-++Vr)2020/01/23(木) 00:02:00.95ID:31WWjqFP0
>>106
タイプミスを修正します!

>abc.jpq
abc.jpg

109デフォルトの名無しさん (ワッチョイ 5f01-oRbG)2020/01/23(木) 00:38:32.32ID:9sgUs0f40
304が返される状態にもかかわらず
画像が見えないなら基本的にはクライアント側の問題
まずはHTTPリクエストを確認しろ

110106 (ワッチョイ 5f2c-++Vr)2020/01/23(木) 00:49:20.77ID:31WWjqFP0
Windows 10 のローカルPC は、アクセス権限が厳しいから、

サーバーを立てても、ブラウザのローカルキャッシュを見れないのかも?

111デフォルトの名無しさん (ワッチョイ 872d-N7cG)2020/01/23(木) 05:02:20.43ID:DWwoifTV0
Web開発でRubyが下火になってきてるらしいけど、一体何に移ってるの?
node.js + Reactみたいに単純な構造のものを組み合わせるのが流行ってるわけ?

112デフォルトの名無しさん (アウアウエー Sa1f-9ipO)2020/01/23(木) 08:38:09.14ID:WRgaKbBya
>>111
そうだよ
nodeやgoへ移ってる

113デフォルトの名無しさん (アウアウエー Sa1f-9ipO)2020/01/23(木) 08:54:27.38ID:WRgaKbBya
途中書き込み失礼
ちなみにRubyの需要が減ってるかというとそんなことはなくて、むしろ伸びてる。
じゃあなんでnodeやgoへ移ってるように見えるかというと、移行してるのは情報発信に積極的な意識高い層が中心だから。
彼らは主に(例えばCookpadのような)自社サービスで働いていて、事例としても目立ちやすいというわけ。
Rubyはプログラミングスクールで人気があるため低スキルエンジニアが供給過剰状態で、PHPの代替として低単価案件での採用が増えている。
それに伴い、意識の高い人は値下げ競争から離脱しつつあるの。

114106 (ワッチョイ 5f2c-++Vr)2020/01/23(木) 09:48:33.02ID:31WWjqFP0
VSCode の拡張機能、Live Server で見たら、画像も見れる!

WEBrick のServer/Servlet と何が違うのかな?

115デフォルトの名無しさん (オイコラミネオ MMdb-TZXF)2020/01/23(木) 19:32:54.35ID:vOsDgWR6M
キャッシュコントロールヘッダじゃないの?
知らんけど。

116106 (ワッチョイ 5f2c-++Vr)2020/01/24(金) 03:55:37.06ID:L98ica9l0
ブラウザのF12 開発者ツールで指定できる!

Chrome の開発者ツールのDisable cache で、画像が表示された!

Edge では、開発者ツールのネットワークの、
常にサーバーから更新するとか、キャッシュのクリアとかかな?

HTTP リクエスト/レスポンスのCache-Control ヘッダーも、関係ありそう

117デフォルトの名無しさん (ワッチョイ 275f-pD9l)2020/01/24(金) 12:41:39.57ID:yedZaC1h0
プライベートブラウジング使え
ブラウザ閉じればキャッシュやクッキーが消えて便利だぞ

118デフォルトの名無しさん (ワッチョイ 5f01-oRbG)2020/01/24(金) 12:43:50.75ID:2IgFvbdV0
HTTPリクエストを確認すればわかること
頼むからHTTPの基礎くらいは学んでくれ

119106 (ワッチョイ 5f2c-++Vr)2020/01/25(土) 00:10:52.07ID:mLh1vP4R0
Windows 10 のローカルPC 上の、WEBrick のServer/Servlet で、
ブラウザでキャッシュ有りの時、画像が表示されないのは、なぜなのか?

結局、その理由が分からないまま

出来れば、キャッシュ有りで、画像が表示されてほしい

120デフォルトの名無しさん (ワッチョイ a7b0-Gc13)2020/01/25(土) 03:58:37.57ID:PRJ1sUmm0
死ねばいい

121デフォルトの名無しさん (ワッチョイ a763-gk0v)2020/01/25(土) 15:52:45.46ID:WZ3Oswhu0
rubyXLでエクセルいじってるが

印刷範囲を設定したいときは、どのようにすればよいのでしょうか?
いろいろ探しても見当たらず・・

122デフォルトの名無しさん (ワッチョイ 5fa5-V1vN)2020/01/27(月) 17:12:09.11ID:PTqFE7Wm0
ruby.hに#define memcpy(p1,p2,n) ruby_nonempty_memcpy(p1, p2, n)ってあるけど、
c++でstd::memcpyって使ってたらおかしなことにならんか?

123デフォルトの名無しさん (ワイーワ2 FF1f-FkkX)2020/01/27(月) 17:24:08.84ID:Xu7tzl7qF
srcとdstの範囲が重なってるんじゃね

124デフォルトの名無しさん (ワッチョイ 5fa5-V1vN)2020/01/27(月) 18:36:35.04ID:PTqFE7Wm0
ちょっと試したらおかしなことにならんかった

125デフォルトの名無しさん (ワッチョイ 7fda-LQfQ)2020/01/28(火) 12:37:06.71ID:2llLtotp0
Rubyってイベントハンドラを複数登録するタイプのクラスってどう書くのが一般的な流儀ですか?

クラス継承したり特異メソッド使ったりといった書き方もありますが
あまり異端過ぎなければlambdaを使うのが楽そうかなと思ってます

# ディレクトリを巡回してファイルを探すクラス
finder = FileFinder.new
finder.on_dir_enter = lambda{|folder| puts "entered: #{folder}" }
finder.on_dir_leave = lambda{|folder| puts "left: #{folder}" }
finder.on_file_found = lambda{|file| puts "found: #{file}" }
finder.start("./")

126デフォルトの名無しさん (ワッチョイ 5fd7-hH+D)2020/01/28(火) 16:48:55.02ID:viNuqCMy0
>>125

finder.on_dir_enter {|folder| puts "entered: #{folder}" }
finder.on_dir_leave {|folder| puts "left: #{folder}" }
finder.on_file_found {|file| puts "found: #{file}" }

または

finder.add_handlers(
  :dir_enter => proc { |folder| puts "entered: #{folder}" },
  :dir_leave => proc {|folder| puts "left: #{folder}" },
  :file_found => proc {|file| puts "found: #{file}" }
)

イベントハンドラ系のAPI設計に関しては、
Ruby/Tk や Ruby-GNOME 等の GUI ツールキットを参考に

127デフォルトの名無しさん (ワッチョイ 5f01-oRbG)2020/01/28(火) 17:18:24.30ID:nzUBCcWX0
特に理由がなければブロック渡しが一般的
簡単なEvent Emitterを自作するかライブラリ使うか

finder.on(:dir_enter) {|folder| puts "entered: #{folder}" }

ライブラリでメジャーなのはwisperかActiveSupport::Notifications
https://github.com/krisleech/wisper

128デフォルトの名無しさん (ワッチョイ ea2c-KoMo)2020/01/29(水) 09:22:00.90ID:AYOCyHQA0
>>121
rubyXL での印刷範囲の設定など
https://qiita.com/cog1t0/items/85bf12f07b78e66802ff

「rubyxl 印刷」で検索!

129デフォルトの名無しさん (ワッチョイ ea2c-KoMo)2020/01/29(水) 13:41:46.66ID:AYOCyHQA0
Windows で、Ruby 2.5 にバージョンアップしたら、
SQLite3 のコンパイルが必要になった!

でも漏れは、1, 2GB とサイズが大きい、MSYS2 を入れていないから、
win32ole モジュールで、ADODB でアクセス出来そうです。

ADODBは、Microsoft 製のドライバーなのか。
わざわざ、SQLite3用のドライバーも作ったのか?w

win32oleは、Rubyの標準モジュールかw
COM の種類が多い

ruby -rwin32ole -e 'puts WIN32OLE_TYPE.progids.length'
#=> 2521

130129 (ワッチョイ ea2c-KoMo)2020/01/29(水) 14:03:59.52ID:AYOCyHQA0
>>129
訂正

>ADODBは、Microsoft 製のドライバーなのか。
>わざわざ、SQLite3用のドライバーも作ったのか?

SQLite3 などのODBC ドライバーは、Microsoft 製じゃない。
誰かが作ったものです

131デフォルトの名無しさん (ワッチョイ 7f05-QQjh)2020/02/07(金) 23:21:28.28ID:t9uaVZtz0
RubyのOcraについて質問です。

無限ループの中でタイマーカウント満了の度に処理を行って待ちに入るという動作のプログラムって実はEXE化できないという制約があったりしますでしょうか?

また、その場合の解消方法とかをご存じの方、よろしくお願い申し上げます。

132デフォルトの名無しさん (オッペケ Sr0b-Hkqy)2020/02/08(土) 10:32:17.79ID:hHzEGlOhr
>>131
ない
何故ならevalするだけの簡単なコードですらexe化できるから

133デフォルトの名無しさん (ワッチョイ 9f2c-ndoi)2020/02/08(土) 13:28:21.15ID:9Nn74D/R0
OCRA の代わりに、Neri と言うのもあるみたい

Neri
https://github.com/nodai2hITC/neri/blob/master/README.ja.md

134デフォルトの名無しさん (ワッチョイ 9f7c-YOmB)2020/02/10(月) 17:54:32.25ID:nkCUteta0
下記のコードでifの位置ってここでいいの。rubyの本の記述なんだけど。
2行目だけどifの方が左なんじゃないの?右でも行けるって事かな?
def greeting(country)

return 'countryを入力してください' if country.nil?
if country == 'japan'
   'こんにちは’
  else
'hello'
end
end

greeting(nil)
greeting('japan')

135デフォルトの名無しさん (ワイーワ2 FFdf-VM48)2020/02/10(月) 17:55:54.47ID:JljXo4cdF
後置

136デフォルトの名無しさん (ワッチョイ 9f7c-YOmB)2020/02/10(月) 18:40:17.86ID:nkCUteta0
>>135
そうなの?
理由も聞きたい
そういう仕様?って事?

137デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)2020/02/10(月) 20:46:54.23ID:cKG4UD690
わからない時はまずリファレンス
https://docs.ruby-lang.org/ja/master/doc/spec=2fcontrol.html#if

ifは前置でも後置でもいける仕様
後置ifは正式にはif修飾子(if modifier)

138デフォルトの名無しさん (ワッチョイ 1f33-mA3f)2020/02/10(月) 21:36:49.68ID:cuubi2Q/0
しかし、何がしたいのかはわからんコード。
文字列を返してるだけ?

139デフォルトの名無しさん (ワッチョイ 9f2c-ndoi)2020/02/10(月) 23:17:58.15ID:8D13KkA50
そりゃ、ユーザーからの入力値チェックは、必要

まあ、デフォルト値は、nil の代わりに、空文字列にしておく手もある

140デフォルトの名無しさん (ワッチョイ 3714-A9K6)2020/02/11(火) 00:09:12.87ID:dIRIcC/n0
>>136
英語勉強しろよ

I don't know if it will rain tomorrow.
(明日雨が降るかどうかわからない)

141デフォルトの名無しさん (アウアウウー Sa9b-YLe+)2020/02/11(火) 07:38:12.35ID:jcgFHncna
後起きifはRubyの文法的にはかなり無理があって、その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文
Matz的によほどの拘りがあるんだろうけど、違和感を感じる>>134のセンスはとても正しい

142デフォルトの名無しさん (ワッチョイ bf8c-0JiW)2020/02/11(火) 09:49:56.57ID:GpQNLMm40
perl後継としては外せない

143デフォルトの名無しさん (ワッチョイ 9fa5-tq9U)2020/02/11(火) 10:04:30.75ID:Nq1ZGiCx0
perlなら当然でしょ
rubyはそこを汲んでる

144デフォルトの名無しさん (ワッチョイ 3714-A9K6)2020/02/11(火) 10:14:08.59ID:dIRIcC/n0
Perlに不満ってあるの?
どれだけある?

145デフォルトの名無しさん (アウウィフ FF9b-VM48)2020/02/11(火) 12:56:14.55ID:KtXysiBKF
>>141
Rubyのあちこちで見受けられるPerlの悪い所をわざわざパクったアホな例の一つだな

146デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)2020/02/11(火) 13:01:20.53ID:v/oRLdRM0
>>141
>その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文

「全てが式」ってのはstatementとexpressionに明確な区別のある言語との対比で
Rubyの特徴をわかりやすく説明するために使われてるだけ

式の一部どれをとっても全てが式になってるまともな言語があるわけない
Rubyには後置以外の修飾子だってあるしstatementもある
中途半端な知識で勘違いしてドヤるのはやめよう

147デフォルトの名無しさん (アウアウエー Sadf-56gX)2020/02/11(火) 13:17:51.03ID:D5vn67vCa
perl に比べて ruby の優っているところは?

148デフォルトの名無しさん (オッペケ Sr0b-Hkqy)2020/02/11(火) 13:22:48.99ID:XWZwag4pr
if/unless, while/until, rescue

149デフォルトの名無しさん (ワッチョイ ff14-A9K6)2020/02/11(火) 13:27:43.83ID:eT6ZDI7H0
>>147
Perlにはオブジェクト指向ようの構文が後付で原始的なものしか搭載されてない。
アセンブラを駆使すれば何でもできるように、原始的な機能でも頑張れば
高度なオブジェクト指向機能を作ることは可能だが、
そのせいでいくつもの実装が生まれライブラリごとに使ってる
仕組みが異なり統一ができずに破綻してしまった。
Rubyは最初からオブジェクト指向

150デフォルトの名無しさん (ワッチョイ 9f74-cN98)2020/02/11(火) 14:28:51.94ID:R1PPlg5z0
>>146
>式の一部どれをとっても全てが式になってるまともな言語があるわけない

LISP, Haskell, ML, …etc

>中途半端な知識で勘違いしてドヤるのはやめよう

この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ
・Rubyによる関数型プログラミング
 http://xtmlab.com/misc/FPwithRuby.html

なお、手続き型言語の大半が文と式を明確に分けている中で、
Ruby の「すべてが式」という思想はユニークであるが、
次世代言語 Rust でも同様な思想が採用された
以下は書籍「プログラミングRust」からの引用
> Rustはいわゆる式言語(expression language)の一つだ。
> つまり、Lispにまで遡る古い伝統に従い、すべてを式で行う。

中途半端な知識で勘違いしてドヤると恥をかくだけだよ

151デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)2020/02/11(火) 18:41:16.57ID:v/oRLdRM0
>>150
>LISP, Haskell, ML, …etc

おまえアホやろ
Lispの閉じ括弧は式なのか? シングルクウォートは式なのか?Haskellのコロンは式なのか?
if修飾子が式じゃない極めて特殊()な構文って主張はそれと同じレベルなんだけど

>この記事の原著者も「中途半端な知識で勘違いしてドヤ」ってるのかなぁ
「あらゆるすべてが式である」のすべてに何が含まれて何が含まれないのか理解してるかどうかだよ
原著者が理解してるかどうかは知らないけどお前は間違いなく理解してない

ついでに言っておくとRubyの「全ては式」が広まったのはDavid Flanaganが「The Ruby Programming Language」で他言語出身者にわかりやすく理解させるためにそれっぽいことを書いたのが理由

152デフォルトの名無しさん (ワッチョイ 9f74-cN98)2020/02/11(火) 22:59:40.20ID:R1PPlg5z0
>>151
文節「すべてが式」に対する君の認識が、世間の一般常識から乖離していることを理解した

153デフォルトの名無しさん (ワッチョイ d201-b83C)2020/02/12(水) 00:01:32.50ID:39kCYFWR0
>>152
keywordやsymbolそれ自体が式なわけないだろ?
それと同じことを主張してたの理解できたのかな?

制御構造のif式だって`if 式; end`全体で式として評価されるわけで
ifだけやendだけが式になるわけじゃない

if修飾子は`式 if 式`全体で式として評価されるわけで
後置の`if 式`だけで式になるわけじゃない

でその一部を取り出して
「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」
って言っちゃうのがどれだけ的外れかって話な

154デフォルトの名無しさん (ワッチョイ a701-9iBN)2020/02/12(水) 01:40:12.18ID:3IloEGU30
電卓の構文解析器を作ったことがあれば、だいぶご意見が変わるはず。

155デフォルトの名無しさん (ワッチョイ ef1d-sg8N)2020/02/12(水) 01:51:46.06ID:CB9IiDBv0
実務経験1年で月収80万稼げるエンジニアになった理由

@YouTube


意識が低いエンジニアこそフリーランスになれ

@YouTube


フリーランスエンジニアの週3労働ってどんな感じ?

@YouTube


ぼくがスキルのない社畜ならこうやって脱する

@YouTube


初めて人を雇ったらもう二度とサラリーマンをやりたくないと思った話

@YouTube


プログラミングは文系でも余裕で出来ます!理由を現役プログラマーが解説

@YouTube


貧乏人こそ社会不適合者

@YouTube


元ド貧乏が教える】貧乏を抜け出すための2つの考え方

@YouTube


より良いオファー貰ってるのに転職しないとか何考えてるの?

@YouTube


156デフォルトの名無しさん (ワッチョイ 0233-Rcr8)2020/02/12(水) 02:31:04.61ID:zXn0/Xf90
>>153
もう黙ったほうがええで。
アホが漏れとる。

157150および151 (ワッチョイ 7274-XNsy)2020/02/12(水) 03:15:58.26ID:1hwSKrXM0
>>153
>でその一部を取り出して
>「その実現のためだけにRubyが「全てが式」ではなくなっているという極めて特殊な構文」
>って言っちゃうのがどれだけ的外れかって話な

自分は>>141ではないが、いったいぜんたい何を話したいのか訳がわからんよ

158デフォルトの名無しさん (ワッチョイ b252-E40k)2020/02/12(水) 06:32:46.81ID:m8mhjAm70
>>155
グロ

159デフォルトの名無しさん (ドコグロ MM32-H6bD)2020/02/12(水) 09:42:28.21ID:gfctBwevM
「Rubyでは全てが式だ」というとき、ステートメント(文)と式の区別がないことを意味するのが普通だ
言語によってはメソッドやクラスの定義も普通の式だったりするが、Rubyでそう思っている奴はいないだろう
しかしRubyではステートメントと式の区別がないというのは厳密には正しくない
文法定義のソースを見れば明らかだが、それが後置構文の存在のためであるのは事実

160デフォルトの名無しさん (ワッチョイ de8c-gRil)2020/02/12(水) 22:16:17.93ID:Pa88PYmd0
def foo(arg)
arg + 1
end(99) #=> 100
動かない

161デフォルトの名無しさん (ワッチョイ 335f-JhxJ)2020/02/13(木) 10:51:24.11ID:6MxuLkX50
p send(def foo(a); a + 1;end, 99) # => 100

162デフォルトの名無しさん (ワッチョイ de8c-gRil)2020/02/13(木) 21:55:21.77ID:i9bfivOD0
お、うーむ...なるほど

163デフォルトの名無しさん (オッペケ Src7-gtE8)2020/02/13(木) 22:02:31.32ID:TNGg/IHkr
p def foo(a)
  a + 1
end.then{|s| method(s)[99]}

# => 100

164デフォルトの名無しさん (ワッチョイ 0233-Rcr8)2020/02/13(木) 23:08:11.62ID:0ZbbVgVA0
つまり、扱いは同じではない、ということかな?w

165デフォルトの名無しさん (ワッチョイ e67d-dJav)2020/02/13(木) 23:20:32.77ID:oR70BErs0
foo = -> (arg) {
arg + 1
}.( 99 ) #=> 100

166デフォルトの名無しさん (ワッチョイ 122c-LiuO)2020/02/14(金) 12:22:11.03ID:+9NDg3r60
( ) で囲んで式にすれば、
JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいに、無名関数にできた!

( -> (arg) {
puts arg + 1
} ).( 99 ) #=> 100

167デフォルトの名無しさん (ワッチョイ 122c-LiuO)2020/02/14(金) 12:36:32.48ID:+9NDg3r60
msys2 無しのWindows 10, Ruby 2.5 で、
WEBrick::HTTPServlet::CGIHandler は使えない!

ERROR CGIHandler:
C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths':
undefined method `split' for nil:NilClass (NoMethodError)

エラーログに、enable_dll_search_paths とあるから、dll でも使うのかな?

168デフォルトの名無しさん (ワッチョイ d201-b83C)2020/02/14(金) 17:39:20.53ID:EOtBZfN80
>>166
>( ) で囲んで式にすれば、

括弧なくても定義したlambdaが返される
.()でそのlambdaのcallメソッドを呼び出してるだけ
-> (arg) { arg + 1 }.(99) でも
-> (arg) { arg + 1 }[99] でも
-> (arg) { arg + 1 }.call 99 でも同じ

ちなみにJSのvar foo = (x)=> x+1 みたいなのは関数に名前はついてないので無名関数だぞ
rubyで foo = -> (arg) { arg + 1 } と書いても
無名のlambdaをfooという変数に入れてるだけで
lambda自身に名前がつくわけではない

169デフォルトの名無しさん (ワッチョイ 335f-JhxJ)2020/02/15(土) 13:46:02.32ID:BIOI8zPQ0
>>167
ENV['PATH'].split(";")が失敗するってmsys2関係なくなかなかレアな環境だと思うが
環境変数をクリアしたりしてるのかい?

170167 (ワッチョイ 122c-LiuO)2020/02/15(土) 17:09:24.91ID:8drC8DpT0
msys2 を入れずに、Ruby を使っているから、
コンパイルできないし、Windows 10 のネイティブDLL を使えない

Ruby 2.5 で、SQLite も使えなくなったw

WEBrick は、Rubyで実装されているから、msys2 無しでも動くと思ったけど、
WEBrick::HTTPServlet::CGIHandler で、ネイティブDLLを使っているのだろう

rubyist magazine を冒頭から読み始めたが、読み応えある!

171デフォルトの名無しさん (ワッチョイ 335f-JhxJ)2020/02/16(日) 02:30:58.30ID:A+9IORaN0
>>170
msys2_installation.rb:63にmsys2関係ないって
https://github.com/oneclick/rubyinstaller2/blob/rubyinstaller-2.5.0-1/lib/ruby_installer/build/msys2_installation.rb#L63
これが失敗するのは環境変数がおかしいか、上書きしているか
それともENVを再定義しているくらいしか思いつかない

172167 (ワッチョイ 122c-LiuO)2020/02/16(日) 19:14:49.59ID:5EL9p8ON0
漏れは、Windows 10,Ruby 2.5 で、
Run ‘ridk install’ to install MSYS2 and development toolchain. も、チェックしていないし、
MSYS2 の開発ツールと、MINGW のコンパイラもインストールしていないから

Rubyの環境構築(Windows10編)
https://www.kenschool.jp/blog/?p=3898

エラーログ

C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:63:in `iterate_msys_paths': undefined method `split' for nil:NilClass (NoMethodError)\r\n\t

from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:76:in `msys_path'\r\n\t

from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:89:in `mingw_bin_path'\r\n\t

from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/msys2_installation.rb:99:in `enable_dll_search_paths'\r\n\t

from C:/Ruby25-x64/lib/ruby/site_ruby/2.5.0/ruby_installer/runtime/singleton.rb:27:in `enable_dll_search_paths'\r\n\t

from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems/defaults/operating_system.rb:3:in `<top (required)>'\r\n\t

from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `require'\r\n\t

from C:/Ruby25-x64/lib/ruby/2.5.0/rubygems.rb:1383:in `<top (required)>'\r\n\t

from <internal:gem_prelude>:2:in `require'\r\n\t

from <internal:gem_prelude>:2:in `<internal:gem_prelude>'\r\n

173デフォルトの名無しさん (ワッチョイ 335f-JhxJ)2020/02/17(月) 01:04:16.59ID:gpbv7rcq0
あー、WebrickのCGIHandlerはCGIPathEnvの関係でENV["PATH"]がnilになりうるのか
WEBrick::HTTPServer.newに渡すハッシュにCGIPathEnv: ""を加えとけばいいはず

174167 (ワッチョイ 122c-LiuO)2020/02/17(月) 01:35:30.73ID:A9t7x7q20
ありがとう。
オプションに、:CGIPathEnv => '' を加えたら、正常に動いた!

すごい実力じゃん!
ソースコードを追っていったの?

opts = { :CGIInterpreter => "C:/Ruby25-x64/bin/ruby.exe",
:CGIPathEnv => '', # msys2 のエラーを避けるために、必要!
:DocumentRoot => './', # この指定が必要!
:BindAddress => '127.0.0.1', :Port => 20080 }

srv = WEBrick::HTTPServer.new( opts )

175デフォルトの名無しさん (オッペケ Src7-gtE8)2020/02/17(月) 05:37:18.50ID:SykEsoD4r
なんかムカつく

176デフォルトの名無しさん (ワッチョイ d62d-qw96)2020/02/17(月) 15:17:53.59ID:9CP/4dwv0
新しくて安い本が出たので、頭の体操にRubyの勉強を始めたところなんだけどさあ
よくネット上に、「Railsの本をやってからRubyの勉強をした」みたいな人がいるのはどういうことなの?
RailsってRubyが出来ないと何も出来ない訳でもないの???

177デフォルトの名無しさん (ワッチョイ b714-+5Ha)2020/02/17(月) 15:33:27.23ID:qj5C8HtX0
普通にプログラミングできる人にとっては言語の違いなんて些細なもので
いちから作るのならともかく、そこいらにあるRailsのコードや自動生成されたものを
見ればそこからRubyという言語を推測で理解できるんだよ。
このコードがクラス定義だな。Rubyではこう書くんだなって
わからなければそこだけググればいい

Railsはやり方というものがあるので、それに合わせるように
Railsの本を見て流れを把握する必要がある。

検索は断片を見つけるのはキーワードから簡単に見つけられるが
流れはそうはいかない。だいたいの本はページの最初から流れを
そのまま書いてあるから、本でざっと勉強するのが最初のうちは手っ取り早い

178デフォルトの名無しさん (ワッチョイ d62d-qw96)2020/02/17(月) 18:20:35.95ID:9CP/4dwv0
そういうことか
言語だけ先にやると変な癖がついたりもするし、演習ファーストの学習も結構いいかもな

179デフォルトの名無しさん (ワッチョイ b7d2-Htok)2020/02/17(月) 18:45:44.78ID:wxeqwMT50
日本語の勉強がしたいと言ったら
舞城王太郎の小説を読めと言われた気分

180デフォルトの名無しさん (ワッチョイ 122c-LiuO)2020/02/17(月) 19:30:14.53ID:A9t7x7q20
たぶん、すでに多言語を知ってる人だろう

入門書の次のレベルの、新しい本が出た!
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20

実践Ruby on Rails 4: 現場のプロから学ぶ本格Webプログラミング、黒田努、2014
この本を書き換えたもの

無料のRails チュートリアルよりは簡単

Windows プロ版のDocker が不安定だから、Virtual Box, Ubuntu 18.04 でやってる!

181デフォルトの名無しさん (ワイーワ2 FF6a-BDVY)2020/02/18(火) 12:16:06.30ID:r+eOvEZJF
またカタワを量産するつもりか
RailsRubyの将来は暗いな

182デフォルトの名無しさん (ワッチョイ ff2c-lQWV)2020/02/25(火) 19:09:01.56ID:Ykw6mmDG0
「aabc → bc」みたいに、先頭から特定の文字が連続するとき、それを除去するには、どう書く?
正規表現を使ったものと、使っていない場合の両方

str = "aabc"

# 先頭から続く、a を除去する
while str.start_with? "a" # 先頭文字が、a なら
str.slice! 0 # 先頭文字を削除する
end

p str #=> "bc"

183デフォルトの名無しさん (ワッチョイ ffa5-1Vd5)2020/02/25(火) 20:42:26.89ID:uCkT0+w20
そりゃ正規表現のステートマシン通りに書くでしょ

184デフォルトの名無しさん (オッペケ Sr07-VXi+)2020/02/25(火) 22:00:57.29ID:uBU1PACqr
>>182

puts str[/\Aa*\K.*/] # => bc

185デフォルトの名無しさん (オッペケ Sr07-VXi+)2020/02/25(火) 22:07:44.86ID:uBU1PACqr
>>182

puts str[str.size.times.find{|i| str[i] != ?a}..] # => bc

186デフォルトの名無しさん (ワッチョイ ff01-pEhb)2020/02/25(火) 22:22:39.72ID:oSeHo6cg0
>>182
def remove_consecutive(string)
string.sub(/^(.)¥1{1,}(.*)$/) {|_| remove_consecutive($2)}
end

remove_consecutive("aaaabbbbbbccab") #=> “ab”
remove_consecutive("1112234") #=> "34"

187デフォルトの名無しさん (ワッチョイ 6f8c-zTrs)2020/02/25(火) 22:59:04.49ID:/XslCVsc0
本当に文字列から連続部分を除去したいのか、
連続部分の後ろが取り出せればいいのか

188182 (ワッチョイ ff2c-lQWV)2020/02/25(火) 23:54:26.45ID:Ykw6mmDG0
元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
先頭以外のものは、除去しなくてよい

こういうメソッドが無いか、探してみたけど見つからなかった

レシーバーの破壊的な変更をしてもよいし、別の文字列を作って返すものでもよい

189182 (ワッチョイ ca2c-rVtL)2020/02/26(水) 00:52:55.60ID:TmIxTRKQ0
文字列の先頭から続く、特定の文字を除去する

1文字でも除去するし、連続するかぎり除去するが、
先頭以外のものは、除去しなくてよい

a を除去する場合

abc → bc
aaXaa → Xaa

190デフォルトの名無しさん (ワッチョイ 8a01-k1AF)2020/02/26(水) 01:11:17.25ID:sMj0eedP0
>>188
>元々は「0082 → 82」みたいな文字列の先頭から続く、0 を除去したかった。
“0082”.to_i.to_sでよくね?
なんかこのパターン数ヶ月前にも見たような気がするな

>>189
def remove_leading_chars(string, char)
string.each_char.drop_while{|c| c == char}.join
end

remove_leading_chars(“0000123", “0”) #=> "123"
remove_leading_chars(“abc", “a”) #=> "bc"
remove_leading_chars(“aaXaa", “a”) #=> "Xaa"

191182 (ワッチョイ ca2c-rVtL)2020/02/26(水) 04:46:15.55ID:TmIxTRKQ0
>“0082”.to_i.to_sでよくね?

長い文字列だと、数値化できない言語もあるから、
汎用的に作れないかなと思って

192デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)2020/02/26(水) 08:06:23.34ID:PiyizPRV0
だからオートマトンで作れって言ってんじゃん
Ruby 初心者スレッド Part 66 YouTube動画>16本 ->画像>2枚

193デフォルトの名無しさん (ワッチョイ 0314-IyPa)2020/02/26(水) 08:22:48.67ID:kXv4PxDr0
オートマトンってなんで羊なんだろう?
自動的に毛を刈って自動的に料理されるのか?

194デフォルトの名無しさん (ワッチョイ 6b01-nhpA)2020/02/26(水) 08:29:53.13ID:bDSWeqSr0
オートマンだと思ってた
インド哲学かよ

195デフォルトの名無しさん (ワッチョイ 0314-IyPa)2020/02/26(水) 08:36:52.65ID:kXv4PxDr0
嘔吐マトン

196デフォルトの名無しさん (ワッチョイ 03d2-Cv5o)2020/02/26(水) 12:11:34.52ID:GrI3XnzJ0
>>189
def ltrim(s, c)
s[/^#{c}*/] = ""
s
end
p ltrim("aaaabcaabc", 'a')

"bcaabc"

197デフォルトの名無しさん (ワッチョイ ca2c-rVtL)2020/02/26(水) 23:09:06.75ID:TmIxTRKQ0
Ruby on Rails 6 実践ガイド、黒田努、2019/12/20

Ruby on Rails 6 超入門、掌田津耶乃、2020/2/21

巨匠・掌田も、Rails 6 に参戦!

後は、山田祥寛・WINGSプロジェクトが、どうするか?

198デフォルトの名無しさん (ワイーワ2 FF82-7qQN)2020/02/27(木) 15:17:58.32ID:G6pyHvdgF
掌田の本は要らん

199デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)2020/02/28(金) 09:49:01.76ID:tB/cuWAa0
掌田津耶乃って何者? (Late 2012)
http://2chb.net/r/mac/1349360916/

巨匠か?
Mac凋落と共に仕事を失った人間、とか書かれてんぞ

200デフォルトの名無しさん (ワッチョイ 4aa5-SiQa)2020/02/28(金) 09:53:35.23ID:tB/cuWAa0
掌田津耶乃って何者?
https://mentai.5ch.net/test/read.cgi/pc/971599471/

macの賤民思想に凝り固まった人間?
そんな物体なら要らないな

201197 (ワッチョイ ca2c-rVtL)2020/02/28(金) 13:58:28.72ID:GfVfgYuK0
多言語の3強が、掌田津耶乃・山田祥寛(WINGSプロジェクト)・柴田望洋。
他に、スッキリ・やさしい・猫でも・独習など

掌田は、その中でも断トツ!

多言語の入門書・フレームワーク・ゲームエンジンなど、
ここ数年で、20冊とかある

世界的に見ても、断トツ!

202デフォルトの名無しさん (ワッチョイ 6b01-nhpA)2020/02/28(金) 14:40:57.13ID:LkDsYiUy0
何か後ろの二人が気の毒

203デフォルトの名無しさん (ワッチョイ 9e2d-9Aak)2020/02/28(金) 15:39:11.30ID:Y4GSbUWj0
Rubyはもう本で勉強するのは古い
今は迫 佑樹とかあおいとかのオンラインコースで勉強する時代だよ、

204デフォルトの名無しさん (ワッチョイ 8a01-k1AF)2020/02/29(土) 02:55:28.33ID:udUacP9j0
山田祥寛は10年近く前C#でよくお世話になった
他言語から来た入門者に程よくわかりやすい本を書く印象

柴田望洋はC言語系で何冊か読んだが
内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
特定のトピックを復習したいときには有用
(ただ今ならWebサイトで代用可能)

掌田津耶乃・・・
本屋で間違って手にしてもパラっと読めば速攻本棚に戻すやつ

似たような浅めの入門本著者だと
クジラ飛行机のやつは実践的なやつが多くて悪くないと思う

205197 (ワッチョイ ca2c-rVtL)2020/02/29(土) 23:32:52.49ID:6IdZMwnf0
なでしこの作者・クジラ飛行机は、
近年、Python から、多言語の作者として乱入してきた

なでしこだけでは食えないし、やむを得ない方向転換w

巨匠の柴田望洋は「新・明解C言語」のイメージだけど、近年、多言語に参入した

206◆QZaw55cn4c (ワッチョイ 2aaa-9l6Y)2020/02/29(土) 23:43:57.15ID:c0ztbNyQ0
>>204
新独習c# は旧独習ハーバートシルトと比べてどうでしょうか?
新独習Java は、旧独習が史上稀に見る惨憺たる出来だったことから、新独習はよくなるしかないと予測しています
あと、旧独習を高く評価している私としても新独習C++ については興味がありますね

207197 (ワッチョイ ca2c-rVtL)2020/03/01(日) 00:44:56.42ID:NSpMdQYF0
さすがに日本人で、シルトと比べられる著者は、いないだろ

たいてい読み応えがあるのは、Effective シリーズなどの外人著者

208デフォルトの名無しさん (ワイモマー MMea-W44n)2020/03/01(日) 10:00:51.93ID:JWAFHnbAM
しつもんです
haskellだったら
[(x,y,z) | x <- [1..9], y <- [1..9], z <- [1..9], x * y * z == 24]
こう書けるものはrubyではせいぜい
p [*1..9].repeated_permutation(3).select {|a| a.sum == 24}
こう書くしかありませんか?簡潔に表現したいです

さらにhaskellでは
[(x,y,z) | x <- [1..9], y <- [1..8], z <- [1..7], x * y * z == 24]
などと書けるので柔軟ですがその場合rubyなら
p (1..9).map {|x| (1..8).map {|y| (1..7).map {|z| [x,y,z]}}}.flatten(2).select {|a| a.sum == 24}
こう書くしかありませんか?簡潔に表現したいです

209デフォルトの名無しさん (ワッチョイ 0314-IyPa)2020/03/01(日) 10:43:49.36ID:n6wzTSL90
> haskellだったら
> [(x,y,z) | x <- [1..9], y <- [1..9], z <- [1..9], x * y * z == 24]
> こう書けるものは

haskell: 66文字

> rubyではせいぜい
> p [*1..9].repeated_permutation(3).select {|a| a.sum == 24}
> こう書くしかありませんか?簡潔に表現したいです

ruby: 58文字


Rubyの方が簡潔です

210デフォルトの名無しさん (ワッチョイ 6f5f-jGfF)2020/03/01(日) 11:35:40.57ID:qmcGlirD0
> p (1..9).map {|x| (1..8).map {|y| (1..7).map {|z| [x,y,z]}}}.flatten(2).select {|a| a.sum == 24}
p [[*1..9], [*1..8], [*1..7]].then{|x, *a| x.product(*a)}.select{|a| a.sum == 24}
p [*1..9].product([*1..8],[*1..7]).select{|a| a.sum == 24}

好きな方を

ところで、そのHaskellコードにはp相当が無いように見えますが
Haskellってprintしなくていいんですか?

211デフォルトの名無しさん (アウアウエー Sac2-4HC3)2020/03/01(日) 12:14:22.10ID:8hJkpeX/a
元から間違っているがsumではない

212デフォルトの名無しさん (ワイモマー MMea-W44n)2020/03/01(日) 12:53:48.43ID:JWAFHnbAM
あごめんsumじゃなかったわw
みなさんどうもありがとうございました

213デフォルトの名無しさん (ワッチョイ 067d-X91k)2020/03/01(日) 18:13:12.70ID:RW98tzZT0
rubyでtwitterとかyoutubeどうやって作るの?
全くイメージが沸かない
ツイートがリアルタイムで他者にも表示されるのってどういう仕組み?

214デフォルトの名無しさん (ワッチョイ cb4f-mnKr)2020/03/01(日) 21:01:11.61ID:QPyt1UlH0
httpとブラウザの仕様の話なのでrubyは関係ない

215デフォルトの名無しさん (アウアウエー Sac2-DFeu)2020/03/01(日) 21:57:35.00ID:F2v5Atsqa
scaffold で一発で作るという意味だろう

216デフォルトの名無しさん (ワッチョイ ca2c-rVtL)2020/03/01(日) 22:44:11.42ID:NSpMdQYF0
0から手を動かして作るRailsチャットアプリ【チュートリアル】

@YouTube



Ruby on Rails で、Web Socket を使う、とだこうきの動画

217デフォルトの名無しさん (アウアウウー Sa2f-ff41)2020/03/01(日) 22:47:44.78ID:QZXNPr7ra
>>213
JavaScriptでサーバー側のAPIを叩き、サーバーがそれに対して結果を返し、JavaScriptでその結果を画面に反映させる
基本はこれだけ
Rails任せじゃなくてちゃんとWebの仕組みを理解してAPIを実装しなきゃいけないし、JavaScriptもゴリゴリ書かなきゃいけない
SQSなどのAWSやGCPのマネージドサービスや、Kafkaのようなデータ基盤系のOSSなど高度なバックエンド技術の活用も必要だ
Railsのチュートリアルに毛が生えたような典型的なWebとは次元が違う

218デフォルトの名無しさん (ワッチョイ 8a01-k1AF)2020/03/01(日) 23:24:11.39ID:J3IrN4Ey0
クライアントがブラウザとは限らないが
いずれにしろrubyは全く関係ない

web push
server-sent events
push notification service (e.g. APNs)

↑この辺りを学べばいい
単なる通知用途で生のweb socketを
ゴリゴリ書いたりはしないんじゃないかな

219デフォルトの名無しさん (ドコグロ MMea-ff41)2020/03/01(日) 23:52:21.24ID:H/U8nx/nM
プログラミングスクールでRails勉強しました系だとプル型のアプリの作り方しか知らないだろうから、クライアントへの通知の実装方法以前に、
そもそもユーザーがツイートしたときに受信者に対して通知をキックするところの仕組みが想像できないんだろうな
そのへんはいわゆるバックエンドってやつで、ユーザー数が増えてもスケールするためには小手先のコーディングだけでなくAWSのインフラ設計まで含めた作り込みが必要
Railsできますウェーイみたいなのとは一線を画す、いい大学出たガチな連中が鎬を削ってる世界だ

220デフォルトの名無しさん (ワッチョイ ca2c-rVtL)2020/03/02(月) 00:40:51.77ID:8PHDRupm0
Ruby による今世紀最大の起業家、Vagrant のMitchell Hashimoto(HashiCorp)も、
Go のTerraform へ行った

今や主戦場は、Docker, Kubernetes になった

でも、サーバーの基本は、Ruby。
Node.js も、Rubyのコピーだから

Spring Boot も、Rails のコピー

221デフォルトの名無しさん (ワッチョイ 8a01-k1AF)2020/03/02(月) 01:33:56.26ID:AuxsFe1o0
>>217
>>219
おまえもウェーイ系なのに無理してレスすんな

222デフォルトの名無しさん (ワッチョイ cbad-wzO4)2020/03/05(木) 19:13:20.03ID:h922Dn8C0
>>204
>柴田望洋はC言語系で何冊か読んだが
>内容がすごく簡潔で短い時間でまとめ的な知識を頭に入れたり
>特定のトピックを復習したいときには有用

いかにも教科書って感じの本書くよね
オレもオススメできる著者だと思うぞ!

223デフォルトの名無しさん (ブーイモ MM7f-Pim3)2020/03/05(木) 19:35:07.49ID:1tYxfkRNM
本屋いったらrubyの本は駆逐されてた

224デフォルトの名無しさん (ワッチョイ cbad-wzO4)2020/03/05(木) 21:34:51.52ID:h922Dn8C0
すっかりPythonの本に置きかわったよな!
やっぱ人工知能ブームに乗れなかったのがデカイ

225デフォルトの名無しさん (ワッチョイ 9fa5-HL4i)2020/03/06(金) 14:08:05.02ID:gkPkCuAw0
・P系言語には絶対にPを付けるべきであった
・endがある言語には終わりがある

オカルト方面の理由だとこのようになる

「pascalは終わった」とは業界の定型句だが終わったのはendがあるからだ
なので「end」という文字の視覚的影響は思いの他大きいのではなかろうか

代わりにpythonはselfを見続けることになる

他の理由としては、我々は「ぱい」と発音したい生物である、という、これまたオカルトな理由だ
特にPから始まる単語は人類にとって基本的・根源的らしい
「PyPI」とかどーすんだコレとか思っちゃうような発音の存在こそが、pythonを存続させている大きな原動力だ

226デフォルトの名無しさん (ワッチョイ cbad-wzO4)2020/03/06(金) 16:38:00.92ID:Z17kfdKR0
なぜ差が付いたか RubyとPython
――(日本語圏の)慢心、(AI)環境の差!

227デフォルトの名無しさん (アウアウエー Sa3f-xiWk)2020/03/06(金) 20:06:25.61ID:dfpAZ0dma
cobol には end があるが、しぶとく生き残っている
早く絶滅してほしいものだが

228デフォルトの名無しさん (ワッチョイ 0feb-Qbw5)2020/03/06(金) 21:40:53.72ID:f8XVsIbI0
Rubyの方がCOBOLより先に死滅する希ガス

229デフォルトの名無しさん (ワッチョイ ab57-g6LZ)2020/03/06(金) 22:57:29.86ID:rcgbHB5O0
慢心と言うより
補助金事業になったら碌なことにならない例の一つ

230デフォルトの名無しさん (ワッチョイ cbad-wzO4)2020/03/07(土) 03:49:31.31ID:meF2wfp30
補助金が腐らせるの
日本のあるあるだな!

231デフォルトの名無しさん (ワッチョイ ef8c-NYnE)2020/03/07(土) 12:58:20.56ID:Q0oLpIzl0
>>226
コメントアウトの仕方

232デフォルトの名無しさん (ワッチョイ 2ba5-Inmc)2020/03/07(土) 13:58:54.14ID:H7f33zo10
Rubyは日本の言語ではなくて
日本発だけど
日本からアメリカのユタ州に税金を抜かれるだけの言語だ

233デフォルトの名無しさん (ワッチョイ 4b2d-hds7)2020/03/07(土) 16:10:40.97ID:ZoK+qwRc0
補助金で食える人数も限られてるから、余計に閉鎖的になってく

234デフォルトの名無しさん (ワッチョイ cbad-wzO4)2020/03/07(土) 19:42:14.60ID:meF2wfp30
補助金で喰える上級Ruby国民は安泰だけど
下級Ruby国民はPythonに逃げ出してる現状

235デフォルトの名無しさん (ワッチョイ 4b2d-hds7)2020/03/10(火) 16:47:55.38ID:rx4TAX460
Rubyの高額教材屋も増えまくってたり、こんなの国が金を出して支援するもんじゃないよもう

236デフォルトの名無しさん (ワッチョイ ab01-xzLc)2020/03/10(火) 21:55:43.55ID:uPXabSQ00
perlの保守性の低さについて何も学ばなかったから。

237デフォルトの名無しさん (ワッチョイ 827d-VqAA)2020/03/15(日) 06:29:59.66ID:d7tE7oy90
リファレンスマニュアルの正規表現の一覧に
(<=pat) 肯定後読み
となってるけど正しくは (?<=pat) ですよね

238デフォルトの名無しさん (オッペケ Sr91-M7Q/)2020/03/15(日) 07:01:08.84ID:fxB2xu91r
せやね

239デフォルトの名無しさん (ワッチョイ 698f-tF/6)2020/03/17(火) 10:26:17.82ID:55EeZ8o40
AI環境の差は大きいっすねー
保守性とかどうでもいいしrubyの文法は好きだけど、今から勉強する人にはphthon勧めざるを得ない

240デフォルトの名無しさん (ワッチョイ a1ad-M7Q/)2020/03/17(火) 11:47:19.04ID:xPTEZvMY0
PythonはAIライブラリそろってるからな

241デフォルトの名無しさん (ワッチョイ c201-Ruah)2020/03/17(火) 18:17:35.92ID:Np3/43wU0
機械学習や統計処理のために
プログラミングできるようになりたいというひとは
迷わずPythonから初めればいいけど
明確な目的がない場合はRubyから初めさせたほうが
プログラミング自体の習熟が断然早い

1ヶ月程度でプログラミングの基礎を身につけたら
後は好きなやつやればいいと思う
新卒で2~3言語学ばせるABテストとかやってみたいね

242デフォルトの名無しさん (ワッチョイ 02a5-5LgE)2020/03/17(火) 18:19:24.38ID:ybHHyXnP0
ABテストやってないのになんでRubyからの方がいいって分かるの

243デフォルトの名無しさん (ドコグロ MM95-Syvm)2020/03/17(火) 18:38:35.80ID:7aCFf3OgM
明確な目的のない奴にRails専用スクリプト(別名Ruby)を勧めるのはさすがにどうかと

244デフォルトの名無しさん (ワッチョイ 698f-tF/6)2020/03/17(火) 19:08:20.64ID:55EeZ8o40
別にrailsなんかなくたってperlよりモダンな汎用スクリプト言語ではあるやろ

245デフォルトの名無しさん (ドコグロ MM95-Syvm)2020/03/17(火) 19:19:47.39ID:7aCFf3OgM
>>244
Windowsでまともに使い物にならないのは汎用スクリプトとしては致命的
ぶっちゃけPythonがビッグデータやAIで持て囃されてるのもWindowsと相性いいからだよ
ビッグデータやAIはエンタープライズで金になるテーマだからWindowsと相性悪いのは論外

246sage (ワッチョイ a265-aX25)2020/03/17(火) 22:30:48.07ID:Zy9Qhkko0
つまり、わざわざRubyスレまで乱入してしまうほど、
Python信者にはRubyへのコンプレックスが強いってことね

247デフォルトの名無しさん (ワッチョイ d233-YfnF)2020/03/17(火) 22:32:51.78ID:Ai6ps0PO0
じゃあPowerShellで!

248デフォルトの名無しさん (ワッチョイ c201-Ruah)2020/03/17(火) 23:16:01.71ID:Np3/43wU0
>>242
C#, JS, Python, Ruby他で初心者教えた経験から来る個人の感想
逆になんでABテストやらないと分からないと思うの?

249デフォルトの名無しさん (ワッチョイ 02a5-5LgE)2020/03/17(火) 23:40:22.57ID:ybHHyXnP0
そりゃ教師そのものがRubyが得意でRuby贔屓ならRubyを教えるのが上手いんでしょ
だから生徒はRubyの習熟が早くなる
だから本人ですら「ABテストは必要」って思ってるんでしょ

要するに生徒の言語取得速度は教師の得意言語の習熟度合いに比例する

250sage (ワッチョイ a265-aX25)2020/03/17(火) 23:45:23.49ID:Zy9Qhkko0
ぶっちゃけ、Rubyに慣れると、Pythonでコレクションを使うことが苦痛になるんだよな


「コレクションが最高にイケてる言語を作ろう(dat落ち)」から引用
http://mevius.2ch.net/test/read.cgi/tech/1491491123/43-45

> 43 1 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 18:00:36.59 ID:oGFFYBoD
> コレクション使ってて使いづらいと思うことも最近は減ってきたよな
> 昔より言語が進歩してるんだろか
>
> 44 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:23:00.44 ID:Qc8J8Hpx
> >>43
> でもねぇ、世の中にはコレクション操作が使いづらい
> 退化した最悪な言語が存在する
>
> http://d.hatena.ne.jp/edvakf/20090405/1238885788
>
> 元々は手続き型として設計された簡潔な言語だったけど、
> オブジェクト指向やら関数型やらを行き当たりばったりに増築し続けたおかげで、
> コレクション操作に関する「一貫性」という設計哲学が破綻してしまった例だね
>
> 45 名前:デフォルトの名無しさん Mail: 投稿日:2017/05/05(金) 21:52:01.71 ID:Qc8J8Hpx
> [Ruby]
> a.sort().reverse().map{|x| x.to_s}.join('-')
>
> [JavaScript]
> a.sort().reverse().map(function(x) { return x.toString() }).join(“-“)
>
> [Python]
> '-'.join(map(lambda x: str(x), reversed(sorted(a))))

251sage (ワッチョイ 5365-f0Va)2020/03/18(水) 00:02:08.49ID:NlFyVHMs0
>>250 のコレクション操作を例にすると、Rubyならメソッドチェーンが
左から右へ自然と流れるから、ヒストリー機能を利用して
対話的なプログラミングが楽々と実践できる

$ irb
irb(main):001:0> a = [1,4,3,2]
irb(main):002:0> a.sort
=> [1, 2, 3, 4]
irb(main):003:0> a.sort.reverse
=> [4, 3, 2, 1]
irb(main):004:0> a.sort.reverse.map(&:to_s)
=> ["4", "3", "2", "1"]
irb(main):005:0> a.sort.reverse.map(&:to_s).join('-')
=> "4-3-2-1"
irb(main):006:0>

Ruby利用者にとっては特別でもなんでもない当たり前の常識だけど、
Pythonの対話環境じゃ無理なのが、いやはやなんとも

252デフォルトの名無しさん (ワッチョイ 292c-cvBQ)2020/03/18(水) 00:49:04.35ID:LQtyodHE0
元々、Ruby/Groovy は似てる。
JavaScript, Kotlin も、Ruby/Groovy に似せてきてる

>>241
有名な雑食系エンジニア・KENTA も、YouTube で言ってるけど、
将来的に、機械学習・AI をやりたいからと言って、Python から始めるのは間違いです!
初心者は、Ruby でプログラミング自体を学ぶべき

Ruby on Rails を一通りやると、アプリ製作の全工程を学べる。
後はそれを他言語へ置き換えるだけ

それと、多くの学校が、Ruby を勧めるのは、就職率が高いから。
Python の場合は、web系の仕事が、1/10 しかない

機械学習・AI は、大学院・英検準一級などの高学歴が必要だから、
高卒などのプログラミング初心者を雇わない

高卒web系プログラマーは、Ruby。
高学歴総合職は、Python

この内、学校で教えられるのは、Ruby。
Pythonを教えても、就職できないから詐欺になってしまう

253デフォルトの名無しさん (ワッチョイ d9ad-NT4g)2020/03/18(水) 04:59:33.67ID:/KOWoh670
>>244
それな
RailsなくてもRuby単体でも十分快適

ただWindows環境とデスクトップでのGUIが
どっちもイマイチだからWeb専用言語
みたいな扱いになってるんだろうか?

254デフォルトの名無しさん (ワッチョイ d9ad-NT4g)2020/03/18(水) 05:02:26.13ID:/KOWoh670
>>250
Rubyは文法がシンプルで書きやすいんだよな
書きやすさだけで言ったら
Ruby > Python >>> JavaScript

JavaScriptは変なクセと
ローカルルールが多すぎる

255デフォルトの名無しさん (ワッチョイ 29d2-CgSh)2020/03/18(水) 08:17:19.36ID:r6r+WwC90
>>250
Rubyのjoinなら事前の文字列化は不要なので
a.sort.reverse.join('-')

256デフォルトの名無しさん (ワイーワ2 FF63-hOSC)2020/03/18(水) 13:14:11.40ID:fwLKdVFoF
語順に拘る必要は無いと思う
a = [3,5,1,2,4]
'-'.join(pd.Series(a).sort_values(ascending=False).apply(str))

257デフォルトの名無しさん (ワッチョイ 9301-lXNI)2020/03/18(水) 14:43:54.21ID:mQYnVt2r0
>>249
違うよ
教えるコアな要素は共通にもかかわらず
初心者がつまづく内容や頻度だったりそれを自己解決できる割合が言語によってかなり違う
それが習熟速度に影響を与える一番の要因

ABテストやってみたいねと書いたのは複数言語を学習する順番が
プログラミング習熟度に与える影響の調査をペーパー書けるくらいフォーマルにやってみたいねって話
3言語なら最低6グループ必要になるわけで
統計的に意味ある人数集めてそんなテストするの普通の会社では無理だからね
Aグループ: Ruby -> Python -> JavaScript
Bグループ: Python -> JavaScript -> Ruby

258デフォルトの名無しさん (ワッチョイ 9301-lXNI)2020/03/18(水) 14:56:08.21ID:mQYnVt2r0
>>256
思考の順序とコードで表現する順序が近ければ近いほど
思考ノイズが少なくて初心者に限らず人間には理解しやすい
単にできればいいってもんじゃない

結局Pythonでわかりやすく読みやすいコードを書くには
自然な思考順序と異なる部分をラップした関数を独自に定義していくか
Pythonで表現できる順序に自分の思考順序を合わせていくしかなく
一般に読みやすいと思えるコードを書く労力がRubyに比べると段違いで多い

少し前にPythonスレで質問があったflattenがいい例

259デフォルトの名無しさん (ワッチョイ 292c-cvBQ)2020/03/19(木) 04:20:21.38ID:JDU05jIv0
Ruby の偽は、nil, false の2つだけだが、
JavaScript, Python では、各型に偽があるので、10個ぐらいある

こういう書き方ができてしまうのが危険!
整数の0 は偽

昔のC でも、MISRA-C などのコーディング規則で禁止していたもの。
条件式に、bool 値とみなされるもの以外を、
例えば、単純な整数などを使ってはならない

let ary = [ ]
let message = ""

if ( ary.length ) {
message = "真"
} else {
message = "偽"
}

console.log( message ) //=> 偽

260デフォルトの名無しさん (ワッチョイ d9ad-NT4g)2020/03/19(木) 07:34:00.79ID:Twc2892j0
>>258
Rubyの文法は自然だと思う

>>259
ゼロを偽に使うのは筋悪だね

261デフォルトの名無しさん (ワッチョイ 1314-9KJh)2020/03/19(木) 09:26:18.85ID:YUAN2W2v0
コマンドが正常に終了した時は0を返すもんですよ

262デフォルトの名無しさん (スフッ Sd33-AM22)2020/03/19(木) 12:39:59.01ID:Xi+VoJGEd
Rubyが理解できれば、JavaScriptもだいたい理解できるってまじっすか?

263デフォルトの名無しさん (ワッチョイ 292c-cvBQ)2020/03/19(木) 13:04:35.38ID:JDU05jIv0
Ruby・Groovy は似てる。
JavaScript, jQuery, Kotlin は、メソッドチェーン中心で、Rubyに似せてきてる

サーバー側のNode.js は、Rubyのコピー。
npm(node package manager), yarn は、Bundler のコピー

CakePHP, Spring Boot は、Rails のコピー。
だから、流行った

Rails がサーバー側の標準。
だから、RubyからLinux とか、サーバー側へ進む人が多い

264デフォルトの名無しさん (ドコグロ MM95-u5rl)2020/03/19(木) 13:10:40.14ID:TVS3Wm7/M
>>262
RubyはRails Scriptとして使うだけならさほど難しくはないが純粋に言語としては極めて複雑な部類で、
Rubyを理解した、と自信を持って言えるレベルならJavaScriptなどもはや楽勝

265デフォルトの名無しさん (ワッチョイ d9ad-NT4g)2020/03/19(木) 13:16:56.47ID:Twc2892j0
>>262
Rubyを覚えれば
Pythonはだいたい理解できる

JavaScriptはちょっと理解できる
クセがある部分が多いから

まあ2015でクラス構文が入って
だいぶマシになったけど

266デフォルトの名無しさん (ワッチョイ 13a5-TOPM)2020/03/19(木) 13:49:34.22ID:PJNEdIzn0
クラスが入っただけでマシになった、ってことか?

267デフォルトの名無しさん (ワッチョイ 292c-cvBQ)2020/03/19(木) 14:07:04.70ID:JDU05jIv0
JavaScript のクラス構文

class Card {
constructor( number ) { this.number = number }
}

let cards = [ ]

for ( let count = 1; count <= 5; count++ ) {
cards.push( new Card( count ) )
}

console.log( cards.map( x => x.number ) ) //=> [ 1, 2, 3, 4, 5 ]

268デフォルトの名無しさん (オッペケ Sr85-NT4g)2020/03/19(木) 16:59:22.58ID:88pUuzIXr
JavaScriptはクラス定数すら定義できないからな
最近のはしらんが

269デフォルトの名無しさん (ワッチョイ b902-Hfmd)2020/03/19(木) 17:00:49.00ID:DXn00lXA0
Pythonはうんこだが、Rubyのメソッドチェーンも今となってはゴミの部類で
パイプライン演算子こそが正解

270デフォルトの名無しさん (アウウィフ FF5d-hOSC)2020/03/19(木) 17:26:29.02ID:yS5RdDEsF

271デフォルトの名無しさん (ワッチョイ 1161-44a/)2020/03/20(金) 00:53:19.01ID:405ti7Ej0
>>264
JS は、promise, then, async, waitUntil, ServiceWorker(PWA)などの部分がかなり難しく感じる。
event の bubbling phase, capture phase, target phase と絡んで
cancelBubble, stopPropagation, preventDefault
の話も正確に理解するのはなかなか難しい。

272デフォルトの名無しさん (ワッチョイ 1161-44a/)2020/03/20(金) 00:56:41.66ID:405ti7Ej0
event.waitUntil()
event.respondWith()
はいまだにちゃんと理解できてない。
ServiceWorkerのWorker Lifecycleも物凄く理解が難しい。

273デフォルトの名無しさん (ワッチョイ 1161-44a/)2020/03/20(金) 01:05:01.24ID:405ti7Ej0
さらに、Blob の概念も独特で難しい気がする。

274デフォルトの名無しさん (ワッチョイ 1161-44a/)2020/03/20(金) 01:07:27.55ID:405ti7Ej0
これも理解できない。
誰かに教えてほしい。

addEventListener('fetch', event => {
// Prevent the default, and handle the request ourselves.
event.respondWith(async function() {
// Try to get the response from a cache.
const cachedResponse = await caches.match(event.request);
// Return it if we found one.
if (cachedResponse) return cachedResponse;
// If we didn't find a match in the cache, use the network.
return fetch(event.request);
}());
});

275デフォルトの名無しさん (ワッチョイ 9301-lXNI)2020/03/20(金) 01:51:15.32ID:b2ihZgLg0
>>271
その中で言語の要素はpromise/then/asyncの3つだけ
それも全部Promise

言語とフレームワーク/APIは分けて捉えないと
RubyとRailsを混同してるのと同じ

276デフォルトの名無しさん (ワッチョイ 1161-44a/)2020/03/20(金) 01:54:59.68ID:405ti7Ej0
>>275
でも今のJSでPromiseを避けて済ますことは難しい。
特にPWAのHelloWorld的なプログラムで>>274のように、
Promise, async, await, respondWith などの難しいが概念が同時に出てきてしまい、挫折してしまう可能性が高い。
やりたいことは単に、ウェブアプリのアイコンをホーム画面に出したいだけだと言うのに。

277デフォルトの名無しさん (ワッチョイ 292c-cvBQ)2020/03/20(金) 09:01:29.50ID:CQQp7Y750
jQuery でも基本は、Promise。
成功・失敗時の処理を書けばよい

async/await は、非同期を同期的に書ける。
内側にネストしないように書ける

278デフォルトの名無しさん (ブーイモ MM4d-vZZ2)2020/03/20(金) 10:07:25.86ID:IqcuAu3DM
>>276
>でも今のJSでPromiseを避けて済ますことは難しい。

言語が提供する機能とそれ以外を区別しろって言われてこれかよw
Promiseが理解できないのも納得

279デフォルトの名無しさん (ワッチョイ 8b14-9KJh)2020/03/20(金) 10:14:58.61ID:u1wBzCgK0
>>276
× でも今のJSでPromiseを避けて済ますことは難しい。
○ 非同期プログラミングをするならどの言語でも一緒
GUI関連は大抵の言語で非同期処理をする
要するに画面の描画をブロックしてはいけないからだ。

RubyはそもそもGUIとかでてこないから
使わないだけ

280デフォルトの名無しさん (ワッチョイ 1161-f9wa)2020/03/20(金) 11:04:22.80ID:405ti7Ej0
>>279
例えば、Win32APIなど非同期処理もMSDNを読めばちゃんと理解できる。
ところが、Promiseは公式サイトが何を言っているのか分からないので
99%の人が理解できない。

281デフォルトの名無しさん (アウウィフ FF5d-jdQV)2020/03/20(金) 11:30:29.28ID:nAHhYb7gF
馬鹿除けにちょうど良い機能やん

282デフォルトの名無しさん (ワッチョイ d312-c6Tf)2020/03/23(月) 10:55:32.08ID:mWzqBLYF0
jsは伝統的にコールバックをやってきたというのを知っていないと理解は難しいかもね
promiseはコールバック地獄の救世主だからそれなしでは語れない
イベント系はもともとクリックされたらみたいなこととこから始まってるのを知ってないとイメージがつかめないだろうな

283デフォルトの名無しさん (ワッチョイ 13a5-TOPM)2020/03/23(月) 10:59:24.89ID:7lDoSnDw0
Cをみりゃ分かる
コールバック地獄の救世主なんていない
まやかしだ

284デフォルトの名無しさん (ワッチョイ 8b2c-cvBQ)2020/03/24(火) 12:55:54.95ID:n56XI6Ab0
Windows 10, WSL, Ubuntu 18.04 を起動して、ユーザーのホームディレクトリで、
Ruby のバージョンマネージャーのrbenv-installer を実行したけど、

rbenv / rbenv-installer
https://github.com/rbenv/rbenv-installer/blob/master/bin/rbenv-installer

これの34行目
rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"

rbenv は、初回は空文字列だが、インストール後には、rbenv となる

38行目
cd "${rbenv%/*}"

これは、cd rbenv するが、rbenv というディレクトリは存在しないのでエラーになる!
.rbenv なら存在するけど

51行目
git pull --tags origin master

なので、git pull されない

この38行目は、バグなのかな?

285284 (ワッチョイ 8b2c-cvBQ)2020/03/24(火) 13:30:12.20ID:n56XI6Ab0
rbenv-installer の間違いの訳ないよな。
漏れの手順・環境がおかしいのか

初回はホームディレクトリで実行して、
インストール後はホームディレクトリではなく、~/.rbenv ディレクトリで、実行するのかな?

eval "$(rbenv init -)"
してるけど、まだどのバージョンも入れていないから、
rbenv というディレクトリは存在しないのかも?

バージョンを入れたら、rbenv というディレクトリが作られるのかも?

286デフォルトの名無しさん (ワッチョイ b15f-jdQV)2020/03/24(火) 13:32:10.90ID:WT9cP8p50
文句言う前に
VMでも何でも良いから
素の生インスコ環境造って
他の影響を排除してみ

287デフォルトの名無しさん (ワッチョイ 8b14-9KJh)2020/03/24(火) 15:16:18.23ID:fj9Tix3R0
>>284
知らんけどさぁ。そのコードだけ見て判断するなら
> rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"

まずrbenvには普通はコマンドのフルパスが入る。
二番目の~/.rbenv/bin/rbenvはわかりやすく、そこにrbenvコマンドがあればそのパス
一番目は、rbenvコマンドをPATHから検索して見つかったものが入る。だから本来はフルパス
38行目の cd "${rbenv%/*}" からもフルパスが入ってるという前提で
rbenvコマンドがある前提でそのディレクトリに移動しようとしている。

もし本当に rbenv変数に rbenv という文字列が入るとしたら
おそらく rbenvがシェル関数の場合だろう。

rbenvというシェル関数は、実は rbenv を使用していると作られる。
正確には eval "$(rbenv init -)" の実行時に定義されている。

しかし rbenv-installer は別コマンドだ、現在のシェルで定義しているシェル関数の rbenv が
呼び出したrbenv-installerという子プロセスから見つかるはずがない。

この前提が崩れるとしたら、
1. rbenv-installer を . コマンド (または source コマンド)で呼び出している。
意図的にやらない限り、そうはならないし、やってるのだから気づくだろう。

そしてもう一つ。
2. rbenvシェル関数がexport -fされている場合だ。通常exportできるのは変数だけなのだが
bashの変な機能で関数もexportできて、それを子プロセス(当然bashに限る)から参照できてしまう。
envコマンドで環境変数一覧を表示してみれば、BASH_FUNC_rbenvという特殊な名前で
rbenvシェル関数のコードが環境変数に設定されてるのが見えないか?だとしたらそれが原因だ。
普通は関数をexportしてるはずがないんだが、どこかでなにかのついで全シェル関数をexportとかやってないか?

3. もしくはBASH_ENV環境変数を使ってないか?これはbash起動時に自動的に
シェルスクリプトを実行するための変数だ、そこでrbenvシェル関数を定義していたりしないか?

288デフォルトの名無しさん (ワッチョイ 8b14-9KJh)2020/03/24(火) 15:26:44.36ID:fj9Tix3R0
まあバグとまでは言わんけど、対応漏れとして / で始まらないものは
シェル関数として省くとかすれば対応は可能かもしれんなぁ。
それ周りの解決法は調べた事ないので、どうするのがベストなのかしらんけど

289284 (ワッチョイ 8b2c-cvBQ)2020/03/24(火) 17:01:58.24ID:n56XI6Ab0
rbenv のトップページを参考にして、実行した
https://github.com/rbenv/rbenv

Basic GitHub Checkout の所で、rbenv-installer を使った。
すると、git clone で、~/.rbenv の下に、ローカルリポジトリが出来た

次に、~/.bashrc (漏れは、~/.bash_aliases)に、下の2行を追加したので、
常に、bash 起動時には、eval "$(rbenv init -)" が実行される

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

>>287
1. rbenv-installer は、1回やっただけです。
2. BASH_FUNC_rbenv は無いです。
3. BASH_ENV という環境変数も無いです

which rbenv とすると、環境変数PATH に、~/.rbenv/bin を追加しているから、
~/.rbenv/bin/rbenv

確かに、38行目の、cd "${rbenv%/*}" は、rbenv 変数の、最初の/ 以下を削除するから、
パスが入っている事を想定しているのかも?

ただ、2回目以降に、rbenv-installerを実行した場合に、
51行目のgit pull --tags origin master で、
リモートリポジトリから最新を取得するように書いてあるから、
38行目の、cd "${rbenv%/*}" で、エラーになると、51行目へたどり着けないかなと思って

まあ、まだどのバージョンも入れていないから、
バージョンを入れたら、rbenv 変数にパスが入ってくるのかも知れない。
こんなに有名なアプリに、こんな単純なバグがあるとは思えないし、漏れの勘違いでしょう

290デフォルトの名無しさん (ワッチョイ 0dad-OG1y)2020/03/28(土) 22:49:31.98ID:413BE/qa0
たのしいRuby第5版の古本買ったのでRuby入門します(^_^)/

291デフォルトの名無しさん (ワッチョイ 5e2c-2pFN)2020/03/28(土) 23:25:45.38ID:lvHGCPQW0
Windows 10, WSL, Ubuntu 18.04 で、
rbenv で、Ruby 2.6.5 をインストールできた!

CPU-i3 を省エネモード(1コアのみ)で使っていたから、
コンパイルには、25分掛かった

build-essential, openssl, readline, zlib のパッケージが必要だった

sudo apt install -y build-essential
sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev

292デフォルトの名無しさん (ワッチョイ 5dad-+vel)2020/04/01(水) 03:54:14.10ID:PTOn+beS0
VScodeでRuby実行環境作ったけど楽しいは!
サクサク動かして試せる!

293デフォルトの名無しさん (ワッチョイ 4b2c-AHN4)2020/04/01(水) 05:08:16.41ID:T/a2Vy7O0
Windows 10, WSL, Ubuntu 18.04 で、
rbenv で、Ruby 2.6.5 をインストールできた!

VSCode のRemote WSL もあるから、改行コードさえ気を付ければ、
Windows側のVSCodeで、Linux側のRubyを動かせる

今までは、WSL のUbuntu アプリを起動して、vim を使ったり、
コマンドプロンプト・PowerShell で、wsl と入力していたけど

RubyInstaller for Windows, MSYS2/MINGW も、いらなくなるかも

294デフォルトの名無しさん (ワッチョイ 23ad-/I61)2020/04/01(水) 05:23:37.67ID:d9NDYWBE0
インスタンスがどれで変数の型がどれでオブジェクトはどれってごっちゃになってわからないのですが
class A=new A() インスタンスはこの行全てを指すのですか?     

295デフォルトの名無しさん (オッペケ Sr01-KN+/)2020/04/01(水) 07:10:14.21ID:uldFLeaHr
まず日本語の勉強から始めろ

296sage (ワッチョイ e365-YFbg)2020/04/01(水) 08:45:05.94ID:Y4BtYbUm0
まず、そもそも class A=new A() は Ruby の文法として完全に誤りだ

Ruby では、クラス A を定義するなら、class A; … ; end と書く
同様に、クラス A からインスタンスを生成して変数 a に代入するには a = A.new と書く

プログラミングが初めてであればオブジェクト指向の概念がゴッチャになるのは
しかたないとはいえ、それ以前にプログラミングの基本から学んだほうが良いと思うよ

297デフォルトの名無しさん (ワッチョイ 4b2c-AHN4)2020/04/01(水) 09:07:03.23ID:T/a2Vy7O0
ひとまずこれで、クラスA を定義して、その設計書に基づき、
インスタンス・実体a・b を作った

クラス内に、変数・関数を定義していけば、より本格的なクラスになっていく

class A
end

a = A.new
b = A.new

298デフォルトの名無しさん (ワイーワ2 FF93-8H9x)2020/04/01(水) 11:18:53.70ID:5VJq6KKKF
a = (class A; end).new
とかあるんだっけ

299デフォルトの名無しさん (ワッチョイ e5ad-KN+/)2020/04/01(水) 14:38:45.50ID:8LLFjcSO0
>>294
Rubyにおいてはすべてがオブジェクトなので
変数の型はクラスだと考えてよい
(他言語はそうとは限らない)

インスタンスは個別の状態(変数)を持ったもので
「オブジェクト」という言葉は文脈によって
クラスとインスタンスの両方の意味で用いられる

よくある喩えで言うと人間はクラスで
太郎や花子がインスタンス
太郎と花子はどちらも人間(クラス)だけど
個々の状態(性別や年齢などの変数)は異なる

とりあえずの回答としてはざっとこんなもんだが
オブジェクト指向を本格的に習得したいなら
本で勉強する必要があるだろう

300デフォルトの名無しさん (ワッチョイ 558f-q/Tg)2020/04/01(水) 16:10:35.31ID:nPBcGZ1y0
1はIntegerクラスのインスタンス
“abc”はStringクラスのインスタンス
[1,2,3]はArrayクラスのインスタンス

Integer, String, ArrayはClassクラスのインスタンス
ClassもClassクラスのインスタンス

301デフォルトの名無しさん (ワッチョイ 1b8c-CgtG)2020/04/01(水) 21:25:17.43ID:XvdBTC2x0
オブジェクトを使った例文もプリーズ

302299 (ワッチョイ e5ad-KN+/)2020/04/01(水) 22:04:08.48ID:8LLFjcSO0
class Human
attr_reader :age, :sex

def initialize(age, sex)
@age = age
@sex = sex
end
end

taro = Human.new(24,'man')
hanako = Human.new(18, 'woman')

p taro.age
p taro.sex
p hanako.age
p hanako.sex

303299 (ワッチョイ e5ad-KN+/)2020/04/01(水) 22:07:05.34ID:8LLFjcSO0
>>299
>>302
文章説明したこと(だけ)の
サンプルコード

同じHumanクラスだが
インスタンスとして
taroとhanakoは異なる

インスタンス変数ageとsexも
インスタンスごとに
異なった状態になっている

それだけのことだけど基本中の基本

304284 (ワッチョイ 4b2c-AHN4)2020/04/02(木) 12:07:15.86ID:BA8GpIv40
>>284
疑問が解決しました!

>rbenv="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
>rbenv は、初回は空文字列だが、インストール後には、rbenv となる

bash スクリプトを実行すると、rbenv には、~/.rbenv/bin/rbenv が入ってきて、正常に処理されます。
これを端末で実行すると、rbenv が出力されるので、挙動が違ってくるだけでした!
思わぬ、引掛けw

y="$(command -v rbenv ~/.rbenv/bin/rbenv | head -1)"
echo $y
rbenv

x="$(command -v rbenv ~/.rbenv/bin/rbenv | head -2)"
echo $x
rbenv ~/.rbenv/bin/rbenv

その後、cd "${rbenv%/*}"
で、~/.rbenv/bin へ移動します

なので、51行目で、git pull されます

305デフォルトの名無しさん (ワッチョイ 1d14-hvMa)2020/04/02(木) 12:56:23.11ID:qWu3pHo10
いみがまったくわからんどうでもいいや

306デフォルトの名無しさん (JP 0H93-3bw/)2020/04/02(木) 13:56:36.20ID:vZC8Eo+WH
simulationライブラリで純粋な関数式プログラミングをする
http://x0000.net/topic.aspx?id=3631-0

UIライブラリ (C#, 2D) を作ったよ
http://x0000.net/topic.aspx?id=3688-0

学術の巨大掲示板群 - アルファ・ラボ
http://x0000.net

数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

307284 (ワッチョイ 4b2c-AHN4)2020/04/02(木) 14:07:46.77ID:BA8GpIv40
これを、bash スクリプト内に書いて、スクリプトを実行すると、

xxx="$(command -v rbenv)"
yyy="$(command -v ~/.rbenv/bin/rbenv)"
zzz="$(command -v rbenv ~/.rbenv/bin/rbenv)"

xxx, yyy も、~/.rbenv/bin/rbenv で、
zzz も、同じものが2行表示されるけど、これを端末で直接実行すると、

xxx は、rbenv
yyy は、~/.rbenv/bin/rbenv
zzz は、rbenv, ~/.rbenv/bin/rbenv の2行

xxx では、rbenv のパスが入って来ない!

which rbenv と入力すると、ちゃんとパスが表示されるのだけど、
~/.rbenv/bin/rbenv

bash スクリプト内に書いて、それを実行した時と、
端末に直接入力した時では、結果が異なる!

それで漏れが勘違いしたという話ですw

308デフォルトの名無しさん (ワッチョイ a301-51IN)2020/04/02(木) 14:48:16.09ID:s8KkhiHc0
>>304

>>287に書いてたよね

>しかし rbenv-installer は別コマンドだ、現在のシェルで定義しているシェル関数の rbenv が
>呼び出したrbenv-installerという子プロセスから見つかるはずがない。

309デフォルトの名無しさん (オッペケ Sr01-KN+/)2020/04/02(木) 15:03:21.14ID:Jw7S0ezcr
車輪の再発名というか糞の再生産というか

310デフォルトの名無しさん (エムゾネ FF43-8H9x)2020/04/02(木) 18:25:33.41ID:4X8ewqwSF
Ruby信者が別のRuby信者を何人感染させるか
1を下回ってると思う

311デフォルトの名無しさん (ワッチョイ 4b2c-AHN4)2020/04/03(金) 12:39:37.64ID:tv+k2Xei0
xy4_02.txt → xy4_002.txt

みたいに、ファイル名末尾の数字部分を、3桁0埋めにする処理で、
文字列を左右反転して、後ろから処理しているのですが、

02 反転→ 20 (0埋め)→ 200 反転→ 002

format・sprintf で、- 左詰め、0埋めにしても、0埋めできません!
0埋めは、右詰めでしか使えない!

"%03d" % "20" # "020"
"%-03d" % "20" # "20", 200 にならない!

一方、JavaScript では、両方向で0埋めできますが、
Ruby にも、こういう関数がありますか?

"20".padStart( 3, "0" ) // 020
"20".padEnd( 3, "0" ) // 200

312284 (ワッチョイ 4b2c-AHN4)2020/04/03(金) 13:04:09.91ID:tv+k2Xei0
>>307
の話題は、シェルスクリプトのスレへ移動しました!

シェルスクリプト総合 その33
http://2chb.net/r/tech/1584893550/56-60

313デフォルトの名無しさん (ワッチョイ a301-51IN)2020/04/03(金) 14:05:19.68ID:q/cvlU880
>>311
pry> "20".ljust(3, "0")
=> "200"
pry> "20".rjust(3, "0")
=> "020"

Stringのメソッドに目的のものがないかどうかを最初に探そう
https://docs.ruby-lang.org/ja/latest/class/String.html

314デフォルトの名無しさん (ワッチョイ 15e6-20Ab)2020/04/03(金) 16:23:36.74ID:CpQ2Rjn20
"%03d" % "02" # "002"

では、何か不味いのか

315311 (ワッチョイ 4b2c-AHN4)2020/04/03(金) 17:00:52.81ID:tv+k2Xei0
0 で始まる文字列は、8進数と解釈されるのか、08, 09 などでエラーになる!

"%03d" % "07" # OK
"%03d" % "08" # エラー

>>313
ありがとう

316デフォルトの名無しさん (ワッチョイ 6b7d-9V/B)2020/04/03(金) 17:22:43.70ID:Tlqo6QWT0
"%03d" % "08".to_i #=> "008"

317311 (ワッチョイ 4b2c-AHN4)2020/04/03(金) 18:14:05.62ID:tv+k2Xei0
先頭から続く、0 は鬼門!
それらを除去したい。よい方法は?

0080 → 80
123 → 123

"" → ""
000 → ""

318デフォルトの名無しさん (ワッチョイ a301-51IN)2020/04/03(金) 18:26:24.61ID:q/cvlU880
>>317
>000 → ""
“000”のleading zeroを除くと“0”では?

319311 (ワッチョイ 4b2c-AHN4)2020/04/03(金) 18:51:12.37ID:tv+k2Xei0
先頭から続くかぎり、除去するので、これで良いです。
000 → ""

これは、自作するのは難しい。
プログラミングのお題に出してみようか

320デフォルトの名無しさん (ワッチョイ a301-51IN)2020/04/03(金) 18:59:52.23ID:q/cvlU880
そっか、じゃ正規表現だね

"000".sub(/^0+/, "") #=> ""
"123".sub(/^0+/, "") #=> "123"
"0080".sub(/^0+/, "") #=> "80"

321311 (ワッチョイ 4b2c-AHN4)2020/04/03(金) 19:02:21.43ID:tv+k2Xei0
>>319
修正

0 → ""
000 → ""

やっぱり、これらは空文字列よりも、0 にした方が良さそう

0・000 → 0

322デフォルトの名無しさん (オッペケ Sr01-KN+/)2020/04/03(金) 19:52:06.49ID:MoLJYTUlr
なんやこのガキ

323311 (ワッチョイ 4b2c-AHN4)2020/04/03(金) 20:00:56.29ID:tv+k2Xei0
プログラミングのお題の方に書き込んだので、このスレから移動してください!

324デフォルトの名無しさん (ワッチョイ 6352-cvTZ)2020/04/03(金) 20:10:53.88ID:y4LIlYUL0
>>322
有名な荒しだよ

>>323
誰もお前の独り言に興味ないから一人で行け。
いや、向こうのスレに迷惑をかけるな。

325デフォルトの名無しさん (オッペケ Sr01-KN+/)2020/04/03(金) 20:24:38.54ID:MoLJYTUlr
>>324
この板の荒らしって単芝君くらいしか知らんかったわ

326デフォルトの名無しさん (ワッチョイ a301-51IN)2020/04/03(金) 20:48:35.54ID:q/cvlU880
>>323
お題スレは質スレじゃないんだから並行してても別にいいよ
あそこはお題に対してこんな解き方もあるんやでを披露しあって楽しむ処

327デフォルトの名無しさん (ワッチョイ 6352-cvTZ)2020/04/03(金) 20:55:22.75ID:y4LIlYUL0
>>325
いくつかのスレのタイトルにRuby禁止と書かれているのは、そいつか原因になっている。
活発に活動していて、コテもつけてないが書きっぷりで一目で分かるので目障りきわまりない。

328291 (ワッチョイ 4b2c-AHN4)2020/04/05(日) 14:17:50.21ID:eWBrSqct0
Windows 10, WSL, Ubuntu 18.04 で、
rbenv で、Ruby 2.6.5 をインストールして、

PowerShell で、wsl と入力し、
Windows 側のプロジェクトフォルダへ移動してから、

Gemfile に、gem "rails"
と書いて、bundle install と入力すると、

nokogiri 1.10.9 with native extensions のコンパイルに数分掛かったが、
エラーもなく、rails 6.0.2.2 がインストールされた!

でも、SQLite, Node.js などが無いけど

329デフォルトの名無しさん (ワッチョイ cb68-CuPJ)2020/04/07(火) 16:20:09.03ID:FvbCZ7uW0
初歩的な質問ですみません

print(”Hello, Ruby.\n")と打つと

デバイス PRN を初期化できません

とエラーが出ます。たのしいRubyの手順通りにしたのですが
こう表示されてしまいます。本にはこのエラーの対処法が載っていないので
困っています。ご教授お願い致します。

330デフォルトの名無しさん (アウウィフ FFe9-8H9x)2020/04/07(火) 16:35:32.77ID:G5F9VLMpF

331デフォルトの名無しさん (ワッチョイ cb68-CuPJ)2020/04/07(火) 16:48:40.00ID:FvbCZ7uW0
>>330さん
ググったのですが意味が解らず…
DOSプロンプトで見たらインストールは正常にされたみたいです。

詳しく教えていただければおっぱい見せます。

332デフォルトの名無しさん (ワッチョイ 4b2c-AHN4)2020/04/07(火) 17:19:34.70ID:ivfSfUTD0
>print(”Hello, Ruby.\n")
全角文字、(” を使っちゃいけない!

プログラミングは、半角英数字しか使えないので、すべて半角英数字で入力し直すべし!
print("Hello, Ruby.\n")

特定の条件では、( ) を省略できるので、これでも良い
print "Hello, Ruby.\n"

また、puts なら自動的に改行されるので、最後の改行コード・\n が不要
puts "Hello, Ruby."

333デフォルトの名無しさん (ワッチョイ cb68-CuPJ)2020/04/07(火) 18:50:31.95ID:FvbCZ7uW0
>>332さん
ありがとうございます。頑張ってみます。

334デフォルトの名無しさん (オッペケ Sr01-KN+/)2020/04/07(火) 20:18:18.38ID:/JRvNpEdr
おい、おっぱい

335デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/08(水) 16:21:31.15ID:bduWTrbF0
コマンドプロンプトなら実行できるのにRubyコマンドではできません。なぜでしょうか?

336デフォルトの名無しさん (ワッチョイ 062c-5WFu)2020/04/08(水) 18:35:17.62ID:fnNjblX40
普通は、ソースコードをファイルに書いて実行する。
ruby script.rb

-e オプションで、1-liner も実行できる。
ruby -e 'puts "a"'

Windows のPowerShell では、%Q("a") とダブルクォーテーションを、%Q( ) で囲まないと動かないこともある
ruby -e 'puts %Q("a")'

VSCode などのエディターを使うのがよい

337デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/08(水) 19:50:16.26ID:bduWTrbF0
>>336さん

Visual Studio code インストールしました。

エディター、よくわかっていません…

妹の食事を作りつつ勉強していますが難しいですね。

中3女子には難しいでしょうか?

338デフォルトの名無しさん (ワッチョイ 1714-9hq2)2020/04/08(水) 19:53:23.25ID:oh4YVJIM0
小6じょちのあたちにもできたんだから
おねぇちゃんののうりょくがないだけだよ

339デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/08(水) 20:12:59.80ID:Au8ilpyjr

340デフォルトの名無しさん (ワッチョイ a201-vZv9)2020/04/08(水) 20:59:04.51ID:+ufIeUeW0
>>335
「えんぴつなら書けるのにボールペンでは書けません。なぜでしょうか?」って書いてるのと同じ
これ答えられる?

どういう環境で何をやろうとしてるかもわからない
コマンドプロンプトで何ができたのかもわからない
Rubyコマンドで何がどうできないのか、どういうエラーが出てるのかもわからない

プログラミングに限らず人に質問して自分の欲しい答えを引き出すには最低限の質問力が必要

341デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/08(水) 22:17:10.21ID:bduWTrbF0
すみませんんでした。

Rubyコマンドで

print("Hello, Ruby.\n")

と打つと

デバイス PRN を初期化できません

と表示されます。

コマンドプロンプトで打つと実行できます。irbだと実行できるのは解ったのですがなぜRuby
で実行できないのかがわからなかったんです。ググってみても、「たのしいRuby」を
読んでも記載されていません。

342デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/08(水) 22:22:22.52ID:bduWTrbF0
環境はWindows10で

Ruby2.7.1です。

Visual Studio codeをインストールして日本語にできました。

エディタ−の使い方を勉強しています。

恥を忍んで質問しました。すみません。

343デフォルトの名無しさん (ワッチョイ 8252-b+QY)2020/04/08(水) 22:35:28.81ID:5a3Kp3Hv0
>>341
何をやってどういう結果になったかを、相手に伝わるように正確に書くこと。
おそらくそれができていないから、実行した画面のキャプチャを撮って張り付けること。

>>337みたいなどうでもいい情報を書く前に、どうしたら欲しい回答が相手から得られるかを考えなよ。

344デフォルトの名無しさん (ワッチョイ a201-vZv9)2020/04/08(水) 22:37:29.23ID:+ufIeUeW0
>>341
古い版の「たのしいRuby」があったから見てみたけど

print(“Hello, Ruby.¥n”) と書いたhelloruby.rbというファイルを作成して
それをCドライブのsrcフォルダに保存してから
コマンドプロンプトで
>cd c:¥src
>ruby helloruby.rb
とやれって書いてるよ

「デバイス PRN を初期化できません」ってエラーが出るってことは
コマンドプロンプトに直接 print(“Hello, Ruby.¥n”) と打ち込んでるんじゃないの?

irbははinteractive ruby shellの略で対話型で1行ずつ書いたコードを実行する環境の名前で
irbコマンドはその環境を起動するコマンド
rubyコマンドは基本的にrubyのコードを書いたファイルを渡してプログラムを実行するためのコマンド

345デフォルトの名無しさん (ワッチョイ 6f33-Xq4u)2020/04/09(木) 00:15:03.91ID:ESGIvA9P0
メモ帳notepad.exeで、ファイルをつくれ?

346デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/09(木) 10:43:54.76ID:yDuqE7M0r
Rubyコマンドっていうから端末でruby起動して標準入力からコード書いてんのかと思ったら自作ワードだったか

347デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/09(木) 11:07:57.57ID:0FSX5ei3r
パス通ってんなら「puts "Hello, Perverts!"」って内容のhoge.rbをダブルクリックすれば実行されんじゃないの?
ウィンドウズ知らんけど

WSL独り言連投君よ、今こそ君の知識を授けてあげなよ(笑)

348デフォルトの名無しさん (ワッチョイ 062c-5WFu)2020/04/09(木) 12:17:41.44ID:pqMoXxyo0
エディタは、VSCode だけを使ってください!
メモ帳などを使うと、BOM の有無・文字コード(UTF-8, CP932(sjis, shift-jis))などで、ややこしい

VSCode の下に、改行コード・文字コードが表示されるので、そこをクリックして変更してください。
Windows なら、UTF-8 で、改行コードはCR/LF です

VSCode では、まず、3つの拡張機能を入れる。
Code Runner(Run Code), Bracket Pair Colorizer, indent-rainbow

Code Runner では、そのスクリプトファイル全体、または選択したコード片を、
右クリックメニューから実行できる

require 'ファイルパス'
などの相対パスが解決できない場合は、パスを探す基点となるフォルダを、
ユーザー・ワークスペース・フォルダの、どれかの設定項目に追加してください

Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

まあ、VSCode の詳細は、VSCode のスレで聞いてください

349348 (ワッチョイ 062c-5WFu)2020/04/09(木) 12:41:50.31ID:pqMoXxyo0
>>341
エクスプローラーで適当なフォルダを作って、
そのフォルダをVSCode の左のサイドバー上のエクスプローラービューへドラッグ&ドロップすれば、
そこがワークスペース(プロジェクト)フォルダになる

エクスプローラービューの上の「新しいファイル」アイコンを押して、適当なファイルを作る。
例えば、script.rb

そのファイル上に、
print("Hello, Ruby.\n")

と書いて、それを選択して、または、ファイル全体を保存して、
右クリックメニューから、Run Code を起動すると、Code Runner で実行できる

VSCode の使い方は、ヘルプのようこそとか、対話型プレイグラウンドで学べる

350348 (ワッチョイ 062c-5WFu)2020/04/09(木) 12:55:29.23ID:pqMoXxyo0
基本的に、サンプルのコード片などは、全てVSCode のCode Runner で実行してください!
Windows のirb は、日本語入力でバグルので、使わない方がよい

基本的に、web 系の言語は、インターネットのLinux サーバーを対象にしているので、
パソコンのWindows などでは、動かないことが多い。
様々なライブラリを作る人が、Windows 用には作らないので

そのため最近では、Windows 10, WSL 上に、Ubuntu 18.04 など、
Linux を入れて使うことが多くなった

VSCode からは、Remote WSL という拡張機能で、Linux側へアクセスできる

初心者の間は、WSL, Linux などは関係ないけど

351デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/09(木) 17:22:58.21ID:LYdNiQuc0
>>349さん

皆さんありがとうございます。拡張機能でCode Runnerインストールして

ファイル上にprint("Hello, Ruby.\n")と入力、保存して右クリック、これでRuby動く!

と思ったものの、何も起きません…

私のようなバレーボール馬鹿にはプログラムは向いていないんでしょうか…

夕食後、もう一度やりなおしてみます。

352348 (ワッチョイ 062c-5WFu)2020/04/09(木) 17:42:02.85ID:pqMoXxyo0
ただし、ファイル名が、script.rb みたいに、
Ruby の拡張子、.rb を付けること

それで、そのファイルをRubyで実行すると、判断されるはず!

353デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/09(木) 19:33:27.84ID:LYdNiQuc0
>>348さん
Code Runnner 実行できました。皆さんありがとうございます。

ただ次のステップ、VSCode実行からどうしたらいいでしょうか?

354デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/09(木) 19:51:56.26ID:ZpQLfNz3r
そもそも初心者がVSCode使う意味が分からん。
Hello, world.レベルならirb使ってちまちまやった方が絶対勉強になる。
日本語入力に不安があるならコマンドプロンプトに「irb --noreadline」って打って起動すれば問題ないだろう。

355デフォルトの名無しさん (アウアウウー Sabb-juGi)2020/04/09(木) 20:09:13.08ID:gKTfLKCaa
そもそもRubyの公式エディタはEmacs
VSCodeは邪悪なMSの製品である上に、JavaScript製のAtomを殺したTypeScript製のVSを使うことは動的型に対する静的型付けの勝利を認めることになる
絶対に使ってはならない

356デフォルトの名無しさん (ワッチョイ d7ad-LdNq)2020/04/09(木) 20:15:27.05ID:7CAQ8ULU0
Emacsは初見殺しなんで
絶望的に初心者に向かない

357デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/09(木) 20:18:17.27ID:LYdNiQuc0
製品の詳しいことは解らないんですがそんなにだめなんでしょうか?
脳筋の私でもなんとか理解できてきたような気がするんですが…

358デフォルトの名無しさん (ワッチョイ d7ad-LdNq)2020/04/09(木) 20:21:56.41ID:7CAQ8ULU0
VSCodeはデフォルトの設定で使うなら
別にそんなに難しくないと思う
なんだかんだMSだからExcelとかと同じで
普通の人が普通に使えるようになってる

359デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/09(木) 20:28:00.86ID:LYdNiQuc0
皆さんなんだかんだ言っても優しいですね。Rubyを選んで良かったです。

360デフォルトの名無しさん (ワッチョイ 6f33-Xq4u)2020/04/09(木) 20:28:41.78ID:ESGIvA9P0
>>356
vi/vimよりもはるかにマシ!

361デフォルトの名無しさん (ワッチョイ a201-vZv9)2020/04/09(木) 20:37:22.11ID:AINw40ik0
>そもそもRubyの公式エディタはEmacs
これいつもの荒らしの口癖
本人はRubyもEmacsもまともに使えない

362デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/09(木) 21:04:33.32ID:ZpQLfNz3r
ホントの初心者ならirbだけでよい。
それでちょっとまとまったことやりたくなったらメモ帳でも使えばよい。
いきなりVSCodeって、工作好きの子供にいきなり電動ドリルやチェーンソウを買い与えるような仰々しい印象なんだが。
まあ畢竟、外野が強制するものでもないし好きなものを使えばいい。

363デフォルトの名無しさん (ワッチョイ d714-9hq2)2020/04/10(金) 06:22:21.43ID:4WnvV4mF0
>>354
> Hello, world.レベルならirb使ってちまちまやった方が絶対勉強になる。

勉強とは何をやったか記録すること
irbでどうやって記録に残すんだ?あん?

364デフォルトの名無しさん (ワッチョイ d714-9hq2)2020/04/10(金) 06:24:00.31ID:4WnvV4mF0
>>362
初心者をバカにするな。
「お前は初心者だからプロと同じものを使うな」は
初心者をバカにする行為でしかない。そんな偉そうな人間でもないだろお前は

365デフォルトの名無しさん (ワッチョイ 068f-Jrel)2020/04/10(金) 09:11:42.62ID:AffC1A390
Hello worldなんて頭の中に記録できればログ記録しとく必要なんかないやろ

366デフォルトの名無しさん (ワッチョイ 8252-b+QY)2020/04/10(金) 09:18:05.41ID:Ntz3fYqx0
>>363
記録を目的にしたら本末転倒だろう。
最初のうちは色々入力して試行錯誤し、自分の頭で考えたり成功や失敗を繰り返し経験することのが大事。
まずは書き捨てていいからとにかく試して自分の理解がある程度整理できるようになってから残せばいい。

367デフォルトの名無しさん (ワッチョイ 567d-0bpl)2020/04/10(金) 09:29:19.09ID:2wmBzsgU0
>>363
>勉強とは何をやったか記録すること
それ記録じゃなくて記憶の記憶違い

368デフォルトの名無しさん (ワッチョイ a201-vZv9)2020/04/10(金) 10:27:27.94ID:L7OYJgcU0
>>363
デフォルトで~/.irb_historyに1000行まで記録されてる
(2.6まではデフォルトでは履歴は無効、2.7からデフォルトで有効)

出力を含めた作業ログをファイルに残したいならそういう機能を持ったターミナルを使う
WindowsならPowerShellでStart-Transcript

369デフォルトの名無しさん (ワッチョイ 2b17-8TKJ)2020/04/10(金) 11:28:17.25ID:ccEovqrb0
>>363
絶望的なまでに頭が悪いなお前
それ読んで馬鹿にされたと思うのは劣等感の塊で自意識過剰なお前くらいだろ

そしてお前はirbのこと馬鹿にし過ぎ
教育現場でとっかかりとしてREPLを通して学ばせるなんて日常茶飯事だわ
東大でも準必修でRubyをirbを使って教わったぞ

370デフォルトの名無しさん (ワッチョイ d714-9hq2)2020/04/10(金) 11:39:21.89ID:4WnvV4mF0
>>366
いろいろ試行錯誤する時に、
あれ?さっきなんて入力したっけ?
ってなったら意味ないだろw

コードをじっくり見ないといかんし
勉強っていうのはタイプすることじゃないぞ
自分で何を書いたかを理解することだぞ

371デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/10(金) 11:52:26.74ID:716l2Eq1r
>>370
ctrl+rやctrl+pも知らない馬鹿がなんか言ってる

372デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/10(金) 11:59:51.13ID:716l2Eq1r
というか入出力の履歴が保存されてる件はスルーなのか
荒らしだなこれは

373デフォルトの名無しさん (ワッチョイ 0614-9hq2)2020/04/10(金) 12:01:17.98ID:gPLvT64S0
>>371
その程度の話なら画面スクロールでいいだろw
アホかw

374デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/10(金) 12:05:37.87ID:716l2Eq1r
>>373
端末の表示バッファ超えててもctrl+rや保存された履歴は有効なんだが底辺の底よりも頭悪いなお前

375デフォルトの名無しさん (ワッチョイ 2314-9hq2)2020/04/10(金) 12:52:01.84ID:nukGJGZx0
>>374
お前あれだろ、黒板の板書をそのまま書き写して勉強した気になってたやつだろ?
自分なりに整理して書かないやつがログとってても何の勉強にもならんよw

376デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/10(金) 13:17:00.45ID:716l2Eq1r
「irbでどうやって記録に残すんだ」とか馬鹿なこと言うからみんなからさんざん論破されてんのに意味不明すぎて笑える

377デフォルトの名無しさん (ワッチョイ 062c-5WFu)2020/04/10(金) 13:24:11.57ID:2KZut19P0
初心者は、VSCode で、Code Runnner を使うべき!

メモ帳は、文字コード・BOM の有無で動かないから、使っちゃいけない!
web 系は、BOM 無しUTF-8 だから、メモ帳みたいな、BOM 付きUTF-8 はダメ!

Windows の文字コード、CP932/Windows-31J(shift-jis, sjis)も使っちゃいけない!

irb は、日本語入力でバグル。
複数行の構文も、ややこしい

if 条件式
else
end

378デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/10(金) 13:27:02.26ID:716l2Eq1r
>>377
irbでたバイト文字でバグらないようにすることは可能だし
Windows10のnotepadはBOMつきのUTF-8では保存できねえよ

379デフォルトの名無しさん (ワッチョイ 2314-9hq2)2020/04/10(金) 16:01:46.29ID:nukGJGZx0
>>376
だからお前の言うirbの記録=何の整理もしてない実行ログだろ?
あとから見ても何もわからない。これかなーって実行してエラー発生w

380デフォルトの名無しさん (ワッチョイ 2314-9hq2)2020/04/10(金) 16:02:35.40ID:nukGJGZx0
>>378
BOMつきのUTF-8で保存できるが?

381デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/10(金) 17:39:51.24ID:716l2Eq1r
日本語が通じないほど頭が悪いことは理解した

382デフォルトの名無しさん (ワッチョイ d7ad-LdNq)2020/04/10(金) 17:50:12.99ID:tJvmHEKv0
>>363
>>367
勉強とは記録や記憶から
本質的な情報を抽出することだろう

383デフォルトの名無しさん (ワッチョイ 567d-0bpl)2020/04/10(金) 20:37:25.35ID:2wmBzsgU0
>>382
違います

学習とは「経験によって生じる比較的永続的な行動の変化、それを生じさせる操作、及びその過程」です
有名なパブロフの犬や迷路実験も学習の一種です
犬やネズミや昆虫等は記録を行いませんが学習しています

384デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/10(金) 20:38:49.37ID:6DyROAQp0
Code Runnner 実行できました。簡単なコードですがRubyで実行したいです。
どうしたら良いのでしょうか?

385デフォルトの名無しさん (ワッチョイ 062c-5WFu)2020/04/10(金) 20:50:51.83ID:2KZut19P0
VSCode の左側のファイルエクスプローラーで、
ファイルを右クリックして、右クリックメニューでターミナルで開くと、
そのファイルがあるフォルダで、PowerShell が起動する

ruby script.rb
みたいに、そのファイル名を引数にして、rubyコマンドを実行する

端末では、タブ文字で入力補完もできる
例えば、ruby scr で、タブ文字を押すと、
ruby .\script.rb みたいに、パス付きで補完される

\ は、バックスラッシュと同じ。
Windows では普通のスラッシュ、/ もパスとして使える

ruby ./script.rb
. は、今の(カレント)フォルダ

386デフォルトの名無しさん (ワッチョイ d7ad-LdNq)2020/04/10(金) 21:07:19.51ID:tJvmHEKv0
>>383
いやいや
情報を抽出することと
行動を変化させることは
同じことを違う角度で見てるだけでしょ

脳の回路を変化させていることを
どう表現するかという違いでしかない

387デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/10(金) 22:46:37.25ID:6DyROAQp0
>>385
できました!PowerShell を起動させることでRubyが実行できるんですね。
ありがとうございます!

388385 (ワッチョイ 062c-5WFu)2020/04/10(金) 23:02:56.48ID:2KZut19P0
PowerShell・コマンドプロンプトから、ruby コマンドを実行できる

それらを、VSCode 内から起動せずに、単独で起動しても実行できる。
cd などのパスの移動コマンドも使える

cd ..
で、親フォルダへ移動するとか
cd ../..
で、親の親フォルダへ移動するとか

フォルダ内の中身を見るのに、
PowerShellなら、ls
コマンドプロンプトなら、dir

コマンドプロンプトよりは、PowerShellのコマンドの方が、
Linux コマンドと同じものが使えるので、覚えやすい

389デフォルトの名無しさん (ワッチョイ c668-KRXG)2020/04/10(金) 23:16:58.76ID:6DyROAQp0
>>388
ギギギ…わかりません…

明日もバレーの練習終わったら勉強します。ありがとうございます。

390デフォルトの名無しさん (オッペケ Sr5f-LdNq)2020/04/10(金) 23:30:56.45ID:716l2Eq1r
>>389
puts "Hello, World!"

とかいたscript.rbをどっかに保存しておく。
保存したフォルダでshiftを押しながら右クリックから「コマンド ウィンドウをここで開く」を選択。
出てきたコマンドプロンプトに

ruby script.rb

と打ち込めばよい。

もしくはパスが通ってるならそもそもscript.rbをダブルクリックするだけで実行される。

puts "Enterキーを押すと終わるよ"
gets

で保存して試してみるといい。

391385 (ワッチョイ 062c-5WFu)2020/04/10(金) 23:49:30.84ID:2KZut19P0
エクスプローラーのフォルダの上で、
shift キーを押しながら、右クリックすると、

PowerShell を、このフォルダで起動すると出る!
同様に、WSL を入れていれば、Linux シェルも起動できる

ちなみに、PowerShell・コマンドプロンプトを終了する時は、
exit と入力するか、ウインドウを閉じる

cd, ls, exit など幾つかは、PowerShellの基本コマンドも知っておいた方がよい

392デフォルトの名無しさん (ワッチョイ 6f33-Xq4u)2020/04/11(土) 01:27:54.54ID:EGHdPfzv0
>>388
Linuxと同じでもないし、同じだとしても別に覚えやすくはねえよ。
おまえがBashに慣れとるだけやろ。w
PowerShell もそれなりにクセがあるから、どっちもどっち。

まあ、今さらcmdはないやろ、というならわからんでもないが。

393デフォルトの名無しさん (ワッチョイ 6f33-Xq4u)2020/04/11(土) 01:30:19.84ID:EGHdPfzv0
cdとかlsとかいう「コマンド」もないしな。w

394デフォルトの名無しさん (ワッチョイ a205-UCdZ)2020/04/12(日) 10:47:12.08ID:ruKWfIE70
returnでは現在のメソッドしか終了できませんが、呼び出し元のメソッドごと終了させる方法はありますか?
各メソッドにフラグをチェックするメソッドを入れたのですが、フラグが条件を満たさなかったらreturnとするとフラグチェック用のメソッドが終了するだけになってしまいます
呼び出し元でフラグチェックメソッドの下にreturn if と入れればできますが毎回2行使ってしまうのでできれば1行に納めたいのですが…

395デフォルトの名無しさん (ワイーワ2 FFfa-zfCe)2020/04/12(日) 10:53:18.34ID:j35eJcDNF
例外かな

396デフォルトの名無しさん (ワッチョイ a201-vZv9)2020/04/12(日) 14:54:12.56ID:tx1YNXXn0
>>394
- 例外
- catch and throw
- block/proc
- &.
など

いろいろやり方あるけど処理内容とプログラムをどう構造化したいかによって選択肢が変わってくる

397デフォルトの名無しさん (ワッチョイ d7ad-LdNq)2020/04/12(日) 16:35:25.82ID:G3JTGpGI0
>>394
>return if と入れればできますが
できてるじゃん!
普通のIF文でもできるでしょ?

>毎回2行使ってしまう
行数が1行か2行かなんて気にしなくていい

それから例外を通常の条件分岐に使うのは
便利でも一般的にはあまり推奨できないな

もしもっと複雑な状態遷移に発展するなら
そもそも呼び出すメソッドを切り替える
仕組み(ステートパターンとか)も考えたい

398デフォルトの名無しさん (ワッチョイ 062c-5WFu)2020/04/12(日) 21:38:06.31ID:JZPIrIOa0
exit で終了できる。その例外は、SystemExit でキャッチできる。
ただし、exit! では、例外をキャッチできない

at_exit で終了直前の処理を書く。
ただし、後に書いたものから、先に実行される

他には、Signal.trap(:INT, "EXIT")
"EXIT"を指定した時は、シグナルを受け取ると終了処理を行ったあと、ステータス 0 で終了します

at_exit { puts "1" }
at_exit { puts "2" }

begin
exit
rescue SystemExit
puts "例外をキャッチ"
end

出力
例外をキャッチ
2
1

399284 (ワッチョイ 062c-5WFu)2020/04/13(月) 07:50:48.29ID:czmtm8eF0
Windows 10, WSL, Ubuntu 18.04 で、Rails 環境を構築するために、

nodejs も必要なので、既にインストールしていた、rbenv 環境を削除して、
anyenv で、rbenv, nodenv を管理することにしました

マイクロソフト、Rails Girls などは、バージョンマネージャーに、NVM を使っているようですが、
anyenv なら、使い方が同じなので楽です

rubyのコンパイルに、20分ほど掛かって、
ruby 2.6.6, node 12.16.2 を入れました!

400デフォルトの名無しさん (ワッチョイ ffda-uUj7)2020/04/15(水) 08:35:18.45ID:u7ZRb3JF0
192.168.7.21騒動見てたらあるハッカーの顛末を思い出した

401デフォルトの名無しさん (ワッチョイ ff2c-8Jcx)2020/04/16(木) 03:17:45.92ID:tywb42E30
漢数字が、順番に並んでいない!

ary = %w(一 二 三 四 五 六 七 八 九 十)
ary.sort!

p ary #=> ["一", "七", "三", "九", "二", "五", "八", "六", "十", "四"]

re = /[一-十]/
p "四".match( re ) #=> nil
p "七".match( re ) #=> "七"

402デフォルトの名無しさん (ワッチョイ ff8f-BgPO)2020/04/16(木) 03:20:34.75ID:Ek7MP3v90
文字は文字コード順に並ぶやろから当然やな
漢数字は数字ちゃうねん

403デフォルトの名無しさん (エムゾネ FFbf-xa8R)2020/04/16(木) 09:55:20.55ID:przIFznPF
sortにオプションがある言語もある

404デフォルトの名無しさん (ワッチョイ ff14-Zn3B)2020/04/16(木) 12:08:00.93ID:pf1fo5EI0
三百は三百やろ!

405デフォルトの名無しさん (ワッチョイ 57ad-LzhE)2020/04/16(木) 18:47:34.88ID:Cbge2SK50
>>401
アラビア数字でソートなり処理して
表示する時だけ漢数字に変換するのが
一番簡単だし確実だと個人的に思う

406デフォルトの名無しさん (ワッチョイ 57ad-LzhE)2020/04/16(木) 18:49:35.19ID:Cbge2SK50
>>401
>>405
一回きりの簡単な処理ならともかく
数量データの規模が大きかったり
複雑な計算をしたりするときは特にね

漢数字で科学計算とかやりたくないでしょ?

407デフォルトの名無しさん (ワッチョイ 9f01-7Des)2020/04/16(木) 19:02:06.03ID:phPWx1q30
>>401
require 'ya_kansuji'
array = %w(八京 2垓 1兆 壱萬 一兆 四 89 五 一 六 二 七 八 三 九 十 百 二十)
array.sort_by{|x| YaKansuji.to_i(x)}
#=> ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十",
"二十", "89", "百", "壱萬", "一兆", "1兆", "八京", "2垓"]

408デフォルトの名無しさん (ワッチョイ 9733-43xc)2020/04/16(木) 20:36:50.11ID:nPvX7Tsg0
>>405
んなマジメな話ちゃうやろ。w

409デフォルトの名無しさん (ワッチョイ bf70-y8FT)2020/04/16(木) 23:04:14.21ID:t0fn6/CJ0
gem名のyaってなんやろ

410デフォルトの名無しさん (ワイーワ2 FFdf-xa8R)2020/04/17(金) 13:31:00.12ID:3B9MCfUYF
yet another

411デフォルトの名無しさん (ワッチョイ ff14-Zn3B)2020/04/17(金) 15:43:10.67ID:9nBzfuh20
YmcA

412デフォルトの名無しさん (ワッチョイ 9733-5M7y)2020/04/17(金) 17:33:29.74ID:u7F1CGBb0
ヤカン数字

413デフォルトの名無しさん (アウアウエー Sadf-csEB)2020/04/18(土) 07:02:41.78ID:LLgtam5va
Rubyの公式リファレンスは docs.ruby-lang.org です 〜公式な情報源を調べるクセを付けよう〜
https://qiita.com/jnchito/items/2dc760ee0716ea12bbf0

414デフォルトの名無しさん (ワッチョイ ff14-Zn3B)2020/04/18(土) 11:58:34.90ID:6HUqz/fc0
「公式な情報源」が使いづらいからそういうことになるんだよな
開発者視線でユーザー視線になっていない

415デフォルトの名無しさん (ワッチョイ 57ad-LzhE)2020/04/18(土) 22:00:04.31ID:/lJ7KZ010
Rubyの公式ドキュメントはマシな方
新言語だとドキュメント皆無もよくある

416デフォルトの名無しさん (ワッチョイ 9733-5M7y)2020/04/19(日) 01:06:00.73ID:S496UsA30
Rubyは何年たつんや?w
んな言い方を恥じろ!

417デフォルトの名無しさん (アウアウエー Sadf-Ho7r)2020/04/19(日) 23:37:44.19ID:+iHDEV0ra
ドキュメントがない言語を使うメリットは何もないな
問題が起きた時に試しにやってみるしかないとか
ひどすぎる

418デフォルトの名無しさん (ワッチョイ f162-PxOI)2020/04/23(木) 03:03:16.84ID:XgCgy8390
名前のタイプミスを狙った悪質なパッケージがRubyGemsで多数公開される
https://security.srad.jp/story/20/04/18/1920212/

700以上の悪質なパッケージが2つのアカウントからアップロードされたそうだ。
悪質なパッケージのダウンロード数は2アカウント合計で10万件

悪質なパッケージはいずれもWindowsユーザーをターゲットにしたものとみられ、
インストールすると最終的にVBScriptがループで常駐してクリップボードを監視する。

419デフォルトの名無しさん (ワッチョイ 6b01-QpYc)2020/04/23(木) 22:00:57.57ID:xVkexwEH0
んと、コンビニの雑誌の表紙が深田恭子の水着だったので、
深田恭子の年齢を一行スクリプトで37歳だったけど、もっと若く見えます。
何か間違ってますか?


ruby -r date -e "puts (Date.today - Date.new(1982,11,2)).to_i / 365.0"

420デフォルトの名無しさん (ワッチョイ e270-c7If)2020/04/23(木) 22:22:16.17ID:UgZRsQiy0
365でハードコーディングしないでうるう年換算しろ

421デフォルトの名無しさん (ワッチョイ 6b01-QpYc)2020/04/23(木) 22:44:33.21ID:xVkexwEH0
require 'date'
n = 0
d = Date.new(1982,11,2)
t = Date.today
while (d < t)
d = (d >> 12)
n = n + 1
end
puts n - 1

やはり37歳

422デフォルトの名無しさん (オッペケ Sr39-R0M4)2020/04/23(木) 22:51:57.45ID:vLHDuQrzr
ゴルファーとしては詰めたくなる。なお11月2日以外とする
ruby -e"p (Time.now-Time.new(1982,11,2))/315576e2

423デフォルトの名無しさん (ワッチョイ 4c2c-Hty+)2020/04/23(木) 22:52:22.25ID:C0/pHZNH0
【Rails 5】Userの現在の年齢を生年月日から計算する方法と、ransackを使わずに年齢の範囲検索フォームの実装
https://qiita.com/Yusya/items/aad599c2194aa3d4dacc

生年月日から年齢を簡易計算する数式
https://qiita.com/aqril_1132/items/46e824541e657190ef3e

今日・生年月日を、yyyymmdd で表して、
( 今日 - 生年月日 ) / 10000

( 20200423-19821102 ) / 10000.to_f #=> 37.9321
( 20200423-19821102 ) / 10000 #=> 37

424423 (ワッチョイ 4c2c-Hty+)2020/04/23(木) 22:56:32.86ID:C0/pHZNH0
2019-11-02 が、37歳の誕生日。
2019-11-01 が、36歳最後の日

( 20191101-19821102 ) / 10000 #=> 36

( 20191102-19821102 ) / 10000 #=> 37

425デフォルトの名無しさん (オッペケ Sr39-R0M4)2020/04/23(木) 23:12:01.98ID:vLHDuQrzr
ああこれでいいのか
ruby -e'p eval(Time.new.strftime("%Y%j-1982306"))/1e3

426デフォルトの名無しさん (オッペケ Sr39-R0M4)2020/04/23(木) 23:19:38.94ID:vLHDuQrzr
まだ詰められた。切りがないのでこれで最後に
ruby -e'p eval Time.new.strftime"%Y.%j-1982.306"

427デフォルトの名無しさん (ワッチョイ 0c01-UN6T)2020/04/23(木) 23:28:58.07ID:5udoMUF90
>>423
へぇ〜

428デフォルトの名無しさん (ワッチョイ be2c-Qfm0)2020/05/08(金) 12:54:24.52ID:Fn4yfVbS0
日本発の言語Ruby 人気続く訳
https://news.yahoo.co.jp/pickup/6359144

Matz へのインタビュー

429デフォルトの名無しさん (アウアウエー Sae2-jgrQ)2020/05/08(金) 16:05:58.87ID:iOEjZYuSa
(Windows土座衛門に冷たいのは内緒)

430デフォルトの名無しさん (アウアウウー Sa1f-lvFW)2020/05/08(金) 17:00:05.15ID:CJKV4mcka
確かに、宗教について聞けるくらいだったらWindows対応のポリシーについても聞いてみて欲しかったなw
まあ記者がRuby使ったことなさそうだから、まさか自分が当然のように何の疑問もなく使ってるWindowsが目の敵にされているなんて夢にも思ってないだろうけど

431デフォルトの名無しさん (ワッチョイ ea61-I8iA)2020/05/08(金) 21:45:11.49ID:Ht1PGvqd0
Windows目の敵ってどういうこと?

432デフォルトの名無しさん (ワッチョイ 0b14-YoKk)2020/05/08(金) 22:04:02.05ID:D/r4SfE/0
>>431
美味しんぼの熱狂的なファンだろ

433デフォルトの名無しさん (ワッチョイ 7333-sgQa)2020/05/08(金) 22:53:47.87ID:6z0wijKq0
>>430
宣教師の経験があるレベルやぞ?
宗教のことなんかぜひとも訊いてくれ、ってなもんやろ。

Windowsのことを訊いたって、UNIX至上主義の講釈が返ってくるだけや。

434デフォルトの名無しさん (ワッチョイ bbad-I8iA)2020/05/09(土) 18:23:36.58ID:9+f2Z3ZT0
Rubyは書きやすくていいが
もうちょいWindowsに対応すりゃ良かったのに
PythonにAIブームでパイ喰われて
一気に廃れてきたな

435デフォルトの名無しさん (ワッチョイ eaa5-NK3V)2020/05/09(土) 19:30:30.55ID:qYhHAGHH0
URLの差か?
https://www.ruby.org/ (存在しない)
https://www.python.org/
https://www.perl.org/

それか英語で書かれたドキュメントの総量、
C/C++でのライブラリの作り方のドキュメント、
そしてendの量

436◆QZaw55cn4c (NZ 0Ha2-EltK)2020/05/09(土) 19:58:32.75ID:y1dzFt5uH
>>434
個人的には ruby をもう一度盛り返したいと思っていますが
どんな分野を強化すればいいでしょうか?

437デフォルトの名無しさん (オッペケ Sr33-I8iA)2020/05/09(土) 20:02:22.56ID:I3214lBor
>>436
まずは教養レベルの数学も知らないクソコテがこの世から消えることだな

438デフォルトの名無しさん (ワッチョイ bbad-I8iA)2020/05/09(土) 20:06:18.70ID:9+f2Z3ZT0
>>436
RubyはRailsが強いのでWebアプリを本拠地にしていて
それはいいんだけど発展していくためにひとつは
今言ったWindows、もうひとつはAndroid
そこでアプリを作りやすい環境があるといいと思います

というのもJavaやJavaScriptはこういう
マルチプラットフォームにしやすいので
普及した面があるだろうと思うからです

439デフォルトの名無しさん (オッペケ Sr33-I8iA)2020/05/09(土) 20:10:00.35ID:I3214lBor
Javascriptがマルチプラットフォームってなんやねん

440デフォルトの名無しさん (ワッチョイ bbad-I8iA)2020/05/09(土) 20:13:20.22ID:9+f2Z3ZT0
JavaScriptはエレクトロンとかあるしー

441◆QZaw55cn4c (NZ 0Ha2-EltK)2020/05/09(土) 20:32:37.84ID:y1dzFt5uH
>>437
教養レベルの数学とは、具体的にどういう分野ですか?

442デフォルトの名無しさん (オッペケ Sr33-I8iA)2020/05/09(土) 20:55:06.27ID:I3214lBor
>>441
少なくとも留数定理知らないバカは教養がない

443デフォルトの名無しさん (ワッチョイ 8f14-YoKk)2020/05/09(土) 20:55:25.24ID:e5F3j8ny0
× 教養
○ 雑学

444デフォルトの名無しさん (オッペケ Sr33-I8iA)2020/05/09(土) 20:55:54.81ID:I3214lBor
ちなみに教養って東大の教養学部時代のレベルってい見な

445デフォルトの名無しさん (ワッチョイ 8f14-YoKk)2020/05/09(土) 21:17:50.26ID:e5F3j8ny0
ほらな。勝手な定義をし始めたw

これが教養(笑)

446デフォルトの名無しさん (ワッチョイ 5b01-A7sU)2020/05/09(土) 22:04:19.31ID:jpivn6ew0
東大教養部でもtypoはするんだ

447デフォルトの名無しさん (アウアウウー Sa1f-lvFW)2020/05/09(土) 22:21:01.05ID:otSU2ylNa
Javaだって実際にはほとんどUNIXサーバーで運用されてるわけで、Windowsとの相性の悪さは本質的な問題ではない
RubyがPythonに勝てない決定的かつ本質的な原因は、Rubyコミュニティとエンタープライズ分野の仲が極めて悪いからだ
特にMatzに至ってはエンタープライズを毛嫌いしており、意図的にエンタープライズ分野の人間をコミュニティから排除している

448デフォルトの名無しさん (ワッチョイ 8f14-YoKk)2020/05/09(土) 22:33:57.03ID:e5F3j8ny0
>>447
> Javaだって実際にはほとんどUNIXサーバーで運用されてるわけで、Windowsとの相性の悪さは本質的な問題ではない

UNIXサーバーで運用されるのと、Windowsとの相性がどう関係するの?
まさかUNIXサーバーで運用してるのは、WindowsやLinuxと相性が悪いからだ!って
言いたいわけ?

449デフォルトの名無しさん (ワッチョイ eaca-IfE9)2020/05/10(日) 06:25:22.95ID:D36zapAH0
ID:e5F3j8ny0 はキチガイ

450デフォルトの名無しさん (ワッチョイ d3e6-Qfm0)2020/05/10(日) 15:26:20.48ID:idocV57G0
「主張しないOSだったから世界に広がった」TRONの生みの親・坂村健が語る

451デフォルトの名無しさん (ワッチョイ 7314-YoKk)2020/05/10(日) 15:38:52.32ID:wRm6C2I10
「主張しないOSだったから世界に広がった」そう張するTRONはなぜ世界に広がらなかったのか?

452デフォルトの名無しさん (ワッチョイ 2a01-Yqly)2020/05/10(日) 15:55:32.04ID:sqrrAwwF0
>>451
飛行機撃墜されたから

453デフォルトの名無しさん (ワッチョイ d342-jW3u)2020/05/11(月) 09:52:12.09ID:9KnLD9b60
Rubyの初歩を終えたら上達のために何か作ってみたいのですが、どんなものを作るのがいいのでしょうか?
HTMLCSSを学んだのでお問い合わせフォームを作成しようとは思っているのですが、次に作成したいもの、作成できるものがよくわかっていません。

454デフォルトの名無しさん (ワッチョイ 2a01-Yqly)2020/05/11(月) 10:39:50.28ID:masQzK0H0
>>453
最初はローカルだけで完結するCLIツールがおすすめ
ファイル名検索、文字列検索、ファイル名の一括置換、文字列の一括置換、ログファイルの集計のようなもの
findやgrepの再発明だけど文字列操作、コレクション操作、ファイルI/O、オプションパース、エラーハンドリング、プログラムの構造化方法みたいな基本的なことが身につく
アルゴリズムのオーダーも考えながら作ると尚良い

次にWebアクセスを伴うCLIツール
AJAXが使われてないサイトの簡単なスクレイピングがおすすめ
HTTP、ロギング、非同期処理、変化する外部リソースを扱う場合の考慮点などがわかるようになる

お問い合わせフォーム自体はRuby使わなくても実現できるけど
POSTされたデータをRubyで処理したりフォーム自体をRubyから返すようなサイトを作るのは
HTML/CSS以外にHTTPとWeb framework(SinatraかRails)を学ぶ必要があるので
他言語を習得してるのでないなら上の2つくらいは問題なくできる程度にRubyに習熟してからのほうが効率がいいよ

455デフォルトの名無しさん (ワッチョイ b788-3QAi)2020/05/11(月) 11:19:12.64ID:UiQRQo+f0
railsの環境構築がダルい
nodejs入れさせられたりして、じゃあnodejsで開発すりゃいいじゃんってなる
他言語に頼るのかまったくわからん
あとwebpackerもエラー吐きまくりで原因調べてもまったく解決しない

456デフォルトの名無しさん (アウアウウー Sa1f-lvFW)2020/05/11(月) 11:37:06.56ID:31bxup8+a
Railsは本来的には古典的なMVCアプリに特化していて、SPAには無駄な部分がとても多いし、原理的にフロント部分についてはカバーのしようがないからね
もはや時代に合わなくなってきているのは事実

457デフォルトの名無しさん (ワッチョイ bbad-I8iA)2020/05/11(月) 11:46:41.60ID:62ugI4sI0
>>453
>>454
>最初はローカルだけで完結するCLIツールがおすすめ
おおむね同意

CLIの難点は(初心者には)つまらないことだが
いきなりゲームとか作ろうとすると挫折するから
まず小物ツールを作って経験を積むのは大事だね

458デフォルトの名無しさん (JP 0He6-lvFW)2020/05/11(月) 12:19:18.12ID:E4DJZwTiH
RailsがCoffeeScript推してた頃はフロントも総合した一貫性のある技術スタックにしていこうという気概があったんだけどね
結局、時代に選ばれたのはSPAとAPIでフロントとバックエンドの間に明確な技術境界を設けるというものだった
それ以来、RailsはWebの先端から脱落し、Rubyの凋落が始まった

459デフォルトの名無しさん (ワッチョイ 2a01-Yqly)2020/05/11(月) 12:37:05.90ID:masQzK0H0
DjangoもSpringもASP.NET(MVC/Razor Pages)もGinも
みんな時代に合わなくなってきているってことになるねw

ASP.NETなんてSSRはすでにobsolete扱い
MSは時代に合わなくなったフレームワークを莫大な開発費かけて作ってるわけだw

460デフォルトの名無しさん (ワッチョイ ea79-O+HC)2020/05/11(月) 13:19:06.53ID:5SRnzYBd0
>>453
> 次に作成したいもの、作成できるものがよくわかっていません。
それは人に聞くものでもない。
自分が作りたいと思う動機付けが無ければ、意味がない。

461デフォルトの名無しさん (ワッチョイ bbad-I8iA)2020/05/11(月) 13:34:37.20ID:62ugI4sI0
理想は何か作りたいアプリがあって
調べながらそのコードを書くと上達が早い

けど本当に作りたいものは難しいことが多いから
(機械学習で株式市場を予測して金を稼げるとか)
小物を作っていくうちにそれならこういうものも
できるというアイディアが湧いてくることもあるね

462デフォルトの名無しさん (アウアウエー Sae2-jgrQ)2020/05/11(月) 13:46:59.41ID:MhpqGE2Na
Django はそれだけで API も造れるからまだ良いけど
Rails は終わってるな

463デフォルトの名無しさん (ブーイモ MMd6-yKpr)2020/05/11(月) 14:28:23.99ID:GNIZ9TPPM
いつもの妄想虚言癖くんは相変わらずRubyもRails知らないの丸出しだな

平日昼間からID変えて連投しまくってアンチRuby&アンチMatz活動ご苦労様

464デフォルトの名無しさん (ワッチョイ 3ebb-8oPF)2020/05/11(月) 16:25:29.55ID:oqh5wUWv0
超有名な「Classi」学校教育のICT活用を支援するクラウドサービスもrails製

なんと120万人近くのユーザを捌いているらしい。

これだけの規模のサービスを作れるrailsは最強。まさに覇権。

465デフォルトの名無しさん (ワッチョイ 7333-sgQa)2020/05/11(月) 16:39:57.23ID:RveftTfZ0
「ユーザー数」の詳細がわからんとなんとも。
のべ/ユニーク、アクセス頻度、集中度、負荷、など。

466デフォルトの名無しさん (JP 0He6-lvFW)2020/05/11(月) 16:52:03.96ID:E4DJZwTiH
https://www.itmedia.co.jp/news/spv/2005/07/news088.html
> 「課題が出せない」「試験が受けられない」――学校向けSaaS「Classi」がつながりにくい状態に 生徒から不満の声相次ぐ

Railsが悪いというつもりはないけど、まあよくある話だよね
多く見せるために全生徒をユーザー数として謳っていたけど、コロナショック以前は実際にはほとんど使われてなかったんだろう

467デフォルトの名無しさん (オッペケ Sr33-I8iA)2020/05/11(月) 20:53:05.87ID:ctqY8lB1r
俺は一通り文法学んだら数独ソルバーとかbrainf**kのインタープリタ作ってたな

468デフォルトの名無しさん (ワッチョイ be2c-Qfm0)2020/05/11(月) 21:52:37.48ID:M5DpbX0A0
Go, Ruby など、サーバー側は、CLI のちょっとしたフィルター・パイプなどを作るとか。
でも、しょーもない

「プログラミングのお題スレ」の簡単そうな問題を解くとか

Selenium Webdriver, Nokogiri で、簡単なものをスクレイピングするとか。
漏れはこれで、yahoo などのログインを自動化してる

SASS, Bootstrap, jQuery なども初心者向け。
Linux コマンドも、10個ぐらいは学んだ方がよい

469デフォルトの名無しさん (ワッチョイ be2c-Qfm0)2020/05/11(月) 22:02:19.51ID:M5DpbX0A0
Farstep【プログラミング講座】
https://www.youtube.com/channel/UCiGdng-6ZLS5tlfw0xnG3TA

この人が、ここ1週間で4本、Rails 動画を上げてる。
Bootstrap を使ってる

470デフォルトの名無しさん (ワッチョイ d342-aTVK)2020/05/11(月) 23:01:03.73ID:9KnLD9b60
教えて頂きありがとうございます。
調べながら作ってみます。
ずっと先にはなりますが将来的には個人でゲームを開発してみたいです。
それから仕事としてゲーム開発に携わったりあらゆる分野で活躍できるようなプログラマーになりたいです。

471デフォルトの名無しさん (ワッチョイ 7333-sgQa)2020/05/11(月) 23:52:58.38ID:RveftTfZ0
>>470
なら、RubyよりもC#!

472デフォルトの名無しさん (アウアウエー Sae2-jgrQ)2020/05/12(火) 10:13:53.55ID:4WwqN1hQa
Unity + C# 超おすすめ
Ruby 忘れて良い

473デフォルトの名無しさん (JP 0He6-lvFW)2020/05/12(火) 17:40:54.16ID:v0jwNoPnH
まあRubyでも怪盗ロワイヤル系のクソソシャゲなら作れるぞ
まあそんなの作れたところで今時仕事ないし、アーキテクチャ的には単なる普通のWebアプリなので
ゲーム作りのスキルはほとんど身につかなくて時間の無駄だろうけど

474デフォルトの名無しさん (ワッチョイ 9f5f-A9by)2020/05/12(火) 19:19:51.00ID:PEyfu59N0
RPGツクールXP/VXならばRubyなんだよなぁ

475デフォルトの名無しさん (ワッチョイ bbad-I8iA)2020/05/12(火) 21:41:35.49ID:1JM+jinB0
ツクールMVでJavaScriptに変えちゃったのが残念
モバイル出力対応の都合で仕様がないんだろうけど

476デフォルトの名無しさん (ワッチョイ d342-aTVK)2020/05/12(火) 22:07:41.27ID:Bhe4de5t0
C#がゲーム開発に適しているんですね。
ゲーム開発、セキュリティ関係、リモートワーク、システムエンジニアに興味があります。

477デフォルトの名無しさん (ワッチョイ d342-aTVK)2020/05/12(火) 22:12:55.72ID:Bhe4de5t0
趣味レベルでもいいので将棋プログラムやチェスプログラムも作ってみたいです。

478デフォルトの名無しさん (オッペケ Sr33-I8iA)2020/05/12(火) 22:18:02.61ID:Yyd7NZU2r
いいんじゃない。自分の作ったAIと他人の作ったやつを対戦させてみればよい

479デフォルトの名無しさん (ワッチョイ bbad-I8iA)2020/05/12(火) 22:35:58.24ID:1JM+jinB0
>>476
いきなり難しいのは作れないから簡単なのから作るといいよ
たとえば将棋やチェスの前にリバーシやトランプとか
もっといえば最初はCUIのマルバツから始める位でいい

480デフォルトの名無しさん (ワッチョイ 1714-YoKk)2020/05/12(火) 23:29:09.40ID:6bKcudlj0
CUIのマルバツというと
先手・2、2、○
後手・1、1、×
先手・1、2、○
9秒、8、7、

とかそんな感じか?

481デフォルトの名無しさん (ブーイモ MM97-O+HC)2020/05/12(火) 23:58:29.03ID:qFAkep2ZM
>>477
作れば良かです。

482デフォルトの名無しさん (ワッチョイ 2dad-Wcp/)2020/05/13(水) 01:08:11.15ID:fGvC/Rms0
>>480
○・・
・・・
・・×

↑みたいにCUIでも
盤面表示できるでしょ?
たった三行だし

483デフォルトの名無しさん (アウアウウー Sa1d-Y9FA)2020/05/13(水) 06:42:48.28ID:1S/vEImaa
お前のやる言語はRubyじゃないって散々言われてんのに聞く耳持ってないなコイツ。

484デフォルトの名無しさん (ワッチョイ cd14-ds4R)2020/05/13(水) 08:20:46.80ID:UxgyOyJl0
>>482
ポケモンだってCUIでできるしな!

@YouTube


485デフォルトの名無しさん (ワッチョイ 2352-ri7+)2020/05/13(水) 08:28:32.53ID:sTsOjaTK0
>>484
なんかすごいなw
これだけ作り込んでいるのに、パッと見てすぐ目立つ Your Heath の綴りが間違ったままなのが謎だが。

486デフォルトの名無しさん (ワッチョイ 2dad-Wcp/)2020/05/13(水) 15:04:51.14ID:fGvC/Rms0
いやまあ本格的にゲーム作るなら
UnityとC#だろうけど

Rubyスレなんだし
とりあえずCUIの簡単なゲームから
練習するのも悪くないと思うよ

487デフォルトの名無しさん (ワッチョイ 3133-6wub)2020/05/13(水) 15:26:01.68ID:v9SqqT/+0
なにをどうやりたいのかによるな。
型なしスクリプト言語はよしあしだから。

いわゆるゲームがしたいのなら、Rubyはほどほどに。

488デフォルトの名無しさん (アウアウエー Sa93-yXYh)2020/05/13(水) 15:41:23.13ID:oWyvBIrOa
curses on ruby

489デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)2020/05/13(水) 18:13:34.32ID:VSt/R8YQ0
Ruby は、小説ゲームなどのシナリオを、ゲームデータに変換するツールには使えるかも

Lua, Squirrel などを使うことも多いけど

490デフォルトの名無しさん (ワッチョイ 2dad-Wcp/)2020/05/13(水) 19:10:38.74ID:fGvC/Rms0
RPGツクール(XP/VX)もあるし
一応ゲームライブラリもあるから
2DゲームならRubyも手軽で良いと思う
3DゲーならUnityほぼ一択だろうけど

491デフォルトの名無しさん (オッペケ Sr75-Wcp/)2020/05/13(水) 19:27:44.16ID:VG+eVs4Ur
2Dゲーム用の未だに開発が続いているRubyのライブラリってあんの?

492デフォルトの名無しさん (ワッチョイ 6de6-imz8)2020/05/13(水) 22:19:09.66ID:PF9y92K50
初心者です。
gem で sqlite3を入れようとしてもtkを入れようとしてもエラーになります。

署名は信頼されていません。って誰でしょう。

みなさん、どうしているの?

493デフォルトの名無しさん (ワッチョイ 9588-Y9FA)2020/05/14(木) 01:10:11.58ID:xwBNTZK50
こういうのってコンソールのエラー画像貼った方が分かりやすい

494デフォルトの名無しさん (ワッチョイ 6de6-imz8)2020/05/14(木) 06:31:55.66ID:/X2nuCW20
492です。
msysにgccを入れたらできました。

495デフォルトの名無しさん (ワッチョイ 3133-6wub)2020/05/14(木) 10:13:36.06ID:CBkLiWJv0
>>494
ズコー。
署名なんか関係なかったやろ。w

496デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)2020/05/14(木) 13:41:01.55ID:FSEZeoAj0
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト

まず、パッケージ情報を最新にしてから、各パッケージをインストールする

sudo apt-get update

sudo apt install -y build-essential
sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev
sudo apt-get install -y libsqlite3-dev sqlite3

build-essential には、gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などの、
コンパイルツールが入っています

次に、openssl, readline, zlib のパッケージをインストールする。
さらに、sqlite3 関連のパッケージもインストールする

こういうパッケージが入っていて初めて、これらに対応する、Ruby gem が動く

497デフォルトの名無しさん (ワッチョイ 1f42-uRPb)2020/05/17(日) 06:00:27.29ID:ziL5Ecak0
CLIツールを作成するために、Bundlerをインストールしたいのですが
コマンドプロンプトに$ gem install bundler
と入力しEnterを押しても閉じるだけで何も状況が変わっていない気がします。
既存のCLIツール作成の記述画面を調べてみても
学んだputs,if,繰り返し処理のような文法は一切なく謎の文字列にしか見えず
用語の場合は調べれば対応できるかもしれませんが、用語ではなく何を示しているのかさえわかりません。
助けてください。

498デフォルトの名無しさん (オッペケ Sr63-Wcp/)2020/05/17(日) 06:12:55.96ID:C7MdgMNcr
謎の文字列ってなんだよ

499デフォルトの名無しさん (ワッチョイ 1f42-uRPb)2020/05/17(日) 07:17:57.55ID:ziL5Ecak0
上からの一部になりますがこのような感じです
# bundlerをインストール
$ gem install bundler

# gemパッケージの雛形を作成
$ bundle gem str_convert_utils -b
Creating gem 'str_convert_utils'...
create str_convert_utils/Gemfile
create str_convert_utils/lib/str_convert_utils.rb
create str_convert_utils/lib/str_convert_utils/version.rb

500デフォルトの名無しさん (オッペケ Sr63-Wcp/)2020/05/17(日) 07:26:20.95ID:C7MdgMNcr
で何がしたいんだよ

501デフォルトの名無しさん (ワッチョイ 1f42-EoUu)2020/05/17(日) 07:34:46.84ID:ziL5Ecak0
bundlerをインストールしてCLIツールを作成したいと思っているのですがbundlerのインストールのやり方がわかりません

502デフォルトの名無しさん (オッペケ Sr63-Wcp/)2020/05/17(日) 07:35:35.28ID:C7MdgMNcr
もうインストールできるだろ

503デフォルトの名無しさん (オッペケ Sr63-Wcp/)2020/05/17(日) 07:36:49.43ID:C7MdgMNcr
*もうインストールできてるでしょ

504デフォルトの名無しさん (ワッチョイ 1f42-EoUu)2020/05/17(日) 08:04:53.42ID:ziL5Ecak0
rubyのインストールはコマンドプロンプトで行ったので同じようにインストールするものかと思いましたが
無事にbundlerをインストールすることが出来ているようなのでよかったです
ありがとうございます

505デフォルトの名無しさん (オッペケ Sr63-Wcp/)2020/05/17(日) 09:35:16.01ID:C7MdgMNcr
質問する時は以下の点に留意すると回答が得られやすいぞ
・OS, Rubyなどのバージョンを書く
・何がしたいのか明確に書く
・どうなったのか明確に書く

506デフォルトの名無しさん (アウアウエー Sa93-gIXh)2020/05/17(日) 13:48:03.48ID:2FMa8UuXa
>>505
さらに
特にエラーメッセージがあるときはそれを貼る

507デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)2020/05/17(日) 16:36:18.35ID:VCTpJO2T0
基本、bundler だけは、gem install bundler で、グローバルに最新版をインストールする。
それ以外は、プロジェクトフォルダに、Gemfile を作って、
bundle install で、ローカル(プロジェクト毎)にインストールする

漏れの場合は、グローバルのbundler のバージョンを、1.17.2 から、2.1.4 へ更新した

bundler のバージョンを確認する
bundler -v
Bundler version 1.17.2

インストール済みのGem のバージョンを確認する
gem list bundler
bundler (default: 1.17.2)

レポジトリ内の最新バージョンを確認する
gem search -r bundler
bundler (2.1.4)

グローバルに、最新版をインストール・更新する
gem install bundler

bundler -v
Bundler version 2.1.4

gem list bundler
bundler (2.1.4, default: 1.17.2)

508デフォルトの名無しさん (ブーイモ MM5b-IA10)2020/05/17(日) 16:56:56.37ID:FIuh62egM
何か開発するのに、向いてなさすぎるな。

509デフォルトの名無しさん (アウアウウー Sa2d-xlHZ)2020/05/19(火) 00:48:41.11ID:X2Lrxylwa
1.0.step(3, 0.2) {|n| puts n}
の実行結果が以下の通りになった。

1.0
1.2
1.4
1.6
1.8
2.0
2.2
2.4000000000000004
2.6
2.8
3.0

なんで2.4のとこが変になっちまうんでしょうか?

510デフォルトの名無しさん (ワッチョイ 4b7d-fZtU)2020/05/19(火) 01:00:09.89ID:9Ms3yTt70
>>509
10.step(30,2){|n| puts n.fdiv(10)}

511デフォルトの名無しさん (ワッチョイ 3133-6wub)2020/05/19(火) 02:28:46.10ID:8rsHPaV60
>>509
「浮動小数点数 誤差」で検索!

512デフォルトの名無しさん (アウアウウー Sa2d-xlHZ)2020/05/19(火) 03:20:42.99ID:X2Lrxylwa
>>511
あ、これrailsのもんだあじゃないんだね!

513デフォルトの名無しさん (オッペケ Sr63-Wcp/)2020/05/19(火) 07:21:37.48ID:7tJzJz77r
誤差が嫌ならRational使え

1.step(3, 0.2r)

514デフォルトの名無しさん (ワッチョイ 4e2c-g3Kq)2020/05/20(水) 00:36:49.11ID:91fxSgSA0
浮動小数点は誤差があるので、お金の計算などでは使えない

例えば、0.5 は、2 ** -1 (乗)で、2進数で割り切れる。
0.25 も、2 ** -2 で、2進数で割り切れる。
よって、0.5 + 0.25 = 0.75 も、2進数で割り切れる

つまり、2進数で割り切れる数値の、組み合わせで表せる数値は割り切れる

一方、0.1 は、2進数で割り切れない。循環小数になる。
たぶん、0.2 も割り切れないのでは?

515デフォルトの名無しさん (ワッチョイ a314-sMh3)2020/05/20(水) 00:53:31.53ID:InboTxWs0
> お金の計算などでは使えない
使えばいいと思うけどなw

10円未満は四捨五入します。ってかけば十分だろうに
たった1円のために無駄な努力するんだぜ?

516デフォルトの名無しさん (オッペケ Srbb-vdj3)2020/05/20(水) 01:23:52.48ID:DUBnOkDWr
誤差のせいで四捨五入しても一意に定まらねえよ

517デフォルトの名無しさん (アウアウエー Sa52-crVl)2020/05/20(水) 01:24:00.93ID:YPJhimCPa
銀行の理屈だと桁数が大きいので下の方のの桁が軽視できないんだと
ただ計算の仕方はものすごくいい加減
複利といっても商品によって桁の丸め方が違うらしい
歴史を重んじるらしい
文系らしい

518デフォルトの名無しさん (アウアウウー Sac7-YFMs)2020/05/20(水) 01:31:03.16ID:6CLBLdpca
Rubyは文系や中卒高卒が多いんだから文系ディスはやめてやれ

519デフォルトの名無しさん (ワッチョイ a314-sMh3)2020/05/20(水) 03:12:41.37ID:InboTxWs0
>>517
文系「消費税は3%だ。端数?ちゃんと計算しろ。1円の誤差もゆるさねーぞ。」

520デフォルトの名無しさん (ワッチョイ 5b33-sQKC)2020/05/20(水) 04:04:26.66ID:TeIKSVMR0
>>515
「四捨五入」とか言ってまうヤツは、金の処理に口を出すな。

521デフォルトの名無しさん (オッペケ Srbb-vdj3)2020/05/20(水) 04:18:01.52ID:DUBnOkDWr
うちの環境だと

p ([0.003] * 500).reduce(:+) # => 1.4999999999999827

Array#sumだと最適化されるけどね
そもそも不確かさの精度を気にする環境でfloat使うのが間違い

522デフォルトの名無しさん (アウアウエー Sa52-pTKR)2020/05/20(水) 10:24:15.42ID:Dfazl3Afa
二進数の浮動小数点数は十進数の(1/10)を表せなくて誤差の蓄積が出るって言うけど
これは二進数固有の問題ではない
十進数の浮動小数点数も十進数の(1/3)を表せなくて誤差の蓄積が出る

金の計算では条件次第だが
四捨五入することが許されてる場合は毎回四捨五入して良い
許されていなければ浮動小数点数じゃなくて分数を使え

523デフォルトの名無しさん (アウアウエー Sa52-pTKR)2020/05/20(水) 10:26:00.37ID:Dfazl3Afa
>>517
桁落ちは問題だが
切り捨ては銀行や政府が儲かるように
切り上げも銀行や政府が儲かるように
都合良く設定されているね

524デフォルトの名無しさん (ワッチョイ a314-sMh3)2020/05/20(水) 10:32:35.12ID:InboTxWs0
>>523
店は?儲かるの?損をするの?

525デフォルトの名無しさん (ワッチョイ 3761-xVew)2020/05/22(金) 15:30:11.57ID:TUWJypw20
>>518
それはどの言語であれ、普及率が高ければ高いほどそうなる。

526デフォルトの名無しさん (ワッチョイ 3761-xVew)2020/05/22(金) 15:33:07.69ID:TUWJypw20
Pythonはアメリカでは教育に取り入れられている ---> 誰でもやっている
---> 上から下まで幅広くいる。
VB利用者が減ったのは、C# に移ったから ---> C#はVBプログラマでも使える証拠
でもあり、かつてのVBと同じレベルくらいの人がC#ラーにはいるということ。

527デフォルトの名無しさん (ワッチョイ 7a98-r9h8)2020/05/22(金) 16:23:18.04ID:PgzAS/Wx0
配列が大きくなるとHashのほうが速くなることを発見した
xは2万件くらいのデータ
a=[]
a.push(x)を繰り返すより
b=Hash.new
b[x]=0を繰り返して
として最後に a=b.keys
としたほうが速い

528デフォルトの名無しさん (ワッチョイ 5b33-sQKC)2020/05/22(金) 21:01:06.45ID:AU9F7jR+0
Rubyのリストは、reserve()的なことはできないんだっけ?
できないならかわりに、a[20000]=nil とかしてから、a[i](i=0〜19999)に代入していったらいいんでは?

こっちのほうがはやそう。

529デフォルトの名無しさん (ワッチョイ f361-hf1i)2020/05/23(土) 11:45:02.50ID:HsM7eDYs0
Array.new(size)

530デフォルトの名無しさん (ワッチョイ 5a01-S/TN)2020/05/23(土) 12:30:03.81ID:KnmbZWpz0
>>527
さすがにそれはないわ
それとも[1,1,1,1,1]を重複除去して[1]にしたい場合ってことなのかな

>>529
先にallocateしたほうが必ずしも速いわけではないので最適化したければ要計測

531デフォルトの名無しさん (ワッチョイ 275f-8Kp1)2020/05/23(土) 13:15:32.65ID:x0bVPHOi0
StringにはcapacityあるけどArrayのrubyインタフェースには見つからんな
C言語側ではrb_array_new2がそれっぽいが
まぁ、どうしてもそれっぽいことやりたいならArray#[]=でも拡張できるのでnew時にサイズ指定ですね。

あとはpushよりも<<の方が速かったり、
そもそも要素数が先に知る事ができるのならばArray.newにブロック渡したり
flat_map使ったり…

532デフォルトの名無しさん (テテンテンテン MMb6-8pht)2020/05/23(土) 14:30:56.75ID:rR3WkHU8M
Rubyはユーザーコードの実行がとんでもなくゴミクソのように遅いから、
アルゴリズムの効率とか実はあまり関係なくて単にユーザーコードの命令数を削減することが重要だったりするね

533デフォルトの名無しさん (ワッチョイ 5b33-sQKC)2020/05/23(土) 16:20:51.70ID:eo29HWEv0
>>530
> 先にallocateしたほうが必ずしも速いわけではない
具体例を教えろ。

534デフォルトの名無しさん (ワッチョイ 5a01-S/TN)2020/05/23(土) 19:00:02.41ID:KnmbZWpz0
>>533
これ何度か繰り返して比較してみて
https://ideone.com/N26HoC

GC.disable/enable/startとかも組み合わせて試してみるといいと思う

535デフォルトの名無しさん (ワッチョイ 275f-8Kp1)2020/05/23(土) 20:20:01.68ID:x0bVPHOi0
>>534
# gem install benchmark_driver
require 'benchmark_driver'

Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle
RUBY
x.report 'push without size', %{o = []; input.each{|x| o.push x }}
x.report '[]= with size (each_with_index)', %{o = Array.new(input.size); input.each_with_index{|x,ix| o[ix] = x }}
x.report '[]= with size (each)', %{o = Array.new(input.size); i=0; input.each{|x| o[i] = x;i+=1 }}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x] }}
end

536デフォルトの名無しさん (ワッチョイ 275f-8Kp1)2020/05/23(土) 20:21:25.63ID:x0bVPHOi0
prelude書き換えてる最中に送信してしまった
x.prelude %{ input = (1..2_000_000).to_a.shuffle }


Comparison:
block with size: 12.0 i/s
[]= with size (each): 9.7 i/s - 1.23x slower
push without size: 8.9 i/s - 1.35x slower
[]= with size (each_with_index): 7.6 i/s - 1.58x slower

537デフォルトの名無しさん (ワッチョイ 5a01-S/TN)2020/05/23(土) 21:52:02.03ID:KnmbZWpz0
>>535
そのwith sizeとwithout sizeはpushの差では?

require 'benchmark_driver'

Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0)', %{o = Array.new(0); input.each{|x| o.push(x+1)}}
x.report 'Array.new(input.size)', %{o = Array.new(input.size); input.each{|x| o.push(x+1)}}
x.report 'init with []', %{o = []; input.each{|x| o.push(x+1)}}
x.report 'input.map', %{o = input.map{|x| x+1}}
x.report 'block with size', %{o = Array.new(input.size){|x| input[x]+1 }}
end

pushを使うようにすれば
要素数分のinitializeが必要なArray.new(input.size)が
高い確率で一番遅くなる

538デフォルトの名無しさん (ワッチョイ 5b33-sQKC)2020/05/23(土) 23:06:45.39ID:eo29HWEv0
>>534
なんで >>529 + push ?
>>528 のほうがストレートで速そうやろが。

539デフォルトの名無しさん (ワッチョイ 275f-8Kp1)2020/05/24(日) 00:35:44.40ID:qyWs4RXc0
>>537
Array.new(3).push(1) #=> [nil,nil,nil,1]

540デフォルトの名無しさん (ワッチョイ 5a01-S/TN)2020/05/24(日) 01:01:16.27ID:uX1h9ngP0
>>539
あらら、そうだね
これで比べればいいのかな?

Benchmark.driver do |x|
x.prelude %{ input = (1..2_000_000).to_a.shuffle }
x.report 'Array.new(0) + while + indexer', %{o = Array.new(0); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(size) + while + indexer', %{o = Array.new(input.size); i=0; while(i<input.size); o[i] = input[i]+1; i=i+1; end}
x.report 'Array.new(0) + while + <<', %{o = Array.new(0); i=0; while(i<input.size); o << input[i]+1; i=i+1; end}
x.report 'Array.new(size) with block', %{o = Array.new(input.size){|x| input[x]+1 }}
end

541デフォルトの名無しさん (ブーイモ MM26-jNIj)2020/05/24(日) 20:16:17.42ID:sglBbUqvM
文字列でコードを渡さなきゃいけない仕様って超微妙だな

542デフォルトの名無しさん (ワッチョイ 4e2c-5qFb)2020/05/25(月) 16:59:48.64ID:gis+qwRr0
2020年6月30日
Ruby on Rails 製の、mstdn.jp・mastodon.cloud がサービス終了

女子プロレスラーの自殺により、
今後、イジメに対応するコストの上昇で、運営できなくなるとか

543デフォルトの名無しさん (ワッチョイ 4e2c-5qFb)2020/05/25(月) 21:19:55.59ID:gis+qwRr0
【検証】現役プログラマーは30万円の案件を何時間で出来るのか?

@YouTube



Ruby で、1時間!

544デフォルトの名無しさん (ワッチョイ 4d2c-LApo)2020/06/03(水) 11:38:50.17ID:vinsTjyH0
Railsコースリリース!業界最安値で自走力が身につくワケを制作者が語る

@YouTube



東京フリーランスのとだこうきが、Rails の3か月コースを作った!
9万円!

545デフォルトの名無しさん (ワッチョイ 4abd-cExd)2020/06/03(水) 17:11:50.10ID:NDbpdmqA0
Windows用に+DEVKITの方インストールしたけど1GB3万ファイル以上ってちょっとデカすぎないですか?
もうちょっとコンパクトにして欲しいんだが・・・

546デフォルトの名無しさん (ワッチョイ 1533-tHrU)2020/06/03(水) 19:02:05.97ID:ymOaMaMw0
要するに、ビルドツールをインストールしたMSYS2やろ。
しゃあないというか、あたりまえ。

547デフォルトの名無しさん (ワッチョイ 4d2c-LApo)2020/06/04(木) 22:02:40.64ID:hC0MsN2x0
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL でアクセスしてる

Linux側には、build-essential などのコンパイルツールを入れて、
日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト

548デフォルトの名無しさん (アウアウカー Sa05-3xqL)2020/06/08(月) 12:52:32.89ID:I7gt15nza
ビルドツール付きで1GBなら温情あるじゃないか。最近のVisual Studioだと10GB単位で食うぞ

549デフォルトの名無しさん (ワッチョイ 5d63-bYWF)2020/06/08(月) 18:25:21.07ID:2z4WuMg00
>>548
それはフルで入れたらでしょ
使いたい機能だけで入れたらそこまで容量使わないよ

550デフォルトの名無しさん (オッペケ Sred-1bbd)2020/06/08(月) 19:15:29.33ID:EB8W1SUXr
visual studioコンパイラだけ欲しい

551デフォルトの名無しさん (ワッチョイ 1533-lvyY)2020/06/08(月) 20:44:23.71ID:rHjOKxRG0
>>549
「使いたい機能」とやらをどこまで絞れんの?
gemによってはビルドできなかったりしてもいいの?

552デフォルトの名無しさん (ワッチョイ 1514-14A0)2020/06/08(月) 21:30:36.48ID:L2Cj2YHN0
macOS本体よりもでかい?Xcodeってなんなの?
http://2chb.net/r/mac/1574170194/
なんか8GB?ぐらいダウンロードさせられるんですけど?
macOS本体もそれぐらいだっけ?

553デフォルトの名無しさん (ワイーワ2 FFf2-B5RW)2020/06/09(火) 09:45:37.77ID:sE3YfRh/F
>>550
csc.exe と必要なライブラリだけ集めれば makefile で出来る

554デフォルトの名無しさん (ワッチョイ ff01-NdOG)2020/06/10(水) 23:42:30.32ID:mC7kOgCm0
"string”を ["s", "st", "str", "stri", "strin", "string”]にする場合の便利メソッドってある?
reduceじゃなくてaccumlator付きのmap的なやつ

555デフォルトの名無しさん (ワッチョイ f314-qY8l)2020/06/10(水) 23:50:47.62ID:o9Z/VPuJ0
誰がそんなメソッド使うんだよ
ユースケースが思いつかない

556デフォルトの名無しさん (ワッチョイ ff01-NdOG)2020/06/11(木) 00:38:25.72ID:tsfyzied0
>>555
accumulator付きのmap的なのは関数型を中心に結構標準で用意されてるよ
scanって名前が多い

557デフォルトの名無しさん (ワッチョイ 632c-aH+M)2020/06/11(木) 02:39:40.64ID:J++l+lJF0
ary = "abc".each_char.inject( [ ] ) do |ary, char|
if ary.length == 0
ary.push char
else
ary.push( ary.last + char )
end
end

p ary #=> ["a", "ab", "abc"]

558デフォルトの名無しさん (ワッチョイ 0f7d-QiYp)2020/06/11(木) 03:14:46.66ID:cAVECZZb0
>>557
二行目以降は
ary.push (ary.last || '') + char
end

559デフォルトの名無しさん (ワッチョイ 0333-cthd)2020/06/11(木) 03:15:12.13ID:zOJFiWlV0
abbrevとは違うんか?

560557 (ワッチョイ 632c-aH+M)2020/06/11(木) 09:58:14.09ID:J++l+lJF0
>>558
ほー

561デフォルトの名無しさん (ワッチョイ ff01-NdOG)2020/06/11(木) 13:02:15.68ID:tsfyzied0
>>559
ありがとう!まさに求めてたやつ

562デフォルトの名無しさん (ワッチョイ 6f0e-jP3R)2020/06/13(土) 21:43:36.97ID:v5FJ4AgU0
rbenvでインストールしてglobalに設定したのにruby -vでコマンドが見つかりませんって出る
rbenv経由でruby入れたときってrubyパス個別に通す必要あったっけ?
VMはubuntu2004使ってる

563デフォルトの名無しさん (ワッチョイ 0333-cthd)2020/06/13(土) 22:36:10.18ID:P6/rcyg20
>>562
まずはこのスレを検索して、それがダメだったらまたな?

564デフォルトの名無しさん (ワッチョイ 6f0e-jP3R)2020/06/13(土) 23:18:46.70ID:v5FJ4AgU0
>>563
スレ見るまでもなく解決したわ
ありがとな無能さん
初心者スレにお前は合わんから消えた方がいいよ

565デフォルトの名無しさん (オッペケ Sr87-Qd01)2020/06/13(土) 23:24:48.73ID:dJVRL38Lr

566496 (ワッチョイ 632c-aH+M)2020/06/13(土) 23:34:58.27ID:V91HObFW0
>>496
に書いておいた

漏れは、Windows 10, WSL, Ubuntu 18.04 で、
Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

anyenv を推奨する。asdf もあるけど、
中を見たら、結局そのまま各言語の、*env を使っているものもあるみたい

567496 (ワッチョイ 632c-aH+M)2020/06/13(土) 23:41:18.09ID:V91HObFW0
多言語の場合、anyenv, asdf を使わないと、各言語ごとにやらないといけないので面倒。
これらを使うと、rbenv, nodenv, pyenv, phpenv など、多言語を統一的に扱える

特に、Rails では、Node.js が必須だから、これらを使うべき

知らないけど、phpenv を使うと、すべてコピーされるから、
端末の起動が遅くなったとか、書いているサイトもある

568デフォルトの名無しさん (ワッチョイ 0333-cthd)2020/06/14(日) 02:30:30.04ID:6KYXSL5B0
>>564
初心者を免罪符にするな、クソクズw

569デフォルトの名無しさん (ワッチョイ 93ce-MJ0R)2020/06/14(日) 03:56:56.29ID:n40LRnwv0
利用者の少ない言語で何やってんだか

570デフォルトの名無しさん (ワッチョイ 8319-F3Ee)2020/06/17(水) 10:04:48.77ID:BoY15wgZ0
利用者少ないの?

571デフォルトの名無しさん (ワッチョイ b761-QR+y)2020/06/18(木) 01:58:25.31ID:6O5cmfAx0
調査によるが、Javaは未だに物凄く利用者数の多い言語。

日本のWeb系だと、JS>Java>Ruby>PHP>・・・位だったかな。
全体だと、
JS>Python>Java>C++>C#>C>Ruby
位だったかな。

572デフォルトの名無しさん (ワッチョイ f60e-tbXy)2020/06/18(木) 10:28:08.98ID:2MpifMwe0
PHPより上の位置付けでいいの?

573デフォルトの名無しさん (アウアウウー Sa47-Hc8+)2020/06/18(木) 12:14:36.39ID:L/uXoOmUa
javascript勉強した後だと、rubyの学習サクサク進むな

574デフォルトの名無しさん (ワッチョイ 573d-e/vk)2020/06/19(金) 21:01:04.19ID:RsXwSQCp0
たのしいrubyって第6版まで出ていますが4版や5版の中古でも問題ないですか?

575デフォルトの名無しさん (ワッチョイ 5a01-QZnr)2020/06/19(金) 21:02:29.60ID:2U294rNY0
買わなくても問題ないです

576◆QZaw55cn4c (NZ 0H12-igpC)2020/06/19(金) 21:28:00.42ID:nu2GLxXtH
>>571
PHP の地位が低すぎる
PHP はダントツにあがってもいいほどだ、wikipedia も PHP

577デフォルトの名無しさん (オッペケ Sr3b-8ohN)2020/06/19(金) 21:35:05.47ID:i/tLMeO3r
>>576
お前は留数定理勉強しろや

578デフォルトの名無しさん (ワッチョイ cfa5-NJGG)2020/06/25(木) 08:59:13.95ID:d9h6SFkx0
初心者でRUDYを習い始めたけど
この言語はなんかやりやすいねってまだ初歩の初歩だけど

579デフォルトの名無しさん (ワッチョイ 3f52-RSi0)2020/06/25(木) 09:33:04.52ID:p+gLKGcc0
まずは名前を覚えてあげような

580デフォルトの名無しさん (ワッチョイ 3f79-FPvj)2020/06/25(木) 10:19:03.69ID:2vWcdWuv0
>>578
まぁせいぜいがんばってくれたまえ

581デフォルトの名無しさん (アウアウウー Sad3-Owb/)2020/06/28(日) 15:54:16.53ID:mQb8yLJ0a
progateのrailsのコンテンツで以下のようなコードがありました。

<%= form_tag("/posts/create") do %>

<textarea></textarea>
<input type="submit" value="投稿">

<% end %>

form_tagメソッドはなぜ<%= %>で囲わなければ行けないのでしょうか?

以下のように理解していますが。

「<% 〜 %>または<%= 〜 %>の違いは何でしょうか。
どちらも中に記述されたRubyコードが実行されるのですが、
<%= 〜 %>の方は実行された結果を評価し、文字列として出力します。」

<%= form_tag("/posts/create") do %>の行は何も文字列として出力していないと思いますが。

582デフォルトの名無しさん (ワッチョイ 8f63-UxRf)2020/06/28(日) 18:31:09.43ID:VdXbwnMJ0
お気に入り数を増やすAPIを作っているんですが、1つづつ増やすのは以下でできたんですが、
変数で一気に10個ずつとか増やしたい場合どう書いたらいいでしょうか
Photo.where('id = ?', params[:id]).update_all("favorite_count = favorite_count + 1")

583デフォルトの名無しさん (ワッチョイ 7fbb-OVGN)2020/06/28(日) 18:56:04.59ID:0dkV5Fxh0
>>582
コピペですまないものは全て一行ずつここで聞きながらプログラムを書く気かいな
何を作りたいのか知らんが、クラウドソーシングサイトで5000円でも払って作ってもらえよ

584デフォルトの名無しさん (ワッチョイ 8f63-UxRf)2020/06/28(日) 18:59:25.47ID:VdXbwnMJ0
>> 583
わからないならレスしないでください。うざいだけです

585デフォルトの名無しさん (ワッチョイ 7fbb-OVGN)2020/06/28(日) 19:13:24.62ID:0dkV5Fxh0
>>584
そんなら他の言語に行けよ
Ruby界に高卒はいらないよ

586デフォルトの名無しさん (ワッチョイ ff0e-/nJK)2020/06/28(日) 20:01:39.44ID:EEQjVY4L0
ワッチョイ 7fbb-OVGNはNGだな
お前が消えろだわ

587デフォルトの名無しさん (ワッチョイ 3f52-RSi0)2020/06/28(日) 20:32:08.79ID:0MZ5QVvK0
>>585
Ruby界w

588デフォルトの名無しさん (テテンテンテン MM4f-DObo)2020/06/28(日) 20:57:07.92ID:crkgJwf5M
高学歴なんかみんな他へ行ってしまってもう残ってないだろ
低学歴ワープアの脱出先として注目されすぎて単価の暴落がやばい

589デフォルトの名無しさん (オッペケ Sra3-jzci)2020/06/28(日) 21:09:18.32ID:aRNwulycr
>>582
質問の要件を満たしていません。
知性をアップデートしてから出直してきてください。

590デフォルトの名無しさん (ワッチョイ 3f01-0Hhk)2020/06/28(日) 21:26:16.13ID:pODeKu4C0
>>582
散々な言われよう

Active Recordを使ってDBの値をインクリメントする際
増分を指定するにはどうすればいいですか?
って質問なのかもしれないが

Acrive Record風のAPIを自作してて
インクリメントする場合はどういうAPIにするのがいいですか?
って質問に見えるから、ちょっと何言ってるんだろうってなる

591デフォルトの名無しさん (ワッチョイ 8f63-UxRf)2020/06/28(日) 22:01:58.57ID:VdXbwnMJ0
もうできたわ。役に立たないカス共が

592デフォルトの名無しさん (オッペケ Sra3-jzci)2020/06/28(日) 22:08:09.77ID:aRNwulycr
最近このやり取り多くて草

593デフォルトの名無しさん (ワッチョイ 8f63-vh/6)2020/06/28(日) 22:58:05.40ID:zEEHZHWG0
>>581
=の有る無しで出力されるhtmlがどうなるか比較してみたら

594デフォルトの名無しさん (ワッチョイ 8f63-UxRf)2020/06/28(日) 23:17:47.40ID:VdXbwnMJ0
ここなんでこんなイライラしてる人多いんだ
プログラミングスクールに大金つぎ込んで未経験から異業種転職を試みたが
結局うまく就職できなかった奴が暴れてんのか

595デフォルトの名無しさん (ワッチョイ cf2c-wMgy)2020/06/29(月) 00:43:51.63ID:ze6DZkOI0
>当スレに★Python以外のプログラミング言語での回答類を書くべからず★
>「Ruby では」「Rubyでは」「某言語では」をNGワード登録推奨

テンプレを書き換えたり、すべてのスレを荒らしている荒らしがいる

荒らしは、必ず2回以上書き込む。
前のレスに「そうだよねー」みたいに、アンカーを付けて、複数人いるように見せかける

だから、荒らしの相手をしないように!
荒らしが喜ぶので、荒らしの相手をする者も、荒らしと認定されます!

596デフォルトの名無しさん (ワッチョイ cf2c-wMgy)2020/06/29(月) 00:54:33.79ID:ze6DZkOI0
>>581
【Rails】form_tagの使い方を徹底解説!
https://pikawaka.com/rails/form_tag

「formtag rails」で検索!

Rails Guide も、翻訳されてる

>>582
>favorite_count = favorite_count + 1
この1 を、10 に変えれば?

597デフォルトの名無しさん (ワッチョイ 3ff1-NJGG)2020/06/29(月) 06:54:27.43ID:DbC543670
そりゃそんな人も居るだろうけど
元からアレな人も多い場所なような

598デフォルトの名無しさん (ワッチョイ 3f52-RSi0)2020/06/29(月) 09:08:37.94ID:L39gVdue0
>>594
ここまで読んでみたところ、イライラしてるのはお前さんだけでないの?
まあ初心者の訳分からない質問に不寛容なのが多いのは確かだけど、>>584みたいなレスしちゃったら誰もまともに相手しようなんて思わないぞw

599595 (ワッチョイ cf2c-wMgy)2020/06/29(月) 10:38:59.75ID:ze6DZkOI0
すべてのスレで、荒らしが書き込んでいるだけ。
それを知らない香具師が、ムキになって怒るのが面白いから、荒らしが居着いている

荒らしを無視すればよい

荒らしはプログラマーじゃないし、ソースコードを書いたりできない。
今までに、1度も見たことない

600デフォルトの名無しさん (ワッチョイ 4f5f-RWQ3)2020/06/29(月) 19:10:25.31ID:Z1Xkd3Wv0
>>581
<form>タグを生成しています。
viewが何やってるのかよくわからない時は
ブラウザの開発者ツールを開くのオススメ

601デフォルトの名無しさん (ワッチョイ 35e6-k+PU)2020/07/11(土) 08:27:46.76ID:+b7VkVW+0
pacman -Ss crystal
で見つからないんだけどどうすればいい?

602デフォルトの名無しさん (ワッチョイ 812c-WQpp)2020/07/24(金) 00:27:00.70ID:So4dssPK0
>>2
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/07/25

Ruby 2.6.6
Rails 6.0.3

Windows 10 では、WSL 2

603デフォルトの名無しさん (アウアウウー Sa5d-m51P)2020/07/26(日) 10:48:31.22ID:HGPhhgaZa
chompとchomp!って違うメソッドなの?

604デフォルトの名無しさん (オッペケ Sr85-BZqs)2020/07/26(日) 11:19:09.80ID:7Vkc7l/lr
違うメソッドです

605デフォルトの名無しさん (ワッチョイ 8bbb-KdZo)2020/07/26(日) 17:07:40.93ID:rQ/Jznn00
このところ、悪徳商法っぽいRuby教材屋が目立つな

606デフォルトの名無しさん (ワイーワ2 FF63-keh3)2020/07/27(月) 10:58:24.12ID:vNtx9fDhF
reverse() と reversed() って違うメソッドなの?

607デフォルトの名無しさん (ワッチョイ 8bbb-KdZo)2020/07/27(月) 19:41:14.37ID:hN1elWPu0
そら違うわ

608デフォルトの名無しさん (ワッチョイ 137c-a4SN)2020/07/27(月) 22:22:40.84ID:2I3xUck90
頭悪くてプログラムしかできなかった大企業CEO一覧
http://re-file.com/18k/1677/

609デフォルトの名無しさん (ワッチョイ 8b14-nUry)2020/07/27(月) 22:30:54.33ID:3jtmTLJJ0
>>608
本当の内容

【メキシコ】麻薬カルテル、ライバル組織の女を拘束、手足を縛り生きたまま解体 - 18禁グロ

▼カテゴリ - 18禁グロには一部、異様・奇怪・猟奇的・暴力シーン・グロテスクな表現が含まれていますので、閲覧制限をしています。

1. 18歳未満は閲覧禁止です。
2. 耐性が無い方は閲覧しないでください。
3. 閲覧は自己責任でお願い致します。

※上記、18歳以上で同意できる方は入室してください。

610デフォルトの名無しさん (アウアウカー Saad-uqf9)2020/08/05(水) 18:18:51.33ID:Tkocud9ba
rails6使いづらくないです?
なによりこんなNode.jsに頼るならNode.js使えばいいじゃないです?

611デフォルトの名無しさん (テテンテンテン MM8b-lmhp)2020/08/06(木) 14:59:04.20ID:wG3o2yHhM
>>610
Railsは開発者に一貫性の高い開発スイートとワークフローを提供するというコンセプトではあるけど、
それ以前にWeb開発のスタンダードから外れてはいけないというのが大前提だ
いくらRailsの思想に合わなかろうが、たとえばMSのClassic ASP.NETみたいな標準をガン無視した独自路線へ行くのは絶対NG
でRuby自体がもはやWebのスタンダードではなくなりつつある今、大きな歪みが生じているわけだ

612デフォルトの名無しさん (アウアウカー Saad-uqf9)2020/08/07(金) 18:42:11.83ID:ujPQ3UKLa
>>611
rails5→rails6の移行も仕様変わりすぎてて難易度高いよね
こりゃ5のサポート切れのタイミングで別言語乗り換えかな

613デフォルトの名無しさん (ワッチョイ 1b8c-gyt0)2020/08/08(土) 09:55:56.13ID:ZxDC46c+0
別言語のは移行が簡単なのか

614デフォルトの名無しさん (ワッチョイ a935-GKXO)2020/08/09(日) 19:19:40.37ID:En2E3W9T0
NokogiriのTutorialsを見てます。

html_doc = Nokogiri::HTML("<html><body><h1>Mr. Belvedere Fan Club</h1></body></html>")

このコードでHTMLモジュールのparseメソッドが呼び出せる様なのですが、なぜモジュール名の後にカッコを付ければ、parseメソッドが呼び出せるのでしょう?

HTMLメソッドが定義してあって、その中でparseメソッドが呼び出されているのでしょうか?

615デフォルトの名無しさん (ワッチョイ a935-GKXO)2020/08/09(日) 19:26:01.08ID:En2E3W9T0
>>614
module Nokogiri
def HTML(s)
puts s
end
module_function :HTML

end

Nokogiri::HTML("module OK") # => module OK

なんと、HTMLメソッドが定義されてました。

616デフォルトの名無しさん (ワッチョイ a935-GKXO)2020/08/09(日) 19:45:48.04ID:En2E3W9T0
[スクレイピングのためのNokogiri利用メモ - それはそれ、これはこれ](http://otn.hatenablog.jp/entry/20090509/p1)

クラス構造の理解:Nokogiri

617デフォルトの名無しさん (オッペケ Sr5d-f2iR)2020/08/09(日) 20:05:29.17ID:CEZ97NChr
KernelにArrayメソッドがあるのと似たようなもんだな

618デフォルトの名無しさん (ワッチョイ 594e-cUya)2020/08/09(日) 22:21:32.35ID:sb6ynJ/q0
>>610
勘のいいガキは嫌い

619デフォルトの名無しさん (ワッチョイ ebbb-VtC7)2020/08/09(日) 23:52:58.94ID:wetuPPrU0
Railsがマイクロサービスが流行って廃れたようなことを言う人もいるけどさ
サーバ側でセッション情報を保持しないのが主流になった時点でもう、重量級フレームワークは終わりだったんじゃないのかな

620デフォルトの名無しさん (ワッチョイ a935-GKXO)2020/08/11(火) 07:39:46.13ID:a9fFSUGp0
>>614
NokogiriのRDocを見てます。
Nodeオブジェクトの
content, text, inner_text, to_str
メソッドは、みな同じって事ですかねぇ?

to_str以外、試してみたら同じ文字列が返って来ます。
to_strは後で試してみます。

621デフォルトの名無しさん (ワッチョイ a935-GKXO)2020/08/11(火) 08:03:23.46ID:a9fFSUGp0
>>619
じゃぁ、Session情報はどこに保存?

622デフォルトの名無しさん (ワッチョイ 9301-X9Sf)2020/08/11(火) 11:44:25.69ID:giB5l2E50
>>620
aliasなのでみんな同じ
https://github.com/sparklemotion/nokogiri/blob/master/lib/nokogiri/xml/node.rb#L370

ドキュメントにはalias書いてなくて不親切だね

623デフォルトの名無しさん (ワッチョイ a935-GKXO)2020/08/11(火) 12:51:41.54ID:a9fFSUGp0
>>622
great thx!

624デフォルトの名無しさん (ワッチョイ 6961-747+)2020/08/11(火) 16:35:32.49ID:pA06ApZK0
>>610
JSの方が、ブロックが楽に書けるし、数値の0がfalseの意味を持っているので分かり易いし、複数行コメントに /*・・・*/ が使えて便利だし、
if 文の条件式を ()で囲むし、単一行コメントが // だし、Cと似ている。

625デフォルトの名無しさん (アメ MM75-cUya)2020/08/11(火) 16:52:37.77ID:nNWMPbxDM
if文の()?正直いらねえわ。
goみたいになくしてほしい。
if()単文;で書けて嬉しいことなんてほとんどないし。

626デフォルトの名無しさん (アウアウエー Sa23-e++8)2020/08/11(火) 20:23:27.98ID:Uga1WByLa
自動的に if then else end に展開するスクリプトを書けば
問題解決じゃないの?

627デフォルトの名無しさん (ワッチョイ e52c-dj0b)2020/08/12(水) 01:36:05.08ID:UVmFgkue0
JavaScript, PHP, Python は、各型に偽があるので、10個ぐらいあって大変。
0, 0.0, 空文字列、空配列、空辞書とか

Ruby では、nil, false だけが偽だから、変数の型を考えなくて済む。
各型が偽になる条件を考えるのは、苦痛

確か、Rails には、そういう関数があったかも知れない

628デフォルトの名無しさん (ワッチョイ 4d61-CWhB)2020/08/12(水) 02:44:28.08ID:2N2Ra+Iw0
しかし、コンピュータは、ロジック回路や電卓の時代から、0が偽で、1が真と
決められ、TTL-ICでも、NAND, NOR,AND,OR,NOTのどれもがその規則に
従っていた。
アセンブラやマシン語でもそれが踏襲され、1 and 1 = 1, 1 and 0 = 0となる。
とこが、Rubyだけは、1 and 0 = 1 というような変なことになる。
これは受け入れがたい。
こういうコンピュータの基礎を無視するようなことしてるのは困る。

629デフォルトの名無しさん (ワッチョイ 2e63-cv7i)2020/08/12(水) 02:52:44.69ID:02pnoruX0
rubyの0はメモリに何も入ってないのを表すんじゃなくてNumericクラスのインスタンス
何かのインスタンスなんだから真なのは自然
rubyの全てオブジェクトという基礎を無視するのは困る

630デフォルトの名無しさん (ワッチョイ 4d61-CWhB)2020/08/12(水) 03:08:54.56ID:2N2Ra+Iw0
>>629
しかしそれ自体が、コンピュータの基礎とかけ離れた設計思想になっている。
コンピュータの世界では、非常に古くから0が偽であると定義されている。

631デフォルトの名無しさん (ワッチョイ 4d61-CWhB)2020/08/12(水) 03:12:27.26ID:2N2Ra+Iw0
数学の世界でも、真理値表では、0が偽、1が真。
andを「論理積」というのは、andを掛け算(つまり「積」)に置き換えてみると
結果が同じになり、
orを「論理和」というのも、足し算を「飽和演算」とする場合に、足し算に
置き換えられるからで、
それらは、0を偽とした場合にのみ成り立つ。
0も1も真としてしまっては、これら、論理積、論理和という言葉の定義すら
理解しにくくなってしまうだろう。

632デフォルトの名無しさん (ワッチョイ 7133-UdbQ)2020/08/12(水) 04:29:24.89ID:RMBTHnXK0
>>629
だったら、偽なのはfalseだけにしとけよと思う。
真偽値でなければならないところは真偽式しか書けないようにしとけと。

微妙にいいかげんなんだよな。

633デフォルトの名無しさん (ワッチョイ 468c-/3LZ)2020/08/12(水) 05:16:20.30ID:pHDlYbYE0
いやいや、そもそも0や1が真になるのがおかしい
if 0 then 〜 はエラーにすべきだろう

634デフォルトの名無しさん (ワッチョイ ed35-ZVh2)2020/08/12(水) 07:16:25.66ID:MEC6nwIV0
俺は、Rubyではnil, falseだけが偽とする。0を偽としないって設計は好きだな。

Conventionalな考え方とは異なるってのも別に良いじゃん。
そんなConventionalな、つまり従来の考え方を踏襲しない言語なんて一杯あるし。

これが気に入らんのは、Kotlinでfunで関数定義するやつ。

635デフォルトの名無しさん (ワッチョイ 454e-/dLM)2020/08/12(水) 07:25:45.86ID:q4xTlvo30
まあ一番基本的であろうdefで作った関数(ほんとは関数じゃないというのは置いといて)が第一級市民(オブジェクトと言うと誤解を招くので)として扱われない仕様には若干古くささを感じる。
JSどころかPythonですらできるのに…
引数ゼロで呼び出しかかっちゃうんだよなぁ…
()省略文法の弊害。
今思えば必須でよかったんじゃないか?()くらい

636デフォルトの名無しさん (ワッチョイ e52c-dj0b)2020/08/12(水) 08:00:48.62ID:UVmFgkue0
Ruby では、関数・ブロック(クロージャ)の2つのスコープがある。
2つないと、バグりやすい

関数は、クロージャと違って、スコープが厳しい。
C と同じで、外側の変数を通さないから、バグが少ない

Go も、Rubyを見習ったし、
JavaScript も、新たなスコープを作った

637デフォルトの名無しさん (ブーイモ MM85-bVkb)2020/08/12(水) 08:34:16.06ID:lEc3olaBM
老害の極み
1 and 0 なんてコードを書こうとするほうがどうかしてる

638デフォルトの名無しさん (ワッチョイ ed35-ZVh2)2020/08/12(水) 08:38:11.02ID:MEC6nwIV0
>>637
そのとおり!

いつまでも、0が偽であるべき!
なんて考えに取り憑かれているべきでは無い。

ちなみに、俺、56歳ね!

639デフォルトの名無しさん (アメ MM55-/dLM)2020/08/12(水) 08:49:24.26ID:1xAI9U35M
ぶっちゃけ今どきるびぃみたいな型なしクソ言語にしがみついてるやつらが老害だけどなw

640デフォルトの名無しさん (テテンテンテン MM26-ocCp)2020/08/12(水) 09:10:24.00ID:fvB0TNCqM
>>635
オブジェクト指向原理主義的には、メソッドはオブジェクトに対してメッセージを送信した結果生じるオブジェクトの「反応」なんだよ
そこは完全にオブジェクト側に任されていて、オブジェクト自体がRubyの仮想マシン上でどう実装されてるかすらも呼び出し側が期待するべきではないの
JavaScriptだとオブジェクトが単なる連想配列であるという前提のもとでそこからメソッドを引っ張り出して呼び出すわけだけど、それはある意味オブジェクトのカプセル化を破っているというわけ
そういう思想的背景を理解すれば、Rubyのメソッドが第一級関数ではない理由は君にも納得できるんじゃないかな
まあその思想に拘ることにどれだけ実用的意義があるかは別問題で、俺もRubyが時代遅れだというのは同意するけどね

641デフォルトの名無しさん (アウアウウー Saa5-Z0Eo)2020/08/12(水) 09:42:55.58ID:/4eCUYwNa
これ本当なのですか?

Ruby on Rails では、サーバー側がRubyで、
クライアント側が、React + Bootstrap も多いけど、

サーバー側をJavaScript(JS), Node.js にすれば、
言語が1つになるので、開発が楽になると主張する人もいるけど、

あまりに、JSは巨大だから、かえって難しくなる

だから、Rails では、Node.js, Webpack, Babel をコンパイルツールとして使っているだけ

642デフォルトの名無しさん (アウアウウー Saa5-ocCp)2020/08/12(水) 09:55:36.17ID:sCXl4KJWa
> あまりに、JSは巨大だから、かえって難しくなる
ここが飛躍していて意味不明である
RailsはサーバーサイドだけであってもJSよりRubyで書いた方が簡単だと思っている奴が使うためのフレームワークであり、それに正しいもクソもない
そう思う奴が少なければ自然に廃れるだけだし、事実廃れている

643デフォルトの名無しさん (ワッチョイ e52c-dj0b)2020/08/12(水) 10:22:22.84ID:UVmFgkue0
JS は最近まで、基本型であるハッシュも無かった

皆、オブジェクトをハッシュの代わりに使っていたけど、
__proto__ という属性名を使うと、バグってしまう

こういう事も知ってる香具師は、まずいない。
標準機能が少なくて、自作すると、様々な引掛けに掛かってしまう

var myObj = { };
str = 'abc';

myObj[ str ] = 1;
console.log( myObj[ str ] ); // 1

str = '__proto__';

myObj[ str ] = 2;
console.log( myObj[ str ] ); // 2 ではなく、{ }

644デフォルトの名無しさん (ワッチョイ aebb-jUmA)2020/08/12(水) 10:28:49.86ID:0iqLL9pv0
Railsは、PHP全盛期に誰が使っても大穴が開かないから人気があっただけでさ
Node.js等に優秀なフレームワークが出そろった今ではもう、使う価値はほとんどないよ・・・・

645デフォルトの名無しさん (ワッチョイ 7133-UdbQ)2020/08/12(水) 12:33:47.08ID:RMBTHnXK0
>>643
あらさがしもいいとこ。
識別子に「__」を混ぜるヤツなんかそうそういねえ。

646643 (ワッチョイ e52c-dj0b)2020/08/12(水) 12:51:13.63ID:UVmFgkue0
使っている単語を集めるアプリで、__proto__ が使われていたら、バグる

Haxe では、この仕様を回避するために、すべての属性名の先頭に、@ を付けていた。
@abc, @__proto__ みたいにする

でも、__proto__ も、ブラウザが慣習として使っているだけのもので、
規格で決まっているわけでもないので、変わるかも知れない

もし変わったら、突然アプリがバグってしまう

各社が、勝手に決めている部分も多いから、プログラミングしにくい。
言語の標準機能が少ないから、配列の便利な操作でも、
Lodash など外部のライブラリを使うしかない

647デフォルトの名無しさん (テテンテンテン MM26-tgXM)2020/08/12(水) 13:21:10.21ID:/qrw2h6bM
標準なのかRailsの独自拡張なのかの区別すら困難なほどにRailsにクソミソに汚されたRubyの悪口はやめなさい
少なくともJSにおいては、標準ライブラリを汚すような行儀の悪いライブラリが広く一般的に使用されたりはしていない

648デフォルトの名無しさん (オッペケ Srf1-wvIG)2020/08/12(水) 13:25:19.87ID:kGuev0jHr
TSでいいじゃない 人間だもの

649デフォルトの名無しさん (ワッチョイ 8201-FRDO)2020/08/12(水) 14:24:08.46ID:HozojyCs0
暑くなるとどのスレにも変なのが湧くね
知ってて批評する分にはいいけど知ったか批評しかなく中身がない

650デフォルトの名無しさん (ブーイモ MMb6-bVkb)2020/08/12(水) 15:43:20.47ID:8Nm8vDB1M
unixの世界では0がtrue、1を含むそれ以外がfalse。

慣習よりも実益が上回るなら、慣習に従う必要なんてない。

Swift、Kotlin、Go、Rustらのメジャーな新言語で0や1をそのまま真偽値として使える言語は一つとしてないのは、JSのtruthy/falsyはバグの温床だから。

651◆QZaw55cn4c (NZ 0H8a-nBdZ)2020/08/12(水) 17:03:15.03ID:UG+oufucH
>>650
それはシェルが扱う「プログラムの」返値のときで、しかも意味は 0 が正常終了、1 が非正常終了、と、ちょっと違う

652デフォルトの名無しさん (ワッチョイ 7133-UdbQ)2020/08/12(水) 17:41:31.55ID:RMBTHnXK0
>>651
testコマンドでは、0が真、それ以外が偽。

>>650が「unixの世界」とか言ったからややこしいけど、シェルだけの話でもない。

653◆QZaw55cn4c (NZ 0H8a-nBdZ)2020/08/12(水) 17:54:35.78ID:UG+oufucH
>>652
test コマンドの実体が外部の実行ファイルなら、それは >>651 のいうところの「プログラムの返値」‥‥@
test コマンドがシェルの内部に埋め込まれている場合もある(例えば bash)‥‥A

@Aいずれの場合も「シェルの話」なのでは?

654デフォルトの名無しさん (ワッチョイ 7133-UdbQ)2020/08/12(水) 18:29:24.32ID:RMBTHnXK0
>>653
「終了」だけの話じゃないから。

655デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)2020/08/13(木) 10:20:15.54ID:m1xh97jBF
>>651
unix とか shell とか C の関数とか
戻り値の扱いが統一されてないのは不自然だよね

656デフォルトの名無しさん (ワッチョイ 7133-UdbQ)2020/08/13(木) 11:02:33.72ID:HLH3bdVq0
>>655
コマンドの終了コードは真偽の2値だけじゃないから。
わかりにくいといえばそうだが、しかたない。

657デフォルトの名無しさん (ワッチョイ 4d61-CWhB)2020/08/13(木) 11:27:21.81ID:+ydphYXd0
>>650
それは真偽値じゃなく、0が成功、0以外がエラーで、番号でエラーの種類を表しているだけ。
Unixでは、誕生の時から、Cと二人三脚だったが、Cはもともと1が真、0が偽だった
わけだから、Unixも当然、1が真、0が偽。
エラー番号は、真偽値とは直接関係が無く、Unixとは関係ないMS-DOSや
PC-8801のアセンブラの世界でも、0が成功、0以外でエラーの種類を表すことが
多かった。なぜかといえば、それが効率が良かったから。
当時のCPUは非力だったので、そのように1つの整数で多くの情報を表すと、
飛躍的に体感速度が上がったからそうなっていた。

658デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/13(木) 19:09:06.75ID:Tr7DEHMo0
dllでchar* hoge(){

}

659デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/13(木) 19:11:24.89ID:Tr7DEHMo0
dllで
char* hoge(){
return msg;
}
ってやったのをrubyではどうやってうけとればいいんですか?
お願いします

660デフォルトの名無しさん (ワッチョイ e52c-178q)2020/08/14(金) 05:15:39.54ID:SCMnTycc0
「ruby dll 呼び出し」で検索すれば?

ただ、Windows 用にコンパイルしても、正常に動くかな?

661デフォルトの名無しさん (アウウィフ FFa5-jwrZ)2020/08/14(金) 15:59:11.59ID:XKPWE/tlF
ffi

662デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 16:44:23.46ID:MuRP3aMr0
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "D:./myruby.dll"
extern "char* gethoge()"
end
ss = M.gethoge
puts ss

文字化けします

663デフォルトの名無しさん (ワッチョイ 7133-UdbQ)2020/08/14(金) 17:05:39.60ID:B0hSR/wp0
文字コードが違うんやろ。
変換すれば。

664デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 17:27:30.31ID:MuRP3aMr0
変換のしかたがわからないのです

665デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 17:28:37.41ID:MuRP3aMr0
dllはshiftjisです

666デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 17:30:52.13ID:MuRP3aMr0
`require': cannot load such file -- ffi

667デフォルトの名無しさん (ワッチョイ 1e7d-yoZq)2020/08/14(金) 17:44:20.45ID:cCFmHkiX0
>>662
ss = M.gethoge.force_encoding( Encoding::CP932 )

668デフォルトの名無しさん (エムゾネ FF62-jwrZ)2020/08/14(金) 18:18:09.19ID:zY2s9ydfF
ruby -Ks

669デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 18:24:57.25ID:MuRP3aMr0
一通りやったのに問題解決しませんでした、諦めました
どうもありがとうございました

670デフォルトの名無しさん (オッペケ Srf1-wvIG)2020/08/14(金) 18:35:40.73ID:5nafUaAcr
dllがShift-JISでrubyがUTF-8でターミナルがWindows-32Jとかなんじゃねえの
情報を小出しにされたんじゃわかるわけない

671デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 18:40:48.13ID:MuRP3aMr0
それです
ターミナルがよくわかりません

672デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 18:42:22.56ID:MuRP3aMr0
ターミナルはshiftjisでした

673デフォルトの名無しさん (オッペケ Srf1-wvIG)2020/08/14(金) 18:58:09.61ID:5nafUaAcr
そもそも本当に文字化けなのか?
想定する文字列と
p ss
した結果は?

674デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:03:22.47ID:MuRP3aMr0
#<Fiddle::Pointer:0x000000000313e7d0 ptr=0x00007ffea5c03038 size=0 free=0x0000000000000000>

675デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:04:10.92ID:MuRP3aMr0
require 'fiddle/import'

module M
extend Fiddle::Importer
dlload "D:./myruby.dll"
extern "char* gethoge()"
end

p M.gethoge

system "pause"

676デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:06:41.96ID:MuRP3aMr0
想定する文字列は「こんにちは!」です

677デフォルトの名無しさん (ワッチョイ 1e7d-yoZq)2020/08/14(金) 19:07:56.76ID:cCFmHkiX0
p M.gethoge.encoding

678デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:08:46.36ID:MuRP3aMr0
puts M.gethoge
だと
S0�0k0a0o0�

679デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:10:43.30ID:MuRP3aMr0
>>677
undefined method `encoding' for #<Fiddle::Pointer:0x0000000002c42230> (NoMethodError)

680デフォルトの名無しさん (ワッチョイ 1e7d-yoZq)2020/08/14(金) 19:16:58.97ID:cCFmHkiX0
p M.gethoge.to_s.encoding

681デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:19:22.81ID:MuRP3aMr0
>>680
#<Encoding:ASCII-8BIT>

682デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:21:07.40ID:MuRP3aMr0
#include <stdio.h>

char name[] = "こんにちは!";

extern "C" __declspec(dllexport) char* __stdcall gethoge() {
return name;
}

dll側です

683デフォルトの名無しさん (ワッチョイ 1e7d-yoZq)2020/08/14(金) 19:28:01.98ID:cCFmHkiX0
puts M.gethoge.to_s.force_encoding( Encoding::CP932 )

684デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:29:32.82ID:MuRP3aMr0
>>683
お!出ました!
ありがとうございました
助かりました

685デフォルトの名無しさん (オッペケ Srf1-wvIG)2020/08/14(金) 19:38:38.19ID:5nafUaAcr
hoge.dllコンパイルしてたら解決してた
良かったね

686デフォルトの名無しさん (ワッチョイ dd5f-XQXO)2020/08/14(金) 19:58:30.98ID:MuRP3aMr0
>>685
ありがとうございました

687デフォルトの名無しさん (ワッチョイ e52c-178q)2020/08/14(金) 22:28:15.31ID:SCMnTycc0
Windows で、Ruby を使うのは、CP932 で苦しむ。
ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932

クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end

688デフォルトの名無しさん (ワッチョイ 8201-FRDO)2020/08/14(金) 23:58:52.64ID:sxmwfi0L0
>>687
スクリプト/内部/外部のエンコーディングをCP932にすれば
CP932 -> UTF8とUTF8 -> CP932の変換や指定は不要

689デフォルトの名無しさん (ワッチョイ 9d6a-2ych)2020/08/18(火) 19:07:20.91ID:7fbjefcm0
mechanizeのform送信を使って5chに書きこむことはできますか?

textareaにvalue値を入れ、submitし、承諾しますか?の画面まで行けたのですが、そこから同じようにsubmitしてもページ遷移が起こらずそのままみたいです

690デフォルトの名無しさん (オッペケ Srf1-wvIG)2020/08/18(火) 19:31:46.44ID:AGh/qXAtr
>>689
cookie

691デフォルトの名無しさん (ワッチョイ 9d6a-2ych)2020/08/18(火) 19:53:02.69ID:7fbjefcm0
>>690
具体的にcoockieをどうすれば良いでしょうか?

692デフォルトの名無しさん (エムゾネ FF62-jwrZ)2020/08/18(火) 20:08:47.36ID:h5vNCvfYF
hanamogera
tepodon

693デフォルトの名無しさん (ワッチョイ 6285-UC6e)2020/08/18(火) 21:43:20.22ID:HR/M/dGq0
>>687
>Windows で、Ruby を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932

Rubyを生半可に知ったつもりの人にありがちな勘違いだな
まず、多言語化に対応した多くのプログラミング言語は、
内部エンコーディングとしてUTF-8を採用している、ここまでは間違いではない
しかしながらRubyは内部エンコーディングとして特定のエンコーディングを採用せず、

  文字列(String)オブジェクトの属性としてエンコーディング情報を保持する

方式を採用した
だから>>688氏が指摘しているように、エンコーディングをCP932で統一できるなら、
Rubyであれば 外部・CP932 → Ruby内部・CP932 → 外部・CP932 と
エンコーディングフリーなプログラミンングを実践できる

・Ruby 2.7.0 リファレンスマニュアル > 多言語化
 https://docs.ruby-lang.org/ja/latest/doc/spec=2fm17n.html
・Rubyのエンコーディング
 https://www.sl*d*share.net/tmtm/ruby-nseg30
・Rubyのエンコーディング
 https://tmtms.h*t*n*blog.com/entry/20120812/ruby_encoding

ありふれた言語、たとえばPythonであれば内部エンコーディンングはUTF-8固定だから:
>Windows で、Python を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Python内部・UTF-8 → 外部・CP932
という指摘は正しい

694デフォルトの名無しさん (ワッチョイ 8201-FRDO)2020/08/18(火) 22:19:28.71ID:KlQrPk6/0
CSI方式を採用した背景はこれ読むといいよ
https://jp.quora.com/Ruby-deha-naze-UCS-seiki-ka-wo-saiyou-shi-tei-nai-node-shou-ka/answers/141570426

↓こう書いとけばリテラルもI/OのデフォルトもCP932
#! /usr/bin/env ruby -E CP932:CP932
# encoding: CP932

695デフォルトの名無しさん (テテンテンテン MM4f-f6AD)2020/08/19(水) 00:17:36.61ID:45CsPPnjM
エンコーディングのコストなんてIOに比べりゃ無視できる
ぶっちゃけRubyのやり方は百害あって一利無し

696デフォルトの名無しさん (ワッチョイ 7fa5-u2+K)2020/08/19(水) 00:28:27.54ID:dM5o8vR90
windowsのファイルシステムのエンコーディングを中途半端なままにしたことで、
windowsユーザーへの嫌がらせになった以外に何の意味もなかった

697デフォルトの名無しさん (ワッチョイ 7f47-fHWV)2020/08/19(水) 01:42:46.33ID:Ch6IfZIA0
>>695
+1
ほんそれ

698デフォルトの名無しさん (ワッチョイ 9f33-KILr)2020/08/19(水) 01:52:26.05ID:zoQbwZV20
>>696
Windowsのファイルシステムでは、あらゆるエンコーディングがうまくいってない気がするな。w
まあ、しょせんUTF-16だしな。
安全そうなところだけをつかったほうが安心。

699687 (ワッチョイ 1f2c-7CyN)2020/08/19(水) 02:07:17.75ID:w/3evjlx0
UTF-8 以外は実績が無いから、文字列処理とか、怖くて使えないだろ。
誰も使っていないから

文字列を、正しく数値に変換できるのかとか

IO の境界で、変換する方が安全だと思う

700デフォルトの名無しさん (ワッチョイ 1f2c-7CyN)2020/08/19(水) 02:33:17.91ID:w/3evjlx0
>>689
RubyでCookieの読み込みや保存を幸せにする(Mechanize&Selenium)
https://rooter.jp/web-crawling/ruby-cookie/

「ruby mechanize cookie」で検索すれば?

漏れは、selenium webdriver で、実際のブラウザを操作しているだけだから、
クッキーの事も、考えたことはない。
ブラウザが勝手にやる

プログラミングでは、入力して、ボタンを押すだけだから、簡単。
下は、yahoo のログインの例

driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym";

element = driver.find_element(:id => "username")
element.send_key "ユーザー名"

driver.find_element(:id => "btnNext").click

element = driver.find_element(:id => "passwd")
element.send_key "パスワード"

driver.find_element(:id => "btnSubmit").click

701700 (ワッチョイ 1f2c-1yu9)2020/08/19(水) 07:23:42.56ID:w/3evjlx0
selenium webdriver なら、これで、
この板のtest スレの、書き込み確認画面が出る。
ひょっとしたら、確認画面が出ないかも知れない

require "selenium-webdriver"

options = Selenium::WebDriver::Chrome::Options.new

options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 15 # default timeout

# プログラム板のtest スレ
driver.navigate.to "http://2chb.net/r/tech/1597362675/1";

element = driver.find_element( :css => ".formbody textarea" )
element.send_key "あい"

driver.find_element( :css => ".formbody input.submitbtn" ).click

702700 (ワッチョイ 1f2c-1yu9)2020/08/19(水) 09:15:13.90ID:w/3evjlx0
>>701
の続きに、以下を書くと、確認画面に切り替わった後の処理も、できる

単に、input[type=submit] のボタンを待つと、
遷移前後の両方のページで、ヒットするので、
確認画面に切り替わったかどうか、判別できない

遷移後のページだけに存在する、要素を待てば、
それが出現するまで、wait できるかも

sleep 7

# 確認画面が出る。https://mevius.5ch.net/test/bbs.cgi
puts driver.current_url # 切り替わったかどうか、URL を表示する

# ボタンのラベルを表示する
puts driver.find_element( :css => "input[type=submit]" ).attribute( "value" )

703デフォルトの名無しさん (ワッチョイ 1f6a-RTUg)2020/08/19(水) 10:10:18.21ID:jdryYSd80
>>700さんのリンク先参考に見よう見まねでとりあえずやってみたんですけど、いまいちcookie_jarとかよくわからない・・・

require 'mechanize'
require 'yaml'

agent = Mechanize.new
agent.user_agent_alias = "Windows Mozilla"
agent.get('http://2chb.net/r/tech/1578068134/l50')
cookie_str = agent.cookies.map{|e| e.set_cookie_value}.join(", ")
#puts cookie_str

agent2 = Mechanize.new
HTTP::Cookie.parse(cookie_str, "http://2chb.net/r/tech/1578068134/l50";).each{ |cookie| agent2.cookie_jar << cookie }

cookie_yml = agent.cookies.map{ |e| e.to_yaml }.join
#puts cookie_yml

agent2.cookie_jar << YAML.load(cookie_yml)

#pp agent2.cookie_jar

agent2.user_agent_alias = "Windows Mozilla"
page = agent2.get('http://2chb.net/r/tech/1578068134/l50')


form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')
form.field_with(:name=>'MESSAGE').value = 'テスト'
next_page = agent2.submit(form)
form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')

704デフォルトの名無しさん (ワッチョイ 1f6a-RTUg)2020/08/19(水) 10:13:04.91ID:jdryYSd80
agent2.submit(form2)

705700 (ワッチョイ 1f2c-1yu9)2020/08/19(水) 10:21:48.83ID:w/3evjlx0
そりゃ、個別のページのクッキーを解析したり、大変だよ。
お金をもらえる訳でもないのに、他人が作ったシステムを分析するのは

それが嫌だから、漏れらは、selenium webdriver で、ブラウザにやらせる。
入力したり、ボタンを押したり、ブラウザを操作するだけだから、まだマシ

706700 (ワッチョイ 1f2c-1yu9)2020/08/19(水) 10:32:07.88ID:w/3evjlx0
>>703
>form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')

>form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')

これらには、https: とか、付いていないけど、動くの?

707700 (ワッチョイ 1f2c-1yu9)2020/08/19(水) 10:38:39.32ID:w/3evjlx0
簡単に言えば、serialize と同じなんだろう。
異なるアプリに、Ruby のオブジェクトを渡せない

1 などの数値も、"1" みたいな文字列になってしまうのだろう。
すべての型情報が無くなって、文字列になる。
だから、YAML.load とかを、使っているのだろう

今なら、JSON を使う事が多い

708デフォルトの名無しさん (ワッチョイ 1f6a-Mhwj)2020/08/19(水) 14:06:31.62ID:jdryYSd80
agent.getの時点でcookieの情報って得られてるんですね

709デフォルトの名無しさん (ワッチョイ 1f6a-Mhwj)2020/08/19(水) 14:20:11.51ID:jdryYSd80
>>705
seleniumはブラウザ操作でmechanizeはhttp解析?みたいな感じですか?

710デフォルトの名無しさん (ワッチョイ 1f35-6L5+)2020/08/19(水) 20:08:35.13ID:JONuvCWb0
>>689
よく調べたわけじゃ無いけど、
CSRF, クロスサイトリクエストフォージェリ、サイバー攻撃の一種対策されてるんじゃないかなぁ。

つまり、何某かのTokenが5chから送られていて、そいつをPOSTしないといけないとか。

5chのサイトからPOSTする時には、<input type=“hidden” value=“Token” name=“CSRF対策”>とかのタグがあって、Submitと共に自動送信される。

711700 (ワッチョイ 1f2c-1yu9)2020/08/19(水) 22:43:49.56ID:w/3evjlx0
プログラム板のtest スレと、その確認画面は、どちらも、mevius.5ch.net だから、
クロスドメインアクセスにはならない

ただ、HTML は本来、1回限りのアクセスで、前後のページには関係がない。
それを関係があるようにするために、ブラウザのクッキーを使って、セッションを結ぶ

こういうセッションがあるものは難しい。
5ch 側は仕様を知っているけど、分析する方は、仕様を知らないから、
ずっと他人のアプリを解析しなければならない

漏れは、解析するのが面倒だから、selenium webdriver を使って、ブラウザにやらす。
ただ、これはブラウザの操作でも、難しい

クッキーが無ければ確認画面が出て、有れば確認画面が出ない。
こういう条件判断をしないといけないから、難しい

Ruby on Rails でも、システムテストには、Capybara を使うけど、
これは、seleniumで、Headless Chrome を使っている

他人のアプリの解析は、HTML ヘッダーなどを分析しないといけないから、かなり難しい。
スクレイピングをやってる香具師で、こういうのを知ってる香具師は、まずいない。
HTMLヘッダーなんて、無数の項目があるから

712700 (ワッチョイ 1f2c-1yu9)2020/08/19(水) 22:57:07.95ID:w/3evjlx0
たぶん、Mechanizeは、Nokogiri みたいなものなんだろう

その時点のHTML を取得するだけ。
ちょっとした、GET, POST などは、出来るけど

JavaScript, Ajax で動的にページを作ったものには、対応できないとか

713デフォルトの名無しさん (ワッチョイ 1f35-6L5+)2020/08/20(木) 06:07:11.62ID:5ApdpCMn0
>>712
MechanizeはServerから受け取ったCookieを返すよ。

だから、POSTしたパラメータに問題があって上手くいかないのだ。

書き込み画面のHTMLからinputタグをscrapingしてhidden属性の付いてるのを探す事が先決。

見つかったらそのname, valueを取り出してPOSTパラメータへセットしてやれば良い。

714デフォルトの名無しさん (ワッチョイ 1f35-6L5+)2020/08/20(木) 06:08:32.79ID:5ApdpCMn0
seleniumが簡単だが、動作が重い。
Mechanizeでがんばれ!

715デフォルトの名無しさん (ワッチョイ 1f35-6L5+)2020/08/20(木) 06:38:17.41ID:5ApdpCMn0
>>687
これは違う!

外部・CP932 → Ruby内部・CP932 → 外部・CP932

が正解。
Ruby内部は、外部・CP932であればCP932だし、UTF-8なら、それに合わせて、Ruby内部・UTF-8なのだ。

716デフォルトの名無しさん (ワッチョイ 1f35-6L5+)2020/08/20(木) 06:39:16.98ID:5ApdpCMn0
>>708
agent.cookies

717デフォルトの名無しさん (ワッチョイ 1f35-6L5+)2020/08/20(木) 07:05:48.71ID:5ApdpCMn0
大抵のWebサイトのFormは、Formを表示したBrowserからしか、POSTできない様になっている。

その仕組みは、ServerがFormを表示するするHTMLを生成する時に、Tokenを埋め込み、そのTokenが帰って来なかったPOSTを弾くと言うものだ。

TokenはFormが表示されるごとに変更さる。(one time Token)

https://html-coding.co.jp/knowhow/security/csrf/

718700 (ワッチョイ 1f2c-1yu9)2020/08/20(木) 07:13:47.07ID:nWR09WFB0
Rails にもある、CSRF のセキュリティー・トークンとかか?

2つのページが、同じセッションと判別できるような、仕組みを探さないといけない。
他人が作った、アプリを解析するのは大変

719デフォルトの名無しさん (ワッチョイ 1f35-6L5+)2020/08/20(木) 07:53:19.33ID:5ApdpCMn0
>>718
違うんだなぁ。
RubyプログラムがいきなりPOSTしても成功しない。
一旦Form画面をScrapingすれば良いのだ。

720デフォルトの名無しさん (ワッチョイ 9f14-YpYZ)2020/08/20(木) 09:46:21.48ID:Myo84Br30
>>715
それも違う。RubyはUnicode対応で作られてる
だから内部もUnicode
Windows側からUTF16で渡された場合はUnicodeで受け取るし
ANSIで渡された場合はUnicodeに変換して処理する
出力する場合はその反対

721デフォルトの名無しさん (ワッチョイ 1f2c-1yu9)2020/08/20(木) 10:42:37.67ID:nWR09WFB0
Ruby の文字列は、混在できる

ある文字列は、CP932 で、
別の文字列は、UTF-8 とか

何もしなければ、変換されない

722デフォルトの名無しさん (ワッチョイ ff7d-hMmK)2020/08/20(木) 11:13:11.83ID:FC2EZr4O0
>>719
kan = [
"\xE6\xBC\xA2\xE5\xAD\x97".force_encoding( Encoding::UTF_8 ),
"\x8A\xBF\x8E\x9A".force_encoding( Encoding::CP932 ),
"\xB4\xC1\xBB\xFA".force_encoding( Encoding::EUC_JP ),
"\x1B\x24B4A;z\x1B(B".force_encoding( Encoding::ISO2022_JP )
]
puts kan
kan.combination(2){ |a,b| p a == b }
kan.size.times{|n| puts kan.inject(''){|r,s| r << s.encode(kan[n].encoding) } }
puts kan.map{|s| s.encoding }

723デフォルトの名無しさん (ワッチョイ 7f01-08ML)2020/08/20(木) 12:03:56.57ID:tyNv301J0
>>715,720
君たちまずマニュアルを読もうか
https://docs.ruby-lang.org/en/2.7.0/Encoding.html

724デフォルトの名無しさん (ワッチョイ 9f33-KILr)2020/08/20(木) 13:07:43.70ID:UjCnOWKd0
>>718
解析が大変かどうかはものによる。
セッションIDベースのWebアプリならともかく、ログインなしの掲示板なら大したことはないやろ。

725デフォルトの名無しさん (ワッチョイ ff8c-rgzE)2020/08/20(木) 22:50:29.80ID:Uplnh7Gz0
>>720 変換はせんだろ

726デフォルトの名無しさん (ワッチョイ 1f61-VqLe)2020/08/21(金) 01:31:14.88ID:SPVvFNrm0
Rubyをしばらく使ってきたが、やっぱり、ブロックの最後がendであることや、
0,1が共に真であること、複数行コメントが書きにくいこと、
構造体の書き方が new Person ではなく、Person.newであること、
Directory関連でワイルドカードを使うと、関連フォルダを全て変数に読み込んでから
動作し始めること、などが使いにくいので、node.jsに乗り換えようかなと思ってる。
Rubyが良い点は、それらの機能は使ったことは無いけど、
・最初から用意されているメソッド群でmethodチェーンが書けること。
・ブロック関数が書けること。
かな。
でも、使ったことがないということは、優先順位が低いと言うことではなかろうか。

727デフォルトの名無しさん (ワッチョイ 9f33-KILr)2020/08/21(金) 10:50:02.63ID:w5e9p4kz0
え。
そんな調子だと何を使ってもダメそう。w

728デフォルトの名無しさん (ワッチョイ 1f61-VqLe)2020/08/21(金) 13:05:57.88ID:SPVvFNrm0
>>727
個人的には、実世界では、能力はかなり高いと評価されているけれど。

729デフォルトの名無しさん (ワッチョイ 1f2c-1yu9)2020/08/21(金) 14:15:07.59ID:tDzk/wNZ0
0, 0.0, 空文字列、空配列、空辞書など、
各型に、偽がある言語は、バグる

Ruby の偽は、nil, false だけ

MISRA-C でも、( a ) みたいに、単独の数値型の変数で、真偽値を表すのは禁止されてる。
0 なら偽として使う方法

Ruby で、if ( b ) みたいに書けるのは、nil の時だけ偽だから。
0, 0.0, 空文字列、空配列、空辞書などでも真

または、b がbool 型の場合

730デフォルトの名無しさん (エムゾネ FF9f-fHWV)2020/08/21(金) 14:31:29.79ID:2LaXNW9iF
nil == false
は false

731デフォルトの名無しさん (ワッチョイ 9f33-KILr)2020/08/21(金) 14:33:13.81ID:w5e9p4kz0
>>728
相対評価は、まわりのレベルがわからんので、なんとも。
元コメから判断すると、周辺まるごと低いのかな?と思わざるを得ない。w

まあ、たまたま自分が使ってない特定機能をアレコレ言うのはアホに見えるのはたしか。

732デフォルトの名無しさん (ワッチョイ 9f33-KILr)2020/08/21(金) 14:35:00.79ID:w5e9p4kz0
>>729
型のないRubyでそんなことを言われても。w
そんなの、たいした違いじゃないよ?

733デフォルトの名無しさん (ワッチョイ 1f61-VqLe)2020/08/21(金) 14:49:57.72ID:SPVvFNrm0
>>731
そんなことない。
非常に上層のごく一部の人しか入れないところだと言われている。

734デフォルトの名無しさん (エムゾネ FF9f-fHWV)2020/08/21(金) 15:22:52.16ID:2LaXNW9iF
スキンのひとか

735デフォルトの名無しさん (JP 0H7f-08ol)2020/08/21(金) 15:35:51.23ID:dYZcDjdTH
学術の巨大掲示板群 - アルファ・ラボ http://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

VM + ASM を書いた (C#, DX) * x86 ではない!
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ

VM + ASM のダウンロード
http://up.x0000.net/files/TSimulang.zip

736デフォルトの名無しさん (オッペケ Sr73-YieA)2020/08/22(土) 00:05:39.01ID:cH1OO8njr
「実世界では、能力はかなり高いと評価されている」っていう言い回しが最高に知性を感じないんですけど
いや煽りとかじゃなくマジで

737デフォルトの名無しさん (ワッチョイ 9f14-YpYZ)2020/08/22(土) 00:13:16.02ID:rn2pygew0
異世界では無双している

738デフォルトの名無しさん (ワッチョイ 9f33-KILr)2020/08/22(土) 02:33:00.24ID:orN/hav20
>>736
非常に上層のごく一部の人しか入れないんだぞ!

739デフォルトの名無しさん (ワッチョイ ff8c-IEoI)2020/08/22(土) 08:20:46.05ID:lfF/bqLu0
非情に上層のごく一部の人しか入れないんだぞ!

740デフォルトの名無しさん (ワッチョイ 7f52-Qb6H)2020/08/22(土) 08:46:37.28ID:j5SL9Fsb0
>>736
あんまりちゃんと人と会話したりまともな本とかは読んだことがなくて、丁寧にかつちょっとカッコつけて話そうとしたらラノベとかで覚えた変な言い回ししか出てこなかった、と予想してみる

741デフォルトの名無しさん (ワッチョイ ffbb-ZIaG)2020/08/22(土) 15:31:25.70ID:rjSk5doP0
まあ、能力の高いっていうそこのお方は、Youtubeで流行ってる学歴ジャンケンでもして能力を示した方がいいんじゃん?
学歴だけが能力を示すものじゃないにしても、能力がどうの言い張るだけよりずっとマシだし、おおよその実力が周りの人も推定できるだろうからいいぜ!

742デフォルトの名無しさん (ワッチョイ ad61-CCZD)2020/09/01(火) 22:10:17.03ID:vLz2GEqc0
Rubyは、node.jsに比べて、ファイル出力のメソッド名が短いので楽。
fp=File.open("filename","w");
fp.print( "nanigshi=#{変数名}\n" );
みたいに書ける。node.jsだと、
fd = fs.openSync("filename", "w");
fs.writeSync(fd, `nanigshi=${変数名}\n` );
となり、キーワードが長い。逆引用符`が打ち込みにくいという
欠点も有る。

743デフォルトの名無しさん (オッペケ Sr51-eS8N)2020/09/01(火) 22:45:30.43ID:Bhx0z62Fr
US配列なら楽だぞ

744デフォルトの名無しさん (ワッチョイ 5133-ZYZO)2020/09/01(火) 22:58:40.10ID:JyDU62SB0
>>742
「Sync」をあえて表現してるんやろ。
ポリシーの問題。

745デフォルトの名無しさん (ワッチョイ c9e6-8BP0)2020/09/01(火) 23:33:04.32ID:knLE24Nq0
ブロックと;省略で
File.open("filename","w") { |file| puts "nanigshi=#{変数名}" )
みたいに書くのがRubyっぽくない?

746デフォルトの名無しさん (ワッチョイ bf8c-9HBf)2020/09/02(水) 02:02:43.13ID:0/6Ab1gT0
クローズしちゃうだろ

747デフォルトの名無しさん (ワッチョイ e761-vnqX)2020/09/02(水) 15:16:44.13ID:Wngy4TOD0
>>744
でも、コンピュータ黎明期の非常に古くから open, write は、同期的だったの
だから、互換性を考えれば、逆さまにしたのは問題。

748デフォルトの名無しさん (ワッチョイ e761-vnqX)2020/09/02(水) 15:21:09.21ID:Wngy4TOD0
open, writeといえば、Unix/Linux/Windows/Macでも動作がほぼ同じな
非常に大事なもので、特にUnix/Linuxでは、「全てがファイル」という設計
思想であり、その根幹を成すのが、これらの関数で、あらゆる概念の基礎と
なっているので、その動作を変更するのはあらゆる場所に悪影響を及ぼす。
Unix系では、OSの動作の90%以上が、open, writeに依存した設計に
なっているといってもかごんでは無いくらい、基礎中の基礎。
その動作を変更することは、自然法則を変更するくらい驚天動地の試み。
重力が引力ではなく斥力になってしまうくらいで、太陽も惑星も存在し得ない
位の結果となる。

749デフォルトの名無しさん (ワッチョイ 4733-XuvI)2020/09/02(水) 15:57:35.42ID:iCfAZPhu0
>>747
Cとの互換性がー、とか非同期重視のアグレッシブなNode.jsに言うの?w

750デフォルトの名無しさん (ワッチョイ 7f14-XrX+)2020/09/02(水) 16:53:35.95ID:X9xcF9vI0
>>748
でもネットワークはファイルじゃないんですよ
全てがファイルという設計と言っても
その程度のものなんです。

751デフォルトの名無しさん (ワッチョイ e761-vnqX)2020/09/02(水) 17:55:27.42ID:Wngy4TOD0
>>749
Cとの互換性というより、UnixやWindowsなどのあらゆるOSの基礎の部分との
互換性。
それくらい、open, writeは、OSの基礎に根ざしていて、勝手に働きを変えるべき
じゃない。
働きを変えたいなら、変えた方の関数の名前を少し変えるべき。
それで十分なのに、名前と働きをさかさまにしてはいけなかった。

752デフォルトの名無しさん (ワッチョイ bf8c-9HBf)2020/09/02(水) 18:19:28.61ID:0/6Ab1gT0
rubyInstallerでruby 2.7入れたんだがirbのレスポンスがめちゃくちゃ遅くて
かなりゆっくりキーボード入力しても入力を取りこぼすんだけど
速くする方法ありませんか?

753デフォルトの名無しさん (ワッチョイ 4733-XuvI)2020/09/02(水) 21:47:08.53ID:iCfAZPhu0
>>751
いちいちAsyncをつけろというのか?
Node.jsのポリシーにあわんやろ。
郷に入っては郷に従え。

オレも知らんけど。w

754デフォルトの名無しさん (アウウィフ FF8b-th+2)2020/09/03(木) 10:05:34.13ID:DK3Ul6vKF
Sync.js

755デフォルトの名無しさん (ワッチョイ 272c-3NJ+)2020/09/04(金) 00:42:11.02ID:Wl7qFIBb0
Node.js は非同期が基本。
Windows では、50ms 以上掛かるものは、非同期にするのが基本

>>752
irb とか、そんな面倒なものは使わない

VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる

756デフォルトの名無しさん (ワッチョイ bf8c-9HBf)2020/09/04(金) 03:38:08.87ID:Akgzavid0
VSCodeでCode Runnerね。オーケーオーケー

757デフォルトの名無しさん (ワッチョイ 8714-XrX+)2020/09/04(金) 05:36:12.08ID:ovAJuzA/0
穴ほって埋めるやつか

758デフォルトの名無しさん (ワッチョイ 4733-XuvI)2020/09/04(金) 10:18:21.30ID:icCvRHhg0
平安京エイリアンか。

759デフォルトの名無しさん (ワッチョイ 272c-3NJ+)2020/09/05(土) 22:17:01.41ID:dAk5cbFF0
エンジニアチャンネル粟島、9/4

プログラミングでYouTube動画の編集作業を自動化する

@YouTube



プログラミングで、自動的に無音部分をカットして、動画をつなげる。
Python で作ってる

皆、何時間も掛かって編集しているから、
誰か、Ruby で作って、公開しろ

粟島に、スーパー・プログラマーの称号を独り占めさせるのは、癪にさわる

760デフォルトの名無しさん (アウウィフ FF8b-th+2)2020/09/06(日) 14:32:01.97ID:pKWvrGW4F
ffmpeg 呼んでるだけだから ruby で同じことすればいいだけ
そもそも youtube の web 上の作業を自動化するのかと思ったらそうでもないし
誤解を招く

761759 (ワッチョイ 272c-3NJ+)2020/09/07(月) 11:58:27.72ID:IF51aHwX0
粟島に、敵対心むき出しの、凡才プログラマーKBOY に教えてやったら?

エンジニアチャンネル粟島

【検証】現役プログラマーは30万円の案件を何時間で出来るのか?

@YouTube



YouTube API で、指定条件に当てはまる、動画を集める(filtering)のを、Ruby で、1時間で作った。
つまり、時給30万円!

これも最終的に、30人が応募して、数千円になったらしいがw

762デフォルトの名無しさん (エムゾネ FF7f-j7FC)2020/09/07(月) 12:03:06.35ID:K0kNn/CsF
闇サイトのバイトか

763デフォルトの名無しさん (ワッチョイ 4b2c-8GNv)2020/09/23(水) 01:34:43.74ID:vUEpR4nB0
エンジニアチャンネル・小川

【悪用厳禁】Amazonの価格を監視するシステムを作ってみた

@YouTube



Amazon のAPI を使って、価格を監視して、LINE へ通知する

764デフォルトの名無しさん (ワッチョイ 6fda-AsQc)2020/09/28(月) 08:01:27.35ID:ZnjqOblj0
このサイトIRB代わりに使ってたんですがバージョン2.1.5とめっちゃ古いです
ライブコーディング?機能のついた同種のサイトってないですか
http://fatiherikli.github.io/fil/#eyJwYXRoIjoiSVJCLnJiIiwic291cmNlIjoicCBSVUJZX1ZFUlNJT04ifQ==

765デフォルトの名無しさん (ワッチョイ d32c-G8Sl)2020/10/01(木) 08:39:12.41ID:theiHz1p0
JSON ファイルの中身が、下のようなユニコード・コードポイントの表示が多くて、読めない

{{\u30ab\u30ec\u30f3\u30c0\u30fc 10\u6708}}

ファイルを丸ごと読めるように、変換する方法を教えて!

766デフォルトの名無しさん (ワッチョイ d32c-G8Sl)2020/10/01(木) 08:49:16.51ID:theiHz1p0
>>764
paiza.jp は比較的、新しいバージョンだったと思う

puts RUBY_VERSION
と入力してみ

767デフォルトの名無しさん (オッペケ Sr47-VYpw)2020/10/01(木) 21:03:03.13ID:BMjHKKQ5r
>>764
そもそものopalのサイト使えば?
https://opalrb.com/try/

>>765
標準出力に出力すれば?

768765 (ワッチョイ d32c-G8Sl)2020/10/01(木) 22:25:46.66ID:theiHz1p0
JSON ファイルをcat しても、変換されませんでした!

普通の英数字と、\u6708 みたいな文字が混じっているファイルです

769デフォルトの名無しさん (ラクッペペ MM7f-0zgZ)2020/10/02(金) 09:07:20.78ID:ugOoTtJuM
matlabでのfiltfilt()のように、ゼロ位相デジタルフィルター処理ができる関数はなんでしょうか

770デフォルトの名無しさん (ラクッペペ MM7f-0zgZ)2020/10/02(金) 11:29:50.32ID:36KHjBX6M
すみませんでした

771765 (ワッチョイ d32c-IT45)2020/10/03(土) 07:39:23.69ID:/wA+nWqo0
c@at input.json | pe@rl -@Xpne 's/\\u([0-9a-fA-F]{4})/c@hr(h@ex($1))/eg'
(投稿できないので、@を入れました)
で、日本語で表示されました!

これを、Ruby では、どう書きますか?
正規表現で、\u6708 みたいな文字を、どう変換するの?

772デフォルトの名無しさん (ワッチョイ 3361-VW09)2020/10/03(土) 09:17:06.76ID:DiO6Np8S0
Rubyだと、正規表現にマッチした部分を引数にして関数に渡してくれる
メソッドが有る筈だから、それを使えば出来るはず。

773デフォルトの名無しさん (ワッチョイ b37c-gW4a)2020/10/03(土) 09:27:06.27ID:F7oAx4CC0
-Ks -Ke -Ku があるから -Kw もあるはずだろう(驚き最小)

774デフォルトの名無しさん (ワッチョイ 3361-VW09)2020/10/03(土) 09:32:00.87ID:DiO6Np8S0
>>771
以下のようにすれば、\uXXXX の部分を unicode コードとして文字に直した後のテキストが
標準出力に出力されるのではないかと思われる。
なお、試して無いので実際に動くかどうかは分からない。
$1.to_i(16)は、$1 に入っている文字列を 16進数とみなして整数値に直しているつもり。
x.chr は、数値 x を文字コードとして対応する文字に直しているつもり。
gsub は、正規表現に合致した部分を後続のブロックの中の $1 に入れて、結果に
置換しているつもり。

[test.rb]

strJson = JSONを読み込んだ文字列;

print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr } );

775デフォルトの名無しさん (オッペケ Sr47-VYpw)2020/10/03(土) 09:45:21.01ID:MOu6VxbMr
そういうことならJSON.load使えば?

require 'json'
JSON.load(fname)

愚直にやるならArray#packを使いましょう。

str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}

776デフォルトの名無しさん (ワッチョイ 3361-VW09)2020/10/03(土) 10:47:42.33ID:DiO6Np8S0
>>774
間違いがあった。正しくは、
print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr("UTF-8") } );

777デフォルトの名無しさん (ワッチョイ 3361-VW09)2020/10/03(土) 10:58:07.83ID:DiO6Np8S0
"UTF-8"ではなくて、"UTF16-BE"か、"UTF16-LE"かも知れない。
試して上手く行くのを選んで欲しい。

778765 (ワッチョイ d32c-IT45)2020/10/03(土) 11:41:59.34ID:/wA+nWqo0
>>775
>>776
でも、正常に動きました。ありがとう。
JSON.load で、自動的に読めるようになるのが便利

require 'json'

json = File.read( "input.json" )
p JSON.load( json )

p json.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}

print( json.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr("UTF-8") } );

779デフォルトの名無しさん (ワッチョイ ff01-ZVjj)2020/10/03(土) 12:38:03.63ID:1IyBCfpu0
👨‍👩‍👧‍👦1コードポイント1文字とは限らないし¥uの後は4桁とは限らないよね👨

780765 (ワッチョイ d32c-IT45)2020/10/03(土) 13:09:59.31ID:/wA+nWqo0
それなら、単純な正規表現では、ダメ。
実際に存在する、コードポイントを調べないといけない

ひょっとしたら、JSON.load は、それに対応しているかも

781デフォルトの名無しさん (ワッチョイ 3361-VW09)2020/10/04(日) 15:56:43.31ID:P8Zgc9xR0
>>780
全ての文字を utf16 に変換してから、utf8に再変換すればいい気がする。
第一段階の変換で、ついでに \uXXXX の部分を 単純に 16BIT 整数に直せばいいはず。

782765 (ワッチョイ d32c-IT45)2020/10/05(月) 01:16:19.79ID:z7kgQPv30
\u は、4・8桁の2種類あるのか?

783765 (ワッチョイ d32c-IT45)2020/10/05(月) 08:08:05.24ID:z7kgQPv30
👨‍👩‍👧‍👦 は、4つの文字が連結したような感じ

\uD83D\uDC68\u200D
\uD83D\uDC69\u200D
\uD83D\uDC67\u200D
\uD83D\uDC66

\U0001F468\U0000200D
\U0001F469\U0000200D
\U0001F467\U0000200D
\U0001F466

\u{1F468}\u{200D}
\u{1F469}\u{200D}
\u{1F467}\u{200D}
\u{1F466}

784デフォルトの名無しさん (ワッチョイ b37c-N+m6)2020/10/05(月) 10:14:21.95ID:H6rSrLtq0
もう ruby 関係無いだろ
良い加減消えろ

推奨スレ
2chb.net/r/tech/1545032904/
2chb.net/r/tech/1593777227/

785デフォルトの名無しさん (ワッチョイ 672c-JAxH)2020/10/11(日) 00:59:43.22ID:B+MSoWxK0
( line, ary ), line_num
この( ) をなくすと、エラーになる

TEXT = <<'EOT'
a
b
EOT

line_numbers = TEXT.each_line.with_object( [ ] ).with_index( 1 ) do | ( line, ary ), line_num | # 各行・蓄積変数・行番号
ary.push( line_num )
puts "#{ line_num } : #{ line }"
end

p line_numbers

出力
1 : a
2 : b
[1, 2]

786デフォルトの名無しさん (オッペケ Sr03-EsYS)2020/10/11(日) 18:44:20.92ID:vt3DXswMr
>>785
仕様通りです

787デフォルトの名無しさん (ワッチョイ c308-8Ti4)2020/10/13(火) 15:52:15.31ID:Iy+8ZYjV0
初心者です
Windows10でrubyのバージョンは2.4です
gets.chompで日本語の文字列を入力しprintで出力したら文字化けするのですがどうしたら治りますか?

788デフォルトの名無しさん (ワッチョイ 672c-JAxH)2020/10/13(火) 16:24:17.23ID:y5Oy6HcC0
漏れは、WSL, Ubuntu 18.04 を使っているけど、
Ruby Installer のMSYS 2 かい?

日本語入力が難しい

ファイルか、端末の文字コードの設定だろう。
BOM 無しUTF-8(UTF-8N)

ユーザー環境変数に、RUBYOPT を作って、--encoding=UTF-8 を設定するとか。
ただし、irb が、コマンドプロンプトでは使えなくなるので、
PowerShell しか使えなくなる

VSCode の拡張機能、Code Runner で、
選択したコード片、またはファイル全体を実行できる

これで、irbは使わなくてもよいけど、デバッグで、pry が使えなくなるかも。
pry は、irbを使っているのかも?

789788 (ワッチョイ 672c-JAxH)2020/10/13(火) 16:34:59.69ID:y5Oy6HcC0
2020-10-06
RubyInstaller 2.7.2-1, 2.6.6-2 and 2.5.8-2 released

Windows では最新版を避けて、2.6.6-2 を使えば?

漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト

anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える

790788 (ワッチョイ 672c-JAxH)2020/10/13(火) 16:44:54.23ID:y5Oy6HcC0
Windows 版Ruby の日本語入力では、

コマンドプロンプトよりも、
PowerShell を使う方が良いのかも?

日本語出力は問題ない。
もし、フォントがかすれて表示されたら、バグっているけど

791788 (ワッチョイ 672c-JAxH)2020/10/13(火) 16:56:07.22ID:y5Oy6HcC0
>>788
修正

>ユーザー環境変数に、RUBYOPT を作って、--encoding=UTF-8 を設定するとか。
>ただし、irb が、コマンドプロンプトでは使えなくなるので、
>PowerShell しか使えなくなる

RUBYOPT に、--encoding=UTF-8 を設定すると、
コマンドプロンプト・PowerShell の両方で、irbが起動しなくなる

C:/Ruby25-x64/lib/ruby/site_ruby/rbreadline.rb:6135:in `delete': invalid byte sequence in UTF-8

コマンドプロンプト・PowerShell の文字コードの設定で、使えるようになるのかな?
漏れは、VSCode, Code Runner を使っているから、irbを使っていない

792デフォルトの名無しさん (ワッチョイ ee7d-gNG7)2020/10/13(火) 17:01:18.58ID:v339nyYs0
>>787
ridk use で切り替えられるから最新版を試すと良い
このへんの問題も改善されてたはず

793788 (ワッチョイ 672c-JAxH)2020/10/13(火) 17:05:42.76ID:y5Oy6HcC0
RUBYOPT に、--encoding=UTF-8 を設定すると、

コマンドプロンプト・PowerShell の文字コードの設定で、
chcp 65001
と入力したが、どちらもエラーで、irbが起動しない

でも、irbを使わなければ、
RUBYOPT に設定するのは、便利なんだけど

794788 (ワッチョイ 672c-JAxH)2020/10/13(火) 17:09:23.25ID:y5Oy6HcC0
>>792
ほう

795デフォルトの名無しさん (ワッチョイ c308-8Ti4)2020/10/13(火) 17:24:55.62ID:Iy+8ZYjV0
みんなありがとうございます
環境変数って編集したら再起動しないといけないとかありますか?

796788 (ワッチョイ 672c-JAxH)2020/10/13(火) 17:43:39.31ID:y5Oy6HcC0
OS の再起動は、いらないと思う。
Ruby の再起動だけで良いと思う

PowerShell で、以下を入力して、正しく設定されたか、確認してみ
ls env:

797デフォルトの名無しさん (オッペケ Sr03-EsYS)2020/10/13(火) 19:42:36.62ID:MMOmBqSMr
pryがirb使ってるわけないじゃん。(「irb使う」ってのもよくわからんが)
readlineのライブラリがマルチバイト未対応なだけだから
日本語扱うならnoreadlineで起動すればいいよ。

798788 (ワッチョイ 5b2c-F9zC)2020/10/14(水) 05:06:57.79ID:z5Uy/Vd30
pry, rails console を起動すると、irb が起動されるのかな? と思っていた。
画面が似てるでしょ?

例えば、Windows 10, WSL, Ubuntu 18.04 を起動すると、
コマンドプロンプトと同じ画面が起動される

そういうのと同じなのかな? と思って

799デフォルトの名無しさん (ワッチョイ 2b08-TJC9)2020/10/14(水) 08:31:15.20ID:kgj1R+5V0
RUBYPORT変えてやってみたけどだめでした.
コマンドプロンプトとPowerShellは両方文字化けします.
bash on Windowsだと問題なく動きます. 学校で配布された教材がコマンドプロンプトしか使っておらず, 与えられたサンプルプログラムはバージョン2.4以下じゃないと動かないらしいです. 留年しそう.

800788 (ワッチョイ 5b2c-F9zC)2020/10/14(水) 09:58:02.17ID:z5Uy/Vd30
>RUBYPORT
RUBYOPT だよ。
ユーザー環境変数に、RUBYOPT に、--encoding=UTF-8 を設定する

PowerShell で、以下を入力して、正しく設定されたか、確認してみ
ls env:

irb さえ使わなければ、文字化けしないはず!

たぶん、ファイルの設定だろう。
sjis・CP932 じゃなく、BOM 無しUTF-8(UTF-8N)

それで、PowerShell から「ruby a.rb」などで実行できるはず。

または、VSCode のCode Runner でも出来る。
ただし、Code-runnerの設定ファイルで、File Directory As Cwd をチェックしておく

801デフォルトの名無しさん (ワッチョイ 4b33-bACO)2020/10/14(水) 10:01:17.73ID:rQGDkRcC0
学校での話なら、友達か先生かに聞けよ。

802788 (ワッチョイ 5b2c-F9zC)2020/10/14(水) 10:07:17.92ID:z5Uy/Vd30
ただし、RUBYOPT に、--encoding=UTF-8 を設定した場合、
chcp はデフォルトの、CP932 のままにしておく!
65001 にしない

コマンドプロンプト・PowerShell で、chcp と入力してみ

803788 (ワッチョイ 5b2c-n+7I)2020/10/14(水) 10:21:16.97ID:z5Uy/Vd30
>>802
修正

>chcp はデフォルトの、CP932 のままにしておく!
>65001 にしない

RUBYOPT に、--encoding=UTF-8 を設定した場合、
CP932/65001 のどちらでも、文字化けしない。正常に動く

804デフォルトの名無しさん (ワッチョイ 2b08-TJC9)2020/10/14(水) 11:42:15.98ID:kgj1R+5V0
>>803
ごめん!RUBYOPT変えた!
ファイルの設定ってプログラム書いてるテキストファイルの設定ってことですか?どうやって変えるのでしょうか? 一応Rubyopt変えただけだと文字化けしちゃってchcp 65001って実行してプログラム起動させたらコマンドプロンプトは落ちちゃった. PowerShellはもう日本語全部文字化けしちゃった

805788 (ワッチョイ 5b2c-F9zC)2020/10/14(水) 12:29:05.96ID:z5Uy/Vd30
たぶん、エディタの文字コードの設定メニューあたりから、
BOM 無しUTF-8(UTF-8N)に設定する

一番よいのは、VSCode で、Code Runner を使う

806デフォルトの名無しさん (オッペケ Sr0f-7/+M)2020/10/14(水) 19:15:13.60ID:Y0U/d7P+r
>>799
noreadlineで起動すればいいって言ってんじゃん

807788 (ワッチョイ 5b2c-F9zC)2020/10/15(木) 06:56:58.31ID:7eWumHpU0
RUBYOPT に、--encoding=UTF-8 を設定すると、

irb --noreadline
で起動しても、エラーになる

808788 (ワッチョイ 5b2c-F9zC)2020/10/15(木) 07:13:17.57ID:7eWumHpU0
RUBYOPT に、--encoding=UTF-8 を設定すると、

irb --noreadline

irb -E UTF-8
irb -E Shift_JIS
で起動しても、エラーになる

809788 (ワッチョイ 5b2c-F9zC)2020/10/15(木) 07:32:54.02ID:7eWumHpU0
Windows では、RUBYOPT の、--encoding=UTF-8 と、irb は両立しない

irb を捨てて、VSCode のCode Runner を使う方がよい。
これで、選択したコード片、またはファイル全体を実行できる

その代わり、pry, rails console が使えなくなるかも?
よく分からないけど

810デフォルトの名無しさん (ワッチョイ bb5f-nsiV)2020/10/15(木) 14:56:39.44ID:FYvAP3o60
powershellじゃなくてレガシーコンソールのコマンドプロンプトを使わないとダメだったはず

811788 (ワッチョイ 5b2c-F9zC)2020/10/15(木) 15:46:22.07ID:7eWumHpU0
>>808
は、PowerShell・コマンドプロンプトのどちらでも、エラーになる

812デフォルトの名無しさん (ワッチョイ 7b61-8ZN/)2020/10/17(土) 14:09:06.36ID:cX3MrjsP0
4,000行ほどのRubyプログラムをnode.jsに乗り換えようと思ってましたが
やっぱりRubyの方が便利な気がしてきました。
JSはローカル変数がちゃんと作れることやapplyが使えること、ifブロックやコメントの書き方などが
好きだったんですが元々ブラウザ用だったせいかファイル関連が非同期推奨ですし
stdoutとfileの違いもちゃんと意識しないといけなくなっているようです。
ファイル関連のライブラリも非同期のみの対応の場合も多いようで、Rubyに比べると
使い勝手に問題が有りそうです。
スクリプト言語の目的は簡単にプログラムしたいことですが、node.jsよりRubyの方が
ファイル関連は簡単なようです。

813デフォルトの名無しさん (ワッチョイ 7b61-8ZN/)2020/10/18(日) 01:39:25.66ID:xeOKOt4d0
Rubyはちゃんとしたブロック変数が作りにくいことが欠点だと思っていたのですが
逆にnode.jsの場合、グローバル変数とローカル(ブロック)変数の違いが
最初の定義時にlet(またはvar)を書くかどうかだけで区別されており、
それはそれで危険な場面もあるように気付きました。
Rubyの場合は、先頭が$で始まる変数はグローバルになり、大文字で始まる変数は
グローバル定数になりますので、有る意味では安全ですし、命名規則としても
全てのプログラマで共通になりソースの分かり易さに貢献している可能性があります。
node.jsの場合、let文を書き忘れただけでグローバル変数になるのは原因不明の
バグが入り込む可能性を増やしている可能性があります。
また、Rubyは、system関数が便利です。
実際に使用してみた感想としてRubyは全体的に安定している印象を持ちましたが、
node.jsは、インストール時の一番大事な環境変数ですら自動設定されておらず、
プログラマー以外の人にプログラムを配布することは絶望的です。

814デフォルトの名無しさん (ワッチョイ 5b2c-UsEC)2020/10/18(日) 18:18:43.72ID:WlQf1Fni0
>最初の定義時に、let(またはvar)を書くかどうかだけで区別されており
VSCode ESLint とかで、チェックできるのでは?

Windows でも、50ms 以上掛かる、IO は非同期を推奨してるから、書きにくい

でも、Ruby on Rails 6 では、デフォルトで、Node.js, Webpack を使う

ただし、GUI はHTML, CSS/SASS, Bootstrap, JavaScript(JS)だけど、
サーバー側言語には、Rubyを使う

Rubyには最初から、C と同様、関数スコープがあった。
ES2015 で、JS にも出来たのかな?

815814 (ワッチョイ 5b2c-UsEC)2020/10/18(日) 18:30:15.98ID:WlQf1Fni0
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる

この2つ以外は、出てこない。
JavaScript, Python から始めろって絶対に言わない!

Python から始めてはいけないって言ってる。
「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】

KENTA は、10言語以上知っていて、
登録者数5万人、月千円のサロンが、2千人もいるから、
十分にヒアリングしてるし、どの言語が挫折確率が高いか、よく分かっている

816デフォルトの名無しさん (ワッチョイ db4e-T8Cx)2020/10/18(日) 18:36:30.11ID:xWXtsYNK0
KENTA「Rubyに拘泥する奴は伸びない。さっさと他の言語に進め」

817デフォルトの名無しさん (ワッチョイ fb33-bACO)2020/10/18(日) 19:10:33.77ID:Ie2s5K3J0
>>814
Cは、関数スコープというより、ブロックスコープ。
Rubyとは違う。

818デフォルトの名無しさん (ワッチョイ 6b01-ntOo)2020/10/18(日) 20:35:28.25ID:2aU6LfzH0
KENTA「C++を始めるべき」

819デフォルトの名無しさん (ワッチョイ 2922-9Kcm)2020/10/23(金) 17:32:28.92ID:iE1/WHvK0
VSCodeなどにHTMLのLivePreview機能がありますが、
erbのLivePreview対応アプリケーションってありますか?

820デフォルトの名無しさん (ワッチョイ 052c-9Kcm)2020/10/24(土) 08:32:09.72ID:PENdR3tu0
VSCode の拡張機能のLive Server では、Web Extension で、
PHP で作る動的ページも表示してるけど、ERB のやり方は分からない

https://chrome.google.com/webstore/detail/live-server-web-extension/fiegdmejfepffgpnejdinekhfieaogmj?hl=pt-BR

Rails 6 なら、webpack-dev-server が標準

821デフォルトの名無しさん (ワッチョイ 89e6-9Kcm)2020/10/24(土) 14:35:22.81ID:rBYTjNf90
>>820
ありがとうございます
webpack-dev-server 調べてみます

822デフォルトの名無しさん (ワッチョイ 2101-JqA3)2020/10/24(土) 21:01:22.94ID:ehonUome0
number = "0.072953"
float_number = number.to_f
bigdecimal_number = number.to_d

(1000 / float_number)
# => 13707.455485038312
(1000 / bigdecimal_number)
# => 0.13707455485038e5

1000.div(float_number)
# => 13707
1000.div(bigdecimal_number)
# => 13707

1000.fdiv(float_number)
# => 13707.455485038312
1000.fdiv(bigdecimal_number)
# => 2.22360747e-314

なぜ 1000.fdiv(bigdecimal_number) のときは 13707 台ではなく 2.2 e-314 になるの?
fdivの引数にdecimalは期待されていない?

823デフォルトの名無しさん (オッペケ Sr11-y5oF)2020/10/24(土) 21:05:37.26ID:xQuuF55sr
どっちも変わらん
p 100.fdiv(float_number) # => 1370.745548503831
p 100.fdiv(biddecimal_number) # => 1370.745548504

824デフォルトの名無しさん (ワッチョイ 654e-0r4w)2020/10/24(土) 21:19:23.51ID:6XNLJEFJ0
biddecimalwwwww

825デフォルトの名無しさん (ワッチョイ 2101-JqA3)2020/10/24(土) 21:23:11.77ID:ehonUome0
ありがとう
使ってるrubyのバージョンが低すぎるみたいだ

826デフォルトの名無しさん (ワッチョイ 654e-0r4w)2020/10/25(日) 09:56:38.85ID:/elpRfls0
rubyはバージョン上げると前動いたコードが動かないからな。
そこらへんの互換性はjs>>php>>>python>>>rubyみたいな感じ。
行き当たりバッタリで以前の仕様気にせず変える。

827デフォルトの名無しさん (ワッチョイ c201-45kF)2020/10/25(日) 10:48:16.22ID:M7kzCKlu0
>>826
phpは知らんけど
js >> ruby >>> python やろ

railsと違ってruby自体は後方互換性かなり高いぞ
CLI系なら10年以上前のものでもだいたい問題なく使える

pythonも言語自体は後方互換性高いが
バージョンごとにdeprecated/removedになるAPIはrubyよりずっと多い
それもあってメジャーなライブラリの新バージョン対応は遅くて
半年くらい待たないと言語の新しいバージョンを使えないし
言語の新バージョン + ライブラリの旧バージョンの組み合わせだと
動かなくなる率が高くてライブラリのAPI変更にも対応しないといけない

828デフォルトの名無しさん (ワッチョイ 654e-0r4w)2020/10/25(日) 11:02:35.93ID:/elpRfls0
確かにpythonは2系と3系は隔絶してるけどマイナーバージョンアップでブッ壊れるのはrubyだろ

829デフォルトの名無しさん (ワッチョイ c201-45kF)2020/10/25(日) 11:36:06.65ID:M7kzCKlu0
>>828
例えば?

830デフォルトの名無しさん (ワイーワ2 FFca-YvdE)2020/10/25(日) 12:12:32.16ID:usbfp6+yF
C最強ですね判ります

831デフォルトの名無しさん (オッペケ Sr11-y5oF)2020/10/25(日) 13:00:13.81ID:vQGWPLvqr
マイナーバージョンアップで後方互換性がぶっ壊れた例
俺も気になるんで教えて

832デフォルトの名無しさん (ワッチョイ c201-45kF)2020/10/25(日) 13:25:50.19ID:M7kzCKlu0
>>827
よく考えるとjsもクライアントサイドだけじゃなく
サーバーサイドで考えると動かなくなることあるな

rubyやpythonに比べて新陳代謝が激しくて
10年使い続けたりしないから気にならないだけかも

833デフォルトの名無しさん (オイコラミネオ MM69-kvjF)2020/10/25(日) 17:55:59.08ID:y6I5Oh6cM
>>829
リリースノートでも読め。
標準モジュールの変更とか。

834デフォルトの名無しさん (ワッチョイ de7d-ELaA)2020/10/25(日) 18:04:13.90ID:MTjKoQS00
JIS規格化されてる

835デフォルトの名無しさん (ワッチョイ c201-45kF)2020/10/25(日) 18:42:02.16ID:M7kzCKlu0
>>833
エアプでしたか
pythonと違ってrubyでは「標準モジュール」という言い方はしないよ

836デフォルトの名無しさん (オイコラミネオ MM69-kvjF)2020/10/25(日) 19:16:39.17ID:y6I5Oh6cM
>>835
んな言葉の違いはどうでも。w
ま、違いにあたらなければどうということはないから、すきにしろ。

実際にあたった人や、心配性にはツラい言語。
3以降は、絶対にないレベルにしてほしいものだ。
できればPerlレベルに。

837デフォルトの名無しさん (ワイーワ2 FFca-YvdE)2020/10/26(月) 15:04:44.51ID:EltRWJ/HF
Ruby が C++ を Hate してるのはホント良く判る

838デフォルトの名無しさん (ブーイモ MM0d-Gto1)2020/10/26(月) 16:25:50.97ID:NTmfRHBrM
>>836
Perlもエアプかいw
駱駝道で極楽浄土に行けるといいネ

839デフォルトの名無しさん (オイコラミネオ MM69-kvjF)2020/10/26(月) 17:52:56.78ID:yxMoBvg5M
>>838
今やPerl6は存在しないことを知らないの?w

840デフォルトの名無しさん (ワッチョイ c12c-G7xE)2020/10/28(水) 21:30:30.88ID:H1Ljm7vl0
>>2
リファクタリング:Rubyエディション (日本語) 単行本、2020/3、
Jay Fields/Shane Harvie/Martin Fowler/Kent Beck/長尾 高弘

Martin Fowlerの名著『リファクタリング』のRuby対応全面改訂版が、ついに復刊!
Kent Beck は、eXtreme Programming(XP)の提唱者

Java 版をRubyへ書き直したもの。
2010年の復刊。8,800円!

841デフォルトの名無しさん (ワントンキン MMd3-8ci1)2020/10/31(土) 08:20:00.50ID:B8uNhuq7M
ruby初心者です。

以下のNodeクラスにEnumerable moduleをincludeできるようなeachメソッドを
定義することはできますか。

class Node
attr_accessor :data, :next
def initialize(data)
@data = data
@next = nil
end
end

842デフォルトの名無しさん (ワッチョイ c12c-fDVG)2020/10/31(土) 14:36:23.15ID:zTfIs5nt0

843デフォルトの名無しさん (スッップ Sd33-OXsB)2020/10/31(土) 15:21:36.29ID:OmKC8x+Wd

844デフォルトの名無しさん (ワンミングク MMd3-D/jF)2020/11/01(日) 00:02:35.61ID:X6j+EvTNM
>>842 さん
特に、>>843 さん
実装を教えていただいて、ありがとうございます。
https://ideone.com/IjTOn4に記載されていた実装は
私では考えつくことができませんでした。
何を勉強したら書けるようになるのか、悩みます。

ちなみにですが、私の考えたeachの実装は以下のようなものです。
class Node
  def each
  while self.next != nil
  yield self.data
  self.self.next
  end
  end
end
(でも、私のeachは動作しません。)

845デフォルトの名無しさん (ワンミングク MMd3-D/jF)2020/11/01(日) 00:07:41.13ID:X6j+EvTNM
>> 844
self.self.nextは、self = self.nextの誤記です。

846デフォルトの名無しさん (ワッチョイ c12c-fDVG)2020/11/02(月) 02:18:36.47ID:cH+o+Znx0
Mix-in とは、何かのモジュールをinclude すると、
それが継承チェーンの親の所へ入ってくるから、
そのモジュール内の関数が使えるようになる

例えば、include Enumerable とすると、
自クラスで、each を定義してあれば、Enumerable内のすべての関数が使える

Array も、Enumerableをインクルードしているから、
Array内の関数と、Enumerable内の関数が使える

つまり普通に、複数のインスタンスを配列に入れておけば、
Array・Enumerable内の関数が使える

ほとんど、この2つのクラス内の関数ばかりを使うから、
どういう事ができるか、見ておいた方がよい

また、eachを定義せずに、Enumerableの機能を使うには、Enumerator を使う。
eachは内部イタレータで、Enumeratorは外部イタレータ

初心者はイタレータなど考えず、普通に配列内に入れておけばよい

デザインパターンなら、この本が良い。
改訂2版 Ruby逆引きハンドブック、2018

847846 (ワッチョイ c12c-fDVG)2020/11/02(月) 08:31:13.28ID:cH+o+Znx0
「Ruby each 実装」「ruby イテレータ 実装」で検索!
内部・外部イテレータの違いも、調べてみれば?

ruby eachの実装
https://teratail.com/questions/117974

848デフォルトの名無しさん (ササクッテロル Spc5-D/jF)2020/11/03(火) 09:41:15.68ID:XEwmRHqvp
>>846さん
アドバイスありがとうございました。
示していただいたキーワードを使ってネットの情報を読み漁ってました。
rubyに関する基本的な文法知識も弱いのですが、デザインパターンという
考え方?思想?もわかっていないので、文法の習得と並行して勉強が必要だと
感じました。修業します。

849846 (ワッチョイ c12c-WmiC)2020/11/03(火) 22:57:00.33ID:pWieQE6j0
Mix-in の例で、include Enumerable して、
Enumerableモジュール内の関数が使えるように、
自クラスで、each を実装しましょうとか、
こういうのを初心者向けで見たことがない

ほとんど、こういう事をやってる人は、いないと思う

なぜかというと、Array は、Enumerableをインクルードしているから、
配列に入れれば、何でもできるから

だから、そもそも、どうしてこういう事をしようと思ったのか、疑問に思う

プログラミングのお題スレの問題でも、
すべて、Array, Hash, Enumerableで解ける

850デフォルトの名無しさん (ワッチョイ 7933-cLMs)2020/11/03(火) 23:15:09.60ID:eTFEu/to0
>>849
遅延評価

851デフォルトの名無しさん (アウウィフ FFcd-GqKp)2020/11/04(水) 10:08:06.70ID:wF8lqQTTF
Ruby、信者は、おことわり

852846 (ワッチョイ ad2c-j5Tt)2020/11/04(水) 23:31:34.08ID:oOk5Pqvr0
一部のメソッドで、遅延評価できる

instance method Enumerable#lazy
lazy -> Enumerator::Lazy

map/collect, flat_map/collect_concat
select/find_all
reject
grep
take, take_while
drop, drop_while

一貫性のため、ブロックを渡さないケースのみlazy
zip, cycle

853デフォルトの名無しさん (ワッチョイ d201-CJ6T)2020/11/04(水) 23:51:12.04ID:lTVc+I7v0
Enumerableは高階関数とともに脱初心者の一番の目安
この2つをパパっと作って使えるようになれば初心者は卒業

854846 (ワッチョイ ad2c-j5Tt)2020/11/05(木) 23:53:13.53ID:lCe7ZMVj0
Ruby の強みは、

Array, Hash, Enumerable, Enumerator の豊富なメソッドを、
メソッドチェーンでつなげていくプログラミング

どういうメソッドがあるのか、じっくり見ておくべき!

855デフォルトの名無しさん (ワッチョイ 368c-5lCJ)2020/11/07(土) 23:50:43.02ID:DktN1QwS0
TIOBE Index、perlより下じゃん

856デフォルトの名無しさん (ワッチョイ 0d4e-3cp2)2020/11/08(日) 03:09:45.71ID:YnyAcD/m0
とうとうperlより下になったかw
誕生経緯w存在意義が…w

857デフォルトの名無しさん (ワッチョイ debb-+U3E)2020/11/08(日) 10:17:52.02ID:WJSuSySW0
助成金ひっぱりんごビジネス

858デフォルトの名無しさん (アメ MMfd-3cp2)2020/11/08(日) 10:46:31.03ID:msYgn7TJM
エンベデッド詐欺
ストリーム詐欺

859デフォルトの名無しさん (ワッチョイ f6e9-Oc6r)2020/11/08(日) 13:35:54.75ID:P6MM9gKe0
問題 Rubyを開発したのはだれか
答え 2ちゃんねる開発者でもあるひろゆき

根拠
https://programmercollege.jp/column/16456/

860デフォルトの名無しさん (ワントンキン MM62-JCXQ)2020/11/08(日) 16:28:40.45ID:2D8TgavPM
もうすっかりマイナー言語だな

861デフォルトの名無しさん (ワッチョイ 8101-aWq5)2020/11/09(月) 21:51:36.37ID:A/fRbmyh0
初めまして、現在の状況はRuby、Windows 10、 VSCode(エディターのみ)です。
以前Basic言語をやってましたがRubyの言語は勉強しました。
1.RubyでVSCodeの便利なデバッガーは何がいいですか。
2.RubyでVSCodeのインターネットまたは本等の使い方を勉強したい。
3.gemへのログインの方法を知りたい。
以上の3点知ってる人がいましたら教えてください、お願いします。

862デフォルトの名無しさん (ワッチョイ ad2c-faW7)2020/11/10(火) 00:15:08.25ID:TotITmpP0
>>789
に書いた

漏れは、Windows 10, WSL1, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

WSL2 と言う、Hyper-v を使ったものもあるけど、
安定バージョンかどうかは、知らない

VSCodeの便利な拡張機能については、VSCodeのスレで聞いてください。
本は、徹底解説Visual Studio Code、本間咲来、2019/9

漏れのおすすめ拡張機能、Code Runner
右クリックメニューから、選択したコード、またはファイル全体を実行する

この設定をチェックしておく
Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

デバッガーは漏れは、p, pp, tap などで見てる

VSCodeの拡張機能では、Ruby というものかな?
8個の拡張機能をパックした、Ruby extension pack とか?
漏れは、よく知らない

gem でインストールするのは、bundler だけ!
その後は全て、bundlerでインストールする

gemは、依存関係を考慮しなかったっけ?
gemでインストールしても、依存関係で動かないかも

gem, bundler については、検索して調べてください!

863デフォルトの名無しさん (オッペケ Sr79-Y0rt)2020/11/10(火) 07:08:10.23ID:yOpM0tMJr
Rubyで本の使い方を勉強するってどういう意味?

864デフォルトの名無しさん (ワイーワ2 FF1a-D/bg)2020/11/10(火) 12:09:50.03ID:08CevRpcF
Ruby 卒業しようぜ さっさと

865デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/12(木) 23:43:36.78ID:9JGUhgPP0
g++です
undefined reference to `ruby_init'
と表示されます
たぶんdllに入ってると思うのですがどこにあるのでしょうか?
よろしくお願いします

866デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/12(木) 23:44:28.91ID:9JGUhgPP0
versionは2.7.0です

867デフォルトの名無しさん (ワッチョイ c533-9FM4)2020/11/12(木) 23:46:31.86ID:1kfP87l60
「dumpbin Windows」で検索!

868デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/12(木) 23:48:50.89ID:9JGUhgPP0
そもそもDLLが見つかりません
ほんとお願いします

869デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/13(金) 00:13:10.26ID:1m9BN6xD0
>>867
初心者には意味不明です

870862 (ワッチョイ dd2c-tE7G)2020/11/13(金) 00:22:55.68ID:LLS1FCOb0
g++ は、GNU の GCC に含まれる、C++コンパイラ。
GNU で、Windows 向けのDLL を作るの?

RubyInstaller か?
MSYS2/MINGW の、RubyInstaller Development Kit(DevKit)有りか?
ridk install がどうしたこうしたとか?
よく知らないけど

https://rubyinstaller.org/downloads/

Windows 10, WSL, Linux でコンパイルする方法なら、
>>789
に書いたけど

871デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/13(金) 00:28:08.04ID:1m9BN6xD0
c++にruby_initを組み込んでみたいです
コンパイルエラーがでます
さっぱりわかりません

872デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/13(金) 00:34:11.29ID:1m9BN6xD0
#include <ruby.h>

int main() {
// Rubyインタプリタの初期化
ruby_init();

// スクリプトの実行
rb_eval_string("print 'Hello World!'");

// Rubyインタプリタのクリーンアップ
ruby_cleanup(0);
}

873デフォルトの名無しさん (ワッチョイ c533-9FM4)2020/11/13(金) 00:55:32.20ID:4qY0TlDt0
「初心者」のやることじゃねえ。w

874デフォルトの名無しさん (ワッチョイ dd2c-tE7G)2020/11/13(金) 01:16:13.61ID:LLS1FCOb0
正気?
初心者が、こんな事をする訳ないだろ

C/C++ を、数年以上やってからの話

875デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/13(金) 01:17:12.74ID:1m9BN6xD0
そう言わずにコンパイルできる方法を教えてください

876デフォルトの名無しさん (ワッチョイ dd2c-tE7G)2020/11/13(金) 01:52:06.56ID:LLS1FCOb0
ffi は C や C++ ように作成された共有ライブラリを、
Ruby で扱うことができるようにするためのライブラリです

libffi を使っているので、事前にインストールが必要です。
NativeExtensions を直接扱わずに、C を操作できます

ruby ffi 入門
https://hawksnowlog.blogspot.com/2019/04/getting-started-ruby-ffi.html

877デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/13(金) 01:57:04.06ID:1m9BN6xD0
その逆が知りたいわけで。。。

878デフォルトの名無しさん (ワッチョイ dd2c-tE7G)2020/11/13(金) 02:03:07.72ID:LLS1FCOb0
C/C++ から、Ruby を呼ぶ方法か

検索すれば?

879デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/13(金) 02:06:45.73ID:1m9BN6xD0
検索したんですけど見つかりませんでした

880デフォルトの名無しさん (ワッチョイ dd2c-tE7G)2020/11/13(金) 03:33:11.86ID:LLS1FCOb0
Windows では、無理じゃない?

Linux で探した方が良いかも

881デフォルトの名無しさん (ワッチョイ cbda-Y0tO)2020/11/13(金) 03:35:06.10ID:ZgWaq86m0
Windows使ってるってだけで教祖様の号令一下で石投げられるのがRubyコミュニティだからな
Pythonにしとき

882デフォルトの名無しさん (ワッチョイ e3d4-+Dqz)2020/11/13(金) 04:42:47.05ID:b8ug5Yf30
C/C++ から Python を呼ぶ方法なんて袋叩きに逢うのが
Python コミュニティですが、それがなにかどうかされますた???

883デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/13(金) 04:53:52.48ID:1m9BN6xD0
難しそうなのであきらめました

884デフォルトの名無しさん (ワッチョイ dd2c-tE7G)2020/11/13(金) 06:40:07.62ID:LLS1FCOb0
普通は、Ruby から、C 製のNArray みたいな高速なライブラリを呼ぶ

逆に、Cから、Rubyを呼ぶ事はない。
普通に、Rubyコマンドを呼べば良いだけ

例えば、Rubyスクリプト内で、Python3 コマンドを呼ぶ

str = `python3 -c 'print( "あ" )'`

puts str #=> あ

885デフォルトの名無しさん (ワッチョイ 1d4e-hLVw)2020/11/13(金) 07:00:14.39ID:PGsPGVPV0
まつもと:それから「Backquotes」の地上げも考えていたんですけども、Backquotesをするとシェルで実行して結果を文字列で返すってやつですね。

(参加者から「いける、いける」の声)

まつもと:なんかあの辺で「いける、いける」って言ってる人がいますけど、信じない(笑)。なので、これももうちょっと先で、もう1回くるかもしれませんが、少なくとも3.0では死なないということです。
https://logmi.jp/tech/articles/321308

バージョンによって使えてたクォートが使えなくなったりするクソ言語

886デフォルトの名無しさん (ワッチョイ dd2c-tE7G)2020/11/13(金) 08:51:10.39ID:LLS1FCOb0
Python 2/3 のコミュニティーの分断は、地獄だった

だからRubyは、2/3 で絶対に分断させない!

887デフォルトの名無しさん (ワッチョイ 1d4e-hLVw)2020/11/13(金) 09:27:17.47ID:PGsPGVPV0
マイナーバージョンで細切れ分断してるからな。
その辺は抜かりない。

888デフォルトの名無しさん (ワッチョイ 159b-NSHw)2020/11/13(金) 12:02:41.44ID:RWm0omqa0
>>882
>C/C++ から Python を呼ぶ方法なんて袋叩きに逢うのが Python コミュニティ
初めて聴いたけどどこ情報?

889デフォルトの名無しさん (ワッチョイ 159b-NSHw)2020/11/13(金) 12:09:12.42ID:RWm0omqa0

890デフォルトの名無しさん (ワッチョイ 7501-NSHw)2020/11/13(金) 14:17:08.52ID:/AMzz1sP0
>>881
「私がWindowsを嫌っているのではなく、WindowsがRubyを嫌っているのだ。だからWindowsを使ってはいけない。」と教組様が言ってたけど。

891デフォルトの名無しさん (ワッチョイ 159b-NSHw)2020/11/13(金) 14:22:10.08ID:RWm0omqa0
教祖も言ってるけど
windowsならrubyやめてpython使う方が楽ちん

892デフォルトの名無しさん (アウアウウー Saa9-rkyG)2020/11/13(金) 14:47:22.41ID:b3aeLCbPa
エラーが出たので助けてほしいです…
ターミナルでrails db:createをするの下記のような文が出ます…

Traceback (most recent call last):
4: from bin/rails:3:in `<main>'
3: from bin/rails:3:in `load'
2: from /Users/tech-camp/projects/tweet/bin/spring:10:in `<top (required)>'
1: from /Users/tech-camp/projects/tweet/bin/spring:10:in `read'
/Users/user/projects/tweet/bin/spring:10:in `read': No such file or directory @ rb_sysopen - /Users/user/projects/tweet/Gemfile.lock (Errno::ENOENT)

893デフォルトの名無しさん (アウアウウー Saa9-rkyG)2020/11/13(金) 14:49:36.90ID:b3aeLCbPa
エラーが出たので教えてほしいです…
ターミナルでrails db:createをしたらこのようになりました…


Traceback (most recent call last):
4: from bin/rails:3:in `<main>'
3: from bin/rails:3:in `load'
2: from /Users/user/projects/tweet/bin/spring:10:in `<top (required)>'
1: from /Users/user/projects/tweet/bin/spring:10:in `read'
/Users/user/projects/tweet/bin/spring:10:in `read': No such file or directory @ rb_sysopen - /Users/user/projects/tweet/Gemfile.lock (Errno::ENOENT)

894デフォルトの名無しさん (アメ MM09-hLVw)2020/11/13(金) 15:16:02.12ID:9KKZC7FrM
bundle installしてないとか

895デフォルトの名無しさん (アウアウウー Saa9-rkyG)2020/11/13(金) 15:45:24.78ID:b3aeLCbPa
まさにそれでした…!
ありがとうございます…!

896デフォルトの名無しさん (ワッチョイ a301-+irU)2020/11/13(金) 17:04:48.25ID:b4HB1/RK0
>>865
$ export PKG_CONFIG_PATH="$HOME/.rbenv/versions/2.7.2/lib/pkgconfig"
$ gcc $(pkg-config --cflags --libs ruby-2.7) hello.c -o hello

上の例はWindowsじゃなくmacOSでrbenv使ってる環境だけど
Windowsでも.pcファイルあると思うからpkg-configで必要なオプション取得すれば良いと思うよ

897デフォルトの名無しさん (ワッチョイ ed5f-D0pj)2020/11/17(火) 15:37:28.16ID:+8mZ0oHh0
拡張ライブラリについての質問です
一次元配列の場合はデータを取得できたんですけど、
二次元配列の場合はどうすればいいんでしょうか?
よろしくお願いします

//一次元配列の場合
num = rb_ary_entry(p_val, offset);
a = FIX2INT(num);

898デフォルトの名無しさん (ワッチョイ dd2c-g/iO)2020/11/17(火) 18:11:21.31ID:PuHDpULa0
VALUE, FIX2INT, RARRAY, rb_ary_entry

これは、Ruby なのか?
奇妙

899デフォルトの名無しさん (ワッチョイ dd2c-g/iO)2020/11/17(火) 18:42:35.55ID:PuHDpULa0
Ruby では、ary[offset] だろ。
2次元配列なら、

ary = [ [1, 2], [11, 12], [21, 22] ]

ary[0][1] = 99
p ary #=> [[1, 99], [11, 12], [21, 22]]

p ary.length #=> 3
p ary[0].length #=> 2

900デフォルトの名無しさん (ワッチョイ c533-9FM4)2020/11/17(火) 19:23:04.59ID:yKNV/xx90
>>897
配列要素オブジェクトを多段にRArray*にキャストしたらええんちゃうの?知らんけど。

https://docs.ruby-lang.org/ja/latest/function/rb_ary_entry.html
https://docs.ruby-lang.org/ja/latest/function/RARRAY.html

>>898
知らんかったら黙っとくか、ググるくらいしろ。

901デフォルトの名無しさん (ワッチョイ 4b5f-cChY)2020/11/18(水) 19:49:47.73ID:XrXdqU1w0
やっと解りました。。。
どうもありがとうございました!
ary = [[0,1],[2,3],[4,5]]


num0 = rb_ary_entry(ary_val, 2);
num1 = rb_ary_entry(num0, 0);
a = FIX2INT(num1);

num0 = rb_ary_entry(ary_val, 2);
num1 = rb_ary_entry(num0, 1);
b = FIX2INT(num1);

sprintf(buf, "%d , %d", a, b);
MessageBox(NULL, buf, "", MB_OK);

902デフォルトの名無しさん (ワッチョイ 4b5f-cChY)2020/11/24(火) 05:57:29.80ID:tcZG3tlz0
ocraを実行してexe化したのですが、
libssp-0.dllがないというエラーが出てフリーズしました
放っておけばそのうちocraがバージョンアップで対応してくれるんでしょうか?

プログラムは、

puts "hoge"

だけです

903デフォルトの名無しさん (オッペケ Srdf-D4Gu)2020/11/24(火) 06:47:14.40ID:/T/Ll6K6r
フォルダ名に日本語混ざってるとocra使えないからそれかもね

904デフォルトの名無しさん (オッペケ Srdf-D4Gu)2020/11/24(火) 06:50:52.14ID:/T/Ll6K6r
日本語Windows環境ならocraよりneri使ったほうがいいと思うよ

905デフォルトの名無しさん (ワッチョイ 4b5f-cChY)2020/11/24(火) 07:16:55.53ID:tcZG3tlz0
どちらもだめでした
MinGWが64bitなのがいけないいんですかね?
neriの場合は、「アプリケーションを正しく起動できませんでした」
と出ます
日本語は使ってないですよ

906デフォルトの名無しさん (アウアウウー Sa3b-cChY)2020/11/24(火) 09:00:20.18ID:gfNKbZsOa
最近同じエラー吐いてる人が多いからマルチバイト文字とかじゃなくてocraのバグじゃね
今つっかかってる場所はlibssp-0.dllの有無
libssp-0.dll入手して適切なフォルダに入れれば動くかもしれないし、それを超えてもまた次のエラーメッセージ出るかもしれない

こういう場合むしろ古いバージョンのocraやrubyを使ったほうが正常に動いたりするよ
特定のバージョンとの相性で上手く動作したらむやみにアップデートしないことな

907デフォルトの名無しさん (ワッチョイ a32c-ti/z)2020/11/24(火) 09:01:18.97ID:XRJpBbZB0
ひょっとして、フォルダ名・PC のユーザー名に、日本語を使っていないか?

>neriの場合は、「アプリケーションを正しく起動できませんでした」
もっと正確なエラーメッセージを取得して、それで検索すれば?

どういう理由で起動できないのかを、知りたい
色々な理由があるから、このメッセージだけでは原因を特定できない

Linux みたいに、Windows には、OS のログとか無いのか?

908デフォルトの名無しさん (アウアウウー Sa3b-cChY)2020/11/24(火) 09:46:40.72ID:gfNKbZsOa
日本語じゃないって否定してんのに直前のレスも読めねーのか
https://stackoverflow.com/questions/64368535/ruby-compile-with-ocra-error-libssp-0-dll-not-found

Maybe you don't have the libssp-0.dll file installed.
You can download it from https://www.dll-files.com/libssp-0.dll.html
then placing the file where the error says.

909デフォルトの名無しさん (ワッチョイ 4b5f-cChY)2020/11/24(火) 12:56:57.47ID:tcZG3tlz0
neriのエラー
アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じてください。

libssp-0.dllはMinGWでgetするdllです

バグか64bitに対応してないかのどちらかだと思います
暫く様子を見ることにしました
あと古いバージョンも試してみます

910デフォルトの名無しさん (オッペケ Srdf-D4Gu)2020/11/24(火) 20:33:08.36ID:GlJ0k2Kgr
こっちは64bit windows10でneri使えてるけどなぁ

911デフォルトの名無しさん (ワッチョイ 775f-FP8+)2020/11/25(水) 06:01:29.82ID:vPLi7EhQ0
2.4で動きました
しかし自作のsoファイルをソースに含めると
ocra test.rb --dll ddddd.so

実行すると
FATAL ERROR: Bad signature in executable.

912デフォルトの名無しさん (ワッチョイ b72c-8s6k)2020/11/25(水) 12:15:29.69ID:BeZXjuPe0
自分でエラーを作っているから、原因は君にしか分からない

そのエラーメッセージで検索すれば?

913デフォルトの名無しさん (ワッチョイ b72c-8s6k)2020/11/25(水) 12:51:53.26ID:BeZXjuPe0
文字列内にある、URL を抜き出す、URI.extract、
または、正規表現のURI.regexp は、

Ruby 2.2 から obsolete になっているけど、
それに代わるものは、何ですか?

require 'uri'

URI.extract("文字列", ['http','https'] )

p URI.regexp =~ "http://www.ruby-lang.org/"; #=> 0

914デフォルトの名無しさん (ワッチョイ 775f-FP8+)2020/11/25(水) 16:47:47.83ID:vPLi7EhQ0
>>912
neriでexe化できました
ocraは相変わらずですが
ありがとうございました!

915(u_・y) ◆e6.oHu1j.o (アウアウウー Sa5b-FP8+)2020/11/26(木) 17:59:03.02ID:ACzSTlzfa
>>913
text ="
Ruby 初心者スレッド Part 66 YouTube動画>16本 ->画像>2枚
http://www.ruby-lang.org/
"
text.scan(URI.regexp).map { Regexp.last_match }.each { |uy|
puts uy
}

916デフォルトの名無しさん (ワッチョイ b72c-OOND)2020/11/27(金) 02:05:30.36ID:lOUpIwv20
>>915
出力
http://www.ruby-lang.org/
http://www.ruby-lang.org/

2回とも、同じものが表示されるから、ダメ!

917デフォルトの名無しさん (オッペケ Srcb-VDAt)2020/11/27(金) 07:36:58.12ID:8Z+4V8c6r
text.scan(URI.regexp){|v| puts '%s://%s' % [v.shift, v.compact.join]}

918916 (ワッチョイ b72c-OOND)2020/11/27(金) 08:41:48.24ID:lOUpIwv20
text.scan( URI.regexp ){ |v| p v }

出力
[ "https", nil, nil, "i.imgur.com", nil, nil, "/UJbFSti.jpg", nil, nil ]
[ "http", nil, nil, "www.ruby-lang.org", nil, nil, "/", nil, nil ]

この奇妙な、nil は何?
それに、:// が飛ばされている

919(u_・y) ◆e6.oHu1j.o (アウアウウー Sa5b-FP8+)2020/11/27(金) 16:29:26.66ID:6fRHx8hla
てかURI.regexpもobsoluteだった

920デフォルトの名無しさん (ワッチョイ 9f01-1+jW)2020/11/27(金) 17:54:13.89ID:tPIe9OcJ0
https://bugs.ruby-lang.org/issues/2542
はっきりした理由は書いてないけど
RFC2396自体がobsoleteになって新しくRFC3986/3987対応のregex考えるの大変だから
URI.extract/URI.regexpはobsoleteになったように見える

なので今の仕様で問題ないなら使えばいいんじゃないかって気がする
warningを避けたいならURI::DEFAULT_PARSER.extractを直接使ってもいいけど中身は同じ
もう少しちゃんとしたのがよければtwitter-textのExtractor.extract_urls

921デフォルトの名無しさん (オッペケ Srcb-VDAt)2020/11/27(金) 21:04:45.51ID:8Z+4V8c6r
qiitaにRFC3986対応の正規表現とか出てるけどそんな大変なのかね
詳しく知らんからなんも言えないけど

922デフォルトの名無しさん (ワッチョイ 1f33-ZPXR)2020/11/27(金) 21:32:51.26ID:OZT1ua320
多言語対応まで考えるとややこしいから、すっぱりあきらめたんやろ。

923デフォルトの名無しさん (ワッチョイ b72c-OOND)2020/11/28(土) 11:23:25.42ID:FGpMIdZG0
RFC3986に準拠したURI検証用正規表現
https://qiita.com/shimataro999/items/fced9665fa970c009c1e

HTTP/HTTPS の所には、こういうのが出てくるから、これらが特殊文字なんだろう。
もっと簡単な正規表現で良い

終了点を知りたい。ある文字が出たら、そこで終わりみたいな。
URL で使われない文字

^https?:\/\/

|[!$&'()*+,;=]|:)*@)?
|[!$&'()*+,;=])*)(:\d*)?
|[!$&'()*+,;=]|:)+
|[!$&'()*+,;=]|[:@]))*)*

[-._~]

924デフォルトの名無しさん (ワッチョイ b72c-OOND)2020/11/30(月) 03:48:29.64ID:r8rQ87Qr0
コンテンツをファイルに書きこみながら、同時にハッシュ値も求める場合、
Go では、io.MultiWriter で、2回読み込まずに処理できるらしいが、

Ruby にも、こういう機能がありますか?

925デフォルトの名無しさん (ワッチョイ ffbb-BCf+)2020/11/30(月) 20:22:04.13ID:G81cwQG00
RailsチュートリアルをRubyの言語自体の入門書としてみた場合、一般的な入門書の何割ぐらいをカバーしてるものなのですか?

926デフォルトの名無しさん (ワッチョイ b72c-OOND)2020/11/30(月) 21:45:48.29ID:r8rQ87Qr0
Rails チュートリアルは軽く「たのしいRuby」の10倍以上はある

MVC は、構造・デザインパターンなどを学ぶのが大変

おまけに、Linux・サイト製作の基本知識とか、
データベース・ERB・HTML・CSS/SASS・JavaScript・Webpack・テストとか

927デフォルトの名無しさん (ワッチョイ 1f33-ZPXR)2020/11/30(月) 22:12:15.34ID:ifp6ptD/0
そして、それでいて文法やメソッドなどの基礎的なところをすっとばしている可能性が。w

要するに、方向性が違うので、どっちが他方をどう含んでるかは何とも言えんやろ。

928926 (ワッチョイ b72c-OOND)2020/11/30(月) 22:44:30.64ID:r8rQ87Qr0
入門書で文法を学んだら、Enumerable のメソッドの内容を見てから、

プログラミングのお題スレの問題を解いたり、
テキスト処理などを少しやった方が良いと思う

Rails チュートリアルは、時間が掛かるから

まあでも、ウェブサイトの構築運用の最短距離は、Linux・AWS・Rails。
バックエンド・エンジニアなら、Linux・AWS・Ruby

929デフォルトの名無しさん (アウアウウー Sa5b-FP8+)2020/12/01(火) 01:00:57.88ID:bLJR8T1fa
3割くらいじゃね
あと別にrubyの魔術コードを書けたり読めたりしなくても生きていける

930デフォルトの名無しさん (ワッチョイ 9f01-1+jW)2020/12/01(火) 21:27:16.65ID:gqqffooe0
ちょ、DateTimeがdeprecatedになってるんですが・・・
これいつから?

931デフォルトの名無しさん (ワッチョイ 1f33-ZPXR)2020/12/01(火) 23:02:19.70ID:uBfLZ+080
さすがRuby!w
おどろきの互換性。

932デフォルトの名無しさん (ワッチョイ b74e-HgZM)2020/12/01(火) 23:28:41.06ID:KOqkaYUf0
wwwwww

933デフォルトの名無しさん (ワントンキン MMb8-fAcm)2020/12/02(水) 10:02:26.56ID:WhLorZrAM
2.5からだね
なお英語版ドキュメントへの記載を忘れていたためRails勢には全く認知されておらず最近になって混乱を引き起こしている模様
これがRubyクォリティ

934デフォルトの名無しさん (ワッチョイ 954e-2/bE)2020/12/02(水) 10:21:56.70ID:s/Tj40p50
な?ww
マイナーバージョンアップで互換性崩れるだろ?www

935デフォルトの名無しさん (ワッチョイ 0c01-zWK8)2020/12/02(水) 12:09:59.52ID:X5mOhjXr0
>>933
2.5からというソースある?
9末に特にアナウンスもなく変更されてるように見えるんだけど
https://github.com/rurema/doctree/commit/0645aad1d9107fa4020269f12ca9a21ec6bd859c

deprecatedになっても削除されるものじゃないから実害はないんだけど
さすがにこれはやり方が乱暴

936デフォルトの名無しさん (ワッチョイ 732c-lBG8)2020/12/02(水) 12:39:09.20ID:vDg6xkSY0
DateTime は非推奨で、代わりに、Time を使うこと。
つまり、Date, Timeを使う

DateTime < Date < Comparable

Time < Comparable

937(u_・y) ◆e6.oHu1j.o (アウアウウー Sa08-9rBX)2020/12/02(水) 17:21:15.67ID:LINF+1vva

938デフォルトの名無しさん (オッペケ Sr5f-zYXO)2020/12/02(水) 22:11:56.65ID:n0CYjqknr
>>934
互換性は崩れてないじゃん

939デフォルトの名無しさん (ワッチョイ 6214-l3pW)2020/12/02(水) 23:36:25.61ID:26rcFOAE0
deprecatedで混乱するもんなの?
廃止じゃないでしょ?非推奨でしょ?

そりゃ書き換えないといけないが
普通deprecatedになってから書き換えるでしょ?

940デフォルトの名無しさん (ワッチョイ 6214-l3pW)2020/12/02(水) 23:39:12.64ID:26rcFOAE0
Ruby開発勢ならなんでいきなりdeprecatedになってるんだ?って
なるかもしれないけど、Rails勢は所詮Ruby使ってるだけの人たちだし

941デフォルトの名無しさん (アウアウウー Sa08-p6BM)2020/12/03(木) 03:48:48.84ID:1lle3h49a
その身朽ちても仕様変更の激しい言語の代名詞としてruby生き残ったりして

942デフォルトの名無しさん (ワッチョイ 954e-2/bE)2020/12/03(木) 03:50:09.86ID:QOvIykSz0
言語界のテセウスの船wwww

943デフォルトの名無しさん (ワッチョイ 5e63-/XVW)2020/12/03(木) 04:49:29.49ID:GO6EbsS10
rails自体によるdeprecatedなんていくらでもあるしそんなに騒ぐようなものでは無い

944デフォルトの名無しさん (ワッチョイ 954e-2/bE)2020/12/03(木) 09:35:07.22ID:QOvIykSz0
名実ともにrailsが本体、rubyはそのバッテリーだなwww

945デフォルトの名無しさん (ワッチョイ 667d-qMBe)2020/12/03(木) 10:20:11.90ID:2qogV6iv0
>>937
ソースの https://github.com/rurema/doctree/blob/master/refm/api/src/date/DateTime では
バージョンに関係なく deprecated になってるから、まだ変更が反映されてないだけですね

require 'open-uri'
%W[ 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 ].each{|ver|
open( "https://docs.ruby-lang.org/ja/#{ver}/class/DateTime.html" ) {|f|
puts "#{ver} #{( f.read.force_encoding( Encoding::UTF_8 ).match( /\bdeprecated\b/ ) )? "true ": "false"} #{f.last_modified.localtime.strftime( '%Y/%m/%d %T %z' )}"
}
}
#=>
2.3.0 false 2018/08/19 18:16:47 +0900
2.4.0 false 2020/04/10 09:17:55 +0900
2.5.0 true 2020/10/25 09:17:38 +0900
2.6.0 true 2020/10/25 09:17:11 +0900
2.7.0 true 2020/10/25 09:16:43 +0900

>>935 仰るとおり、9月の変更が反映されているかどうかのようです

946デフォルトの名無しさん (ワッチョイ 7433-gz1R)2020/12/03(木) 12:06:44.28ID:7EFKRkup0
先日のURIのやつもそうだけど、過剰でもう手におえなさそうな実装を切ろうとしてんのかな。

来るべきRuby3に向けてか?

947デフォルトの名無しさん (ワッチョイ 0c01-zWK8)2020/12/03(木) 12:09:49.47ID:Glofd6fS0
>>945
なるほど、2.4はサポート切れてるから2.5以降だけリファレンスを更新したんだろうね

Railsとか本番で使うシステムは特殊な用途以外はTimeかTimeWithZone使ってるから別にいいんだろうけど
ちょっとしたツールでactivesupport使うまでもないようなものはTimeじゃなくDateTime使うことが多かったから
急にdeprecatedになってて驚いた

948デフォルトの名無しさん (ワッチョイ 66e6-XXx1)2020/12/03(木) 18:12:31.59ID:PfGMH4zi0
deprecatedで驚くのは中級以上の証
初心者は「まぁ動いてるからヨシ!」

949デフォルトの名無しさん (ワッチョイ 8ea7-3brL)2020/12/03(木) 20:52:46.44ID:rS3QJvGw0
ルビー初心者なんですがうまく動かなくて悩んでいます。
ここで質問さしていただいてもいいでしょうか?

950デフォルトの名無しさん (ワッチョイ acce-Mii/)2020/12/03(木) 21:12:35.91ID:hX6RFB1N0
どうぞ

951デフォルトの名無しさん (オッペケ Sr5f-zYXO)2020/12/03(木) 21:16:41.53ID:QtB29qoZr
>>949
OSとruby -vの結果とエラーログを貼ってください。

952デフォルトの名無しさん (ワッチョイ 8ea7-3brL)2020/12/04(金) 00:07:56.54ID:fauI+lK+0
ありがとうございます
CentOS 7.8上に Ruby2.5.8 + Rails4.2 + MySQL8.0 で立てる、ごく普通の
Webアプリを構築しています。nginxは1.16です

ログイン画面で認証(sorcery)したら次画面に自分が所属する店の売り上げを
表示する、というアプリを作っているのですが、店の売り上げはログインした
ユーザに関する店の情報だけ出せば良いので、ActiveRecordのdefault_scopeを
使って、current_userのユーザ情報を元にscopeを設定しています

おおむねこんな感じです

default_scope {
where(shop: current_user.show)
}

953デフォルトの名無しさん (ワッチョイ 8ea7-3brL)2020/12/04(金) 00:12:58.79ID:fauI+lK+0
current_user情報の保持はRsquestStoreを使っています

うまく動いていないのは、このRequestStoreを介したcurrent_user情報が
modelのdefault_scopeの中でうまく不具現できないときがあるのです
うまく動くときもあるだけに逆に難儀しています

たまにcurrent_userの情報が直前にログインしていた別のユーザの情報と
なっている事が合って、default_scopeが期待した動きになりません。
デバッグで確認してみると、controller上でRequestStoreからcurrent_userを
復元させる場合は必ず期待通りに現在ログイン中のユーザの情報になりますが
model内で同じ事をやると正しく復元できたり出来なかったりします

model内でRequestStoreを使用するのがそもそも間違っているのでしょうか?

954デフォルトの名無しさん (ワッチョイ 732c-XXx1)2020/12/04(金) 11:46:23.71ID:sfksvFP90
Rails 4.2 は古い

今は、Rails 6 の本も数冊出てる。
最低でも、Rails 5 以上

パーフェクト Ruby on Rails、2020/7、には、
scope とは再利用するクエリに、名前を付けるものって書いてある

class Book < ApplicationRecord
scope :costly, -> { where( "price > ?", 3000 ) }
end

これで、Book.costly と書けば、
Book.where( "price > ?", 3000 )となる

955954 (ワッチョイ 732c-XXx1)2020/12/04(金) 11:58:35.47ID:sfksvFP90
同じ本に、default_scope は使うなって書いてある

そのモデルクラスのすべての操作に、暗黙的に適用されるため、

逆に適用しない場合に、
Book.unscoped.where(何々)みたいに、
一々、unscoped で取り消さないといけないから、初心者を惑わすから

956デフォルトの名無しさん (ブーイモ MMed-rU9g)2020/12/04(金) 13:08:31.79ID:tBcZspOUM
>>953
まずはcurrent_userを設定してるところに問題ないか見直したほうがいいんじゃね?

957デフォルトの名無しさん (ワッチョイ 66e6-RsF0)2020/12/08(火) 13:45:26.29ID:/FLfc1Yi0
anemoneが更新されていないのですが、
代替えってありますか?

958デフォルトの名無しさん (ワッチョイ 0c01-zWK8)2020/12/08(火) 15:24:37.53ID:L/fvSJtl0
>>957
kimurai, spidr

959デフォルトの名無しさん (ワッチョイ 66e6-RsF0)2020/12/08(火) 16:31:36.83ID:/FLfc1Yi0
>>958
あざっす

960デフォルトの名無しさん (ブーイモ MMcf-oE3n)2020/12/10(木) 20:38:12.66ID:TEgFYOMiM
DBロールバックっていつ使うんすか?
マイグレしたあとにリクエスト処理してロールバックしたらデータ整合性崩れない?
NULL不可をNULL可能にマイグレ→NULLデータ追加→ロールバック→戻せなくて死亡
みたいな感じ?
バックアップダンプファイルからリストアじゃイカンのかな

961デフォルトの名無しさん (ワッチョイ 8714-kNbH)2020/12/11(金) 02:39:12.75ID:ExAO4AKO0
>>960
トランザクションの基礎を勉強しなさい
アプリを実際に作りなさい
経験がなさすぎる

962デフォルトの名無しさん (ブーイモ MMcf-oE3n)2020/12/11(金) 08:54:21.70ID:Ollsi59NM
>>961
あーそっちのロールバックじゃなくてマイグレのロールバックな

963デフォルトの名無しさん (ワッチョイ 5f33-Igzg)2020/12/11(金) 10:55:45.84ID:vQm1aiEb0
>>962
それは「Ruby」「初心者」スレで聞くことなのか?

964デフォルトの名無しさん (ワッチョイ df01-c3Ov)2020/12/11(金) 11:49:56.62ID:s+ujdTab0
>>960
もし戻す必要が出た場合にそれまでの間に追加・更新されたデータをどうするか先に考えておく必要がある
NOT NULLに戻す場合はchange_column_nullだけで対処可能だからそんなに問題にならない
バックアップから戻したら追加・更新されたデータが消える

965デフォルトの名無しさん (ブーイモ MMcf-oE3n)2020/12/11(金) 12:49:02.80ID:PpUdey1gM
>>963
初心者といったらruby
rubyといったらrails
railsといったらmigration

966デフォルトの名無しさん (ブーイモ MMcf-oE3n)2020/12/11(金) 12:57:56.46ID:PpUdey1gM
>>964
ふむ
マイグレのセマンティクスをよく考えて個別にロールバックを実装していくしかないのかな
でもそれだとロールバック実装コストがかなり高く付きそうではあるな
どうせロールバックは緊急時にしか使わないわけであって
だったらロールバックは捨ててバックアップリストアでもいいんじゃないかなと

967デフォルトの名無しさん (ワッチョイ df01-c3Ov)2020/12/11(金) 16:10:31.24ID:s+ujdTab0
>>966
実装しないとしても戻す必要が出た場合にどう対応するのかを事前に検討しておく
検討の結果、実装しない選択をするんであればいいけど
何も考えずバックアップリストアでいいとか言ってると確実にGoToトラブル

ロールバック時に必要な対応も考慮して
アプリは戻してもDBは戻さなくていいような方法を取ることもよくある

968デフォルトの名無しさん (ブーイモ MMcf-oE3n)2020/12/11(金) 19:19:15.81ID:jyJfdkePM
.そもそも戻す必要性を可能な限り無くすために実データレプリカを含む膨大なデータセットでテストする
.運悪く戻す場合も安易なロールバックに頼らず修正マイグレーションを開発して緊急リリースする
.それでもだめなら神頼みロールバック
.それでもだめならバックアップリストア

これでOK

969デフォルトの名無しさん (ワッチョイ 7f2c-kRr2)2020/12/13(日) 01:03:58.24ID:bSx7ciZe0
1. まず、これから更新するデータを、ジャーナルに書き込む
2. 実際に更新する
3. ジャーナルから記録を消す

だから、ジャーナルに記録があれば、更新できなかったと言う事。
その場合、回復ポイントから、ジャーナルにある分だけ更新していく(roll forward)

レアケースで、2が正常に終わった後、3でエラーになった場合は、
回復ポイントから、ジャーナルにある分だけ更新していく過程で、
既に正常に更新されている事を、チェックする

970デフォルトの名無しさん (ワッチョイ 7f2c-kRr2)2020/12/13(日) 01:12:39.96ID:bSx7ciZe0
Kubernetes では、ネットワーク分断に備えて、
マスターを、3, 5, 7個の奇数にしておく

奇数なら、2:1 とか、過半数を取れるから、多数派を正常として扱う事ができる

偶数なら、2:2 とか、1:1:2 などに分断されても、
どのグループも過半数が取れず、判断できなくなる

971デフォルトの名無しさん (ワッチョイ 7f2c-kRr2)2020/12/13(日) 01:24:25.52ID:bSx7ciZe0
AWS S3 では、3重に記録してる

それを災害に備えて、東京・大阪の2か所に保存する。
つまり、6重

972デフォルトの名無しさん (ワッチョイ 7f2c-Goa5)2020/12/13(日) 22:16:52.20ID:bSx7ciZe0
Software Design 12月号は、Docker, AWS 特集だけど、
クラスメソッドの社員が、AWS 主要サービスを紹介している

クラスメソッドには会社全体で、AWS の800資格を持ち、
12資格すべてを持つ、マスターが7人いる

MySQL・PostgreSQL 互換のAurora について、
1つのAZ(データセンター)毎に、2つずつ、合計3つのAZで6重にしてる。
Primary に2つと、Read Replica 2つに、2つずつ

>>2
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11/25

宇宙開発などの組み込み用、Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応

973(u_・y) ◆e6.oHu1j.o (アウアウウー Sa6b-LBAI)2020/12/15(火) 18:08:34.40ID:02qf4hkKa
(u_・y)言うほどRubyで書いた制御システム詰んだ宇宙船に乗りたいか?

974デフォルトの名無しさん (ワッチョイ a301-Gz4g)2020/12/16(水) 03:27:02.65ID:0pLL+JPf0
F-15はエイダ、F-22、F-35はC++で書かれてる。

975デフォルトの名無しさん (ワッチョイ 268c-3bRC)2020/12/22(火) 20:07:12.86ID:aAJmKFvh0
ruby3って3倍速くなった?

976デフォルトの名無しさん (ワッチョイ 9714-22vh)2020/12/22(火) 20:48:04.60ID:0svuoGhO0
全体の0.1%が3倍速くなった

977デフォルトの名無しさん (ワッチョイ 374e-Dlqg)2020/12/22(火) 21:18:44.50ID:10xc+AYD0
www

978デフォルトの名無しさん (ワッチョイ 572c-yePO)2020/12/24(木) 03:08:33.92ID:qBLsz+9E0
Ruby VM では、1秒間に、100万回ループすると、
Ruby中間言語を、JIT で機械語にコンパイルして、
1秒間に、1,000万回ループ出来るようになる

もう、10倍になってる!

979デフォルトの名無しさん (ワッチョイ c54e-2ulA)2020/12/24(木) 08:31:42.54ID:7F4cW8XH0
いや指定した数だけループしろよ
何勝手に回数10倍に増やしとんじゃい

980デフォルトの名無しさん (ワッチョイ 2101-yePO)2020/12/24(木) 11:17:26.40ID:TzdYJrci0
三倍速い赤い奴!
人民解放軍!

981デフォルトの名無しさん (ワッチョイ 495f-yePO)2020/12/24(木) 15:48:27.18ID:W/9MTNsy0
Rubyを使ってunityでゲームを作る事は可能ですか?

982デフォルトの名無しさん (アメ MM6f-2ulA)2020/12/24(木) 15:57:07.62ID:uFIcYFKMM
何その苦行
可能だったとしてそれでおとなしくC#でやるより簡単になるとでも思ってんの?

983デフォルトの名無しさん (ワッチョイ 6f33-gkv8)2020/12/24(木) 19:13:03.26ID:5YZuSfe/0
>>981
現実的に不可能。

Ruby→C#トランスレータが存在すれば可能かも?w

984デフォルトの名無しさん (ワッチョイ 5f01-SL+E)2020/12/25(金) 01:13:50.85ID:8LlCCPCm0
mrubyとかみたいな感じでなんかできないかね。

985デフォルトの名無しさん (ワッチョイ c54e-2ulA)2020/12/25(金) 01:24:54.53ID:cyV6b5qO0
何その苦行
可能だったとしてそれでおとなしくC#でやるより簡単になるとでも思ってんの?

986デフォルトの名無しさん (アウアウウー Sa71-crlN)2020/12/25(金) 01:50:36.29ID:J4ouM17Ca
>>983
Rubyからunityを呼び出せば原理的には可能じゃないの?
そんなめんどくさいことを誰がやるのかという問題はあるけど

987デフォルトの名無しさん (ワッチョイ 6f33-gkv8)2020/12/25(金) 01:56:34.02ID:DE1iEGh90
>>986
それのどこが「Rubyを使ってunityでゲームを作る事」なの?

988デフォルトの名無しさん (ワッチョイ 0bab-JtRj)2020/12/25(金) 22:24:56.42ID:DVzhLIY40
松原案件でRuby松本メルカリ弟は絶対死亡になりました
byねね室原幕府色彩空間

989デフォルトの名無しさん (ワッチョイ 572c-yePO)2020/12/25(金) 23:45:34.05ID:aa9Khe9z0
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11/25

この本を読んだ印象では、
宇宙開発などの組み込み用、Lua, Squirrel の代替になる

Apache などのミドルウェアに組み込んで、拡張機能を作る。
ロジック・文字列処理は、C よりも、GC のあるmrubyでやった方が、安全性が高い

Unity, Xamarin は、Mono か。
Mono とは、Linux で、C# を動かす、.NET 用のOSS

Mono に組み込んで使えるかも知れない

次スレ

Ruby 初心者スレッド Part 67
http://2chb.net/r/tech/1608837867/l50

990デフォルトの名無しさん (ワッチョイ c54e-2ulA)2020/12/26(土) 10:11:10.42ID:q2RopqqH0
mrubyの本にmrubyは使い物になりませんなんて書いてあるわけないだろ
小学生かよマルチに引っ掛からないようにな

991デフォルトの名無しさん (ワッチョイ 4eda-7v9V)2020/12/30(水) 10:46:44.30ID:nbKcCzET0
unlimited対応なRuby3本マダー

992989 (ワッチョイ 7f2c-8PYP)2021/01/25(月) 12:01:43.51ID:+q31tGtg0
mruby で作った、小型人工衛星イザナミの打ち上げが成功した!

mruby 製の1号機が『イザナギ』、2号機は『イザナミ』

993デフォルトの名無しさん (ワッチョイ a77c-rvE3)2021/01/27(水) 11:48:55.98ID:cJSBZXf90
三代目
ヒルコ

994デフォルトの名無しさん (ワッチョイ 662c-bDzS)2021/01/31(日) 15:14:05.39ID:nfjawlju0
デスクトップにショートカットを作って、
それに複数のフォルダ/ファイルをドラッグアンドドロップ(D&D)して、
それらのフルパスを取得してみた

まず、デスクトップのa.rb に、
puts ARGV
と書いて、そのショートカットを作る

ショートカットのリンク先を、コマンドプロンプトとする。
cmd@.exe で、ruby で、a.rb を実行する。
C:\Windows\System32\cmd@.exe /k "ruby a.rb"

書き込めないので、@を付けましたが、
cmd@.exe の、@を抜いてください

これで、ショートカットにD&Dした、すべてのフォルダ/ファイルのフルパスが表示される

出力
C:\Users\〜
C:\Users\〜

995デフォルトの名無しさん (ワッチョイ ff2c-OU2n)2021/02/10(水) 17:18:18.24ID:eXs8qevw0
autoload は、モジュールを使う場合にだけ、require されて、
使わない場合には読み込まないので、非常にエコだと思ったけど、

autoload で相対パスを読み込む、require_relative が無いのは不便

996デフォルトの名無しさん (アウアウカー Sa6f-7Nrl)2021/02/12(金) 08:27:23.75ID:PHAHurb8a
>>989
次スレありがとう!
こっち埋めておくね

997デフォルトの名無しさん (アウアウカー Sa6f-7Nrl)2021/02/12(金) 08:27:37.46ID:PHAHurb8a
うーめ

998デフォルトの名無しさん (アウアウカー Sa6f-7Nrl)2021/02/12(金) 08:27:51.32ID:PHAHurb8a
埋めておきます

999デフォルトの名無しさん (アウアウカー Sa6f-7Nrl)2021/02/12(金) 08:28:03.41ID:PHAHurb8a
埋めたい

1000デフォルトの名無しさん (アウアウカー Sa6f-7Nrl)2021/02/12(金) 08:28:16.84ID:PHAHurb8a
1000


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

TOPへ TOPへ  

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


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

 ↓「Ruby 初心者スレッド Part 66 YouTube動画>16本 ->画像>2枚 」を見た人も見ています:
Blender 初心者質問スレッド Part48
Blender 初心者質問スレッド Part35
Blender 初心者質問スレッド Part32(ワッチョイ有)
Blender 初心者質問スレッド Part29 [無断転載禁止]
【UE4】Unreal Engine 4 初心者質問スレッド part1
GTA総合 初心者質問スレッドPart30
★模型塗装初心者スレッド86 ガンプラからスケールまで★
囲碁・初心者専用の質問スレッド 第36局
囲碁・初心者専用の質問スレッド 第29局
囲碁・初心者専用の質問スレッド 第32局
ヤフオク初心者質問スレッド #829
ヤフオク初心者質問スレッド #830
ヤフオク初心者質問スレッド 815問目
ヤフオク初心者質問スレッド 821問目
ヤフオク初心者質問スレッド 811問目
セキュリティ初心者質問スレッド Part143
セキュリティ初心者質問スレッド Part142
囲碁・初心者専用の質問スレッド 第24局 [無断転載禁止]
パソコン初心者総合質問スレッド Part2048
★☆時計板の初心者総合質問スレッド Part87★
パソコン初心者総合質問スレッド Part2051
[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS初心者スレ12
[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS初心者スレ30
【WoT】World of Tanks 初心者スレ 125
【WoT】World of Tanks 初心者スレ 129
白猫プロジェクト 初心者スレ☆71 [無断転載禁止]
白猫プロジェクト 初心者スレ☆99 [無断転載禁止]
【LoL】League of Legends 初心者スレ Part407
白猫プロジェクト 初心者スレ☆19 [無断転載禁止]
【LoL】League of Legends 初心者スレ Part297
白猫プロジェクト 初心者スレ☆173 [無断転載禁止]
白猫プロジェクト 初心者スレ☆148 [無断転載禁止]
【DQ10】ドラゴンクエストX 初心者スレ 112組目
【LoL】League of Legends 初心者スレ Part314
【MTGA】Magic The Gathering Arena 初心者スレ 92
星のドラゴンクエスト 初心者スレ ★12 [無断転載禁止]
【MTGA】Magic The Gathering Arena 初心者スレ68
【MTGA】Magic The Gathering Arena 初心者スレ61
【MTGA】Magic The Gathering Arena 初心者スレ 84
【MTGA】Magic The Gathering Arena 初心者スレ 93
【MTGA】Magic The Gathering Arena 初心者スレ 112
【MTGA】Magic The Gathering Arena 初心者スレ 133
【MTGA】Magic The Gathering Arena 初心者スレ 147
【MTGA】Magic The Gathering Arena 初心者スレ 10
【MTGA】Magic The Gathering Arena 初心者スレ 185
【DQ10】ドラゴンクエストX 初心者スレ 126組目【DQX】
ストリートファイターV 初心者スレ part5 [無断転載禁止]
【DQ10】ドラゴンクエストX 初心者スレ 136組目【DQX】
LoL】League of Legends 初心者スレ Part253 [無断転載禁止]
【DQ10】ドラゴンクエストX 初心者スレ 87組目 [無断転載禁止]
【ネタバレ禁止】 DEATH STRANDING 初心者スレPart4【PS4】
【ネタバレ禁止】 DEATH STRANDING 初心者スレPart2【PS4】
【WoT】World of Tanks Blitz 初心者スレ Tier114 [無断転載禁止]
【Switch】Splatoon2/スプラトゥーン2 初心者スレ46【質問/雑談】
【Switch】Splatoon2/スプラトゥーン2 初心者スレ78【質問/雑談】
【Switch】Splatoon2/スプラトゥーン2 初心者スレ87【質問/雑談】
【Switch】Splatoon2/スプラトゥーン2 初心者スレ116【質問/雑談】
【Switch】Splatoon3/スプラトゥーン3 初心者スレ ランク3【質問/雑談】
【ドラガリ】ドラガリアロスト 初心者スレ part 8 【リセマラ相談】
【Switch】Splatoon2/スプラトゥーン2 初心者スレ20【質問/雑談】 [無断転載禁止]
jubeat初心者スレ 32nd Tune
DQ10】初心者大使を語るスレッド487
【DQ10】初心者大使を語るスレッド583
【DQ10】初心者大使を語るスレッド580
22:47:55 up 5 days, 7:56, 0 users, load average: 8.79, 8.94, 8.85

in 0.092239141464233 sec @0.092239141464233@0b7 on 112512