21/02/15 13:06:36.01 2czEo7/ia.net
イーキュー
イーキューエル
イコール
74:デフォルトの名無しさん
21/02/15 21:15:47.96 oDLt9usUr.net
イークワル
75:デフォルトの名無しさん
21/02/16 21:32:31.57 fxt1OOtg0.net
>>72
rubyやり始めたところで、eqlがイコールって気づかなかった。短い方のイコールって良いですね!ありがとうございます。
>>73
自分もイーキューエルだて頭の中で読んでた
>>74
なんでやーーー!!
76:デフォルトの名無しさん
21/02/16 22:13:45.11 fxt1OOtg0.net
すみません、質問です
hash生成時に、
str={"key1" = "val1"}
ではエラーになる理由を教えてください。
77:デフォルトの名無しさん
21/02/16 22:25:37.65 F9q4wvox0.net
p hash = { "a" => "b" } #=> {"a"=>"b"}
全角の{}を使うな。
文字列以外は半角英数字のみ
78:デフォルトの名無しさん
21/02/16 22:28:16.05 fxt1OOtg0.net
>>77
すみません、携帯からで全角と半角を間違えてしまいました。半角として見てくださいm(_ _)m
79:77
21/02/16 23:01:49.84 F9q4wvox0.net
p h_1 = { "a" => "b" } #=> {"a"=>"b"}
p h_2 = { "あ": "い" } #=> {:あ=>"い"}
p h_3 = { one: 1, "two": "2" } #=> {:one=>1, :two=>"2"}
新しめの書き方では、2, 3 みたいに書ける
: を使うと、文字列のキーがシンボルになる
"two": が、:two になる
one: はシンボルのまま
80:デフォルトの名無しさん
21/02/16 23:13:47.99 fxt1OOtg0.net
書いていただいた方法でないと生成できないのですね
丁寧な回答ありがとうございました
81:デフォルトの名無しさん
21/02/17 00:25:13.96 p6fAds/B0.net
つーか、なんで「=」でいいと思ったんだか。w
82:デフォルトの名無しさん
21/02/20 02:27:26.66 SWSWE4Ss0.net
AtCoderの解答見てると、rubyで巨大配列を扱うような時に激遅になりがちな気がする
配列アクセスの遅さなのかループの遅さなのかわからんが
83:デフォルトの名無しさん
21/02/20 05:46:26.76 CT8193ch0.net
JIT があるから、1秒間で100万回ループすると、ネイティブコードにコンパイルされて、
1秒間で1,000万回ループできるようになる
84:デフォルトの名無しさん
21/02/23 21:47:53.55 QIohwxjcM.net
irbにおいて、
def test; p test; end
とだけ打ち込みました。
すると、Enumerable.methods.grep(/test/) => [:test]
が得られます。
何故、testメソッドが勝手にEnumerableのメソッドになるのか教えていただけないでしょうか。
環境は
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
です。
85:デフォルトの名無しさん
21/02/23 22:02:57.19 IEGWDKD5r.net
URLリンク(docs.ruby-lang.org)
>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
って思ったけどこっちの環境でもprivateにならないな
はて、何故でしょう
86:デフォルトの名無しさん
21/02/24 02:17:06.53 hlmSDKs+0.net
バグじゃね?
87:デフォルトの名無しさん
21/02/24 02:20:59.00 YN61hHjA0.net
ruby 2.6.6 [x86_64-linux] なら、
def test; p test; end
p Enumerable.methods.grep(/test/) #=> [ ]
88:87
21/02/24 02:26:45.21 YN61hHjA0.net
p test が文法エラーになるのでは?
test という識別子が存在しないから
89:デフォルトの名無しさん
21/02/24 07:33:53.13 UUqFv7Fhp.net
0084です。
def test; p test; end
ではなく、
def test; p “test”; end
でした。
大変申し訳ありませんでした。
ほかのメソッドでも同じような動きを確認しています。今日は立て込んでしまっているので、追って別のメソッドの例も提示します。
90:デフォルトの名無しさん
21/02/24 07:38:08.91 UUqFv7Fhp.net
>>0085さん、確認ありがとうございます。
私は初心者なので、以下の認識で正しいか、何か例外があるのか不安でお尋ねしました。認識は正しかったようですので、もう少し調べてみます。
>トップレベルで定義したメソッドは Object の private インスタンスメソッドとして定義されます。
91:デフォルトの名無しさん
21/02/24 10:21:05.87 a7gl+o1qM.net
privateかどうかをどうやって確認したの?
要再現コード
92:デフォルトの名無しさん
21/02/24 11:26:34.15 9gaCPeun0.net
環境を作り直したほうがよさそう
93:デフォルトの名無しさん
21/02/24 12:25:28.67 hlmSDKs+0.net
ruby 2.6 => [ ]
ruby 2.7 => [:test]
ruby 3.0 => [ ]
94:デフォルトの名無しさん
21/02/24 12:35:04.10 hlmSDKs+0.net
irb(main):001:0> def foo; p "Foo!" end
=> :foo
irb(main):002:0> "abc".foo
"Foo!"
=> "Foo!"
irb(main):003:0> 3.14.foo
"Foo!"
=> "Foo!"
irb(main):004:0> [].foo
"Foo!"
=> "Foo!"
95:デフォルトの名無しさん
21/02/24 20:33:38.12 p2P+ZlS6M.net
90です。
パソコンを再起動して、.irb_historyをtouchで初期化したのち、
以下を実行しても同じ結果でした。
irb(main):001:0> def test; p "test"; end
=> :test
irb(main):002:0> Enumerable.methods.grep(/test/)
=> [:test]
irb(main):010:0> exit
$ rbenv -v
rbenv 1.1.2
$ rbenv versions
system
* 2.7.1 (set by /Users/someone/.rbenv/version)
別のメソッドも作ってみましたが、結果は同じでした。
irb(main):001:1* def mul(a,b)
irb(main):002:1* a*b
irb(main):003:0> end
=> :mul
irb(main):004:0> Enumerable.methods.grep(/mul/)
=> [:mul]
irb(main):006:0> exit
$ irb
irb(main):001:0> Enumerable.methods.grep(/mul/)
=> []
96:デフォルトの名無しさん
21/02/24 20:38:46.87 p2P+ZlS6M.net
90です。
92さんがおっしゃる通り、環境を作り直すこととします。
私の疑問を受けて、再現性について試していただいた皆様、
ご協力ありがとうございました。
97:デフォルトの名無しさん
21/02/24 20:41:24.99 MS8741jMr.net
irb(とpry)でトップレベルで定義するとなんかおかしい
$ cat test.rb
def hoge; end
puts 'public: %p' % [methods.grep(/hoge/)]
puts 'private: %p' % [private_methods.grep(/hoge/)]
$ ruby -v test.rb
ruby 2.6.1p33 (2019-01-30 revision 66950) [x64-mingw32]
public: []
private: [:hoge]
$ irb
irb(main):001:0> load("test.rb")
public: []
private: [:hoge]
=> true
irb(main):002:0> def fuga;end
=> :fuga
irb(main):003:0> puts 'public: %p' % [methods.grep(/fuga/)]
public: [:fuga]
=> nil
irb(main):004:0> puts 'private: %p' % [private_methods.grep(/fuga/)]
private: []
=> nil
98:デフォルトの名無しさん
21/02/24 21:30:57.42 YN61hHjA0.net
irb, pry は特殊なのかな?
漏れは、VSCode のCode Runner で、
選択したコード片、またはファイル全体を、右クリックメニューから実行してる
これが楽
99:デフォルトの名無しさん
21/02/27 23:10:50.88 xGn+rZN00.net
WEB+DB vol.121
Ruby 3 特集、30 ページ分
100:デフォルトの名無しさん
21/03/13 14:19:53.90 33EHGK5P0.net
Ruby on Rails 6 の本を書いている、2人の新刊
Go言語 ハンズオン、掌田津耶乃、2021/3/6
Elixir実践ガイド、黒田努、2021/2/5
Ruby からGoか、Elixirか、どっちへ進むべきか?
mruby, Rust もあるけど
101:デフォルトの名無しさん
21/03/24 00:55:11.21 rggl2LA70.net
Ruby勉強始めたんですが
↓この部分が毎回書きづらいです
コード補完とかってないんですか?
a.map{|x|x+1}←の|x|の部分
102:デフォルトの名無しさん
21/03/24 04:11:25.02 itekFGrv0.net
vscodeとかでスニペットを利用するとか?
103:デフォルトの名無しさん
21/03/24 08:25:35.13 rggl2LA70.net
ruby開発はvscodeが多いの?
104:デフォルトの名無しさん
21/03/24 08:57:21.23 6ziJ9FkW0.net
>>101
Ruby 2.7 以降は、番号指定パラメータが導入されたので
a.map{_1+1}
105:デフォルトの名無しさん
21/03/24 21:09:04.11 rggl2LA70.net
>>104
ありがとうございます!
106:デフォルトの名無しさん
21/03/24 21:14:35.26 9CHTdUsFr.net
え、それでいいんか……
107:デフォルトの名無しさん
21/03/25 16:55:46.31 LuSagST9r.net
プログラミング言語Crystal、初のメジャーリリースとなるバージョン1.0を公開
108:デフォルトの名無しさん
21/03/25 18:17:35.84 18nzHvsr0.net
最近は全言語で、VSCode の拡張機能・Remote Container で、Docker を使う
Windows 10 Home でも、WSL2 が出来るようになった
109:デフォルトの名無しさん
21/03/25 18:25:49.27 18nzHvsr0.net
Elixir でも、無名関数をキャプチャー演算子・& を使って、短く書ける
fn a, b -> a * b end
&(&1 * &2)
& &1 * &2
110:デフォルトの名無しさん
21/04/02 01:45:05.99 6d4XTvSa0.net
rubyでExcelへデータを出力しようとしているんですが、
どうしてもできないことがあり質問します。
ruby -v 3.0.0p0
rubyでExcelのデータを検索するときはFindを使うと思うのですが、
日付項目(シリアル値)を検索するときはどうすればいいのでしょうか。
以下をやってみましたが、検索できませんでした。
find('3/30') ・・・Excelの表示を指定
find('4321') ・・・シリアル値を指定
111:デフォルトの名無しさん
21/04/02 16:34:32.49 NYPc8neoM.net
>>110
使ってるライブラリが分からないと答えようがない
112:デフォルトの名無しさん
21/04/03 07:31:20.35 zsAyk+ZV0.net
>>111
失礼しました。
ライブラリはWin32OLEです
113:デフォルトの名無しさん
21/04/07 17:40:29.80 DBwHd1C70.net
>>110
上はできた。下はダメだった
ちなみに表示が3月30日の場合、find('3/30') はいけたが find('3月30日') はダメ
114:デフォルトの名無しさん
21/04/07 19:54:57.14 J1UfrlOYa.net
>>113
え、いけました??
家に帰ったらもう一回やってみます。
教えて頂いてありがとうございます。
115:デフォルトの名無しさん
21/04/09 09:17:30.32 +qPfXmCt0.net
>>17
on ruby rails
と出力されると思いきや、ruby “on ¥n rails”だって。
なんでだ?
Here Documentの仕様ってどうなってんの?
116:デフォルトの名無しさん
21/04/09 11:00:25.81 9/L6JEXU0.net
>>115
終端行までなんだから、その前にある改行文字は含まれてあたりまえやろ。
117:デフォルトの名無しさん
21/04/09 21:32:27.88 GCSyW51k0.net
ヒアドキュメントの評価値とは別に
#{print "ruby "} で"ruby "とprintされるクソみたいなコードだから
118:デフォルトの名無しさん
21/04/09 21:45:43.65 PjsXsZBpr.net
まあなぞなぞみたいなもんでしょ
クソコードとかいったら身も蓋もない
119:デフォルトの名無しさん
21/04/09 22:01:43.18 pm4fGgmv0.net
Loggerで出力する内容を奪い取って、他のメソッド呼び出しにするってどう言う実装したらいいですか?
例えば全てをTest::any::log(msg)を内部的に呼び出して終わるみたいなLoggerを作るにはどうしたらいいですか?
Logger.new(STDERR)だと全て標準エラーに出力ですが、これを全てTest::any::log(msg)の呼び出しで標準エラーには何も出さないloggerを作りたいのです
120:デフォルトの名無しさん
21/04/10 02:35:21.72 OA/XTa6K0.net
C:/Ruby25-x64/lib/ruby/2.5.0/fileutils.rb では、
インスタンス変数に、標準エラーを代入してる
@fileutils_output ||= $stderr
@fileutils_output = $stderr
漏れは、それを真似て、
DryRun の時だけ、noop: true, verbose: true を付けて、
標準出力から標準エラーに切り替えるような、モジュールを作っている
module MyFileUtils
@fileutils_output = $stdout
extend self
def f( *args, **options ) # 配列・ハッシュ
p @fileutils_output
@fileutils_output.puts( args, options )
end
module DryRun
include MyFileUtils
@fileutils_output = $stderr
extend self
def f( *args, **options )
super( *args, **options, noop: true, verbose: true )
end
end
end
MyFileUtils.f( 1, 2, a: 8, b: 9 )
MyFileUtils::DryRun.f( 1, 2, a: 8, b: 9 )
121:120
21/04/10 06:15:13.31 OA/XTa6K0.net
Ruby 逆引きハンドブックには、こう書いてある
Logger.new の引数には、ログファイルパスか、
write, close が定義された、IO などのオブジェクトを指定する
122:120
21/04/10 06:29:33.47 OA/XTa6K0.net
Ruby 逆引きハンドブックには、メソッドオブジェクトも載ってる
def f_a( ) :a end
def f_b( ) :b end
def doit( command )
m = method( command )
m.call
end
def doit_2( command )
__send__ command
end
p doit( :f_a ) #=> :a
p doit_2( :f_b ) #=> :b
123:デフォルトの名無しさん
21/04/14 15:02:16.96 /0Vt4vuj0.net
gem installって個別のユーザー環境のみに反映することってできますか?
インストールしたらそのPCを使ってる全ユーザーに反映されないようにしたいです
どうしたらいいですか?
124:デフォルトの名無しさん
21/04/14 15:47:13.93 0xQQ9slV0.net
1. 環境変数のGEM_HOMEを指定する
2. --install-dirを指定してインストール
3. --user-installを指定してインストール
4. rbenvを使う
どれでもいける
とりあえずgem help installでヘルプを見るといい
125:デフォルトの名無しさん
21/04/14 18:21:50.16 /0Vt4vuj0.net
>>124
ありがとうございます
126:デフォルトの名無しさん
21/04/23 12:36:53.84 j9CkA04K0.net
{"status"=>0, "data"=>[{"ask"=>"5370001", "bid"=>"5370000", "high"=>"5634576", "last"=>"5371160", "low"=>"5243350", "symbol"=>"BTC", "timestamp"=>"2021-04-23T03:22:36.028Z", "volume"=>"854.3707"}], "responsetime"=>"2021-04-23T03:22:37.031Z"}
このハッシュ?から5370000の値を取り出したいのですが上手くいきません。助けてください
127:デフォルトの名無しさん
21/04/23 19:53:44.06 gO4UxsH40.net
>>126
どうやろうとしてうまくいかんの?
128:デフォルトの名無しさん
21/04/23 20:21:10.93 v3P9E6mR0.net
>>127
jsonをパースして変数に入れてbidが持つ値を出力したいのですがnilが返ってきます
129:デフォルトの名無しさん
21/04/23 20:36:39.90 7NT1P8pu0.net
>>128
やなくて、コードをはれ。
まあ、たぶんdataが配列なのを見逃して0がぬけてるだけやろ。
dig('data',0,'bid')とか?
130:デフォルトの名無しさん
21/04/23 21:26:36.95 v3P9E6mR0.net
>>129
ヒントを元にそれぞれブラケットで囲ったら行けました。ありがとうございました
131:デフォルトの名無しさん
21/04/23 21:33:33.39 dol38sZTr.net
本質的に理解してないやろこれ
132:デフォルトの名無しさん
21/04/24 06:25:40.53 +DYpagDZ0.net
>>131
大変申し訳ありません。digについて理解しました。重ねてありがとうございました。
133:デフォルトの名無しさん
21/04/24 15:27:17.38 vVXlCGEI0.net
度々申し訳ないのですが
{"status"=>0, "data"=>[{"amount"=>"0", "available"=>"0", "conversionRate"=>"1", "symbol"=>"JPY"}, {"amount"=>"0", "available"=>"0", "conversionRate"=>"5377836", "symbol"=>"BTC"}], "responsetime"=>"2021-04-24T06:14:41.169Z"}
ここから5377836を出力する場合も理解さえできればdigでいけるのですか?
今のコード
r_hash = JSON.parse(response.body)
puts r_hash["data"][1]["conversionRate"]
# =>"5377836"
できれば覚えたてのこれ使いたい↓
puts response_hash = dig("data",ここわからない,"conversionRate")
134:デフォルトの名無しさん
21/04/24 16:46:14.63 j3qP/sr70.net
ブラケットで書くのと同じだよ
r_hash["data"][1]["conversionRate"]
r_hash.dig("data", 1, "conversionRate")
135:デフォルトの名無しさん
21/04/24 22:29:45.06 +DYpagDZ0.net
>>134
ありがとうございます。無事取れたのですが引数が頭の中でぐるぐるしてるのでもう一度リファレンス見てきます
136:デフォルトの名無しさん
21/04/24 22:33:17.78 rJwQsTRc0.net
つーか、リストとハッシュについての理解が足りないんちゃうか?
インデックスとかキーとかの感覚がわからんのやろ。
137:デフォルトの名無しさん
21/04/24 22:56:02.00 +DYpagDZ0.net
>>136
おっしゃる通りです。{[{}{}]}
この形で返ってくるともう何がなんだか
138:デフォルトの名無しさん
21/04/25 10:27:13.97 IoXyqRUD0.net
配列の添え字(数字)が文字列になっただけだよ
添え字が数字じゃないので一づつ増やすことはできないけど
139:デフォルトの名無しさん
21/04/25 13:07:39.95 EAdTvuiP0.net
>>138
アドバイスありがとうございます。悲しいくらい今日も予定がないので学習のため一個ずつ値を呼び出して確認してみます。
140:デフォルトの名無しさん
21/04/25 13:30:05.13 M6swdTrH0.net
>>139
知ってるかもしれないけど
この手のは p よりも pp で表示するとわかりやすいよ
Ruby 2.5以降は requireしなくても最初から pp が使える
141:デフォルトの名無しさん
21/04/25 13:55:29.69 oFpMkyEJ0.net
初心者は、dot install, progate などをやれば?
142:デフォルトの名無しさん
21/04/25 15:44:12.74 EAdTvuiP0.net
>>140
pp知りませんでした。ありがとうございます。かなり頭の中の世界が変わりました。
プロゲートはいまいちだったのでユーデミーの教材漁ってたのですがもう一度プロゲートやり直してみます
143:デフォルトの名無しさん
21/04/25 15:53:02.64 I4PgyU7Gr.net
マニュアル読めと言うのは初心者には酷か?
URLリンク(docs.ruby-lang.org)
144:デフォルトの名無しさん
21/04/25 16:58:50.92 oFpMkyEJ0.net
本が好きなら、定番の入門書「たのしいRuby 第6版」2019 とか
YouTube で有名な、雑食系エンジニア・KENTA のサロンは皆、Ruby on Rails じゃないの?
145:デフォルトの名無しさん
21/04/25 17:29:21.56 .net
Excelのsheet1に
A列 B列
1行目 URLリンク(www.navitime.co.jp) URLリンク(rilakkumasabo.jp)URLリンク(www.arashiyamaryo.or.jp)
2行目 URLリンク(www.navitime.co.jp) URLリンク(co-trip.jp)
3行目 URLリンク(www.navitime.co.jp) URLリンク(www.fruitmoti-shoutikudou.jp)
と記載されているのを
sheet2に
A列 B列
1行目 URLリンク(www.navitime.co.jp) URLリンク(rilakkumasabo.jp)
2行目 URLリンク(www.navitime.co.jp) URLリンク(www.telacoya.co.jp)
3行目 URLリンク(www.navitime.co.jp) URLリンク(www.arashiyamaryo.or.jp)
4行目 URLリンク(www.navitime.co.jp) URLリンク(co-trip.jp)
5行目 URLリンク(www.navitime.co.jp) URLリンク(hitosara.com)
6行目 URLリンク(www.navitime.co.jp) URLリンク(kyo-soku.com)
7行目 URLリンク(www.navitime.co.jp) URLリンク(www.fruitmoti-shoutikudou.jp)
8行目 URLリンク(www.navitime.co.jp) URLリンク(sweetsguide.jp)
9行目 URLリンク(www.navitime.co.jp) URLリンク(osakalucci.jp)
このように変換したいです。オンライン上でRubyを使用して作成したいのですが、どのようにすればよいでしょうか?
146:デフォルトの名無しさん
21/04/25 18:11:40.31 oFpMkyEJ0.net
まず、http://~、https://~ を、3つ連結した、
https://~http://~https://~ みたいな文字列を、3つに分離する
147:デフォルトの名無しさん
21/04/25 18:37:11.77 nrx375qK0.net
>>145
「オンライン」とは?サーバーでということか?Windows?
Excelはxlsx?csvなら難しくはないが。。。
など、あぶなっかしいところが多すぎ。
初心者がやるにはたいへんやな。w
やめといたら?
148:デフォルトの名無しさん
21/04/25 23:09:08.20 oFpMkyEJ0.net
3つに分離する部分だけを作った。
入出力の部分は、CSV モジュールを使えば?
re = %r!https?://! # 正規表現。http/https
input = String.new( "URLリンク(rilakkumasabo.jp)URLリンク(www.arashiyamaryo.or.jp) )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字h の位置
pos = md.end( 0 ) # 一致した末尾文字/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
pp urls.reverse # 反転
出力
["URLリンク(rilakkumasabo.jp)
"URLリンク(www.telacoya.co.jp)
"URLリンク(www.arashiyamaryo.or.jp)
149:148
21/04/26 13:51:09.40 0DE0v1OZ0.net
出来た!
文字列を3分割する部分を関数化して、呼び出す
入出力は、CSV 形式で。
入力ファイルは、input.csv
paiza.IO などで実行してみれば?
ただし、この前、paizaのソースコードが消えてしまったけど。
定期的に消えるのかな?
# 引数の文字列を3分割して、配列に入れて返す
def split_string( input_str )
re = %r!https?://! # 正規表現。http/https
# 下で、slice! で変更するために、破壊的変更可能文字列へ変換する
input = String.new( input_str )
positions = [ ]
pos = 0
while md = re.match( input, pos )
positions.push md.begin( 0 ) # 一致した先頭文字・h の位置
pos = md.end( 0 ) # 一致した末尾文字・/ の次の文字の位置
end
# 文字列の末尾から削除しながら、配列に入れていく
urls = positions.reverse.map { |pos| input.slice!( pos..-1 ) }
urls.reverse # 反転
end
次へ続く
150:148
21/04/26 13:52:06.70 0DE0v1OZ0.net
require 'csv'
result_ary = [ ]
CSV.foreach( "input.csv" ) do |row| # 1行ずつ処理する
split_ary = split_string( row[ 1 ] )
split_ary.each do |url|
result_ary.push [ row[ 0 ], url ]
end
end
# 2次元配列を、CSV 文字列に変換する
csv_str = result_ary.map( &:to_csv ).join
print csv_str
151:デフォルトの名無しさん
21/04/26 22:46:21.55 RYaLTPlL0.net
paramsという名前のハッシュを関数の中で使う際、
:codeの組をhogeだけでなくmoge、kuge、sageなど
関数の引数で選べるようにする場合、
'+ 引数名 +'だとエラーになるようですが、
バリューに引数を使おうとしている事自体が根本的に間違っていますか?
params = {
:code=> 'hoge', ←'+ 引数名 +'だとダメ。ここを入れ替えたい
:page => 1,
:count => 5
}
152:デフォルトの名無しさん
21/04/26 22:54:52.82 rfpJ92nWr.net
意味が分からん。
エラーになるコードと希望する出力は何?
153:デフォルトの名無しさん
21/04/26 23:08:46.56 RYaLTPlL0.net
>>152
APIを使用して住んでる地域の時間ごとの過去の天気を見る学習をするはずだったのですが
自分でも何がしたいのかわからなくなってきたのでちょっと出直します。
すみませんでした。
154:デフォルトの名無しさん
21/04/26 23:31:12.51 rfpJ92nWr.net
>>153
おう、がんばれ
155:デフォルトの名無しさん
21/04/27 00:08:05.54 6stPm5Ss0.net
>>151
変数名と値(リテラル)の区別があやふやなんでは?
変数名をクォートしようとしている時点でヤバイ。
156:デフォルトの名無しさん
21/04/27 16:05:13.93 .net
>>148-150
ありがとうございます。
rubyのインストールが上手く出来なかったので明日またやってみます。
157:デフォルトの名無しさん
21/04/28 22:23:58.72 .net
145です。
出来ました。ありがとうございます。
158:デフォルトの名無しさん
21/04/30 21:24:36.83 DJ/L1TU20.net
>>150
Array#to_csvってかなり非効率的なんで避けたほうが無難
csv_str = CSV.generate{|csv| result_ary.each{|it| csv << it } }
159:デフォルトの名無しさん
21/05/03 11:06:41.86 B6Xr9eKd0.net
Pythonみたいに行けてるエクセルライブラリが欲しい。。
160:デフォルトの名無しさん
21/05/12 09:35:54.83 NUn3zAQRa.net
>>158
非効率というのは遅いって事ですか?
161:デフォルトの名無しさん
21/05/12 10:19:17.28 iLdhy1ll0.net
>>160
require "bundler/inline"
gemfile do
source "URLリンク(rubygems.org")<)
URLリンク(github.com)
見ると分かるがCSV.new等を毎回行う手抜き実装(バグりにくいというメリットは確かにある)
1行だけならともかく複数行をcsv化したいなら微妙
162:デフォルトの名無しさん
21/05/12 11:11:15.22 heOXda5CM.net
実際にはどうせファイルに書き込むんだからファイルIOがボトルネックになるんで誤差だよ
無意味なベンチマークだね
163:デフォルトの名無しさん
21/05/12 11:18:11.79 VEm96Egx0.net
>>162
キャッシュなしフロッピーディスク💾を使ってるのかな?w
164:デフォルトの名無しさん
21/05/12 11:41:45.65 iLdhy1ll0.net
>>162
Benchmark.driver do |x|
x.prelude %{require "csv"}
x.prelude %{require "tempfile"}
x.prelude %{ITEMS = Array.new(1000){ ["fooo", 12345,6789] }}
x.report "to_csv", %{ Tempfile.create{ _1.write ITEMS.map(&:to_csv).join } }
x.report "generate", %{ Tempfile.create{ _1.write CSV.generate{|csv| ITEMS.each{|it| csv << it } } }}
end
確かに縮まりはしたが
うちのオンボロPCでも5倍弱の差が出ました。
165:デフォルトの名無しさん
21/05/12 22:35:04.85 gVUbVQ8ua.net
何秒が何秒になったんですか?
166:デフォルトの名無しさん
21/06/01 17:26:14.50 iV+6o72S0.net
c="C:\Program Files\7-Zip\7z.exe"
p c
で出力は
> "C:Program Files\a-Zip\az.exe"
となってしまうんですが、なんで7がaに変わってしまってるんでしょうか?
2.6.5p114 (2019-10-01 revision 67812) [x64-mingw32]です
167:デフォルトの名無しさん
21/06/01 17:31:29.95 DkdlQ1eQ0.net
URLリンク(ja.wikipedia.org)ベル文字
> ベル文字は、ASCIIとUnicodeでは十進数で7
> 1972年に作られたC言語では、ベル文字は文字定数 \aで表される。'a'は"alert"や"audible"の頭文字である。'b'は既にバックスペースに使われていた。
168:デフォルトの名無しさん
21/06/01 18:04:34.76 uwqmKkHK0.net
>>166
バックスラッシュ記法で8進数表記のパターンとして解釈されるから
式展開が必要なければシングルクウォートにするといい
URLリンク(docs.ruby-lang.org)
¥007も¥07も¥7も同じ
C言語由来のエスケープシーケンス
169:デフォルトの名無しさん
21/06/01 18:56:08.30 acqsmkid0.net
>>166
>>168のシングルクォートよりも、パスの区切り文字を「/」にすることをすすめたい。
パスの区切り文字が「¥」でなければいけないのはコマンドプロンプトなど一部のみ。
だいたいが「/」でも可。
170:デフォルトの名無しさん
21/06/01 21:37:59.00 iV+6o72S0.net
>>167-169
まとレスにて失礼します
aに置き換わる謎はわかりました
シングルクォートなのですが、面倒くさいことにWindowsの決め打ちで空白が入っているので
それを考えるとダブルクォートで囲まざるを得ず、けっきょくこんな形になってしまいました
c="\"C:\\Program Files\\7-Zip\\7z.exe\""
このあと
system("#{c} a -mx9 ...")
みたいな形で呼び出します
171:デフォルトの名無しさん
21/06/01 22:03:40.90 eWE6r8CI0.net
>>170
c = '"C:\Program Files\7-Zip\7z.exe"'
172:デフォルトの名無しさん
21/06/02 19:46:00.37 onKqKKZNr.net
>>170
すごく短くまとまってるから、一度公式のリファレンス読んだ方がいいよ
URLリンク(docs.ruby-lang.org)
173:デフォルトの名無しさん
21/06/02 20:29:52.62 92rWXivp0.net
>>171
ああなるほど
それで行けますね
昔は自分でもそんな書き方してたかもしれなかったです
>>172
ご案内ありがとうございます
シングルクォートとダブルクォートの意味とか違いは理解していたのですが
中に\入れたときとか、とくに168さんに指摘されたように8進数での扱いが特別だということは
よく理解していなかったので、これを機会に知識を正確にしておきます
174:デフォルトの名無しさん
21/06/03 18:27:26.17 peqY6uPj0.net
完全にプログラミング0からで「スラスラ読めるrubyふりがなプログラミング」を買って始めたのですが
macbookairでrbenvでruby3.0.1をダウンロードしてrbenv versionでは3.0.1と表示されるのですがruby -vでは2.6.3と元々入ってるrubyが表示されます
まだ何も分かってないのにhomebrewとrbenvのダウンロードが上手くいかず色々見ながらやってきたので余計な事をしてしまったのではないかと心配です
175:デフォルトの名無しさん
21/06/03 18:56:51.38 peqY6uPj0.net
>>174ですが
自己解決しました
bash profileに何か誤ったものを書き込んでしまったようで消したら3.0.1に切り替わりました
176:デフォルトの名無しさん
21/06/05 14:54:45.98 uC9Joojh0.net
Rubyで、syntax error 的なものが生じていても、そのまま実行が続けられている
ように見える現象が時々起きる。
これは何が起きている?
errorが起きた場所で停止させる方法はある?
177:デフォルトの名無しさん
21/06/05 15:26:37.54 SGijWivar.net
rescue SyntaxError
178:デフォルトの名無しさん
21/06/05 20:10:36.75 K+vX0E1p0.net
>>176
そのエラーが起こった時に何が表示されているの?
179:デフォルトの名無しさん
21/06/06 16:19:02.76 1amPE6il0.net
>>178
例えば、xxx という変数を定義してない状態で、
[aaa.rb]
def some_func()
・・・
print( "xxx=#{xxx}\n" );
・・・
end
という関数を呼び出すと、
aaa.rb:3882:in `some_func': undefined local variable or method `xxx' for main:Object (NameError)
from aaa.rb:5638:in `main'
from aaa.rb:5667:in `<main>'
と出るが、そのまま実行が続けられてしまう。
180:デフォルトの名無しさん
21/06/06 17:06:19.62 B1fTG1Q6r.net
>>179
begin
rescue
end
の構造してるだけじゃないの
181:デフォルトの名無しさん
21/06/06 17:09:33.22 1amPE6il0.net
>>180
そういうものは使ってない。
182:デフォルトの名無しさん
21/06/06 17:12:50.30 B1fTG1Q6r.net
>>181
再現するコードを共有することはできますか?
183:デフォルトの名無しさん
21/06/06 17:37:47.34 1amPE6il0.net
>>182
できない。
大事なコードだから非公開。
184:デフォルトの名無しさん
21/06/06 17:44:51.53 B1fTG1Q6r.net
そうであれば我々にはわかりえない。
まあどっかでrequireをオーバーライドしてるとかじゃないの。
185:デフォルトの名無しさん
21/06/06 18:17:08.76 1amPE6il0.net
>>184
全部自分で書いたコードで、Rubyの基本的な機能しか使ってない。
また、検索してみたが、begin や rescue というキーワードは全く使ってなかった。
186:デフォルトの名無しさん
21/06/06 21:13:38.74 kq17Ee/S0.net
別スレッドも停止させたいのであれば、Thread.abort_on_exception=trueが必要とか?
187:デフォルトの名無しさん
21/06/06 22:12:59.95 1amPE6il0.net
>>186
シングルスレッドしか使ってない。
188:デフォルトの名無しさん
21/06/06 23:44:17.52 ///+rfU80.net
もうええて。
追加情報がなきゃあもうムリやろ。
189:デフォルトの名無しさん
21/06/07 08:20:47.92 Q1HfUOnq0.net
バグだね。
190:デフォルトの名無しさん
21/06/07 12:05:22.54 Qb3DiLXp0.net
さすがのRubyでも、そんなアホみたいな「バグ」なんかないやろ。w
191:デフォルトの名無しさん
21/06/07 13:11:30.61 tJ2RoPVV0.net
おまえさん一人だけの症状なんだし再現できるコード・環境を出せない以上おま環
192:デフォルトの名無しさん
21/06/07 13:15:54.00 pl6618+T0.net
>>170
コマンドプロンプトでも普通に、/ を使える。
これで実行できる
ruby C:/Users/Owner/Documents/a.rb
パスに空白が入っている場合は、シングル・ダブルクォーテーションで囲む
PowerShell(PS)でも良いし。
Windows Terminal なら、Bash, PS、コマンドプロンプトの3つを使える
193:デフォルトの名無しさん
21/06/08 10:27:31.04 ljhkY4kR0.net
Powershellで標準出力をリダイレクトしてると
Ctrl-C押した時at_exitに飛ばずに死ぬの何なの?
194:デフォルトの名無しさん
21/06/08 11:47:19.54 dOMi6vvz0.net
そのアプリが、SIG-INT・中断をキャッチしない場合は、
SIG-KILL・強制終了されるのだろう
強制終了は、受け身が取れない。
たぶん、デフォルトの挙動は、そうなのだろう
195:デフォルトの名無しさん
21/06/08 12:46:57.32 ljhkY4kR0.net
リダイレクトしていなければ普通にat_exitに飛ぶんだよ
196:デフォルトの名無しさん
21/06/08 14:00:54.76 8dk2g5lI0.net
試しにpythonでもatexit使ってみたが同様に強制終了される
Traceback出力されるのにatexitは実行されない
197:デフォルトの名無しさん
21/06/08 14:04:16.61 xXGg8olZ0.net
Rubyスレなんだが!
198:デフォルトの名無しさん
21/06/08 14:34:31.00 8dk2g5lI0.net
powershellがバグってる
cmd /c 経由なら正常にリダイレクトおよびctrl+cできたわ
199:デフォルトの名無しさん
21/06/08 14:44:58.07 ljhkY4kR0.net
え~~マジっすか
検証してくれてありがとうございました。
200:デフォルトの名無しさん
21/06/08 17:51:22.97 ljhkY4kR0.net
まずパイプが終了して、それに巻き込まれてpythonのプロセスが落ちるとかなんとか
rubyの挙動を調べるためにpythonでググるってなんだかな
201:デフォルトの名無しさん
21/06/08 20:59:45.11 7WqSN2WLr.net
そういやパイプ周りの不具合がなんかあったな
202:デフォルトの名無しさん
21/06/08 21:13:49.57 7WqSN2WLr.net
と思ったら今回の件と何も関係が無かったわ。
URLリンク(bugs.ruby-lang.org)
203:デフォルトの名無しさん
21/06/08 21:15:32.86 S62X2+fs0.net
>>159
ほんと、これは甚だ同意。
204:デフォルトの名無しさん
21/06/10 21:34:01.60 Hn4s45bFd.net
現在ラズパイにrubyとpythonを入れて処理を並列に自動実行しようと思ってます
ただ台数が多いため一台ごとにソースを変えるのは回避したいです
なので理想は起動時に最新のソースに自動で更新です
このようなことをしたいときはどのようにするのが一番簡単でしょうか?
rubyでサーバーから最新のソースをコピーしたあとにrubyとpythonを実行?
家で使用するのでセキュリティーとかは気にしません
205:デフォルトの名無しさん
21/06/10 22:40:14.97 t0oieqtV0.net
>>204
rsyncすれば?
206:デフォルトの名無しさん
21/06/18 09:43:06.27 Jo75oGSbM.net
>>204
厳密に一斉に切り替わらなくてもいいならcronとかで定期的にGitHubからpullする
手段が目的だと堂々と言えるならKubernetesのクラスタ組むとかも面白い
207:デフォルトの名無しさん
21/06/23 23:47:46.99 vtN99wcma.net
ライブラリのopenのように、
open() do |f|
・・・
end
と書いてもよく、
f= open()
・・・
f.close
と書いてもいいというクラスor メソッドは
どうやって作ればいいのでしょうか。
yieldを使うとイテレータのみになってしまうし、
returnすると下の例だけになってしまいます。
208:デフォルトの名無しさん
21/06/24 00:15:52.97 PG/lAwcj0.net
if block_given? で分岐
209:デフォルトの名無しさん
21/06/24 07:40:00.21 R0/fGgxp0.net
>>208
ありがとうございます。
うまく作れました。
210:デフォルトの名無しさん
21/06/24 07:56:14.83 R0/fGgxp0.net
すみません、もう一つ教えて下さい。
rubyというかプログラムを書くとき全般の注意として、
ファイルopenとcloseはなるべく近くに書くようにと
ありました。
恐らくclose漏れを警戒しているのだと思います。
yieldを使えば、以下コードでそれを実現できます。
def fileInterface
f= open()
begin
yield f
ensure
f.close
end
end
yieldを使わないパターンでは、
closeを近くにかけないのですが解決策あるでしょうか。
def open
@f= open()
return @f
end
def close
@f.close
end
openメソッド実行
・・・
・・・(大量の処理)
closeメソッド実行
211:デフォルトの名無しさん
21/06/24 09:32:39.75 +4IsK47J0.net
>>210
大量の処理を関数にして分離。
あるいは、しょせん理想でしかないので、離れていても気にしない。
212:デフォルトの名無しさん
21/06/24 10:36:21.12 5MDZvZ/d0.net
>>210
close漏れを警戒するのであれば、openにそのままブロックを渡した方がいい
openはブロックの実行結果を返し、ブロック脱出時に勝手にcloseします
まぁ、どうせclose漏れしてもそのうちGCに回収されるかプロセス終了時にcloseされる
213:デフォルトの名無しさん
21/06/24 11:01:09.55 PG/lAwcj0.net
>>210
yield使った実装とやることは同じ
f= open file
begin
大量の処理を含むメソッド f # <― yieldがメソッドに変わるだけ
ensure
f.close
end
同じだからこそ毎回同じことを書かなくてもいいようblock付きで呼び出す
open(file){|f| 大量の処理を含むメソッド f}
214:デフォルトの名無しさん
21/06/24 12:31:52.31 9bIzV4XCa.net
大量の処理を手続きオブジェクトに分離するのは、やりました。
やっぱりそれしかないかな。
ブロック付きで渡すのはオブジェクト指向ではない
コードになりやすく、今回は考えてないです。
また、全体をensureで囲うのは、
さすがにensure対象が暗黙的すぎてちょっとな・・・です。
215:デフォルトの名無しさん
21/06/24 13:25:07.89 +4IsK47J0.net
>>214
> ブロック付きで渡すのはオブジェクト指向ではない
> コードになりやすく
そうか?
まあ、「オブジェクト指向」にもいろいろあるからな。w
216:デフォルトの名無しさん
21/07/17 09:58:54.08 yHV+uNLK0.net
railsにおいて あるフォームから特定の変数に送られるデータの内容を固定したいのですがなにかいい方法ありますか?
具体的には
<%= form_with model: @hoge do |form|%>
<%= form.text_field :name , value: 'hoge'%>
<%= form.submit %>
<% end %>
と書かれている場合 hogeというモデルのnameという変数に必ずhogeが入るようにしたいのですが上の書き方だと初期値にhogeが入るだけで編集可能になってしまいます。
217:デフォルトの名無しさん
21/07/17 10:48:14.79 xmQE+uIu0.net
openに、ブロックを渡す方法は、
コンテキスト・マネージャーという、多くの言語で使われているデザインパターン
これよりも良いものは作れないから、皆が使っている
218:デフォルトの名無しさん
21/07/17 10:54:23.38 xmQE+uIu0.net
そりゃ、フォームはサーバーへ送られて更新されるものだから、
変更可能のフィールドが普通
変更不可のフィールドにするなら、
そのフィールドをサーバーへ送らないようにしないといけない
そういうオプションがあるのかな?
219:218
21/07/17 11:08:32.59 xmQE+uIu0.net
「html disabled readonly」で検索!
HTML の <input> 要素には disabled と readonly 属性が存在します
disabled : コントロールが無効化され、フォームを Submit しても、値の送信が行われない
readonly : 値の変更は行えないが、コントロールは有効なので、
フォームを Submit すれば値の送信が行われる
220:218
21/07/17 11:15:24.94 xmQE+uIu0.net
変更不可のフィールドなら、
<input> 要素などを使わずに、単にテキストを表示すれば?
221:デフォルトの名無しさん
21/07/17 13:56:18.38 EBHVYdQH0.net
>>216
hidden_field使ってもいいけど
そもそもformによる入力=webからの入力は信頼してはいけない
222:デフォルトの名無しさん
21/07/17 14:27:31.06 7kNL/q5q0.net
>>221
ではどうすればいいでしょうか
223:デフォルトの名無しさん
21/07/17 16:20:51.36 CYR4F+Ue0.net
>>222
直にソースで書くしか!
ちなみに、XSRFも調べとくとええんちゃう?
224:218
21/07/17 20:48:35.06 xmQE+uIu0.net
マスアサインメント脆弱性を、strong parameters で防ぐ。
更新できる列を、permit で限定する。
これは、コントローラーでの制限
params.require(:person).permit(:name, :age)
Action Controller の概要
URLリンク(railsguides.jp)
モデルでのバリデは、
Active Record バリデーション
URLリンク(railsguides.jp)
Rails ガイド・Rails チュートリアル・黒田努の本などを読むか、
YouTube で有名な、雑食系エンジニア・KENTA のサロンへ入ると良い。
日本6位の、2千人入っている、虎の穴
225:デフォルトの名無しさん
21/07/18 01:26:53.43 M+6J3Mfd0.net
>>217
ブロックで書くとテストコードが書きづらくないですか?
最近はテストコードのことを考えて、普通に、
file = open(file,'r')
とか書いてます。
あと、ブロックはネストするからなあ。
226:デフォルトの名無しさん
21/07/18 15:19:50.46 WDHzAXg40.net
>>222
何がしたいのか次第
'hoge'で固定するのであればformで入力させる必要はないですし
なんらかの方法で生成するのであれば生成するタイミングを考えます
入力フォーム表示前に生成し固定する必要があるのであれば
ActiveSupport::MessageVerifier
ActiveSupport::MessageEncrypter
session
などを使う
227:218
21/07/18 22:44:25.79 H/NN8O820.net
Rails の便乗質問するけど、
ユーザーの入力値により、条件判断して、
条件1 の場合には、列A だけを更新して、
条件2 の場合には、列B だけを更新する
と言うのは、どのように書くの?
モデルのcallback かな?
228:デフォルトの名無しさん
21/07/19 01:48:34.69 0iu7guVA0.net
ruby silver試験は公式問題集をやれば
合格できますでしょうか、学習時間も参考にさせていただきたいです。
silverを考えています。
バージョンがかなり古いとは思いますが、今のrubyとそんなに変わらないと思ってて大丈夫でしょうか
229:218
21/07/19 07:03:41.76 sO73HNBd0.net
Ruby の資格は、漏れも取っていない。
下のマネーフォワードの本で、良いと思う
改訂2版 Ruby逆引きハンドブック、2018
230:デフォルトの名無しさん
21/07/20 08:12:05.37 EkYsR0Mj0.net
【A型の人ごめん】「まじめ人間」は、自分の人生を生きられず、しかもお金持ちになれない。
URLリンク(www.youtube.com)
【人生観変わる話】「サラリーマン脳」のヤバい特徴5選。
URLリンク(www.youtube.com)
【人生終了】情弱がハマる「貧困スパイラル」のリアル。
URLリンク(www.youtube.com)
バカでもわかる!ネットビジネスの始め方。
URLリンク(www.youtube.com)
時給労働から卒業しよう!貧乏人が知らない「お金の稼ぎ方」まとめ。
URLリンク(www.youtube.com)
【人生攻略】経験・実績ゼロのあなたが、最短で何者かになる方法。
URLリンク(www.youtube.com)
【残酷】貧乏人はいつも忙しいのに、お金持ちは暇である理由。
URLリンク(www.youtube.com)
231:218
21/07/20 10:14:09.06 nphTU9tH0.net
>>227
自己回答
ユーザーの入力値により、条件判断してはいないけど、
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018
の400 ページで、
アクションのcreate/update で、
コントローラーのstrong parameters を変える例が書いてある
例えば、下のような感じ
params.require(:person).permit(:name)
params.require(:person).permit(:age)
232:デフォルトの名無しさん
21/07/21 10:26:17.53 GSJrQWT80.net
>>231
別に構わんが環境次第でUnpermittedParameters例外出そうな気がするので
@person.update(xxx_params.except(:age))
的な感じのほうがよいかも
233:デフォルトの名無しさん
21/07/24 17:53:55.08 niZ/VlC90.net
pythonなみの公式チュートリアルがあればいいのに
234:デフォルトの名無しさん
21/07/27 10:21:46.39 y9fA4YVt0.net
Railsでも何でもいいんですが、ecサイトの様なユーザー登録とログインシステム
をRubyを使って簡単に構築するライブラリの使い方が書かれている良い本は
有りませんか?
235:デフォルトの名無しさん
21/07/27 11:24:07.05 ic7RAKIO0.net
>>234
Ruby on Railsのチュートリアル
でいいのでは?
簡単に済ませたいならば、
Shopifyとか外部決済システムに外注すれば?
236:デフォルトの名無しさん
21/07/30 18:21:13.72 7AkGA5GJ0.net
スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか?
セキュリティ対策はどのようなことに注意すればよいでしょうか?
237:デフォルトの名無しさん
21/08/03 20:29:25.38 1SQdlJBzr.net
NOKOGIRI
238:デフォルトの名無しさん
21/08/03 22:35:38.25 3PGqGTvy0.net
>>236
踏み台を準備してそこ経由でスクレイピングする
239:デフォルトの名無しさん
21/08/04 01:04:19.47 wXXobJu90.net
>>236
スクレイピングの勉強
240:デフォルトの名無しさん
21/08/04 11:12:04.78 Ud4GmCQc0.net
>>236
とりあえず、関心のあるページをローカルに保存してnokogiriでアクセスしてみれば?
crawler部分とscrap部分を分けるのが吉。
つまり、100pagesをスクレーピングするなら、まずhtmlをblob型でDBにinsertしてから欲しいデータをnokogiriで取り出すのだ。
241:デフォルトの名無しさん
21/08/04 11:45:59.21 BE8GLseK0.net
>>234
よく見るのは、devise gem を使う
パーフェクト Ruby on Rails、2020/7 には、載っていない
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9 には少しだけ載っている。
ただし、この本は、Ruby 2.5.1, Rails 5.2
Ruby on Rails 6 実践ガイド、黒田努、2019/12、には載っている
ただし、上の黒田努の2冊の本では、devise を使わず、自作している
Rails チュートリアル・Rails ガイドも参照
YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、
2千人の未経験者が、Rails の転職用ポートフォリオを作っている。
そこへ入って、聞いた方がよい
242:デフォルトの名無しさん
21/08/04 12:01:13.97 BE8GLseK0.net
>>236
サイトのrobots.txt を遵守すること!
これを守らないと、営業妨害で逮捕される
CSS Selector を勉強する。XPath は勉強しなくてよい。
JavaScript も、jQuery 程度は出来た方がよい
gem は、Nokogiri, Selenium Webdriver
Udemy の山浦清透、2021/6
【作業工程フル公開】エンジニアが30万円案件の制作過程を公開
www.youtube.com/watch?v=tYbVl6N8oxI
PHP のLaravel で、マイナビ転職をスクレイピングして、データベースへ保存する
基本、この動画と同じ。
これを、Ruby on Rails へ置き換えるだけ
243:241
21/08/04 15:15:35.32 BE8GLseK0.net
>>234
Ruby on Rails, devise の動画
Farstep、2019/9
【Rails】deviseを使ったログイン機能の実装(名前でログインする方法を解説)
www.youtube.com/watch?v=Lmq_WLkxp9c
244:241
21/08/04 15:35:06.48 BE8GLseK0.net
YouTube で「ruby on rails devise」で検索すれば、日本人の動画も多い
Farstep, うるぞー、もぐらストア、
やんばるCODE 守護神・バグ取り名人 たけ
245:デフォルトの名無しさん
21/08/04 22:15:34.77 y1FxFhCLr.net
jQueryって単語、1万年ぶりに見たわ
246:デフォルトの名無しさん
21/08/05 00:10:48.44 r/zZzNU40.net
>>245
一万十歳かな?
247:デフォルトの名無しさん
21/08/05 12:32:32.94 dqIKXfcM0.net
>>242
>>サイトのrobots.txt を遵守すること!
>>これを守らないと、営業妨害で逮捕される
どういうことですか?
詳しくお願いします
248:218
21/08/05 13:11:38.51 bqGeTZjz0.net
>>231
パーフェクト Ruby on Rails 【増補改訂版】 (Perfect series)、2020/7
の92 ページで、
コントローラー内で、private メソッドを定義して、
条件によって、strong parameters を変える例が書いてある
管理者・一般ユーザーで変える例
params.require(:user).permit(:name, :admin)
params.require(:user).permit(:name)
249:242
21/08/05 13:20:50.00 bqGeTZjz0.net
>>247
>>242
に書いてある、山浦清透の動画を見れば分かる
各サイトには、robots.txt が置いてあって、
スクレイピングする場合は、必ず30秒空けるとか、
このフォルダはスクレイピングしてはならないとか、多くの条件が書いてある
それを守っていないと、営業妨害になる
スクレイピングは初心者向きじゃないので、各サイトと契約して、API を使うべき!
なぜかと言うと、初心者のプログラムにはバグが多いから、
無限ループしたりして、サイトへ無限にアクセスしたりする
それで、営業妨害で逮捕されるかも知れないから、すごく危険!
プロでも、スクレイピングはしない。
必ず、サイトと契約して、APIを使う
5ch もそう。契約して、APIを使えと言ってる。
勝手にスクレイピングすると、訴えてくるかも知れない
250:デフォルトの名無しさん
21/08/05 13:38:00.10 /9S9EoKc0.net
>>249
私のスクレイピングしたいサイトにはAPIは公開されていません
またrobots.txtも設置されていません
robots.txtでリクエスト間隔の指定なんてあるのですか?
常識的に数十秒から数分に一回程度のリクエストなら問題ないと思いますが
営業妨害ってどういう意味ですか
IT企業に勤める知り合いはスクレイピングで求人を出すことがあると言ってましたが嘘でしょうか?
5chでスクレイピングしたら相手にバレて訴えられることがあるのですか?
251:デフォルトの名無しさん
21/08/05 14:04:49.73 RzFkoDJoM.net
>>250
あるよ
数分に一回のリクエストで落ちるゴミサイトだろうと、結果的に相手の業務に支障が生じれば業務妨害罪に問われる可能性がある
252:デフォルトの名無しさん
21/08/05 14:10:13.57 5L8sIm7d0.net
>>250
> 常識的に数十秒から数分に一回程度のリクエストなら問題ないと思いますが
> 営業妨害ってどういう意味ですか
誰にとっての「常識」ですか?
某岡崎市の某図書館の「りぶらはっく」の件を知りませんか?
(情報リテラシのある側からしたら、)
あんな程度のアクセスで逮捕されるわけない「はずだと思う」なのに、
実態は、全部ゾンビ化(作った業者がアレ)していて、
け●さつがわも情報リテラシがなくアレだから、
結果がアレになっちゃったんですよ。
いいですかー、ここは日本です。
訴える側の後ろ側の行政側がアレな場合が多々あり、
情報リテラシがまったくない、矛盾しまくった法治国家なわけですよ。
誰の常識かは、サイトを提供している側が情報リテラシがない場合、その情報リテラシがない前提が常識なわけです。
つまり、その場合、何らかスクレイピングした時点で営業妨害とみなされても仕方ないですよ?
253:デフォルトの名無しさん
21/08/05 14:53:47.22 /9S9EoKc0.net
>>252
結局その事件は不起訴処分ですよね?
なぜ不起訴になったかわかりますか
検察側が有罪に出来ないと判断したからです
インターネット業界に携わる者たちからすれば余りにも「一般常識」から外れた言いがかりですからね
あなたのような無知蒙昧で従順な子羊は司直にとっては美味しいお客様ですね
これからも「常識」に則った素晴らしいプログラムを書き続けてくださいね
254:デフォルトの名無しさん
21/08/05 15:24:32.14 5L8sIm7d0.net
>>253
もし本当に訴えられたとき、実際の裁判の場で、>>253 と同じ発言を検察側、裁判官の前で弁論できるとよいですね。
255:デフォルトの名無しさん
21/08/05 16:15:30.56 r8rfvWmzM.net
まあ不起訴で納得できるならいいんじゃないの?
俺だったら逮捕の時点で嫌だけど
256:デフォルトの名無しさん
21/08/05 17:07:40.75 bqGeTZjz0.net
逮捕状は名目上、第三者と言われる司法・裁判所が出している。
本当は警察・検察、つまり行政と結託しているけどw
警察はマスコミにリークして、有罪の世論を作る
だから日本では、逮捕 = 100% 有罪。
100%有罪でも、誰もおかしいと思わない。
他国では有罪率が50% ぐらいだけど、日本だけは100%
つまり、三権分立していない。
行政が決めてから、司法が行政のやった事を正当化するような判決文を書く。
行政を勝たせた人だけが出世できるから
でも、判決文を書くのを極端に嫌がる。
N国みたいな政党が、YouTube で裁判官の判決文を批判したりして、おかしいのがばれるから
不起訴になるのは、犯罪者が認めた場合
青汁王子みたいに検察へ喧嘩を売ったら有罪にされたけど、
徳井みたいに脱税を認めたら、不起訴になった
257:256
21/08/05 17:20:52.40 bqGeTZjz0.net
その人がやった事を認めたから、不起訴にした
日本では、逮捕 = 100% 有罪だから、絶対に有罪にできる。
日本では自白をすると、裁判所で何を言っても、くつがえせない。
嘘をついて、自白をするわけがないと言う
だから検事は、拷問・家族を脅迫して、自白をさせる
青汁王子みたいに検察の拷問を発表したら、有罪にされた。
それで青汁王子は、検察改革として選挙に立候補するかも知れない
一方、徳井は脱税を認めたら、不起訴になった
ZOZO・前澤も、脱税をマスコミにリークされた。
でも、N国が国会で誰がリークしたか聞いたら、皆、白を切った
これを国会で追求されたら、まずいから。
警察から、マスコミへリークしているのがばれるから
前澤のは、そもそも脱税でもない。
解釈の違い
それを警察がマスコミを使って、青汁王子みたいに悪人に仕立てようとした。
それをN国が国会で質問したから、ばれそうになって白を切った
258:デフォルトの名無しさん
21/08/05 17:25:15.95 I7FszFTK0.net
>>257
ちなみに
5chで
マルチポストしたら
逮捕されるかもしれないって
知ってた?
259:デフォルトの名無しさん
21/08/05 17:29:15.92 I7FszFTK0.net
逮捕はされないかもしれないけど
自分の悪行を
棚に上げて
正義面したら
地獄へ落ちちゃうよ
閻魔様に
舌を抜かれちゃうんだよ
怖いよ
260:デフォルトの名無しさん
21/08/05 17:32:22.30 I7FszFTK0.net
検察も
警察も
裁判も
怖くないよ
地獄へ落ちると怖いよ
舌を抜かれて
張りの山を登らされて
業火に焼かれるんだよ
熱いよ
痛いよ
怖いよ
261:デフォルトの名無しさん
21/08/05 18:10:22.22 r/zZzNU40.net
きもこわ
262:デフォルトの名無しさん
21/08/05 22:31:27.66 vSsQCnpga.net
別に地獄に落ちるのは怖くないが
昔の人の妄想だし
警察、検察に痛くもない腹を触られるのは怖い
263:デフォルトの名無しさん
21/08/05 23:40:13.64 6menK19J0.net
地獄は怖いよ
怖くないって言ってる人
強がり
一番いけないのは
自分のことを棚に上げて
自分が正義だって言う人
地獄へ行くよ
閻魔様に舌を抜かれるよ
痛いよ
でも逮捕はされないかもしれな
でも地獄の方がもっと怖い
264:デフォルトの名無しさん
21/08/06 09:34:44.10 7P/+UMXla.net
悪魔の証明みたいだが地獄は存在しない
人間は死んだらそこで意識は消滅。無になる。
意識は脳の中の電気信号の集合だから
脳が動かなくなると意識は永遠に消えてなくなる
265:デフォルトの名無しさん
21/08/06 20:13:46.87 qRWxBcUir.net
1. 世界とは事実の総体である。
2. 世界とは<私>の世界である。
2-1. 故に、世界の限界とは<私>の限界である。
2-2. <私>は死なない。視野の端が存在しないように、世界の死は存在しない。
2-2-1. 故に、地獄の存在は事実ではない。
2-2-2. 地獄について語ることはできない。
3. 語りえないことについては沈黙しなければならない。
QED?
266:ハノン
21/08/06 21:35:40.63 .net
>>265
その括弧つきの私(<私>)とは何かを十分に説明していませんね‥‥
267:デフォルトの名無しさん
21/08/06 22:04:45.00 qRWxBcUir.net
<私>とは、この私の世界の開闢者。
お前にとっての私ではなく、私にとっての私。
ヒュームが言うところの自我。
268:デフォルトの名無しさん
21/08/07 00:33:19.88 ctvRT72B0.net
地獄を知ってしまったら
もう地獄はあるよ
自分のことを棚に上げて
他人をバカにしたら
地獄行きだよ
地獄は怖いよ
269:デフォルトの名無しさん
21/08/08 22:12:00.50 Ullx8amr0.net
自分のことを棚に上げる
一番悪い事
地獄に落ちて
閻魔様に舌を抜かれて
針を飲まされるよ
270:デフォルトの名無しさん
21/08/09 12:44:08.03 GX8oEfXz0.net
そういうのを信じてくれると
犯罪が減るからべつにいいけど
私は信じていないけど
271:デフォルトの名無しさん
21/08/09 21:13:44.03 gRn7tUgS0.net
人に迷惑をかけるのは悪い事
地獄に落ちないかもしれない
でも自分のことを棚に上げて
人に迷惑かけたら
地獄に行く
警察もヤクザも
怖くない
地獄は怖いよ
272:デフォルトの名無しさん
21/08/12 00:48:05.26 xG1RPqdX0.net
スクレイピングは逮捕される危険があるって聞いたんだけどマジ?
273:デフォルトの名無しさん
21/08/12 08:20:26.43 oGP6NDDs0.net
危険ならあるけど実際にどうかは個別案件によるんじゃね
274:デフォルトの名無しさん
21/08/12 09:52:15.39 e+dZJ+jE0.net
起訴・有罪までは滅多に行かんとは思うが
逮捕までならありえなくもない
275:デフォルトの名無しさん
21/08/12 13:43:21.85 Uyxv6qpU0.net
突然民事訴訟を起こされて
賠償金を要求されることは十分にあり得る
276:デフォルトの名無しさん
21/08/12 16:10:50.05 oGP6NDDs0.net
ネットだからまずは開示請求からだね
「突然」賠償請求はない
277:デフォルトの名無しさん
21/08/12 16:42:48.35 NvgIkHB7M.net
受ける方からしたら突然賠償請求だろ
開示請求なんて直接は来ないよね
278:デフォルトの名無しさん
21/08/12 16:50:15.85 drSdi1s70.net
逮捕も賠償も怖くない
地獄へ行くのが怖い
でも地獄へは行かないかもしれない
でも自分のことを棚に上げて
人の嫌がる事ばかりしてると
地獄へ行く
279:デフォルトの名無しさん
21/08/13 01:45:34.20 kzYHP2KN0.net
じゃあrobots.txtを遵守していればスクレイピングしてもOKなんですね?
280:デフォルトの名無しさん
21/08/13 02:19:03.50 BSEOqpqJ0.net
他者に被害を主張されたらトラブルになる可能性がある。
それだけ。
いいこともそうでないことも、両方ある。
他人に聞いてもムダ。
281:デフォルトの名無しさん
21/08/13 09:28:36.17 eq2Tc8oG0.net
>>277
開示請求は裁判所を通してプロバイダに請求が行くんだけど
プロバイダは顧客である「受ける方」に無断で開示は通常しないで
まずは開示を許可するかを「受ける方」に訊いてくる
だからその段階でなにか事が進んでいるんだなということはバレる
あくまで「突然」賠償請求が来るなんてことはない
282:デフォルトの名無しさん
21/08/13 09:32:36.58 eq2Tc8oG0.net
ネットに限らず相手の素性もわからないのに突然賠償請求なんてできやしない
まずは相手方の特定から始めないとどうにもできない
たとえば道歩いていていきなり殴られて怪我しても
相手がどこの誰なのかがわからなければどうしようもない
警察沙汰にして警察が相手の素性を教えてくれればなんとかなるが
教えてくれなければ泣き寝入りよ
ネットはいわゆる「足がつく」状態だから開示請求かければなんとかなる可能性が高いだけ
いきなり賠償請求できない点はオンもオフも何も変わらない
283:デフォルトの名無しさん
21/08/13 09:34:43.40 eq2Tc8oG0.net
あらかじめ一定の社会的関係に入っている間柄なら別よ?
たとえば会社でセクハラされた・モラハラされた
そんな話だったら「突然」賠償請求は来るさ
そうなじゃなくてネット上でまったく関係ない素性も知れない第三者に損賠請求とか
「突然」できるわけがないだろうが
284:デフォルトの名無しさん
21/08/13 23:24:19.38 1DHqOLSr0.net
Rubyの開発ではglibは使われてますか?
285:デフォルトの名無しさん
21/08/18 05:53:03.10 yThqaD4x0.net
glib2と連携するGemがあるぐらいだから、
使われてると思うよ。
286:デフォルトの名無しさん
21/08/30 19:49:51.62 CW7ccSgo0.net
警察も検察も被告になることも怖くない
でも地獄は怖い
迷惑かけるだけなら
地獄へ行かないかもしれない
でも自分のことを棚に上げたら
地獄行き
287:デフォルトの名無しさん
21/08/30 21:27:50.25 Cj0Y+5WJ0.net
>>286
どんな理屈や!w
288:デフォルトの名無しさん
21/09/09 01:33:06.63 DPdnZbQ70.net
だめだ
また自分のことを棚に上げて
他人に説教
してしまってる
そんなに地獄に落ちたいのか
289:デフォルトの名無しさん
21/09/10 23:29:53.30 VnjRnmAy0.net
自分のことを棚に上げて
また人に迷惑かけてる
地獄へ落ちるよ
290:デフォルトの名無しさん
21/09/11 01:42:22.44 Vndiun780.net
その理屈やと、おまえが地獄に落ちるで!
291:デフォルトの名無しさん
21/09/11 16:37:37.06 QpCgqUja0.net
rubyって宗教色が強いんだな。
292:デフォルトの名無しさん
21/09/11 16:46:51.58 Ewyyihq/0.net
作者がモルモン教だからな
293:デフォルトの名無しさん
21/09/15 02:39:42.52 7Lql01au0.net
人の嫌がる事ばかりする
自分のことは棚に上げる
警察もヤクザも怖くない
地獄はある
地獄は怖い
294:デフォルトの名無しさん
21/09/15 19:07:23.60 0q0CE+HI0.net
スクレイピングすると地獄へ落ちるって本当ですか?
295:デフォルトの名無しさん
21/09/15 19:39:53.02 /dXe9qzn0.net
地獄に落ちたことのある奴に聞け。
296:デフォルトの名無しさん
21/09/15 20:36:57.26 BDtg+sEir.net
地獄は超暑かったぞ
それでも真夏の都心よりマシだが
297:デフォルトの名無しさん
21/09/18 03:38:03.71 YPBxfQEw0.net
スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります
298:デフォルトの名無しさん
21/09/18 03:44:47.50 VuuEM7MI0.net
あるわけねえやろ!w
299:デフォルトの名無しさん
21/09/18 08:03:58.41 r9kwg+sT0.net
5年分の過去分は一度取得すれば良いだけなのであれば待ち処理入れつつやれば問題ないと思う
仕事であるスポーツ連盟のホームページを20分おきにスクレイピングしてる
これは確認して許可取ってるけど。
300:デフォルトの名無しさん
21/09/18 16:38:53.47 1jv0Ew7Ba.net
Rubyはgetsでコマンドプロンプトの入力を受け取れますが、
入力方法をbashのようにできないでしょうか。
上キーを押すとコマンドが再表示される等です。
301:デフォルトの名無しさん
21/09/18 16:58:05.98 XeK+rYrj0.net
>>300
URLリンク(docs.ruby-lang.org)
302:デフォルトの名無しさん
21/09/18 18:14:06.76 J85RgKD50.net
頭のおかしい人に以下のようなことを言われました
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか?
303:ハノン
21/09/18 19:46:07.33 /DXMasS60.net
マルチポスト禁止、クロスポスト推奨
というのは、遠い昔 fj でのルールではありましたが 2ch/5ch では無意味ですね、だってクロスポストできないし
304:デフォルトの名無しさん
21/09/18 20:35:36.57 VuuEM7MI0.net
>>303
だからマルポは?
できないのはクロポなんやろ?
305:ハノン
21/09/19 00:20:00.12 QR0Sxfu+0.net
>>304
回避方法がないのに一方的にマルチポストを避難するのはフェアではないと思いませんか?
306:デフォルトの名無しさん
21/09/19 02:58:23.74 y7Uebvof0.net
自分のことを棚に上げて
正義面するから
罰が当たったのかも
しれない
でも現世の罰は
怖くない
地獄へ落ちるのは怖い
地獄は怖いよ
307:デフォルトの名無しさん
21/09/19 11:25:51.22 69z175Yv0.net
>>305
クソみたいな詭弁に意味はない。
308:デフォルトの名無しさん
21/09/19 12:38:01.81 /yxUr6Cya.net
ついでに肝心要なパケットは欠損させておくと尚良し
309:デフォルトの名無しさん
21/09/19 22:18:51.00 BpRp3Dad0.net
>>301
超サンクス
310:デフォルトの名無しさん
21/09/21 18:45:09.80 0Go6zndF0.net
テキストファイルの処理で、段落ごとに時間のかかる作業(数時間単位)を回してるのだけど
その対象のテキストファイル(data.txt)は処理中に追加で内容を追記していくようになっている
def func()
# (ここにすごく時間のかかる処理)
end
f=File.open("data.txt", 'r:UTF-8'){|f|
f.each_line(rs=""){|l|
func()
}
}
ここで、f.each_lineの処理って、関数funcを実行している最中は次のループに行かないはずだよね?
動かしていて、どうも先読みしているような挙動を示しているのだけど、funcの処理が終わるまでは
先読みしないように指定ってできる?
たとえばテキストの内容が
A
B
C
となっていて、段落Aの処理中にBとかCの内容に手を加えたり、新たにDという内容を末尾に加えたりしたい
でも、どうもタイミングによって、最初Aだけだった内容でAを処理中にBを加えた時点ではすでに先読みしてて
Bの処理を飛ばして、それより時間的にも位置的にも後に追加したCの処理をしたり、あるいはCも飛ばして
Dを処理したりしてるような
このあたりのファイルポインタの動きを説明してある情報源はない?
311:デフォルトの名無しさん
21/09/21 19:08:28.98 SK/JWtta0.net
先読みバッファの都合でそうなることもあんのかね。知らんけど。
読むタイミングで、tellの結果にseekしたらええかも?f.seek(f.tell())みたいに。
あるいは、バッファを無効にするか。ただし、これは勧めない。テストならばまあ。
情報というか、その手の高レベルなファイル関連関数は、高速化のために裏でバッファを活用してるので、その挙動を想像すれば。
312:デフォルトの名無しさん
21/09/21 22:56:27.09 0Go6zndF0.net
>>311
バッファ無効にするのにsyncなんてメソッドがあるのですね
テストみたいなもんなんでこれ使ってやってみます!
ありがとうございました
313:デフォルトの名無しさん
21/09/22 12:23:29.69 wRl+SBDi0.net
>>312
もっかい言うけど、バッファ無効はほどほどにな。
ストレージがすり減るぞ。
314:デフォルトの名無しさん
21/09/23 12:52:09.43 7tGJmFKPF.net
rubyのglobってなんでこの名前なんですか?語源というか理由は?
315:デフォルトの名無しさん
21/09/23 12:53:36.67 7tGJmFKPF.net
>>313
SSDの方が寿命速い説?
316:デフォルトの名無しさん
21/09/23 13:39:57.36 sOtSHC530.net
>>314
書き込む前にググれ!
URLリンク(ja.wikipedia.org)
317:デフォルトの名無しさん
21/09/23 14:17:52.01 FwYHDvYwF.net
xargs にすれば良かった
318:デフォルトの名無しさん
21/09/26 02:01:31.29 a7XkizLe0.net
人に迷惑をかけるのはしょうがない
でも
自分のことを棚にあげたら
地獄だよ
319:デフォルトの名無しさん
21/09/26 22:14:40.89 5RNiLxHe0.net
>>310
基本的に、読み込み用ファイルに書き込まないようにすべき。
io.seek で使う、ファイルポインターがずれる
例えば、配列でも同じ。
読み込み用配列を読み込みながら、
読み込み要素の前後に、要素を追加・削除すると、要素がずれるのでバグる
基本、同一ファイルじゃなく、入力用・出力用の2つが必要。
それか、データベースでやるとか
シェルスクリプトとか、関数型のElixir のパイプラインみたいに、
元のファイルを更新せずに、次々と出力ファイルを新規作成していくべき
処理A | B | C
他には、処理を分けられるなら、分けた方がよい
普通、バッファリング無しのモードは、
ユーザーの入力を待つような場合に、端末で使うもの。
こういうバックグラウンド処理では使わない
例えば、1回のシステムコールで、1000バイトの読み書きできるのに、
バッファリング無しなら、1000回もシステムコールを呼ぶから、処理時間が千倍になる
バッファリングとは、システムコールする回数を減らすために、
ある程度データが溜まるのを待ってから、処理を行うものだから
320:デフォルトの名無しさん
21/09/26 23:33:39.09 6v1pd5GW0.net
余計なお世話や。w
ほっといたれ。
321:デフォルトの名無しさん
21/09/28 14:07:16.12 yeB6oI220.net
ファイルパスから簡単に、ディレクトリ名だけを取り出す方法がありますか?
今は、下のようにやっています
file_path = "C:/Users/Owner/Documents/test/a.txt"
p dir_path = File.dirname( file_path ) # ディレクトリパスを取り出す
#=> "C:/Users/Owner/Documents/test"
p dir_name = File.basename( dir_path )
#=> "test"
322:デフォルトの名無しさん
21/09/28 14:19:10.90 nD0g4rLvF.net
file_path = "C:/Users/Owner/Documents/baka.test/a.txt"
323:デフォルトの名無しさん
21/09/28 14:44:05.17 zeEpbK0KM.net
>>321
必要充分だと思うがなあ。
自分でメソッドにくくりだすくらいやないの?
どうしても圧縮したいなら、text.sub(%r{.*/(.*)/.*}){$1}とか?
未確認。ワイならやらん。w
324:デフォルトの名無しさん
21/09/28 16:33:03.83 WAJRktfF0.net
>>321
標準添付ライブラリの pathname
325:デフォルトの名無しさん
21/09/30 20:28:46.68 AJpnjzaB0.net
rubyだけdistrolessイメージない
なんでハブられてるの?
Googleはruby嫌いなの?
URLリンク(github.com)
326:デフォルトの名無しさん
21/09/30 20:37:22.69 I7uygAb2M.net
Google社内ではRubyの使用が許可されていない
当然だよね
327:デフォルトの名無しさん
21/09/30 20:40:38.51 BaUXpZJur.net
>>326
googleって言っても一枚岩じゃないからそれは完全に間違い
328:デフォルトの名無しさん
21/09/30 21:14:17.31 eVTcYnny0.net
バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくいっつーのはあるやろな。
329:デフォルトの名無しさん
21/09/30 22:37:54.54 Q+Yf9LrK0.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
330:デフォルトの名無しさん
21/10/01 04:21:27.55 YSb3+a7ia.net
>バージョン互換の低さ、信頼性の低さを考えたら、プロジェクトとして使いにくい
googleのAPIのことですか?
331:デフォルトの名無しさん
21/10/01 09:11:32.55 Bf6uh555M.net
プログラミング言語のシェア的にはdistroless対応の優先順位は極めて妥当
残念だけどもう昔のような人気言語じゃないんだよ、、、
URLリンク(insights.stackoverflow.com)
332:デフォルトの名無しさん
21/10/01 10:15:08.94 8GSBOhv80.net
>>330
自分に甘くて、他人に厳しいのはあたりまえやろ。w
おまえは違うのか?
333:デフォルトの名無しさん
21/10/01 10:34:29.22 PaEGpo5A0.net
AWS Lambda には、Ruby もある
Chef, Cookpad 製のItamae, AWS CloudFormation のKumogata2 もある。
まあ、Terraform のシェアが高くなったけど
Vagrant の作者・ワシントン大学の学生で、今世紀最大の起業家・
HashiCorp の創業者・Ruby/Go の神・Mitchell Hashimoto も、
今は、Goへ行ってしまった
Goプログラマーを募集中
YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、
Ruby on Rails → Go のキャリアパスを推奨している
PHP は、一生やらなくても良い。
新規の仕事が無いから、給料が上がらない。
保守要員は、給料が低いから
KENTAは常に、給料が高い新規プロジェクトを推奨している
334:デフォルトの名無しさん
21/10/10 15:27:42.39 QuuYHTx70.net
pp dmy={"VERSION"=>RUBY_VERSION, "ARGV"=>ARGV, "Dir.pwd"=>Dir.pwd}
でdmy=を消すと
Dir.pwdの . でエラーになっちゃうんですけど
syntax error, unexpected '.', expecting `end'
pp(puts)+hashのリテラルでうまい書き方ないんですか
335:デフォルトの名無しさん
21/10/10 16:08:30.52 2mgB061S0.net
>>334
ブロックとして解釈されてエラーになるので
puts({a: “a”})みたいに括弧でくくる
336:デフォルトの名無しさん
21/10/10 16:45:12.39 QuuYHTx70.net
>>335
エラーの意味が理解できました
ありがとうございます
337:デフォルトの名無しさん
21/10/10 18:30:23.02 bTjCEmsH0.net
classが全く理解できない。1日掛けても理解できない。俺は向いてないのか。。。
338:デフォルトの名無しさん
21/10/10 20:30:34.61 osHZfZYe0.net
Rubyのclassはそれ自身がオブジェクトだからねえ。
339:デフォルトの名無しさん
21/10/10 20:55:11.50 lB7MFpHR0.net
クラスの型紙を元に実体化させたものが、インスタンス。
クラス自体を変化させたものが、特異クラス
ここで、インスタンスと特異クラスの継承チェーンを考えてみる
最終的にメソッド探索チェーンは、直線になる必要がある。
それで継承チェーンに、インスタンスと特異クラスが順序よく割り込んでくる
インスタンスに無ければ、特異クラスで探す。
特異クラスにも無ければ、継承チェーンを遡って、親クラスのインスタンスで探す。
そこでも見つからなければ、親クラスの特異クラスで探す
みたいに、継承チェーンをドンドン遡っていく
340:デフォルトの名無しさん
21/10/10 20:56:55.24 Liv3MhTX0.net
ムリに「理解」しようとしてるからちゃうか。
あちこちのソースを適当に読んでたら、いずれスッと腑に落ちるときがくるやろ。
341:デフォルトの名無しさん
21/10/10 20:59:01.10 Liv3MhTX0.net
>>339
こういうふうに、知らない言葉と知らない概念をおっかけて「理解」しようとするのは、素養がなければツラかろう。
最初はとくに適当でええんや。
342:デフォルトの名無しさん
21/10/10 21:36:30.35 kKlMir+m0.net
338と339は新人が来てもこの調子なんだろうなぁ
343:デフォルトの名無しさん
21/10/10 22:52:57.48 fsOtTZslM.net
> お前は毎朝起きるたびに俺に負けたことを思い出すよ^^
あー、ホンッとに思い出すなあ(笑)
キチガイの嘘つきの低レベルFランの、
朝鮮ゴキブリBot君は、
チョン独特の「なにもできないけど俺のほうがジャップより偉い!」的な
ことはよーくわかったよ。
ホントなにもできない朝鮮ゴキブリBot君!
クソチョンw
344:デフォルトの名無しさん
21/10/12 00:48:53.92 Ihqyo7Sc0.net
地獄は怖いよ
345:デフォルトの名無しさん
21/10/20 02:49:58.32 7Ch1Hu5l0.net
スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか?
346:デフォルトの名無しさん
21/10/20 03:46:34.01 gq1XFNWx0.net
はい
347:デフォルトの名無しさん
21/10/24 12:07:05.65 xDtz/yW60.net
「Ruby」という商標についてなんですが
Rubyは同名の商標が多数登録されていますが、問題になった話を聞いたことがありません
他の言語も同様です
なぜ問題にならないんですか?
348:デフォルトの名無しさん
21/10/24 12:08:05.01 vH+4cvxG0.net
はい
349:デフォルトの名無しさん
21/10/24 15:50:39.91 TxsSkV/ar.net
区分が違うからだろ
350:デフォルトの名無しさん
21/10/25 21:56:04.74 b+7kI3n60.net
スクレイピングに興味があるのですがrobots.txtを守っていても訴えられる危険があるって本当ですか?
351:デフォルトの名無しさん
21/10/25 23:56:18.76 1eqHtBhs0.net
訴えられる危険はいつでもどこでもある。
道を歩いていても、家の中にいても。
352:デフォルトの名無しさん
21/10/26 02:13:44.51 XIgoRovQ0.net
>>350
上級者になってからやらないと危険だよ
初心者がよくわからないままやるとサービス妨害になる可能性はまあまあある
353:ハノン
21/10/29 21:42:34.32 TYU6SVP40.net
>>352
サービス提供側に原因があるというのにサービス妨害とはこれいかに?
354:デフォルトの名無しさん
21/11/06 19:23:11.48 NiwSrOA00.net
>>297
リブラハック事件を念頭に置いて居るのだと思います。
法的リスクを回避する方法はありません。
事業を行うのであれば、あるいは人生を送る以上法的リスクは常にあります。
入門書に記載出来る話ではないです。
リブラハック事件は、不起訴処分となってますが、20日間の勾留となりました。
余談ですが、旧7帝大卒、上場企業所属の場合、余程のことがない限り法的リスクは回避できます。
355:デフォルトの名無しさん
21/11/06 19:27:41.07 NiwSrOA00.net
>>350
中小企業で知財を担当してますが、常に訴訟してます。
業務妨害罪で争ったことはありませんが、模造品による損害賠償事件はチョッ中です。
356:デフォルトの名無しさん
21/11/06 19:31:11.06 NiwSrOA00.net
>>355
ちなみに、事件ばかり担当すると会社の仕事は超楽です。
裁判期日は多くても2ヶ月に1回だからです。
社内では、暇なおじさんと思われてます。
だから、プログラミング好きには知財は天国です。
まあ、会社によるのかもしれません。
357:デフォルトの名無しさん
21/11/19 07:32:40.55 UZar/UR10.net
Ruby on Rails 製のGitLab の時価総額が、1.9 兆円だって!
358:デフォルトの名無しさん
21/11/19 10:13:01.84 eyeX0xyMF.net
なるほどおめでとう
URLリンク(gitlab.com)
359:デフォルトの名無しさん
21/12/07 11:50:44.28 sVKUttQ/0.net
ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか?
360:デフォルトの名無しさん
21/12/07 15:28:09.99 m3nJJ9T10.net
waiteかければ十分だと思うよ
361:デフォルトの名無しさん
21/12/07 23:29:07.13 JKy0RWKD0.net
botからのアクセスはどこのサイトも来まくってるから、スクレイピングを気にするかは分からないけど、
waitを5秒とかいれとけば。
クレカ明細をスクレイピングしようとしてたら403になって数時間アクセス出来なくなったよ
362:デフォルトの名無しさん
21/12/17 21:31:46.70 tWB5K5S10.net
David Heinemeier Hansson(DHH), 2021/12/16
Rails 7: The Demo
URLリンク(www.youtube.com)
もう、Rails 7.0.0.rc1 か。
Ruby 3.0.3
363:デフォルトの名無しさん
21/12/26 19:54:32.13 gUkCfD0ur.net
Happy Christmas!!
Ruby 3.1.0 Released
URLリンク(www.ruby-lang.org)
364:デフォルトの名無しさん
22/01/09 01:26:06.08 wKoMs7Y50.net
そいつは、>1 のテンプレをしょっちゅう改変している、テンプレ改変荒らし。
基本的に、ソースコードを書かない香具師は荒らし
「Ruby, Rails, クソチョン」などを、NGワード登録推奨とか、
自分が有利なように、いつもテンプレを改変する
荒らしがスレ主として、居座っているので、
まともな人がスレ立てして、テンプレも元に戻した方がよい
荒らしは必ず、短文で2回以上書き込む。
必ず、複数人がいるように見せかける
365:デフォルトの名無しさん
22/01/10 00:21:27.01 MINWORCd0.net
スレ立てるまでもない質問はここで 158匹目
スレリンク(tech板:538番)
ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた
基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理
Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている
これほど、良い教科書が揃っているフレームワークはない!
Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw
日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA
366:デフォルトの名無しさん
22/01/13 11:23:57.64 hewkBnV10.net
wxrubyのインストールができません。
gem install wxrubyコマンドで
ERROR: Could not find a valid gem 'wxruby' (>= 0) in any repository
と出てインストールできないです。
バージョンはruby 3.1.0p0 (2021-12-25 revision fb4df44d16) [x64-mingw-ucrt]
367:デフォルトの名無しさん
22/01/13 12:13:19.79 /N9d9IBk0.net
% gem sources -l
*** CURRENT SOURCES ***
URLリンク(rubygems.org)
となる?
あとほんとにbundler経由でなくていいのか再考してみて
368:デフォルトの名無しさん
22/01/13 13:32:13.20 hewkBnV10.net
>>367
>となる?
なります。
369:デフォルトの名無しさん
22/01/13 14:14:29.91 /N9d9IBk0.net
じゃあわからん
$ gem update --system
して更新がもしあれば治るかも
370:デフォルトの名無しさん
22/01/13 15:06:21.76 ah8E1hap0.net
>>366
wxrubyがいつのRubyのときに開発されていたか調べましたか?
wxrubyがいまのRuby 3.1.0p0で動くと思いますか?
371:デフォルトの名無しさん
22/01/13 18:29:42.26 hewkBnV10.net
>>370
そうなんですか。
tk使います。
372:デフォルトの名無しさん
22/01/13 18:36:09.58 Eko2QLhP0.net
知らんがな、っつー話やけどな。w
互換性のなさはなんとかならんのか。
373:デフォルトの名無しさん
22/01/13 19:22:50.06 ah8E1hap0.net
主に使おうとする道具の状態を確認しないのですか?
切れないハサミで紙を切ろうとするのですか?
どうしてもwxrubyを使うなら、せめてrbenvでも良いのでwxrubyが確実に動きそうなruby環境(Ruby 1.9.xぐらい)を用意したほうが賢明です。
あるいは、自分でwxWidgetsをRuby 3.xで動くように頑張ってbindingするか。
ちなみに、わたしはメンドクサクなって、wxWidgetsのcoreなところをRuby 2.7ぐらいでportingしている途中で放置したままです。
374:デフォルトの名無しさん
22/01/15 13:46:06.28 Bc4m3wjx0.net
nokogiriでスクレイピングしようとしていたら
逮捕されるかもしれないと言われましたが
本当でしょうか?