Ruby 初心者スレッド Part 65

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f80-JI52)
垢版 |
2018/12/22(土) 04:43:34.03ID:84E3pYZa0
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で

前スレ
Ruby 初心者スレッド Part 64
https://mevius.5ch.net/test/read.cgi/tech/1535797516/

るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/

Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/

逆引きRuby
http://www.namaraii.com/rubytips/

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
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
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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