Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/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 >>430
宣教師の経験があるレベルやぞ?
宗教のことなんかぜひとも訊いてくれ、ってなもんやろ。
Windowsのことを訊いたって、UNIX至上主義の講釈が返ってくるだけや。 Rubyは書きやすくていいが
もうちょいWindowsに対応すりゃ良かったのに
PythonにAIブームでパイ喰われて
一気に廃れてきたな URLの差か?
https://www.ruby.org/ (存在しない)
https://www.python.org/
https://www.perl.org/
それか英語で書かれたドキュメントの総量、
C/C++でのライブラリの作り方のドキュメント、
そしてendの量 >>434
個人的には ruby をもう一度盛り返したいと思っていますが
どんな分野を強化すればいいでしょうか? >>436
まずは教養レベルの数学も知らないクソコテがこの世から消えることだな >>436
RubyはRailsが強いのでWebアプリを本拠地にしていて
それはいいんだけど発展していくためにひとつは
今言ったWindows、もうひとつはAndroid
そこでアプリを作りやすい環境があるといいと思います
というのもJavaやJavaScriptはこういう
マルチプラットフォームにしやすいので
普及した面があるだろうと思うからです Javascriptがマルチプラットフォームってなんやねん >>437
教養レベルの数学とは、具体的にどういう分野ですか? >>441
少なくとも留数定理知らないバカは教養がない ちなみに教養って東大の教養学部時代のレベルってい見な Javaだって実際にはほとんどUNIXサーバーで運用されてるわけで、Windowsとの相性の悪さは本質的な問題ではない
RubyがPythonに勝てない決定的かつ本質的な原因は、Rubyコミュニティとエンタープライズ分野の仲が極めて悪いからだ
特にMatzに至ってはエンタープライズを毛嫌いしており、意図的にエンタープライズ分野の人間をコミュニティから排除している >>447
> Javaだって実際にはほとんどUNIXサーバーで運用されてるわけで、Windowsとの相性の悪さは本質的な問題ではない
UNIXサーバーで運用されるのと、Windowsとの相性がどう関係するの?
まさかUNIXサーバーで運用してるのは、WindowsやLinuxと相性が悪いからだ!って
言いたいわけ? 「主張しないOSだったから世界に広がった」TRONの生みの親・坂村健が語る 「主張しないOSだったから世界に広がった」そう張するTRONはなぜ世界に広がらなかったのか? Rubyの初歩を終えたら上達のために何か作ってみたいのですが、どんなものを作るのがいいのでしょうか?
HTMLCSSを学んだのでお問い合わせフォームを作成しようとは思っているのですが、次に作成したいもの、作成できるものがよくわかっていません。 >>453
最初はローカルだけで完結するCLIツールがおすすめ
ファイル名検索、文字列検索、ファイル名の一括置換、文字列の一括置換、ログファイルの集計のようなもの
findやgrepの再発明だけど文字列操作、コレクション操作、ファイルI/O、オプションパース、エラーハンドリング、プログラムの構造化方法みたいな基本的なことが身につく
アルゴリズムのオーダーも考えながら作ると尚良い
次にWebアクセスを伴うCLIツール
AJAXが使われてないサイトの簡単なスクレイピングがおすすめ
HTTP、ロギング、非同期処理、変化する外部リソースを扱う場合の考慮点などがわかるようになる
お問い合わせフォーム自体はRuby使わなくても実現できるけど
POSTされたデータをRubyで処理したりフォーム自体をRubyから返すようなサイトを作るのは
HTML/CSS以外にHTTPとWeb framework(SinatraかRails)を学ぶ必要があるので
他言語を習得してるのでないなら上の2つくらいは問題なくできる程度にRubyに習熟してからのほうが効率がいいよ railsの環境構築がダルい
nodejs入れさせられたりして、じゃあnodejsで開発すりゃいいじゃんってなる
他言語に頼るのかまったくわからん
あとwebpackerもエラー吐きまくりで原因調べてもまったく解決しない Railsは本来的には古典的なMVCアプリに特化していて、SPAには無駄な部分がとても多いし、原理的にフロント部分についてはカバーのしようがないからね
もはや時代に合わなくなってきているのは事実 >>453
>>454
>最初はローカルだけで完結するCLIツールがおすすめ
おおむね同意
CLIの難点は(初心者には)つまらないことだが
いきなりゲームとか作ろうとすると挫折するから
まず小物ツールを作って経験を積むのは大事だね RailsがCoffeeScript推してた頃はフロントも総合した一貫性のある技術スタックにしていこうという気概があったんだけどね
結局、時代に選ばれたのはSPAとAPIでフロントとバックエンドの間に明確な技術境界を設けるというものだった
それ以来、RailsはWebの先端から脱落し、Rubyの凋落が始まった DjangoもSpringもASP.NET(MVC/Razor Pages)もGinも
みんな時代に合わなくなってきているってことになるねw
ASP.NETなんてSSRはすでにobsolete扱い
MSは時代に合わなくなったフレームワークを莫大な開発費かけて作ってるわけだw >>453
> 次に作成したいもの、作成できるものがよくわかっていません。
それは人に聞くものでもない。
自分が作りたいと思う動機付けが無ければ、意味がない。 理想は何か作りたいアプリがあって
調べながらそのコードを書くと上達が早い
けど本当に作りたいものは難しいことが多いから
(機械学習で株式市場を予測して金を稼げるとか)
小物を作っていくうちにそれならこういうものも
できるというアイディアが湧いてくることもあるね Django はそれだけで API も造れるからまだ良いけど
Rails は終わってるな いつもの妄想虚言癖くんは相変わらずRubyもRails知らないの丸出しだな
平日昼間からID変えて連投しまくってアンチRuby&アンチMatz活動ご苦労様 超有名な「Classi」学校教育のICT活用を支援するクラウドサービスもrails製
なんと120万人近くのユーザを捌いているらしい。
これだけの規模のサービスを作れるrailsは最強。まさに覇権。 「ユーザー数」の詳細がわからんとなんとも。
のべ/ユニーク、アクセス頻度、集中度、負荷、など。 https://www.itmedia.co.jp/news/spv/2005/07/news088.html
> 「課題が出せない」「試験が受けられない」――学校向けSaaS「Classi」がつながりにくい状態に 生徒から不満の声相次ぐ
Railsが悪いというつもりはないけど、まあよくある話だよね
多く見せるために全生徒をユーザー数として謳っていたけど、コロナショック以前は実際にはほとんど使われてなかったんだろう 俺は一通り文法学んだら数独ソルバーとかbrainf**kのインタープリタ作ってたな Go, Ruby など、サーバー側は、CLI のちょっとしたフィルター・パイプなどを作るとか。
でも、しょーもない
「プログラミングのお題スレ」の簡単そうな問題を解くとか
Selenium Webdriver, Nokogiri で、簡単なものをスクレイピングするとか。
漏れはこれで、yahoo などのログインを自動化してる
SASS, Bootstrap, jQuery なども初心者向け。
Linux コマンドも、10個ぐらいは学んだ方がよい Farstep【プログラミング講座】
https://www.youtube.com/channel/UCiGdng-6ZLS5tlfw0xnG3TA
この人が、ここ1週間で4本、Rails 動画を上げてる。
Bootstrap を使ってる 教えて頂きありがとうございます。
調べながら作ってみます。
ずっと先にはなりますが将来的には個人でゲームを開発してみたいです。
それから仕事としてゲーム開発に携わったりあらゆる分野で活躍できるようなプログラマーになりたいです。 Unity + C# 超おすすめ
Ruby 忘れて良い まあRubyでも怪盗ロワイヤル系のクソソシャゲなら作れるぞ
まあそんなの作れたところで今時仕事ないし、アーキテクチャ的には単なる普通のWebアプリなので
ゲーム作りのスキルはほとんど身につかなくて時間の無駄だろうけど RPGツクールXP/VXならばRubyなんだよなぁ ツクールMVでJavaScriptに変えちゃったのが残念
モバイル出力対応の都合で仕様がないんだろうけど C#がゲーム開発に適しているんですね。
ゲーム開発、セキュリティ関係、リモートワーク、システムエンジニアに興味があります。 趣味レベルでもいいので将棋プログラムやチェスプログラムも作ってみたいです。 いいんじゃない。自分の作ったAIと他人の作ったやつを対戦させてみればよい >>476
いきなり難しいのは作れないから簡単なのから作るといいよ
たとえば将棋やチェスの前にリバーシやトランプとか
もっといえば最初はCUIのマルバツから始める位でいい CUIのマルバツというと
先手・2、2、○
後手・1、1、×
先手・1、2、○
9秒、8、7、
とかそんな感じか? >>480
○・・
・・・
・・×
↑みたいにCUIでも
盤面表示できるでしょ?
たった三行だし お前のやる言語はRubyじゃないって散々言われてんのに聞く耳持ってないなコイツ。 >>484
なんかすごいなw
これだけ作り込んでいるのに、パッと見てすぐ目立つ Your Heath の綴りが間違ったままなのが謎だが。 いやまあ本格的にゲーム作るなら
UnityとC#だろうけど
Rubyスレなんだし
とりあえずCUIの簡単なゲームから
練習するのも悪くないと思うよ なにをどうやりたいのかによるな。
型なしスクリプト言語はよしあしだから。
いわゆるゲームがしたいのなら、Rubyはほどほどに。 Ruby は、小説ゲームなどのシナリオを、ゲームデータに変換するツールには使えるかも
Lua, Squirrel などを使うことも多いけど RPGツクール(XP/VX)もあるし
一応ゲームライブラリもあるから
2DゲームならRubyも手軽で良いと思う
3DゲーならUnityほぼ一択だろうけど 2Dゲーム用の未だに開発が続いているRubyのライブラリってあんの? 初心者です。
gem で sqlite3を入れようとしてもtkを入れようとしてもエラーになります。
署名は信頼されていません。って誰でしょう。
みなさん、どうしているの? こういうのってコンソールのエラー画像貼った方が分かりやすい 492です。
msysにgccを入れたらできました。 >>494
ズコー。
署名なんか関係なかったやろ。w 漏れは、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 が動く CLIツールを作成するために、Bundlerをインストールしたいのですが
コマンドプロンプトに$ gem install bundler
と入力しEnterを押しても閉じるだけで何も状況が変わっていない気がします。
既存のCLIツール作成の記述画面を調べてみても
学んだputs,if,繰り返し処理のような文法は一切なく謎の文字列にしか見えず
用語の場合は調べれば対応できるかもしれませんが、用語ではなく何を示しているのかさえわかりません。
助けてください。 上からの一部になりますがこのような感じです
# 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 bundlerをインストールしてCLIツールを作成したいと思っているのですがbundlerのインストールのやり方がわかりません rubyのインストールはコマンドプロンプトで行ったので同じようにインストールするものかと思いましたが
無事にbundlerをインストールすることが出来ているようなのでよかったです
ありがとうございます 質問する時は以下の点に留意すると回答が得られやすいぞ
・OS, Rubyなどのバージョンを書く
・何がしたいのか明確に書く
・どうなったのか明確に書く >>505
さらに
特にエラーメッセージがあるときはそれを貼る 基本、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) 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のとこが変になっちまうんでしょうか? >>509
10.step(30,2){|n| puts n.fdiv(10)} >>511
あ、これrailsのもんだあじゃないんだね! 誤差が嫌ならRational使え
1.step(3, 0.2r) 浮動小数点は誤差があるので、お金の計算などでは使えない
例えば、0.5 は、2 ** -1 (乗)で、2進数で割り切れる。
0.25 も、2 ** -2 で、2進数で割り切れる。
よって、0.5 + 0.25 = 0.75 も、2進数で割り切れる
つまり、2進数で割り切れる数値の、組み合わせで表せる数値は割り切れる
一方、0.1 は、2進数で割り切れない。循環小数になる。
たぶん、0.2 も割り切れないのでは? > お金の計算などでは使えない
使えばいいと思うけどなw
10円未満は四捨五入します。ってかけば十分だろうに
たった1円のために無駄な努力するんだぜ? 銀行の理屈だと桁数が大きいので下の方のの桁が軽視できないんだと
ただ計算の仕方はものすごくいい加減
複利といっても商品によって桁の丸め方が違うらしい
歴史を重んじるらしい
文系らしい Rubyは文系や中卒高卒が多いんだから文系ディスはやめてやれ >>517
文系「消費税は3%だ。端数?ちゃんと計算しろ。1円の誤差もゆるさねーぞ。」 >>515
「四捨五入」とか言ってまうヤツは、金の処理に口を出すな。 うちの環境だと
p ([0.003] * 500).reduce(:+) # => 1.4999999999999827
Array#sumだと最適化されるけどね
そもそも不確かさの精度を気にする環境でfloat使うのが間違い 二進数の浮動小数点数は十進数の(1/10)を表せなくて誤差の蓄積が出るって言うけど
これは二進数固有の問題ではない
十進数の浮動小数点数も十進数の(1/3)を表せなくて誤差の蓄積が出る
金の計算では条件次第だが
四捨五入することが許されてる場合は毎回四捨五入して良い
許されていなければ浮動小数点数じゃなくて分数を使え >>517
桁落ちは問題だが
切り捨ては銀行や政府が儲かるように
切り上げも銀行や政府が儲かるように
都合良く設定されているね >>518
それはどの言語であれ、普及率が高ければ高いほどそうなる。 Pythonはアメリカでは教育に取り入れられている ---> 誰でもやっている
---> 上から下まで幅広くいる。
VB利用者が減ったのは、C# に移ったから ---> C#はVBプログラマでも使える証拠
でもあり、かつてのVBと同じレベルくらいの人がC#ラーにはいるということ。 配列が大きくなるとHashのほうが速くなることを発見した
xは2万件くらいのデータ
a=[]
a.push(x)を繰り返すより
b=Hash.new
b[x]=0を繰り返して
として最後に a=b.keys
としたほうが速い Rubyのリストは、reserve()的なことはできないんだっけ?
できないならかわりに、a[20000]=nil とかしてから、a[i](i=0〜19999)に代入していったらいいんでは?
こっちのほうがはやそう。 >>527
さすがにそれはないわ
それとも[1,1,1,1,1]を重複除去して[1]にしたい場合ってことなのかな
>>529
先にallocateしたほうが必ずしも速いわけではないので最適化したければ要計測 StringにはcapacityあるけどArrayのrubyインタフェースには見つからんな
C言語側ではrb_array_new2がそれっぽいが
まぁ、どうしてもそれっぽいことやりたいならArray#[]=でも拡張できるのでnew時にサイズ指定ですね。
あとはpushよりも<<の方が速かったり、
そもそも要素数が先に知る事ができるのならばArray.newにブロック渡したり
flat_map使ったり… Rubyはユーザーコードの実行がとんでもなくゴミクソのように遅いから、
アルゴリズムの効率とか実はあまり関係なくて単にユーザーコードの命令数を削減することが重要だったりするね ■ このスレッドは過去ログ倉庫に格納されています