X



Ruby 初心者スレッド Part 65

レス数が1000を超えています。これ以上書き込みはできません。
2019/01/14(月) 06:15:31.08ID:z7CSW9d20
>>116
> chmodひとつできないとは。
いやできるよ

chmodはWSLのメタ情報を変更するコマンド。
NTFSのメタ情報を変えたいなら、Windowsのコマンドを
WSLから実行すればいい。

MSYS2を使ってもそれは同じでしょ?MSYS2を使った所で
chmodじゃNTFSのメタ情報を変えることはできない
2019/01/14(月) 06:16:34.93ID:MmdBprG30
うまくいってるときは自己肯定されるからwindows嫌ってるコミュニティが直すわけなかった。詰んでた。
2019/01/14(月) 12:18:53.84ID:9Cudnq1q0
ext4, NTFS では、ファイルシステムが異なるから、ファイルのメタ情報も異なる。
これらを、同一に出来ない

数年前に出た、Samba の本は、1万ページぐらいあるような分厚さだけど、
それだけあっても、ファイル共有しても、メタ情報が異なる

仮想OS でも、そう
123デフォルトの名無しさん (エムゾネ FF9a-Iup+)
垢版 |
2019/01/14(月) 12:38:06.45ID:aPj/koI6F
>>121
ほんそれ
2019/01/14(月) 16:20:56.29ID:JeIXD5P+0
>>119
Ruby1.8時代よりは大分Windowsでの動作がよくなったと思うぞ

今問題あるのはrb-readlineくらいだし
2019/01/14(月) 17:48:15.39ID:5iofUGXQa
どうでもいいな
そのために無駄な開発リソースが割かれて開発が遅くなるくらいならきっぱり切り捨てるべき
2019/01/14(月) 18:41:27.26ID:3y+lvQiF0
rubyって数人で開発してるような状況だしね
2019/01/14(月) 19:57:22.28ID:h6/SfWd00
目的 ゲームのプロトタイピング
機能 スプライト、モーフ、負荷は軽め
環境 Windows、cRuby
Ruby/SDLやDXRubyあたりが有名かと思いますが前者は関連ライブラリが多い上に最近のcRubyで動くのか判らず
後者はWindows依存になってしまう上に低レベル故にコード量が増えそうです
高レベルかつ簡単にインストールできる(解凍すれば終わりみたいな)のとか無いですかね

最終的にはWindows以外でも動かすのでDirectXべったりは好ましくないです
2019/01/14(月) 20:09:53.30ID:q/lOLam5M
>>127
rubyでやる仕事ではないな
2019/01/14(月) 20:14:34.47ID:3y+lvQiF0
>>127
もう今の時代はウェブブラウザでええやん
2019/01/14(月) 20:21:44.76ID:qRVrYClaM
>>127
Unity使おう
2019/01/14(月) 20:31:46.30ID:N5gjDl48M
>>128-130の要約「無い」
132デフォルトの名無しさん (ワッチョイ c52d-RNo8)
垢版 |
2019/01/15(火) 01:47:26.53ID:c8pcsuST0
学習中ですまんが
https://www.ruby-lang.org/ja/documentation/ruby-from-other-languages/to-ruby-from-java/
> JavaからRubyへ移行すると、コードの量を大幅に削減できます。
っていうのはどんな感じでコードを削減できるの?
カッコが減るとかそういう話?
2019/01/15(火) 02:44:03.42ID:cb8Yslm40
>>132
デザパタの言語組み込み化レベルでコードが減る
100行のコードが正規表現ループで5行になりましたみたいな感じ
それの初稿が書かれたときには存在しなかったが現在ならJavaをKotlinで書くのに近い
2019/01/15(火) 03:36:26.93ID:sS85uSF20
Javaよりも冗長な言語は存在しないレベルなんやで?
2019/01/17(木) 22:18:22.04ID:IiwqVv020
bundler使ってインストールしたgemをrequireするhoge.rbファイルを実行するには

 bundle exec ruby hoge.rb

するしかない?

 ruby hoge.rb

で実行できるような方法ってない?
2019/01/17(木) 23:01:02.67ID:c3Nj69Cfa
bundlerじゃなくてグローバルにインストールしたら
2019/01/17(木) 23:18:22.29ID:IiwqVv020
レンタル鯖想定。
2019/01/18(金) 12:05:28.94ID:rnv4ZKlN0
require "bundler/setup"
2019/01/18(金) 15:20:28.40ID:jNBljk3t0
>>138
それ、既にやってみてたんだが動かなかったんだわ。



・・・で、今もう一度やってみたら何故か動いた。理由が分からない。。。(# ・`д・´)

ともかく、解決したのでありがとう。
2019/01/20(日) 10:06:06.17ID:U54SgNBZ0
tes
141デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
垢版 |
2019/01/29(火) 22:13:23.83ID:AnpnZGSz0
2018/11/19

Matz が、LegalForce 社の技術顧問に就任
https://www.legalforce.co.jp/news/2018/1119_01.html

自然言語処理を用いた、クラウド型契約書レビュー支援サービス

DSL を使うのか?
Vagrant, Chef, Sinatra みたいなものか
2019/01/30(水) 01:15:50.19ID:CIpmDrdW0
>>141
単なる名前貸しなのでRubyもMatzも
LegalForceとは何の関係もありません
2019/01/30(水) 11:41:14.75ID:V+DSKtssp
ProgateのRuby5までやったけど、なにかできるかと言われると何もできない
悲しい
144デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
垢版 |
2019/01/30(水) 21:14:12.08ID:T9WgAkKs0
改訂2版 Ruby逆引きハンドブック、2018/8/28
株式会社マネーフォワード

これを読めば、grep みたいな、パイプライン上でのフィルターも作れる。
Ruby は、Windows でも、PowerShell よりも可読性が高く、高度。
Windows のクリップボード処理もできる

WSL から実行すれば、なんと日本語のファイル名でも文字化けしない!
Windows も、WSL 側から見れば、UTF-8 になってる

オブジェクト指向で、本格的なシステムを作るのなら、以下も読む

Effective Ruby、2015
バグが起きにくい、安全で効率的なコーディングと、間違いやすいポイントを解説
2019/01/31(木) 19:04:04.34ID:9x10OdKVa
>>143
何ができるかじゃない
何をするかだ
技術は後からついてくるぞい
2019/02/02(土) 12:18:57.49ID:uVBSvVIy0
もう2.6.1出てたのか
2019/02/05(火) 15:42:16.97ID:TkbL0x5ed
ruby って、ちゃんとwin10の仕様に乗ったバルーンだして、バルーンクリックされたら
イベントハンドラ実行とかすら
まともにできなくね?
148デフォルトの名無しさん (アウウィフ FFa3-zGAl)
垢版 |
2019/02/05(火) 15:44:46.33ID:dQJUt0gZF
rubyTk + balloonhelp
2019/02/05(火) 17:47:57.56ID:JaYy4UepM
今どきtkかよ…
150デフォルトの名無しさん (アウウィフ FFa3-zGAl)
垢版 |
2019/02/05(火) 18:23:25.15ID:dQJUt0gZF
そう思っていた時期が私にもありました
2019/02/10(日) 21:01:48.90ID:0GsJb55C0
ここだから質問する。今あえてPython3とRuby2.5を同時に勉強してるところ
同じような動きするサイトを作ってみて、tk動かしてみたら、明らかに
Rubyのtk遅いんだが、こいつを速く動かす方法ある?

ちなみに環境はWindows10の64bit
2019/02/10(日) 21:08:31.33ID:KoYwv+8zM
rubyではwindows使いに人権はありません。おととい来やがれ!
2019/02/10(日) 21:38:14.93ID:96GWWqq3M
>>151
WindowsかRubyどちらかを今すぐ捨てなさい
2019/02/10(日) 21:42:51.38ID:BrknxwTX0
>>152
まあ、Windows環境においては、それくらいは自力で対処できる人、あるいは「Pythonで満足に動いてるならそっちでいいじゃん」と言えるような人が求められてはいるな
2019/02/10(日) 21:48:13.21ID:96GWWqq3M
ちなみに海外だとWindowsのPython製商用GUIアプリもあったりするけど、
RubyでWindowsの実用GUIアプリを作ってる奴なんて い な い から、GUIライブラリなんてロクに最適化されてなくて当然だ
2019/02/10(日) 21:48:48.12ID:vBBtSO1rM
「同じような結果を出すように作られているが同じような構造にはなっていない」に3000点
157デフォルトの名無しさん (ワッチョイ 6e2c-V6Wy)
垢版 |
2019/02/10(日) 21:59:53.92ID:QHXP4+rK0
GUI は、HTML, CSS, JavaScript で作る

そうすれば、ほとんどの操作を、ブラウザが提供してくれる!
2019/02/10(日) 22:13:32.88ID:KoYwv+8zM
えっ、rubyキチガイこと読点君どうしちゃったの?くじけた?
159デフォルトの名無しさん (ワッチョイ cd8b-DOJB)
垢版 |
2019/02/10(日) 22:21:14.90ID:0GsJb55C0
>>153-157
なるほど、よくわかった。やっぱりあとはVM突っ込んで動かした
方がよさそうだな
2019/02/10(日) 22:35:18.64ID:8IV/oKAp0
tkの速度にそんな違いが出るとは思えないんだが
2019/02/10(日) 22:37:18.73ID:78jXEpo3d
まぁ、かくして、Rubyは毎年
凄い勢いでシェア減らしてるから、
あり様に対する評価は返ってきてる。

あと8年ぐらいでPerlと同じぐらいまで、
新規でrubyで新規ゴード書く人は
激減するかと。
2019/02/10(日) 22:59:03.49ID:0GsJb55C0
Railsは前よりだいぶWindowsに馴染んでるようにはなってるんだけどなあ。前なんて
gem通すところからもう初心者門前払い状態で、相当苦労したんだが、今は
あっさりスコーンと入って基本のCRUDぐらいはすぐできる。nokogiri入れるの
面倒なぐらい

さてと、今からVM通すためにルータに穴空けよ
2019/02/10(日) 23:24:53.45ID:QHXP4+rK0
漏れは、MSYS2 のコンパイル環境は入れていないけど、

gem "sqlite3"
で、Ruby リポジトリから、以下の共有ライブラリをダウンロードして入れてくれる

c/Ruby24-x64/lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.4/sqlite3_native.so

もちろん、Nokogiri も問題ない

ただし、WebSocket が問題。
これが、Windows のバイナリがない!
コンパイラが無いと、コンパイルできない
164デフォルトの名無しさん (アウアウエー Sa0a-DOJB)
垢版 |
2019/02/10(日) 23:55:09.46ID:HGoiPykSa
そのレスどっかで見たな
165デフォルトの名無しさん (アウアウエー Sa0a-DOJB)
垢版 |
2019/02/10(日) 23:56:09.04ID:HGoiPykSa
ここか
https://mevius.5ch.net/test/read.cgi/tech/1549282930/59
166デフォルトの名無しさん (ワッチョイ 7f2c-Ioh3)
垢版 |
2019/02/16(土) 00:28:04.64ID:GifcQbbL0
Ruby で、1-liner のフィルタ。
ファイル名を大文字で表示する

ls | ruby -lne 'print $_.upcase'

ARGF を1行ずつ読み込んで、変数$_ に格納する。
ARGF とは、複数のファイルや標準入力を連結して、1つにした仮想ファイル

ruby -lne 'print $_.upcase' a.txt b.txt

ruby -lpe '$_' a.txt b.txt

sed -n, awk をエミュレートしたもの

Windows10 で、a.txt の最後に、改行コードが無いと、バグる!

a X
あ y(ここに改行コード無し)

a X


y が消えてしまう!
行末処理する、-l が最後の2バイトを削除するからかな?
2019/02/16(土) 03:37:44.66ID:GifcQbbL0
>166 の続きです

Windows10 で、ファイルの最終行の末尾に、改行コードが無いとバグるので、
Windows・Linux の双方で、それをチェックしたいけど、どうすればよい?

改行コードがあれば真、無ければ偽とする

ファイルの内容は、

a X
あ y(ここに改行コード無し)
168デフォルトの名無しさん (ワッチョイ 275f-4ITP)
垢版 |
2019/02/16(土) 10:30:01.85ID:WqXdlLEj0
https://docs.ruby-lang.org/ja/latest/doc/spec=2frubycmd.html
> gets で読み込まれた各行の最後に対して String#chop!を行います。
るりまにも、こう書いてあるしバグというか仕様だな

なんでperl互換のchomp!じゃなくてchop!なのかは知らんが
-lオプション使わなければいいんじゃないの?
2019/02/16(土) 11:51:26.01ID:SPTGalft0
>>166
> Windows10 で、a.txt の最後に、改行コードが無いと、バグる!

Windowsは関係なくて、Linux/Unixの文化だよ。
行の終わりは改行がかならずあるという前提
なくても良いものがあるけど、例えばシェルスクリプトで
whileとreadを使って普通に読み込むと、最後に改行コードがないと読み取れない
2019/02/16(土) 12:18:02.30ID:jIRE2QWtM
0とだけ(改行なしで)書かれたテキストファイルで嫌がらせができるお話
171デフォルトの名無しさん (エムゾネ FF7f-wP4P)
垢版 |
2019/02/16(土) 12:39:10.30ID:lF7O1vprF
>>169
>>166

chompするときに改行がくっついてるときだけ切れば良いのに
中身観ないで無条件に一文字消してたらそりゃ消えるわω
糞アルゴリズム
2019/02/16(土) 12:43:33.03ID:CW5lzYCnM
lオプションの仕様だね
自動判別入れてるchompキモい派というのがいてだな云々
改行だけ消して欲しいのなら自力でchompだ
173デフォルトの名無しさん (エムゾネ FF7f-wP4P)
垢版 |
2019/02/16(土) 13:05:27.59ID:lF7O1vprF
chompとchopで名前変えた理由もそれ?
174デフォルトの名無しさん (ワッチョイ 275f-kkMJ)
垢版 |
2019/02/16(土) 16:37:54.24ID:WqXdlLEj0
というか、修正されとるぞ
https://bugs.ruby-lang.org/issues/12926
2019/02/16(土) 23:44:04.14ID:GifcQbbL0
ありがとう。もう修正されているのか

ただし、漏れが使っているのは、Windows10 のRuby Installer で、
ruby 2.4.4p296 (2018-03-28 revision 63013) [x64-mingw32]

このバージョンでは、まだ直っていないのかも?
176デフォルトの名無しさん (アウアウエー Sa1f-wP4P)
垢版 |
2019/02/17(日) 07:35:01.66ID:Y2cvGT7Ea
mingw版だから放置かな
2019/02/17(日) 07:36:29.27ID:+zGmbmNL0
単純に2.5.0以降修正されたってだけ
178デフォルトの名無しさん (ワッチョイ ff7c-/Ktc)
垢版 |
2019/02/17(日) 11:52:25.05ID:7mUUrd8D0
windows固有の問題だから放置されてたってだけ
179デフォルトの名無しさん (ワッチョイ c701-OU7K)
垢版 |
2019/02/17(日) 14:08:35.55ID:N1izVyMt0
Windowsが憎い。
2019/02/17(日) 14:14:39.64ID:ACF+eJ9A0
不都合な動作をしたときバグなのか仕様なのか制限なのか考慮漏れなのか分からない
181デフォルトの名無しさん (ワッチョイ c701-OU7K)
垢版 |
2019/02/18(月) 01:18:03.82ID:yYX5e63o0
ソースが仕様。
2019/02/18(月) 05:27:28.71ID:qsq8EO4j0
誰か、

>>167
のチェックのやり方がわかる?
2019/02/18(月) 11:23:55.36ID:vR+zg9W+0
>>182
そのまま処理を書き下せばよろしい
現時点では無理に短くしようとするな
「カッコよく」しようとするな
そんな秒速何十回とする処理じゃないのだろうし効率もとりあえず気にするな
2019/02/18(月) 12:21:38.16ID:1FoQC5svM
>>182
その程度のクセに他スレでruby宣伝荒らしするな!
185デフォルトの名無しさん (ワッチョイ 7f2c-Ioh3)
垢版 |
2019/02/20(水) 05:44:21.57ID:B2QSVSiS0
Linux では、大文字小文字だけが異なるファイルが、同一フォルダに存在できる。
例、Ab.txt, aB.txt など

それらの有無を判定するには、どうすればよい?

有れば真、無ければ偽とする
2019/02/20(水) 05:48:10.61ID:u9a1RSm50
どうすればいいかの部分は自分で考えようよ
そこの根底から丸投げしたらそれがちょっとの違いで動かなくなったとき全然対処できないよ
どういう処理をすればいいかを考えたら「これの実装どうすればいいっすか」って質問してくだされ
2019/02/20(水) 06:29:32.98ID:w5Ml/ZA8M
7f2c-Ioh3はrubyやる前に修めておくべきコンピュータの知識の授業があるような気がちょっとするな
2019/02/20(水) 07:30:28.01ID:dKxFZ7rM0
>>187
彼にはネットを使う前に他人とのコミュニケーションで理解すべきことが多々あると思われる。
ところ構わず話の流れを無視してruby推しするのはやめて欲しい。
2019/02/20(水) 09:08:29.22ID:EgtCXVwuM
まあ国内の平均的なRailsやってます系は実際こんなもんだよ
Railsの教科書通りのコードを継ぎ接ぎするだけで、アルゴリズムはまるで書けない
2019/02/20(水) 14:42:30.80ID:PnFIenH+0
Setとuppercaseもしくはlowercaseで
191デフォルトの名無しさん (アウウィフ FF4b-wP4P)
垢版 |
2019/02/20(水) 19:39:59.58ID:v7iPz90JF
>>185
Dir.globでぶん回す
見つかった名前をtolowerしてファイル削除
最後に残ったものが重複
2019/02/20(水) 22:32:30.32ID:bRSP0nNv0
大学の授業でRubyとCやらされた
193デフォルトの名無しさん (フォォーッ MMa5-2CcH)
垢版 |
2019/02/21(木) 15:16:18.90ID:wmjYnWL+M
丸投げの質問の仕方しかわからなく申し訳ありません。
Windows10 でruby 2.4.4p296 (2018-03-28 revision 63013)を入れてますが、
グラフ出力用に Numo::Gnuplotというgem(GnuplotへのRubyインターフェース)
を入れて、gnuplot2.6.2も入れました。グラフ出力は上手くいってます。
 そして、Rubyを実行ファイルにできるocraというのもいれて、.exe化でき
ました。しかし、別のパソコンで.exeを起動すると計算結果とかは出てもグラフが出る
前に終了してしまいます。 おそらくgemのgnuplotは取り込んでいるが、本体の
gnuplotは実行ファイル作成時に取り込まれていないからだと思います。 
本体のgnuplotはC:\Program Filesにあるので、これをgnuplotのフォルダごと
C:\Ruby24-x64\libにコピーして
> ocra graff48b.rb C:\Ruby24-x64\lib --no-autoload --add-all-core と実行
してみましたが、今度はexeファイルがうまく実行できません

 本体のgnuplotとそれをRubyで使うためのgemをまとめてexe化できないものでしょうか?
 無理な気もしますが・・
2019/02/21(木) 16:27:00.87ID:f8G92//U0
> 丸投げの質問の仕方しかわからなく申し訳ありません。

いえいえ、丸投げっていうのはこうするんですよ。

>>195、後は全部任せた!
2019/02/21(木) 16:29:45.73ID:A4uVBoycM
それだけじゃ原因がわからん
まずhello worldでも作ってみろ
ocraは実行ファイルのパスに多バイト文字が含まれている場合起動に失敗するから日本人が作ったneriってgemを使うか自分で依存関係調べてぶっこむなりしよう
つぎにgithubざっと読んだ感じだとgnuplotのパスは Gnuplot.new(path: 'パス') で指定するみたいだからlibなんちゃらにコピーとか関係ない。きちんと指定しろ
最後に、gnuplotも合わせて配布するつもりならライセンスが独自のものだからきちんと読んでからやってね
以上
2019/02/21(木) 17:07:21.07ID:OxGbt4z1M
ああ、一部ちゃんと読んでなかったわ

>本体のgnuplotとそれをRubyで使うためのgemをまとめてexe化できないものでしょうか?
普通はやらないが、可能か不可能かで言えば余裕で可能

んでパソコン苦手な非英語圏の人相手に配布するならocraはやめておいた方が良いってのと
起動自体はできてるなら配布先にgnuplotを各自インストールしてパスを通してもらうか
スタンドアロンのwgnuplotとかを実行ファイルに同梱して使うかしてね
後者の場合は上のレスを参考にパスを指定しろよな
あと一応 ruby, rubyinstaller, 使ったgem, Gnuplotのライセンスは確認しとけよ

以上終了
2019/02/21(木) 19:33:23.57ID:MIixq5+8M
ライセンスとか無視したとしても、外部のでっかい(依存関係が大きくファイル数も多い)アプリを同梱して配布というのは「運用上」わりと速攻で破綻する
「必要なアプリやライブラリが利用可能になっているかをチェックして、不足時には別途インストールを促すスクリプト」をrubyで作って最初に実行するorさせるといいぞ
そこまでここで面倒見る必要はないという線を引くんだ、たとえ内製配布アプリだとしてもね
198デフォルトの名無しさん (フォォーッ MMed-2CcH)
垢版 |
2019/02/21(木) 22:06:11.57ID:h83SWuCLM
193です。厳しくかつ熱心な助言をいただきまして、皆さまがプログラミング
に真剣に取り組んでいらっしゃるとわかりました。おかげさまで、別のPCにwgnuplot?
を入れて、パスを通したら解決いたしました。
 島根在住なうえに、独学で勉強しているため難儀していました。
 ジオデシックドームの計算とグラフ出力をするためにプログラムを始めまして、グラフ
出力を友達に見てもらいたいから、実行ファイルにしたわけです。 とはいえ、ライセンス
に注意しなければならないという意見、真摯に受け止めます。
 >>197 そこまでここで面倒見る必要はないという線を引くんだ
そうですね。一人でしょい込む必要ありませんでした。肩の荷がおりました
2019/02/21(木) 23:17:11.76ID:5agtgbY/a
Ruby配布とか絶対にやりたくないな
せっかくRuby使うんなら普通にRailsでWebアプリにしたらいいでしょ
グラフ出力も普通に可能だよ
200デフォルトの名無しさん (フォォーッ MMed-2CcH)
垢版 |
2019/02/21(木) 23:41:22.83ID:h83SWuCLM
え、Railsって気軽にできるもんなんですか? 使い道がわからないので、クラスやインスタンス変数など一度も
使ったことがないのですが。 松江市はRubyの本が数冊しかないので、勉強が進みません
・・・
2019/02/22(金) 00:43:05.60ID:AuaMVifYM
少なくともRubyをWinで配布しようとするよりはRailsの方が遥かに簡単だろうな
本も腐るほどあるし勉強会とか行けば初心者仲間もいくらでもいる
2019/02/22(金) 03:05:39.97ID:y9srh0J/p
>>198
島根在住ってとこは釣りなの?
2019/02/22(金) 04:39:47.69ID:43iXBVf10
1-liner の説明を読むと、-rfileutils みたいに、-r でモジュールをrequire できるとか、
gem install で、gem をダウンロードするのも、あったような気もする

gem install・bundle installなしでgemを使ったスクリプトを実行する方法
https://qiita.com/takahashim/items/c7b5d0e30b4aeb73d8f8

この本も良い

改訂2版 Ruby逆引きハンドブック、2018/8/28
株式会社マネーフォワード

島根県は、Ruby では有名
2019/02/22(金) 07:21:16.27ID:43iXBVf10
sqlite3 のgem(パッケージ)を、グローバルにインストールすると、
自分は、Ruby2.4 を使っているのに、2.0〜2.4 のすべてが入った!

なぜ?
最新版のバージョン指定をしなかったからかな?

C:\Ruby24-x64 以下に、
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.0/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.1/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.2/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.3/sqlite3_native.so
./lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3/2.4/sqlite3_native.so
2019/02/22(金) 07:27:12.32ID:8CzmR2bmM
>2.0〜2.4 のすべてが入った!
入ってない
終了
206デフォルトの名無しさん (フォォーッ MMa5-2CcH)
垢版 |
2019/02/22(金) 07:29:39.28ID:LB9B22A9M
島根在住です。 通いつけのクリニックがあるビルにまつもとさんの会社があるので、
すれ違ったことあるはず。どんな人か知らないけど。いまだに光ケーブルが通ってない田舎です。
本も入門書しかないんです。
 Ruby逆引きハンドブック、チェックしてみます。
2019/02/22(金) 10:48:26.93ID:jNyfsysYM
>>204
gemの仕様です
だからpre-build gemを嫌ってる人もいます
2019/02/22(金) 11:24:33.25ID:43iXBVf10
さすがに、MSYS2 のようなコンパイラーは、何GB も食うから、いらない。
ただし、コンパイラーが無いから、Windows 用のweb socket のバイナリが無くて、困っている

>>204
の、sqlite3/2.4/sqlite3_native.so だけを入れる方法は無いの?
2.0〜2.3 は、いらない
2019/02/22(金) 22:52:10.31ID:hC9++n+50
>>206
Amazonや楽天ぐらいあるだろ…
2019/02/25(月) 16:51:11.43ID:6aHiqgcw0
技術書ほとんど電子書籍でしか買わないかな。PDF でパソコンかタブレットで読んでる
211デフォルトの名無しさん (エムゾネ FF0a-kEY9)
垢版 |
2019/02/25(月) 17:10:55.80ID:cOrzmhCLF
mruby 出番無くなったな
https://qiita.com/inachi/items/903bb988e23a7ef83ca7
https://youtu.be/L125HSqkJ6U
https://makezine.jp/blog/2018/01/micropython_ref.html
https://qiita.com/hatobus/items/69b353dea3d8f2a25441
2019/02/25(月) 18:11:00.52ID:sO03erxCM
そもそもmrubyに出番があったことなど無かった
島根県の助成金貰う代わりのネタを考えないとMatzと取り巻きが露頭に迷う懸念はあるね
2019/02/25(月) 18:24:32.74ID:mboQc3DnM
>>211
js,、scratch(まあscratchもjsだけど)、pythonか。
rubyが入れるわけないわな。
至極残当。
2019/02/25(月) 19:47:52.74ID:PRvX3sK80
ていうかmrubyは「くみこみでもるびーつかいたい」という以上のものではないしそれ以上の役割を持たせてもいけないはずだったのだ
どこで間違えたのやら
2019/02/26(火) 14:44:39.80ID:s53snE6vM
>>214
mrubyは経産省やハードウェアメーカーがスポンサーに入ってるから、やってみた、うごいた、わーい、だけじゃ済まされないよ
だから誰も使ってなくても誰にも求められてなくても誰もやりたくなくても開発は続けなきゃいけない
2019/02/26(火) 15:13:52.55ID:W0wJxBNyM
典型的な埋没費用だね
経産省は血税をなんだと思ってるんだ
217デフォルトの名無しさん (アウウィフ FF21-kEY9)
垢版 |
2019/02/26(火) 15:18:03.05ID:8+7ktUtNF
>>214
補助金詐欺とまでは言わないでも補助金ゴロ

>>216
ren4 に教えてやれ
2019/02/26(火) 16:23:09.00ID:tl8UlM+n0
そもそも組込で Ruby 使いたいっていう需要が小さいよね
2019/02/26(火) 20:25:10.10ID:cNXsTeTJ0
東ロボなみの失態
2019/02/27(水) 01:40:46.20ID:TAg3u7Bg0
組み込みに贅沢な文法いらんしなぁ。
数千行程度までなら、lua程度でいい。
2019/02/27(水) 02:13:01.70ID:oZYESBBc0
rubyからCや特定CPU向けアセンブラを生成できるようにすれば用途は広がるが、
CPUを活用するにはrubyに不足している機能があるのかも

AIに出番をつくる何かを追加しよう
222デフォルトの名無しさん (ワッチョイ 797c-BftX)
垢版 |
2019/02/27(水) 13:17:12.60ID:+TCpifLa0
まだ負けと決まった訳じゃない(キリっ
223デフォルトの名無しさん (フォォーッ MMa5-4qoz)
垢版 |
2019/02/27(水) 22:05:06.13ID:qTA28+u/M
 本は立ち読みして使える本かどうかチェックしてから買うもので・・・
 >>212
わかーました。Matzに会ったら教えちゃーけん、楽しみに待っててごしないや
224デフォルトの名無しさん (ワッチョイ d72d-SKB1)
垢版 |
2019/02/28(木) 13:12:02.91ID:MdFdHsbt0
勝ち負けどころちゃうやろ、Rails以外にもう使い途なんてあらへん状態や
225166 (ワッチョイ ff2c-Im2K)
垢版 |
2019/03/05(火) 11:07:33.23ID:CZi591h70
>>167
自己レス。自分で作った

# ファイルの最終行が、改行コードで終わっているかどうかを判別する
# CRLF, LF ( \r\n, \n )

last_line = nil

File.foreach( "a.txt" ){ |line| last_line = line }

p last_line.end_with?( "\n" ) # 末尾が、\n か?
226デフォルトの名無しさん (ワッチョイ 7f7c-vuRV)
垢版 |
2019/03/05(火) 11:24:52.77ID:HwCl8Q1J0
ひろゆきもpythonに浮気か
2019/03/05(火) 11:41:00.66ID:DIrFqE8lM
漢字Talkでは失敗するなw
228デフォルトの名無しさん (ワッチョイ d77d-HTI0)
垢版 |
2019/03/05(火) 16:52:31.95ID:eRmNxjQF0
>>225
ファイル全部を読まなくても size-1 で seek すれば十分だよ。
2019/03/05(火) 23:56:13.17ID:CZi591h70
seek できるのは、バイナリファイルだけだろ。
改行コードを判定できるかね?

最後の1バイトを取って、文字コードに変換できるのかな?
バイナリから、文字コードへの変換
2019/03/06(水) 00:17:19.60ID:WeP2IlHt0
Gem.ruby_version >= Gem::Version.create("2.5")
でRuby2.5以上であることを判定しとけばいいじゃない
2019/03/06(水) 01:09:00.71ID:sa1I2u5H0
>>229
ri File.seek
232166 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/07(木) 21:29:51.98ID:8RwKmlXy0
テキストファイルを、バイナリファイルとして読み込んで、
最後のバイトが、CR かLF なら、最後に改行コードが無いと考えてみたが、

sjis でお馴染みの「表」などのダメ文字のバグが多い事を考えると、
バイナリファイルでは、複数バイトの文字を判別できない

ダメ文字とは、euc-jp では、複数バイト文字の最後のバイトに、\(逆スラッシュ)が存在しないが、
sjisには存在するため、行の最後に「表」などがあると、
その最後のバイト\ で、改行がエスケープされてしまう

文字の種類が増えていくと、これと同じ問題が生じるかも知れない。
複数バイト文字の最後のバイトに、CR かLF が存在するかも知れないから、改行と区別できない
2019/03/07(木) 21:32:17.66ID:8RwKmlXy0
>232
修正

>テキストファイルを、バイナリファイルとして読み込んで、
>最後のバイトが、CR かLF なら、最後に改行コードが無いと考えてみたが、

テキストファイルを、バイナリファイルとして読み込んで、
最後のバイトが、CR かLF なら、最後に改行コードがあると考えてみたが、
2019/03/08(金) 00:25:29.01ID:N66/0TP00
>>185
# 大文字小文字だけが異なる、ファイル名を見つける
filenames = <<"EOT".lines # ファイル名の配列
aB.txt
Ab.txt
xx
cd
CD
EOT

results = { }
filenames.each do |filename|
filename.chomp! # 改行を削除
fn_down = filename.downcase # 小文字に変換

if results.has_key? fn_down
results[ fn_down ].push filename
else
results[ fn_down ] = [ filename ]
end
end

return if results.empty? # 空

# 重複しないファイル名を削除する
results.reject! { |k, v| v.length == 1 }

results.each_value { |v| puts v.join( " : " ) }

結果
aB.txt : Ab.txt
cd : CD
2019/03/08(金) 00:49:28.36ID:OXqbGHm40
>>232
ムダにややこしく考えすぎ。
だいたい、コントロール文字が複数バイト文字の一部に含まれるエンコーディングはかつて存在しなかったし、今さら将来に発明されることもない。
2019/03/08(金) 01:06:02.77ID:Sy1GZuWW0
>>232
いつも他スレで暴れてるrubyボット君か。
毎度毎度、仕入れた知識の表層をなぞるだけで知ってるつもりになってるから、具体的な問題点が理解できてないし、考えようともしない。だからいつも的はずれなことを言っては他の人に突っ込まれる。
237166 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/08(金) 12:09:07.38ID:N66/0TP00
sjisには悪名高い「表」などのダメ文字が存在する。
複数バイト文字の最後のバイトに、\(逆スラッシュ)が存在する。
euc-jp では存在しないけど

ダメ文字で、バグらされた人は多い

特に外人は、1文字1バイトでコーディングするから、バグる!
2019/03/08(金) 12:24:05.67ID:jbQifWXg0
今はUTF-8を使うので、sjisはもう過去の問題。
WindowsもUnicodeに完全対応している
2019/03/08(金) 14:40:40.07ID:N66/0TP00
https://rubygems.org/gems/lazy_priority_queue/versions/0.1.1

Windows10 で、MSYS2 コンパイラー無しの状況で、上の順位キューを、
gem 'lazy_priority_queue', '~> 0.1.1'
で入れようとしていますが、

この、SHA 256 checksum は、gem で入れたモジュールに対して、どうやって確かめるの?

e5d4ea8d037e8743afc91019fc23f5f6858372fea73e05e8244f8964f0634337
2019/03/08(金) 15:10:01.94ID:GpWg6Xx2M
>>239
チェックはgemが勝手に行っているから貴方のような馬鹿がいちいち気にする必要はない
2019/03/08(金) 15:26:21.92ID:N66/0TP00
ダウンロードじゃなくて、gem で入れた場合は、

checksum を確かめる必要は無かったかな?
2019/03/08(金) 19:11:03.24ID:OXqbGHm40
>>237
コントロール文字に関係ないやろ。
2019/03/09(土) 08:50:15.35ID:Qv+6Y9Yd0
>>237
File.open( "foo.txt", "w:CP932" ){|fh| fh.puts("ソ") }
File.open( "bar.txt", "w:CP932" ){|fh| fh.print("ソ") }
File.open( "car.txt", "w:UTF-8" ){|fh| fh.print("\u4E0A") }
File.open( "foo.txt", "r:CP932" ){|fh| fh.seek(fh.size-1); puts fh.read(1).start_with?("\r","\n") }
File.open( "bar.txt", "r:CP932" ){|fh| fh.seek(fh.size-1); puts fh.read(1).start_with?("\r","\n") }
File.open( "car.txt", "r:UTF-8" ){|fh| fh.seek(fh.size-1); puts fh.read(1).start_with?("\r","\n") }
UTF-16やUTF-32等のファイルがあるなら対策すること。
2019/03/09(土) 09:11:16.66ID:P/rUKkBa0
バカは古いバージョン使ってるからバグる
245166 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/09(土) 11:14:06.24ID:GVs3bbIF0
>>243
テキストファイルとして読み込んだファイルに、
seek のようなバイナリ(1バイトずつの)処理を使うと、
複数バイトの文字が存在するから、バグらない?

複数バイトの文字があると、文字数とバイト数が異なるから
2019/03/09(土) 12:10:02.52ID:pTdmUQIN0
>>245
お前もう諦めろ
2019/03/09(土) 13:55:35.31ID:P/rUKkBa0
>>243

fh.seek(-1, IO::SEEK_END)
の方がよさげ
2019/03/10(日) 00:40:01.29ID:2U7BqM9T0
macでHomebrewを使用して、最新版2.6.1をインストールしましたが、
ターミナルでバージョンを確認すると古いもの(2.3.7)が表示される。

この場合考えられる要因は何でしょうか?
2019/03/10(日) 02:00:15.91ID:waZbF5z90
マッキンは知らんけど、どうせPATHやろ?
whichとかruby -Vとかで、インストールされたパスと実際に実行されるパスを確認したら?
250デフォルトの名無しさん (ワッチョイ 162c-1cTK)
垢版 |
2019/03/10(日) 19:48:05.79ID:bEzyp4mc0
Mac は知らないけど、元からRuby が入っているから、仮想環境のanyenv を使うとか?
元のバージョンも消せないでしょ?

rbenv(Ruby), pyenv(Python), ndenv(Node.js)

こういう事も知らない素人が、2.6 などの最新版を使ったら、ダメでしょ。
1年過ぎたバージョンを使え!

漏れは、Windows10 だけど、まだ、2.4.4 を使ってる
2019/03/10(日) 20:19:51.46ID:JyECxoS9M
Win以外なら最新版でほとんど問題ないんだよおバカさん
2019/03/10(日) 22:42:52.26ID:6nzJw0Ap0
>>251
お前のレベルは低すぎるなw
Rubyを使うのが目的で、Rubyで何かを作った経験がないだろ
2019/03/10(日) 23:07:47.98ID:bEzyp4mc0
>>243
結果は、true, false, false になったけど、どういう事?
2019/03/10(日) 23:57:03.24ID:bEzyp4mc0
>>234
修正

String#lines の所を見たら、chomp: true で改行も削除できる。
こりゃ便利!

p ary = <<"EOT".lines( chomp: true ) # 配列
a
b
EOT

#=> ["a", "b"]
255デフォルトの名無しさん (ワッチョイ 837f-/bUt)
垢版 |
2019/03/11(月) 01:01:19.82ID:5t+/rFdi0
なぁなぁ。
CSRF対策って、トークンを input hidden に書けってのが鉄板だけど。
あれってform action のURLに書いてもセキュア度って変わらないことないか?
URLなら href にも書ける(使い道は考えてない)
2019/03/11(月) 01:33:23.12ID:W406Vhex0
>>255
だめ

CSRFっていうのは、悪意のあるやつからリンクが送られてきて
それを開いてしまうことで成り立つもの

リンクの中にトークンを入れてしまったら意味がない
トークンがリンクの中に入らないからこそ意味がある
2019/03/11(月) 01:43:29.79ID:5t+/rFdi0
>>2256
そんなん。
悪意のある奴から送られてくるリンクにあるトークンと
対象者の持ってるセッションに紐付けられるトークンは
全然違うやん。

悪意サイトに埋め込むフォームの場合も結局は
action と hidden を書くわけじゃん?
要するに hidden に書くべきトークンが予想できないからCSRF対策になる訳でしょ。
これが action に書いてあってもなんら変わらないじゃん?

↑以上、予想が非常に困難なトークンを前提。もちろんそれが当たり前だし。
258デフォルトの名無しさん (オッペケ Src7-EzoF)
垢版 |
2019/03/11(月) 09:43:03.52ID:EA8HXttJr
>>257
全世界が認めている方法よりお前が考え出した方法のほうが優れていると思えるところがすげえな
お前と仕事する奴がかわいそう
2019/03/11(月) 15:12:15.45ID:5t+/rFdi0
>お前が考え出した方法のほうが優れている

どこをどう読んだらそう解釈できんの?実際使うとか、勝手に妄想するなよ……。
そもそも全世界が認めている方法であれば理由は明確なんだよな?
その割に鉄板扱いの呪文レベルで、理由が書いてある記事がないのは一体どういう理由なんだろうか?

そもそも get ではなく post にするのは感覚的にも、暗黙の了解的にも、
当たり前だがCSRF対策で postにせよと書いてあるもの自体が少ない。
セキュリティ初心者向けならなおさらなんだが。
get にしてしまえば URL に乗るし、input である理由が薄弱なのがイラっとするんだよ。

理由が知りたい。
260デフォルトの名無しさん (アウアウエー Saaa-Bj/M)
垢版 |
2019/03/12(火) 05:35:46.16ID:FSVt1tPQa
Rubyでスキルアップ出来るか?
https://www.youtube.com/watch?v=2wfQ3iG08UI
2019/03/12(火) 21:11:19.87ID:EhRgemxCa
>>259
Ruby以前に、社会人としておかしいな。
2019/03/17(日) 22:43:16.23ID:7ulQuPhQ0
Numbered parametersだって
263デフォルトの名無しさん (ワッチョイ 134e-yW/I)
垢版 |
2019/03/19(火) 23:37:28.37ID:gx/b6f7p0
Ruby ではクラス直下では、self(this)は、クラスを指す。
一方、initialize 内では、new で呼ばれた各インスタンスを指す

class Cat
p self #=> Cat クラス

def initialize( name, weight )
@name = name
@weight = weight
p self #=> 各インスタンス
end
end

bob = Cat.new( "bob", 5 )
alice = Cat.new( "alice", 4 )

出力
Cat
#<Cat: @name="bob", @weight=5>
#<Cat: @name="alice", @weight=4>

オブジェクト指向をわかっていない人には、Python は無理

まず、Rubyでオブジェクト指向・関数型を学んでから、
Python, JavaScript, Kotlin などをやらないと無理
2019/03/20(水) 01:03:37.41ID:RdYQnT9u0
one time token は、URL のクエリ文字列など、見えたらダメ!

form のhidden 内じゃないとダメ
2019/03/20(水) 08:14:18.91ID:ygECSxKva
formのhiddenが見えないとかマジかよ
さすがにその理解はヤバすぎ
266デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)
垢版 |
2019/03/26(火) 19:14:05.12ID:d0iwa0lD0
Rubyを勉強し始めようか迷っていて、適当にWeb見てたんだけどさあ
一部のページで、「Railsから入った人にとっては驚くかもしれないけど、Ruby単体でもプログラムが書ける」みたいなことが書いてあって驚いちゃったな
これ、Rubyの言語より先にRailsの学習をすることも可能なんか?
2019/03/26(火) 19:18:17.37ID:NbUyZWCMH
誰でも頭が良くなる、プログラムが書けるようになる方法が発見される 96873
https://you-can-program.hatenablog.jp
2019/03/26(火) 19:20:08.89ID:oGfwRodhM
>>266
できる
「Rubyのコード」を書かなくても(知らなくても)Railsはある程度使える
269デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)
垢版 |
2019/03/26(火) 19:26:11.18ID:d0iwa0lD0
>>268
そうなのか、ありがとう!
面白そうだからRailsからやろうかな
2019/03/26(火) 22:24:08.02ID:gZH84WWp0
Rails は半年掛かるので、普通人は挫折する。
Sinatra から始めるのが良い

社内エンジニアから、Railsエンジニアになった人の動画が、YouTube にもある

Railsの知識が、膨大な理由は、Ruby の文法じゃない

Linux のOS のコマンド・機能、テスト、環境構築運用技術や、
DB、HTML, CSS・SASS, JavaScript, jQuery など、システムのAll Set だから

Railsが、全言語のフレームワークに応用できるのは、大半がRubyの文法とは関係ないから。
ほとんどの内容が、システムの事
2019/03/26(火) 22:55:31.07ID:nYFNe3O+0
でももうRailsははやらんよな。
実際にはわかりやすくもないし。

もちろん用途によるけど、Rubyに興味があるのなら、Rubyからやったほうがええんちゃう?
2019/03/27(水) 03:26:16.91ID:iumvruyG0
この行列の前後に、番兵(0)を置くには、どう書く?

ary = [[1, 2, 3], [4, 5, 6]]

結果
0, 0, 0, 0, 0
0, 1, 2, 3, 0
0, 4, 5, 6, 0
0, 0, 0, 0, 0
273デフォルトの名無しさん (アウアウエー Sac2-yExI)
垢版 |
2019/03/27(水) 06:09:28.25ID:J3LATpLka
import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, 5, 6]])
df = pd.concat([pd.DataFrame([0]*df.shape[0]),df,pd.DataFrame([0]*df.shape[0])], axis=1)
df.columns = list(range(df.shape[1]))
df = pd.concat([pd.DataFrame([[0]*df.shape[1]]),df,pd.DataFrame([[0]*df.shape[1]])])
df.index = list(range(df.shape[0]))

>>> df
0 1 2 3 4
0 0 0 0 0 0
1 0 1 2 3 0
2 0 4 5 6 0
3 0 0 0 0 0
274デフォルトの名無しさん (ワッチョイ 4ad2-KGYh)
垢版 |
2019/03/27(水) 13:26:23.63ID:mz7eRfCH0
>>272
ary = [[1, 2, 3], [4, 5, 6]]
a=[0]*ary[0].sizeこ
b=([a]+ary+[a]).map{|x|[0]+x+[0]}
p b

[[0, 0, 0, 0, 0], [0, 1, 2, 3, 0], [0, 4, 5, 6, 0], [0, 0, 0, 0, 0]]
275デフォルトの名無しさん (ワッチョイ 4ad2-KGYh)
垢版 |
2019/03/27(水) 13:35:27.03ID:mz7eRfCH0
>>274
すみません。途中に入ったひらがなはゴミです無視してください。
2019/03/27(水) 13:38:32.48ID:kDDFgxGr0
>>272
番兵なんて使わないと言っておく
あんなの必要なに、古い言語だけや(笑)
2019/03/27(水) 18:23:38.55ID:ie5q9CuxM
番兵て。w
マトリクスに余白があれば、処理が簡単になるアルゴリズムは存在するやろ。

パッとは出てこないけど、ホントにいろいろ。
2019/03/27(水) 23:32:37.93ID:iumvruyG0
番兵を使わないと、1〜6 (1:start, 6:end)の道順をたどる際、面倒だろ?

例えば、1 から次を探すのに、上下左右を判断して、
上・左にはマスが無いから、番兵で壁を作った方が、プログラミングしやすい
2019/03/27(水) 23:40:47.09ID:Dp9Jy9i30
素直じゃない
280デフォルトの名無しさん (ワッチョイ 0f2c-injD)
垢版 |
2019/04/02(火) 21:21:41.64ID:3dIjgbOm0
たのしいRuby 第6版、2019/3/19

Ruby 2.6 対応の新版が出た!
2019/04/07(日) 22:27:45.26ID:AQpaCo65a
番兵が出てくるのはカプセル化が下手糞な証拠
2019/04/07(日) 22:39:35.97ID:5zmVKMWF0
番兵は、カプセル化には何の関係もない。
効率的な実装に役立つものだから。
2019/04/08(月) 02:08:42.22ID:UNm+DOhC0
nilとfalseが別だったりするし
Rubyの場合は番兵いらんと思うぞ
2019/04/08(月) 19:44:29.48ID:xeXNozVz0
そら、番兵がいらんようなコードしか書いてないだけや。
285デフォルトの名無しさん (ワッチョイ 02d2-GBaV)
垢版 |
2019/04/08(月) 19:53:09.21ID:Axd3G2xU0
番兵の話はお題スレからきていてると思うのだけど
番兵が有用と言う人と無用と言う人で
元のお題をやってみたら?
2019/04/09(火) 00:49:34.31ID:BWeYJxgy0
番兵が無ければ、

上下 : 上下に行があるか?
左右 : 左右に列があるか?

を判定しないといけないから、わかりにくい
287デフォルトの名無しさん (アメ MM8d-3NqX)
垢版 |
2019/04/09(火) 01:32:18.70ID:03qzHG/tM
範囲外アクセスをどう扱うかの方法論でしかないのでは?
lengthすらない昔のC辺りのやり方。
色々整備されてる現代言語でやる奴はアホ。
アホというか、だったらCやってりゃいいじゃん。
楽に書くために高級な機能があるのに番兵のほうが分かりやすい?w
高級機能のために速度犠牲にしてる言語で高級機能使わないとかww
288デフォルトの名無しさん (アメ MM8d-3NqX)
垢版 |
2019/04/09(火) 01:35:04.47ID:03qzHG/tM
eachよりforのほうが分かりやすい
mapよりforのほうが分かりやすい
reduceよりforのほうが分かりやすい
CでいいじゃんCやってなよ
2019/04/09(火) 02:17:33.75ID:3lXFFzae0
範囲内かどうかをいちいち判定して、わざわざ分岐したいんか。
まったく、物好きやな。w

んなことをせんでも、番兵や余白を利用したら、わかりやすさや効率化を果たせることもあるんやで。
2019/04/09(火) 02:56:23.16ID:Lun3H7EC0
こんなのあったな

10 ON STICK(0) GOTO 40,60,30,60,50,60,20,60
20 X=X+(X>0):GOTO 60
30 X=X-(X<3):GOTO 60
40 Y=Y+(Y>0):GOTO 60
50 Y=Y-(Y<2):GOTO 60
60 RETURN
2019/04/09(火) 03:40:14.16ID:Lun3H7EC0
範囲が1つ多かったな
あと押さない場合0だったような
292デフォルトの名無しさん (ワッチョイ 012d-gjr1)
垢版 |
2019/04/09(火) 17:27:08.92ID:a64vJmyf0
Ruby Motionって契約してる人います?
これって今から使い始めても継続的に保守され続けるような雰囲気してますか?
2019/04/09(火) 18:42:29.12ID:GpL36fRzM
IDEが欲しいならRubyMineかVSCodeにしとけ
さすがにRubyMotionなんかもう完全に終わってる
2019/04/09(火) 19:38:46.13ID:gArhDSWi0
>>289
Rubyの配列(Array)は添字による読み出しの際に範囲外だとnilを返す
逆に言えばnil以外で初期化することでnilを番兵代わりに使える
まぁ、負の添字に対するカバーは必要だが
2019/04/09(火) 20:45:47.01ID:W6lz3wMr0
番兵の勝ち
296デフォルトの名無しさん (アメ MM8d-3NqX)
垢版 |
2019/04/09(火) 20:57:02.17ID:QoVolURMM
じゃあCでいいな。
遅いくせにCでやってたのと同じ方法でしか解決できないクソ言語。
2019/04/09(火) 23:02:02.22ID:AKuUbIoh0
何言ってんだこいつ
298デフォルトの名無しさん (ワッチョイ 012d-gjr1)
垢版 |
2019/04/10(水) 07:32:34.80ID:2VCYuCv80
>>293
広く捉えればIDEなのかも知れませんが、iOS/Android等の開発ができるのが売りなので他ではなかなか代替が効かないと思うんです
http://www.rubymotion.com/jp/
これもう廃れてるんですかね・・・・・
2019/04/10(水) 07:36:54.35ID:lSfLGzBw0
Rubyすら死にかけているというのに
いわんやRubyMotionをや
2019/04/10(水) 07:53:22.57ID:bZQdtc4sa
Rubyでスマホアプリとかそれこそ論外
プロのバリバリのRubyエンジニアですら誰も使ってないわそんなもん
2019/04/10(水) 19:42:08.61ID:2VCYuCv80
>>299-300
やはり止めておいたほうが良さそうですか
以前、将棋のロジックをRubyで書いてしまったので、これをiOS/Androidに使い回せたら良いなと思ったのですが・・・・
2019/04/10(水) 19:53:43.11ID:Uk872prY0
そんなん移植すればよかろうよ
書いた総時間の10分の1くらいでできるはずだ
プログラミングに慣れているというのはそういうことでもある
2019/04/11(木) 00:11:15.02ID:rbVbMGbi0
Rubyで書いたのかもったいない
絵に描いたような技術的負債だな
サンクコストと割り切って早めの移植をお薦めする
2019/04/11(木) 00:27:57.58ID:6OTuCZjY0
プロトタイプとして作るならRubyでも全然アリだと思うけどな
技術的負債と言い切る方がむしろおかしい感じがする
2019/04/11(木) 00:28:18.22ID:SMdbPkuM0
Haxe が、Ruby・Elixir も、JavaScript(JS) に変換してくれればなあ

パズル本でも、解答はRuby で書いてある。
これが、JS なら、可読性が悪くなるから

まあ、ES2015(ES6)で書いて、Babel で、ES5 に変換するぐらいかな?
2019/04/11(木) 01:05:21.02ID:rbVbMGbi0
>>304
ロジックをRubyで書いてしまったからアプリもRubyで…
と言った具合に間違いを積み重ねることになった元凶を
技術的負債と言わずに何と言うの?
2019/04/11(木) 01:12:54.22ID:6OTuCZjY0
>>306
間違いは「プロトタイプをそのまま使いまわそうとすること」であって、
「プロトタイプにRubyを使ったこと」ではないはずだよね
「何がなんでもRubyを使うことは間違い」と言いたいだけなんちゃうん?
2019/04/11(木) 01:50:09.37ID:rbVbMGbi0
>>307
その解釈こそこの文脈ではうがちすぎだろう
実際のところは>>292に訊いてみないとわからんけど

あとIDEのサポートの薄いRubyがプロトタイピングに優れてるっていうのも
(ことロジックをという局面に限れば)眉唾だなぁ
RailsでWebアプリをって言うならまあ納得だが
309デフォルトの名無しさん (ワッチョイ 8b2c-9RpW)
垢版 |
2019/04/11(木) 02:33:02.00ID:SMdbPkuM0
Sinatra, Rails を使えば?

GUI は、HTML, CSS, JavaScript で、
サーバーサイドはRuby
2019/04/11(木) 07:54:47.05ID:dq518c3V0
Rubyで書いたものを別言語に移植するのは、そう難しい話でもないだろ
opalとかで楽しようとしたほうが罠に嵌りそう
311デフォルトの名無しさん (エムゾネ FF33-grM/)
垢版 |
2019/04/11(木) 11:27:47.80ID:bTGeujWNF
perlで書いたのがもったいない
そう思っていた時期がありましたが
rubyで書いたらそんな小さな心配は吹き飛びました

rubyで書いたのがもったいない
そう思っていた時期がありましたが
pythonで書いたらそんな小さな心配は吹き飛びました
312デフォルトの名無しさん (アメ MM4d-nfNM)
垢版 |
2019/04/11(木) 11:44:58.37ID:GR4ezT/uM
最初に苦労してCで書いておけばその後は言語の流行りに合わせてFFIラッパー書くだけで済んだのにねwwww
2019/04/11(木) 20:54:31.10ID:6OTuCZjY0
>>312
モノになるかどうか分からんものに苦労を強いるなんて愚の骨頂
2019/04/11(木) 21:15:03.89ID:JHOkJdt/M
>>313
将棋のAIみたいなCPU時間のかかる処理だと、Cならブルートフォースで全く問題にならない箇所が
ゲロ遅Rubyだとアルゴリズムの最適化が必要になったりして、結局Cの方が早かったんじゃないか、、、となるケースが多いよ
そもそもアルゴリズムの実装はCでもあまり生産性に差が出ないし
2019/04/11(木) 21:24:11.31ID:6OTuCZjY0
>>314
トライアンドエラーを繰り返すようなものをCでやるのはつらみがあるよ
ある程度形になってきたらあらためてCなりでやればいいだけ
2019/04/11(木) 21:34:09.67ID:+nT2xOqaa
>>315
高負荷なアルゴリズムの実装においては、遅すぎる言語を使うことでその「エラー」の閾値が大きく低下することがあるってことだ
遅くない言語では問題にならないことが問題になる
2019/04/12(金) 00:55:41.82ID:L59U/aC10
>>315
sassがそれをやったわけだが。

最初Rubyでsassが作られた。
今はlibsassというC言語実装が作られた。

だけどあれ、確か2006年ぐらいにRuby版がでてから
6年ぐらいもかかっただろ?
そしてRuby版に機能が追いつくまでさらに数年
2019/04/12(金) 00:57:31.09ID:L59U/aC10
>>316
> 遅すぎる言語を使うことで

遅すぎるという言葉には2つの意味があって、
"実行速度が" 遅すぎる言語で問題になることがあるように、
"開発が" 遅すぎる言語では、その開発の遅さが問題になることがある
319デフォルトの名無しさん (ワッチョイ b102-eS/W)
垢版 |
2019/04/12(金) 01:54:31.59ID:kPkxqpeR0
>>315
馬鹿なの?
トライ&エラーではrubyなりpython で作って、そくどの為にCで書き直すんだろ。
Twitter やFacebook もロジックはrubyで作って、そのままでは限界を感じたからも、っと速い言語に書き換えたろ?

ロジックさえ確立すれば、多少の記述量増加よりは問題にならない。
(むしろ問題があったから変更する必要に迫られた)
2019/04/12(金) 02:31:01.87ID:WO5SLys30
Vagrant, Chef, Homebrew など、環境構築運用でシェルスクリプトの代わりには、Ruby で書く。
rbenv(anyenv) も、Rubyか?

他にも、SASS とか、他の言語よりも、数年早いから、
実験段階のものや、アクセスが少ない、中小企業向けに良い

大規模になってきたら、他の言語に変える
2019/04/12(金) 07:29:49.69ID:xRzutCJ1a
>>319
高負荷な処理の開発においては、検証すらままならないほどに遅くなることが普通にある(Cで書いててもね)
そもそも最初からパフォーマンスが問題になることが分かっているなら、速度自体もアルゴリズムの良し悪しを決める重要なファクターだ
まあRuby使いには想像しにくい世界かもね
2019/04/12(金) 11:06:50.87ID:+AQGVq0O0
>>320
>大規模になってきたら、他の言語に変える
って>>292の話と全く変わらないな
2019/04/12(金) 13:41:56.03ID:L59U/aC10
>>320
> rbenv(anyenv) も、Rubyか?

rbenvもanyenvもその兄弟(*env)たちもシェルスクリプトで作られてるよ。

https://github.com/rbenv/rbenv の緑のバーをクリックすりゃわかるだろ?
Shell 96.5% Ruby 1.5% C 1.4% Other 0.6%

環境構築というか、"端末の"環境構築なので
端末を提供しているシェルスクリプトが一番相性が良い
2019/04/12(金) 13:47:31.31ID:L59U/aC10
あとrubyの環境を整えるのに、rubyが必要とかありえないわなw


それにruby遅いねん。(ruby以外のスクリプト言語もそうだろうけど)

$ time ruby -e 'print "ruby"'
ruby
real 0m0.054s
user 0m0.042s
sys 0m0.013s

$ time sh -c 'echo "sh"'
sh

real 0m0.001s
user 0m0.000s
sys 0m0.001s
2019/04/12(金) 14:33:52.25ID:L59U/aC10
Perlは少しはマシだな

$ time perl -e 'print "perl"'
perl
real 0m0.003s
user 0m0.000s
sys 0m0.002s

$ time php -r 'print "php";'
php
real 0m0.016s
user 0m0.016s
sys 0m0.000s

$ time python -c 'print "python";'
python

real 0m0.016s
user 0m0.012s
sys 0m0.004s
2019/04/12(金) 14:37:23.94ID:L59U/aC10
>>324-325 ちなみにこれ *envを使っていないLinux環境です。

*env を使うと各インタプリタ起動前にオーバーヘッドが入るから遅くなるが
これはそれがない純粋な速度ということ
2019/04/12(金) 14:56:49.04ID:LhXUTlO1M
それでもほぼ起動のオーバーヘッドだろう
RubyはRails専用なので長時間動作が前提だから起動時間はあまり重視されてないんだろうね
2019/04/12(金) 15:03:10.45ID:HYW7LIPs0
ツイッターってrailsって本当?
329デフォルトの名無しさん (エムゾネ FF33-grM/)
垢版 |
2019/04/12(金) 15:26:10.57ID:VR9mZ4dFF
スタートアップで使ってたってだけで
もう使ってないから

遅すぎて見切られた
330デフォルトの名無しさん (アメ MM4d-nfNM)
垢版 |
2019/04/12(金) 15:58:45.73ID:EM6Ln3LKM
ツイッターがRailsていつの時代の話だよwww原始人かww
今でもScalaなのかどうかが気になるわwwww
2019/04/12(金) 16:30:59.42ID:kdt5VzkQ0
>>327
> それでもほぼ起動のオーバーヘッドだろう

>>326で言ってるオーバーヘッドっていうのは
各言語用のインタプリタ起動のオーバーヘッドではなくて、
*envの仕組み上、追加で存在するオーバーヘッドのこと。

*envは例えばrubyだったら、rubyのバイナリを直越実行するのではなく、
rubyの指定されたバージョンを起動するためのシェルスクリプトを実行する。

>>324-325は、*envを使ってないから、各言語用のインタプリタ本来の
起動時間ですよって話。
2019/04/12(金) 18:26:13.37ID:xKzG8Z1CM
IOのオーバーヘッドもあるんじゃないの?
RubyはUnicodeの確認とかしてそう。
逆に、BashやPerl5はしてなさそう。
2019/04/12(金) 19:31:58.44ID:kdt5VzkQ0
なんだよ?Unicodeの確認って
単に「Rubyは起動が遅い。」でいいだろw
2019/04/12(金) 23:32:32.24ID:5JLil1XU0
出力にかかる時間を計ってる以上、「起動」の時間はわからんだろ。
Unicodeうんぬんは、文字の妥当性を検証してる気がしたから。バイナリを流すとエラーになったような。

きっとRubyは遅いだろうと思うが、それでも、おまえの確認は証明になっていないぞ。
2019/04/12(金) 23:39:02.39ID:kdt5VzkQ0
>>334
Rubyは起動か文字列出力が遅い
2019/04/12(金) 23:46:43.64ID:kdt5VzkQ0
はぁ、くだらね。Rubyが遅いという結論は変わらないんだから
こっちは、起動が遅くても文字列出力が遅くても構わんのだがなーw

はい。やっぱりRubyは起動が遅いです。
php、pythonの3.5倍、Perlの17倍、shの50倍遅いです。

$ time ruby -e ''
real 0m0.053s
user 0m0.049s
sys 0m0.004s

$ time sh -c ''
real 0m0.001s
user 0m0.000s
sys 0m0.001s

$ time perl -e ''
real 0m0.003s
user 0m0.003s
sys 0m0.000s

$ time php -r ''
real 0m0.015s
user 0m0.004s
sys 0m0.011s

$ time python -c ''
real 0m0.014s
user 0m0.011s
sys 0m0.004s
2019/04/12(金) 23:48:50.10ID:kdt5VzkQ0
だいたい。たかが出力にそんなに時間がかかるわけ無いだろ
real 0m0.054s の大部分が起動ではなくて、
出力の時間だっていうのなら、それはそれで大爆笑もんだろ
起動よりも出力のほうが時間かかるって言ってんだから
2019/04/13(土) 02:52:14.07ID:+rbgtPEq0
なんでそんな人間がRubyスレを覗いてるんだろうねぇ…
Rubyが嫌いならRubyスレなんて覗かなきゃいいだけなのに
339デフォルトの名無しさん (アウアウエー Sae3-grM/)
垢版 |
2019/04/13(土) 03:03:39.84ID:cdJINjrpa
ごみん
2019/04/13(土) 07:06:14.59ID:blG/UTRx0
シェルスクリプトでループしたら、5分以上掛かる。
プロセスも、10万以上起動されるし

Ruby なら、3秒ぐらい

だから、シェルスクリプトで書かない
2019/04/13(土) 08:05:07.56ID:bIdtQ5MW0
> シェルスクリプトでループしたら、5分以上掛かる。
> プロセスも、10万以上起動されるし

お前の書き方が悪いんだろw
2019/04/13(土) 14:26:56.18ID:sX5qVOZG0
>>340
ウソでなければ、極端すぎる。
シェルどうこうじゃなく、ただやりかたがまずいことを疑うな。
2019/04/13(土) 14:27:50.19ID:sX5qVOZG0
まさか、Cygwinだったりしないよな?
2019/04/13(土) 16:50:14.26ID:l6UxczrL0
ruby --disable-gems -e ''
ならそんなに時間かからないはずだけど。
2019/04/13(土) 17:19:39.65ID:YpOFfnixa
>>342
そいつは何言っても自分を省みることのできない奴だから、構うだけ無駄だと思うよ
2019/04/15(月) 21:00:33.40ID:UzKyMZCIa
>>338
日本が嫌いなのに日本にしがみついてる朝鮮人みたいなもんだよ。
2019/04/16(火) 08:48:21.04ID:LiYaAaxe0
Rubyて「楽しく開発ができる」って言うじゃない?
2019/04/16(火) 09:21:31.52ID:V3kPCGsbM
うん
Rubyしかできない人ほどそう言うね
2019/04/16(火) 09:32:48.43ID:jMhdT2ep0
その逆、「開発がヘヴィで苦行なデスマーチになりまーーーす!」と宣伝する言語は無い
一般的には、どんな言語や商品でもそう宣伝する、そうしない商品は無い
2019/04/16(火) 09:44:32.83ID:nXxzoFc/M
>>347
開発当初はその通り
Railsがしゃしゃり出てくる前もまあ当時の他言語と比べてまあ妥当
Rubyデツクルモノ=Railsとなってからは「Ruby別に楽しくないじゃん」とか言われるようにはなった
メモリ16GBとSSDで意識高い系言語もIDEでぐわんぐわん言わせられる昨今、Rubyのそのへんのメリットは比較上は薄い
351デフォルトの名無しさん (ワッチョイ b102-2EiJ)
垢版 |
2019/04/16(火) 10:39:23.01ID:S7eq1ncA0
>>347
ごめん。
RubyよりHaskellが楽しい。
352デフォルトの名無しさん (ワッチョイ 992d-U5P5)
垢版 |
2019/04/16(火) 10:54:33.68ID:xaQ/mbi+0
助成金サギみたいなのはやめようぜ
353デフォルトの名無しさん (ワイーワ2 FF63-grM/)
垢版 |
2019/04/16(火) 11:56:14.82ID:vZl8q5zBF
ほんとうはデスマになってるのに
Ruby使うことでラリって気持ちいいから
デスマに気付いてないケースは多そうだ
2019/04/16(火) 13:37:30.80ID:V3kPCGsbM
後のこと一切気にしなくていいならJavaでも楽しいよ
最近Rubyにヘイトが集まってるのは、Rails全盛期にそうやって乱造されたアプリの便所掃除の仕事の割合が増えてるから
355デフォルトの名無しさん (アメ MM4d-nfNM)
垢版 |
2019/04/16(火) 14:09:38.51ID:HGB3ondZM
書きやすく 読みにくい
→楽しく適当に書かれたウンコードの保守押し付けられた奴らブチ切れ
当然書いた本人はもういないw
356デフォルトの名無しさん (ワイーワ2 FF63-grM/)
垢版 |
2019/04/16(火) 15:42:10.89ID:vZl8q5zBF
perlの読み難さに嫌気が差して造られた言語なのにperlの悪い所を引き摺ってるからな
2019/04/18(木) 11:40:30.01ID:zHViXhbq0
パターンマッチだって
https://bugs.ruby-lang.org/issues/14912
358デフォルトの名無しさん (ワッチョイ 5e2c-LwVf)
垢版 |
2019/04/20(土) 14:24:37.48ID:rcvSJkam0
社員50人の「Ruby 開発」という会社の求人を見た。
東京・大阪で求人

Rubyでは、国内3位だって!

Cookpad, マネーフォワードに次ぐ会社か?
上場してるのか?
2019/04/20(土) 15:03:38.48ID:rcvSJkam0
変換表を使って、置換できるのは便利!

hash = { 'ab' => 'あ', 'xy' => 'ん' }

p re = Regexp.union( hash.keys ) #=> /ab|xy/

p "9xy9ab9xyx".gsub( re, hash )
#=> 9ん9あ9んx

gsub(pattern, hash) -> String
文字列中の pattern にマッチした部分をキーにして、hash を引いた値で置き換える

hash = {'b'=>'B', 'c'=>'C'}
p "abcabc".gsub(/[bc]/){hash[$&]} #=> "aBCaBC"
p "abcabc".gsub(/[bc]/, hash) #=> "aBCaBC"
2019/04/21(日) 00:33:20.95ID:WKly27nG0
このメソッド設計したやつ頭悪そう
2019/04/21(日) 01:10:32.26ID:8e51ow7Fa
直交性のかけらもない醜悪な仕様だね
2019/04/21(日) 01:22:08.98ID:ODZGWBWT0
直交性の権化とも言えるJavaのライブラリがいいかといえば、そうとも言えないわけで
バランスって大事だよね
2019/04/21(日) 08:25:50.68ID:lCttlvu0M
キャプチャとかグループ参照とかそのへんの問題だと聞いた
ブロック引数じゃないと先に評価されちゃう
2019/04/21(日) 12:41:01.28ID:37BYu4xvM
ブロック使わないと正規表現による置換が全て表現できないとわかった時点で第2引数廃止するべきだったってのは、
まあその通りではあるにはあるのだけども
2019/04/21(日) 13:14:59.11ID:z90qN1ox0
んなこというのは、Ruby者だけやろ。
ふつうは、使い分けりゃいいんだよ。
まあ、他の言語にさんざケチをつけまくったわけだから、Rubyにもケチをつけんとな。

どうでもいい改善のために、後方互換を壊すのはクソ過ぎだが。
366デフォルトの名無しさん (ワッチョイ 092d-RDgi)
垢版 |
2019/04/24(水) 15:15:30.27ID:NuE3hWAT0
最近、Rubyで簡単に稼げたとうたって謎の講座を売りつけようとしてるやつがえっらい増えてんな
HTMLで稼げた系の方が遥かに多いものの、SNSにも動画サイトにもすげえ数あるわ
情報商材屋もアフィリエイトや仮想通貨ネタじゃ食ってけなくなってHTMLネタや延いてはRubyネタまで来たんだろか?
367デフォルトの名無しさん (ワイーワ2 FF1a-ZG7F)
垢版 |
2019/04/24(水) 15:53:51.84ID:KVKHKBwPF
補助金に群がる日本恒例のあれやろ
368デフォルトの名無しさん (アウアウウー Sa1b-ScLU)
垢版 |
2019/05/10(金) 13:07:53.40ID:+ugiu1c8a
Cygwinでruby-test-unitを入れたら/usr/share/gems/にインストールされた。

bundle exec ruby hoge.rbとかするとtest-unitがないって言われる。

gem envするとGEM PATHSに/usr/share/gems/がはいってる。
bundle envするとGem Pathに/usr/share/gems/が入ってる。
bundle exec gem envするとGEM PATHに/usr/share/gems/が入ってない。

bundler使いつつ/usr/share/gems/にあるtest-unitを使うにはどうするのが一番スマート?
2019/05/11(土) 08:15:27.14ID:bKjSBhWB0
Windows では、Ruby Installer のMSYS2 を使うのでは?

漏れは、MSYS2を入れてない(ポータブル版を使っている)から、
web socket などはコンパイルできないけど

64ビットOS で、Ruby 2.4/2.5 なら、
C:\Ruby24-x64
C:\Ruby25-x64

2.6 は、まだ使わず、1年は様子を見た方がよい
370デフォルトの名無しさん (ワッチョイ 375f-4N0r)
垢版 |
2019/05/11(土) 12:41:03.42ID:td9YBJ3L0
windows で ruby はマジでお薦めしない
四の五の言わず VM 入れろ
2019/05/11(土) 14:19:54.60ID:D877RybE0
WSLでいいよ。楽だし。
2019/05/11(土) 15:27:11.07ID:kOi/VI9x0
WSLは、2でかなり様変わりするようやな。。。
素人はまだしばらく様子を見てたほうがエエんちゃう?
2019/05/11(土) 18:03:57.12ID:D877RybE0
もうとっくに様子を見る次期は終わってるよ。
WSLは十分実用になる
2019/05/11(土) 21:06:38.06ID:btpUiiWv0
windowsでそこまでやりたいか?
特にRubyを使うメリットゼロだろ
素直にlinux使えよって思う
2019/05/11(土) 21:48:13.92ID:kOi/VI9x0
>>373
2は別物だと知ってるか?
2019/05/11(土) 22:12:16.55ID:JJsQ24Nt0
RubyってLinuxじゃなくね
2019/05/11(土) 22:23:46.69ID:D877RybE0
>>375
WSLとWSL 2は共存可能

https://news.mynavi.jp/article/20190508-820096/
> MicrosoftはWSL 2は通常のアップデートの中で提供し、WSLとWSL 2の共存も可能だとしている。

WSL2はまだでてないし、様子見というのはわかる。
だがWSLは様子見の段階は終わってる。

WSL2は様子見してても、WSLを使わない理由はない
WSL2はWSLを改善するのが目的なので、様子見の段階は有るにしろ
最終的にはWSLよりも良いものになる

今はWSLを使えばよい。WSL2が実用レベルだとわかったら乗り換えれば良い
2019/05/12(日) 12:44:36.55ID:SDh+fgbA0
素人は、状況が落ち着いてから乗っかればいいんだよ。
379369 (ワッチョイ 9f2c-NS0m)
垢版 |
2019/05/12(日) 13:38:51.73ID:dSbddX8d0
漏れは、Windows 10 で、Ruby 2.4 を、C:\Ruby24-x64 に入れてる

同時に、WSL, Ubuntu16.04 で、Ruby 2.3を入れてる。
Ubuntu18.04 なら、さらに、Ruby のバージョンも上がっているかも


ただし、1-liner を書く際、Linux では、これで動く。
ls | ruby -ne 'puts $_.center(20, "-")'

一方、Windows では、" でバグるから、
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))'

"-" の部分を、Ruby の% 記法で囲んで、%Q("-") としないと正常に動かない

%, %Q で、ダブルクォーテーションをエスケープできる。
\"-\"
380デフォルトの名無しさん (ワッチョイ 572d-vM1y)
垢版 |
2019/05/12(日) 14:48:42.32ID:eMjN+/Cm0
>>376
みんなコードを書くのはMac、実行がLinuxってのが普通になっちゃってるからな
Windows版は、「高卒用パソコンなんてサポートしてどうするの」ぐらいの扱いがされてる
2019/05/12(日) 15:19:52.63ID:OoMn1CYl0
>>379
> 一方、Windows では、" でバグるから、
WSLで動かしてるけど、Linuxと同じように使えるよ?
2019/05/12(日) 20:27:41.49ID:EJ9HeJOja
>漏れは、Windows 10 で、Ruby 2.4 を、C:\Ruby24-x64 に入れてる

って言ってるやんけ
2019/05/12(日) 21:19:22.35ID:dSbddX8d0
>>379
では、

これは、Windows 10, WSL, Ubuntu16.04 上でやった。
ls | ruby -ne 'puts $_.center(20, "-")'

一方、Windows 上のPowerShell(PS) では、" でバグるから、 %Q("-") が必要。
ls -name | ruby -ne 'puts $_.center(20, %Q("-"))'

つまり、bash, PS など、シェルの種類によって、書き方を変えなければならない

まあ、ls, ls -name とか、他の部分も異なるけど
2019/05/12(日) 21:20:07.98ID:9Y9I0g9l0
お前らずーーーーと同じ話してるな
2019/05/12(日) 21:35:50.19ID:SDh+fgbA0
>>383
全部%クォートで書けば解決!
2019/05/13(月) 14:56:49.71ID:2i/QV07+0
だから、Windowsを使うのを止めれば、すべて解決だよ。
2019/05/13(月) 15:12:47.42ID:biecMsFD0
WindowsでWSLを使ったら全部解決した。ワロタ
MSすごいな。
2019/05/13(月) 21:18:12.41ID:D6B785Bh0
MSのLinuxへの貢献度は昔から高かった。
389デフォルトの名無しさん (アウアウエー Sadf-4N0r)
垢版 |
2019/05/13(月) 21:58:08.28ID:XgdYNs3Ba
ruby が何か努力した訳ではないな
M$ が頑張ってくれただけ
390デフォルトの名無しさん (ワッチョイ f0ba-N32O)
垢版 |
2019/05/20(月) 23:17:13.22ID:uii5Lp4R0
初心者すぎてすみませんがprogateのrubyを2回やり終えたんですが
次は何やるのがお勧めでしょう?
同じくprogateのruby on railsに進むべきか
たのしいrubyや3ステップで学ぶruby入門などの書籍を読むべきか
あるいは他に何かありますでしょうか?
2019/05/21(火) 00:23:24.65ID:Ks32/nFwa
>>390
いいから何か作ってみなよ
392デフォルトの名無しさん (ワッチョイ f82d-Q2B8)
垢版 |
2019/05/21(火) 02:18:15.20ID:NmxJjL0u0
>>390
俺と一緒にRubyMotionをやらないか
2019/05/21(火) 09:41:17.03ID:2vqnZrlM0
>>392
やる!
2019/05/21(火) 12:37:52.02ID:ZAINLMmO0
この3冊を読む。
たのしいRuby 第6版、2019/3/19
Effective Ruby、2015
改訂2版 Ruby逆引きハンドブック、2018/8/28

「たのしいRuby」だけ読んでも、そこそこプログラミングできる!

Linux の基本コマンドを30ぐらい見て、
1-liner とか、パイプラインのフィルターでも作ってみれば?

他には、Enumerable の文書で、どういう機能があるか理解する
2019/05/29(水) 22:37:17.50ID:axNbAI7/M
例えばNet::HTTPみたいな::がある場合のautoloadってどう書けばいいの?
現時点ではautoload :Net,'net/http'みたいにしてるんだけど、
これだとNet::SMTPを参照しても読み込んじゃうよね
2019/05/31(金) 00:09:30.12ID:P50R/Vqw0
キーワードなのかKernel関数なのかさっぱりわからないんですが見分け方を教えてください
rubyの場合は動的直接拡張もあるのでパンクしてやばいです
2019/05/31(金) 07:25:34.79ID:sU0K1/9C0
>>396
予約語は公式リファレンスに書いてある
2019/05/31(金) 23:50:45.29ID:TSXZ3QWc0
>>396
IDE使えばいいんじゃね
2019/06/04(火) 08:33:21.09ID:oR7ssn0w0
初心者にも満たない学習者です
他人様のコードで申し訳ないんですが

(ttp://2d6.parasite.jp/rgss/script/restart.html)

class Scene_Title
 (中略)
 def read_save_data(file)
  (中略)
  characters = Marshal.load(file)
  (中略)
  Graphics.frame_count = Marshal.load(file)
  (中略)
  $game_variables   = Marshal.load(file)
  $game_self_switches = Marshal.load(file)
  (中略)
 end
end

これ、どう読んで解釈したら良いんでしょうか
Marshal.load()ってunserializeやってくれる関数ですよね
何回も"file"を読んで、同一の内容を、それぞれ違う変数・グローバル変数に入れてる?
それとも同一の内容じゃない?読むのは1回だけ?

OSやversionはすみませんわかりません
ツクール関係だとは思うのですが、ツクール関係独特のものなのかどうかもわからず
2019/06/04(火) 11:25:24.98ID:FCkMXnZ60
シリアライズされてるなら同名の変数にキチっと入れてくれるんじゃないの
401デフォルトの名無しさん (ワイーワ2 FFa2-dkMk)
垢版 |
2019/06/04(火) 11:29:47.34ID:uvNmGZETF
最適化されてない自動生成のコードだろ
2019/06/04(火) 12:20:57.18ID://1XsOfQ0
同じファイルを何回も読むのは、無駄

でも中略部分で、そのファイルに書き込んで、ファイルの内容を変えているなら、
再読み込みする意味があるけど

解説が付いていない、他人のソースコードを分析しない方がよい。
書いた人は、プログラムの仕様を知っているけど、
読む人は、仕様を知らないから、かなりの時間を損する

仕様(質問)からプログラム(答え)は書けるけど、
プログラム(答え)から仕様(質問)を把握するのは、極めて難しいから

つまり、なぜこういうプログラムになったのか、の「なぜ」を解明するのが極めて難しい

物理現象と同じ。
法則から現象は推測できるけど、現象から法則を導き出すのは、極めて難しい

>>396
VSCode でも、キーワードなどは色分けされる
2019/06/04(火) 12:49:27.49ID:oR7ssn0w0
ありがとうございます
特に中略部分でfile側が変化しているということはないようです

つまり、暗黙的に何か、Marshal.load()が左辺の変数名に拘束されるとか
Marshal.load()のfileオブジェクトからの読み取りがスタック的になってるとか
そういうのは無くて、普通に読んでいって大丈夫ということなんですね

>>402
おっしゃることもわかるんですけど
自分は作法が全然わからない時は特に、リファレンス見つつ他人のコードを見つつ勉強が効率良くて
2019/06/04(火) 17:36:22.57ID://1XsOfQ0
他人のクソコードを分析しても、時間の無駄。
普遍的な知識を得られない。
他人の仕様を推測するだけ

この3冊を読んで、プログラミングのお題スレの問題を解いた方が、力がつく。
Sinatra, Rails をやっても良いし

こういう勉強が普遍的で、他言語にも応用できるし、自分で考えるから成長できる

他人のソースコードを持ってきて、これはどんな事をやってるのですか? って質問する者が多いけど、
他人は仕様を知ってるけど、質問者は仕様を知らないから、極めて不利

一方、プログラミングのお題スレでは、仕様が与えられているだろ。
こういう場合には、他人のコードを見ても、意味がわかる。
だから勉強になる!

プログラミングとは、仕様からプログラムを作るもので、
プログラムから仕様を解明するものじゃないので、時間を失うだけ!
特に初心者にとっては、良い本などで、体系的に浅く学ぶのを勧める

推薦書
たのしいRuby 第6版、2019/3/19
改訂2版 Ruby逆引きハンドブック、2018/8/28

Effective Ruby、2015
バグが起きにくい、安全で効率的なコーディングと、間違いやすいポイントを解説
2019/06/04(火) 17:40:50.53ID:8o3tMmIE0
宣伝費、いくら貰えるんだろう?
2019/06/04(火) 18:16:47.29ID:aXH0FNpKM
いつものキチガイを相手にするつもりはないけど、質問者が誤解しないようにコメント
仕事のプログラミングだと基本的にソース眺めてる時間のほうが長いよ
ましてRubyも今や落ち目で便所掃除の仕事ばかり増え、全く新しいものを作る機会は減る一方だ
2019/06/04(火) 19:17:17.46ID:LGhp/e100
>>405
ないよ
そんなものがあったら3日でBANだ
2019/06/04(火) 20:11:05.76ID:P882eZbVM
>>403
参考にするのなら、別のソースにしたほうがエエんちゃう?
2019/06/04(火) 20:28:11.60ID:oR7ssn0w0
開発/運用側に立ってるとネットなんて
宣伝と、自作自演・サクラと、ユーザ奪い合い荒らしと
この3つばっかりって身にしみてるもんですし

>>408
たまたまMarshal関係で調べてて出くわしたもので
rubyがこういう(>>399)書き方・使い方がデフォな言語なのかどうかを
知りたかったというのがほとんどなので
2019/06/04(火) 21:00:20.80ID:7lg/KHrxa
>>409
開発運用側に立ってなんて言うからには他の言語での開発経験があるのだろうけど、それで>>399の理解というのは謎だなと思った
2019/06/04(火) 21:35:03.46ID://1XsOfQ0
だから、他人のクソコードを見ても、時間を損しただけだろ。
得るものなんてない

「Marshal.load」で検索すれば良いだけだから

こういうAPI の知識は、文書を見れば良いだけ。
他人がどう使っているか、考えたりするものじゃない

考えるのは、仕様からプログラムに翻訳する所。
こういう単なる知識は、検索するのが早い

それに、その他人が間違ってるかも知れない。
クソコードになるほど考えさせられて、時間を無駄使いさせられるw

だから、良い本を勧めるわけ。
良いコードはシンプルで、そのまま英語のように読める!

他人のコードから、仕様を推測するなんて、漏れはやらない。
出来たとしても所詮、推測だし、得るものはない

漏れも仕事で、多言語で、仕様書がないコードを解析してきたけど、得るものはほとんどない。
せいぜい、重箱の隅をつつくような知識ぐらいしか得られない。
その知識も他で役に立たない。転用できない

なぜかと言うと、その仕様は他人に与えられたものだから。
自分には、それとは異なる仕様が与えられるから!

普遍的な、多くの言語でも使えるような知識は、良い本から得られることが多い。
それを元に、プログラミングのお題スレの問題を解いた方が、力がつく!
2019/06/04(火) 21:39:18.98ID:jFAGFsyFa
そのMarshalのコードはかなり無駄だがファイルの内容が小さいから富豪的にやってるだけだと思う
実際はちゃんとセーブデータから該当するデータを読むという処理にすべき
2019/06/04(火) 21:59:55.03ID://1XsOfQ0
それに何回も同じファイルへの読み込むのは、
他のプロセスで、そのファイルを書き換えているからかも知れない

だから、ひょっとして書き変わっているかも知れないから、
出来るだけ新しいファイルを、読み込もうとしているのかも知れない

結局こういうように、仕様に対する推測ばかりするようになる

バグのほとんどは設計段階で生じる。
仕様がおかしかったら、必ずクソコードになってしまうw

これはもはや、プログラミングではない!
このように漏れらはいつも、設計・仕様の話ばかりしている。
顧客の要求定義も知らないのにさ!ww

漏れは、こういう仕事をさんざんやってきた。
その度に同僚同士で、クソコードを分析しても得られるものはないし、
時間の浪費だよねって、常々言い合ってきたw

お金をもらえるからやってるだけで、勉強にはならない。
勉強効率で言えば、1/100 とか

重箱の隅をつつくような断片的な知識は、覚えられられないし転用できない。
体系的に学ぶ必要がある
2019/06/04(火) 22:59:30.82ID:0PWK+f1w0
fileに複数のオブジェクトがdumpされてて
それを順番にloadしてるだけだぞ
2019/06/04(火) 23:41:11.09ID://1XsOfQ0
Marshal.load(port, proc = nil) -> object

port は、String か IO と書いてある

同じファイルを何回も読み込んでいるのではなく、
複数のオブジェクトがある場合、
一度にすべてを読み込まず、1つずつ順番に読み込んでるという事かな?

結局こういうように、どう作っているのか、他人の仕様の推測ばかりするようになる

このように漏れらはいつも、設計・仕様の話ばかりしている。
顧客の要求定義も知らないのにさ!ww

結局、他人がどう作っているのかなんて、わからない!
所詮どこまで行っても、推測に過ぎない!
2019/06/05(水) 01:28:30.54ID:UB83J14X0
仕様は>>399が(中略)したところに書いてあったぞ
2019/06/05(水) 01:30:04.71ID:Oo3xyqZm0
全部コピペしてくれ
気になって寝られない
2019/06/05(水) 02:34:30.81ID:UjRB/6p50
>>415
APIの仕様は文書で調べればいいだけと自分で>>411で書いているくせに、>>415では何で頓珍漢な当て推量をする流れなんだ?
いつもどこかで聞いてきたようなお題目を並べてはいるが、上っ面の字面だけを覚えているだけだろう。本人は実践できてないし理解もしていない。
419402 (ワッチョイ 6a2c-n0I8)
垢版 |
2019/06/05(水) 22:44:36.03ID:9aT8oaGi0
Marshal.load(port, proc = nil) -> object
port は、String か IO と書いてあって、仕様を知らないと、どちらかわからないから!

漏れの印象では、Marshal は、dup, clone などのdeep copy 関係のクラス

質問者のは、文字列化して外部プロセスに送ったり、
外部プロセスから文字列をもらって、オブジェクトを構築したりする用法かな?

JSON.parse, stringify みたいな感じなのかな?

「Ruby逆引きハンドブック」では、分散(distributed)Ruby, dRuby を使ってる。
外部ホスト・プロセスで動く、Rubyとの通信

dRubyでは、Marshalによる値渡しが基本みたい
2019/06/06(木) 12:10:33.65ID:UkK5klaO0
知らん人多いのか・・・びっくりだ

STDIN.getsなんかと同じで必要な文だけ読み取ってるだけだぞ
2019/06/06(木) 14:41:45.27ID:fpHkuk9sa
Marshalとか今時使うもんじゃない
2019/06/07(金) 01:21:32.05ID:UE5bXA580
今時は何使うん?
423デフォルトの名無しさん (アウアウエー Sa93-dZrz)
垢版 |
2019/06/07(金) 01:23:56.05ID:yhNlt0n8a
Rubyとか今時使うもんじゃない
2019/06/07(金) 01:42:47.01ID:UE5bXA580
Marshalでファイルに複数のオブジェクトを読み書きできるのか
てっきり1個のオブジェクトに固めてから使うのかと思った
リファレンスマニュアルにはそのあたり書いてないからね
2019/06/07(金) 10:49:24.42ID:Eixypjmyd
CSV出力処理でメモリが上がってしまうことが多く、対策しようとしているのですが良い方法はありますか?
少し調べて、pluckメソッドを使おうと思ったのですが、ソート順が想定通りにならなかったりしそうだったので、引き続き調べてみています。
2019/06/07(金) 11:24:15.29ID:3EE3ZH/10
出力するのにソート関係ないし
質問自体が初心者だなぁ(笑)
427デフォルトの名無しさん (ワッチョイ 6b2c-MqbY)
垢版 |
2019/06/07(金) 22:37:13.77ID:wtNNzOUb0
CSV.foreach で、ファイルを1行ずつ処理できる

このメソッドは、たぶん1行ずつ読み込んでは、
そのデータを捨ててと言うのを繰り返すのかな?

でも、ソートするなら、すべてのデータがメモリ内に存在しないといけないのでは?
だから、全行をメモリ内に読み込むことになる!
2019/06/08(土) 00:20:08.05ID:0P3wY/7I0
Python では、collections.Counter で、要素の出現回数を数えられるけど、
Ruby でも、簡単にできる方法ある?
普通には、Hash に入れながら、回数をインクリメントしていくけど

import collections

l = [ 'a', 'b', 'c', 'b', 'a' ]
c = collections.Counter( l )

print( c )
# Counter( { 'a': 2, 'b': 2, 'c': 1 } )
2019/06/08(土) 02:34:37.85ID:0P3wY/7I0
>>428
自己レス

配列に含まれている重複している数を数えるには?
https://teratail.com/questions/91229

l.each_with_object( Hash.new( 0 ) ){ |e, h| h[ e ] += 1 }

Python の、こういうのは無さそう。
c = collections.Counter( l )
2019/06/08(土) 03:19:18.26ID:s7niJl7f0
["a", "b", "c", "b"].tally
#=> {"a"=>1, "b"=>2, "c"=>1}
2019/06/08(土) 03:54:40.62ID:Vf2EEML20
>>425
csvを全部読み込んで処理しようとするとそうなるのは避けられない、何らかの工夫をするしかない
一行、数行ずつ処理し、終わるごとに配列、hashをクリアしていけばいいが、出来ない場合ね

csvを二回読み、一回目で必要なキーや情報だけ集めて一度csvをclose、
2回目にその情報を使って一行ずつ処理するなど
2019/06/08(土) 05:57:15.56ID:2hi7btAr0
>>425
MapReduceみたいに複数のマシンに分散させるとか
433デフォルトの名無しさん (ワッチョイ 6b2c-MqbY)
垢版 |
2019/06/09(日) 05:48:42.16ID:rn4C+nSw0
[[1, 2], [3, 4]] の外側の[ ] を外すには、どうすれば良いですか?
[1, 2], [3, 4] のようにしたい

flatten では、内側の[ ]が無くなる

ary = [[1, 2], [3, 4]]

p ary.flatten( 1 )
#=> [1, 2, 3, 4]
2019/06/09(日) 05:57:04.68ID:Zvq68IITM
>>433
あちこちでアホみたいなレスしてRubyの評判を落とすのをやめたら教えてあげるよ
2019/06/09(日) 13:07:01.08ID:owsNLjD/0
>>433
ary[0] or ary.first
2019/06/09(日) 13:42:07.09ID:Y6d7d5Fn0
>>433
意味がわからん。
437デフォルトの名無しさん (ワッチョイ eb7c-yvwO)
垢版 |
2019/06/09(日) 14:03:11.38ID:V8qyq4Ge0
*[[1, 2], [3, 4]]
438デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 14:33:40.10ID:FDYkpc7vd
オススメな本ある?
2019/06/09(日) 14:58:26.11ID:VJkUGCEU0
>>438
アマゾン/dp/B00ICKLC2A
440デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 20:52:05.62ID:FDYkpc7vd
>>439
Rubyで作る奇妙なプログラミング言語-〜ヘンな言語のつくりかた〜
これ?
2019/06/09(日) 21:04:35.15ID:VJkUGCEU0
>>440
そうです、結構おもしろかったですよ
442デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 21:45:31.88ID:FDYkpc7vd
>>441
Kindleバージョンしかないの?
2019/06/09(日) 21:51:40.23ID:VJkUGCEU0
>>442
書籍で出ていましたよ、私が持っているのは書籍の方
444デフォルトの名無しさん (ワッチョイ ebb6-fbqF)
垢版 |
2019/06/09(日) 21:55:27.58ID:W83DJxDE0
【実体験】ブログを1,000記事ほど書いたら、月300万くらい稼げた話
https://www.youtube.com/watch?v=GmVulh282ps&;t=604s
【報告】ブログで「月収1,000万」を達成できました【方法を解説する】
https://www.youtube.com/watch?v=pgjcuLp8wt0
年間ほど努力したら「年収3,000万」になったので、経験談を語る
https://www.youtube.com/watch?v=oV_SY-a1lMs
期間工ブログの収入は1500万円でした。【フリーランスの現実&底辺からの復活編】
https://www.youtube.com/watch?v=aijLjFLOuC4
年商1300万のプロブロガーの初心者時代から今までの軌跡
https://www.youtube.com/watch?v=UMiF4T2EO9o
【収益報告】実働月10hでも大金稼ぐ方法を解説【年収6,000万】
https://www.youtube.com/watch?v=o2ISWP-VZsw&;t=288s
無料ブログは稼げない。稼ぐならオススメはWordPress一択の理由
https://www.youtube.com/watch?v=o8oUe3JS-lg
445デフォルトの名無しさん (ワッチョイ 115f-Gzfa)
垢版 |
2019/06/09(日) 22:06:11.67ID:+p5uJAry0
>>443
2008年発売の書籍!
2019/06/09(日) 22:58:24.18ID:rn4C+nSw0
おすすめ本は、このスレの最初の方に、まとめてある!
2019/06/09(日) 23:32:37.79ID:+p5uJAry0
おお!ありがと!
448デフォルトの名無しさん (ワッチョイ 5b33-2qry)
垢版 |
2019/06/13(木) 15:09:32.77ID:mYw2PK9v0
標準ライブラリに仮想環境を構築するモジュールがあれば教えてください
2019/06/14(金) 00:20:43.41ID:gXbRy3uY0
まさか、標準ライブラリには無いだろ

Chef, Vagrant とかだろ
2019/06/14(金) 11:13:41.68ID:d7JGEW920
物議を醸すパイプライン演算子
2019/06/14(金) 12:11:55.47ID:/GXcsjP70
sh「パイプライン演算子とはようやくシェルスクリプトに追いついてきたか?」
452デフォルトの名無しさん (ワッチョイ 5b33-2qry)
垢版 |
2019/06/14(金) 17:43:29.05ID:2ICDzfK10
>>449
Pythonのvenvみたいなのはないんですか?
2019/06/14(金) 21:43:43.43ID:gXbRy3uY0
rbenv, nodenv などのanyenv だろ。
ただし、anyenv は、シェルスクリプトで書かれているらしいから、Linux/Mac でしか使えない

Windows では、仮想OS を使うか、
Windows10・WSL 上のLinux で動かしている、記事もある

Windows の場合、ユーザー環境変数PATH を手動で切り替える方法もある。
PowerShell(PS) で、そういうスクリプトを書くとか

ruby.exe のある場所。
C:\Ruby24-x64\bin
C:\Ruby25-x64\bin

PS で、環境変数PATHは、; で区切り。
$env:Path.split(";")

#=> C:\Ruby24-x64\bin
2019/06/14(金) 21:51:30.95ID:gXbRy3uY0
|> は、関数型言語、Elixir のパイプ演算子

メソッドチェーンを発展させて、オブジェクト指向から、関数型へ近づく。
マルチコアCPU の時代への適用
2019/06/14(金) 22:31:52.50ID:Guh3Kqz10
パイプ演算子ってドットのエイリアスなの
それパイプ演算子じゃない
2019/06/14(金) 22:59:33.98ID:cwcbHRc8a
Rubyは第一級関数じゃないからパイプ演算子とは極めて相性が悪い
Rubyで a |> b と書いたら、(このRubyキチガイを除く)まともな頭で普通に類推したら b()(a()) の意味になっちゃうからね
括弧省略が鬼門
2019/06/15(土) 00:21:14.51ID:ZZVwfMZi0
こういうの見ると型は必要だよなあと感じる
2019/06/15(土) 02:09:14.95ID:aR6/lbk80
ふうむ
では b <| a ならどうだろう
2019/06/15(土) 08:12:23.99ID:ZCtqwPNW0
>>453
やっぱりWindows版のruby.exeを使うのはやめたほうが良いっすね
2019/06/15(土) 18:03:41.92ID:VjZxllkS0
カッコ省略の問題がなんで型の問題になるんだ?別の問題だろう。
2019/06/15(土) 23:03:19.36ID:suvV29vR0
>>456
Rubyは第一級関数言語やで
Rubyはカッコを省略してメソッドを呼び出せるので関数オブジェクトの取り出し方がめんどくさいのは事実だけどね
だからかどうか知らんけど、Symbol#to_proc みたいなのもあるけど

まぁ、メソッドチェーンでできるんだから、パイプ演算子は要らんかなとは思う
462449 (ワッチョイ 9a2c-oZrO)
垢版 |
2019/06/15(土) 23:26:17.73ID:VnSVMhRs0
>>459
Windows10・WSL・Linux で、使っている人もいるみたい

普通に、Ruby Installer で、Windows に入れると、irb の日本語表示でバグる。
外人は、sjis を知らないから

漏れは、irb を使うために、WSL の方にも、Ruby を入れてるけど、
Windows で、VSCode で十分

ユーザー環境変数、RUBYOPT に、--encoding=UTF-8 を設定してる。
これを設定すると、irb が起動しなくなる!

Windows 版では、バグがあるかも知れないので、
Ruby の最新版を使わず、2.4, 2.5 を使う方がよい

>>461
Ruby は、第一級関数ではない。
処理をオブジェクトにするとややこしいから、第一級関数にしない方がよい
2019/06/15(土) 23:47:22.68ID:mKDC3u9y0
> Windows 版では、バグがあるかも知れないので、
Windows 版使わないほうがいいっすね〜
464デフォルトの名無しさん (ワッチョイ 3e7c-jEB4)
垢版 |
2019/06/16(日) 11:55:03.74ID:NdAq/MEw0
windows なら素直に python 使え
無理して ruby 使ってもロクなことにならない
2019/06/16(日) 12:01:22.73ID:0yrhG5qHM
長く使うものを作るならGoも良い選択
Windowsで問題なく動く
JavaやPythonもそうだけど、最終的にはWindowsでの開発と相性のいいものが選ばれるんだよ
2019/06/16(日) 13:03:24.87ID:cl8tkhE+0
Windowsを捨てるのが一番良い。
2019/06/16(日) 17:50:50.68ID:ALGkmXda0
windowsでbatやpowerscript代わりにRuby使ってる
それ以上のモノをwindowsで作りたいならおとなしくC#使うべき
468デフォルトの名無しさん (ワッチョイ 9a01-nQaC)
垢版 |
2019/06/16(日) 21:33:59.28ID:keFwsV830
Windowsでちょっとしたスクリプトを書くなら、AutoHotkeyがお手軽かつ強力だな。
2019/06/17(月) 00:16:36.52ID:aG6Vt+AG0
>>468
Hot Soup Processer もw
470デフォルトの名無しさん (ワッチョイ 1ab0-bbbA)
垢版 |
2019/06/18(火) 06:18:25.72ID:3nOE2mBA0
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
471デフォルトの名無しさん (ワッチョイ 9a2c-oZrO)
垢版 |
2019/06/18(火) 22:50:32.33ID:PmBejiWq0
雑誌、WEB+DB PRESS Vol.110 (2019/4/25) では、

RubyVM を作った、Cookpad の笹田耕一による、Ruby 実装系の新連載が始まった!
2019/06/21(金) 15:19:36.87ID:LkxS+Sdt0
Sorbetの型注釈の書き方最悪だな
matzの言うことなんか無視して、ドキュメントを含めた統一的な型注釈の書き方を決めるべきだったのに
2019/06/22(土) 11:20:25.22ID:xaZv7O+80

お前さんの考える最高の書き方は具体的にどういうモンなの
2019/06/22(土) 16:41:03.20ID:ICCmixle0
>>471
買いました!
2019/06/23(日) 19:01:19.76ID:WHM6Ibwm0
日本語のような全角を2
英語のようなのを1
で計算する
printf を使えますか?

perl などでは日本語と英語がまざると
端末に出力するときの整形を printf と %s にまかせられません ずれます

この言語 ruby は日本人が作ったので
なにか日本語まじりの英語も整形する手段、ライブラリがあるかもしれない
そう思って訪ねに来ました

ruby には
日本語も整形できる手段ありますか?
スマートなprintfの類ありますか?
2019/06/23(日) 19:10:36.01ID:xc930vdW0
ソースをUTF-8で記述
2019/06/23(日) 20:29:44.45ID:WHM6Ibwm0
ありがとうございました
日本語3文字を length が 6 と
2019/06/23(日) 20:30:03.52ID:WHM6Ibwm0
返してくれるので
これで楽に書けます
2019/06/23(日) 22:54:23.73ID:MSRPr+EY0
> 日本語3文字を length が 6 と
だめじゃんw
6を返すってことは6じゃない場合もあるってことだからな
2019/06/23(日) 23:29:15.95ID:kDz3gLp60
つうか、3文字で6ってなんやねん?
9ちゃううんか?
2019/06/24(月) 08:44:42.15ID:xbxTg/onM
lengthとbytesizeは違う
2019/06/24(月) 10:39:06.34ID:GG24ezzu0
いずれにしろ
日本語3文字が6と返ってくるのはおかしい
483デフォルトの名無しさん (ワッチョイ 4b7c-Kkfr)
垢版 |
2019/06/24(月) 12:29:01.33ID:NW8XqAfb0
API で横幅を取得
East Asian Width
http://www.unicode.org/reports/tr11/
https://ja.wikipedia.org/wiki/%E6%9D%B1%E3%82%A2%E3%82%B8%E3%82%A2%E3%81%AE%E6%96%87%E5%AD%97%E5%B9%85
484デフォルトの名無しさん (スップ Sdca-rCja)
垢版 |
2019/07/01(月) 12:54:44.12ID:fiA0UtsUd
Pythonなんかだと
printとinputですが
Rubyでは
putsとgetsと三単現のsがつきますよね

命令文なので二人称のputとかgetにした方が良いと思うのですが…
何でRubyは基本的な英語の語法を無視しているのですか?
2019/07/01(月) 12:57:54.84ID:MoEwNeEzM
put stringの略だとよwww
to_sとかもそうだけどjap engrish思考よなwwww
486デフォルトの名無しさん (スップ Sdca-rCja)
垢版 |
2019/07/01(月) 12:59:27.33ID:fiA0UtsUd
>>485
いや、よく理解出来ました
考え方として賛成はしかねますが納得は出来てすっきりしました
ありがとうございましたm(_ _)m
2019/07/01(月) 13:00:37.00ID:ywGyCn2/0
printf が print format の略であるように、
puts が put string の略なのは
C言語由来ですよ?
488デフォルトの名無しさん (スップ Sdca-rCja)
垢版 |
2019/07/01(月) 13:06:28.54ID:fiA0UtsUd
>>487
いろいろありがとうございます
己の無知を反省します
489デフォルトの名無しさん (ワッチョイ 15e7-3lym)
垢版 |
2019/07/01(月) 17:05:10.98ID:2m4t7V760
>>485
またもやアンチRubyが無知を晒したか
C言語の標準ライブラリに関する知識も無しに批判するとは何とも恥さらしな


>>484
Ruby なんかだと可変(mutable)と不変(immutable)なメソッドは
たとえば sort! と sort ですが、
Python では sort と sorted と不変な操作には過去分詞の -ed がつきますよね

宣言や表明ではないし、ましてや過去の時系列とは無関係なので
可変を明示する sort! と sort にした方が良いと思うのですが…
何で Python は基本的な英語の語法を無視しているのですか?
490デフォルトの名無しさん (アウウィフ FF11-a57L)
垢版 |
2019/07/01(月) 17:05:17.93ID:87GWfzf4F
startswith や endswith には s ついてる
2019/07/01(月) 18:04:52.69ID:MoEwNeEzM
識別子に?や!使えるようにしてるもんだから他の言語は?.のところ&.なんだよなwww
ダッサwwwww
2019/07/01(月) 19:31:12.97ID:sgfBLVFM0
>>489
sort「!」なんかの時点で、もう英語は関係ないやろ!w
2019/07/02(火) 04:10:59.33ID:uMGeffjZ0
PowerShell -Part 3

744デフォルトの名無しさん2019/07/01(月) 14:41:57.11ID:YzHO/9WR
>>743
どうでもいい

745デフォルトの名無しさん2019/07/01(月) 16:21:19.60ID:MoEwNeEz
>>743
死ね

745は、色んなスレに「死ね」って書いてる荒らし。ID:MoEwNeEz。
荒らしは必ず、複数の書き込みをするので要注意!

Ruby 初心者スレッド Part 65

485デフォルトの名無しさん (アメ MM39-rSnO)2019/07/01(月) 12:57:54.84ID:MoEwNeEzM
put stringの略だとよwww
to_sとかもそうだけどjap engrish思考よなwwww

491デフォルトの名無しさん (アメ MM39-rSnO)2019/07/01(月) 18:04:52.69ID:MoEwNeEzM
識別子に?や!使えるようにしてるもんだから他の言語は?.のところ&.なんだよなwww
ダッサwwwww
2019/07/02(火) 08:05:59.97ID:b3K46sKz0
>>493
他人をどうこういう前に、お前の書き込み履歴と鏡を見直せ
495デフォルトの名無しさん (ワッチョイ a97c-a57L)
垢版 |
2019/07/02(火) 09:54:03.28ID:dJ0Zw08U0
493 は死んで良い
2019/07/03(水) 12:11:49.04ID:+RO4gFPu0
俺も493は死んでいいと思う
497デフォルトの名無しさん (ワッチョイ ff2c-NenP)
垢版 |
2019/07/10(水) 14:15:50.44ID:Jbt6AAsO0
redo は、現在のループをやり直すけど、
ループを最初の要素から、やり直すにはどう書く?

例えば、3 なら、また1 からループを始める

ary = [ 1, 2, 3, 4 ]

ary.each do |num|
p num if num == 3
end
498デフォルトの名無しさん (ワッチョイ 03e7-MLAK)
垢版 |
2019/07/10(水) 15:22:02.98ID:tfcMfkAP0
>>497
http://ideone.com/8UfEyv

もしもCPUの仕組みを知っていれば、制御変数 i は
プログラムカウンタのことだと見立てることができます
さらに抽象化して、もしもステートマシンを知っていれば:
・ブロック do .. end は状態遷移を表し、
・ブロック引数 i は遷移元状態であり、
・ブロックの評価値は遷移先状態であると
見立てることができます

なお、loop.inject というパターンは過去にも別スレで利用しました
 https://mevius.5ch.net/test/read.cgi/tech/1415419907/264
 > なおメソッド loop は一般に loop do .... end という手続き型のスタイルで
 > 書かれることが多いために ループ構文の一種と誤解されがちですが、
 > (lambda を構文糖であると >>254 が 勘違いしたように....)
 > loop はメソッドですので(コードで示したように) inject へ
 > チェーンさせることができます
2019/07/10(水) 16:16:11.40ID:Jbt6AAsO0
require 'prime'

p ary = Prime.prime_division( 18 )
#=> [[2, 1], [3, 2]]

18 を素因数分解した結果、

[[2, 1], [3, 2]]、2が1回, 3が2回みたいな表記を、
単純に、[2, 3, 3]のように開くには、どうすればよいですか?
2019/07/10(水) 16:39:54.23ID:Jbt6AAsO0
>>498
ありがとう

loop.inject か、トリッキー!
どちらも使い慣れないから、頭を使う!

each_with_index, each_with_object では、ダメなのか
501デフォルトの名無しさん (ワッチョイ 03e7-MLAK)
垢版 |
2019/07/10(水) 17:37:17.74ID:tfcMfkAP0
>>499
[[2, 1], [3, 2]].flat_map { |n, e| [n] * e }
#=> [2, 3, 3]
2019/07/10(水) 18:02:55.65ID:Jbt6AAsO0
>>501
ありがとう

flat_map は便利ですね
503デフォルトの名無しさん (ワッチョイ 3f2c-QKg6)
垢版 |
2019/07/20(土) 14:16:26.97ID:NKxgAyGK0
乱数はメルセンヌツイスタらしいけど、
偏るので、マシなやり方はないですか?

Array.new( 25 ) { rand( 1..9 ) }

出力
[3, 2, 4, 3, 6, 3, 1, 3, 7, 6, 1, 9, 3, 2, 5, 6, 6, 7, 5, 6, 3, 3, 8, 4, 9]
[5, 8, 4, 1, 3, 3, 2, 2, 9, 7, 9, 7, 7, 6, 7, 4, 3, 4, 5, 4, 8, 8, 7, 2, 5]
[7, 7, 6, 7, 9, 5, 8, 2, 8, 5, 1, 8, 4, 9, 3, 3, 9, 8, 6, 1, 1, 3, 5, 7, 2]
504デフォルトの名無しさん (エムゾネ FF5f-CMz4)
垢版 |
2019/07/20(土) 14:25:34.88ID:1y0e4GF6F
a=[3, 2, 4, 3, 6, 3, 1, 3, 7, 6, 1, 9, 3, 2, 5, 6, 6, 7, 5, 6, 3, 3, 8, 4, 9]
b=[5, 8, 4, 1, 3, 3, 2, 2, 9, 7, 9, 7, 7, 6, 7, 4, 3, 4, 5, 4, 8, 8, 7, 2, 5]
c=[7, 7, 6, 7, 9, 5, 8, 2, 8, 5, 1, 8, 4, 9, 3, 3, 9, 8, 6, 1, 1, 3, 5, 7, 2]

(a+b+c)/3
2019/07/20(土) 16:32:33.97ID:/lD6o5wQM
>>503
なぜ偏っていると思ったの?統計取った?
Rubyistは一般にあまりレベルが高くないとはいえ、Rubyのコミッタ陣は少なくとも今の君よりは知識も能力も経験も上だと思うよ
506デフォルトの名無しさん (ワッチョイ 7f2d-ShKg)
垢版 |
2019/07/20(土) 17:05:02.08ID:wkIhGLkm0
2人コミッター知ってるけど何の専門家でもなければまともな経歴でもないよ・・・・
507デフォルトの名無しさん (ワッチョイ 4f7c-CMz4)
垢版 |
2019/07/20(土) 17:08:41.13ID:ppdy8tl00
メルセンヌツイスターって初期化しなくて良いんだっけ
2019/07/20(土) 17:54:18.98ID:QHhW8HGw0
>>504
乱数で平均値を取ったら中央値に近づいて偏りが酷くなるだけじゃね
2019/07/20(土) 17:57:37.26ID:NKxgAyGK0
Kernel#rand の種は、現在時刻で初期化されるから、意識しないでもよい

統計を取れば、平均になるだろうけど、1回1回が偏る。
例えれば、

1回目 : 3,3,1,1,3,3,1,1
2回目 : 2,2,8,8,2,2,8,8
3回目 : 5,5,9,9,5,5,9,9

平均すると、まんべんなく出るのだろうが
2019/07/20(土) 18:02:25.41ID:NKxgAyGK0
例えば、503 で偏る部分は、

5, 6, 6, 7, 5, 6
9, 7, 9, 7, 7, 6, 7
7, 7, 6, 7
9, 3, 3, 9

何回やっても偏る
511デフォルトの名無しさん (ワッチョイ 4f7c-CMz4)
垢版 |
2019/07/20(土) 18:37:19.17ID:ppdy8tl00
おま環かどうか切り分けるために
codepad.org
とか
ideone.com
あたりで実行してみたら
512デフォルトの名無しさん (ワッチョイ 4f7c-CMz4)
垢版 |
2019/07/20(土) 18:37:49.12ID:ppdy8tl00
おま環かどうか切り分けるために
codepad.org
とか
ideone.com
あたりで実行してみたら
2019/07/20(土) 19:30:22.40ID:NKxgAyGK0
codepad は古すぎる!
p RUBY_VERSION #=> "1.8.6"

一方、Paiza.io では、"2.6.3"

[3, 6, 3, 8, 8, 9, 1, 3, 1, 4, 3, 8, 2, 2, 2, 6, 6, 9, 4, 2, 2, 9, 1, 1, 1]

これでも偏る

2, 2, 2, 6, 6
2, 2, 9, 1, 1, 1
2019/07/20(土) 19:33:04.24ID:2izalSzA0
1から9が完全に均等に出てほしいなら、(1..9).shuffleとでもすりゃいいんじゃね?
2019/07/20(土) 19:33:38.40ID:jbjCUWIF0
>>513
偏っているか、それともそうでないかを判断する基準をどのように記述していますか?
私には >>513 2 2 2 6 6 が偏っているようにはみえないのです、多分判断基準が違うのだと思います、なにか判断基準を書いていただけますか?
2019/07/20(土) 19:36:50.44ID:NKxgAyGK0
>>513
5, 7 が出てない

それに同じ数字が、3回続くのが、2回も出てる
2019/07/20(土) 19:40:04.58ID:CMictvk+0
まさか1桁の整数の乱数を10個取り出したら0から9までダブってないとかそういうのか
2019/07/20(土) 19:44:24.23ID:NKxgAyGK0
>>514
shuffle, sample も疑似乱数だから、 Kernel.#rand, Random と同じじゃないか?
2019/07/20(土) 19:46:37.50ID:eNhk7IpQr
アホらし
バカが騒いでるだけ
2019/07/20(土) 20:02:00.13ID:b/O9on/e0
乱数なんだから偏ってはいけない。
例えばサイコロを6回ふれば、必ず1〜6の数字が一回ずつ出るのが真の乱数だ
続けて1の目がでるなんてことはあってはいけない

俺の好きなテトリスも昔はテトリス棒が全然出なかったりしたもんだが
今のテトリスは同じものが続けて出ない。偏り無くまんべんなく出てくれるから
次に来るのが予測しやすい。これが真の乱数だ
2019/07/20(土) 20:09:09.31ID:CMictvk+0
つまりテトリスカンパニーのようにメルセンヌツイスタ株式会社みたいなのが数字の出る順番のルールを決めて
ひとつの言語にはひとつのメルセンヌツイスタライブラリしか認可しないというふうにして品質の
2019/07/20(土) 20:57:00.17ID:2izalSzA0
>>518
全然違う
shuffleはただ位置を入れ替えるだけだから、最初の10個には必ず0から9が1つずつ含まれる
これが君の望む乱数のようだからそうすりゃいいんじゃね?と言ってるだけ
2019/07/20(土) 21:02:21.62ID:2izalSzA0
>>522
その代わり、最初の9個を見れば10個目は100%予測できるから、そんなのを「普通は」乱数とは呼ばないんだけどな
ただ、君の言う乱数はどうやら普通とは違うようだから
2019/07/20(土) 21:11:50.98ID:CMictvk+0
ものによっては「7が最近出てないのでそろそろ出るはず」「1が何回も出るはずがない」を支持するデタラメ数が必要とされることはあるのだが
それは乱数で表現されるものではないので自前で実装するよりない
525デフォルトの名無しさん (ワッチョイ cf4e-NxfS)
垢版 |
2019/07/20(土) 21:43:20.93ID:/ET4uH9K0
乱数 まろやか で検索するといいぞ。ポイントは正規分布
2019/07/20(土) 21:51:55.20ID:NKxgAyGK0
JavaScript でも作ってみたが、これも乱数が偏っている。
7, 1, 7, 7, 5, 4, 7, 4, 1

function get_random_int( ) {
return function( ) {
const min = 1
const max = 9
return Math.floor( Math.random( ) * ( max + 1 - min ) ) + min ;
};
}

const ary = [ ...Array( 25 ) ].map( get_random_int( ) )

console.log( ary );

出力
[ 2, 8, 6, 2, 5, 7, 8, 1, 4, 6, 7, 1, 7, 7, 5, 4, 7, 4, 1, 3, 4, 5, 6, 8, 6 ]
527デフォルトの名無しさん (ワッチョイ cf4e-NxfS)
垢版 |
2019/07/20(土) 22:07:15.82ID:/ET4uH9K0
>>526
赤黒が1/2の確率で出るルーレットがあります。
三回回したところすべて黒が出ました。
次に赤が出る確率は?
一般人「1/2」
バカ「こんなに黒が続いたんだからそろそろ赤が出ないとおかしい!偏っている!だから赤100%だ!!」
2019/07/20(土) 23:53:39.37ID:QHhW8HGw0
>>526
乱数にけちつける前に10面ダイス買ってきて、10000回振って出目をメモして偏りを確認してこい。
それが片寄ってると思うなら、別の店でダイス買い直して再試行しろ。
終わるまでスレに帰ってくるなよ。
529デフォルトの名無しさん (アウアウエー Sabf-CMz4)
垢版 |
2019/07/21(日) 01:29:14.20ID:7an9cjGSa
リアルのダイスは安物だと
1の目と6の目で掘り具合が適当で
重心がばらつくから良くない
1をでかく掘ってあって
ちゃんとバランスとってる香具師を買え
530デフォルトの名無しさん (ワッチョイ 7fd2-W26c)
垢版 |
2019/07/21(日) 05:50:29.99ID:8kiQELFp0
>>503
欲しいデータはこんなの?
2 5 6 9 7 3 1 4 8
8 4 6 2 5 7 1 3 9
2 1 9 8 5 7 4 6 3
2019/07/21(日) 06:37:51.08ID:OIgMVs9g0
>>528
10面ダイスなんて偏ってるに決まってるだろ何次元人だお前
20面ダイスの下1桁を記録させるのが正しい
2019/07/21(日) 14:26:31.51ID:rj1b8/he0
単純にサンプル数が少なすぎる
2500回ぐらい生成してから文句言え
2019/07/21(日) 15:02:07.14ID:NYTsshMI0
1から9まで出る乱数を9個抜き出したとき:

1から9までの数が1個ずつ含まれる確率
9!/9^9 = 0.09%

1から9までの数のうち4個ある数字が1つ、2個ある数字が2つ、1個ある数字が1つである確率
9(8C2)6(9C4)(5C2)(3C2)/2/9^9 = 0.7%

10倍ぐらい確率が違うんだよ
「君の言葉で言う偏る」のは確率で見てもむしろ当然

# 計算式が合ってるかは誰か検証して
2019/07/21(日) 15:05:40.77ID:NYTsshMI0
あ、>>526
分かるだろうけど
2019/07/21(日) 15:10:50.24ID:NYTsshMI0
もっと単純化して言ってしまえば、コインを2回投げたときに、表裏が1回ずつ出る確率と
表か裏かのどちらかしか出ない確率は同じだというのはすぐ分かると思う

それを「どちらかしか出ない場合があるのは偏ってる!」と言ってるようなもんだよ、これは
2019/07/21(日) 16:40:43.81ID:NYTsshMI0
こういうと、
「25回投げたときに、そのうち10回を取り出して8回以上表か裏が出てたら偏ってるじゃないか」
と言われそうなので、その確率も計算しておこう

面倒なのでPCでぶん回して計算すると、約49%だった。
つまり、25回投げたときに恣意的に10回を取り出して表か裏が8個以上あることなんて普通に
ありえることなんだよね
2019/07/21(日) 16:43:49.84ID:NYTsshMI0
ちなみに、8回以上を9回以上に置き換えても13%の確率があるので、特段珍しいことでもない

さらにちなみに、この計算はRubyを使って行いましたw
2019/07/28(日) 16:46:50.69ID:RyVu3FEFd
ActiveRecordの件数が多い時、メモリを大量に使った際に、その分のメモリが開放されないままになってるように見えるのですがこれは仕様ですか?

メモリ開放のやり方とか、そもそも件数が多すぎる場合はActiveRecord使わないほうが良いなどあったりするでしょうか…?
2019/07/28(日) 17:41:05.41ID:x88Eo97q0
ActiveRecordは知らんけど、RubyのGCがあんまり働かないのはオレも経験したことがある。
いっそ自動処理をあてにしないで、適当なタイミングで明示的にGC.start()したほうがいいと思う。

あるいは、ちゃんと設定のチューニングをするか。
めんどくさそうなうえに、ちゃんと動作すんのかは知らんけどな。
https://docs.ruby-lang.org/ja/latest/class/GC.html
540デフォルトの名無しさん (スッップ Sdaa-qbpu)
垢版 |
2019/07/31(水) 06:26:20.94ID:F/SyAmOad
>>270
Railsはチュートリアルとか本とかネットの情報も多いけどSinatraは情報が少な過ぎるよ
2019/07/31(水) 12:11:30.33ID:6BPSvdm10
たぶん、インデックスを使っていない、select だろう。
ランキングとか、レコードを総なめ・全件取得する、select だろう

DB の実行計画を見ると、わかる

DB設計は、DB資格の教科書とか、ミックの本などで勉強していないと難しい。
バグのほとんどは設計段階で生じるから、SE の給料が、プログラマーよりも高い!
2019/07/31(水) 12:17:18.62ID:JpBmxHct0
それだと設計ができない無能SEの給料は低くないといけない
2019/07/31(水) 12:20:45.88ID:zH1G6UoN0
>>542
何荒らしにマジレスしてんの
544デフォルトの名無しさん (アウウィフ FFcf-tP4r)
垢版 |
2019/07/31(水) 12:41:48.82ID:+MN2XkdtF
馬鹿には無理
2019/08/01(木) 05:31:11.68ID:n5HVCX7yd
同じリポジトリの同じソースからのデプロイで昨日は成功したのに今日は成功しないのは何でなんだぜ?
Heroku
2019/08/01(木) 05:46:22.10ID:D666GHsD0
韓国に楯突いたことでアメリカからも敵国認定されてブロックされてしまったのだろうな
米国に置いてあるデータ、アメリカ製サービスからは早急に引き上げたほうがいい

エンジニアの生命線が...。米国の貿易施策でGitHubの利用制限を受けるイランなどの国々 | ギズモード・ジャパン
https://www.gizmodo.jp/2019/07/github-trade-control-regulations.html

GitHub、米国の経済制裁対象国ユーザーによる非公開リポジトリ利用をブロック | 財経新聞
https://www.zaikei.co.jp/article/20190730/523662.html
2019/08/01(木) 12:25:16.08ID:czAE5CE00
>>546
イランから手を引けばいいだけでしょ(笑)
2019/08/01(木) 20:11:56.88ID:WaJjQk0q0
ruby はよくある printf の類が日英混合文でも大丈夫?
perl で 日英両対応 align.pl 書いたけど 日本語はprintfのフォームと
ずれてしまったのでコードがそれを避けた書きかたになってしまって
気がはれない
2019/08/01(木) 20:45:19.26ID:lSJbqNGy0
>>548
たぶん言語は関係ない。
文字コード、文字判定、フォント、コンソールなど、環境次第な要素が多すぎる。
2019/08/01(木) 21:12:29.42ID:MCSzD/uO0
Rubyとしては「STDOUTに流すだけで特に何もしてない」ような気がする
Cursesはなんかしてくれてるんだっけ?
2019/08/03(土) 00:58:45.19ID:uTJugp6Y0
逆にその日英混合文がダメな状況ってどういう状況だよ
2019/08/03(土) 10:30:15.37ID:sR/VT/6l0
いわゆる全角半角の文字幅やろ。
2019/08/03(土) 22:04:00.83ID:bbhz9sWw0
やった!!
俺の求めていたものだ
https://logmi.jp/tech/articles/321280
一見楽そうに見えて、余計に面倒なことになるwww
こんなんだったら、初めから型宣言したほうがマシだわな
型宣言の何が嫌なんだろ(謎
意地?
DRYに反してるっていうけど、何処が?

まぁでも求めていた展開だ
本人も作りたくないであろうこんなツールに多大な時間を割くことで
10年単位で他の言語に遅れることになるだろうな
大爆笑
2019/08/03(土) 23:28:43.68ID:sR/VT/6l0
>>553
> DRYに反してるっていうけど、何処が?
Type obj=new Type()
じゃないの?型を2回書いてるじゃん!という。

なお、C#がそうだったんだけど、遠からず改善される予定。
Type obj=new()
# 最初からそうしといてよー、と思わないでもないけど。w

型のDRYを避ける方法はあるんだよな。
しかし、Rubyはそこから目をそらして、DRYを言い訳にして、とにかくなにがなんでもオブジェクトの宣言を含めたくないんだろう。
555デフォルトの名無しさん (ワッチョイ 75e7-27IP)
垢版 |
2019/08/04(日) 03:31:45.57ID:KgSPSwNu0
>>553
>DRYに反してるっていうけど、何処が?

https://qiita.com/t2y/items/2a1310608da7b5c4860b
> def sum_and_stringify(nums: List[int]) -> str:
>   """Adds up the numbers in a list and returns the result as a string."""
> return str(sum(nums))
じゃないの?
型を2回書いてるじゃん!という。

なお本件、改善される計画はなく、いつまで待っても放置される予定。
# ML や Haskell なら最初から型アノーテーションなんて不要だからDRYだけど、
# その方向性を最初から放棄してどうすんのよー、と思わないでもないけど。w

型のDRYを避ける方法はあるんだよな。
しかし、そこから目をそらして、global だの nonlocal だのスコープ問題の泥縄的解決である
変数宣言を言い訳にして、とにかくなにがなんでも型宣言を含めさせたいんだろう。
2019/08/04(日) 12:53:29.81ID:uuq2lSJI0
あと
別ファイルに型定義書くのって立派なDRYじゃねーの?
だって、クラス名やメソッド名変更するとき
両方書き直さなきゃならないじゃねーか
これはDRY以外の何なんだ?
ほんと、ペテン師はいつも自分に都合のいい事だけ言うよな
分かっててすっとぼけるんだわ
信者には悪いが、マジで毎回そう
2019/08/04(日) 13:05:34.87ID:uuq2lSJI0
つまり、
普通に素直に型宣言するより
別ファイルに型定義書く方が
よりDRYだし面倒だし
この掛け違えたボタンで首が絞まる感じ何なん
もう普通に型書いたら?
アホらしすぎ
2019/08/04(日) 13:18:44.89ID:uuq2lSJI0
型定義を別ファイルの書くのって
丁度C言語が.hと.cに分かれてるのと同じ感じだよね
で、関数名変えるとき.hと.cの両方書き換えるっていうね
今更C言語に先祖返りってどうよ
あれDRYって何だっけ
2019/08/04(日) 13:39:41.20ID:uuq2lSJI0
あるクラスの名前を変更する
型定義ファイルに書いてあるクラス名を変更し忘れる
そのクラスの型定義が無くなり型チェックが効かなくなる
プログラマは型チェックが効いてると思い込みテストをサボる
バグを組み込んでしまう
あり得るシナリオだし、こういうのをDRYと言うのではww

同じような感じでヘッダと実装に分かれてるC/C++の場合は
これは間違ってるとコンパイルエラーになるから良いけど
Rubyの場合は修正し忘れてて型定義が見つからない状態になってても
それはそれとして、どうせ無テストになるだけでスルーでしょ
(他に型定義の無いクラスはいっぱいあるわけで型定義が無いだけでエラーには出来ない)

さあ型定義ファイルにあるクラス名とメソッド名が
間違っていないか確かめるテストを書かなきゃねwww
(単純にtypoしてるかもしれないわけで)

で、誰得なんこれ
2019/08/04(日) 15:37:02.28ID:M00OQnGm0
まつもとが型のメリットを理解してないからどうしようもない
561デフォルトの名無しさん (ワッチョイ 232c-n0r7)
垢版 |
2019/08/04(日) 20:45:52.66ID:zjBZp1dd0
WEB+DB vol.111

詳解 Rails 6

コミッターが解説する、26ページ分の特集!
562デフォルトの名無しさん (ワッチョイ 75e7-27IP)
垢版 |
2019/08/05(月) 01:20:57.58ID:xLJRGiJi0
>>556-559
>別ファイルに型定義書くのって立派なDRYじゃねーの?

まず、この文章は「DRY違反じゃねーの」の間違いだろう
これだけでもアンチRubyがDRYという言葉の意味を理解せずに
トンチンカンな批判を繰り返している実証になる

次に上記の文章を:
>>別ファイルに型定義書くのって立派なDRY違反じゃねーの?
と訂正したとしても、答えは NO だ
確かに型推定を最初から放棄してユーザに型アノーテーション記述を
強制する言語(>>555)であれば、その型アノーテーション記述がソースファイルと
同一ファイルであっても別ファイルであってもDRY原則に反している、と言える

しかしRuby3.0で計画されている型プロファイルは、型宣言記述が無い
素のRubyソースコードから型定義ファイル rbi を自動生成できる
また、ソースコードと同一ファイルにアノーテーション(注釈、いわゆるコメント)として
型定義を記述することもできる(ただし、この場合は自動生成されず手書きとなる)
2019/08/05(月) 01:57:11.36ID:kCWOwKEP0
>>562

> トンチンカンな批判を繰り返している実証になる

揚げ足をとれたからって、そんなに必死にならなくても。w
DRYDRYとうるさいのは信者くらいで、ふつうは実はそんなに気にしてないからな。しゃあない。

> 素のRubyソースコードから型定義ファイル rbi を自動生成できる

スケルトンみたいなこと?
その手のやりかたってヤバい原因になりがちだと思うんだけど、だいじょうぶなの?たいがい元ソースコードの変更に追い付けなくなって、うやむやになるよねえ?

> 型定義を記述することもできる(ただし、この場合は自動生成されず手書きとなる)

つまり、ソースを変更したら、あわせてアノテも変更しないといけないのか?
結局はDRY違反なの?

ホントにそんなだったら、どうせ誰も使わない気がするなあ。。。
564デフォルトの名無しさん (ワッチョイ 75e7-27IP)
垢版 |
2019/08/05(月) 02:20:06.63ID:xLJRGiJi0
>>563
>揚げ足をとれたからって、そんなに必死にならなくても。w

揚げ足ってのは、DRYを逆の意味に理解していた(>>556)事実を、
あっさり >>557 の冒頭で指摘されちゃったこと?
まぁしゃあないわな、「揚げ足」を隠そうと必死になるのも www
565564 (ワッチョイ 75e7-27IP)
垢版 |
2019/08/05(月) 02:21:24.98ID:xLJRGiJi0
訂正
X:>>557
O:>>562
2019/08/05(月) 07:34:24.32ID:nl2V9bb60
https://img.logmi.jp/article_images/D2VbGeV4PWY5uay2tHho6g.jpg
こんなんを別ファイルに記述するはめになるんだ
クラス定義に似てるね
重複して同じようなことを二回書かなきゃならないって事
DRYの原則に反してるから型宣言を書きたくないって話だったのに
より一層DRYの原則に反してるね
C++のヘッダにそっくり

あと今更するなら最初からしておけば何かとよかったのにね
夏休みの宿題を最後にためておく人だったのかな

一方静的型言語にも型推論とか取り入れられてるけど
こっちは文法的にも文化的にも何の障壁もなく導入されてるのが笑える
なにこの差
さらにはヌル安全とかまでやろうとしてる
逆にこっちのやってるのはいまだにネイティブスレッドww
何周遅れよこれ

そんでいつも後出しジャンケンで負ける
動的型もそう
後出しジャンケンして負けた
後出しジャンケンでも勝てばいいんだが負けたら意味ないね
Rubyサイコー
2019/08/05(月) 07:39:15.45ID:nl2V9bb60
>また、ソースコードと同一ファイルにアノーテーション(注釈、いわゆるコメント)として

この方式はmatzが滅茶苦茶に嫌ってるから採用される事はないね
あの人わけわからないぐらいこのことに固執してるからね

また何も知らないか、知ってても嘘をつく
いつものパターンね
2019/08/05(月) 13:40:37.89ID:nl2V9bb60
ちなみにmatzがソースコードに型を書きたくない理由だが
色々言ってるが、彼は詐欺師だから、本音ではないし、嘘も含まれる

まず
https://logmi.jp/tech/articles/321280
にも書いてあるし、たびたび登場するDRYに反するというやつ
言うまでもないが別ファイルに書く方がDRYに反するし
これは多分、彼の本音ではないし、煙に巻くための適当な言い訳

つぎに、静的型と動的型は振り子のようにトレンドが移り変わり
今後また動的型言語の時代が来るから、というもの
いやいやこれから先、動的型の時代など来ないだろうし、そもそもの前提がおかしい
C言語以降はずっと静的型の天下であり、動的型が勝ってた時代などなかった
振り子のようにというのがそもそも嘘偽り誇大表現、こうやって騙してくる
C/C++、Java、C#といった超メジャー言語にRubyが勝っていた時代など一度もなかっただろ、詐欺師め
2019/08/05(月) 13:43:49.85ID:nl2V9bb60
もう一つ
ここに書いてあることが実は本音(らしい)
https://jp.quora.com/TypeScript%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%9E%8B%E4%BB%98%E3%81%91%E3%82%92Ruby%E3%81%AB%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%9F%E3%82%89%E6%9C%80%E9%AB%98%E3%81%AE%E8%A8%80%E8%AA%9E%E3%81%AB%E3%81%AA%E3%82%8B
要約すると、Rubyに型アノテーションが導入されたら
型を書いた方が行儀が良いという風潮が蔓延するだろうが、自分は型を書きたくないので
そのために型をかけないようにしておく、というもの

良いことが出来ると、良いことをする風潮になるだろうが
自分は悪いことがしたいから、良いことが出来ると困る
と言っているわけで、マジキチなのがお分かりいただけるだろうか

法律があると法律を守らなければならないから嫌
信号があると信号無視が出来ないから嫌
と言ってるようなもので、まさに悪人の考え
型は書いた方が良い、とうことはしっかり分かってる上で
嫌だから出来ないようにしておく、と言ってるわけで、悪人独特の自己矛盾

しかし普段自分の都合のいいように嘘しか言わない彼が、本音を語っている点は評価できる
2019/08/05(月) 13:47:09.02ID:3mqInMrR0
そろそろこっちでやれ
アンチということではなく本スレの代わりとして
Rubyについて(アンチ専用) Part005
https://mevius.5ch.net/test/read.cgi/tech/1555162340/
2019/08/05(月) 13:52:01.39ID:nl2V9bb60
しかし>>569に書いたようなことを公式で言うとマジキチだから
静的型を導入しない理由を聞かれると、いつも適当なことを言って言葉を濁しているわけ
これでRuby3.0で導入されるといわれる型チェックが
どうしてああいう感じになってるか良くわかるでしょ
2019/08/05(月) 13:52:35.64ID:MNXFY7cg0
型を書きたくないんじゃなくて、Rubyの設計上、型を書こうとすると
設計レベルで作り直さなきゃいけなくなるから面倒くさいだけだよ。
573デフォルトの名無しさん (ワッチョイ ad7c-ONUK)
垢版 |
2019/08/05(月) 14:07:53.55ID:NOA3rn3w0
Perlも6で詰んだしな
*byも脱皮失敗で死亡
pythonは2->3でヨタヨタだがうまく離陸してくれ
2019/08/05(月) 14:08:47.58ID:kz1352lP0
単純に全体の完成度がバージョン0.8くらいに戻るよね
そこまでして「わざわざRubyに」導入するべきものでもないということではあろう
昔ならともかく今は他の言語もあるのだから
これ言うと揉めるけどな
2019/08/05(月) 14:14:45.71ID:MNXFY7cg0
1. 型を導入すると良いものになる。
2. だけど全体を再設計しなければならない。(面倒くさい)
3. その上、使いやすくすると、言語がガラリと変わる
4. ユーザーもその「使いやすい言語」に乗り換えるのが面倒くさい
5. 結果使われなくなるのがわかっている。
6. Ruby離れを防ぎつつ、型を導入するには、コレしかなかった
576デフォルトの名無しさん (ワッチョイ ad7c-TyxI)
垢版 |
2019/08/05(月) 14:23:24.52ID:NOA3rn3w0
型無し*byに不満な人はElixirやればいい
2019/08/05(月) 14:27:47.88ID:bU1KwNWi0
LISP や Smalltalk が好きな人にとって使いやすい Perl の代替となるスクリプト言語なんだから、型欲しい人は他の言語使えば? と言うだけの話。
型を導入すると対話環境での使い勝手が悪くなり、書き捨てのプログラムを書く際の手間が増える。それは楽しくない。

型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。
妥協できるラインが、今の、書きたいやつは書けば良いんじゃない?でも、文法を拡張して既存コードとの非互換生むような修整は受け入れられない。
と言う話でしょ。
2019/08/05(月) 14:32:38.11ID:bU1KwNWi0
>>576
そう。 Elixir なり Crystal なりを使えばいいだけの話。
なんでRubyに型を導入することにこだわるんだろう。
2019/08/05(月) 15:48:35.23ID:Umi2Ipdj0
ドキュメントに型を書くことになるんだから、そこの仕様をしっかり決めるべきだった
2019/08/05(月) 16:30:50.53ID:MNXFY7cg0
>>577
> 型を導入すると対話環境での使い勝手が悪くなり、書き捨てのプログラムを書く際の手間が増える。それは楽しくない。

それはstrictモードを作ればいいだけなんよ
2019/08/05(月) 16:33:24.89ID:MNXFY7cg0
>>577
> 型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。
> 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。

その二つ、論点のすり替えだよね?

型を使うと速くなる? → それは事実 → だから人間の問題にすり替える。
型を使うとバグが減る? → それは事実 → だから人間の問題にすり替える。

事実ならまず「それは事実だね」って言ってみようか?
事実に対して反論するかと思いきや、反論しないんだもの(笑)
2019/08/05(月) 16:34:57.91ID:MNXFY7cg0
> でも、文法を拡張して既存コードとの非互換生むような修整は受け入れられない。

結局本音はそこ。

速くなるとかバグが減るという "事実" は存在するが、
既存コードの非互換性をうむから、改善できない。
2019/08/05(月) 17:42:09.05ID:bU1KwNWi0
>>581
型を入れてもオープンクラスな言語では大して速度は上がらない。精々一部のループの速度が上がるだけ。それは事実。java みたいに final や primitive 型入れれば効果は相当あると思うけど、それは Ruby を否定することになる。
型を入れると未熟なプログラマでもコンパイル時に分かる程度のバグなら発見できることはある。それは事実。でも実行時例外の回避は出来ないし、オープンクラスを使ったダックタイピングという Ruby の言語デザイン自体を否定することになる。

> 事実に対して反論するかと思いきや、反論しないんだもの(笑)

反論もなにも、自分はこのスレッドで >>344 >>577 >>578 しか書いてないよ。
だから、なんらかの反論を待ってるならその相手は自分ではない。

自分は Ruby に非互換を生む型の導入を期待するくらいなら、型有りの別の言語で書けばいいじゃんという立場。

>>580
この場合の strict モードって何を指してるの?
RPython 的に SRuby 作って型使いたい人は SRuby 使えってこと?同一バイナリにしてモード切り替えするとしたら、パーサも VM もほぼ別物レベルになると思うけど。
共有できるとしたら、pure ruby で書かれたごく一部のライブラリ程度じゃない?
2019/08/05(月) 17:55:40.47ID:MNXFY7cg0
型を入れてもオープンクラスな言語では大して速度は上がらない
→オープンでない言語なら速度は上がる
→速度を上げるためにはオープンでなくすれば良い
→そのような改善方法は存在するが、非互換性をうむから、取り入れられない。
→まつもと「Rubyでは改善はなんです。諦めてください」
2019/08/05(月) 17:55:56.86ID:MNXFY7cg0
→まつもと「Rubyでは改善は無理なんです。諦めてください」
2019/08/05(月) 17:58:22.53ID:MNXFY7cg0
>この場合の strict モードって何を指してるの?

適切な型を書いたものがstrictモード

だがどのオブジェクト指向でも、基底クラスのobject型として扱うことはできる。
暗黙的にobject型の変数を使ってるとみなしているのが今のRuby。

変数の型をobject型と書く(もしくは省略)か、適切な型を書くかの違い。
2019/08/05(月) 18:29:24.24ID:WUbT37Lx0
> 実行時例外の回避は出来ないし

は?
2019/08/05(月) 18:55:01.90ID:kCWOwKEP0
Rubyの癌は、型を指定できないことよりも、宣言ができないこと。
型を指定できないのは、宣言ができないことによる副産物。

宣言は、ここからこのオブジェクトを使うで、ということを明確にできてわかりやすいのに、何で嫌がってんだか。
2019/08/05(月) 19:04:12.59ID:bU1KwNWi0
>>586
strict モードにしたら
Class が凍結されるの?
途中でモードを切り替えられるの?
そのスコープは?
マルチスレッド時の挙動は?
Object クラス(Kernelも?)への継承関係がなくなるの?
データは VALUE 型じゃなくなるの?
オブジェクトのデータ構造は自分で C で定義するの?
既存CAPIとの整合はどう取るの?
そのコードを古いインタプリタに食わせたらどうなるの?
また分断するの?(想像するに1.4->1.6 や 1.8->1.9 より大きそうだけど)
strict にしたら何がどう変わるのかわからん。
過去に例示してあるのなら参照求む。

>>585
そう。 大抵の要望は Crystal で解決されてると思う。
速度欲しいなら Elixir 。もしくは C で FFI。
2019/08/05(月) 19:13:25.94ID:MNXFY7cg0
>>589
うん?だからそういう問題が発生するから、
Rubyでは型という素晴らしい道具を導入することが
設計上不可能って話をしてるんだが?
2019/08/05(月) 19:28:52.54ID:bU1KwNWi0
>>590
そのかわり型ということを考えなくても計算機と対話することができる日常用途に便利な言語になったわけだ。
2019/08/05(月) 19:32:29.27ID:MNXFY7cg0
Rubyにも型があるんだから、型考えてるでしょw
それともどんな型を入れても、エラーにならずに動くコードかいてんのか?
2019/08/05(月) 21:15:23.92ID:nl2V9bb60
型チェックが欲しい人は他の言語使えって言ってるけど
Ruby3.0で型チェックが導入されるんだからそこは前向きに検討しようよwww

matzが言うようにRubyに型が指定できるようになったら、指定すべきという勢力も
出てくるだろうし、一方でわざと型を書くのが億劫になる仕様にしてあるし
どちらの勢力が勝つか未知数というか
平行線が続いて空中分解してクラッシュするかもしれないし
ここでも今そういう意見があるように、今までは型チェックが欲しい人は他の言語使え
だったわけだけど、Ruby3.0からはそうじゃなくなるから更にカオスになるだろう
今までは型を書くべきかどうかはRuby 対 他の言語って感じだったけど
これからはRubyの中でそれが起こる
楽しみだね
このへん、言語仕様で初めからどちらかに決まっていた方がスッキリしていたかもしれないね
2019/08/05(月) 21:19:04.07ID:nl2V9bb60
それに加えて型定義ファイルの自動生成の話もあるが
まぁ最初は使い物にならないだろうからそれも含めてカオスになる
それがRuby3.0

静的型言語も動的型言語を取り入れてるっていうけど
こっちは何の問題もなく行われてて全くの静寂なのが笑える
まぁ型推論はコンパイラが型を推論してくれるというだけで
型は静的に決定されているわけだから当たり前なんだけど
2019/08/05(月) 21:29:41.54ID:nl2V9bb60
型は書いたほうが良いが今更自然な形での導入は難しい
しかし3.0で書きにくいけど書けるようになる
書けるようになるなら書いたほうが良い
でも書きにくい
でも書かなきゃ
でも書きにくい
書きたくない
でも書かなきゃ
でも書きにくい

これがRuby3.0
2019/08/05(月) 21:34:38.65ID:ubcyIKEPM
型注釈、PythonとRuby両方でやってみたけど
Pythonの方が全然完成度高い
試験的な実装とはいえRubyの方は複雑になるとチェック通せなくなる
597デフォルトの名無しさん (ワッチョイ ad7c-ONUK)
垢版 |
2019/08/06(火) 15:11:10.96ID:SvihPrAV0
実行時まで型が決まらない

ひとことで言え
2019/08/06(火) 17:04:56.96ID:9obbnMlM0
実行時まで型が決まらないと言うが、
コードは特定の型もしくは特定のインターフェースを備えた
型であるという前提になってるんだよなw
2019/08/06(火) 18:28:14.04ID:8UHtiNBK0
perl5の末期に登場したのがuse strictとuse warningだよ
それを順当に真似てるだけだ
他意は無い
2019/08/06(火) 20:21:21.15ID:vJC9K0rF0
前々からの、掛け違えたボタンの、いよいよ一番上を閉めようとしている段階なのだよ
そんなことは出来ないか、不格好か、首が絞まるか
何にせよ、こういう仇花的なことをしなければならない状況に追い込めたのは
日々のみんなの空気づくりのおかげであって、いわば人類側の勝利だよ
おめでとう
2019/08/06(火) 20:25:09.69ID:4qDHXZiE0
まずはモンキーパッチを抑制するオプションを追加して
静的に解析できるようにするのが先でしょ
2019/08/06(火) 20:27:16.73ID:SN9O18fE0
>>599
Perl5に「末期」なんかないぞ。
まだまだ現役だからな。w
2019/08/06(火) 20:34:15.67ID:9obbnMlM0
モンキーパッチ(オープンクラス)ができるのはメリットではあるが、
通常はそんなことしないので、小さなメリットのために
大きなデメリットが発生してるんだよな。
最終手段を取るしか無いところだけ、unsafeとかマークを付けて対応すればよかった。
604デフォルトの名無しさん (ワッチョイ 75e7-27IP)
垢版 |
2019/08/07(水) 18:14:09.58ID:K4IThe5f0
>>596
>Pythonの方が全然完成度高い

当然の感想だよ
そもそも静的型付けは大きく以下の2つに分類される
・明示的(explicit)な型付け
・暗黙的(implicit)な型付け

前者の明示的型付けはプログラマが型定義を手書きすることを前提としており、
Fortran/Cobolといった1950年代の太古の時代から培われてきた「枯れた技術」である
Python の型アノーテーションも明示的型付けに分類される
従って、完成度が高いのも当然、できて当たり前と言える

後者の暗黙的型付けは堅牢な型システムを前提とし、処理系が「型推論」と呼ばれる技術により
コードから型定義を自動的に決定するものであり、1980年代にMLで開発され、近年、明示的型付けを
主としながら部分的に暗黙性を取り込む次世代言語が次々に登場するなど、急速に普及が進みつつある

MatzがRubyKaigi 2019で語った:
https://logmi.jp/tech/articles/321280
「最近は静的型がすごくホットで、2010年代のプログラミング言語はみんな静的型言語で、…」
というホットな静的型言語も、後者の暗黙的型付けを指す
同時にMatzが語った:
「もう、われわれもやろうか。PHPもPythonもやってるし」って言うんだけど、正直やりたくない……。」
の「やりたくない」のは前者の(プログラマが型定義を手書きしなければ型検査が働かない)明示的型付けを指す
つまり意訳すると:
 Rubyでも明示的型付けをやろうと思えばいつでもできるけど、今さら時代に逆行したできて当たり前の事を
 やるなんてつまんない、それより今まで誰もやったこともない血が湧き立つような挑戦をしてみたい、
 それがRubyらしさだよ
そして、この後、「動的型付け言語であるRubyにおける暗黙的な静的型付けの導入方針」として、
(型推論の代用である)「型プロファイラ」と呼ぶ新技術の紹介が続くわけだ
2019/08/07(水) 18:42:31.98ID:WK8NJ3/V0
>>604
なにかごちゃごちゃ語ってるけど、

マッツが言った「やりたくない」は
面倒くさいって意味だよ。

血が湧き立つような挑戦なんてものを思いついていたら
それを理由にするだろ。そんなもんないからさw
2019/08/07(水) 19:39:46.36ID:Bpu04+pE0
そら掛け違えたボタンの一番上を締めるのは
血が逆流するほど苦しくて沸き立つだろうな
こんなもんは北朝鮮とか共産党とかの言ってる理想みたいなもので
最初に掛け違えてるからそういう夢を見なきゃいけない羽目になってるだけで
大人になったらさらっと流さなきゃね
2019/08/07(水) 19:40:25.87ID:Bpu04+pE0
マルクスとかに感化されて
血が沸き立つような挑戦
って言ってるようなものなんよ
2019/08/07(水) 20:15:49.09ID:Bpu04+pE0
他は学生運動とかかな>血が湧き立つような
俺は世代じゃないからよく知らんけど、映像見る限り、かなり湧き立ってるな

後単に、「血が湧き立つようなっ」て表現面白い(こわッ

まぁそういうのはあるよ
最初を掛け違えたため人生台無しになるっていう
大概の人はどこかで気づいて掛け直すから大事には至らないけど
物事を考える最初の起点が一つズレて、以降思考が全部ズレる
ゴールにたどり着けないもんだから、ゴールのさらに先へ行こうと夢見る
そうやってたぶらかす
共産党みたいな輩

根本の問題だからなぁ
悪人は悪人にしかなれないってわけじゃないけど
気づけなきゃ悪人のまま終わるよね
2019/08/08(木) 10:01:50.60ID:Q6oNbeovr
すげえ馬鹿な質問するけど
x = [nil, "hoge", 42, 3.14].sample
みたいなのがあった時って型推論ってどうなるの?
2019/08/08(木) 10:56:04.30ID:llWdm4EH0
rubyに限らずスクリプト系はlispが基準だろ
だからリストにはなんでも入れれる
2019/08/08(木) 12:56:56.32ID:ZETliJY00
>>609
理想としてはArray<nil|String|Integer|Float>みたいな感じかね
2019/08/08(木) 15:33:58.94ID:foei6BswM
C#的にはエラー(推論不可)だな。
それでいいと思う。
2019/08/08(木) 21:48:40.95ID:AsNa+aKpa
TypeScriptは型システムの表現が凄すぎて
大抵の言語に型付けできそう
パクればRubyにも型付けできるんじゃね
614デフォルトの名無しさん (ワッチョイ da2c-8lAC)
垢版 |
2019/08/08(木) 22:17:23.13ID:/tBUMiMq0
Haxe では、Array<Dynamic> で、何の型でも入る、配列を定義できる

これは型推論しないから、できる限り避けるべき!
これは、設計ミスかも知れない
615デフォルトの名無しさん (ワッチョイ 2ecb-l5Zy)
垢版 |
2019/08/11(日) 09:42:24.48ID:w8BJYpRO0
typescript なら [ null, string, number, ‘foo’ | ‘bar’, 1 | 2 ]
のように定義できるしね
2019/08/12(月) 10:28:41.63ID:q+3SbcDd0
そうやって夢を見ておけばいい
その方が落胆が大きくなるだろうから
2019/08/12(月) 21:41:57.67ID:gUUEF29U0
とにかくTSからパクれるものは全部パクった方がいいと思うんだが
JSに無理やり型付けするために生み出されたキメラなのだから
参考になる部分だらけなはず
2019/08/12(月) 22:34:28.71ID:q+3SbcDd0
全然違う方向へ向かってるから無理
619デフォルトの名無しさん (アウウィフ FF39-FHwm)
垢版 |
2019/08/13(火) 09:14:00.33ID:oXPAD0KHF
TSで書いてRuby吐くコンパイラω
2019/08/17(土) 14:16:33.22ID:bpQgx2FJM
>>617
JavaScriptはそもそも静的型付け言語であるCやJavaの構文を参考にして設計された言語だ
医学部卒のプロ棋士が引退して医師に転向することは容易だが、中卒には不可能である
2019/08/17(土) 16:35:39.55ID:zExljCul0
>>620
> JavaScriptはそもそも静的型付け言語であるCやJavaの構文を参考にして設計された言語だ
大嘘つくなよ
似てるのは中括弧を使ったブロックとかの見た目だけじゃん
2019/08/17(土) 16:44:03.64ID:bpQgx2FJM
>>621
だから構文の話をしてるんだろ
623デフォルトの名無しさん (ワッチョイ 7be9-SXVW)
垢版 |
2019/08/17(土) 16:58:40.60ID:iudotV170
jsは構文でもJavaと似ても似つかないぞ
2019/08/17(土) 17:04:14.21ID:bpQgx2FJM
惜しい
jsですら似ても似つかないなら、Rubyだったらどうなのか考えてみよう
基準はあくまでRubyであることを忘れないようにしましょう
625デフォルトの名無しさん (ワッチョイ 7be9-SXVW)
垢版 |
2019/08/17(土) 17:16:36.20ID:iudotV170
話を逸らすのはチョン國人の手口
2019/08/17(土) 19:31:09.99ID:zExljCul0
>>622
中括弧使ってセミコロン使えば静的型付けになるのかよw
的外れもいいとこ
2019/08/17(土) 19:37:00.00ID:r+LO0zEM0
>>625
死ねよネトウヨ
お前もチョンがどうのとか言って話そらしてんじゃん
2019/08/17(土) 21:08:03.39ID:8EnS7QZU0
>>624
JavaScriptに比べたら、Rubyのほうがまだ似てるんだよなあ。w

JavaScriptのクラス定義を見たことがあるか?プロトタイプベースなので、ほかではなかなか見られないぞ。
2019/08/17(土) 22:01:43.78ID:g4f/iCif0
JavaScriptのクラス定義は、C++やJavaにそっくり

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Classes

class Rectangle {
 constructor(height, width) {
  this.height = height;
  this.width = width;
 }

 // ゲッター
 get area() {
  return this.calcArea();
 }

 // メソッド
 calcArea() {
  return this.height * this.width;
 }
}

const square = new Rectangle(10, 10);

console.log(square.area); // 100
2019/08/17(土) 22:03:16.05ID:g4f/iCif0
プライベートフィールドはちょっと変わってる。

class Rectangle {
 #height = 0;
 #width;
 static #depth = 1;

 constructor(height, width) {
  this.#height = height;
  this.#width = width;
 }

 volume(){
  return this.#height * this.#width * Rectangle.#depth;
 }
}
2019/08/17(土) 22:03:58.27ID:g4f/iCif0
JavaScriptの継承もC++やJavaとそっくり

class Dog extends Animal {
 constructor(name) {
  super(name); // 親クラスのコンストラクタを呼び出し、name パラメータを渡す
 }

 speak() {
  console.log(`${this.name} barks.`);
 }
}
632デフォルトの名無しさん (ワッチョイ 132c-BF++)
垢版 |
2019/08/17(土) 23:51:47.98ID:fYRni8gj0
Node.js は、Ruby のコピー。
npm, yarn も、Bundler のコピー

CakePHP は、Rails のコピー
2019/08/18(日) 00:59:22.65ID:KK6bG3/n0
> Node.js は、Ruby のコピー。
間違い。Node.jsは言語ではなく実行環境(≒ライブラリを提供してる)

Rubyという言語をコピーするわけないじゃないですか(笑)

ツールやフレームワークに価値はあって、そっちはコピーしたとしても
Rubyという言語にコピーする価値はないですからねw
2019/08/18(日) 01:51:43.24ID:DCFRUhnv0
>>629
つい最近そうできるようになっただけやけどな。w
2019/08/18(日) 01:59:35.72ID:KK6bG3/n0
>>634
つい最近 = 4年も前

それを今知ったんかい?w
2019/08/18(日) 03:22:24.68ID:1l6Jlwy20
元から似せて作ってないって話でしょ
2019/08/18(日) 08:06:58.21ID:26pp6bRY0
Node.js は、Ruby 実装系のコピーだろ。
npm, yarn も、Bundler そっくり!

npm, yarn のlockfile とか、Bundler のlockfileと同じ

Ruby, Node.js も、サーバー側プログラミング
2019/08/18(日) 08:22:32.26ID:KK6bG3/n0
> Node.js は、Ruby 実装系のコピーだろ。

全く違う。似てるところが一つもないと言っていいレベル
つーか、Rubyにぱくれるところなんてなにもない
2019/08/18(日) 09:44:57.54ID:vcjALM940
ちょっとこの信者なんとかしてくれない?
スキルセットがRubyしか無いから、何が何でもRubyのコピーだと言い張ってて鬱陶しいんだけど。
640デフォルトの名無しさん (ワッチョイ 7a2c-3Uq+)
垢版 |
2019/08/22(木) 23:17:51.79ID:bojKrn/j0
WEB+DB vol.111 は、Ruby on Rails 6, Julia 特集だけど、
Python から、Julia へ流れそう

Julia は、do 〜 end が使えて、Ruby風に改良されてる!
Jupyter Notebook(JN)でも使える

Windows で、RubyをJNで使っている人は、日本語でバグらないの?
irb では、バグるけど

RubyをVSCode で使っているけど、JNでも日本語でバグらないかどうか、知りたい
2019/08/23(金) 01:33:05.16ID:ypvGItf/0
ocraやgolangのgo buildみたいにRubyスクリプトとその要求ファイルを
単一の実行ファイルに固める仕掛けのLinux/FreeBSD向けってありませんか?
利用側でのセットアップを簡単にするために探しています
2019/08/23(金) 02:21:20.94ID:FLxS3jQ80
Bundler は?

Node.js のnpm, yarn と同様の、パッケージマネージャー
2019/08/23(金) 07:21:08.15ID:wNECBEc60
Bundler というより、gem だね
gem を作れば1ファイルにできる
644デフォルトの名無しさん (ワッチョイ 1597-oRVe)
垢版 |
2019/08/25(日) 21:34:28.24ID:qjFyDFHg0
>>640
JuliaとPythonじゃ目指してる方向が違うから、PythonがまるまるJuliaに移行するということはないよ。
numpyでゴリゴリ計算してるようなものはJuliaに移行するだろうけど、
Cなどで書かれた外部ライブラリを呼び出しまくっているようなものが移行するとは思えない。
2019/08/25(日) 22:57:02.68ID:EoRiUKjV0
結局、Perl5はシステム、RubyはWebバックエンド、Pythonは機械学習と、確立した用途で落ち着いてしまいそうだよなあ。
2019/08/25(日) 23:37:44.87ID:5Gyozg9W0
Rubyは良く出来た言語だが、困るのはバイナリ処理したいとき
バイナリを扱うことはできるらしいが、かなり面倒そうで結局やらない
rubyにCのインタプリタを内蔵してはどうなのだろう
AIなど一挙に使える範囲が広がる
647デフォルトの名無しさん (ワッチョイ 0e93-zLXz)
垢版 |
2019/08/26(月) 00:06:00.18ID:VlVyQYXI0
もうCでよくない?
2019/08/26(月) 00:08:19.86ID:1cV4t1GF0
でもたいていのところではrubの方がでいいわけですし
2019/08/26(月) 03:42:42.45ID:6n+O+75B0
>>646
バイナリ処理は、目的とやりようによっては、C/C++よりもPerl5/Rubyのほうが簡単なんだが。
pack/unpackが意外と使いやすいからな。
2019/08/26(月) 03:47:15.63ID:rnlkvQrj0
バイナリはバイナリのまま処理すればいいと思うんだが、
なんでいちいちpack/unpackなんかするんだ?
2019/08/26(月) 10:06:15.99ID:rKfqBH6Q0
perlからの流れであり深い意味は無い
それが好ましいと言う奴だけがrubyを使ってる
だから宗教だ

「わたくしはそれを気にいっている」宗教ではコレ以外の理由は必要無い
2019/08/26(月) 13:12:19.64ID:WoXCTlJRM
>>650
スクリプト言語は原則として、メモリに直接アクセスするようにはできていない。

念のために言っておくと、C/C++のキャストと比較しているのならそもそも大間違い。
また、あれはあれで問題だらけ。
2019/08/26(月) 13:36:12.79ID:bJVhcqWX0
例えば?
2019/08/26(月) 13:43:52.88ID:NWn2YSWg0
バイナリのまま処理すればっていってるだけで
メモリに直接アクセスしろなんて言ってないんだが
655デフォルトの名無しさん (ワッチョイ a67c-9WLl)
垢版 |
2019/08/26(月) 14:43:00.63ID:T0vtMl8v0
>rubyにCのインタプリタ

ffiとかwin32apiとかじゃだめなんか
2019/08/26(月) 17:33:50.52ID:dXTw2J2/0
>>655
win32apiはちょっとできることが違うように思います
ffiというのは知らなかったので調べてみます

RubyGemパッケージrest-client、バックドアを含むバージョンが立て続けに公開される
https://security.srad.jp/story/19/08/25/0620202/
不正に公開されたのはバージョン1.6.10/1.6.11/1.6.12/1.6.13の4バージョン
1.6.13は1,061回ダウンロードされていたそうだ
2019/08/26(月) 19:08:01.58ID:2cRTpeOk0
質問です。
配列64個分packしたいんですけど、どうすればpackできますか?
よろしくお願いしますm(_ _)m
a=[0]*64
a.pack("i*")
2019/08/26(月) 19:29:23.21ID:2cRTpeOk0
a[5]=800
のようにデータを入れてから送りたいです
2019/08/26(月) 19:39:44.11ID:2cRTpeOk0
出来ました。
失礼しました
2019/08/26(月) 20:06:48.18ID:6n+O+75B0
>>653,654
聞かなきゃわからんヤツ、自分が何を言ってるかわからんヤツは、「バイナリ」に手を出さんほうがええで。
どうせ自分の面倒を見られへんやろからな。
2019/08/26(月) 20:18:12.71ID:j2nyzmJv0
>>660
あぁ、えとなぁ、お前、Javaはバイナリを直接扱えるが
メモリに直接アクセスってお前は何を言いたいのか
ちゃんと言えるか?って聞いてんだよ。
2019/08/26(月) 20:46:55.19ID:bJVhcqWX0
いいぞ
もっとやれ
2019/08/27(火) 01:27:52.33ID:shMgsf0q0
これほど自信満々なところを見ると俺らが知ってるバイナリと
>>660の頭の中のバイナリは違うものなんやろな
2019/08/27(火) 07:36:50.86ID:N9jETkI/0
bit演算を使えば一度に計算できることを
ループと何重にもネストしたif文でやってる
プログラムを何度も見たことがある
665デフォルトの名無しさん (スップ Sd73-s5ZA)
垢版 |
2019/08/30(金) 02:31:29.55ID:mLs+0kBOd
RubyはPythonにはもちろんだけどPHPにも喰われ出してるね
何故こうなってしまったんだろうか
文法というか記法が独特だからなのかな
666デフォルトの名無しさん (ワッチョイ a97c-ca7b)
垢版 |
2019/08/30(金) 09:52:23.42ID:GEn/r+mZ0
元々大した事なかったからな
Railsみたいなモルヒネで延命してるうちに手遅れになった
667デフォルトの名無しさん (ワッチョイ 9963-4dMe)
垢版 |
2019/08/30(金) 14:40:23.42ID:RCTyVXY+0
>>650
自分でTCP/IPパケットの解析をするときに、「バイナリはバイナリのまま処理すれば」十分なの?
バイナリをバイナリのまま処理できるのなんてコピーぐらいの単純なIOしか思いつかないのだが。

バイナリって文字列じゃないだけであって区切りを持った意味のあるバイト列だからね。
2019/08/30(金) 14:48:49.55ID:1L0XShC30
>>667
何が言いたいのかさっぱりわからん。pack/unpackなんか使わずに
特定の型の構造体として扱えばいいって言ってるだけなんだが?
2019/08/31(土) 05:20:39.23ID:ZoC/NMoo0
unionみたいなのあったっけ?
2019/08/31(土) 05:48:43.98ID:bRBeXa4d0
Rubyには無いでしょw

バイナリ扱うのにC/C++よりもPerl5/Rubyのほうが簡単
なぜならpack/unpackが使いやすいから

なんて寝言言ってるから、バイナリ扱うのはC/C++の方が
簡単だって話をしてる。
2019/08/31(土) 05:50:42.27ID:bRBeXa4d0
まあ型がない言語でバイナリ扱うのが簡単になるわけがないという
当たり前の話やなw
2019/08/31(土) 07:32:26.18ID:ZoC/NMoo0
じゃあRubyでバイト列を特定の型の構造体として取り扱うにはどうすればいいの
2019/08/31(土) 09:00:52.78ID:KTrrzu1K0
>>670
まず引用の仕方を覚えましょう

>バイナリ扱うのにC/C++よりもPerl5/Rubyのほうが簡単
>>649 からの引用のようだが
>目的とやりようによっては
が、抜けてるね
2019/08/31(土) 10:02:23.34ID:bRBeXa4d0
抜けてるからってなんだっていうんだろうか?
そこは抜けてると指摘するんじゃなくて、
簡単な場合をだして反論するべきだろう?
675デフォルトの名無しさん (ワッチョイ 0b7c-ca7b)
垢版 |
2019/08/31(土) 10:28:13.26ID:nubn4z9u0
>>672
ffi
2019/08/31(土) 13:37:47.73ID:UymIA0Th0
>>674
反論?w
エンディアン、アラインメント、パディングとか、知ってれば当たり前のことばかりなんだけどな。
2019/08/31(土) 13:44:28.66ID:iNpyZmkw0
>>676
知ってる用語を並べてないで、当たり前というのなら、その当たり前のことをしてみせなさいな。雑魚かよw
2019/08/31(土) 19:49:53.43ID:+GP+wx3m0
エンディアンなんか大した問題ではないし
アライメントやパディングは指定できるから
なんでもない
2019/09/02(月) 07:52:42.22ID:PTshJoC4r
ワンリトルトゥーリトル
2019/09/02(月) 08:15:24.27ID:TbsyiPZi0
スリーリトル、アウト!
681デフォルトの名無しさん (ワッチョイ 132c-cmxz)
垢版 |
2019/09/03(火) 04:03:18.48ID:IE86u3rd0
>>656
Windows 10, WSL, Ubuntu 16.04 では、Ruby 2.3 を使っているけど、
2.3 は、サポート切れなのに更新された!

セキュリティー更新かな?
2019/09/04(水) 03:31:46.27ID:NtCOMGlqd
亀だと思うんだが最近知ったんで書くだけ書かせてくれ
基本情報処理試験のプログラミング言語の選択科目からCOBOLが消えてPythonが代わりに入った

Rubyは日本発の言語でかつISOにも認定されてるんだぞ?
案件だってRailsやPadrinoなどのWeb系に顕著だが日本では多いわけでさ
Pythonなんて案件ねえよw

まあCOBOL削った分Python入れてもいいですよ
ただそれなら表計算削ってRuby入れろや
国産で世界にも認められてる言語をお上が認めないでどうすんの?バカなの?氏ぬの?
それにMatz氏は親日だぞ?
2019/09/04(水) 03:31:56.65ID:NtCOMGlqd
長文失礼
2019/09/04(水) 08:07:46.98ID:ILL0NhSJ0
>>682
一時期流行ったが将来性はないからとか、独特の癖のある言語で情報処理の基礎的な能力を評価するには適さないとか。
685デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 10:30:47.44ID:Z0seKSTeF
excelにpython乗ったらもう試験に表計算は要らないよな
表計算を削ってpandasを入れて欲しい
2019/09/04(水) 10:39:47.55ID:nmk4+Aqu0
rubyで一番ヤバいのは|x|とかのラムダ式だろ
縦棒とか一番押しにくい位置にあるじゃん
これ|を二つ押すよかlambdaと5文字書いた方がラク、ってのが世界の趨勢だよ
だもんでruby最大の癖がコレ|x|だ
2019/09/04(水) 10:43:23.87ID:ZdLs6UcV0
> 縦棒とか一番押しにくい位置にあるじゃん

一番押しにくい位置にあることで発生するデメリットはなに?
入力が0.5秒遅れるだけとかその程度?
688デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 11:03:04.89ID:Z0seKSTeF
BS NHK でやってた島根県の松江の
おもちゃの病院
割と良かった
2019/09/04(水) 11:05:18.78ID:ZdLs6UcV0
はは、所詮おもちゃw
2019/09/04(水) 11:10:32.87ID:nmk4+Aqu0
分かってないなぁ
押しにくいからデメリットなんだよ
691デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 11:10:43.54ID:Z0seKSTeF
->
692デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 11:11:49.38ID:Z0seKSTeF
NHK じゃなかった BSフジ の FNSドキュメンタリー大賞
2019/09/04(水) 11:13:21.21ID:vwhL3cv70
>>690
どれくらいのデメリットか聞いてるだけやで
2019/09/04(水) 11:54:04.46ID:ikEP3CxVM
>>693
タイプが面倒だと、
「気持ちよくない」
「楽しくない」
「屈辱」

教祖様のお言葉だから批判は許されないよ
2019/09/04(水) 13:44:55.30ID:TYvZQs3/r
個人的には|より()の方が打ちにくい
2019/09/04(水) 18:15:51.43ID:5AheTDMi0
ていうか手の小さい女性にも配慮して欲しかったり
2019/09/04(水) 19:35:04.07ID:S+RlT6ue0
>>682
Rubyは互換性がクソだから、「試験」にはあわない。

これからは互換維持をがんばると言ったようだから、それが実績でしっかり証明されてからやな。
2019/09/05(木) 10:39:07.68ID:ZhL2R7iO0
特定の日本人に仕様が握られてる言語とか採用は無理でしょ
ISOも形だけとったのがバレバレ
2019/09/05(木) 10:47:07.58ID:jvZOJhcs0
>>697
2系を根絶できないPythonに互換性云々を言われるのは納得しづらい
2019/09/05(木) 11:14:09.33ID:A2EHupI70
Rubyみたいな汚い言語が採用されるわけないでしょ
Pythonのが幾分マシ
701デフォルトの名無しさん (ワッチョイ 49e7-ZcvA)
垢版 |
2019/09/05(木) 19:28:40.96ID:H0hn+DNn0
>>697
たしかにたかだかバージョンを上げただけで Hello world が
構文エラーで動かなくなるなんて、クソ以外の何物でもないね

http://mevius.2ch.net/test/read.cgi/tech/1413113999/126

こんな言語仕様変更がTIOB上位ランク言語で断行されたのは、
おそらく歴史的に初めてであろうし、
後世に「後方互換性の断絶」の代表例として語り継がれていくだろう
702デフォルトの名無しさん (ワッチョイ 49e7-ZcvA)
垢版 |
2019/09/05(木) 20:36:41.58ID:H0hn+DNn0
>>687,693
別のRubyアンチスレと同じ流れではないかと思われ
・Rubyに'end'って要らないよな
 http://mevius.2ch.net/test/read.cgi/tech/1563066707/
このスレではPython厨がインデント矯正のメリットを声高々に主張した挙句、
以下の結末となった
 http://mevius.2ch.net/test/read.cgi/tech/1563066707/31
 > (2)言語による矯正がなければインデントがめちゃくちゃになるレベルの人には有益

このスレに当てはめると:
 縦棒を押すのが苦痛なほどタイピングが苦手な人にとっては、苦痛としか言いようがない


>>688
一昨日のU18パナマ戦の裏番組では小学生向けプログラミング義務教育を扱っていた
その番組によると、三つある小学生向け教育指針の一つ目として
(Scratchに代表される)ビジュアルプログラミング言語の利用が推奨されていた
たしかに、小学生であればマウス操作主体の方が親しみやすいと考えるのは誰もが納得できるだろうし、
ましてや縦棒を押すのが苦痛に感じなくなるほどタイピング教育を徹底させるとしたら無茶苦茶だよね


つまり、まとめると:
 タイピング能力が小学生レベルな人(>>686,694)にとって、縦棒押しを強要するRuby言語仕様は苦痛
という結論ですね
個人的には、精神年齢が小学生レベルの人にRubyの習得は難しいから、無理に背伸びせず
中学生レベルに成長してから再挑戦してもらいたいです
2019/09/05(木) 20:47:32.79ID:A2EHupI70
↑伝統的・標準的 Ruby使用者
こういうひねくれてて頭弱そうな人が好むんだよなぁ>Ruby
さいこー
2019/09/05(木) 22:51:20.43ID:do1wrMFw0
>>699
かなり異なる2系統が存在するだけのPython。
マイナーバージョンアップでも破壊的変更が心配なRuby。

ぜんぜん別物。
納得できないとしたら、あたおかやで?
2019/09/05(木) 22:54:58.20ID:gXvrj6Sda
PythonをディスってもRubyの栄光は帰ってこないよ。
Rubyを救いたかったらRails級の革新的なOSSを作りなさい。あなた自身が。
2019/09/05(木) 23:12:23.77ID:6wsc7cqJ0
>>705
結局言語としてのRuby自体にはもう価値も魅力も無いということか
2019/09/06(金) 00:22:56.73ID:elSjasNja
もうっていうか元々価値があったのはRubyじゃなくてRailsだぞ
708デフォルトの名無しさん (ワッチョイ 7197-eFFi)
垢版 |
2019/09/06(金) 02:29:56.43ID:RO0aMjS50
PythonにおけるJupyterみたいな環境があれば、Rubyも使う人増えるんじゃないかなぁ。
一応Jupyter用のRubyカーネルあるみたいだけど、微妙な動きだったし
pryをつかったRubyカーネル作れば便利なのかもしれないけど。

Rubyあんまり使ってないからわかんないんだけど、Pythonはctypesとか使ってPure Pythonじゃないパッケージもいっぱいある印象なんだけど、
RubyはFFI使ってPure Rubyじゃないライブラリって少なそうな印象。その差はなんでなんだろう?

そして、もし本当にそうなのであれば、RubyはPythonに比べてグルーコードとしての有用性が低くて、
Pythonほど汎用的にいろんな場所で使われるようになるのは難しい、と考えられるけども。
2019/09/06(金) 03:05:36.81ID:q8MmhHZA0
Rubyはsjisもutf-8もそのまま変換せずに扱えて便利
2019/09/06(金) 04:03:58.92ID:WcFuWWHJ0
>>708
印象。w
ネイティブモジュールはたくさんあるから、心配すんな。
711デフォルトの名無しさん (ワッチョイ ed7c-p7Vf)
垢版 |
2019/09/06(金) 13:17:37.49ID:CfEMcmDH0
>>702
放送大学か
2019/09/06(金) 20:22:56.17ID:hIcrqMsN0
>>702
そりゃそうだ
この手の催しはお前が投書して廃止に追い込んでくれ

総務省|若年層に対するプログラミング教育の普及推進事業|地域資源であるプログラミング言語「Ruby」を活用した教科学習(算数)支援モデル
http://www.soumu.go.jp/programming/017.html
713デフォルトの名無しさん (ワッチョイ 49e7-ZcvA)
垢版 |
2019/09/06(金) 23:33:10.17ID:NV9LDg+C0
>>705
Rubyの栄光?Rubyを救う?何を言ってるのかなぁ

かつて先端IT不毛の地と思われたアジアに位置する島国日本に生まれ、
しかも名もなく地位もなかったエンジニアが設計した:
  ぼくのかんがえるさいきょうげんご
であるRubyは、すでに全世界で認知されTIOBEの最新ランキングでも11位にある
ただそれだけで十二分に「栄光」ではなかろうか
714デフォルトの名無しさん (アウアウエー Sa4a-p7Vf)
垢版 |
2019/09/07(土) 00:04:08.56ID:lrUhBd6ha
>>712
率直に言って京よりひどいなこれ
715デフォルトの名無しさん (ワッチョイ 49e7-ZcvA)
垢版 |
2019/09/07(土) 00:13:02.36ID:UXOwbSGn0
>>711
当たり


>>712
えーと、リンク先の文書を本当に読んでカキコしたの?
この事業で使用する「スモウルビー」は、(開発言語がRubyで)
Scratchと同様なビジュアルプログラミングツールなんだけどね
何を言いたいのかワケワカメ

ちなみにRubyの世界には、小学生どころか5歳児に素のRubyを
学ばせようという、世間一般からすれば無謀と言われかねない試みもあったりする
・『ルビィのぼうけん』特設サイト - 翔泳社
 https://www.shoeisha.co.jp/book/rubynobouken/
個人的には、子供の持つ好奇心という破壊的なパワーをなめちゃいかんと思います
716デフォルトの名無しさん (アウアウエー Sa4a-p7Vf)
垢版 |
2019/09/07(土) 00:22:45.12ID:lrUhBd6ha
同じ●ビィでもヴィビィよりは遥かにマシ
2019/09/07(土) 01:01:24.05ID:dV4V3FOS0
>>715
この本Ruby関係あんの?
2019/09/10(火) 17:10:31.44ID:OGaf6FO/M
>>717
ある!
719デフォルトの名無しさん (アウウィフ FFa5-p7Vf)
垢版 |
2019/09/11(水) 12:59:24.19ID:zFEVPQj4F
安藤咲良かわいいな
https://gigazine.net/news/20190910-top-programming-languages-2019/
720デフォルトの名無しさん (ワッチョイ 1f7c-+dKN)
垢版 |
2019/09/14(土) 12:06:00.29ID:NwEptffo0
rails 概出?
https://www.youtube.com/watch?v=bxZaPTw5E7k
2019/09/30(月) 07:58:23.85ID:dWYe+0vv0
2.7のNumberedParametersがいつの間にか@1から_1に変わったんか

微妙に被害被ってそうな破壊的変更は困るわ
722デフォルトの名無しさん (ワッチョイ 5f2c-+BGV)
垢版 |
2019/09/30(月) 20:12:39.70ID:auJmx+hY0
任意の列数のCSV ファイルから、そのファイルを上書きせずに、特定の2列だけを抜き出したい。
2列以外のすべての列を削除したりできますか?
ただし、列名・列数は、ファイルごとに変化します

require 'csv'

field_name_1 = "AAA"
field_name_2 = "BBB"

header = CSV::Row.new( [ field_name_1, field_name_2 ], [], header_row: true ) # ヘッダー行
table = CSV::Table.new( [ header ] ) # ヘッダー行を追加する

# 引数は、入力ファイル名。ヘッダー行あり
CSV.foreach( ARGV[ 0 ], headers: true ) do |row| # 1行ずつ処理する
ary = [ row[ field_name_1 ], row[ field_name_2 ] ]

table << CSV::Row.new( [ field_name_1, field_name_2 ], ary ) # 1行ずつ追加する
end

puts table
2019/09/30(月) 20:32:13.86ID:sHSicWZI0
>>722
$ csvtool namedcol aaa,ccc data.csv
aaa,ccc
01,03
11,13
21,23
724722 (ワッチョイ 5f2c-+BGV)
垢版 |
2019/10/01(火) 22:53:28.60ID:9HRGRt020
CSV::Table#by_col! で、列単位で扱える。
そこで、delete(列名) で、列ごと削除できるけど、
事前に、列名が必要

任意の列数のCSV ファイルを扱う場合に、
事前に、列名がわからない場合に、どうすれば良いのか?

一旦、ヘッダー行を取得して、すべての列名を取得してから、処理すれば良いのか?

>>723
csvtool というコマンドがあるのですね
2019/10/02(水) 23:26:12.27ID:14D+F8tw0
>>724
csv = CSV.table ARGV[0]
puts csv.by_col.delete_if{|name, val| ![:AAA, :BBB].include? name}
726デフォルトの名無しさん (ワッチョイ eaa5-P2X/)
垢版 |
2019/10/03(木) 12:16:59.30ID:PnP8AkUw0
Rubyに決めた!
2019/10/03(木) 15:24:11.67ID:qxa8VeaI0
できた!

by_col! でも、元のファイルを更新しない

それと、CSV.tableは、CSV.readに、幾つかのオプションを設定したものだから、
table = CSV.read( ARGV[ 0 ], headers:true, converters: :numeric, header_converters: :symbol )

コンバーターで、変数の型が自動変換されてしまう

require 'csv'

column_names =[ "AAA", "BBB" ]

# 引数は、入力ファイル名。ヘッダー行あり
table = CSV.read( ARGV[ 0 ], headers: true )

# 列モードにしてから、特定の列名以外を、削除する
puts table.by_col!.delete_if {
|column_name, values| !column_names.include? column_name }
728デフォルトの名無しさん (ワッチョイ ea2c-2rUB)
垢版 |
2019/10/09(水) 16:51:10.78ID:z4DviLBe0
Windows10, WSL, Ubuntu 16.04, Ruby 2.3 で、
pty, expect モジュールを使って、端末に自動入力しようとしたが、エラーになる!

この環境では、使えないのかな?

warning: Insecure world writable dir /mnt/c in PATH, mode 040777

/usr/lib/ruby/2.3.0/expect.rb:47:in `eof?':
Input/output error @ io_fillbuf - fd:7 /dev/pts/0 (Errno::EIO)
729デフォルトの名無しさん (ワイーワ2 FF92-PqvS)
垢版 |
2019/10/09(水) 16:59:03.96ID:dDDCJBWOF
君の pwd の結果を曝すか
runas /user:administrator 汁
2019/10/09(水) 18:12:59.85ID:z4DviLBe0
Windows10, WSL, Ubuntu 16.04 の端末上で、
~/mytest/ruby/test に、スクリプトファイルを置いて、実行してる

ディレクトリ・ファイルのパーミッションは、rwxrwxrwx

確かに、/dev/pts/0 は存在しない(Errno::EIO)。
/dev/pts/ptmx しかない

WSL には、その機能が無いのかも
2019/10/09(水) 21:36:17.99ID:K/mDLqh/0
tty コマンド実行したらどうなる?
732デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/10(木) 09:40:50.22ID:yMym0WfOF
ちゃんと読め
Insecure world writable dir /mnt/c in PATH
2019/10/10(木) 09:44:39.40ID:LUJumBxEM
こいつ他のスレでRubyのネガキャンしてまわってるキチガイだろ
相手をするな
2019/10/10(木) 15:46:12.72ID:Nxyr4aACa
Rubyだけじゃないでしょ
この板に取り付いて自演してる糖質君だよ
そういう奴がいるという認識で無視しておけば無害
2019/10/10(木) 18:57:06.29ID:dv1+zkCU0
Windows10, WSL, Ubuntu 16.04 の端末上で、
tty と入力すると、/dev/tty1 と表示される

Ruby ではなく、シェルスクリプトで、expect をしようか
2019/10/10(木) 19:25:48.03ID:dv1+zkCU0
pty は仮想端末だから、ssh 接続をしないと使えないのかも

単に、端末に自動入力したいだけだから、
Ruby ではなく、シェルスクリプトで、expect をやってみる

apt では、sudo のパスワードを聞かれるから、それを自動入力したい
2019/10/10(木) 19:59:39.73ID:dv1+zkCU0
expect のサンプルが、pty を使ったものばかりだったから、ptyを使わなければ良いのかも?

expectだけでも使えるのか?
誰か、サンプルを書いて!
2019/10/11(金) 00:40:11.94ID:SXeDtfTX0
Windows10, WSL, Ubuntu 16.04 の端末上で、

net/telnet モジュールを使って、Telnet で接続しようとしたが、エラーになった!

/usr/lib/ruby/vendor_ruby/net/telnet.rb:350:in `initialize':
Connection refused - connect(2) for "localhost" port 23 (Errno::ECONNREFUSED)

やっぱり、WSL は特殊
739デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/11(金) 10:13:43.38ID:hkXt1GtmF
Windows で Ruby 使ってもロクなことにならない
(WSL でもね)
2019/10/11(金) 10:41:17.51ID:AqBy2q4Y0
ここの淀んだコミュニティはまだWindows目の敵にしてるのか
そんなんだからPythonにぶっちぎられちゃってるのに
741デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/11(金) 10:44:47.24ID:hkXt1GtmF
別に目の仇にしてる訳じゃないやろ
「rubyはなんでwindowsで使うと糞なの」
「じゃあおまいが対応汁」
「forkωωω」
「挫折」
の流れを繰り返してるだけ
屍累々
2019/10/11(金) 10:59:31.96ID:PhVW6Uck0
>>738
お前がわかってないだけだろ

そのエラーはlocalhostでtelnetサーバーを起動してない、
もしくは接続が拒否されたって意味だ。

今どき暗号化されてないtelnetサーバーなんて使わないから
前者だろうな。
2019/10/11(金) 11:00:41.99ID:PhVW6Uck0
ちなみにWindows 10にはtelnetサーバーは付属してない。
2019/10/11(金) 11:01:10.81ID:PhVW6Uck0
>>741
的はずれなレスをするな
2019/10/11(金) 22:27:44.45ID:SXeDtfTX0
Windows10, WSL, Ubuntu 16.04 の端末上で、
tty と入力すると、/dev/tty1 と表示される

/dev/tty, /dev/tty0, /dev/tty1 などもある。
他にも、S が付いた、/dev/ttyS0 〜 /dev/ttyS191 もある

/dev/stdin, /dev/stdout, /dev/stderr もある

expect で、このあたりの、デバイスファイルを使えるかもしれない

>>738
Telnet の接続エラーは、port 23 が開いていないのかも
746デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/14(月) 11:56:07.71ID:Cg/ykvDAF

https://www.atmarkit.co.jp/flinux/rensai/linuxtips/094virtualcon.html
https://kouritool.com/what-linux/ctrlaltf1仮想コンソールを起動を押してしまったら/
747デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/14(月) 11:56:43.70ID:Cg/ykvDAF

https://qiita.com/Kernel_OGSun/items/bdccbe8bc4092f33b43e
http://yudoufu.hatenablog.jp/entry/2014/02/06/001440
748デフォルトの名無しさん (ワッチョイ 7f73-pTuN)
垢版 |
2019/10/20(日) 00:18:23.73ID:tI/yRj1E0
Rubyの課題が全然わからないので教えてほしいです。
1、0、−1、0が繰り返し表示されるようにしたいです。
when使ってできないでしょうか。
OS→windows10
Rubyバージョン→1.8.4
一応作ったのですが、nilが永遠にでます。
2019/10/20(日) 02:00:28.55ID:pHh2P92w0
作ったの貼るっしょ
2019/10/20(日) 08:32:27.73ID:ADDbXmaX0
Ruby 1.8.4 ?
もう、そんなに古いのは無理!

Windows 用のRubyInstaller でも、Ruby2.5.7。
Linux では、Ruby2.6.5 が最新だが、Windows では、1つ前のバージョンを使うこと!

Windows では、irb も日本語でバグるから、VSCode を使え!
Code Runner という拡張機能を入れると、
右クリックメニューから、選択したコードを実行できる
2019/10/20(日) 08:40:43.47ID:akKR2ina0
その問題を「1、0、−1、0を産む機械」と言い換えればすぐにyieldを使えばいいと分かる
whenなの?
2019/10/20(日) 09:10:18.66ID:X1mKFDBe0
0.step do |i|
p case i % 4
when 0 then 1
when 1 then 0
when 2 then -1
when 3 then 0
end
end

a = [1,0,-1,0]
0.step{|i| p a[i%4] }

>>750
> Linux では、Ruby2.6.5 が最新だが、Windows では、1つ前のバージョンを使うこと!
私の観測範囲が狭いのか2.6.5を使わない理由が見つからないのだが、なにかバグありました?
2019/10/20(日) 09:57:11.30ID:V17Fc59sr
>>748
(1..).each{|i| p (-1)**((i & 2) >> 1) * (i & 1)}
2019/10/20(日) 10:13:18.00ID:ADDbXmaX0
>>752
Windows 用のRuby は、いつも1つ前のバージョンを使う!
RubyInstaller のサイトにも、最新版を使わないようにと、いつも書いてある

Windowsでは、MSYS2 でコンパイルするモジュールなどが、
最新版に対応していないので、1年ぐらい待つ必要がある
2019/10/20(日) 10:18:26.35ID:lW4NmDBF0
>>748
loop{ puts 1, 0, -1, 0 }
2019/10/20(日) 11:35:59.48ID:X1mKFDBe0
>>754
RUBYINSTALLER-HEAD(https://github.com/oneclick/rubyinstaller2/releases/tag/rubyinstaller-head)については書いてありますが
latestについては記述見つかりませんでしたが、どこに書いてありますか?

> MSYS2 でコンパイルするモジュールなどが、
コンパイル済みのfat-gemが問題起こしてる印象があり、なくならねぇかな・・・と思ってますね
2019/10/20(日) 12:06:18.48ID:ADDbXmaX0
https://rubyinstaller.org/

以前は、このトップページか、Download のページに書いてあったけど、文章が変わったみたい

まあでも、このスレでも、Windows では、最新バージョンは使うなという書き込みがあったから、
たぶん、1つ前のバージョンを使わないと、依存関係が解決できないのだろう

とにかく、Mac を使っている人は、Windowsの依存関係が地獄だから、皆Macへ移った
2019/10/20(日) 12:16:45.81ID:MDf6mYD+0
[1,0,-1,0].cycle {|x| puts x} #無限
[1,0,-1,0].cycle(3) {|x| puts x} #サイクル数指定
[1,0,-1,0].cycle.take(10).each {|x| puts x} #要素数指定

cycle再発明したいならEnumeratorを返す方法を学ぶ
759デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
垢版 |
2019/10/20(日) 12:46:50.25ID:9lZC9vgyF
ひょっとすると Ruby は糞なのかも知れない

10.times{|n|puts Math::cos(n*Math::PI/2) <=> 0}
760デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
垢版 |
2019/10/20(日) 12:48:22.43ID:9lZC9vgyF
10.times{|n|puts Math.sign(Math::cos(n*Math::PI/2))}
10.times{|n|puts Numeric.sign(Math::cos(n*Math::PI/2))}
10.times{|n|puts Number.sign(Math::cos(n*Math::PI/2))}
761デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
垢版 |
2019/10/20(日) 12:56:08.24ID:9lZC9vgyF
糞は漏れだった orz

10.times{|n|puts Math::cos(n*Math::PI/2).to_i}
2019/10/21(月) 12:00:03.97ID:ZDMJHUdnr
>>758が一番スマートだな
2019/10/21(月) 13:13:03.03ID:a2dL9b0A0
>>760みたいに下手に計算するより早いしね!
2019/10/21(月) 13:27:57.28ID:ZDMJHUdnr
いやそもそも>>759-761は間違ってる
2019/10/21(月) 13:42:33.89ID:a2dL9b0A0
>>764
そういうことじゃなくて発想の問題よ。
物事を単純に考えることができない。
2019/10/21(月) 14:06:09.86ID:ZDMJHUdnr
流石に本気で三角関数使って実装しようなんて思ってないだろうしそこは別にネタで言ってんだと思うけど
ネタとしても面白くはないけど
2019/10/21(月) 16:50:50.88ID:RCZWOoQNa
そもそも>>748はhello worldレベルの初心者だろうに、回答者が求めてるものを無視して俺の解き方見てくれ!って奴ばかりなのは問題だと思う
2019/10/21(月) 17:07:36.09ID:5+ah6i6TF
禁止事項
トリを使おうとしている質問者に対して、そんなトリはやめろとかという、斜め上からのアドバイス
質問者そっちのけでの昔語り(昔はもっと苦労したもんだ、今の若い者は…)
知らないのに、使ったことないのに、知ったかぶりでの書き込み
ググれという誰でも言えそうな忠告
俺は知ってるけど言わない等といった、実社会での扱われ方からの僻みから来る
意地悪な言辞

回答はあくまでボランティアなので、質問者は、回答がつかなかったり、
期待に沿った回答が得られなかったからといって切れたりしないように。
また、わざとそういう困った質問者を演じて釣りに来る人もいるかもしれないので、
回答者も、むかついたからといって、いちいち切れて反応せずスルーしよう。

そして質問者はもう出て来ない
769デフォルトの名無しさん (ワッチョイ 37e7-6fT3)
垢版 |
2019/10/21(月) 17:50:42.35ID:fwYGRAlp0
他人のレスに対して上から目線で批判するしか能がない評論家のカキコこそ、
無駄なスレ消費ではないかと思われ


>>764
では、貴殿の正解をどうぞ!

>>766
では、あなたの考える>>748が求めていた回答(あなたの解き方)をどうぞ!!
2019/10/21(月) 19:35:56.70ID:fwYGRAlp0
訂正
X:
 >>766
 では、あなたの考える>>748が求めていた回答(あなたの解き方)をどうぞ!!
O:
 >>767
 では、あなたの考える>>748が求めていた回答(あなたの解き方)をどうぞ!!
2019/10/22(火) 11:21:00.25ID:wZUXcjF6r
いやどうみてもnがちょっとでかくなったら正しくなくなることくらい自明だろ
同じ発想でやりたいなら複素平面とかπ/2の回転行列とか使って計算すればいいだけ
ただし奇を衒った回答としては斬新さにかけて面白くないと言っている
>>758が一番スマート(かつ自分でもそうする)って言ってるんだがなんなんやこいつ
772デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
垢版 |
2019/10/22(火) 11:24:07.59ID:fxbuxtP/F
>nがちょっとでかくなったら正しくなくなる

2π で mod すればいい
773デフォルトの名無しさん (ワッチョイ 7f73-pTuN)
垢版 |
2019/10/22(火) 11:42:16.77ID:Bl/xGts70
質問したものです。皆さん様々な意見ありがとうございます。考えてくださってとても感謝しています。
皆さんのを見ながらなんとかできました!
ありがとうございました。
774デフォルトの名無しさん (ワッチョイ 6373-sEIE)
垢版 |
2019/10/26(土) 11:19:55.92ID:VCWPcpX80
def break_test
return break
end

i = 10;
while i > 0
next_test
}
放置すれば無限ループになるのをbreak_testでループを
抜けたいのですが、関数?からnext や breakなどを
返すようにできないのでしょうか。
775デフォルトの名無しさん (ワッチョイ 6373-sEIE)
垢版 |
2019/10/26(土) 11:21:02.82ID:VCWPcpX80
ごめんなさい、
i = 10;
while i > 0
break_test
}
でした。
2019/10/26(土) 12:47:43.93ID:751XFDvk0
そういうキーワードそのものは、返せないだろ

戻り値は、0, 1 などの整数とか、
フラグとして、true, false の真偽値とか、

:next, :break みたいなシンボルとか、文字列とか
2019/10/26(土) 13:32:18.57ID:aCoOcfZt0
キーワードデリゲーションをすればいいんだろ
かんたんじゃん
2019/10/26(土) 13:42:24.92ID:ZMkO6rZZ0
>>774
それをやりたいと思った理由は?

仮にできるとしてもnextやbreakが
別のメソッドに埋まってたら可読性が低くて嫌だと思うんだけど
2019/10/26(土) 19:48:47.03ID:zP6esb2p0
>>774
斬新な発想だな。w
Rubyに限らず一般的に、制御を移すしくみは、関数(メソッド)の範囲を越えることはできない。

ただし、「例外」ならそれ以降をすっとばすことができるので、break相当ならできるかも?
# 勧めないけど。
2019/10/26(土) 19:56:33.83ID:zP6esb2p0
>>778
理由はいろいろやろ。
制御の移しかたを別の関数に封じて共用できたらなあ、という気持ちがわからんのか。

可読性なんか、命名でも運用でもどうとでもなる。
781デフォルトの名無しさん (ワッチョイ 6373-sEIE)
垢版 |
2019/10/26(土) 22:09:58.48ID:VCWPcpX80
>>778
実際はwhileじゃなくて
xxxxx.each do |key|
同じようなことする関数(引数)
  同じようなことする関数(引数)
  同じようなことする関数(引数)
end
の中で関数の中身がある条件だったら
nextで残りをやらずにeach.doの最初からやりたいんですけど
引数の値が違うだけなのに
例えば関数にTrueを返したら next しろとか条件をいちいち
付けるのもめんどくさいと思い、質問してみました。
782デフォルトの名無しさん (ワッチョイ 6373-sEIE)
垢版 |
2019/10/26(土) 22:13:03.44ID:VCWPcpX80
xxxxx.each do |key|
if 同じようなことする関数(引数) then next
  if 同じようなことする関数(引数) then next
  if 同じようなことする関数(引数) then next
end

Rubyにあまり詳しくないのでよくわからないのですが
こんな感じなのでしょうか?
2019/10/26(土) 23:35:07.98ID:BPSgYag60
慣習的に返り値を成否にすることが多いから論理を逆にして

xxxxx.each do |key|
同じようなことする関数(引数) &&
同じようなことする関数(引数) &&
同じようなことする関数(引数)
end

xxxxx.each do |key|
next unless 同じようなことする関数(引数)
next unless 同じようなことする関数(引数)
同じようなことする関数(引数)
end
2019/10/27(日) 00:24:39.23ID:wfElRmia0
>>781
なるほど

自分ならオプショナルチェーン的なのを使うか
「同じようなことする関数」をメソッドオブジェクトかProcにして配列に入れて
true返したらnextしろって書くのを1箇所にする

https://ideone.com/I7hyOs
https://ideone.com/VQMgg2
2019/10/27(日) 05:02:59.99ID:hJUpCTqv0
jQuery.each( object, callback )

これは、jQueryの繰り返し処理用の関数。
配列/オブジェクトで使える

繰り返し処理中に、ループを抜けたい場合(一般的なループ処理で言うところのbreak)、
コールバック関数で、falseを返すことで実装できます。
それ以外の値を返した場合は、無視されます
2019/10/27(日) 05:08:22.73ID:+BT3KxOb0
独自の言語を開発した15歳が経済産業大臣賞を受賞
https://it.srad.jp/story/19/10/23/1625249/

まつもとさんクラスの才能?
2019/10/27(日) 10:29:27.71ID:EzDt4vDz0
ifのネストができないとかなので
qiitaの「オレオレ言語作ってみた」記事レベル
2019/10/27(日) 10:35:17.49ID:4XYnNnzNr
いや、さすがにそれよりは完成度高かったよ
2019/10/27(日) 10:40:08.22ID:Lik42TLZ0
あとgithubプロジェクトには、オブジェクトファイルとか
vimのスワップファイルとかも入っていて周辺知識もない

つまりはプログラミング全般の幅広い知識をつけて、
言語開発できるレベルになったと言うより
言語作ってみたくて、それ関連の知識をぐぐってコピペした程度
再帰を知ってるかも怪しいw
2019/10/27(日) 10:44:23.07ID:4XYnNnzNr
中学生相手に謎のマウントとって恥ずかしくないんかこのおっさん
791デフォルトの名無しさん (ワッチョイ 6f8c-cmPQ)
垢版 |
2019/10/27(日) 11:37:21.19ID:vygsvak+0
どこにも新人を虐め殺す人はいる。
2019/10/27(日) 11:58:18.66ID:hJUpCTqv0
養成読本シリーズのムック本が出た!

Software Design plusシリーズ
Ruby on Rails 6 エンジニア養成読本、2019/10/26

著者は、すがわらまさのり,前島真一
2019/10/27(日) 12:17:41.60ID:Cn2fohUL0
養成ギプスじゃねーのなこのシリーズ
2019/10/28(月) 23:21:57.76ID:FXEIy8w10
>>783
返事が遅くなりすみません。
なるほど、そんなにシンプルにできるのですね。
Rubyの問題ではなかったですね。
ありがとうございます。
2019/10/29(火) 06:00:13.39ID:wBa+308I0
>>784
条件を配列にいれて処理すると楽そうですね。
ありがとうございます。
2019/10/29(火) 06:25:03.68ID:wBa+308I0
>>785
Ruby on Rails入れてませんがjqueryが使えるのでしょうか。
797デフォルトの名無しさん (スップ Sd1f-PDRl)
垢版 |
2019/10/29(火) 23:05:22.63ID:wWZj5nZGd
github の ignoreとか適当だから、objとか普通にアップしてるな。
仕事ならまだしも、個人ねやつなんか、完全やバックアップもくてきだから、
あまりにデカイみだな .db とか除いて、全部あっふだわ。

個人のリポジドリも200とか超え始めると、一つ一つ丁寧に設定なんかしとれんわ。
githubやエディタ独自仕様に振り回される必要なし。
2019/10/30(水) 01:59:02.44ID:p2ffZ2o00
>>796
Rails を使っていない場合でも、

ERB, Selenium WebDriver, Nokogiri などで、
HTML を処理する場合には、Node.js, jQuery も使う
799デフォルトの名無しさん (エムゾネ FF1f-Tlcr)
垢版 |
2019/10/30(水) 13:12:15.78ID:Jt7N9BVBF
>>797 はパスワードをうpして慌てるタイプ

あるいは気付かず放置してるだけかも知らん
800デフォルトの名無しさん (ワッチョイ ca2c-0B+f)
垢版 |
2019/11/04(月) 16:33:35.55ID:Zu03xGz40
あるフォルダ内の子フォルダだけを取得するのに、こう書いているのですが、

PowerShell みたいに、ls -Directory
など、もっと簡単に書けないの?

target_dir = "C:/Users/Owner/Documents/*"

p dest_dirs = Dir.glob( target_dir ).select { |path| File.directory?( path ) }

return if dest_dirs.length == 0 # フォルダが存在しない
2019/11/04(月) 16:36:49.84ID:6GYoHHZPF
RubyはUNIXで使うものであり、シェルコマンドも積極的に使うのが前提
Rubyから普通にlsを呼べ基地外
2019/11/04(月) 19:06:35.57ID:KBcuTkU10
単発で使う分には十分簡単に書けてると思うが
繰り返し書く必要があるなら自分でメソッド抽出すればよくね?
2019/11/04(月) 19:37:03.85ID:Zu03xGz40
Dir.glob( "パス", :directory )

みたいに、ブロックじゃなくて、
オプション・シンボルなどで、簡単に指定できれば
2019/11/04(月) 20:32:46.29ID:15pQYryDa
>>800
むしろPowerShellが凄い
2019/11/04(月) 22:33:04.21ID:KBcuTkU10
Dir.glob('*/')
2019/11/05(火) 21:08:09.25ID:z9XdE4jra
rubyを使い出して2週間なのですが困っています。

今は汎用機のログの一括処理に使っているのですが、
半角カナや漢字が文字化けして読み込まれます。

ログファイルはwindowsにsjisで保存されていて、
これをsjis指定で読み込んでも\x33等と化けます。
どうすれば半角カナが化けないように読めるのでしょうか。
2019/11/05(火) 22:01:22.14ID:+vsp0I/Q0
sjis指定で読み込んでると思い込んでるだけで実際はutf-8になってるんじゃないかな
あるいはログがsjisと思い込んでるだけという線もありうる
もしくは書き出しがsjisになってないとか
可能性を挙げたらきりがない
コードをさらすのが解決への近道
2019/11/05(火) 22:19:23.14ID:HJJtuDtXa
汎用機のデータをRubyで処理とか懐かしいな
俺もやってたわ
結局転職するのが唯一にして最良のソリューションだから、あまり変なことに拘って時間を無駄にするよりAWSの勉強でもしたほうがいいよ
2019/11/05(火) 23:08:03.80ID:rzC/SdAh0
>>806
どういう環境を使って
どういう方法でエンコーディング指定をしていて
どうやって読み込んで、どこに出力して、出力結果をどうやって確認してるのか?
そういう情報が必要
Ruby関係なくエンコーディングに対する理解を深めたほうが良さげ

基本的には外部エンコーディングと内部エンコーディングを指定すれば問題なし
https://docs.ruby-lang.org/ja/2.6.0/class/IO.html#io_encoding
>File.read('sjis.log', mode: "rt:sjis:utf-8")
2019/11/06(水) 00:03:50.72ID:lUVlDRaka
>806です
解決しました。

エンコードにsjisではなくwindows-31Jを
指定すると半角カナを文字化けせずに読めました。

ファイルの文字コードは確実にsjisなのに、
なんでsjis指定で読み込んだら化けるのか分かりませんが、
ひとまず解決です。
2019/11/06(水) 00:05:50.13ID:lUVlDRaka
>>809
文字コードの指定は、
fileopen時にwindows-31Jを指定してうまくいきました。
2019/11/06(水) 02:48:09.37ID:normnvJW0
>>810
一般に、Shift_JIS(標準規格)とcp932(Windowsカスタム)は別物。
Rubyでもそうらしい。

https://docs.ruby-lang.org/ja/latest/class/Encoding.html#S_ALIASES
813デフォルトの名無しさん (アウウィフ FF2f-DOEl)
垢版 |
2019/11/06(水) 11:43:12.78ID:o3tEvZiYF
半角カタカナ ← 混ぜるな危険

30年くらい前の話
2019/11/06(水) 11:50:52.64ID:SpldiVNta
>>812
これを見てやっとわかりました。

rubyは真面目に解釈してこうなったんでしょうけど、
sjisファイルの読み込みでsjis指定では駄目となると
初心者泣かせですね。
2019/11/06(水) 11:52:59.82ID:SpldiVNta
>>813
漢字も駄目なのでやや難易度高しです。
816デフォルトの名無しさん (アウウィフ FF2f-DOEl)
垢版 |
2019/11/06(水) 12:34:12.51ID:o3tEvZiYF
いいがかりは止せ
SJISファイルじゃないんだから当然だろ
2019/11/06(水) 13:41:03.82ID:ZR40S1lI0
Windows では一般用語として、sjis と書くけど、
厳密には、sjisを拡張した、CP932 の事です。
だから、MS が独自に拡張した部分は、sjisではない!

漏れは、Windows で、PowerShell を使って、クリップボード処理を書いているけど、
Windows(CP932) ←→ Ruby(utf8) と、外部環境とruby内で、文字コードを変換している

クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

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
2019/11/06(水) 15:16:56.50ID:Z1mcKm+J0
別にMSがSJISを拡張したんじゃないけどな。
そもそもSJIS本家を作ったのがMS(+他)なわけで。

じゃあ拡張したのは誰かというとIBMとかNECだよ
まあそもそも拡張可能にしていんだけどな

MSなどがSJISを作った。IBMやNECが拡張した。
それらを取り込んでWindowssのCP932とした。というのが正しい流れ

ちなみにAppleもSJISを拡張してる。それはMacJapaneseと呼ばれる。
拡張部分がIBMやNECが拡張した部分とかぶってるので互換性がないんだけどな
2019/11/06(水) 15:39:23.65ID:Fx0hE3mY0
>Encoding.aliases.select {|_,v| v == "Windows-31J"}
{"CP932"=>"Windows-31J",
"csWindows31J"=>"Windows-31J",
"SJIS"=>"Windows-31J",
"PCK"=>"Windows-31J"}

Rubyでは"SJIS"も"CP932"もWindows-31Jのエイリアスなんだけど
SJISの指定をWindows-31Jに変更して解決する事があるんですねー(棒)
2019/11/06(水) 18:22:07.75ID:8bqr3nzy0
半角カナや大半の漢字はsjis範囲内だからきちんとsjisで読めばほぼ文字化けはないはず
つまりsjisで読めていなかったということ
2019/11/06(水) 19:09:22.79ID:wTTuQQRz0
>>819
エンコーディングは同じで文字集合が違うだけだからね
2019/11/06(水) 19:26:39.67ID:GIJSYcug0
リファレンスマニュアルの aliases -> Hash の例
"SJIS"=>"Shift_JIS" は間違いですね

Encoding::SJIS == Encoding::CP932 #=> true
Encoding::SJIS == Encoding::Windows_31J #=> true
Encoding::SJIS == Encoding::Shift_JIS #=> false
823デフォルトの名無しさん (アウウィフ FF2f-DOEl)
垢版 |
2019/11/06(水) 19:55:23.52ID:o3tEvZiYF
HTML (HTTP) で Encoding Shift_JIS って書くと怒られた思い出
2019/11/06(水) 20:51:13.84ID:Fx0hE3mY0
>>821
いやいやいや

文字集合と符号化方式を別々に選択できる状況ならともかく
「ファイル読み取り時のエンコーディング指定」とかの文脈で使うエンコーディングって用語は
狭義の符号化方式だけでなく文字集合も含めた上位の概念だから
2019/11/06(水) 21:02:49.31ID:wTTuQQRz0
上位って聞くと攘夷を思い出して
https://youtu.be/DvS_2K5MVzU?t=14
これを思い出して困る
2019/11/07(木) 00:17:25.40ID:gr4VkOsJ0
>>818
エンコーディングと機種依存文字をごっちゃにしてるやろ。
2019/11/07(木) 01:13:21.86ID:sEmiRyTj0
>>826
SJISは元から(文字集合を)拡張可能なのだから
同じSJISでも機種依存文字は発生する

エンコーディングはSJISもCP932も同じ
文字集合が違うだけ

理解できる?
2019/11/07(木) 02:15:26.05ID:QKW84+pO0
ガイジか?
2019/11/07(木) 02:20:56.81ID:sEmiRyTj0
理解できなくなったら、このようなレスをするんだよなw
2019/11/07(木) 02:31:19.18ID:sEmiRyTj0
例えば、Unicodeは文字集合(キャラクタセット、Coded Character Set)で
UTF-8とかUTF-16というのが符号化方式(エンコード、Character Encoding Scheme)

Unicodeも拡張可能でバージョン番号があって文字集合の内容が変わってる。
Unicode 1.0では文字集合の中の文字数は7,161文字
最新のUnicode 12.1では137,929文字も収録文字数が増えてる。

エンコーディングは変わっていないが文字集合は変わってるので
古いバージョンにしか対応してないコンピュータで、
最新のUnicodeを表示させると一部文字化けする

ただし管理団体の手によって収録文字は決められてるので
ShiftJISの頃のような各社バラバラで互換性がないってことにはならない
(ただし私用領域を使ってる場合は除く)
2019/11/07(木) 03:28:55.37ID:QKW84+pO0
外字と引っ掛けた洒落や
気い悪くしたんならすまんかった
2019/11/07(木) 08:58:28.91ID:debRpYWr0
>>830
>エンコーディングは変わっていないが文字集合は変わってるので
>最新のUnicodeを表示させると一部文字化けする

じゃ文字集合だけ更新すれば文字化け解消するのかな?
文脈理解せず無意味なレス繰り返してるとそりゃ外字言われるわ
2019/11/07(木) 11:38:26.80ID:LDERshfw0
そりゃ、新しい文字集合を使うと、新しい絵文字も正しく表示されるだろ?
2019/11/07(木) 12:52:46.05ID:sEmiRyTj0
正確に言えば、新しい文字集合に対応したフォントを使うとだね。

>>832の言う「文字集合だけ更新すれば」が意味不明だが
「仕様書を更新すれば、なにも変更はいらない」って意味なら
そんなことは誰も言ってない
2019/11/07(木) 20:03:36.67ID:1chRDjs40

最近だと令和対応が記憶に新しいな
836デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce)
垢版 |
2019/11/08(金) 15:49:09.19ID:bNpOstnB0
よく出てくる、&:メソッド名は、proc オブジェクトですが、
たまに出てくる、:メソッド名は、何ですか?

違いが、よく分からない

nums = %w(1 2 3 4).map!( &:to_i ) # 数値の配列

p nums.inject( :+ ) # 10
2019/11/08(金) 17:07:06.66ID:GYgLC2XDM
シンボル
実用的には単なる変更不可能な文字列と見做してよい
Rubyの初期からの大きな失敗の一つで、特に意味はない
2019/11/08(金) 18:26:17.63ID:q9/Fdf+e0
マニュアルの「シンボルの実装と用途」ってところを読むと良いと思う
https://docs.ruby-lang.org/ja/2.6.0/class/Symbol.html

&:to_iも":to_i"がシンボルで、そのシンボルが"&"で修飾されてるだけ
"&"はProcオブジェクトやto_procメソッドを持つオブジェクトをブロックとして渡す時に引数につける修飾記号
実行時にSymbol#to_procが呼ばれてそれがブロックとして渡される
2019/11/08(金) 18:31:13.82ID:q9/Fdf+e0
mapはシンボルを引数にとらないからmap(&:to_i)でブロックとして渡すけど
injectはシンボルを引数に取るからinject(:+)で実行できる
inject(&:+)としてブロックとして渡してもいいけど無駄処理が入るので普通はやらない
2019/11/08(金) 18:48:10.88ID:bNpOstnB0
漏れは、いつも、メソッドがシンボルを引数に取るかどうか、分からないから、

ひとまず、map!( :to_i ) みたいに、シンボルを渡して、エラーになったら、
map!( &:to_i ) と、& を付けることにしている
2019/11/08(金) 21:56:04.93ID:ZY78KkPA0
>>839
ホントにムダなんか?
シンボルを渡されても、内部でやはりブロックにしてそうだが。
2019/11/08(金) 22:54:04.88ID:u/1VJcWC0
ていうか、なんでそんな半端な設計なの?
injectのみシンボル受け取れるようにするメリットってなに?
2019/11/08(金) 23:51:37.33ID:sLgGgSr40
シンボル・・・型が無い言語で、型を気付かれないように書くための手段の一つ

型がないとされる言語でも、123は数字だが、"123"は文字というように
書き方で型をこっそりと記述している。
他にも/abc/は正規表現型、1.0は浮動小数点型などの定義方法がある。
シンボルはその一つで、:で始めることにより、シンボル型の値を書くことができる
2019/11/08(金) 23:57:04.08ID:q9/Fdf+e0
>>841
リファレンスにも書いてるけどシンボルとブロックだと扱いが違う
ただパフォーマンスにシビアな箇所じゃなければ特別気にするほどの違いはない
https://ideone.com/p5oW7Y
2019/11/08(金) 23:59:15.28ID:q9/Fdf+e0
>>843
その「型が無い言語」とか「型がないとされる言語」という理解は間違ってるよ
2019/11/09(土) 00:09:55.38ID:PhKUzZj90
シンボルと文字列を区別したのは失敗だったとmatzも言ってるな
streamという途中でぶん投げた新言語ではその区別がなくなってる
2019/11/09(土) 02:32:49.02ID:d5YSql6x0
>>845
反論は「あってるよ」だけで十分そうだねw
2019/11/09(土) 12:03:54.60ID:u1W/mjBNM
>>842
文字列リテラルよりも記述が簡便だからという理由により、本来文字列を使うべき用途にもシンボルが乱用された結果、
シンボルGCなどという頭の悪いものが誕生したりしたんだよな
誰がどう見ても完全に失敗
849デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce)
垢版 |
2019/11/09(土) 12:04:25.68ID:Ypm9+s0e0
シンボルは、識別子を表すために作られたのか、数字で始められないだろ。
下はエラーになる

p :"1" # OK

p :1 # エラー
2019/11/09(土) 12:13:45.55ID:X62CmnUE0
>>848
あいやそっちじゃなくてinjectがシンボルを引数にとってブロックみたいな処理ができるって方の話
mapとかは&がいるんだよね?
2019/11/09(土) 12:16:59.76ID:u1W/mjBNM
>>849
リテラルが書けないだけで、to_symすれば数字始まりのシンボルも普通に作れる
だから型が文字列と別である理由にはならない
2019/11/09(土) 12:19:33.79ID:u1W/mjBNM
>>850
すまん848は>>846に対するレスだ
&:が後付けだから一貫性がないだけで、深い意味はない
2019/11/09(土) 14:08:02.54ID:MvykJ39t0
>>850
sliceやchunkのような分割系以外は
ブロックがなければEnumeratorを返すのを基本ルールにしてるから
mapはシンボルを取る形がないんじゃないかな

injectはEnumeratorを返すものじゃないから
ちょっと気を利かしてシンボルを取る形を加えたのかもね
2019/11/14(木) 00:10:26.40ID:GMI1Y3D90
今年が2.7ってことは
2022年には3か2.10か
2019/11/14(木) 17:40:11.04ID:BO+nDgNta
Rubyで2値の差を得る簡単なメソッドとかないかな
def diff(num1, num2)
 max = [n1, n2].max
 min = [n1, n2].min
 (max - min)
end
p diff(-3, 7)   #=> 10
とかだと見てくれ良くないし無駄も多い
2019/11/14(木) 18:15:34.71ID:baSi3t2Kr
(num1 - num2).absじゃあかんのか?
2019/11/15(金) 01:07:32.58ID:em064pO70
オラもそう思った
2019/11/15(金) 07:32:43.98ID:1PuPU5S7a
>>854
最初の小数点の次の数は二桁以上にしない縛りなかったっけ?
2019/11/21(木) 19:57:13.88ID:0YdMrNdaa
Rubyの平均年収は全言語中最低
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/01068/111100004/
2019/11/21(木) 23:28:58.12ID:tUWUNbqx0
そんなに年収ほしければCOBOLやれば?
861デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 01:26:32.66ID:DazDco060
今月までプログラミングに一切触れたことのなかった初心者です
引数を配列にして
メソッド内で変数aに引数を代入
その後変数aの0番目にnを代入すると引数の0番目まで巻き添えでnになってしまうんですがそういう仕様なんでしょうか?
配列だけで起こる現象のようなんですが
method(0,1)と呼んで
def method(array)
a = array
a[0] = 10
puts a
puts array
end
とするとaもarrayも[10,1]となってしまいます
862デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 01:27:53.59ID:DazDco060
method([0,1])でした
失礼しました
2019/11/23(土) 03:03:35.14ID:8xX8HZu80
>>861
そういう仕様です

https://magazine.rubyist.net/articles/0032/0032-CallByValueAndCallByReference.html
864デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 10:59:21.53ID:DazDco060
>>863
ありがとうございます
アドレスの参照先をコピーしてるだけだったんですね
理解しました
調べたところMarshalで書き出せばバイト値もコピーできるようなのでこの方法でいきます
2019/11/23(土) 14:01:09.34ID:8xX8HZu80
>>864
使い方にもよるのかもしれんが階層が浅くて固定ならdupで十分じゃない?

foo = [[1,2], [3,4], [5,6,7]]
bar = foo.dup

bar[0] = [9,9,9]
foo #=> [[1, 2], [3, 4], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4], [5, 6, 7]]

bar[1].push 200
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4, 200], [5, 6, 7]]

bar[2] = bar[2].dup.push 300
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
bar #=> [[9, 9, 9], [3, 4, 200], [5, 6, 7, 300]]

階層が深くて手動でdupするのが大変ならdeep_dup

require 'active_support'
require 'active_support/core_ext/object/deep_dup'

baz = foo.deep_dup
baz[1].push 300
foo #=> [[1, 2], [3, 4, 200], [5, 6, 7]]
baz #=> [[1, 2], [3, 4, 200, 300], [5, 6, 7]]
2019/11/23(土) 20:53:58.93ID:fygFNKSM0
年収は、5大SIer, Java などの土方系・奴隷、多重請負構造では、1社間に入る度に、3割抜かれる!

顧客が100万円払っても、間1 が、30万円抜いて、
自社には70万円で来るので、自分の給料は、25万円ぐらいw

顧客が100万円払っても、間1 が、30万円抜いて、間2 が、20万円抜くと、
自社には50万円で来るので、自分の給料は、20万円ぐらいw

だから、ハローワークのIT 講座でも、奴隷になる2次請け以降に、就職しないように言われる。
Javaの平均年収が600万円なら、300万円の奴隷と、900万円の大企業の奴隷使いがいる。
元々、大企業の人は、給料が良いだけ。
給料は言語に関係ない。労働形態による!

抜きを警戒する人は、派遣なら3割抜かれて、後は自分の給料になるけど、
仕事がない期間の保証がない。
それか、フリーランスのエージェントで、1割ぐらいの抜きを探すか

一方、Ruby などの自社サービス系は、多重請負構造じゃないから抜かれない
2019/11/23(土) 21:01:37.75ID:fygFNKSM0
C/C++ 以外のほとんどの言語では、参照がコピーされるだけ!
インスタンスを作っていない

だから、実際のインスタンス数は、clone, dup, new された回数を、チェックすれば良い
868デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
垢版 |
2019/11/23(土) 22:03:14.93ID:uAZdpObm0
土方系の仕事って何ですか
2019/11/23(土) 22:07:51.58ID:jA/F562DM
>>866
そんなRubyの平均年収は全言語中最低
https://tech.nikkeibp.co.jp/atcl/nxt/column/18/01068/111100004/
2019/11/24(日) 01:52:22.27ID:iwyjZSbL0
>>868
顧客に価値を提供すること
2019/11/24(日) 02:00:18.56ID:2vFps37N0
土方にはなるな
SIerにはなるな
2019/11/24(日) 02:02:59.56ID:Q6cceAnpa
しかし現実には大半のRubyistよりもSIerのドカタの方が給料は高いのであった
2019/11/24(日) 04:46:27.73ID:kT5P2hJJ0
給料だけでもないやろ。
つーか、どうでもいいから。んな話は。
2019/11/24(日) 15:33:55.35ID:Gqvqz24c0
要件定義、外部設計を受注できるプライマリの
会社に行かないと高収入はないよ。
内部設計、プログラミングは下流工程だから下請けに流される。

3割抜くとか言うが、粗利3割はどの業界でも普通だし。
875デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
垢版 |
2019/11/24(日) 18:51:34.90ID:ednGVdun0
言語を知っている。いや知っているだけで金になる仕事はないから
2019/11/24(日) 23:07:40.54ID:Q5WFFNoW0
上流工程が、下級工程の給料を決める

だから、YouTube で有名なKENTA が、
クライアント側ではなく、サーバー側・構築運用へ行った

今世紀最大の起業家、Ruby でVagrant を作った、
HashiCorp のMitchell Hashimoto も、Go でTerraform を作った!

富・技術革新が集中する所に、Hashimoto は行く!

実際に、車のメーカーの企業の時価総額は変わらないけど、
アマゾン・Google などのサーバー屋は、100兆円企業になってる!
2019/11/25(月) 04:07:09.54ID:gVPe0v4t0
>>876
日本のIT企業はほぼ国内事業しかやってないし
規模も小さいからどうしても時価総額は上がらないんだろうね
あと大したことやってない
878デフォルトの名無しさん (ワイーワ2 FF63-KqLj)
垢版 |
2019/11/25(月) 12:33:00.08ID:pjJuONFZF
>上流工程が、下級工程の給料を決める
>クライアント側ではなく、サーバー側・構築運用へ行った

上流ってそういう意味か?ωωω
2019/11/25(月) 16:27:01.28ID:Lb2w9ntUM
Amazonの売上の大半はEC
Googleの売上の大半は広告
どっちも実際には上物で稼いでいて、AWSやGCPの売上比率は15%程度に過ぎない
キチガイの目に映る世界と実態の間にはは大きな乖離があることがわかるだろう
2019/11/25(月) 17:19:36.92ID:vZmdeQAZ0
まあ利益出してるところじゃなくて"売上"というのなら、
ECが一番やろうな。そりゃ
881デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/11/28(木) 00:37:50.62ID:WsOSEkue0
Windows10, WSL, Ubuntu 16.4 で、
libruby2.3, ruby2.3 の更新が来た!

Ruby2.3 は、もうサポート切れだけど、まだ誰かがサポートしてるw
Ubuntu チームか
2019/11/28(木) 17:42:14.05ID:dnvj190uM
ビルドしてるだけやろ。
883デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/11/30(土) 04:33:29.25ID:HbGyzSLF0
Vagrant, Chef, RSpec, Serverspec などの、

DSL の書き方だけができる、ライブラリ・フレームワークはないの?
2019/11/30(土) 07:04:52.88ID:WKFbtD9B0
>>883
なんか面白そうだね?
どういう事?
2019/11/30(土) 09:10:10.03ID:HbGyzSLF0
環境の構築テストなどを、すごく簡潔に、宣言っぽく書いている

例えば、ファイル・ディレクトリなどを作る場合でも、エラー処理もなく、1行で書いてる。
Maven, Gradle も、こういう宣言っぽい感じかな?

便利だなと思って
2019/12/02(月) 07:50:51.40ID:sFARCTmI0
k-sato_at_oiaxって実はもう死んでたりするの?
887デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/12/02(月) 22:47:05.03ID:H5nAExhM0
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7

この本が、株式会社オイアクス監修だろ。
著者2人は、株式会社ルビキタスにも所属している
2019/12/03(火) 09:08:31.07ID:I9YoNGrF0
義務教育にrubyが組み込まれなかった時点でrubyは終わりだろ
ポジション取られたのがscratch

ついでにオブジェクト脳の本の社長起立プログラム、あれ最高にキモイ
889デフォルトの名無しさん (ワッチョイ 232c-+J45)
垢版 |
2019/12/05(木) 09:12:33.74ID:fTTGdtWT0
Windows のPowerShell で、1-liner で、webrick サーバーを立てるのに、

上だとエラーになって、
下のように、%Q("./") でクォートすると、正常に動くのは、なぜでしょう?

どういうカラクリなの?

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => "./", :Port => 8888).start'

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => %Q("./"), :Port => 8888).start'
2019/12/05(木) 09:19:26.64ID:wT3fRGGOr
windowsで-e の後にシングルクォーテーション使ってるからでしょ

ruby -e 'puts "hello"'
でもエラーになるぞ
2019/12/05(木) 09:20:45.92ID:wT3fRGGOr
ちな
ruby -e 'puts \"hello\"'

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => \"./\", :Port => 8888).start'
なら問題ない
2019/12/05(木) 10:48:53.10ID:fTTGdtWT0
ruby -e 'puts "hello"'
は、コマンドプロンプトではエラーにならないが、
PowerShell ではエラーになるw

ruby -e 'puts %Q("hello")'
は、コマンドプロンプト・PowerShell の両方で正常

ruby -e 'puts "hello"'
が、コマンドプロンプト・PowerShell から、Rubyに渡る際に、どう変換されるのか?

そのカリクリを知りたい
893デフォルトの名無しさん (アウウィフ FFa9-MVf8)
垢版 |
2019/12/05(木) 10:57:49.63ID:IbmhSLeWF
WSL使え

あるいはWindowsのコマンドプロンプトなら
ruby -e "puts 'hello'"
2019/12/05(木) 11:11:38.90ID:wT3fRGGOr
だから'使うなっつってんだろアホか
895デフォルトの名無しさん (ワッチョイ 7501-MVf8)
垢版 |
2019/12/05(木) 11:21:52.16ID:q0kDwfyl0
製造者がWindowsが憎いMicrosoftが憎いと言ってるのに、わざわざWindows上で使わなくても。
2019/12/05(木) 21:12:26.41ID:h+M+c6Hd0
コマンドプロンプトのクォート解釈は、控えめに言ってメチャクチャだからな。
昔のものだし、しかたない。

それに比べたら、PowerShellははるかにまともで現代的。
897889 (ワッチョイ 232c-+J45)
垢版 |
2019/12/05(木) 23:40:17.64ID:fTTGdtWT0
まとめ。
Windows10 で、1-liner のruby -e で順に、1〜3 を実行した場合

1. 'puts "hello"'
2. 'puts %Q("hello")'
3. "puts 'hello'"

1〜3は、コマンドプロンプトと、WSL, Ubuntu 16.04 では、
hello, "hello", hello

PowerShell では、
エラー, "hello", hello
898デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:14:28.56ID:uUae0oO6F
pythonは””も’’も意味一緒だが
rubyは””と''は微妙に意味違うよな
899デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:16:15.68ID:uUae0oO6F
'puts %Q(hello)'
あるいは
"puts %Q(hello)"
で良いのに
2019/12/06(金) 12:46:17.58ID:IktivxOB0
>>899
まとめ。
Windows10 で、1-liner のruby -e で順に、1〜2 を実行した場合

1. 'puts %Q(hello)'
2. "puts %Q(hello)"

コマンドプロンプト・PowerShell、WSL, Ubuntu 16.04 のすべてで、
hello
と出力された!
2019/12/06(金) 20:18:06.92ID:nE0DnhAQa
>>898
微妙というか、ダブルクォートは中身を命令として実行し、
シングルクォートは中身を文字列として処理する。

全然違うぞ
2019/12/06(金) 21:53:56.86ID:P1BfZN9u0
‘‘
’’
””
‘’

眼力チェック
2019/12/06(金) 23:26:41.64ID:IktivxOB0
1-liner を、" " で囲むと「$ \ ` !」などの機能が働くので、
それよりも強いエスケープである、' ' で囲む

' ' で、すべての特殊文字を無効化して、シェルに解釈させないため
904デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/07(土) 14:11:49.26ID:qPdUR/SgF
>>902
``
2019/12/07(土) 16:01:04.83ID:9WC+Jh540
>>903
それが結局、シェルによるっつー話やろ。
906デフォルトの名無しさん (ワッチョイ 232c-+J45)
垢版 |
2019/12/09(月) 06:17:52.14ID:+FpDkG8n0
rdoc の説明を読んでるけど、難しい

皆、自作ライブラリをrdoc用に書いてるの?
2019/12/09(月) 06:52:14.04ID:+FpDkG8n0
RDoc よりも、YARD の方が簡単かな?
908デフォルトの名無しさん (ワッチョイ 62ad-I3wE)
垢版 |
2019/12/17(火) 13:35:16.51ID:ObjwLX/w0
配列に0から任意の整数を重複なく格納するメソッドを作ってみたんですが、戻り値がnillになってしまいます
どうすれば解決できますか?
def random_sort(array, n)
array = []
judgement_array = [false]
i = 0

while(i < n + 1)
array[i] = rand(n + 1)
k = 0
while(k < i)
judgement_array[k] = array[k] == array[i]
k += 1
end
next if judgement_array.any?
i += 1
end
end

array1 = []
p random_sort(array1, 9)
909デフォルトの名無しさん (アウウィフ FF3b-uKDx)
垢版 |
2019/12/17(火) 13:41:59.97ID:rApV4krMF
shuffle! shuffle!
910デフォルトの名無しさん (ワッチョイ 62ad-I3wE)
垢版 |
2019/12/17(火) 14:23:19.78ID:ObjwLX/w0
>>908です
定義の最後の部分で戻り値を記述するのを忘れており
記述したら解決しました
2019/12/17(火) 16:20:58.58ID:kLn+0u7yM
ズコー
2019/12/17(火) 16:47:49.10ID:o3ShK0md0
p [*0..9].shuffle
913デフォルトの名無しさん (ワッチョイ efd2-LrQS)
垢版 |
2019/12/18(水) 17:27:34.36ID:JutxhN8f0
digitsメソッドが返す配列を元の数値に戻すには
自分で計算するしかないのかな
何かついになるメソッドがないかと
探してみたけどわからなかった
2019/12/18(水) 22:00:34.91ID:LSlKy/12r
ないね

p [1, 1, 0, 1, 'hoge'].to_i(2) # => 11
みたいなString#のあってもいいよね
2019/12/18(水) 22:01:10.07ID:LSlKy/12r
誤爆

みたいなString#to_iに相当するメソッドがあってもいいよね
2019/12/18(水) 23:03:33.03ID:j3JURanB0
これの逆を考えるか

123.to_s.chars.map(&:to_i).reverse
123.digits
#=> [3, 2, 1]

他には、Array#pack、String#unpack とか
2019/12/18(水) 23:17:07.42ID:N9ghlCsW0
自分で計算というか.reverse.join.to_iすればいいよね?
2019/12/19(木) 01:41:56.39ID:GB4b8bgW0
見た目シンプルだけど一旦文字列を経るのがモヤっとする
かといってreverse_each.inject(0){|v,d|v*10+d}とかやると何やってるのか分かりづらいしなあ
2019/12/19(木) 11:46:12.90ID:rpR+KBR90
>>914
Math::BaseCalc - Convert numbers between various bases - metacpan.org
https://metacpan.org/pod/Math::BaseCalc

昔探したがperlにはあるがrubyにはないtpyhonにも無い
なんで無いのか分からないほど便利な関数なのになんで無いんだ?
920デフォルトの名無しさん (ワイーワ2 FFdf-yOET)
垢版 |
2019/12/19(木) 12:17:12.46ID:+cpLTGtZF
tpyhonは知らんけどpythonにはnumpyでpackbitsがあるんやで
2019/12/19(木) 14:26:11.65ID:snKgfw1x0
>>919

>>914が言ってるのは単なる基数の変換じゃないよ
基数の変換はto_s, to_iに2~36までなら直接渡せるからそれで済ませることが多い
もっと大きい基数が必要になってもinjectやmapで簡単に変換可能だから
いくつかgemあるけど人気ない
2019/12/19(木) 18:11:13.04ID:4hkxYlHE0
こういう基本的なものは、言語そのものに内蔵しないといけない
gem作っても流行らない
2019/12/19(木) 19:30:39.32ID:xlnTqgd4r
だな
これだけなら自分で書いた方が速いもんね
2019/12/19(木) 19:39:22.26ID:NWHUALIi0
基本的でもないやろ。
2019/12/19(木) 21:39:52.45ID:snKgfw1x0
2/8/10/16進数の変換は基本的だろうけど
それはInteger#to_s, String#to_i, Integer()で十分

遊びで作るようなプログラムを除くと
それ以外で必要なのってBase64くらいでそれは別途用意されてる
2019/12/20(金) 00:26:43.84ID:Eyw3tJ4L0
digits/undigits 作ってみた (baseに配列が使える)
https://ideone.com/QJgsBR

[1, 1, 0, 1, 'hoge'].to_i(2) # => 11
123456789.to_i([24,60,60]) #=> [9,33,21,1428]
[9,33,21,1428].undigits([24,60,60]) #=> 123456789
2019/12/21(土) 23:51:56.40ID:u8N2YXrT0
digits/undigits 拡張してみた (baseをbit数に出来る,負の数で符号拡張)
https://ideone.com/xvXVfv

0b0011_100_01.my_digits([4,3,2],1) #=> [1,4,3]
[1,4,3].undigits([4,3,2],1).to_s(2) #=> "1110001" -> 11_100_01
0b0011_100_01.my_digits([-4,-3,-2],1) #=> [1,-4,3] (-4:符号拡張)
[1,-4,3].undigits([4,3,2],1).to_s(2) #=> "1110001"
2019/12/22(日) 00:15:06.50ID:O05uH48x0
さて問題です。>>926-927を説明なしに理解できますか?
929デフォルトの名無しさん (ワイーワ2 FFdf-hPjh)
垢版 |
2019/12/22(日) 13:06:26.92ID:6Us+wzVLF
質問です
Ruby on Rails で SQLite は使えますか?
使えるならどうやれば良いですか?
2019/12/22(日) 13:15:06.84ID:dEobfqv4a
>>929
https://www.google.com/search?q=Ruby+on+Rails+で+SQLite+は使えますか?
2019/12/22(日) 19:43:26.79ID:u+b66RrE0
SQLite, MySQL, PostgreSQL の、3大DB が使える!
MariaDB は知らないけど

ただし、SQLite は開発用専門で、本番では使えない!
2019/12/22(日) 22:51:56.37ID:bTmhsrle0
>>931
MariaDBもきっとだいたいだいじょうぶ。
まだまだMySQL互換だから。
2019/12/22(日) 23:02:08.75ID:O05uH48x0
>>931
SQLiteはiPhoneで重要な機能を提供してるのも知らないの?w
2019/12/23(月) 00:32:47.68ID:U5hT/i5g0
>>931 >>932
ドライバーが提供されてればMariaDBに限らずどのRDBでも使えるぞ

>>933
SQLiteは高い並行性が求められるWebアプリには適さない
Rails用のDBという文脈では>>931のSQLiteに対する認識は間違ってない
2019/12/23(月) 00:44:18.94ID:PWVJIOWbr
>>933
自分は文脈読めないバカですって自己紹介してるようなもんだな
2019/12/23(月) 13:18:52.98ID:+KUE/8IiM
まあ実際にはRailsアプリでSQLiteを使うことなんて無いから、使えないと考えても差し支えない
DBMSの癖に依存しないアプリなんて現実には不可能なので、テストであっても最初からプロダクションと同じDBMSを使えばよい
937931 (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/24(火) 03:27:44.81ID:3XzgnZW70
SQLite は、ブラウザがURL などを保存するのに使っている

ただ、Rails では開発用専門で、本番では使えない
2019/12/24(火) 10:20:24.51ID:a69VsF/md
Dockerが主流になるまでは、ぽん置きで使えるようになる簡単なツール程度だと使ってたな、俺は。
2019/12/24(火) 19:19:54.79ID:fkiwsPE50
性能的にも信頼性的にも、御一人様用なんだろ。
940デフォルトの名無しさん (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/25(水) 20:06:31.05ID:ZI663GBY0
C:/Ruby24-x64/lib/ruby/2.4.0/fileutils.rb を参考にして、
module 内 moduleの、DryRun みたいなモジュールを作った!
$stdout/$stderr で、出力先を切り替える

module MyFileUtils
@fileutils_output = $stdout

module_function
public

extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end

module DryRun
include MyFileUtils
@fileutils_output = $stderr

module_function
public

extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end

MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
MyFileUtils.f( 1, 2, a: 8, b: 9 )
2019/12/25(水) 20:11:42.34ID:ZI663GBY0
出力は、

MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )

#<IO:<STDERR>>
1
2
{:a=>8, :b=>9, :noop=>true, :verbose=>true}

MyFileUtils.f( 1, 2, a: 8, b: 9 )

#<IO:<STDOUT>>
1
2
{:a=>8, :b=>9}
2019/12/25(水) 20:18:49.19ID:c8DC0dTUr
ここはお前の日記帳じゃねえんだよ
2019/12/28(土) 13:49:43.58ID:TvplFsgk0
ビット演算のビット反転について質問なんですが
(~0b1010).to_s(2) の戻り値が"-1011"なのは何故ですか?
反転なので単純に "0101" となるか、補数表現なら"0110" だと思ったのですが
2019/12/28(土) 14:35:53.34ID:AcwxZTaB0
# ~n == -n-1
~0b1010 = -0b1010-1 = -0b1011
2019/12/28(土) 14:44:44.17ID:TvplFsgk0
>>944
そもそものビット反転の定義を知らずに悩んでました
ご回答ありがとうございました
2019/12/28(土) 15:59:19.72ID:IyT0aSo9r
>>945
~(0b...00001010) = (0b...11110101) = -11
947デフォルトの名無しさん (ワイーワ2 FF7a-v1fK)
垢版 |
2019/12/28(土) 16:00:06.34ID:5Cng//AmF
0b1010
32bitとして
0000 0000 0000 0000 0000 0000 0000 1010

~0b1010
1111 1111 1111 1111 1111 1111 1111 0101

= -1011
948デフォルトの名無しさん (ワッチョイ f12d-vQnI)
垢版 |
2019/12/28(土) 16:13:08.13ID:VPT4/FzX0
QiitaかHatenaでやれ
2019/12/28(土) 16:23:21.64ID:b3ohKRMf0
>>947
じゃ
1111 1111 1111 1111 1111 1111 1111 1111
を反転させると?
2019/12/28(土) 16:24:38.25ID:lWCFWx/Q0
0000 0000 0000 0000 0000 0000 0000 0000
2019/12/28(土) 16:38:44.50ID:b3ohKRMf0
>>950
残念!

pry> ? Integer#~
or
irb> help ‘Integer#~’
2019/12/28(土) 16:49:11.58ID:lWCFWx/Q0
>>951
今はintegerの話なんかしてない
2019/12/28(土) 17:59:01.86ID:TvplFsgk0
そうか
0b1010 = 0000 0000 0000 0000 0000 0000 0000 1010
~0b1010 =1111 1111 1111 1111 1111 1111 1111 0101
(足すと)= 1111 1111 1111 1111 1111 1111 1111 1111

これに0000*7 0001(10進数で1)を足すと0になるので補数表現で10進数における- 1
だから  0b1010 + ~0b1010 = - 1
~0b1010 = - 0b1010 - 1

0b1010は10進数で10なので~0b1010 = - 11
これを補数表現なしの2進数で表すと
~0b1010 = - 1011
よって一般に ~n = - n - 1 と言えるのか
2019/12/28(土) 18:00:57.41ID:TvplFsgk0
Rubyとは全く関係ない質問になって申し訳ない
2019/12/28(土) 20:50:34.75ID:q2Ylf9qja
有明セントラルタワー

痰吐きジジィのチンポが18階の(どこの島かは言わないよ)20代の女の娘のオマンコに
入って行くウゥウウウーーー!
http://o.5ch.net/1lejw.png
2019/12/28(土) 21:36:45.32ID:b3ohKRMf0
>>952
予想外の言い訳でワロタww
2019/12/28(土) 23:39:23.63ID:AcwxZTaB0
>>953
2補数の符号反転は
-n == ~n + 1
だから
~n == -n - 1
# 上だけ覚えれば十分
2019/12/28(土) 23:49:13.11ID:u9ordgE/0
補数表現には2の補数と1の補数があるって知らないのかな?
補数表現とだけじゃどちらかわからんだろ

それに反転はそのままビットを反転しただけのこと
これは1の補数表現と等しい
ビットを反転させるだけなんだからマイナスとか関係ない
マイナスが出てくるのは2の補数表現の話だけ
959デフォルトの名無しさん (アウアウエー Sa6a-v1fK)
垢版 |
2019/12/29(日) 00:43:56.25ID:jG5lme5Ea
どうせ知らないと思うけど
10の補数も9の補数も8の補数もあるぞ
960デフォルトの名無しさん (アウアウエー Sa6a-v1fK)
垢版 |
2019/12/29(日) 00:46:58.08ID:jG5lme5Ea
>マイナスが出てくるのは2の補数表現の話だけ

違う
それは君が2の補数の負数に慣れ過ぎてそう思ってるだけ
1の補数を負数とする定義も普通に存在する
2019/12/29(日) 01:30:36.45ID:KIjz0jVz0
1の補数・2の補数とかは、基本情報処理資格の初歩だろw

教科書を読め!
2019/12/29(日) 01:40:35.53ID:Q2ohrJia0
>>960
ふつうか?ホントか?
2019/12/29(日) 11:49:53.70ID:yqbBnK7b0
>>962
本当に普通ですね…
2019/12/29(日) 11:58:05.67ID:/K389dkkM
話としてふつうなのはわかるが、実装としては見たことがないなあ。
965デフォルトの名無しさん (アウウィフ FF3a-v1fK)
垢版 |
2019/12/29(日) 13:55:36.09ID:49gQrlWfF
そりゃ便利な方が使われるわ
存在するのと使われてるか普及してるかは関係無い
utf-7とかおまいら使ってないやろ
2019/12/29(日) 14:51:01.25ID:qJvaFsYpa
IP のチェックサム -- 1の補数演算
http://4049.nwr.jp/comp/ip_csum.html
967デフォルトの名無しさん (ワイーワ2 FF7a-v1fK)
垢版 |
2019/12/30(月) 11:12:31.07ID:WAqdspciF
1の補数があまり使われない理由は
計算が面倒なんじゃなくて
0が+-二つあるのがもったいないからって理由だっけ
2019/12/30(月) 14:31:59.58ID:w8cwRlld0
>>967
0が2つあるから循環桁上りの考慮が必要
その考慮がいらない2の補数のほうがALUがシンプルになるから
2019/12/30(月) 17:20:52.00ID:u7z+ALKO0
>>967
加算と減算を同じ回路で実行できるから。
2019/12/30(月) 17:21:58.90ID:u7z+ALKO0
あ、2の補数のほうが有利なところのこと。
971デフォルトの名無しさん (アウウィフ FF3a-Qqkg)
垢版 |
2019/12/31(火) 19:37:02.21ID:z/4e8Z8bF
すみません、初学者で苦労してまして・・
Rubyxlでエクセルのテンプレートを編集したく

そこで、特定のセルをコピーして特定のセルに貼り付ける
操作を行いたいのですが、ネットで検索しても全くヒットせず
有識者のかたいらっしゃれば、ご教授いただけましたら幸いです。。
2019/12/31(火) 20:20:29.97ID:ozxOKIBe0
Ruby で、Excel, Libre Office とか、やってる人いるの?

漏れは、CSV モジュールしか知らない

CSV で、データしか処理しない。
見た目の指定は、難しそう
2019/12/31(火) 20:55:42.15ID:ozxOKIBe0
Ruby で xlsx を編集する
http://secret-garden.hatena@blog.com/entry/2017/09/21/174348

rubyXL についての記事

@ を取り除いてください!
はてなブログなので一応、5ch のアクセス禁止を警戒して、URL を書きません!
974デフォルトの名無しさん (ワッチョイ ed63-av3+)
垢版 |
2020/01/01(水) 01:22:54.75ID:m6l/1R8h0
>>973
ご丁寧に有難うございます!!
2020/01/01(水) 02:42:07.71ID:AGxbyfJN0
>>971
rubyxlというのは使ったことなくて知らないが、もっと低レベルなやり方
require 'win32ole'
でexcelシートの読み込みはやっている
win32oleでぐぐればやり方はなんとかなると思う
2020/01/01(水) 10:46:50.28ID:zZ41nBr+0
本当にxmlでやりたいんなら

まずはxmlの拡張子をzipにして解凍して
それっぽい本体のxmlファイルを探し出して
テキストファイルで開いて見てみる

こりゃーRubyは関係ないな
977デフォルトの名無しさん (アウウィフ FFa5-p4uH)
垢版 |
2020/01/01(水) 11:27:28.59ID:tqBP4ADqF
ぶっちゃけ質問者の利益を最優先で回答すると
python で win32com 使うのが最善解
2020/01/01(水) 12:18:16.48ID:06rhhv4Sa
PythonではWindowsにも人権があるからな
本人が今後辛い思いをしないためにも、はっきり言うよ
Ruby村では、 ド ザ に 人 権 は な   い
出 て い け
2020/01/01(水) 13:29:11.77ID:ak/J1wbe0
WSLでRuby村に仲間入り♪
2020/01/01(水) 15:09:02.89ID:DUq05mSq0
>>971
require 'rubyXL'
require 'rubyXL/convenience_methods'

book = RubyXL::Parser.parse('input.xlsx')
sheet = book[0]
sheet[0][0].change_contents(sheet[0][1].value) #B1の値をA1にコピー
book.save('output.xlsx')

書式をコピーしたい場合や計算式をコピーしたい場合は別途対処が必要
まとめてコピーしてくれる便利メソッドはないっぽいので必要なら自作
Windowsならwin32oleでCOM使ったほうが簡単
2020/01/01(水) 15:12:15.44ID:DUq05mSq0
VBAの代わりに使うようなクライアントサイドの用途なら
Python + xlwingsが知ってる限りは一番使いやすい

RubyからもPyCallかませば使えるがExcel処理はPython + xlwingsで書いて
それをPyCall経由でやり取りするのが簡単
2020/01/01(水) 16:14:04.42ID:Vy5hpr3FM
C#のがええんちゃうか?
983デフォルトの名無しさん (ワッチョイ ed61-BfT8)
垢版 |
2020/01/01(水) 19:00:41.76ID:mlJgbHp20
>>981
Excelでちょっと始めて、データが大きくなってきたら、そのままpandasに移行。
もう勝ち目ないな。
2020/01/02(木) 02:30:30.13ID:rEYXT5csM
>>983
ExcelとPandasの用途の違いも分からないのかw

最近のpython推しは低脳ばっかだなw
2020/01/02(木) 08:11:50.12ID:zXXNv/DU0
>>979
随分まえからCygWinでこの村には出入りしとるが
なーんも面白いもんなんか無いぞ?
986デフォルトの名無しさん (ワッチョイ 42a5-aiXr)
垢版 |
2020/01/03(金) 09:09:03.63ID:+DQqbAVf0
rubyって全てがオブジェクトなところがいいですよね
2020/01/03(金) 09:44:57.23ID:+RiBlMC+r
メソッドはオブジェクトじゃないぞ
2020/01/03(金) 13:15:01.02ID:CVCs++Sx0
Ruby・・・値型はオブジェクトだが、メソッドはオブジェクトでない。
JavaScript・・・値型はオブジェクトではないが、メソッドはオブジェクト。
         ただし値型に対応するオブジェクト型が存在する。例 Number(1)

どっちが良いんだろうなw
値型はRubyの方が便利なんだろうけど、JavaScriptの方が最適化できるだろうし
2020/01/03(金) 13:33:30.46ID:/EnEVvpc0
どっちでいいよ。
使いやすければ。

個人的には、どっちもあんまりだけどな!
2020/01/03(金) 17:45:42.37ID:e4Snrs1J0
>>987
Methodクラスがあるよ
2020/01/03(金) 19:11:50.30ID:+RiBlMC+r
>>990
Methodクラスのオブジェクトはメソッドじゃないぞ
2020/01/03(金) 20:21:33.31ID:e4Snrs1J0
>>991
それがどうしたの?

Methodクラスのインスタンス(=オブジェクト)は
メソッドとして扱うことができる
2020/01/03(金) 20:24:39.88ID:+RiBlMC+r
>>992
>>986の言っていることは間違っているということを指摘しているだけで実用に関しては名にも言及していないのにお前はなんでそんな必死なの
2020/01/03(金) 20:38:16.32ID:e4Snrs1J0
ここまでの流れを関数型言語スレに当てはめると、こんなところ

>>986:モダンな関数型言語において、すべてが第一級市民なところがいいですね
>>987:いや、関数適用は第一級市民じゃないぞ
>>990:関数 apply 定義すればいいよ
>>991:関数 apply は適用じゃないぞ

- fun succ x = x + 1;    (* 関数 succ を定義 *)
val succ = fn : int -> int
- succ 2;    (* 関数 succ に 1 を適用 *)
val it = 3 : int    (* 2 + 1 = 3 により、結果は 3 *)
- fun apply f x = f x;    (* 関数 apply を定義 *)
val apply = fn : ('a -> 'b) -> 'a -> 'b
- apply succ 2;    (* 関数 apply を介して、関数 suuc に 1 を適用 *)
val it = 3 : int    (* 結果は同じ *)
2020/01/03(金) 20:45:58.77ID:+RiBlMC+r
>>986「rubyって全てがオブジェクトなところがいいですよね」
>>987「メソッドはオブジェクトじゃないぞ」
>>990「Methodクラスがあるよ」 ←は?
>>991「Methodクラスのオブジェクトはメソッドじゃないぞ」
>>992「それがどうしたの?」 ←は?は?は?

マジで意味不明だわコイツ
馬鹿すぎる
2020/01/03(金) 21:03:06.07ID:e4Snrs1J0
>>993
間違っているという指摘、そのものが誤りだということ

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

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

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

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

だったとして、それでもなお>>987を擁護する?
2020/01/03(金) 21:10:31.51ID:+RiBlMC+r
はいはい
本物の障害児やんこいつ
2020/01/03(金) 21:10:58.90ID:+RiBlMC+r
間違いをちょっと指摘しただけでガイジに粘着されたでござる
2020/01/03(金) 21:11:52.81ID:+RiBlMC+r
「素数は全部奇数だよ」
「いや2は偶数だろ」
ってやりとりに文句付けてるのと一緒だからなお前
2020/01/03(金) 21:11:59.61ID:+RiBlMC+r
1000
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 377日 16時間 28分 25秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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