>>234  Ruby on Rails, devise の動画   
 Farstep、2019/9   
 【Rails】deviseを使ったログイン機能の実装(名前でログインする方法を解説)  



 @YouTube
@YouTube  YouTube で「ruby on rails devise」で検索すれば、日本人の動画も多い 
  
 Farstep, うるぞー、もぐらストア、 
 やんばるCODE 守護神・バグ取り名人 たけ 
 >>242    >>サイトのrobots.txt を遵守すること! 
 >>これを守らないと、営業妨害で逮捕される   
 どういうことですか? 
 詳しくお願いします 
  >>231  パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/7 
 の92 ページで、   
 コントローラー内で、private メソッドを定義して、 
 条件によって、strong parameters を変える例が書いてある   
 管理者・一般ユーザーで変える例   
 params.require(:user).permit(:name, :admin) 
 params.require(:user).permit(:name) 
  >>247    >>242  に書いてある、山浦清透の動画を見れば分かる   
 各サイトには、robots.txt が置いてあって、 
 スクレイピングする場合は、必ず30秒空けるとか、 
 このフォルダはスクレイピングしてはならないとか、多くの条件が書いてある   
 それを守っていないと、営業妨害になる   
 スクレイピングは初心者向きじゃないので、各サイトと契約して、API を使うべき!   
 なぜかと言うと、初心者のプログラムにはバグが多いから、 
 無限ループしたりして、サイトへ無限にアクセスしたりする   
 それで、営業妨害で逮捕されるかも知れないから、すごく危険!   
 プロでも、スクレイピングはしない。 
 必ず、サイトと契約して、APIを使う   
 5ch もそう。契約して、APIを使えと言ってる。 
 勝手にスクレイピングすると、訴えてくるかも知れない 
  >>249  私のスクレイピングしたいサイトにはAPIは公開されていません 
 またrobots.txtも設置されていません 
 robots.txtでリクエスト間隔の指定なんてあるのですか? 
 常識的に数十秒から数分に一回程度のリクエストなら問題ないと思いますが 
 営業妨害ってどういう意味ですか 
 IT企業に勤める知り合いはスクレイピングで求人を出すことがあると言ってましたが嘘でしょうか? 
 5chでスクレイピングしたら相手にバレて訴えられることがあるのですか? 
  >>250  あるよ 
 数分に一回のリクエストで落ちるゴミサイトだろうと、結果的に相手の業務に支障が生じれば業務妨害罪に問われる可能性がある 
  >>250  > 常識的に数十秒から数分に一回程度のリクエストなら問題ないと思いますが 
 > 営業妨害ってどういう意味ですか 
 誰にとっての「常識」ですか?   
 某岡崎市の某図書館の「りぶらはっく」の件を知りませんか?   
 (情報リテラシのある側からしたら、) 
 あんな程度のアクセスで逮捕されるわけない「はずだと思う」なのに、 
 実態は、全部ゾンビ化(作った業者がアレ)していて、 
 け●さつがわも情報リテラシがなくアレだから、 
 結果がアレになっちゃったんですよ。   
 いいですかー、ここは日本です。 
 訴える側の後ろ側の行政側がアレな場合が多々あり、 
 情報リテラシがまったくない、矛盾しまくった法治国家なわけですよ。   
 誰の常識かは、サイトを提供している側が情報リテラシがない場合、その情報リテラシがない前提が常識なわけです。 
 つまり、その場合、何らかスクレイピングした時点で営業妨害とみなされても仕方ないですよ? 
  >>252  結局その事件は不起訴処分ですよね? 
 なぜ不起訴になったかわかりますか 
 検察側が有罪に出来ないと判断したからです 
 インターネット業界に携わる者たちからすれば余りにも「一般常識」から外れた言いがかりですからね 
 あなたのような無知蒙昧で従順な子羊は司直にとっては美味しいお客様ですね 
 これからも「常識」に則った素晴らしいプログラムを書き続けてくださいね 
  >>253  もし本当に訴えられたとき、実際の裁判の場で、
>>253 と同じ発言を検察側、裁判官の前で弁論できるとよいですね。 
  まあ不起訴で納得できるならいいんじゃないの? 
 俺だったら逮捕の時点で嫌だけど 
 逮捕状は名目上、第三者と言われる司法・裁判所が出している。 
 本当は警察・検察、つまり行政と結託しているけどw 
 警察はマスコミにリークして、有罪の世論を作る 
  
 だから日本では、逮捕 = 100% 有罪。 
 100%有罪でも、誰もおかしいと思わない。 
 他国では有罪率が50% ぐらいだけど、日本だけは100% 
  
 つまり、三権分立していない。 
 行政が決めてから、司法が行政のやった事を正当化するような判決文を書く。 
 行政を勝たせた人だけが出世できるから 
  
 でも、判決文を書くのを極端に嫌がる。 
 N国みたいな政党が、YouTube で裁判官の判決文を批判したりして、おかしいのがばれるから 
  
 不起訴になるのは、犯罪者が認めた場合 
  
 青汁王子みたいに検察へ喧嘩を売ったら有罪にされたけど、 
 徳井みたいに脱税を認めたら、不起訴になった 
 その人がやった事を認めたから、不起訴にした 
  
 日本では、逮捕 = 100% 有罪だから、絶対に有罪にできる。 
 日本では自白をすると、裁判所で何を言っても、くつがえせない。 
 嘘をついて、自白をするわけがないと言う 
  
 だから検事は、拷問・家族を脅迫して、自白をさせる 
  
 青汁王子みたいに検察の拷問を発表したら、有罪にされた。 
 それで青汁王子は、検察改革として選挙に立候補するかも知れない 
  
 一方、徳井は脱税を認めたら、不起訴になった 
  
 ZOZO・前澤も、脱税をマスコミにリークされた。 
 でも、N国が国会で誰がリークしたか聞いたら、皆、白を切った 
  
 これを国会で追求されたら、まずいから。 
 警察から、マスコミへリークしているのがばれるから 
  
 前澤のは、そもそも脱税でもない。 
 解釈の違い 
  
 それを警察がマスコミを使って、青汁王子みたいに悪人に仕立てようとした。 
 それをN国が国会で質問したから、ばれそうになって白を切った 
 >>257  ちなみに 
 5chで 
 マルチポストしたら 
 逮捕されるかもしれないって 
 知ってた? 
  逮捕はされないかもしれないけど 
 自分の悪行を 
 棚に上げて 
 正義面したら 
 地獄へ落ちちゃうよ 
 閻魔様に 
 舌を抜かれちゃうんだよ 
 怖いよ 
 検察も 
 警察も 
 裁判も 
 怖くないよ 
 地獄へ落ちると怖いよ 
 舌を抜かれて 
 張りの山を登らされて 
 業火に焼かれるんだよ 
 熱いよ 
 痛いよ 
 怖いよ 
 別に地獄に落ちるのは怖くないが 
 昔の人の妄想だし 
 警察、検察に痛くもない腹を触られるのは怖い 
 地獄は怖いよ 
 怖くないって言ってる人 
 強がり 
 一番いけないのは 
 自分のことを棚に上げて 
 自分が正義だって言う人 
 地獄へ行くよ 
 閻魔様に舌を抜かれるよ 
 痛いよ 
 でも逮捕はされないかもしれな 
 でも地獄の方がもっと怖い 
 悪魔の証明みたいだが地獄は存在しない 
 人間は死んだらそこで意識は消滅。無になる。 
 意識は脳の中の電気信号の集合だから 
 脳が動かなくなると意識は永遠に消えてなくなる 
 1. 世界とは事実の総体である。 
 2. 世界とは<私>の世界である。 
 2-1. 故に、世界の限界とは<私>の限界である。 
 2-2. <私>は死なない。視野の端が存在しないように、世界の死は存在しない。 
 2-2-1. 故に、地獄の存在は事実ではない。 
 2-2-2. 地獄について語ることはできない。 
 3. 語りえないことについては沈黙しなければならない。 
  
 QED? 
 >>265  その括弧つきの私(<私>)とは何かを十分に説明していませんね‥‥ 
  <私>とは、この私の世界の開闢者。 
 お前にとっての私ではなく、私にとっての私。 
 ヒュームが言うところの自我。 
 地獄を知ってしまったら 
 もう地獄はあるよ 
 自分のことを棚に上げて 
 他人をバカにしたら 
 地獄行きだよ 
 地獄は怖いよ 
 自分のことを棚に上げる 
 一番悪い事 
 地獄に落ちて 
 閻魔様に舌を抜かれて 
 針を飲まされるよ 
 そういうのを信じてくれると 
 犯罪が減るからべつにいいけど 
 私は信じていないけど 
 人に迷惑をかけるのは悪い事 
 地獄に落ちないかもしれない 
 でも自分のことを棚に上げて 
 人に迷惑かけたら 
 地獄に行く 
 警察もヤクザも 
 怖くない 
 地獄は怖いよ 
 スクレイピングは逮捕される危険があるって聞いたんだけどマジ? 
 危険ならあるけど実際にどうかは個別案件によるんじゃね 
 起訴・有罪までは滅多に行かんとは思うが 
 逮捕までならありえなくもない 
 突然民事訴訟を起こされて 
 賠償金を要求されることは十分にあり得る 
 ネットだからまずは開示請求からだね 
 「突然」賠償請求はない 
 受ける方からしたら突然賠償請求だろ 
 開示請求なんて直接は来ないよね 
 逮捕も賠償も怖くない 
 地獄へ行くのが怖い 
 でも地獄へは行かないかもしれない 
 でも自分のことを棚に上げて 
 人の嫌がる事ばかりしてると 
 地獄へ行く 
 じゃあrobots.txtを遵守していればスクレイピングしてもOKなんですね? 
 他者に被害を主張されたらトラブルになる可能性がある。 
 それだけ。 
  
 いいこともそうでないことも、両方ある。 
 他人に聞いてもムダ。 
 >>277  開示請求は裁判所を通してプロバイダに請求が行くんだけど 
 プロバイダは顧客である「受ける方」に無断で開示は通常しないで 
 まずは開示を許可するかを「受ける方」に訊いてくる 
 だからその段階でなにか事が進んでいるんだなということはバレる 
 あくまで「突然」賠償請求が来るなんてことはない 
  ネットに限らず相手の素性もわからないのに突然賠償請求なんてできやしない 
 まずは相手方の特定から始めないとどうにもできない 
 たとえば道歩いていていきなり殴られて怪我しても 
 相手がどこの誰なのかがわからなければどうしようもない 
 警察沙汰にして警察が相手の素性を教えてくれればなんとかなるが 
 教えてくれなければ泣き寝入りよ 
 ネットはいわゆる「足がつく」状態だから開示請求かければなんとかなる可能性が高いだけ 
 いきなり賠償請求できない点はオンもオフも何も変わらない 
 あらかじめ一定の社会的関係に入っている間柄なら別よ? 
 たとえば会社でセクハラされた・モラハラされた 
 そんな話だったら「突然」賠償請求は来るさ 
 そうなじゃなくてネット上でまったく関係ない素性も知れない第三者に損賠請求とか 
 「突然」できるわけがないだろうが 
 glib2と連携するGemがあるぐらいだから、 
 使われてると思うよ。 
 警察も検察も被告になることも怖くない 
 でも地獄は怖い 
 迷惑かけるだけなら 
 地獄へ行かないかもしれない 
 でも自分のことを棚に上げたら 
 地獄行き 
 だめだ 
 また自分のことを棚に上げて 
 他人に説教 
 してしまってる 
 そんなに地獄に落ちたいのか 
 自分のことを棚に上げて 
 また人に迷惑かけてる 
 地獄へ落ちるよ 
 人の嫌がる事ばかりする 
 自分のことは棚に上げる 
 警察もヤクザも怖くない 
 地獄はある 
 地獄は怖い 
 地獄は超暑かったぞ 
 それでも真夏の都心よりマシだが 
 スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか? 
 今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工 
 近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです 
 前者は膨大なデータを取得する必要があります 
 後者は10分から20分おきにアクセスすることになります 
 5年分の過去分は一度取得すれば良いだけなのであれば待ち処理入れつつやれば問題ないと思う 
  
 仕事であるスポーツ連盟のホームページを20分おきにスクレイピングしてる 
 これは確認して許可取ってるけど。 
 Rubyはgetsでコマンドプロンプトの入力を受け取れますが、 
 入力方法をbashのようにできないでしょうか。 
 上キーを押すとコマンドが再表示される等です。 
 頭のおかしい人に以下のようなことを言われました 
   >>基本、スクレイピングは営業妨害との戦い。 
 >>どの本にも、そう書いてある。 
 >>スクレイピングを推奨する本はない   
 具体的な書籍名を教えてください      
>>5ch は、マルチポスト禁止! 
 >>同じ質問を、複数のスレや外部のサイトに書いてはいけない   
 どこでそんなルールが決まっているのでしょうか? 
 マルチポスト禁止、クロスポスト推奨 
 というのは、遠い昔 fj でのルールではありましたが 2ch/5ch では無意味ですね、だってクロスポストできないし 
 >>303  だからマルポは? 
 できないのはクロポなんやろ? 
  >>304  回避方法がないのに一方的にマルチポストを避難するのはフェアではないと思いませんか? 
  自分のことを棚に上げて 
 正義面するから 
 罰が当たったのかも 
 しれない 
 でも現世の罰は 
 怖くない 
 地獄へ落ちるのは怖い 
 地獄は怖いよ 
 テキストファイルの処理で、段落ごとに時間のかかる作業(数時間単位)を回してるのだけど 
 その対象のテキストファイル(data.txt)は処理中に追加で内容を追記していくようになっている 
  
 def func() 
   # (ここにすごく時間のかかる処理) 
 end 
  
 f=File.open("data.txt", 'r:UTF-8'){|f| 
   f.each_line(rs=""){|l| 
     func() 
   } 
 } 
  
 ここで、f.each_lineの処理って、関数funcを実行している最中は次のループに行かないはずだよね? 
 動かしていて、どうも先読みしているような挙動を示しているのだけど、funcの処理が終わるまでは 
 先読みしないように指定ってできる? 
  
 たとえばテキストの内容が 
  
 A 
  
 B 
  
 C 
  
 となっていて、段落Aの処理中にBとかCの内容に手を加えたり、新たにDという内容を末尾に加えたりしたい 
 でも、どうもタイミングによって、最初Aだけだった内容でAを処理中にBを加えた時点ではすでに先読みしてて 
 Bの処理を飛ばして、それより時間的にも位置的にも後に追加したCの処理をしたり、あるいはCも飛ばして 
 Dを処理したりしてるような 
 このあたりのファイルポインタの動きを説明してある情報源はない? 
 先読みバッファの都合でそうなることもあんのかね。知らんけど。 
 読むタイミングで、tellの結果にseekしたらええかも?f.seek(f.tell())みたいに。 
 あるいは、バッファを無効にするか。ただし、これは勧めない。テストならばまあ。 
  
 情報というか、その手の高レベルなファイル関連関数は、高速化のために裏でバッファを活用してるので、その挙動を想像すれば。 
 >>311  バッファ無効にするのにsyncなんてメソッドがあるのですね 
 テストみたいなもんなんでこれ使ってやってみます! 
 ありがとうございました 
  >>312  もっかい言うけど、バッファ無効はほどほどにな。 
 ストレージがすり減るぞ。 
  rubyのglobってなんでこの名前なんですか?語源というか理由は? 
 人に迷惑をかけるのはしょうがない 
 でも 
 自分のことを棚にあげたら 
 地獄だよ 
 >>310  基本的に、読み込み用ファイルに書き込まないようにすべき。 
 io.seek で使う、ファイルポインターがずれる   
 例えば、配列でも同じ。 
 読み込み用配列を読み込みながら、 
 読み込み要素の前後に、要素を追加・削除すると、要素がずれるのでバグる   
 基本、同一ファイルじゃなく、入力用・出力用の2つが必要。 
 それか、データベースでやるとか   
 シェルスクリプトとか、関数型のElixir のパイプラインみたいに、 
 元のファイルを更新せずに、次々と出力ファイルを新規作成していくべき   
 処理A | B | C   
 他には、処理を分けられるなら、分けた方がよい   
 普通、バッファリング無しのモードは、 
 ユーザーの入力を待つような場合に、端末で使うもの。 
 こういうバックグラウンド処理では使わない   
 例えば、1回のシステムコールで、1000バイトの読み書きできるのに、 
 バッファリング無しなら、1000回もシステムコールを呼ぶから、処理時間が千倍になる   
 バッファリングとは、システムコールする回数を減らすために、 
 ある程度データが溜まるのを待ってから、処理を行うものだから 
  ファイルパスから簡単に、ディレクトリ名だけを取り出す方法がありますか? 
 今は、下のようにやっています 
  
 file_path = "C:/Users/Owner/Documents/test/a.txt" 
  
 p dir_path = File.dirname( file_path ) # ディレクトリパスを取り出す 
 #=> "C:/Users/Owner/Documents/test" 
  
 p dir_name = File.basename( dir_path ) 
 #=> "test" 
 file_path = "C:/Users/Owner/Documents/baka.test/a.txt" 
 >>321  必要充分だと思うがなあ。 
 自分でメソッドにくくりだすくらいやないの?   
 どうしても圧縮したいなら、text.sub(%r{.*/(.*)/.*}){$1}とか? 
 未確認。ワイならやらん。w 
  >>321  標準添付ライブラリの pathname 
  Google社内ではRubyの使用が許可されていない 
 当然だよね 
 >>326  googleって言っても一枚岩じゃないからそれは完全に間違い 
  バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくいっつーのはあるやろな。 
 > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ 
  
 あー、ホンッとに思い出すなあ(笑) 
 キチガイの嘘つきの低レベルFランの、 
 朝鮮ゴキブリBot君は、 
 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な 
 ことはよーくわかったよ。 
 ホントなにもできない朝鮮ゴキブリBot君! 
  
 クソチョンw 
 >バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくい 
  
 googleのAPIのことですか? 
 >>330  自分に甘くて、他人に厳しいのはあたりまえやろ。w 
 おまえは違うのか? 
  AWS Lambda には、Ruby もある 
  
 Chef, Cookpad 製のItamae, AWS CloudFormation のKumogata2 もある。 
 まあ、Terraform のシェアが高くなったけど 
  
 Vagrant の作者・ワシントン大学の学生で、今世紀最大の起業家・ 
 HashiCorp の創業者・Ruby/Go の神・Mitchell Hashimoto も、 
 今は、Goへ行ってしまった 
  
 Goプログラマーを募集中 
  
 YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、 
 Ruby on Rails → Go のキャリアパスを推奨している 
  
 PHP は、一生やらなくても良い。 
 新規の仕事が無いから、給料が上がらない。 
 保守要員は、給料が低いから 
  
 KENTAは常に、給料が高い新規プロジェクトを推奨している 
 pp dmy={"VERSION"=>RUBY_VERSION, "ARGV"=>ARGV, "Dir.pwd"=>Dir.pwd} 
 でdmy=を消すと 
 Dir.pwdの . でエラーになっちゃうんですけど 
 syntax error, unexpected '.', expecting `end' 
 pp(puts)+hashのリテラルでうまい書き方ないんですか 
 >>334  ブロックとして解釈されてエラーになるので 
 puts({a: “a”})みたいに括弧でくくる 
  >>335  エラーの意味が理解できました 
 ありがとうございます 
  classが全く理解できない。1日掛けても理解できない。俺は向いてないのか。。。 
 Rubyのclassはそれ自身がオブジェクトだからねえ。 
 クラスの型紙を元に実体化させたものが、インスタンス。 
 クラス自体を変化させたものが、特異クラス 
  
 ここで、インスタンスと特異クラスの継承チェーンを考えてみる 
  
 最終的にメソッド探索チェーンは、直線になる必要がある。 
 それで継承チェーンに、インスタンスと特異クラスが順序よく割り込んでくる 
  
 インスタンスに無ければ、特異クラスで探す。 
 特異クラスにも無ければ、継承チェーンを遡って、親クラスのインスタンスで探す。 
 そこでも見つからなければ、親クラスの特異クラスで探す 
  
 みたいに、継承チェーンをドンドン遡っていく 
 ムリに「理解」しようとしてるからちゃうか。 
 あちこちのソースを適当に読んでたら、いずれスッと腑に落ちるときがくるやろ。 
 >>339  こういうふうに、知らない言葉と知らない概念をおっかけて「理解」しようとするのは、素養がなければツラかろう。 
 最初はとくに適当でええんや。 
  338と339は新人が来てもこの調子なんだろうなぁ 
 > お前は毎朝起きるたびに俺に負けたことを思い出すよ^^ 
  
 あー、ホンッとに思い出すなあ(笑) 
 キチガイの嘘つきの低レベルFランの、 
 朝鮮ゴキブリBot君は、 
 チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な 
 ことはよーくわかったよ。 
 ホントなにもできない朝鮮ゴキブリBot君! 
  
 クソチョンw 
 スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか? 
 「Ruby」という商標についてなんですが 
 Rubyは同名の商標が多数登録されていますが、問題になった話を聞いたことがありません 
 他の言語も同様です 
 なぜ問題にならないんですか? 
 スクレイピングに興味があるのですがrobots.txtを守っていても訴えられる危険があるって本当ですか? 
 訴えられる危険はいつでもどこでもある。 
 道を歩いていても、家の中にいても。 
 >>350  上級者になってからやらないと危険だよ 
 初心者がよくわからないままやるとサービス妨害になる可能性はまあまあある 
  >>352  サービス提供側に原因があるというのにサービス妨害とはこれいかに? 
  >>297    リブラハック事件を念頭に置いて居るのだと思います。 
 法的リスクを回避する方法はありません。   
 事業を行うのであれば、あるいは人生を送る以上法的リスクは常にあります。   
 入門書に記載出来る話ではないです。   
 リブラハック事件は、不起訴処分となってますが、20日間の勾留となりました。   
 余談ですが、旧7帝大卒、上場企業所属の場合、余程のことがない限り法的リスクは回避できます。 
  >>350    中小企業で知財を担当してますが、常に訴訟してます。 
 業務妨害罪で争ったことはありませんが、模造品による損害賠償事件はチョッ中です。 
  >>355    ちなみに、事件ばかり担当すると会社の仕事は超楽です。 
 裁判期日は多くても2ヶ月に1回だからです。 
 社内では、暇なおじさんと思われてます。   
 だから、プログラミング好きには知財は天国です。 
 まあ、会社によるのかもしれません。 
  Ruby on Rails 製のGitLab の時価総額が、1.9 兆円だって! 
 ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます 
 waitかけないとバンされるよと言われましたがどうすればいいですか? 
 requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います 
 これに対してどうすればいいですか? 
 botからのアクセスはどこのサイトも来まくってるから、スクレイピングを気にするかは分からないけど、 
 waitを5秒とかいれとけば。 
  
 クレカ明細をスクレイピングしようとしてたら403になって数時間アクセス出来なくなったよ 
 David Heinemeier Hansson(DHH), 2021/12/16 
   Rails 7: The Demo  



 @YouTube
@YouTube    もう、Rails 7.0.0.rc1 か。 
 Ruby 3.0.3 
 そいつは、>1 のテンプレをしょっちゅう改変している、テンプレ改変荒らし。 
 基本的に、ソースコードを書かない香具師は荒らし 
  
 「Ruby, Rails, クソチョン」などを、NGワード登録推奨とか、 
 自分が有利なように、いつもテンプレを改変する 
  
 荒らしがスレ主として、居座っているので、 
 まともな人がスレ立てして、テンプレも元に戻した方がよい 
  
 荒らしは必ず、短文で2回以上書き込む。 
 必ず、複数人がいるように見せかける 
 スレ立てるまでもない質問はここで 158匹目 
 http://2chb.net/r/tech/1635193843/538    ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、 
 Ruby on Rails 初心者用コースの内容を書いておいた   
 基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。 
 学習環境も揃わないので、無理   
 Railsでは、Railsチュートリアル・Railsガイド・ 
 黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、 
 Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている   
 これほど、良い教科書が揃っているフレームワークはない!   
 Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、 
 PHP自体がオワコンになってしまったw   
 日本のウェブ開発の将来は、ほぼKENTAが決めている。 
 Scala を滅ぼしたのも、KENTA 
 wxrubyのインストールができません。 
  
 gem install wxrubyコマンドで 
 ERROR:  Could not find a valid gem 'wxruby' (>= 0) in any repository 
 と出てインストールできないです。 
  
 バージョンはruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt] 
 % gem sources -l 
 *** CURRENT SOURCES ***    
https://rubygems.org/    となる? 
 あとほんとにbundler経由でなくていいのか再考してみて 
 じゃあわからん 
 $ gem update --system 
 して更新がもしあれば治るかも 
 >>366  wxrubyがいつのRubyのときに開発されていたか調べましたか? 
 wxrubyがいまのRuby 3.1.0p0で動くと思いますか? 
  知らんがな、っつー話やけどな。w 
 互換性のなさはなんとかならんのか。 
 主に使おうとする道具の状態を確認しないのですか? 
 切れないハサミで紙を切ろうとするのですか? 
  
 どうしてもwxrubyを使うなら、せめてrbenvでも良いのでwxrubyが確実に動きそうなruby環境(Ruby 1.9.xぐらい)を用意したほうが賢明です。 
 あるいは、自分でwxWidgetsをRuby 3.xで動くように頑張ってbindingするか。 
  
 ちなみに、わたしはメンドクサクなって、wxWidgetsのcoreなところをRuby 2.7ぐらいでportingしている途中で放置したままです。 
 nokogiriでスクレイピングしようとしていたら 
 逮捕されるかもしれないと言われましたが 
 本当でしょうか? 
 「かもしれない」という事であれば回答はYesでしょう 
 まあ質問自体馬鹿げてるが 
 >>374  かつて 岡崎市立中央図書館事件 という悲劇があったのだよ 
 いまならこんなあほな事態は発声しないんじゃないかな、だったらいいな…… 
  Webrick 1.7.0 でドキュメントと異なった動作と、RFCで推奨されない通信が行われた場合にIOタイムアウトまで動作停止する問題を 
 発見しました(対処方法も特定済み) 
  
 報告方法どなたかご存じでしょうか? 
 >>374  スクレイピングに限らず、プログラムを動かす事による 
 アクセス回数と通信容量は気を付けたほうが良いよ   
 2chみたいにそれが多すぎたらしっかりとアク禁したり弾いたりしてくれるところはまだいいけど 
 無対策なサイトで管理人が対応できない人だったりすれば 
 プログラムによるアクセス制限の対応じゃなく法的な対応はありえる 
  >>379  どこかの某県図書館だな 
 結局、アレは業者がアレだったな 
  [1,2,3].each{ |i| 
 next i>2 
 } 
 がエラーにならずなかなか原因がわからなかった 
 正解は 
 [1,2,3].each{ |i| 
 next if i>2 
 } 
 >>383  next(exit_value) 
 break(exit_value) 
 という構文があって、実行された時のブロックの戻り値が指定した引数の値になる   
 loop{ break } 
 => nil   
 loop{ break 10 } 
 => 10   
 [1,2,3,4].map do |num| 
    next 'even' if num.even? 
    num 
 end 
 => [1, "even", 3, "even"] 
  >>384  ありがとうございました、なるほどでした 
 nextに戻り値は想定外で、別の原因を探していました 
  nokogiriでhtmlパースをしようと触っているのですが、 
 DOMの子要素から絞り込みはできないのでしょうか 
  
 document.xpath('//div[@class="main"]').each |node| 
  node.css('div') 
 ↑これだとclass=mainの子要素全体が取れるのですが 
  
  node.xpath('//div[@class="target"]') 
 ↑これだとDOM全体から取ってきてしまいます 
  
  node.search('//div[@class="target"]') 
 ↑これも同様でした 
 >>387  node.xpath('.//div[@class="target"]')   
 node.search('.//div[@class="target"]') 
  >>388  取れました!ありがとうございます!  
>>389  XMLパスという仕様書があるのですね 
 初めて知りました 
 リンク先まで教えていただきありがとうございます! 
  一旦、ある要素を取得してから、その子孫要素に限定して、 
 さらに要素を取得していく事もできる 
  
 一旦、div.x を取得してから、その子孫内のdiv を取得する 
  
 doc = Nokogiri::HTML( <<EOT ) 
 <html><body> 
 <div class="x"><div class="y"><div class="z"></div></div></div> 
 <div class="x"><div class="a"></div></div> 
 </body></html> 
 EOT 
  
 doc.xpath( '//div[@class="x"]' ).each do |x|  
  x.css( 'div' ).each do |div|  
   puts div.get_attribute( 'class' ) 
  end 
 end 
  
 出力 
 y 
 z 
 a 
 あーあ、やっちゃったね 
 スクレイピングに手を出したら逮捕されるよ 
 nokogiriもアンインストールしたほうがいい 
 XPath よりも、CSS Selector の方が可読性も高く、簡単。 
 XPathを使う事は、ほぼ無い 
  
 ある属性を持った要素の親要素を取得するとか、かなり複雑なケースに限定される 
 配列内の要素の出現回数を求める 
   ary = [ 1, "a", 2, "b", "a", 1, "a" ]   
 p results = ary.each_with_object( Hash.new( 0 ) ){ |elem, hash| hash[ elem ] += 1 } 
 #=> { 1=>2, "a"=>3, 2=>1, "b"=>1 }   
 Ruby には、下のPython のcollections.Counter みたいな関数がありますか?   
 import collections   
 l = ['a', 'a', 'a', 'a', 'b', 'c', 'c']   
 c = collections.Counter(l) 
 print(c) 
 #=> Counter({'a': 4, 'c': 2, 'b': 1})   
 Rubyで、誰かが作ったものはあるけど  
https://gist.github.com/cielavenir/501c0cf491e10d905d4307bdeb2596ea  >>394  ない。 
 できてこんなもん。 
 ary.uniq.group_by{|i|ary.count i} 
 => {2=>[1], 3=>["a"], 1=>[2, "b"]} 
  愚直に書くと 
 ary.group_by(&:itself).transform_values(&:size) 
 => {1=>2, "a"=>3, 2=>1, "b"=>1} 
 each_with_objectのほうが少しシンプルだけど 
 他の言語だと使えないからreduce使ってる 
 uniqとかgroupbyはやや効率悪い気がする 
 [1, "a", 2, "b", "a", 1, "a"].tally 
 => {1=>2, "a"=>3, 2=>1, "b"=>1} 
  
 ほ〜 
 rails6、ruby2.7を利用しています。 
 アクセスしてきたリクエストURLのパラメータに「#」が付いた際、paramsにパラメータが含まれてこないのですが、 
 この内容を取得するにはどうすれば良いでしょうか? 
 HTTPリクエストには乗らないけど 
 ブラウザ上のJSではハンドリングできるからそれで連携可 
 ありがとうございます! 
 ハッシュは取れないのですね… 
 JSでハンドリングしてみます。 
 JavaScriptのようにPythonコードをHTML内に記述して実行できる「PyScript」 Anacondaがオープンソースで公開 
 https://www.itmedia.co.jp/news/articles/2205/09/news161.html    rbScriptも技術的に可能でしょう、だそうです 
 JavaScriptだろうな 
 Rubyは人気急落中で既存のRailsアプリのメンテくらいにしか使われなくなっているから今から入るのはお勧めできない 
 webアプリ初心者にはrailsがオススメな反面ruby自体は全く初心者にオススメできないクソ言語 
 >>409  PythonとくにPython3よりも、Rubyのほうがええと思うけど?   
 といいつつも、仕事でTypeScriptばっかり、Railsもわずかにやっとるけど 
  JavaScriptって初心者にほんとに勧めて良いものだろうか。 
 フリーランス向けエージェント「クラウドテック」会員数8万人突破 
 〜働きやすい環境構築のため、単価向上・全年齢の活躍の場創出・ 
 地方企業のDX推進の取り組みを強化します〜 
  
 フリーランスエンジニア専門の案件一括検索サイト「フリーランススタート」、 
 累計掲載案件数25万件突破!リモートワークの累計掲載案件数35,000件突破! 
  
 新規人材の80%がフルリモート希望! IT人材市況動向レポート2021年12月版を公開 
  
 人口移動報告 家賃高い、首都圏脱出 「コロナ禍、仕事フルリモート」 
  
 クラウドテック、地方企業向け『クラウドテックDX』を開始、 
 7万人を超えるDX人材が、地方の非IT企業のDX推進を支援 
  
 新潟県、移住してきたテレワーカー/フリーランスに最大50万円を支給 
  
 テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。 
 2021年、フリーランスのトレンドは「移住&テレワーク」と予測 
 ・フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、 
 “テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡 
 ・リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、 
  業務委託契約の求職者と企業をマッチング  
 ・1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の 
  人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現! 
 ・『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル 
 ・副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破 
  中小企業で進む副業人材の採用、96%が継続採用を希望 
 ・フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の 
 『ものづくり・商業・サービス補助金』とは?概要や条件を解説 
 ・茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金 
 ・長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給 
 【根拠あり】フリーランスエンジニアは年収862万円取れて普通という話【高収入】 
  
 【こんな僕が】フリーランスエンジニアで月収100万円を達成した5つの方法 
  
 ITフリーランスエンジニアの年収|会社員との違いや独立後の案件の取り方 
  
 月収90万のITフリーランスプログラマー・SEが選んでる在宅案件はこんな案件です 
  
 フリーランスの年収は平均いくら?年収1000万円以上の割合とは 
  
 2021年最新版 エンジニアの平均年収はいくら?全体平均と比べて○○円も高い! 
  
 【高すぎると不利】もっともコスパの良い年収は?「最適年収」3パターンについて解説 
  
 オリコ、ITフリーランス専用ゴールドカード「techcareer EX GOLD for Biz Card」を発行 
 Rubyのcase文にはwhenの代わりにinを使う場合がありますか? 
 バージョンによって違うのでしょうか? 
 >>416  どうもありがとう! 
 あれから更に調べていたらRubyのcase文には2種類あると説明している 
 ドキュメントに出遭いました。 
 1つがelsifを持つif文の代用で、もう1つがパターンマッチ(?)らしいですね。 
 Rubyは内部的に===を使うんだそうです。 
 ただしその場合もwhenが使われていたように思います。inと違うのでしょうか。 
  caseのパターンマッチは3.0で本採用されたのにマニュアルになくって 
 変更履歴とRedmineみないとわからんのが残念 
 PythonてAI関係でデフォになってるのもあって持て囃されてるけど 
 初心者向きかというとインデントがあるのとかどうかなーとは思う 
 Rubyはそのへん柔軟でとっつきやすい感じはする    
https://xtech.nikkei.com/atcl/nxt/column/18/00682/061100007/  コロン忘れるってテキストで構造化文書(というほど大層なもんでもない)書いたことないんか 
 見出しにアンダーライン引くみたいに行末にコロン置いて区切りを表現する 
 英語はRDocからの自動生成なのか 
 メンテできないなら日本語マニュアルなんてやめて 
 英語版をベースに差し替えていけばええのに 
 パターンマッチはRuby 2.7以降にサポートされたらしいということが 
 分かりました。どうもありがとうございました。 
 >>408  JavaScriptは基本が非同期なのが初心者向けではないと思うんだ 
 開発環境の充実という点では悪くないとは思うけどね 
  同意しない 
 一般に、JSの入門者にとって非同期プログラミングが必要になるのはバックエンドとの通信が出てきたところから 
 そこまでくると仮にRubyだったら当然Rails前提になるわけで、フロントからDBまで揃えないと動かないRailsよりはHTMLファイル一つから始められるJSの方が遥かに敷居が低い 
 >>425  JS始めるなら普通はWebのフロントエンドからなので非同期理解しないとまともなもの作れないよ 
 nodeでCLIから始める選択肢もあるがそっちもI/Oは非同期が基本だから同じこと 
 同期APIだけ学ばせるほうが効率悪い 
  RubyもJavaScriptもどっちもやったらいいよ 
 対して難しくないんだし 
 確かに。 
 RubyとJSを組み合わせないとまともなページは作れないね。 
 両方知っておくのがいいと思う。 
 マジレスするとJSだけでいいけどな。 
 RubyとPythonは極端に習得容易だな。長所はそれだけ。遅過ぎて何やっても使えない。 
 >>429  じゃ極端に習得が容易なRubyやPythonのほうが初心者向けってことだよね 
  lispは間にならんだろ。これだけはrubyやperlやPythonに比べて異世界の言語って気がする。 
 YouTube で有名な、雑食系エンジニア・KENTA が言ってる。 
 初心者が、PHP のLaravel, Python のDjango をやっても転職できない 
  
 どの企業も適材適所だから、 
 Web サービスで、Rails ではなく、Laravel, Djangoを選んだ相当な理由がないと、 
 単なる調べる能力がない、自走力のない香具師とみなされるだけ 
  
 だから、Pythonで企業を圧倒するには、 
 大学院数学科とか、AWS Certified Machine Learning - Specialty・機械学習の資格がいる 
  
 一方、Railsは文系でもOK。 
 AWS Solutions Architect など、アソシエイト3冠を持っていれば最高峰。 
 米国年収で、最高同士の組合せ 
  
 PHPは、KENTAがオワコン認定したから終わった。 
 AWS Lambda のデフォルト言語にも採用されていない。 
 Rust, Elixir も採用されていないけど 
  
 デフォルトでは、Java, Go, Node.js, Python, Ruby 
 PowerShell, C# だけ 
  
 YouTube で有名な、くろかわこうへいのAWS 入門書も出ている。 
 サロン内の数十人で書いたみたい 
 もう、Rubyは高卒を騙して金を巻き上げるだけの言語になっちまったな 
 もう、Rubyは高卒を騙して金を巻き上げるだけの言語になっちまったな 
 rubyそのものについてでなくて申し訳ないのですが質問させてください 
 業務系の書類まみれに疲れ果ててウェブの世界に飛び込むことを検討しています。C++だのC#だのばかりでウェブの経験が無いのでブートキャンプでも受けようかと調べました 
 すると割とrubyの採用率が高いように思われます。rubyをお使いの皆様としても今後将来性はあると実感されてますでしょうか 
 フレームワークのRailsはプロトタイピングに優れてるからスタートアップ向きだけど 
 まじめに保守するならカッチリした言語・フレームワークに乗り換えることになる 
 そう割り切ってつかうならあり 
 実際に作ってみて、運用してみないと 
 分からない問題点があるからね 
 最初にかっちり決めてしまうと 
 修正するのがほぼ不可能になる 
 なんとなくだが
>>441は概ね答えわかってて聞いてる気がする 
 女のどう思う?はもう答えてほしい事が決まっていると言うからなw 
 将来性に期待して今から始めるんはナシやろ。 
 最悪捨てることになっても可、つうことならアリ。 
 色々参考になりました。 
 とりあえず仮に通うにしても就職先では別の言語を使う可能性が高いと考えておきます 
 時価総額1兆円までは、Ruby on Rails で大丈夫 
   時価総額1兆円以上のGithub は、Go へ移行する。 
 一方、2兆円のGitlab は、Go へ移行せず、Railsを継続する   
 外人の動画で、2千社の取引先で、2億レコードあるけど問題ないと外人が言ってた    
>>438  にも書いたけど、KENTA のYouTube 動画も一杯ある。 
 初心者は、月千円のKENTAのRailsサロンへ入れば良い。 
 日本6位の3千人。1位はキングコング西野の数万人   
 文系のキャリアパスは、Rails → Go のみ。 
 普及のキャズムを越えたのは、Goだけ。 
 Rust, Elixir は越えなかった 
 高卒から金を巻き上げるスクール商売ばっか目立ってるって、入会する側もおかしいと思わないのかねえ 
 自力でやろうとしても 
 やる気になれない 
 何をどういう順番でやればいいか分からない 
 とかだと 
 スクールに頼ることになるんではないだろうか 
 ひたすら写経してブリブリ動かせばなんとなく掴めると思うんだけどな〜 体系立った理解は後回しでも良いと思う 
 専門学校みたいなもんやと思えばそんなもんやろ。 
 相場を知らないんやから、しゃあない。 
 KENTA のサロンは月千円 
  
 KENTAが批判しているマコなりは、実教室があるから80万円。 
 RUNTEQ は40万円。 
 東京フリーランスは10万円 
  
 KENTAがぼったくりと書いて、訴えられた所は200万円。 
 KENTAを訴えると、会社の知名度が上がるから訴える 
 Ruby技術者認定試験制度の対象バージョンが2.1.xなの古くない? 
  
 Rails技術者認定試験もRails 4対象だし、公式Twitterは2018年が最終ツイート、さらに公式Facebookは削除されてる。 
 このスレでWordPress、PHP、SQLの質問をしたら、親切な達人プログラマーが懇切丁寧に教えてくれますか? 
 >>462  Ruby でサイト管理を自動化するとか、DBにアクセスするという話ならお返事あるんじゃない? 
  >>462  WordPress, PHP, SQLそれぞれのスレでご質問願います 
  >>463-464  やはり、そうですよね。 
 他のスレでRubyスレに誘導されたので確認してみました。 
 ご回答ありがとうございます。 
  Word Press のコーディングの本はない。 
 デザインの本しかないので、プログラミングを学べない   
 Ruby on Rails では黒田努の3冊の本とか、パーフェクト Ruby on Rails、 
 ウェブサイトではRails ガイド・Rails チュートリアル、 
 Dean の動画とか、コーディングの教材が多い    
>>438  にも書いたけど、 
 PHP は、KENTAがオワコン認定したから終わった   
 AWS Lambda のデフォルト言語にも採用されていない。 
 Go は採用されたが、PHPは採用されなかった。その理由を考えてみ   
 漏れの結論としては、PHPでは勉強を続けることは無理。 
 教育環境が無さすぎる   
 Laravel を使っているZOZO とか、良い開発者が集まらなくて、困ると思う 
 たいした学習コストじゃないんだし悩んでるくらいなら全部やればいい 
 未経験からのエンジニア転職の必須教養【技術知識編】 
 


 @YouTube
@YouTube   KENTA が勧めるキャリアパスは、Ruby on Rails → Go のみ。 
 Laravel, Django を選ばないように言ってる   
 もしポートフォリオに、Laravel, Django を選ぶと、 
 Railsではなく、それらを選んだ理由を聞かれて困る   
 技術選定・適材適所の失敗。 
 つまり、情報収集能力や自走力がないので採用されない   
 皆がRailsで勝負しているのに、なぜ君は奇をてらったのか? 
 正攻法を避けた理由を説明できない   
 もし自分が面接官なら、 
 Laravel, Django のポートフォリオを持ってきても、そもそも見ない。 
 何で、Railsで作らないの? と思うのが普通 
 経験言語そのものより良いコード書いてて配属先の技術スタック吸い込んでくれる人のほうが嬉しいかな 
 >>469  いいね300低度の動画を鵜呑みにしちゃうのね 
  ここ数年、Ruby はオワコンと言ってる香具師が多いけど、 
 結局、千人の素人が言うことよりも、1人のプロが言うことの方が正しい 
  
 例えば、Rubyで求人検索すると、5件しかないからオワコンだとか書いているサイトが多い 
  
 他にも、KENTAの天敵がSES のモローで、 
 2年前は、Railsはオワコンで、KENTAがRailsを勧めるのは、 
 ポートフォリオ制作で、サロンの滞在を長引かせて儲けるためで、 
 Java, PHP の方が稼げると勧めていた 
  
 【2022年版】Ruby on Railsの将来性 
  
 ところが最近の、YouTube のこの動画では、 
 Rails一色で、キャリア相談まで始めたw 
 Java, PHPのSESは、どうなったの?w 
  
 一方、RailsチュートリアルのYassLab は、Rubyはオワコンと言われているけど、 
 Railsチュートリアルは筑波大学にも採用されて、 
 毎年増加しているので、本当にオワコンなのか? と言ってた 
  
 プロの方が、正確な情報を持っている 
 最終的に負荷の問題でgoに移植ってパターンが 
 二度手間だから最初からgoでやれ 
 なんて言われてるが 
 ほとんどの場合、問題になるほど流行らんて 
 Github のコピーであるGitlab は、時価総額1兆円だけど、 
 Rails のままで、Go へ移行しないと宣言している 
  
 GithubはGoへ移行するけど 
 米国人の動画を見ると、 
 2億レコード・2千社のデータがあるけど、Rails で大丈夫とか、 
  
 試作品をNode.js で8週間掛かったが、Railsでは2週間だった。 
 JavaScript はアホらしいとか 
 大量レコード・マルチテナントなんて言語選定というより設計の問題じゃん プロトタイピングの速さについては同感ですが 
 モルモン教言語のrubyも辛い立場だな 
 まつもとも娘に断食させたり痛いことしてたし 
 RubyとAjaxについて勉強してるんですけど 
 WebページからAjaxでサーバー上のtest.cgiに文字列を渡し 
 そのtest.cgiで処理した戻り値をWebページ側に送るのはどうやって書けば良いんでしょうか? 
 >>478  rails tutorialの最後の章にほぼそのままのあるからそれ見れば 
 てか今日日cgiってまだ現役なのか 
  xhrなどのキーワードでググったほうがいいんじゃないですかね 
 >>478  cgiで処理できるんならcgiがjson返せばいいだけでは? 
 それともtest.cgiが 
 ・あなたの作ったrubyプログラムとは別 
 ・戻り値が出来るのに時間がかかり 
 サーバーサイドからイベント送信する必要がある 
 みたいな事情があるのでしょうか? 
  >>482  やりたいことがまさにそれで、ruby側の記述がわからないというワケです 
 CGIオブジェクトのどの値を書き換えるとajax側に返すjsonになるんでしょうか? 
  標準出力にJSON.generateなどで生成したjson文字列書き込めばいいんじゃないの 
 >>484  標準出力で良いんですね 
 というかjson以外でも受け取れました 
 ありがとうございます 
  原始的なCGI使ったことあるのってもうジジイだけなのかな 
 根源的な理解をするにはCGIは良い教材だと思う 
 フレームワークの恩恵も感じやすいんじゃないかなあ 
 RailsってDBアクセスのコストが高いんですか? 
 >>488  比較対象次第ではあるが 
 オブジェクト指向と実態のギャップを埋めるために 
 相応のコストは掛かってる   
 ただまぁこのコストが気になるレベルまで積み上がってるとしたら 
 (Twitterみたいな大規模プロジェクトは例外として) 
 何かミスか勉強不足があるかと疑いたくなる 
  フレームワークのオーバーヘッド気にするようなケースなんてほとんど無い気が 
 フレームワークのコストよりもデータ構造の設計によって検索に処理時間かかったり、大きすぎる中間ファイルが出来たりというほうが 
 アカウント数が増えた時には問題になると思います 
 ファイルが大きくなったら何らかの形で分割しないといけないと思うのでボトルネックになるのは読み込むファイルのサイズになりそうな 
  
 ところでまた質問なんですが 
 配列の後ろから1つだけ任意の要素を削除する処理を書こうとしたら 
 rindexがnilを返したときにdelete_atがエラーになるんですが、rindexの戻り値を変数に格納して条件分岐入れるしかないですか? 
  
 ary=[1,2,3,4,1,2,3,4] 
 e = ary.rindex(2) 
 ary.delete_at(e) 
 p ary 
  
 # 一行にしたかったけどnilになるとエラー 
 # ary.delete_at(ary.rindex(9)) 
 よく読んでなかったわ 
 可読性無視して1行に押し込みたいならこうするくらいしかないんじゃね 
 ary.delete_at(ary.rindex(9) ||  ary.size) 
 a.rindex(2)&.tap { a.delete_at(_1) } 
 ActiveSupportがあればtry! 
 >>493  大きいサイズ入れた時の動作仕様が今後も変わらなければいいですがちょっと不安です    
>>494  おおっすごい 
 tapでselfの時のみdelete_at呼ばれる処理なら安全そうですね 
 参考にします 
 ありがとうございました 
  句点Rubyおじの居場所をこっちにも作ってあげてください 
 installしなくても使えるrubyを用意すれば、ユーザ増えないですかね 
 まず初心者にも簡単に使い始められるようにしてユーザ数を増やす 
 インストールを嫌うのはWindowsユーザー特有の習慣なわけだけど、 
 RubyにおいてWindowsユーザーは嫌われ者だからあえてWindowsユーザーを増やすような施策はしないだろうねえ 
 せっかくWindowsならWSL使えで終わりにできる時代になったのだし、今更逆行させたくないだろう 
 休日を機にrubyの勉強を始めた 
 もうSESで業務系・制御系客先常駐は嫌だウェブに行くんだ 
 Node.jsやGoにしときなよ 
 今更Rubyはじめましたなんて保守のクソ案件やらされるだけだぞ 
 まじか。ブートキャンプなんかもチェックしてrubyを選択してるところが多かったから最初のチョイスにはいいのかと思ったんだけど 
 スタートアップでRubyも一時期に比べれば減ったけど全体として少なくはないと思うがなぁ 
 まあGoやれには同意 
 >>504のスキル次第かな 
 プログラミング教育ビジネスでRubyの採用が比較的多い理由はPHPと同じで、 
 技術スタックが固定されていてRoRの使い方さえ覚えれば一応仕事らしいことはできるから 
 一方でNodeやGoだとまずAWSやGCPでインフラを設計して、、となっちゃうから前提知識が多く、教える人にとっても難しいわけだね 
 504がどうかは知らないけど業務系の出身の人ってペチパー上がりのWeb系に比べりゃネットワークやDBなど基盤技術に強い人が多いから、 
 まずはAWS SAを取るくらいを目標にしたほうがモノになりやすいかもしれない 
  >>504  Webアプリについて学ぶならRubyからはじめるのは今でも一番効率いいよ    
 C#とかやってるならそのままASP.NET MVCやるといい 
 Javaの場合はSpringやSpring Bootやる前にRails一通り学んだ方が学習効率が高い 
  のっけからフレームワークって学ぶ順番としてどうなんだろ 
 >>508  それなりの多くは、なっちゃってエンジニアだと思うんだけど、ほとんどコピペでフレームワークを学ぶ!?雰囲気で使っている感じやんね。 
  TCP/IPからやれとはいわんけど 
 変なブログの情報どまりじゃなくMDNをリファレンスにしてくれれば迷惑はかけないかな 
 アプリ作ってるけど、Ruby選んだのにRubyは俄然200行程度に対してJSソースがその10倍の量になった事をご報告 
 Rubyガイジがこのスレに誘導しているみたいだけど 
 今更Rubyなんて流行らないし
>>503でも指摘されているけど 
 新規案件でRubyやRailsなんて採用しないから初心者が勉強するだけ無駄だぞw 
 色んなプログラ厶スレで 
 rubyスレ誘導はってる人がいるよね 
 ブロックスコープを作って、そのスコープ内だけで使える変数を作るには 
 どうすればいいのでしょうか? 
  
 a = 1 
  
 { 
   let a 
   p a # nil 
 } 
  
 p a # 1 
 a = 1 
 ->(a = nil) { p a }[] 
 p a 
  
 ただrubocop(linter)に怒られる 
 thenも使えそう 
 a = 1 
 nil.then { |a| p a } 
 p a 
  
 そもそもメソッドじゃ駄目なんだろうか 
 書式設定これが見通し良くない? 
 無駄な#が有効利用できるからな 
 採用していいぞ 
  
 n = 123 
 name = "山田太郎" 
 puts "#05d{ n }番目は#10s{ name }です" 
 今日から三日間開催されているRubykaigi(Ruby会議)にて、Wasm化の話が 
 議題になっているらしい。 
 >>504  YouTube で有名な雑食系エンジニア・KENTA は、下の動画で、 
 未経験者はシェアが高い、Ruby on Rails でポートフォリオを作れと言ってる   
 Django, Laravel はダメ。 
 特にKENTAは、PHP, Scala をオワコン認定したので、使わない方がよい   
 未経験からのエンジニア転職の必須教養【技術知識編】  



 @YouTube
@YouTube   Railsは、KENTAのサロン以外にも、RUNTEQ、東京フリーランスのデイトラなど色々ある   
 Node.js など最悪。面倒くさすぎて勉強にならない。 
 Go も初心者向きじゃないので、 
 KENTAが勧めるキャリアパスは、Rails → Go のみ   
 KENTAのサロンのAWS 部で皆、AWSのくろかわこうへいのサロンへも入る。 
 くろかわのサロンの生徒、数十人で書いた本も出てる   
 以下がバックエンドの最短コース   
 Rails, Bootstrap, jQuery から始めて、 
 Linux, Docker, Heroku, AWS, CircleCI, Github Actions   
 猛者になると、Terraform, Kubernetes。 
 ここまで行けば、どの会社よりも上 
  >>488  データベース(DB)に、2千社・2億レコードあるけど、全く問題ないと外人が言ってた   
 N+1 で一々、問い合わせをしたり、 
 多対多などで、索引なしで総当たりみたいな事をやっているとか?   
 DBの実行計画を見た方がよい   
 ミックの本も読んだ方がよい。 
 副問い合わせを、case に書き換えるとか、書いてあったような気がする。 
 よく覚えていないけど   
 データベース資格の問題を解くとか 
  >>478  漏れが作った、webrick のデモならあった   
 require 'webrick/cgi'   
 class MyCGI < WEBrick::CGI 
  def do_GET(req, res) 
   res["content-type"] = "text/plain" 
   ret = "get\n" 
   res.body = ret 
  end   
  def do_POST(req, res) 
   res["content-type"] = "text/plain" 
   ret = "post\n" 
   res.body = ret 
  end 
 end   
 MyCGI.new.start() 
  ちょっと厄介な事かもしれないですが、配列にuniqやった時に 
 [1,2,3,4,2].uniq これで 一番後ろの2が削除されて[1,2,3,4]になるじゃないですか 
  
 uniqした後の結果を[1, 3, 4, 2]にしたい時は 
  
 [1,2,3,4,2].reverse.uniq.reverse 
  
 こう2回reverseやるしか無いでしょうか? 
 reverse消すのを試みていたんですが上手い方法が思いつきません 
 uniq後の順序に依存した実装って気持ち悪いけどドキュメント読んでみると一応保証はされてるのか 
 ちょっと無理そうですね 
  
 データ構造のほうが逆順だったらreverse無しで良かったんですが 
 そっちはもう換えられないのでこのままにしときます 
 reverseをreverse_eachにしたら中間のArrayは無くせる 
 scan.map.delete_if.delete_if.shuffle[1,20] 
 とかなっても意地で1行で書くのが真のプログラマなの? 
 delete_ifが2つ続いてるとか 
 mapした後にdelete_ifとか 
 何か良くない匂いがするとは思う 
 >>529  意図が伝わりやすければメソッドチェーンでつなげること自体は何の問題もない 
 ただ1行で書くかと言われれば普通は改行して読みやすくメンテしやすくする   
 1行でも許容できる内容かどうかは引数含めて書いてもらわないとなんとも言えない 
  最近メソッド10個くらい繋げたコード書いたけどごく当たり前のコーディング 
  
 真のPGはmethod_missingの魔術コード書ける人だよ 
 サーバー側のrubyバージョンが古い時にローカル実行用スクリプトで3.0機能使ったコード書いていいものか迷う 
 もしかしたらいつかサーバー側にコード持っていく可能性もある 
 書いてもいいのかな? 
 どうせコンテナで動かすんだからどうでもいいだろ 
 今時サーバーにグローバルにインストールされたRubyに依存してるような腐った運用してる環境なら、イキって変なことするのはやめておけ 
 コンテナ? 
  
 3日1回程度実行するスクリプトをこっちで行うかサーバーに持ってくかという話 
 こっちもpc常時起動してるわけじゃないから、正確に確実に実行するならサーバーで走らせ続けるほうが楽ではあるが 
 ここまで書いて気づいたけどサーバーのメモリ余計に使う事になるからやっぱやめる 
 サーバの古いRubyコードをモジュールで使うわけじゃないなら 
 枯れたPerlで書けば解決 
 ん?いや古いモジュールとかじゃなくて、 
 ローカル実行でもサーバー実行でも良いコードを、どちらへもっていくか みたいな話 
 いまどきのRubyで書くと互換性の問題がでるなら 
 いっそPerlで書いたらという話 
 >枯れたPerlで書けば解決 
 正しいこと言ってるのに何故だか寂しくなる 
 Perlはないかなー 
 3.0だと構築しやすい環境があって 
 それがサーバーバージョンだと構築できるか不明で、 
 Perlだと普段使ってないんで 
 Perlのどのバージョンでどのモジュールバージョンがインストール有効か全く知らないので、さらに構築できる可能性が薄い、、 
 Perlの互換性をあなどるな! 
 Rubyごときの常識では測れぬぞ! 
 perlは28年メジャーバージョン変えてないだけだろw 
 変えたらモジュールが全く付いていかず 
 後付けで別言語だったことにされた始末w 
  
 7にすると言った後もスルスル詐欺。もう崩壊寸前。 
 rubyも変えない基本機能だけ永年保証版をつくればいいか 
 rubyで書かれたサイトはみんな死んでperlで書かれたmixiが生き残った 
 これも現実 
 >>544  Perl7は、Perl5最終版をほぼそのまま引き継ぐんやろ。 
 せやから問題ないはず! 
  perlの省略記法が上手くrubyにくれば文句ないんだけどな 
 _1 ってところまでは来たけどあと少し 
 マジックナンバーも覚えちゃえば効率良い 
 perlの省略記法好きなんだけどプロジェクトだと使いづらいんだよな…… 
 教えてください。 
 redditのr/rubyを読んでいて、以下のようなサンプルコードを書く人がいました。 
  
 lambda do 
   p 1 
   p 2 
   p 3 
 end[] 
  
 lambda { 
   p 1 
   p 2 
   p 3 
 }[] 
  
 -> { 
   p 1 
   p 2 
   p 3 
 }[] 
  
 このサンプルを書いた人は、Procとか、lambdaを使った書き方の違いを説明したかったようなので 
 議論の本質から外れるのですが、 
 Endや}の後の[]は、どんな意味があるかお分かりになりますでしょうか。 
 手続きオブジェクト・Proc は、 
 Proc.new, Kernel#proc, Kernel#lambda, -> 引数{ 処理 } で作れます。 
 Procを呼び出すには、Prco#call, Proc#[] を使う 
  
 g = -> x, y { x + y } 
  
 p g.call( 3, 4 ) 
 p g.( 3, 4 ) 
 p g[ 3, 4 ] 
  
 p -> x, y { x + y }[ 3, 4 ] 
  
 これらは全て、7 と出力される 
  
 最後のものは、JavaScript のIIFE (Immediately Invoked Function Expression; 即時実行関数式)みたいなものか? 
 定義されると同時に実行される 
 >>552さん  
>>553さん  
>>554さん 
 教えていただき、ありがとうございます。 
 こういうcallの仕方があるって知りませんでした。 
  >>554さん 
 p g.yield(3,4)もありますね。 
  色々あるけどrubyは多種多様な人達がどれかを選択するためにあるっつうイメージだから 
 自分が使うものは限定したほうが良いよ 
 Proc.new proc lambdaも詳細動作ちげーし 
 しかし、Perlの融通無碍さを罵倒してたんちゃううんかい! 
 あるかないかで言えばもちろんある 
 他のメジャーな選択肢と比較すれば価値が低いだけ 
 >>559  1. Webアプリの作り方を学びたい 
 2. オブジェクト指向を学びたい 
 3. プログラミングを学びたい   
 この3つのどれかなら今更でもRubyを学ぶ価値はある 
 1つの言語だけでやっていきたいみたいな考え方を持ってるならやめとけ 
  YouTube で有名な雑食系エンジニア・KENTA の初心者向けRuby on Rails サロンが有名。 
 KENTA, Rails専門学校・RUNTEQ, Deanin の動画などを参照 
  
 KENTAが勧めるキャリアパスは、Rails → Go のみ 
  
 主に、未経験者のモダンな転職先がRails。 
 つまり、ベンチャーなどへのプロの転職用フレームワーク 
  
 でもアマチュア用に、CSV などファイル操作するだけでも、Rubyは簡単 
 たくさんの言語を同時相互翻訳できるのに、 
 なぜプログラム言語はできないのだろう 
  
 言葉よりプログラム言語のほうが簡単そう 
 語彙は言葉の方が圧倒的に多いし、文法も複雑 
 プログラム言語はちょっとした違いがすぐエラーになる、ここをなんとかすれば 
 いいわけだが 
 翻訳してコンパイル実行までいっぺんに考えるから作るの無理になるんじゃね 
 まず翻訳してコンパイルエラーとかは一旦無視したコード出力してから 
 別のロジック・プロジェクトとして整形するようにするとかさ 
 段階はあると思うよ 
 >>566  結局、翻訳先にない機能をどうにかするために 
 ・機械語じみた可読性0の長大なプログラムに翻訳する 
 ・翻訳元の言語のインタプリタを翻訳先の言語で作ってしまう 
 みたいなことになるかと 
 python2->python3の翻訳も確かうまく行かなかったんじゃなかったか? 
  コンバージョンプログラムいろいろとあるよ 
 知らないだけじゃない? 
 Java to Kotlinとか 
 AltJS系も広義ではそうじゃないか 
 Opalとか 
 そういう0か100%かってのじゃなく、AIプログラミングに繋がる話だと思うけどね 
 >>566  プログラム言語に依るのだろう 
 RubyからPythonはできそうな気がするけど、C++からForthとかはあまりにも違いすぎて無理… 
 そう考えると、言葉よりもプログラム言語の方が違いが大きすぎるって事だな 
  >>566  > たくさんの言語を同時相互翻訳できるのに、 
 一般の言語で、完全に相互翻訳できるわけない 
  slack の ruby-jp ってどこかに移転しました? 
 >>566  やればできないわけもないんやから、結局は需要がない、ということやろ。   
 人の言葉は意志疎通のための翻訳やからアリ。 
 しかし、コンピュータ言語の翻訳結果は再利用のためのリソースを期待されがちやけど、ほぼムリなんでナシ。   
 実際、再利用でない実行のための変換なら、多用されとる。 
 コンパイラもそうやし、WebAssemblyなんかそのためやろし。 
  Haxeは、JavaScript(JS)、C++、C#、Java、JVM、Python、Lua、PHPを対象とする、 
 クロスプラットフォームアプリケーションを構築可能で、 
  
 各プラットフォームのネイティブ機能にアクセスできる、 
 オブジェクト指向のプログラミング言語 
  
 主に、HTML, JS ゲーム用で、Adobe Flash の後継。 
 Ruby には対応していない 
 「改訂2版 Ruby逆引きハンドブック」の「文字列を分割する」の所で、 
 split で構造体を定義するのは参考になる 
  
 Struct_Fields = %i(a b c) # フィールド名のシンボル配列 
 Foo = Struct.new( *Struct_Fields ) # 配列展開 
  
 input_data = ":x::y:" # コロン区切り 
  
 # ["", "x", "", "y"] 内の ["", "x", "y"] を取り出す 
 p tmp_ary = input_data.split( ":" ).values_at( 0, 1, 3 ) 
  
 p obj = Foo.new( *tmp_ary ) 
 #=> <struct Foo a="", b="x", c="y"> 
 values_at に、range も渡せる 
  
 # ["", "x", "", "y"] 内の ["y", "", "x"] を取り出す 
 p tmp_ary = input_data.split( ":" ).values_at( 3, 0..1 ) 
  
 下のinput_1 の出力が、なぜ、 
 ["", "", "y", ""] にならなかったのだろう 
  
 冒頭のコロンの前には、"" があるのに、 
 末尾のコロンの後ろには、"" がない 
  
 # コロン区切り 
 input_1 = "::y:" 
 input_2 = "::y:a" 
  
 p input_1.split( ":" ) 
 p input_2.split( ":" ) 
  
 出力 
 ["", "", "y"] 
 ["", "", "y", "a"] 
 ありがとう。そういうオプションがあったのか 
  
 # コロン区切り 
 input_1 = "::y:" 
  
 p input_1.split( ":" ) 
 p input_1.split( ":", -1 ) 
  
 出力 
 ["", "", "y"] 
 ["", "", "y", ""] 
 NSA、可能な限りメモリ安全なプログラミング言語を使うことを推奨 
 https://developers.srad.jp/story/22/11/13/042218/    C#・Go・Java・Ruby・Rust・Swiftなど 
 python脱落 
 たしかに、TMをつけてまでRubyを挙げるのに、Pythonを挙げないのは意味がわからんな。w 
 伝統と信頼のPerlを入れろよ!とも思うし。 
 VMもそこらの拡張もそこまで安全に書けてると思えんが 
 Ruby 初心者が最初に絶対に身に着けないといけない常識って 
 ユーザーグループのキモい人達への無条件の敬意と忠誠(を払ってるフリ)じゃね 
 rails slackはそんな雰囲気ではないが何のこと言ってるんだか 
 http://2chb.net/r/hp/1439005423/331  から誘導されて来ました。 
 JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか? 
  JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか? 
 perl好き 
 ruby嫌い 
 crystal好きだが 
 crystalもパッケージ増えていくとぐちゃぐちゃになるんだろうな 
 #! ruby 
  
 # -*- coding: UTF-8 -*- 
  
  
 require 'libev_scheduler' 
  
 Fiber.set_scheduler(Libev::Scheduler.new) 
  
  
 puts "Go to sleep!" 
  
 Fiber.schedule do 
  
   puts "Going to sleep" 
  
   sleep(1) 
  
   puts "I slept well" 
  
 end 
  
 puts "Wakey-wakey, sleepyhead" 
  
  
 exit 
 途中で送信した 
   https://docs.ruby-lang.org/en/3.0/Fiber.html   のサンプルを試してみたのだが、     
 Go to sleep! 
 Going to sleep 
 Wakey-wakey, sleepyhead 
 I slept well   
 と表示されるはずが、何故か実際に実行すると   
 Go to sleep! 
 Wakey-wakey, sleepyhead 
 Going to sleep 
 I slept well   
 と表示されてしまう 
 Fiber,schedule は、Fiber を新規作成して即時実行のはずなので、ドキュメントの通り Going to sleep が先に動くはずなのに何故順番が逆になっているのかさっぱりわからない? 
 どういうことだろう?? 
 今どき2行目が必要な環境ってある? 
 コードは全部ASCIIだし脳死で書いてない? 
  
 >Fiber,schedule は、Fiber を新規作成して即時実行のはず 
 これを信用するとしてputsもI/Oだからとか(しらんけど) 
 配列pushなんかに変えてみて最後に出力してみては 
 irb 1.6.2(ruby 3.2.0付属)について質問です。 
  
 文字入力時には自動補完せず、タブキーを押したときに自動補完させるにはどうすればよいでしょうか? 
  
 入力時の自動補完だと入力の邪魔になってしまうので任意のタイミングで自動補完させたい、という意図です。 
  
 .irbrcに IRB.conf[:USE_AUTOCOMPLETE] = false (あるいは --noautocomplete で起動) 
 とした場合、タブキーで補完候補が一気に出力されてしまい補完候補の選択ができませんでした。 
 Stack Overflow 2023年の年収。高中低 
  
 Ruby, Elixir : 9.3 万ドル 
 Go : 8.9 
 Rust : 8.7 
  
 Python : 7.1 
 TypeScript, C# : 7 
 Kotlin : 6.9 
 C++ : 6.8 
 C : 6.7 
 JavaScript : 6.6 
 Java : 6.5 
 HTML/CSS : 6:4 
 VBA : 6:2 
  
 PHP : 5 
 Dart : 4.4 
 確かに、puts もI/O だから、表示される順番は確定しないのかも 
 >>600  irb よりも、VSCode の拡張機能・Code Runner を使えば?   
 右クリックメニューから、ファイル全体または選択したコード片を実行できる 
  >>599  なるほど、と試した結果   
 r=[] 
 r << "Go to sleep!" 
 Fiber.schedule do 
   r << "Going to sleep" 
   sleep(1) 
   r << "I slept well" 
   p r 
 end 
 r << "Wakey-wakey, sleepyhead" 
 p r 
 exit   
 # ["Go to sleep!", "Wakey-wakey, sleepyhead"] 
 # ["Go to sleep!", "Wakey-wakey, sleepyhead", "Going to sleep", "I slept well"]   
 ドキュメントには即時実行とあるけど、メインの最後まで実行してから動き始めているように見えますね 
 Fiber.schedule do 
 に与えたブロック同士では想定通りの実行切り替えはされるようですが、ドキュメント通りの動きには何故かなっていない模様…… 
  一行目がexitの前の出力で、2行目が Fiberのブロックからの出力です 
 RubyのBigdecimalの最大桁数っていくつ? 
   puts (BigDecimal("2",1000) ** ((BigDecimal("2",1000) ** (BigDecimal("1031",1000) - BigDecimal("1",1000))) - BigDecimal("1",1000))) * (BigDecimal("2",1000) - (BigDecimal("2",1000) ** BigDecimal("-3705346855594118253554271520278013051304639509300498049262642688253220148476920",1000)))   
 が計算できない。    
https://ideone.com/jyxgVq  パソコンのメモリサイズが大きければ、大きくなるのかも。 
 Bigdecimal の最大桁数の設定は無いの? 
  
 Elixir では、130GB メモリで、 
 1秒間に、5千万の小プロセスを起動できたという記事を見た 
 公式サイトの日本語ドキュメントって内容ものすごく古いままなんだな 
 例えばC API一覧にrb_compile_cstrが載っているが2.7.7や3.2.1のヘッダファイルにはこの関数は無い(他にも無い関数が多数ある) 
 WebArchiveから1.8のソースを入手してみたら存在したわ 
 少なくともC APIを使おうと思ったら英語版ドキュメントを参照しないとだめだな 
 英語ドキュメント読んだらあっさりできましたわ 
 日本語ドキュメントには「1.xの頃のまま更新していません。最新版は英語版を見てね」と注記しておくべきだと思った 
 そりゃ「まだまだ書き直しが必要です」と書いてあるけどそんな古いままとか思わんやん 
  
 // rubyスクリプトで定義した関数fをCから呼び出す 
 #include <ruby.h> 
 int main() 
 { 
     ruby_init(); 
     VALUE v = rb_eval_string("def f\np 'Hello'\nend"); 
     rb_funcall(v, rb_intern("f"), 0, 0); 
     ruby_cleanup(0); 
     return 0; 
 } 
 ごめんなさい609のコードだとVisual Studioではruby_initでクラッシュするみたい 
 正しい初期化は下記の模様 
 linuxだと609のコードでも何故か動いてしまったけど 
  
 // rubyスクリプトで定義した関数fをCから呼び出す 
 #include <ruby.h> 
 int main(int argc, char *argv[]) 
 { 
  ruby_sysinit(&argc, &argv); 
  RUBY_INIT_STACK 
  ruby_init(); 
  ruby_init_loadpath(); 
  VALUE v = rb_eval_string("def f\np 'Hello'\nend"); 
  rb_funcall(v, rb_intern("f"), 0, 0); 
  ruby_cleanup(0); 
  return 0; 
 } 
 手動でgem installしたものって 
  
 > gem list | grep -v default: 
 debase (0.2.5.beta2) 
 debase-ruby_core_source (3.2.0) 
 debug (1.7.1) 
 matrix (0.4.2) 
 minitest (5.17.0, 5.16.3) 
 ... 
 をメモっておけば別PCでも同じ環境を再現できますか? 
 railsチュートリアルやってるけどminitest難しいなあ 
 実際の現場も使ってるんですか?それともRspec? 
 どちらも難しいのかね 
 まず、gem のダウンロード時に、ドキュメントをダウンロードしたくなければ、 
 各ユーザーのホームディレクトリに、.gemrc ファイルを作って、以下の2行を書いておく 
  
 install: --no-document 
 update: --no-document 
  
 既にダウンロードしたドキュメントも全て削除する 
  
 次に、gemでbundler をダウンロードする。 
 その後は各プロジェクト毎に、gemではなく、 
 複数のモジュールの依存関係を解決する、bundlerを使えばよい 
  
 Gemfile/Gemfile.lock ファイルは、 
 JavaScript のpackage.json/package-lock.json/yarn.lock ファイルと同じ 
  
 お勧めは、irb を使わず、 
 VSCode で拡張機能・Code Runner を使う。 
 これは右クリックメニューから、ファイル全体または選択したコード片を実行できる 
  
 さらにRuby on Rails なら、WSL2, Linux, Docker Desktop も使う 
  
 多言語バージョンマネージャーは、 
 日本人が作ったanyenv で、rbenv, nodenv なども使える。 
 asdf もある 
  
 Renv, crenv, denv, erlenv, exenv 
 goenv, hsenv, jenv, jlenv, luaenv 
 nodenv, phpenv, plenv, pyenv, rbenv 
 sbtenv, scalaenv, swiftenv, tfenv 
 Code Runnerを気軽に勧める人おるが 
 アレわりと邪悪な拡張だと思うんだよなぁ 
  
 ちゃんと環境作ったほうがいいし 
 簡易ですませる場合もコンソール使った方がよくない? 
 邪悪というと、語弊があるか 
 …邪道もしくは害悪あたり 
  
  
 アレがファイルではなくコードを実行してるあたりを認識せずにハマってる初学者何人か見た 
 山田祥寛のRuby 3 の本でも、MSYS2 のRuby Installer を使っているけど、 
 VSCode の拡張機能・Code Runner を使っている 
  
 Code Runner では、この設定をチェックしておくと良い。 
 Code-runner: File Directory As Cwd 
 Whether to use the directory of the file to be executed as the working directory. 
  
 そうすると実行時にcd で、そのファイルがある場所へカレントディレクトリを移動してから、 
 ruby "絶対パス/ファイル名.rb" 
 又は、ruby "絶対パス/tempCodeRunnerFile.rb" 
 で、そのファイルを実行する 
  
 tempCodeRunnerFile.rb は、Rubyのコード片をコピーした一時的なファイル 
  
 設定項目、executorMap には、多くの言語の実行コマンドが書いてある。 
 "code-runner.executorMap": { 
  
 "javascript": "node", 
  
 "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", 
 "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", 
  
 "python": "python -u", 
 "ruby": "ruby", 
 そもそもWindowsを使うべきでないし、 
 MSYS2も使うべきでないし、 
 Code Runnerなんか使うべきでない 
  Progateというプログラミング学習サイトのRuby on Rails5の開発環境を用意しようコースで、rubyのバージョン確認、SQLのインストール、Railsのインストールまではスムーズ行えたんだけど、その次のRailsアプリケーションという所でコマンドプロンプトを使って《rails new ファイル名 -G》のコマンドを入力すると、下の方に下記のようなエラーが複数出てきてその後の《rails server -G》のサーバー起動の時にも同じエラーが出て上手くいかない。 
 どうすれば良いんですか?エラー内容を見ても分からない。 
   
  それぞれのバージョンは 
 【Ruby】ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [x64-mingw32] 
 【Rails】Rails 7.0.4.2 
 【PC】64 ビット オペレーティング システム、x64 ベース プロセッサ 
  
  エラーは 
 C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `match?': invalid byte sequence in UTF-8 (ArgumentError) 
  from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `chop_basename' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:374:in `plus' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:354:in `+' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:420:in `join' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/settings.rb:444:in `global_config_file' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/settings.rb:93:in `initialize' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler.rb:331:in `new' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler.rb:331:in `settings' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/env.rb:20:in `report' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:72:in `request_issue_report_for' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:50:in `log_error' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:109:in `rescue in with_friendly_errors' 
  from C:/Ruby30-x64/lib/ruby/3.0.0/bundler/friendly_errors.rb:101:in `with_friendly_errors' 
  from C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/bundler-2.2.33/libexec/bundle:37:in `<main>' 
 VisualStudioCodeでRailsの環境構築が上手くできません 
 https://ja.stackoverflow.com/questions/92611/visualstudiocode%E3%81%A7rails%E3%81%AE%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89%E3%81%8C%E4%B8%8A%E6%89%8B%E3%81%8F%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93    ここにあるのと同じハマり方してるなら、ユーザー名が日本語になってて 
 ハマってるパターンかなあ。   
 自分ならとりあえず指示通りにC:\TempとC:\Homeフォルダを作ってコマンドプロンプトで 
 set TMP=C:\Temp 
 set HOME=C:\Home 
 して試してみるかな。   
 駄目なら次は新しくアルファベットのみでユーザー作って試す。 
 途中で再インストールも辞さない構え。 
 どうしても解決できないがRailsに触ってみたいなら 
 Railsチュートリアルに従ってCloud9上でやるか(多分クレカが必要) 
 WSLの導入を検討するかかなあ。 
  
  
 昔もフォルダ名にスペースが含まれたり日本語が含まれてて 
 動かんとかよくあったけどいまだにあるんだなあ。 
 >>621   ユーザー名は日本語ですねwひらがな2文字です。 
 それがそんなに影響してるんすね 
  >>621   とりあえずユーザー名を変えて試してみたらいいんですかね? 
  >>624  多分単純にユーザー名変えるだけだとフォルダ名は変わらないから駄目なんじゃないかな。 
 新しくアルファベットのみのユーザー作って、そのユーザーでログインしないと。     
 ただ、それをすると今のユーザーの設定は引き継がれないし 
 Rails使う時だけそのユーザーにログインしないといけなくなるのでちょっとめんどくさいかも。 
  だから、初心者ほど、あれほどWindowsを使うなと言っているわけで 
 RailsチュートリアルでCloud9をわざわざ使ってるのも環境統一できるからだしなあ。 
 自分がどうしてもWindowsマシン1台でやれって言われたらWSLでUbuntu入れて 
 そこでやる。 
 >>625   ユーザー名を変えた後にrubyをアンインストールして入れ直したりしても無理なんですかね? 
  Windows固有の問題も聞かないと解決できないんだし 
 WSL2でやるのがまちがいないよ 
 このあともネイティブ拡張や外部プログラムに依存してるgemで絶対ハマる 
 >>625   rails使う時だけで良いですね、指示通りにできなくてどうしてもやりたくてモヤモヤしてるだけなんで。 
 なんなら新しいユーザーをrailsにしようとおもいます 
  >>630  やってみて、できたら報告してくれるとうれしい。     
 それでも駄目ならWSLについて調べてそっちでやれば割とすんなり行くんじゃないか。 
 ググるかqiita調べれば記事いっぱいでてくるだろう。 
  >初心者ほど、あれほどWindowsを使うな 
  
 Rubyに関しては同意 
 っていうかRubyもうオワコンで良くね 
 よく分かんないんすけどWindowsでrubyを触ること自体あまり良くないんすか? 
 そもそもWindows上でプログラミングすることがあんまり推奨できない 
 パスとか漢字コードとか引っかかるところ大杉 
 >C:/Ruby30-x64/lib/ruby/3.0.0/pathname.rb:50:in `match?' 
 : invalid byte sequence in UTF-8 (ArgumentError) 
  
 ウェブ系では全言語で、Windows の日本語・CP932(shift-jis), UTF-16 がダメ。 
 それで、MSYS2 でバグる 
  
 日本語のユーザー名やファイルパス、 
 C:\Program Files などのファイルパス中の半角空白もヤバイ 
  
 \ もダメだから、例えばPython では、 
 C:\Users\Owner\Desktop を、C:\\Users\\Owner\\Desktop みたいに書いている。 
 Rubyでは、C:/Users/Owner/Desktop と書ける 
  
 でも、全言語の入門書ではLinux ではなく、MSYS2を使う。 
 理由は、初心者がLinuxの勉強するのを避けるため 
  
 そこで、日本語でバグらないように一計を案じたのが、 
 irb ではなく、VSCode の拡張機能・Code Runner を使う方法 
  
 本当はRails のローカル開発なら、 
 WSL2, Linux, Docker Desktop, Windows Terminal を使う。 
 YouTube のDeanin の動画を参照 
  
 これは、ハイパーバイザーでLinuxも起動するから、 
 メモリ8GB ぐらいのパソコンでもキツイ 
 シェア大きいデスクトップOSから小さいOSに行っても仕方がない。 
 個人のスクリプトなんて殆どはデスクトップのちょっとした自動化やツール作成に過ぎんしWebでもRubyは落ちていくだけなんだから。 
  
 プログラミング言語やそのライブラリが不出来なのが原因で 
 自分のOS乗り換えるとか馬鹿げすぎてる。 
 殆どの人にとって本末転倒。 
 >>638  それは違うな 
 WindowsのOS自体が不出来なのが原因 
  不出来なんて書くから荒れる 
 PythonやUnityと違って元々Windows想定してないだけで 
 無理やりポーティングした連中が周辺含めて面倒みきれてないのが悪い 
 黒田努の3冊が分かりやすい 
  
 改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9 
 Ruby 2.5.1, Rails 5.2 の本 
  
 Ruby on Rails 6 実践ガイド、黒田努、2019/12 
 Ruby on Rails 6 実践ガイド[機能拡張編]、黒田努、2020/5 
  
 基礎 Ruby on Rails を読んだら、 
 確か、Rails チュートリアルのRails 5 なら無料で見れる 
  
 昔は皆、Cloud 9, Heroku で作っていたけど、 
 Herokuの無料枠が無くなったのか? 
  
 YouTube で有名な雑食系エンジニア・KENTA の初心者向けRailsサロンなら、月千円。 
 他には、Rails専業のRUNTEQ、東京フリーランスのデイトラなど 
  
 MSYS2 では、またデータベースでバグったりする。 
 基本的に、CP932 で動くようなモジュールは無い。 
 CP932の事を知っている外人は、どこにもいない! 
 WindowsとUnix互換の違いを理解していないと 
 RubyをWindowsで使った際に発生するトラブルに対処するのは難しい 
 それだけよ 
 >>641  Pythonが元々Windows想定してる? 
 ご冗談を 
  とにかく、WindowsでWSL以外のUnix系環境は、一切入れないぐらい決め込んで、Windowsと付き合うぐらいのほうがいい 
 WSL以外に、CygwinとかMSYSとか入れるべきでない 
 (もちろん、分かっているならば、共存できるが、無駄以外の何ものでもない)    
>>641  それを言うなら、Pythonもひどい 
 WSLあるし今はあんま流行ってないけどvirtualboxでvagrant環境とかね 
 そういえばVagrantfileはrubyで書かれてたんだっけ 
 >>637  シレっと嘘を描くな 
 おまえ KENYA 信者か本人だろ 
  Windows版ではじめたんですがirbのヘルプ機能やriで反応がなくなって困ってます 
 確実に再現できる手順はこんな感じ 
  
 1. irb を起動して Stri まで打ってタブ補完 
 2. ドキュメントの先頭が表示されたら Alt+d で全体表示 
 3. ヘルプのページャーを抜ける(lessを使ってるのでqを入力) 
 4. 画面がページャーから戻るがキーへの反応なし 
  
 ヘルプを活用したいのですが付き合い方を教えてください 
 #include <ruby.h>したプログラムでfcloseを呼び出したらrb_w32_fcloseという関数が呼び出されてその中でエラーになる現象に出くわした 
 rb_w32_fcloseでぐぐったらずばりruby.hから#includeされているwin32/win32.h中で「#define fclose(f) rb_w32_fclose(f)」されているのが原因と解説しているサイトがあった 
  
 しかしこの解説は14年前の記事だよ!?ruby 3.2.1でもこの#defineが残っていて同じ問題が起きるよ!? 
 標準ライブラリ関数であるfcloseを#defineするなどという行儀の悪いことをしたばかりか3.2.1でもまだ直っていないとはどういうことであろう 
 >>648  vcpkgでビルド(vcpkg rubyでぐぐって最初に出て来るページの方法)したRuby 3.2.1のirbだと再現しなかった 
 インストール方法とバージョンを書いた方が答えが来るかも 
  ありがとう。 
 rubyinstaller-3.2.1-1-x64.7z を C:\Ruby32-x64 に展開して 
 C:\Ruby32-x64\bin にパスを通しました。 
 ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x64-mingw-ucrt] を 
 Windows11 上の Windows ターミナル バージョン: 1.16.10262.0 で使ってます。 
  
 確実に再現するわけではないようで、ページャーから戻って反応したら 
 バックスペースで Stri に戻してタブ補完、Alt+d を何度か繰り返すと発現します。 
 スクールでRubyやってるんだが仕事でc#やれることになって辛すぎる 
 >>651  mingwやなくてVCビルドと書いてんのに試さないんだ? 
 Win連携するならしゃーないけど 
 そうでないならWSL2で動かすのがまちがいないよ 
  発現したりしなかったりってのが気になったので 
 思い付きでaffinityを指定して使うコアを1個だけ指定したら発現しなくなりました。 
 めんどくさいんでもうこれで解決ってことで 
 vcpkgとは別にrubyinstaller-3.2.1-1-x64.7zを解凍したやつあるからちょっと試してみた 
 Windows10だしWindowsターミナル入ってないからpowershellでやってみたけど再現しないな 
 >>637  に書いたように、MSYS2/MinGW, irb はダメ! 
 データベースや日本語でバグル   
 書き忘れたけど、WSL2, Linux では、 
 日本人が作った多言語バージョンマネージャーのanyenv がお勧め。 
 同様のツールに、asdf もある   
 対応言語 
 Renv, crenv, denv, erlenv, exenv 
 goenv, hsenv, jenv, jlenv, luaenv 
 nodenv, phpenv, plenv, pyenv, rbenv 
 sbtenv, scalaenv, swiftenv, tfenv 
  言語開発って続いてるの? 
 教科書でもPython でしょ 
 国が採択しない言語開発してどうするの? 
 負けを認めろよ 
 Rubyはほんと、教材商法・スクール商法で見るだけのものになっちまった 
 Rails以外にも案外Ruby製のツールがあって 
 依存してるところまだまだ多いと思うよ 
 個人的にはまったく困らないけど 
 HiPro Tech 2022 によると、 
  
 バックエンドエンジニア : 80万円 
 Ruby : 90 
 Python, Go : 85 
  
 レガシー 
 C#.NET, ASP.NET, Java : 80 
 C : 70 
 自分のいる会社だとJava(とかKotlinでAndroid)案件は50人規模とかあるけどRuby/Rails案件は4,5人規模が多い 
 個人的には圧倒的にRubyが好きだけど 
 irbでAlt+dのフルヘルプ表示の後で固まる件だけど 
 第12世代のCore i7そのまま(論理CPU20個)だとそこそこ起こる 
 Start-Process 'ruby' '-S irb' -NoNewWindow -Wait -PassThru | % { $_.ProcessorAffinity = 1 } 
 とかして論理CPU1個に指定すると起きない 
 古い第3世代のCore i7そのまま(論理CPU8個)だと起きない 
 微妙な競合が起きてる雰囲気だけどRubyを信じて使っていいのか不安になってきた 
 この前久しぶりに覗いてみたんだけどRubyがミニツクって死んだの? 
 PowerShell のStart-Process の事? 
   >>637  に書いたように、MSYS2/MinGW, irb はダメ! 
 データベースや日本語でバグル 
 ターゲットがLinuxやなくホストOSだったら? 
 Webアプリ化できる範囲ならいいけど 
 最大値が複数ある場合に、該当する全てのインデックスを取り出すには、どうする? 
 漏れのやり方は、 
  
 ary = [ 5, 4, 5 ] 
 p max = ary.max #=> 5 
  
 p result = ary.each_with_index.select { |num, idx| num == max }. 
  map { |ary| ary[ 1 ] } 
  
 #=> [0, 2] 
 fedoraです 
  
 libruby.so.3.1 に依存してて 
 require open-uri 
 が失敗するようです。 
 3.2では動くようになりませんでしょうか? 
 環境隠すしエラーそのまま貼らないからエスパー必至 
 自前ならビルドに失敗してる 
 解決できないならDockerコンテナ使ったほうがいい 
 最近は出来るだけRubyは使わない方向としてる。理由は依存関係が複雑過ぎるからトラブル時に解決が困難なこと。texliveみたいなのあってもいいんじゃない? 
 マイナーなので症状でググっても、最近はヒットしないケースが殆んど。 
  
 既存でやむを得ないもの以外、外せるものは少しづつ外しているのが実情。 
 そもそも、libruby.so.3.1 で、Ruby 3.2 が動くの? 
 バージョンが違うのに 
  
 漏れは、Windows 10, WSL2, Ubuntu 18.04 で、 
 日本人が作った、多言語バージョンマネージャーのanyenv で、 
 ruby, node.js を入れているけど、同様のツールに、asdf もある。 
 anyenvでは、nodenv, pyenv, rbenv などを使う 
  
 他には、Docker を使う 
  
 君は、どのバージョンマネージャーを使っている? 
  
 そもそも、fedora は素人向きじゃない。 
 テスト環境用。まともに動かないだろ 
  
 Ubuntuの安定版、20.04/22.04 を使いな。 
 あまり新しいのにすると、各モジュールが動かないかも 
 どっちも so.3 にシンボリックリンクされてるな 
 独学の初心者です 
 どのクラスでも使う汎用的なメソッドを作りたいんですが 
 こういう時ってクラス外で定義して関数にするのか 
 それともモジュールにするのとどちらが良いのでしょうか? 
 というかモジュールの使い処がいまいち理解できていません 
 理想的にはMathやFileUtilsを参考にmodule_function 
  
 クラス名を名前空間的に使ったクラスメソッドなんかも悪くはない 
 ありがとうございます 
 どちらも試しましたが取りあえずmix-inの方でやっていく事にしました 
 rubyで、あるファイルのファイル名を取得したいとき、 
 そのファイル名がUTF-8-MACの場合どうすればいいですか? 
 「ruby UTF-8-MAC」で検索! 
  
 Macのファイル名に使われる、NFDなUTF-8(通称UTF-8-MAC)を、通常のUTF-8に変換する。 
 UTF8-MAC、アップルによって修正された、 
 Normalization Form D(NFD・分解済み)という形式のUTF-8です。 
 濁音や半濁音が2文字扱いになる 
  
 String#encode を使って 
  
 filename_utf_8 = filename_utf_8_mac.encode(Encoding::UTF_8, Encoding::UTF8_MAC) 
 MAC からその他の環境であれば String#unicode_normalize() で NFC に変換しても良いでしょうけど 
 MAC から MAC であればそのまま何もしない方が良いと思う 
 rubyでOCRAを使って感動していましたが、 
 最近はOCRAでもエラーばかりです。 
  
 exe化の良い方法を教えてください。(教えて君ではなくおじいさんになってしまった。) 
 Rubyって面白そうなのに 
 日経ソフトウェアで一度も特集されませんね。 
 今からRubyを勉強するぞ・・・ 
 止めるなら今のうちだ。 
  
 それとも負けずに教えてください。 
 目標は欲しいツールを自分で作れるようになることです。 
 たのしいRubyと独習Rubyを購入 
   5chのこれ、アクセスできなかった。 
 >>Rubyist Magazine - るびま 
 >>
http://jp.rubyist.net/magazine/  正しくは、これかな、「
https://magazine.rubyist.net/」 
 しかしこのスレではあまり話もできないわ 
 なんせエロCMで気が散ってしまうものw 
 >>688  ありがとう。   
 とりあえず、ひたすらコードを入力してみます。 
 よいサイトや書籍があったら教えてください。 
  日経ソフトウェアは、ホビーっぽい 
  
 Ruby, Java はバックエンド技術者だから、プロや転職情報。 
 Linux, AWS を使う。 
 Ruby on Rails は、モダンなスタートアップ企業でフルリモート 
  
 一方、Javaは、SIer で客先、インターネット禁止。 
 中抜き・多重請負構造の土方。 
 家電量販店のバイトまでさせられる、イメージ 
  
 たのしいRuby・独習Rubyの次は、マネーフォワードの逆引きを読めばよい。 
 改訂2版 パーフェクトRubyもある 
  
 それ以降は、Railsになる。 
 筑波大学も使っている、Railsチュートリアル日本語版の古いRails 5 なら、無料で読める 
  
 これをスラスラ読むために、有名YouTuber が習得技術ロードマップを作っている。 
 雑食系エンジニア・KENTA とか、Rails専門学校・RUNTEQ の菊本とか。 
 Deanin はRailsの第一人者 
  
 最初はファイル・文字列処理と、 
 プログラミングのお題みたいな、ちょっとしたパズルを解くのが良い 
  
 Enumerable のメソッドは、よく見ておいた方が良い。 
 パズルに使えるから 
 日経ソフトウェアは、ホビーっぽい 
  
 Ruby, Java はバックエンド技術者だから、プロや転職情報。 
 Linux, AWS を使う。 
 Ruby on Rails は、モダンなスタートアップ企業でフルリモート 
  
 一方、Javaは、SIer で客先、インターネット禁止。 
 中抜き・多重請負構造の土方。 
 家電量販店のバイトまでさせられる、イメージ 
  
 たのしいRuby・独習Rubyの次は、マネーフォワードの逆引きを読めばよい。 
 改訂2版 パーフェクトRubyもある 
  
 それ以降は、Railsになる。 
 筑波大学も使っている、Railsチュートリアル日本語版の古いRails 5 なら、無料で読める 
  
 これをスラスラ読むために、有名YouTuber が習得技術ロードマップを作っている。 
 雑食系エンジニア・KENTA とか、Rails専門学校・RUNTEQ の菊本とか。 
 Deanin はRailsの第一人者 
  
 最初はファイル・文字列処理と、 
 プログラミングのお題みたいな、ちょっとしたパズルを解くのが良い 
  
 Enumerable のメソッドは、よく見ておいた方が良い。 
 パズルに使えるから 
 05:48:38.93 
 05:49:02.13 
  
 1クリックで2回も書き込んで、23秒もずれるなんて、 
 サーバー時間が狂いすぎ。めちゃめちゃ 
 >>690  ワイはRubyでスレ読みすることにしたわ 
  データを取得してから、 
  
 ERB で、<% 〜 %>, <%= 〜 %> を使って、 
 または、Nokogiri を使って、HTML を作るとか、 
  
 Selenium Webdriver で、ブラウザを自動操作するなども出来る 
 プログラミング入門にピッタリなビジュアル言語「Pickcode」が登場 
 https://gigazine.net/news/20231122-pickcode/    PickRubyを作って利用者を増やそう 
 まっつん意外と趣味いいな 
 特にCAにはかなりこだわりがあるようだ 
  
 女性セレクト指示書 
  
 ・松本の要望 
 ユニクロ 
 マクドナルド 
 スタバ店員 
 中学高校教師 
 弁護士 
 広報女性 
 人妻(子供なし) 
 CA(ANA、JAL) 
  
 ・松本のNG 
 茶髪 
 モデル 
 飲み屋 
 美容師 
 アパレル 
 CA(LCC) 
 The Odin Project 
 https://www.theodinproject.com    High quality coding education maintained by an open source community.   
 ウェブ開発者用で、無料のRuby on Rails, React コースなどもあるけど、これらはどうでしょう? 
 Rubyって海外でもオワコンの雰囲気なのか 
 https://opers-kaigaihanno.com/post-323/    結局、Railsしかヒットしなかった言語って感じ 
 ツール類で使われてたりする 
 最近のはPython/JS/Go/Rust製が大半だけども 
 インフラ系のツールは一昔前はRuby製多かったよね 
 最近ではその辺はみんなからGoかRustに行っちゃって絶滅危惧種だけど 
 RubyはWeb開発だとしばらくは使われると思うけど、そのうち消えていくんだろうなあ。 
 Pythonの文法はあまり好きではないけど、一度主流になるとなかなかなくならない。 
 The Ruby on Rails Resurgence - DevOps.com 
 BY: JIM REMSIK ON APRIL 2, 2024  
https://devops.com/the-ruby-on-rails-resurgence/  a=",,,,".split(".") 
 と 
 a=",,,, ".split(".") 
 で 
 a[0]が違うのがやりにくい 
 https://docs.ruby-lang.org/ja/latest/method/String/i/split.html  limit == 0 分割個数制限はなしで、配列末尾の空文字列を取り除く 
 limit < 0 分割個数の制限はなし   
 アホな仕様やな 
  >>704  違う文字列だしsplitされないんだから結果も違って当然では? 
  誰か、以下の間違いを文書係に伝えてください! 
 漏れは、やり方がわからないので   
 class CSV::Row - Ruby 3.3  
https://docs.ruby-lang.org/ja/latest/class/CSV=3a=3aRow.html    field, delete の引数は、 
 header_or_index, minimum_index = 0 
 なのに、   
 self[header_or_index] = value 
 self[header, offset] = value 
 の引数は、なぜ2つに分けたのか?   
 self[header_or_index, minimum_index = 0] = value 
 と書けば良かったのでは?   
 それと、 
 self[header, offset] = value 
 のコード例が、 
 self[header_or_index] = value 
 の所に書いてあるのも間違い   
 それと、 
 fields(*headers_and_or_indices) -> Array 
 push(*args) -> self 
 のコード例に、Copy ボタンが無い 
 fields(*headers_and_or_indices) -> Array 
 values_at(*headers_and_or_indices) -> Array 
 与えられた引数に対応する値の、配列を返します。   
 要素の探索に、CSV::Row.field を使用しています。   
 [PARAM] headers_and_or_indices: 
 ヘッダの名前かインデックスか、Range のインスタンスか、 
 第 1 要素がヘッダの名前で、第 2 要素がオフセットになっている、 
 2 要素の配列をいくつでも指定します。 
 混在することができます。 
 [RETURN] 
 引数を与えなかった場合は、全ての要素を返します。   
 これも、オフセットを指定した場合は、 
 このインデックスより後で、ヘッダの名前を探します。 
 重複しているヘッダがある場合に便利です。 
 みたいに書くべきでは?   
 require "csv"   
 csv = CSV.new( "a,b,a,a\n1,2,3,4", headers: true ) 
 table = csv.read 
 row_3 = table.first 
 p row_3.values_at( ["a", 3], "a", 1, ["a", 1], 3..4 ) 
 # => ["4", "1", "2", "3", "4", nil]    
>>708  誰か、漏れの代わりに文書係に伝えてください! 
 コードのドキュメントを作るとき選択肢はRDocかYRADだけど、 
 どっちもデザインがいけてないしそもそも見づらくない? 
 YARDはテンプレートで変えられるみたいだけど公開されてるのが全然見つからないし 
 何とかならんのか 
 漏れは、YARD を使っている 
  
 RDoc は古いから 
 perlは作り直したからダメになったんじゃねーよw 
 自然言語の性質をより多く取り込もうとしてパンクしたんだよ 
 メクラ 
 Ruby の仕様に、破壊的な変更が、2.0 以降、入っていないのは、 
 Python・Perlの言語開発者による独善的な?変更での失敗に学んで 
 いる から、だと思います。)    
https://qiita.com/asip2k25/items/729d3426c1efa802f336  何かをオワコンって言う奴は10年前の知識で話していて最新情報を追ってないのは確か 
 今までの経験では100%そうで、追ってる人や俺が話すと驚くかむすっと黙る 
 >>713  それを言うならRuby1.8 -> Ruby1.9の時に互換性ぶっ壊す言語仕様の変更した闇歴史を反省したんでしょ。   
 前向きに捉えるなら、Maz氏がこの時の変更で満足した。 
  >>715  浅さ優先で喋るからな 
 ITエンジニアは 
 文化なら仕方あるまい 
  >>717  計算機科学(computer science)相当の博士課程を修了していないITエンジニアは論外 
 そんなITエンジニアとやりとりや取引なんかやるだけ無駄 
  今年が2024年だということも判らなくなった痴呆老人なんだろう 
 計算機科学とかは詳しくないが、そういう意味じゃRuby技術者認定試験とか暗記中心であれ持っててもプログラマーとして優秀とは言えないんだよなぁ。 
 言語仕様オタクを欲しいわけじゃないんだっての。 
  
 まだ基本情報技術者試験の方がプログラミング能力を測ってる。 
lud20250118104347
ID:6stPm5Ss0のレス一覧:
 >>151  変数名と値(リテラル)の区別があやふやなんでは? 
 変数名をクォートしようとしている時点でヤバイ。 
  >>148-150  ありがとうございます。 
 rubyのインストールが上手く出来なかったので明日またやってみます。 
  >>150  Array#to_csvってかなり非効率的なんで避けたほうが無難 
 csv_str = CSV.generate{|csv| result_ary.each{|it| csv << it } } 
  Pythonみたいに行けてるエクセルライブラリが欲しい。。 
 >>160  require "bundler/inline" 
 gemfile do 
  source "
https://rubygems.org" 
  gem "benchmark_driver" 
 end   
 Benchmark.driver do |x| 
   x.prelude %{require "csv"} 
   x.prelude %{ITEMS = Array.new(1000){ ["fooo", 12345,6789] }} 
   x.report "to_csv", %{ csv_str = ITEMS.map{ _1.to_csv }.join } 
   x.report "&:to_csv", %{ csv_str = ITEMS.map(&:to_csv).join } 
   x.report "generate", %{ csv_str = CSV.generate{|csv| ITEMS.each{|it| csv << it } } } 
 end   
 計測すると6倍ほどto_csvの方が遅い事がわかる   
 to_csvは  
https://github.com/ruby/csv/blob/efb257e28f85741fb5c2637f707121e55e4c5ca9/lib/csv/core_ext/array.rb  https://github.com/ruby/csv/blob/efb257e28f85741fb5c2637f707121e55e4c5ca9/lib/csv.rb#L1452  見ると分かるがCSV.new等を毎回行う手抜き実装(バグりにくいというメリットは確かにある) 
 1行だけならともかく複数行をcsv化したいなら微妙 
  実際にはどうせファイルに書き込むんだからファイルIOがボトルネックになるんで誤差だよ 
 無意味なベンチマークだね 
 >>162  キャッシュなしフロッピーディスク💾を使ってるのかな?w 
  >>162  Benchmark.driver do |x| 
   x.prelude %{require "csv"} 
   x.prelude %{require "tempfile"} 
   x.prelude %{ITEMS = Array.new(1000){ ["fooo", 12345,6789] }} 
   x.report "to_csv", %{ Tempfile.create{ _1.write ITEMS.map(&:to_csv).join } } 
   x.report "generate", %{ Tempfile.create{ _1.write CSV.generate{|csv| ITEMS.each{|it| csv << it } } }} 
 end   
 確かに縮まりはしたが 
 うちのオンボロPCでも5倍弱の差が出ました。 
  c="C:\Program Files\7-Zip\7z.exe" 
 p c 
  
 で出力は 
  
 > "C:Program Files\a-Zip\az.exe" 
  
 となってしまうんですが、なんで7がaに変わってしまってるんでしょうか? 
  
 2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]です 
 https://ja.wikipedia.org/wiki/ベル文字 
 > ベル文字は、ASCIIとUnicodeでは十進数で7 
 > 1972年に作られたC言語では、ベル文字は文字定数 \aで表される。'a'は"alert"や"audible"の頭文字である。'b'は既にバックスペースに使われていた。 
  >>166  バックスラッシュ記法で8進数表記のパターンとして解釈されるから 
 式展開が必要なければシングルクウォートにするといい  
https://docs.ruby-lang.org/ja/3.0.0/doc/spec=2fliteral.html#backslash    ¥007も¥07も¥7も同じ 
 C言語由来のエスケープシーケンス 
  >>166  >>168のシングルクォートよりも、パスの区切り文字を「/」にすることをすすめたい。   
 パスの区切り文字が「¥」でなければいけないのはコマンドプロンプトなど一部のみ。 
 だいたいが「/」でも可。 
  >>167-169  まとレスにて失礼します   
 aに置き換わる謎はわかりました 
 シングルクォートなのですが、面倒くさいことにWindowsの決め打ちで空白が入っているので 
 それを考えるとダブルクォートで囲まざるを得ず、けっきょくこんな形になってしまいました   
 c="\"C:\\Program Files\\7-Zip\\7z.exe\""   
 このあと 
 system("#{c} a -mx9 ...") 
 みたいな形で呼び出します 
  >>170  c = '"C:\Program Files\7-Zip\7z.exe"' 
  >>171  ああなるほど 
 それで行けますね 
 昔は自分でもそんな書き方してたかもしれなかったです    
>>172  ご案内ありがとうございます 
 シングルクォートとダブルクォートの意味とか違いは理解していたのですが 
 中に\入れたときとか、とくに168さんに指摘されたように8進数での扱いが特別だということは 
 よく理解していなかったので、これを機会に知識を正確にしておきます 
  完全にプログラミング0からで「スラスラ読めるrubyふりがなプログラミング」を買って始めたのですが 
 macbookairでrbenvでruby3.0.1をダウンロードしてrbenv versionでは3.0.1と表示されるのですがruby -vでは2.6.3と元々入ってるrubyが表示されます 
 まだ何も分かってないのにhomebrewとrbenvのダウンロードが上手くいかず色々見ながらやってきたので余計な事をしてしまったのではないかと心配です 
 >>174ですが 
 自己解決しました 
 bash profileに何か誤ったものを書き込んでしまったようで消したら3.0.1に切り替わりました 
  Rubyで、syntax error 的なものが生じていても、そのまま実行が続けられている 
 ように見える現象が時々起きる。 
 これは何が起きている? 
 errorが起きた場所で停止させる方法はある? 
 >>176  そのエラーが起こった時に何が表示されているの? 
  >>178 
 例えば、xxx という変数を定義してない状態で、 
 [aaa.rb] 
 def some_func() 
   ・・・ 
   print( "xxx=#{xxx}\n" ); 
   ・・・ 
 end 
 という関数を呼び出すと、 
  
 aaa.rb:3882:in `some_func': undefined local variable or method `xxx' for main:Object (NameError) 
   from aaa.rb:5638:in `main' 
   from aaa.rb:5667:in `<main>' 
  
 と出るが、そのまま実行が続けられてしまう。  レス:1-200 201-400 401-600 601-800 801-1000 ALL 
このスレへの固定リンク: http://5chb.net/r/tech/1608837867/ヒント:5chスレのurlに 
http://xxxx.5ch
b.net/xxxx のように
bを入れるだけでここでスレ保存、閲覧できます。
TOPへ  TOPへ  
 
	  
	
	
	
全掲示板一覧 この掲示板へ 人気スレ | 
	Youtube 動画 
	>50 
	>100 
	>200 
	>300 
	>500 
	>1000枚 
	新着画像
 ↓「Ruby 初心者スレッド Part 67 YouTube動画>12本 ->画像>14枚 」を見た人も見ています:
・Ruby 初心者スレッド Part 63 	
・Ruby 初心者スレッド Part 66 
・Ruby 初心者スレッド Part 64 	
・Ruby 初心者スレッド Part 65 	
・Ruby 初心者スレッド Part 61 	
・Ruby 初心者スレッド Part 62 	
・【初心者歓迎】最新COBOLについての質問スレ
・Hackintosh初心者スレッド 	
・Elona初心者質問スレッド その115  
・模型塗装初心者スレッド103 
・Blender 初心者質問スレッド Part29  
・Blender 初心者質問スレッド Part37 
・Elona初心者質問スレッド その111  
・Blender 初心者質問スレッド Part52 
・Blender 初心者質問スレッド Part30 
・Blender 初心者質問スレッド Part41 
・Blender 初心者質問スレッド Part38 
・youtube初心者スレ収益化 跳躍編part18 
・薪ストーブ 初心者質問スレッド 
・Elona初心者質問スレッド その103
・ヤフオク初心者質問スレッド 817問目 	
・アセンブラ初心者スレッド 2	
・囲碁・初心者専用の質問スレッド 第36局 
・YouTube初心者スレ 収益化 跳躍編 Part.39 
・youtube初心者スレ収益化 飛躍編part12 
・Cubaseシリーズ 初心者質問スレ Part21
・Blender 初心者質問スレッド Part31 	
・[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS 初心者スレ9 	
・youtube初心者スレ収益化 跳躍編part36 
・youtube初心者スレ収益化 跳躍編part21 
・【投資一般板】 初心者質問スレッド Part48 
・初心者もOK! FreeBSD質問スレッド その122 	
・ヤフオク初心者質問スレッド 823問目 	
・Youtube収益化 初心者スレ Part18 ©2ch.net 
・Blender 初心者質問スレッド Part35 	
・Blender 初心者質問スレッド Part29 	
・Elona初心者質問スレッド その124 
・【信長の野望Online】初心者スレッド61 
・【DQ10】初心者大使をねこきちが語るスレッド 
・ヤフオク初心者質問スレッド 812問目 	
・ヤフオク初心者質問スレッド 810問目 	
・ヤフオク初心者質問スレッド 811問目 	
・パソコン初心者総合質問スレッド Part2048 
・Elona初心者質問スレッド その109  
・Elona初心者質問スレッド その120 	
・FX投資初心者情報交換スレッド Part.1
・[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS 初心者スレ6 	
・【信長の野望Online】初心者スレッド59 	
・パソコン初心者総合質問スレッド Part2053 
・[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS 初心者スレ2 	
・【投資一般板】 初心者質問スレッド Part40 
・パソコン初心者総合質問スレッド Part1899
・ピアノ大人初心者のためのスレッド 14日目 
・★模型塗装初心者スレッド96ガンプラからスケールまで★ 
・【投資一般板】 初心者質問スレッド Part32 	
・[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS 初心者スレ8 	
・[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS初心者スレ29 	
・[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS初心者スレ28 	
・【投資一般板】 初心者質問スレッド Part59 
・【投資一般板】 初心者質問スレッド Part50 
・★模型塗装初心者スレッド83 ガンプラからスケールまで★ 	
・★模型塗装初心者スレッド71 ガンプラからスケールまで★
・★模型塗装初心者スレッド87 ガンプラからスケールまで★ 
・★模型塗装初心者スレッド88 ガンプラからスケールまで★ 
・[PUBG] PLAYERUNKNOWN'S BATTLEGROUNDS初心者スレ27 	
  
    | 
  
 
 17:13:55 up 9 days,  7:36,  0 users,  load average: 89.40, 102.75, 98.13
 in 0.019838809967041 sec
@[email protected] on 110106
 |