Ruby 初心者スレッド Part 67
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 66
https://mevius.5ch.net/test/read.cgi/tech/1578068134/
るりまサーチ (リファレンス検索)
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 >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
ttps://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されないんだから結果も違って当然では?