X



Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
垢版 |
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0
プログラミング言語 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
0435デフォルトの名無しさん (ワッチョイ 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の量
0436◆QZaw55cn4c (NZ 0Ha2-EltK)
垢版 |
2020/05/09(土) 19:58:32.75ID:y1dzFt5uH
>>434
個人的には ruby をもう一度盛り返したいと思っていますが
どんな分野を強化すればいいでしょうか?
0438デフォルトの名無しさん (ワッチョイ bbad-I8iA)
垢版 |
2020/05/09(土) 20:06:18.70ID:9+f2Z3ZT0
>>436
RubyはRailsが強いのでWebアプリを本拠地にしていて
それはいいんだけど発展していくためにひとつは
今言ったWindows、もうひとつはAndroid
そこでアプリを作りやすい環境があるといいと思います

というのもJavaやJavaScriptはこういう
マルチプラットフォームにしやすいので
普及した面があるだろうと思うからです
0447デフォルトの名無しさん (アウアウウー Sa1f-lvFW)
垢版 |
2020/05/09(土) 22:21:01.05ID:otSU2ylNa
Javaだって実際にはほとんどUNIXサーバーで運用されてるわけで、Windowsとの相性の悪さは本質的な問題ではない
RubyがPythonに勝てない決定的かつ本質的な原因は、Rubyコミュニティとエンタープライズ分野の仲が極めて悪いからだ
特にMatzに至ってはエンタープライズを毛嫌いしており、意図的にエンタープライズ分野の人間をコミュニティから排除している
0448デフォルトの名無しさん (ワッチョイ 8f14-YoKk)
垢版 |
2020/05/09(土) 22:33:57.03ID:e5F3j8ny0
>>447
> Javaだって実際にはほとんどUNIXサーバーで運用されてるわけで、Windowsとの相性の悪さは本質的な問題ではない

UNIXサーバーで運用されるのと、Windowsとの相性がどう関係するの?
まさかUNIXサーバーで運用してるのは、WindowsやLinuxと相性が悪いからだ!って
言いたいわけ?
0449デフォルトの名無しさん (ワッチョイ eaca-IfE9)
垢版 |
2020/05/10(日) 06:25:22.95ID:D36zapAH0
ID:e5F3j8ny0 はキチガイ
0453デフォルトの名無しさん (ワッチョイ d342-jW3u)
垢版 |
2020/05/11(月) 09:52:12.09ID:9KnLD9b60
Rubyの初歩を終えたら上達のために何か作ってみたいのですが、どんなものを作るのがいいのでしょうか?
HTMLCSSを学んだのでお問い合わせフォームを作成しようとは思っているのですが、次に作成したいもの、作成できるものがよくわかっていません。
0454デフォルトの名無しさん (ワッチョイ 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に習熟してからのほうが効率がいいよ
0455デフォルトの名無しさん (ワッチョイ b788-3QAi)
垢版 |
2020/05/11(月) 11:19:12.64ID:UiQRQo+f0
railsの環境構築がダルい
nodejs入れさせられたりして、じゃあnodejsで開発すりゃいいじゃんってなる
他言語に頼るのかまったくわからん
あとwebpackerもエラー吐きまくりで原因調べてもまったく解決しない
0456デフォルトの名無しさん (アウアウウー Sa1f-lvFW)
垢版 |
2020/05/11(月) 11:37:06.56ID:31bxup8+a
Railsは本来的には古典的なMVCアプリに特化していて、SPAには無駄な部分がとても多いし、原理的にフロント部分についてはカバーのしようがないからね
もはや時代に合わなくなってきているのは事実
0457デフォルトの名無しさん (ワッチョイ bbad-I8iA)
垢版 |
2020/05/11(月) 11:46:41.60ID:62ugI4sI0
>>453
>>454
>最初はローカルだけで完結するCLIツールがおすすめ
おおむね同意

CLIの難点は(初心者には)つまらないことだが
いきなりゲームとか作ろうとすると挫折するから
まず小物ツールを作って経験を積むのは大事だね
0458デフォルトの名無しさん (JP 0He6-lvFW)
垢版 |
2020/05/11(月) 12:19:18.12ID:E4DJZwTiH
RailsがCoffeeScript推してた頃はフロントも総合した一貫性のある技術スタックにしていこうという気概があったんだけどね
結局、時代に選ばれたのはSPAとAPIでフロントとバックエンドの間に明確な技術境界を設けるというものだった
それ以来、RailsはWebの先端から脱落し、Rubyの凋落が始まった
0459デフォルトの名無しさん (ワッチョイ 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
0461デフォルトの名無しさん (ワッチョイ bbad-I8iA)
垢版 |
2020/05/11(月) 13:34:37.20ID:62ugI4sI0
理想は何か作りたいアプリがあって
調べながらそのコードを書くと上達が早い

けど本当に作りたいものは難しいことが多いから
(機械学習で株式市場を予測して金を稼げるとか)
小物を作っていくうちにそれならこういうものも
できるというアイディアが湧いてくることもあるね
0462デフォルトの名無しさん (アウアウエー Sae2-jgrQ)
垢版 |
2020/05/11(月) 13:46:59.41ID:MhpqGE2Na
Django はそれだけで API も造れるからまだ良いけど
Rails は終わってるな
0464デフォルトの名無しさん (ワッチョイ 3ebb-8oPF)
垢版 |
2020/05/11(月) 16:25:29.55ID:oqh5wUWv0
超有名な「Classi」学校教育のICT活用を支援するクラウドサービスもrails製

なんと120万人近くのユーザを捌いているらしい。

これだけの規模のサービスを作れるrailsは最強。まさに覇権。
0466デフォルトの名無しさん (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が悪いというつもりはないけど、まあよくある話だよね
多く見せるために全生徒をユーザー数として謳っていたけど、コロナショック以前は実際にはほとんど使われてなかったんだろう
0468デフォルトの名無しさん (ワッチョイ be2c-Qfm0)
垢版 |
2020/05/11(月) 21:52:37.48ID:M5DpbX0A0
Go, Ruby など、サーバー側は、CLI のちょっとしたフィルター・パイプなどを作るとか。
でも、しょーもない

「プログラミングのお題スレ」の簡単そうな問題を解くとか

Selenium Webdriver, Nokogiri で、簡単なものをスクレイピングするとか。
漏れはこれで、yahoo などのログインを自動化してる

SASS, Bootstrap, jQuery なども初心者向け。
Linux コマンドも、10個ぐらいは学んだ方がよい
0470デフォルトの名無しさん (ワッチョイ d342-aTVK)
垢版 |
2020/05/11(月) 23:01:03.73ID:9KnLD9b60
教えて頂きありがとうございます。
調べながら作ってみます。
ずっと先にはなりますが将来的には個人でゲームを開発してみたいです。
それから仕事としてゲーム開発に携わったりあらゆる分野で活躍できるようなプログラマーになりたいです。
0472デフォルトの名無しさん (アウアウエー Sae2-jgrQ)
垢版 |
2020/05/12(火) 10:13:53.55ID:4WwqN1hQa
Unity + C# 超おすすめ
Ruby 忘れて良い
0473デフォルトの名無しさん (JP 0He6-lvFW)
垢版 |
2020/05/12(火) 17:40:54.16ID:v0jwNoPnH
まあRubyでも怪盗ロワイヤル系のクソソシャゲなら作れるぞ
まあそんなの作れたところで今時仕事ないし、アーキテクチャ的には単なる普通のWebアプリなので
ゲーム作りのスキルはほとんど身につかなくて時間の無駄だろうけど
0476デフォルトの名無しさん (ワッチョイ d342-aTVK)
垢版 |
2020/05/12(火) 22:07:41.27ID:Bhe4de5t0
C#がゲーム開発に適しているんですね。
ゲーム開発、セキュリティ関係、リモートワーク、システムエンジニアに興味があります。
0477デフォルトの名無しさん (ワッチョイ d342-aTVK)
垢版 |
2020/05/12(火) 22:12:55.72ID:Bhe4de5t0
趣味レベルでもいいので将棋プログラムやチェスプログラムも作ってみたいです。
0488デフォルトの名無しさん (アウアウエー Sa93-yXYh)
垢版 |
2020/05/13(水) 15:41:23.13ID:oWyvBIrOa
curses on ruby
0492デフォルトの名無しさん (ワッチョイ 6de6-imz8)
垢版 |
2020/05/13(水) 22:19:09.66ID:PF9y92K50
初心者です。
gem で sqlite3を入れようとしてもtkを入れようとしてもエラーになります。

署名は信頼されていません。って誰でしょう。

みなさん、どうしているの?
0494デフォルトの名無しさん (ワッチョイ 6de6-imz8)
垢版 |
2020/05/14(木) 06:31:55.66ID:/X2nuCW20
492です。
msysにgccを入れたらできました。
0496デフォルトの名無しさん (ワッチョイ 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 が動く
0497デフォルトの名無しさん (ワッチョイ 1f42-uRPb)
垢版 |
2020/05/17(日) 06:00:27.29ID:ziL5Ecak0
CLIツールを作成するために、Bundlerをインストールしたいのですが
コマンドプロンプトに$ gem install bundler
と入力しEnterを押しても閉じるだけで何も状況が変わっていない気がします。
既存のCLIツール作成の記述画面を調べてみても
学んだputs,if,繰り返し処理のような文法は一切なく謎の文字列にしか見えず
用語の場合は調べれば対応できるかもしれませんが、用語ではなく何を示しているのかさえわかりません。
助けてください。
0499デフォルトの名無しさん (ワッチョイ 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
0501デフォルトの名無しさん (ワッチョイ 1f42-EoUu)
垢版 |
2020/05/17(日) 07:34:46.84ID:ziL5Ecak0
bundlerをインストールしてCLIツールを作成したいと思っているのですがbundlerのインストールのやり方がわかりません
0504デフォルトの名無しさん (ワッチョイ 1f42-EoUu)
垢版 |
2020/05/17(日) 08:04:53.42ID:ziL5Ecak0
rubyのインストールはコマンドプロンプトで行ったので同じようにインストールするものかと思いましたが
無事にbundlerをインストールすることが出来ているようなのでよかったです
ありがとうございます
0507デフォルトの名無しさん (ワッチョイ 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)
0514デフォルトの名無しさん (ワッチョイ 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 も割り切れないのでは?
0517デフォルトの名無しさん (アウアウエー Sa52-crVl)
垢版 |
2020/05/20(水) 01:24:00.93ID:YPJhimCPa
銀行の理屈だと桁数が大きいので下の方のの桁が軽視できないんだと
ただ計算の仕方はものすごくいい加減
複利といっても商品によって桁の丸め方が違うらしい
歴史を重んじるらしい
文系らしい
0522デフォルトの名無しさん (アウアウエー Sa52-pTKR)
垢版 |
2020/05/20(水) 10:24:15.42ID:Dfazl3Afa
二進数の浮動小数点数は十進数の(1/10)を表せなくて誤差の蓄積が出るって言うけど
これは二進数固有の問題ではない
十進数の浮動小数点数も十進数の(1/3)を表せなくて誤差の蓄積が出る

金の計算では条件次第だが
四捨五入することが許されてる場合は毎回四捨五入して良い
許されていなければ浮動小数点数じゃなくて分数を使え
0523デフォルトの名無しさん (アウアウエー Sa52-pTKR)
垢版 |
2020/05/20(水) 10:26:00.37ID:Dfazl3Afa
>>517
桁落ちは問題だが
切り捨ては銀行や政府が儲かるように
切り上げも銀行や政府が儲かるように
都合良く設定されているね
0526デフォルトの名無しさん (ワッチョイ 3761-xVew)
垢版 |
2020/05/22(金) 15:33:07.69ID:TUWJypw20
Pythonはアメリカでは教育に取り入れられている ---> 誰でもやっている
---> 上から下まで幅広くいる。
VB利用者が減ったのは、C# に移ったから ---> C#はVBプログラマでも使える証拠
でもあり、かつてのVBと同じレベルくらいの人がC#ラーにはいるということ。
0527デフォルトの名無しさん (ワッチョイ 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
としたほうが速い
0528デフォルトの名無しさん (ワッチョイ 5b33-sQKC)
垢版 |
2020/05/22(金) 21:01:06.45ID:AU9F7jR+0
Rubyのリストは、reserve()的なことはできないんだっけ?
できないならかわりに、a[20000]=nil とかしてから、a[i](i=0〜19999)に代入していったらいいんでは?

こっちのほうがはやそう。
0531デフォルトの名無しさん (ワッチョイ 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使ったり…
0532デフォルトの名無しさん (テテンテンテン MMb6-8pht)
垢版 |
2020/05/23(土) 14:30:56.75ID:rR3WkHU8M
Rubyはユーザーコードの実行がとんでもなくゴミクソのように遅いから、
アルゴリズムの効率とか実はあまり関係なくて単にユーザーコードの命令数を削減することが重要だったりするね
■ このスレッドは過去ログ倉庫に格納されています

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