X



Ruby 初心者スレッド Part 65
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 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
0002デフォルトの名無しさん (ワッチョイ cb80-JI52)
垢版 |
2018/12/22(土) 04:46:34.41ID:84E3pYZa0
Rubyの絵本、2008
たのしいRuby 第5版、2016

3ステップでしっかり学ぶ Ruby入門、2018

かんたん Ruby (プログラミングの教科書)、2018

プロを目指す人のためのRuby入門、2017

改訂2版 パーフェクトRuby、2017

改訂2版 Ruby逆引きハンドブック、2018 (中級者向け)

Effective Ruby、2015 (中級者向け)

メタプログラミング Ruby 第2版、2015 (中級者向け)

リファクタリング:Rubyエディション、2010 (中級者向け)

RubyでつくるRuby ゼロから学びなおすプログラミング言語入門、2017 (中級者向け)

Rubyのしくみ、2014 (中級者向け)

改訂4版 基礎 Ruby on Rails、2018

パーフェクト Ruby on Rails、2014

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例、2014

オブジェクト指向設計実践ガイド Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方、2016

Seleniumデザインパターン&ベストプラクティス、2015
0003デフォルトの名無しさん (ワッチョイ cb80-JI52)
垢版 |
2018/12/22(土) 04:47:41.34ID:84E3pYZa0
開発環境

RDE
Windows用IDE
https://ja.osdn.net/projects/sfnet_rubyde/
以下、RDEの使用説明
http://rubyde.sourceforge.net/hiki/ja/FrontPage.html

RDEのデバッグ機能を使う場合、設定においてデバッグオプションを「-r debug2」から「-r debug」と書き換えて、
ruby付属のdebug.rbを使うようにすること。
RDE付属のdebug2.rbは、ruby1.8用のスクリプトのため、現在のrubyのversionには使えません

サクラエディタ
Windows用高機能エディタ
https://ja.osdn.net/projects/sfnet_sakura-editor/
以下、ruby用設定の説明
http://supportdoc.net/support-sakura/ruby.html

Emacs
GNUの高機能エディタ

Vim
Emacsと同じぐらい有名なCUIベースのエディタ

VSCode
マルチOSに対応したマイクロソフト社製のソースコードエディタ
https://code.visualstudio.com/download
0005デフォルトの名無しさん (ワッチョイ cb80-JI52)
垢版 |
2018/12/23(日) 02:23:36.39ID:lfndw29D0
前スレの、>995

>rubyでサイトにアクセスさせてたんだけど、そのrubyが急に動かなくなってしまいまして、どうしたもんかと

selenium-webdriver(SW) を使っているなら、ブラウザが新しくなってエラーが出るとか?
SW, chromedriver を最新にすれば?

最新のchromedriver をダウンロードする
http://chromedriver.chromium.org/home

レポジトリの情報を見る。
gem search -r selenium-webdriver
#=> version 3.141 が最新

グローバルにインストールする。
gem install selenium-webdriver

インストール済みGemを確認する。
gem list selenium-webdriver
0008デフォルトの名無しさん (アメ MM59-wUZI)
垢版 |
2018/12/26(水) 20:00:19.74ID:v8erlN15M
> なお、「Ruby」で採用されているJITコンパイラーは、他の言語で採用されている一般的なものとは異なり、
> C言語のソースコードをファイルとしてディスクに書き、通常のCコンパイラーを用いてネイティブコードに変換することでJITコンパイルを行うという手法(MJIT)を採用しているという。
> そのため、「Ruby 2.6」でJITコンパイラーを利用するには「GCC」、「Clang」、あるいは「Microsoft VC++」によってビルドされた「Ruby」実装と、それをビルドしたコンパイラーを実行時に利用できる必要がある。

トッポいなぁwww
0010デフォルトの名無しさん (ワッチョイ 237c-ESEE)
垢版 |
2018/12/26(水) 23:00:34.51ID:lC66I3j80
Cみたいに、構造体CPersonを要素とする配列を作りたいんだけど、どうやればいい?
CPerson Struct.new(:name, :age);

persons = [
CPeson.new("Taro Yamda", 25),
CPeson.new("Yuko Suzuki", 20),
CPeson.new("Erika Toda", 30)
];
で定義して、参照は、

k = 要素番号;
name = persons[k].name;
age = persons[k].age;


みたいにするのが標準?
0012デフォルトの名無しさん (ワッチョイ 7680-v93B)
垢版 |
2018/12/27(木) 00:05:55.93ID:zcYaa59I0
Effective Ruby の著者のサイトに、本のソースコードが載っている

項目10 : 構造化データの表現には、Hash ではなく、Struct を使おう
https://github.com/pjones/effrb/blob/master/oop/struct_test.rb

ハッシュキーは内部実装の詳細情報なので、
これがユーザーに公開されているのは、良くないから

一方、Struct は、Class Generator。
簡易クラス
001412 (ワッチョイ 7680-N9Dm)
垢版 |
2018/12/27(木) 02:41:44.91ID:zcYaa59I0
Struct は入門書にも書いていないのに、これを使うのは物好きな人だろう。
書き捨てのツール作りとかに使うのかも

でも、Rails のような大規模プログラムでも使っているけど
0015デフォルトの名無しさん (アウアウエー Sa02-n9eg)
垢版 |
2018/12/27(木) 07:26:53.72ID:4d8pe2yNa
>>8
お前さんが考えてる「遥かにスマートな方法」って何?
0018デフォルトの名無しさん (ワッチョイ 5ae3-h5Ay)
垢版 |
2018/12/27(木) 11:52:39.98ID:lYmcIHJL0
>>10
CPerson.new(・・・)
の代わりに、Syntax Suger として
CPerson[・・・]
を使えるらしいので、やってみたところ上手くいった:

CPerson = Struct.new(:name, :age);  # CPerson型の型定義

$g_persons = [
 CPerson["Taro Yamda", 25],
 CPerson["Yuko Suzuki", 20],
 CPerson["Erika Toda", 30]
];
for k in 0..2
 name = $g_persons[k].name;
 age  = $g_persons[k].age;
 print name, ", ", age, "\n";
end
0022デフォルトの名無しさん (ワッチョイ 6e8a-ZwQs)
垢版 |
2018/12/27(木) 12:59:00.75ID:fJVcpN3h0
print name, ", ", age, "\n";
ってのはただの例だろうからこの場合eachよりふさわしい方法はないでしょ
代替案も言えない屑は勝手に萎えてろ
0029デフォルトの名無しさん (ワッチョイ 7dc7-NHNr)
垢版 |
2018/12/27(木) 14:21:51.98ID:M6yD45RN0
>>28
いやだからさ、初めから配列arrの要素に対してこういうことをした結果を出力したいっていうのであれば
puts arr.map{|e| hoge}.join(s)
て書くのは当たり前だけど、この元の発言の人はそんなこと言ってなくてむしろ配列の参照の仕方について言ってるんだから上の説明じゃ全然駄目だってことくらいわかるだろ
ドヤ顔で他人見下して見当はずれの発言しているあんたが痛いって話だよ
0031デフォルトの名無しさん (ワッチョイ 7d98-4fyn)
垢版 |
2018/12/27(木) 17:27:15.49ID:xdSwIlO30
>>29
やっぱアスペじゃん

俺は >>19 の書き込み、forを使ってるものを「forなんて殆ど使わない」と言って
eachを使って書き換えました。(どやぁ)
っていうのを見て、萎えた(eachも使わねーよ)って言ってるだけだから

arrの要素に使ってこういうことした結果〜とか
そんな話してねーから
0032デフォルトの名無しさん (ワッチョイ 95b3-ZwQs)
垢版 |
2018/12/27(木) 18:34:27.49ID:PMl9P7n20
質問者の意図を無視して勝手に副作用だの言ってる奴いて草
アスペはほんと言うことがめちゃくちゃだな
0034デフォルトの名無しさん (ワッチョイ 256c-ZwQs)
垢版 |
2018/12/27(木) 19:12:45.53ID:lMOgiRq50
ID:xdSwIlO30
こいつ本気でアスペだろ
質問者への回答へのレスに質問者の意図を無視して上から目線で見当違いないちゃもんつけてんだから
本当に意味不明だわ
初めから属性を出力することが目的だってなってたら誰だってmapしてjoinなりするだろ
当たり前のことでマウントとって最高に気持ち悪い
0035デフォルトの名無しさん (アメ MMa1-aqDf)
垢版 |
2018/12/27(木) 19:15:44.30ID:dG7CRoznM
副作用うんたらかんたら君は一切画面出力せずにプログラミングしろよwww
ファイルの読み書きも禁止。全部メモリ上だけでやれやwwwww
0036デフォルトの名無しさん (アークセー Sx75-5/pO)
垢版 |
2018/12/27(木) 19:19:47.51ID:142Xb6wkx
まとめるとこうだな
for文よりary.each { |e| hoge(e) }って書いた方が一般的だよってレス(>>19)に対して
hoge(e)のところがたまたま今回putsだったってだけでputs ary.map { |e| fuga(e) }って書かないとか萎える(>>20)
と意味不明なこと言って荒らしまわってる奴がいる
精神障碍者の相手をしてはいけないということだ
0037デフォルトの名無しさん (ワッチョイ 5ae3-h5Ay)
垢版 |
2018/12/27(木) 19:45:12.62ID:lYmcIHJL0
試してないけど、C/C++ ばっかりの自分には、
 $g_persons.each { |p| printf( "name = %s, age = %s\n", p.name, p.age) }
なら分かるけど、
 $g_persons.each{|p|puts 'name = %s, age = %s' % p.to_a}

は、% p.to_a の部分がまったく分からないといっても過言ではない。

' の後ろの % って何? p.to_a も分からない。
0038デフォルトの名無しさん (ワッチョイ 5ae3-h5Ay)
垢版 |
2018/12/27(木) 19:52:19.85ID:lYmcIHJL0
ああ、分かった。% は、sprintf の syntax suger みたいなものらしいね。

でも、この場合、p.to_a は、本当は良くないと思うよ。
なぜなら、そもそも構造体自体が、「並び方」に依存しないプログラムを
作るために用いるものなのに、その目的に逆行してしまうから。

to_a だと、構造体を定義したときにメンバが並んでいる順に配列のように
取り出してしまう。ところが、構造体は、そういう順序に依存するプログラム
に問題がおきやすいから導入するもんなんだよ、これが。
0039デフォルトの名無しさん (ワッチョイ 7d98-4fyn)
垢版 |
2018/12/27(木) 21:07:24.43ID:xdSwIlO30
>>38
いい答えだね。
だけどアスペは文脈がわからないからこう言うんだ。

お前が言ってることは>>18に対してのレスではない!と

>>18へのレスではなく、>>19へのレスなのは見ればわかるが
アスペは文脈がわからないから関係ない話をしてるように見える。
関係ない話をするな。俺に攻撃をするな。と)
0042デフォルトの名無しさん (ワッチョイ 555d-ZwQs)
垢版 |
2018/12/27(木) 22:55:34.21ID:oOio5T5+0
素で気持ち悪いなこいつ。もはや日本語による意思疎通は不可能だな
>>20の異常性が分かるまとめ

>>18 「生のトマトが嫌いなんだけどどうやったら克服できるだろうか」
>>19 「火を通したトマトを食べてみたら案外慣れるかもよ」
>>20 「トマトは生が一番おいしいに決まってるだろ。火を通すとか萎えるわ」
>>19 「生が苦手って言ってるからそれ以外を勧めてるんだけど……」
>>20 「いや、俺はお前に言ってんだけど。トマトは生に限るだろ」
>>19 「えぇ……」
0044デフォルトの名無しさん (ワッチョイ 76e8-5/pO)
垢版 |
2018/12/27(木) 23:01:03.71ID:pGG7UwBL0
>>42
適確すぎて草
そしてアスペは例え話を理解できないらしいからきっとこれも理解できてねえぞ
0051デフォルトの名無しさん (ワッチョイ 7d98-4fyn)
垢版 |
2018/12/27(木) 23:35:57.25ID:xdSwIlO30
> >>42の20は普通に19への返事になってんでしょ

18が生のトマトが嫌いといってるのに、20で生のトマトが一番と言ってるって話
俺は>>18に対して何もレスしていない

この違いぐらいわかれよw
0053デフォルトの名無しさん (ワッチョイ dab3-ZwQs)
垢版 |
2018/12/27(木) 23:42:03.85ID:41ryAAF60
>>51-52
ここまで言わないとわからないとか脳みそ小学生以下だろ
>>42
20 「トマトは生が一番おいしいに決まってるだろ。火を通すとか萎えるわ」 も
19 「火を通したトマトを食べてみたら案外慣れるかもよ」へのレスであって18には何も触れてないじゃん
火を通したらいいかもよってアドバイスに対して「18には触れずに」トマトは生以外萎えるとかいうトンチンカンなこと言ってんのがお前

理解できないならマジで病院行くか死んだ方が良いよ
てかアスペって本当に比喩表現が理解できないんだな、コイツ本物のアスペだろ
0054デフォルトの名無しさん (ワッチョイ dab3-ZwQs)
垢版 |
2018/12/27(木) 23:43:05.82ID:41ryAAF60
あと絡んだ俺が言うのもなんだけどこいつとは会話が成り立たないから本当にスルーに限るな
障碍者はネット規制してほしいわ本当に
0057デフォルトの名無しさん (ワッチョイ dab3-ZwQs)
垢版 |
2018/12/27(木) 23:49:51.85ID:41ryAAF60
>>55
きもいわーお前マジで
ここまで行って理解できないなら本当に死んだ方が良いよお前
死ねよお前
みんなの迷惑なんだわ
さっさと死ね
0058デフォルトの名無しさん (ワッチョイ 7d98-4fyn)
垢版 |
2018/12/27(木) 23:53:08.13ID:xdSwIlO30
>>42を訂正するならこんなところだな

>>18 「生のトマトが嫌いなんだけどどうやったら克服できるだろうか」
>>19 「火を通したトマトを食べてみたら案外慣れるかもよ」
>>20 「焼きトマトとかまずいわ。煮た方が良いだろ」
>>19 「生が苦手って言ってるから焼いたほうが良いって言ってるんだが」
>>20 「だから焼いたらまずいってお前に言ってるんだよ。煮たほうがいいって提案してるじゃねーか」
0060デフォルトの名無しさん (ワッチョイ da9f-AbfN)
垢版 |
2018/12/28(金) 00:16:53.50ID:S+j8ANns0
比喩表現を理解できないやつって本当にいるんだね
>>42はそこそこうまく状況を再現してるしそれにいちゃもんつけてるのは当事者であるワッチョイ 7d98-4fynしかいないという
言ってることは支離滅裂だし自分が異常者で迷惑者だって気づかないものなのかね
0062デフォルトの名無しさん (ワッチョイ da9f-AbfN)
垢版 |
2018/12/28(金) 00:30:15.57ID:S+j8ANns0
>>61
気色悪いよあんた。友達も恋人もいないでしょ
>>58は全然スレの流れに沿ってないじゃん
これは親切心でいうけど、もしこれを本気で言ってるなら本当に発達障害だと思うから心療内科にでも行った方が良いよ
0064デフォルトの名無しさん (ワッチョイ dabd-AbfN)
垢版 |
2018/12/28(金) 01:12:04.28ID:EAGmNHe50
え、何言ってんのこの人
>>42はそこそこうまく状況を再現してる
>>58は全然スレの流れに沿ってないじゃん
ってあるのに「>>58>>42を訂正しただけだよ。」って会話が成立してないじゃん
やっぱり日本語が理解できてないじゃん
障碍者なら病院から出てきてみんなに迷惑かけないでよね
0075デフォルトの名無しさん (ワッチョイ 7d41-ZwQs)
垢版 |
2019/01/01(火) 23:39:40.12ID:zmCcMows0
アスペが自演失敗してて草
0076デフォルトの名無しさん (ワッチョイ 8b2c-otaJ)
垢版 |
2019/01/05(土) 07:29:32.98ID:vhTcM9vZ0
Software Design 12月号の特集が、Ansible と、
IT での時刻・時間(timezone, UTC、うるう秒、夏時間、元号)で、その特集の中で、
/usr/share/i18n/locales/ja_JP のera の所に、新元号を追加する方法が書いてある

その記事では、<U5E73> のような文字コードから表示するのに、
以下のようにRuby で変換しているけど、もっと簡単に出来ないかな?
(ただし、コードは少し変えた)

CodePoint = "<U003A><U5E73><U6210><U5E74><U0025>"

res = ""
res += CodePoint.gsub( /<U(.{4})>/ ) {
[$1].pack( 'H*' ).tap{ | obj | p obj }
.unpack( 'n*' ).tap{ | obj | p obj }
.pack( 'U*' )
}

puts res #=> ":平成年%"

以下の方法でも、文字を表示できる。
p "\u{1F1EF}\u{1F1F5}"
p "\u{5E73}" #=> "平"
0077デフォルトの名無しさん (ワッチョイ 1347-AbwM)
垢版 |
2019/01/05(土) 08:52:08.21ID:/v64JW470
>>76
puts CodePoint.gsub(/<U([0-9A-F]{4,})>/){ "" << $1.to_i(16) }
0079デフォルトの名無しさん (ワッチョイ 917c-aDDJ)
垢版 |
2019/01/05(土) 12:23:43.07ID:wMTnOPNR0
エイプリルフールに発表とかふざけてるよな
せめて2月11日にすれば良いのに
0080デフォルトの名無しさん (ワッチョイ 2b79-BXbj)
垢版 |
2019/01/05(土) 12:41:40.58ID:ZVOB0asR0
もっと早く発表しろって思うわ。
わざわざ Unicode に新元号を入れる枠まであるし、
なんで emacs-devel ML まで日本の新元号対応とかで、
わざわざ話題にしないといけないのか、マジで頭おかしいと思うわ。
どんだけ迷惑かけてんだって。
0082デフォルトの名無しさん (ワッチョイ 2679-qXdV)
垢版 |
2019/01/12(土) 13:26:01.98ID:60fuPcpZ0
Linux distroのdeveloperをやっているけど、
あるコマンドのオプションを問う問題で、
重箱の隅を突っつく問題なんか、分からんわ。
あんなの、非実用的、非生産的な問題で全く意味ない。
0083デフォルトの名無しさん (ワッチョイ fa90-Wnoh)
垢版 |
2019/01/12(土) 17:07:56.88ID:adzETivF0
Ruby初心者です。RubyとWindowsは相性が悪いって意見をよく見る気がします
どのように相性が悪いのでしょうか?またWindowsユーザーはLinuxを入れてそっちでRubyやったほうがいいのでしょうか?
0084デフォルトの名無しさん (アメ MM71-45a3)
垢版 |
2019/01/12(土) 17:15:31.42ID:xa1AucJlM
コミュニティが昔からwindowsとマイクロソフトを目の敵にしていてwindows環境を無視したやり方をゴリ押しすることが多い。
質問もwindows環境だと分かったとたんwindowsなんか使ってるのが悪いとなる。
ossプロジェクトもgithubがマイクロソフトに買収されたとたんにgitlabへの移行が相次ぐなどrubyコミュニティ特有。
圧倒的シェアを誇るVSCodeも宗教上の理由で使えずオワコン死臭エディタを薦められる。
0085デフォルトの名無しさん (ブーイモ MM71-oec2)
垢版 |
2019/01/12(土) 17:39:54.05ID:iezJoARlM
>>83
正確には、相性が悪い「ことになっている」
実際には今のWin10ならWSLを使えばほぼLinux同等にRailsを使えるんだけど、
作者のMatz含めプロのRubyユーザーってほぼ100%がマカーなんだよ
だからコミュニティでWin使ってるなどと言おうものなら>>84の通りたちまちリンチに遭う
このスレはまだマシな方だが、正直不快な思いをするだけだからお勧めできない
0086デフォルトの名無しさん (ワッチョイ 7102-Fjw0)
垢版 |
2019/01/12(土) 18:05:31.82ID:wLe9qPUM0
>>83
Ruby単体で使うならWindowsでも簡単に入れられるんだけど、いくつかのgemはコンパイルを前提にしているから、
そういうコンパイラ環境を(LinuxやmaxOSと比較して)手に入れにくいWindowsが敬遠されてるというのはあるね

もちろんやってやれないことはないんだけど、そんなとこで詰まるぐらいなら素直にUnix系を使っておいた方が
特に初心者ならいいだろうね
0087デフォルトの名無しさん (アウアウイー Sa45-7QjO)
垢版 |
2019/01/12(土) 18:37:16.80ID:evj+Zb3ua
>>80
そっか〜
クイズみたいで、ぎりぎりの方が楽しい。
まあ、システムの場合元号が切り替わった時にすぐに切り替えられないと大変
なのはわかるけどね。

ちなみに昭和に変わった時、私の会社のソフトは最初から変更の可能性のあるもの
について対応をした有ったので。一か所変えるだけで、全てが対応できた。
昭和天皇が亡くなった時、最初に問い合わせがあったのは日銀だった。まだ元号
決まっていなかったけど、対応済みという話をして安心してもらったこと思い出したよ。
0088デフォルトの名無しさん (アウアウイー Sa45-7QjO)
垢版 |
2019/01/12(土) 18:38:05.71ID:evj+Zb3ua
「昭和に変わった」じゃないな「平成に変わった」だったわ〜〜
0089デフォルトの名無しさん (ワッチョイ fa90-Wnoh)
垢版 |
2019/01/12(土) 20:26:43.79ID:adzETivF0
>>84
>>85
>>86
ありがとうございます
コミュニティがWindows嫌い、そういうのもあるんですね……
とりあえずWSLでLinux使ってみることにします!
0090デフォルトの名無しさん (ブーイモ MM71-oec2)
垢版 |
2019/01/12(土) 20:50:54.89ID:iezJoARlM
Win32ネイティブのRubyを使用せずにWSLを使うよう公式にアナウンスするだけで
ドザに対する、余計な手間をかけさせるだけのカス連中死ね、みたいなヘイトはだいぶマシになると思うけどね
未だに公式サイトがWSLを完全に無視したまま地雷だらけのASRやRubyInstallerへ誘導しているのは悪意しか感じないわ
0095デフォルトの名無しさん (ワッチョイ a514-Fjw0)
垢版 |
2019/01/13(日) 03:56:19.11ID:rZnPnQZ10
どう考えてもWSLの方が薦められるだろ
理由は>>94が薦められない理由を書いたら書いてやる

理由もなく薦められないというだけで信用してもらえると思うバカには
この程度の反論で十分だからさ

ということで、考えてもWSLの方が薦められる
0096デフォルトの名無しさん (ワッチョイ d62c-NvUN)
垢版 |
2019/01/13(日) 05:24:19.40ID:Cy6afJKh0
漏れは、Windows10 で、RubyInstaller のMSYS2 コンパイル環境なしのポータブル版で、C:\Ruby24-x64 に置いている

コンパイル環境なしだと、Websocket のWindows用バイナリが無いから、これに依存するアプリが使えない。
今も、どこかに無いかと探しているw
どこかのサイトに、自動的にコンパイルして、Windows用バイナリを置いてほしい

ユーザー環境変数、Path に、C:\Ruby24-x64\bin と、
RUBYOPT に、--encoding=UTF-8 を追加した

ただし、UTF-8 を追加すると、irb が動かなくなるので、それに依存する、pry なども動かなくなるため、
WSL, Ubuntu に、Ruby を入れて、irb だけはLinux側で使う。
MSYS2 は日本語でバグるけど、WSL はコマンドプロンプトと同じ画面を使っているので、バグらない

すべてのファイルを、BOM無しUTF-8 で統一すると、
Explorer で、sjis と区別がつかなくなって、検索できなくなるので、WSL から、grep で検索する。
BOM有りUTF-8 は、外人がBOMの存在自体を知らないから、バグるので使えない

VSCode で、Code Runner という拡張機能で、右クリックメニューから、ある範囲のソースコードを実行できるし、
デバッグ用拡張機能を入れていないけど、p, tap 関数で表示できるから困らない

どの道、GUI は、HTML, CSS, JavaScript, Node.js, Selenium Webdriver だから、VSCode でよい

例えば、クリップボードでも、
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

みたいに、PowerShell コマンドも呼べるし、
ダブルクリックで起動したいのなら、バッチファイル・VBS も使える
0100デフォルトの名無しさん (ワッチョイ 715f-7QjO)
垢版 |
2019/01/13(日) 11:05:20.88ID:JiC/urho0
初心者にWSL使わせると
rootfs以下をWindowsから直接編集してぶっ壊す事故が怖いわ
0102デフォルトの名無しさん (ワッチョイ 715f-7QjO)
垢版 |
2019/01/13(日) 11:21:10.07ID:JiC/urho0
ちげぇよ
windows側からWSL内のファイル構造っぽいのが見えることは見えるんだけど
実はVolFSという仮想的なもの、かつWindowsからの編集を想定していないので
Windowsから編集するとWSLのファイルシステムが壊れて不可解なことになって死ぬ
0104デフォルトの名無しさん (ワッチョイ d614-Fjw0)
垢版 |
2019/01/13(日) 11:42:25.22ID:jNYo2/R00
>>100
> rootfs以下をWindowsから直接編集してぶっ壊す事故が怖いわ

rootfs以下をWindowsから直接編集するのは大変だよ
なにせどこにファイルが有るのか容易にはわからないんだから

知ってるなら何処にファイルが有るのか
Windowsから見た時のパスを言ってみてよ
0109デフォルトの名無しさん (ワッチョイ a57c-Iup+)
垢版 |
2019/01/13(日) 12:56:17.58ID:ATVrIMyH0
>>84
>ossプロジェクトもgithubがマイクロソフトに買収されたとたんにgitlabへの移行が相次ぐなどrubyコミュニティ特有。

ほうほう
0110デフォルトの名無しさん (ワッチョイ a57c-Iup+)
垢版 |
2019/01/13(日) 13:03:32.14ID:ATVrIMyH0
>irb だけはLinux側で使う。

こういうアホな選択してるからドザは馬鹿にされ続けるんだろう
0113デフォルトの名無しさん (ワッチョイ a57c-Iup+)
垢版 |
2019/01/13(日) 14:22:57.16ID:ATVrIMyH0
完全な初心者より中途半端に出来ると勘違いしてる香具師の方が危ない
0114デフォルトの名無しさん (ワッチョイ c52d-RNo8)
垢版 |
2019/01/13(日) 20:41:11.25ID:JA2Q/I910
WSLを使う気はあんましないけど、Windows上からVolFSを弄ると本当に壊れるのかは気になるな
0115デフォルトの名無しさん (ワッチョイ d614-Fjw0)
垢版 |
2019/01/13(日) 20:53:55.03ID:jNYo2/R00
>>114
単純な話だよ。

WindowsのNTFSではファイルごとに所有者や各種権限がある。
読み取り権限、書き込み権限、他には拡張属性の読み書きとか所有権の取得とか
同じようにLinuxでも所有者やパーミッションという情報がある
これらは一対一で単純に結びつけることができない
(例えばWindowsにrootというユーザーは存在しない)

だからNTFSの通常のファイルの所有者や権限とは別に
ファイルごとに代替ストリームを使ってWSLのメタデータを書き込んでる。

Windowsのアプリからファイルを変更すると、この代替ストリームを
考慮してないためにメタデータ破棄されてしまうソフトがある。例えばファイルを保存するときに、
新しくファイルを新規作成するようなものは、代替ストリームのデータが消えてしまう。

VolFSが消えるというのは単にメタデータが消えてしまうということ
ファイルそのものやファイルシステムが壊れるわけではない
0116デフォルトの名無しさん (ワッチョイ 8133-gHoM)
垢版 |
2019/01/13(日) 23:18:58.07ID:WrQFCZ8r0
>>115
WSLをWindows用コマンドライン環境にしたかったんだけど、そのへんを知って、ムリだと思った。。。orz
chmodひとつできないとは。
ファイルの内容には/mnt経由でアクセスできるものの、あくまでちょっと別物感。

ということで結局、MSYS2に戻りました。
0118デフォルトの名無しさん (ワッチョイ dd01-RNo8)
垢版 |
2019/01/14(月) 02:54:40.58ID:H1tgEUC10
RubyはWindowsで不安定だからPythonのほうが良いよ。
0120デフォルトの名無しさん (ワッチョイ d614-Fjw0)
垢版 |
2019/01/14(月) 06:15:31.08ID:z7CSW9d20
>>116
> chmodひとつできないとは。
いやできるよ

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

MSYS2を使ってもそれは同じでしょ?MSYS2を使った所で
chmodじゃNTFSのメタ情報を変えることはできない
0122デフォルトの名無しさん (ワッチョイ d62c-NvUN)
垢版 |
2019/01/14(月) 12:18:53.84ID:9Cudnq1q0
ext4, NTFS では、ファイルシステムが異なるから、ファイルのメタ情報も異なる。
これらを、同一に出来ない

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

仮想OS でも、そう
0123デフォルトの名無しさん (エムゾネ FF9a-Iup+)
垢版 |
2019/01/14(月) 12:38:06.45ID:aPj/koI6F
>>121
ほんそれ
0127デフォルトの名無しさん (ワッチョイ e501-XL8C)
垢版 |
2019/01/14(月) 19:57:22.28ID:h6/SfWd00
目的 ゲームのプロトタイピング
機能 スプライト、モーフ、負荷は軽め
環境 Windows、cRuby
Ruby/SDLやDXRubyあたりが有名かと思いますが前者は関連ライブラリが多い上に最近のcRubyで動くのか判らず
後者はWindows依存になってしまう上に低レベル故にコード量が増えそうです
高レベルかつ簡単にインストールできる(解凍すれば終わりみたいな)のとか無いですかね

最終的にはWindows以外でも動かすのでDirectXべったりは好ましくないです
0133デフォルトの名無しさん (ワッチョイ 7a7d-4XJz)
垢版 |
2019/01/15(火) 02:44:03.42ID:cb8Yslm40
>>132
デザパタの言語組み込み化レベルでコードが減る
100行のコードが正規表現ループで5行になりましたみたいな感じ
それの初稿が書かれたときには存在しなかったが現在ならJavaをKotlinで書くのに近い
0135デフォルトの名無しさん (ワッチョイ 334b-fAiL)
垢版 |
2019/01/17(木) 22:18:22.04ID:IiwqVv020
bundler使ってインストールしたgemをrequireするhoge.rbファイルを実行するには

 bundle exec ruby hoge.rb

するしかない?

 ruby hoge.rb

で実行できるような方法ってない?
0139デフォルトの名無しさん (ワッチョイ 334b-fAiL)
垢版 |
2019/01/18(金) 15:20:28.40ID:jNBljk3t0
>>138
それ、既にやってみてたんだが動かなかったんだわ。



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

ともかく、解決したのでありがとう。
0141デフォルトの名無しさん (ワッチョイ 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 みたいなものか
0144デフォルトの名無しさん (ワッチョイ 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
バグが起きにくい、安全で効率的なコーディングと、間違いやすいポイントを解説
0148デフォルトの名無しさん (アウウィフ FFa3-zGAl)
垢版 |
2019/02/05(火) 15:44:46.33ID:dQJUt0gZF
rubyTk + balloonhelp
0150デフォルトの名無しさん (アウウィフ FFa3-zGAl)
垢版 |
2019/02/05(火) 18:23:25.15ID:dQJUt0gZF
そう思っていた時期が私にもありました
0151デフォルトの名無しさん (ワッチョイ cd8b-DOJB)
垢版 |
2019/02/10(日) 21:01:48.90ID:0GsJb55C0
ここだから質問する。今あえてPython3とRuby2.5を同時に勉強してるところ
同じような動きするサイトを作ってみて、tk動かしてみたら、明らかに
Rubyのtk遅いんだが、こいつを速く動かす方法ある?

ちなみに環境はWindows10の64bit
0155デフォルトの名無しさん (ドコグロ MM09-/S9r)
垢版 |
2019/02/10(日) 21:48:13.21ID:96GWWqq3M
ちなみに海外だとWindowsのPython製商用GUIアプリもあったりするけど、
RubyでWindowsの実用GUIアプリを作ってる奴なんて い な い から、GUIライブラリなんてロクに最適化されてなくて当然だ
0157デフォルトの名無しさん (ワッチョイ 6e2c-V6Wy)
垢版 |
2019/02/10(日) 21:59:53.92ID:QHXP4+rK0
GUI は、HTML, CSS, JavaScript で作る

そうすれば、ほとんどの操作を、ブラウザが提供してくれる!
0159デフォルトの名無しさん (ワッチョイ cd8b-DOJB)
垢版 |
2019/02/10(日) 22:21:14.90ID:0GsJb55C0
>>153-157
なるほど、よくわかった。やっぱりあとはVM突っ込んで動かした
方がよさそうだな
0161デフォルトの名無しさん (スッップ Sd22-lwMy)
垢版 |
2019/02/10(日) 22:37:18.73ID:78jXEpo3d
まぁ、かくして、Rubyは毎年
凄い勢いでシェア減らしてるから、
あり様に対する評価は返ってきてる。

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

さてと、今からVM通すためにルータに穴空けよ
0163デフォルトの名無しさん (ワッチョイ 6e2c-V6Wy)
垢版 |
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 のバイナリがない!
コンパイラが無いと、コンパイルできない
0164デフォルトの名無しさん (アウアウエー Sa0a-DOJB)
垢版 |
2019/02/10(日) 23:55:09.46ID:HGoiPykSa
そのレスどっかで見たな
0166デフォルトの名無しさん (ワッチョイ 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バイトを削除するからかな?
0167166 (ワッチョイ 7f2c-Ioh3)
垢版 |
2019/02/16(土) 03:37:44.66ID:GifcQbbL0
>166 の続きです

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

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

ファイルの内容は、

a X
あ y(ここに改行コード無し)
0168デフォルトの名無しさん (ワッチョイ 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オプション使わなければいいんじゃないの?
0169デフォルトの名無しさん (ワッチョイ 8714-yQ/S)
垢版 |
2019/02/16(土) 11:51:26.01ID:SPTGalft0
>>166
> Windows10 で、a.txt の最後に、改行コードが無いと、バグる!

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

chompするときに改行がくっついてるときだけ切れば良いのに
中身観ないで無条件に一文字消してたらそりゃ消えるわω
糞アルゴリズム
0173デフォルトの名無しさん (エムゾネ FF7f-wP4P)
垢版 |
2019/02/16(土) 13:05:27.59ID:lF7O1vprF
chompとchopで名前変えた理由もそれ?
0175166 (ワッチョイ 7f2c-Ioh3)
垢版 |
2019/02/16(土) 23:44:04.14ID:GifcQbbL0
ありがとう。もう修正されているのか

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

このバージョンでは、まだ直っていないのかも?
0176デフォルトの名無しさん (アウアウエー Sa1f-wP4P)
垢版 |
2019/02/17(日) 07:35:01.66ID:Y2cvGT7Ea
mingw版だから放置かな
0178デフォルトの名無しさん (ワッチョイ ff7c-/Ktc)
垢版 |
2019/02/17(日) 11:52:25.05ID:7mUUrd8D0
windows固有の問題だから放置されてたってだけ
0179デフォルトの名無しさん (ワッチョイ c701-OU7K)
垢版 |
2019/02/17(日) 14:08:35.55ID:N1izVyMt0
Windowsが憎い。
0181デフォルトの名無しさん (ワッチョイ c701-OU7K)
垢版 |
2019/02/18(月) 01:18:03.82ID:yYX5e63o0
ソースが仕様。
0183デフォルトの名無しさん (ワッチョイ 5f7d-akdL)
垢版 |
2019/02/18(月) 11:23:55.36ID:vR+zg9W+0
>>182
そのまま処理を書き下せばよろしい
現時点では無理に短くしようとするな
「カッコよく」しようとするな
そんな秒速何十回とする処理じゃないのだろうし効率もとりあえず気にするな
0185デフォルトの名無しさん (ワッチョイ 7f2c-Ioh3)
垢版 |
2019/02/20(水) 05:44:21.57ID:B2QSVSiS0
Linux では、大文字小文字だけが異なるファイルが、同一フォルダに存在できる。
例、Ab.txt, aB.txt など

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

有れば真、無ければ偽とする
0186デフォルトの名無しさん (ワッチョイ 5f7d-akdL)
垢版 |
2019/02/20(水) 05:48:10.61ID:u9a1RSm50
どうすればいいかの部分は自分で考えようよ
そこの根底から丸投げしたらそれがちょっとの違いで動かなくなったとき全然対処できないよ
どういう処理をすればいいかを考えたら「これの実装どうすればいいっすか」って質問してくだされ
0191デフォルトの名無しさん (アウウィフ FF4b-wP4P)
垢版 |
2019/02/20(水) 19:39:59.58ID:v7iPz90JF
>>185
Dir.globでぶん回す
見つかった名前をtolowerしてファイル削除
最後に残ったものが重複
0193デフォルトの名無しさん (フォォーッ 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化できないものでしょうか?
 無理な気もしますが・・
0195デフォルトの名無しさん (ワキゲー MM2e-8sMm)
垢版 |
2019/02/21(木) 16:29:45.73ID:A4uVBoycM
それだけじゃ原因がわからん
まずhello worldでも作ってみろ
ocraは実行ファイルのパスに多バイト文字が含まれている場合起動に失敗するから日本人が作ったneriってgemを使うか自分で依存関係調べてぶっこむなりしよう
つぎにgithubざっと読んだ感じだとgnuplotのパスは Gnuplot.new(path: 'パス') で指定するみたいだからlibなんちゃらにコピーとか関係ない。きちんと指定しろ
最後に、gnuplotも合わせて配布するつもりならライセンスが独自のものだからきちんと読んでからやってね
以上
0196デフォルトの名無しさん (ワキゲー MM2e-8sMm)
垢版 |
2019/02/21(木) 17:07:21.07ID:OxGbt4z1M
ああ、一部ちゃんと読んでなかったわ

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

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

以上終了
0197デフォルトの名無しさん (ワンミングク MM7a-Pez2)
垢版 |
2019/02/21(木) 19:33:23.57ID:MIixq5+8M
ライセンスとか無視したとしても、外部のでっかい(依存関係が大きくファイル数も多い)アプリを同梱して配布というのは「運用上」わりと速攻で破綻する
「必要なアプリやライブラリが利用可能になっているかをチェックして、不足時には別途インストールを促すスクリプト」をrubyで作って最初に実行するorさせるといいぞ
そこまでここで面倒見る必要はないという線を引くんだ、たとえ内製配布アプリだとしてもね
0198デフォルトの名無しさん (フォォーッ MMed-2CcH)
垢版 |
2019/02/21(木) 22:06:11.57ID:h83SWuCLM
193です。厳しくかつ熱心な助言をいただきまして、皆さまがプログラミング
に真剣に取り組んでいらっしゃるとわかりました。おかげさまで、別のPCにwgnuplot?
を入れて、パスを通したら解決いたしました。
 島根在住なうえに、独学で勉強しているため難儀していました。
 ジオデシックドームの計算とグラフ出力をするためにプログラムを始めまして、グラフ
出力を友達に見てもらいたいから、実行ファイルにしたわけです。 とはいえ、ライセンス
に注意しなければならないという意見、真摯に受け止めます。
 >>197 そこまでここで面倒見る必要はないという線を引くんだ
そうですね。一人でしょい込む必要ありませんでした。肩の荷がおりました
0200デフォルトの名無しさん (フォォーッ MMed-2CcH)
垢版 |
2019/02/21(木) 23:41:22.83ID:h83SWuCLM
え、Railsって気軽にできるもんなんですか? 使い道がわからないので、クラスやインスタンス変数など一度も
使ったことがないのですが。 松江市はRubyの本が数冊しかないので、勉強が進みません
・・・
0203デフォルトの名無しさん (ワッチョイ 662c-pE6h)
垢版 |
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 では有名
0204デフォルトの名無しさん (ワッチョイ 662c-pE6h)
垢版 |
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
0206デフォルトの名無しさん (フォォーッ MMa5-2CcH)
垢版 |
2019/02/22(金) 07:29:39.28ID:LB9B22A9M
島根在住です。 通いつけのクリニックがあるビルにまつもとさんの会社があるので、
すれ違ったことあるはず。どんな人か知らないけど。いまだに光ケーブルが通ってない田舎です。
本も入門書しかないんです。
 Ruby逆引きハンドブック、チェックしてみます。
0208204 (ワッチョイ 662c-pE6h)
垢版 |
2019/02/22(金) 11:24:33.25ID:43iXBVf10
さすがに、MSYS2 のようなコンパイラーは、何GB も食うから、いらない。
ただし、コンパイラーが無いから、Windows 用のweb socket のバイナリが無くて、困っている

>>204
の、sqlite3/2.4/sqlite3_native.so だけを入れる方法は無いの?
2.0〜2.3 は、いらない
0215デフォルトの名無しさん (ドコグロ MM15-bAbS)
垢版 |
2019/02/26(火) 14:44:39.80ID:s53snE6vM
>>214
mrubyは経産省やハードウェアメーカーがスポンサーに入ってるから、やってみた、うごいた、わーい、だけじゃ済まされないよ
だから誰も使ってなくても誰にも求められてなくても誰もやりたくなくても開発は続けなきゃいけない
0217デフォルトの名無しさん (アウウィフ FF21-kEY9)
垢版 |
2019/02/26(火) 15:18:03.05ID:8+7ktUtNF
>>214
補助金詐欺とまでは言わないでも補助金ゴロ

>>216
ren4 に教えてやれ
0221デフォルトの名無しさん (ワッチョイ f1f3-5GpB)
垢版 |
2019/02/27(水) 02:13:01.70ID:oZYESBBc0
rubyからCや特定CPU向けアセンブラを生成できるようにすれば用途は広がるが、
CPUを活用するにはrubyに不足している機能があるのかも

AIに出番をつくる何かを追加しよう
0222デフォルトの名無しさん (ワッチョイ 797c-BftX)
垢版 |
2019/02/27(水) 13:17:12.60ID:+TCpifLa0
まだ負けと決まった訳じゃない(キリっ
0223デフォルトの名無しさん (フォォーッ MMa5-4qoz)
垢版 |
2019/02/27(水) 22:05:06.13ID:qTA28+u/M
 本は立ち読みして使える本かどうかチェックしてから買うもので・・・
 >>212
わかーました。Matzに会ったら教えちゃーけん、楽しみに待っててごしないや
0224デフォルトの名無しさん (ワッチョイ d72d-SKB1)
垢版 |
2019/02/28(木) 13:12:02.91ID:MdFdHsbt0
勝ち負けどころちゃうやろ、Rails以外にもう使い途なんてあらへん状態や
0225166 (ワッチョイ 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 か?
0226デフォルトの名無しさん (ワッチョイ 7f7c-vuRV)
垢版 |
2019/03/05(火) 11:24:52.77ID:HwCl8Q1J0
ひろゆきもpythonに浮気か
0228デフォルトの名無しさん (ワッチョイ d77d-HTI0)
垢版 |
2019/03/05(火) 16:52:31.95ID:eRmNxjQF0
>>225
ファイル全部を読まなくても size-1 で seek すれば十分だよ。
0229166 (ワッチョイ ff2c-Im2K)
垢版 |
2019/03/05(火) 23:56:13.17ID:CZi591h70
seek できるのは、バイナリファイルだけだろ。
改行コードを判定できるかね?

最後の1バイトを取って、文字コードに変換できるのかな?
バイナリから、文字コードへの変換
0232166 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/07(木) 21:29:51.98ID:8RwKmlXy0
テキストファイルを、バイナリファイルとして読み込んで、
最後のバイトが、CR かLF なら、最後に改行コードが無いと考えてみたが、

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

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

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

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

テキストファイルを、バイナリファイルとして読み込んで、
最後のバイトが、CR かLF なら、最後に改行コードがあると考えてみたが、
0234185 (ワッチョイ 162c-1cTK)
垢版 |
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
0235デフォルトの名無しさん (ワッチョイ a333-BuCU)
垢版 |
2019/03/08(金) 00:49:28.36ID:OXqbGHm40
>>232
ムダにややこしく考えすぎ。
だいたい、コントロール文字が複数バイト文字の一部に含まれるエンコーディングはかつて存在しなかったし、今さら将来に発明されることもない。
0236デフォルトの名無しさん (ワッチョイ b252-1CkI)
垢版 |
2019/03/08(金) 01:06:02.77ID:Sy1GZuWW0
>>232
いつも他スレで暴れてるrubyボット君か。
毎度毎度、仕入れた知識の表層をなぞるだけで知ってるつもりになってるから、具体的な問題点が理解できてないし、考えようともしない。だからいつも的はずれなことを言っては他の人に突っ込まれる。
0237166 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/08(金) 12:09:07.38ID:N66/0TP00
sjisには悪名高い「表」などのダメ文字が存在する。
複数バイト文字の最後のバイトに、\(逆スラッシュ)が存在する。
euc-jp では存在しないけど

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

特に外人は、1文字1バイトでコーディングするから、バグる!
0239デフォルトの名無しさん (ワッチョイ 162c-1cTK)
垢版 |
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
0241239 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/08(金) 15:26:21.92ID:N66/0TP00
ダウンロードじゃなくて、gem で入れた場合は、

checksum を確かめる必要は無かったかな?
0243デフォルトの名無しさん (ワッチョイ 1f7d-tMNZ)
垢版 |
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等のファイルがあるなら対策すること。
0245166 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/09(土) 11:14:06.24ID:GVs3bbIF0
>>243
テキストファイルとして読み込んだファイルに、
seek のようなバイナリ(1バイトずつの)処理を使うと、
複数バイトの文字が存在するから、バグらない?

複数バイトの文字があると、文字数とバイト数が異なるから
0248デフォルトの名無しさん (ワッチョイ ef12-GDas)
垢版 |
2019/03/10(日) 00:40:01.29ID:2U7BqM9T0
macでHomebrewを使用して、最新版2.6.1をインストールしましたが、
ターミナルでバージョンを確認すると古いもの(2.3.7)が表示される。

この場合考えられる要因は何でしょうか?
0250デフォルトの名無しさん (ワッチョイ 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 を使ってる
0254185 (ワッチョイ 162c-1cTK)
垢版 |
2019/03/10(日) 23:57:03.24ID:bEzyp4mc0
>>234
修正

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

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

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

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

リンクの中にトークンを入れてしまったら意味がない
トークンがリンクの中に入らないからこそ意味がある
0257デフォルトの名無しさん (ワッチョイ 837f-/bUt)
垢版 |
2019/03/11(月) 01:43:29.79ID:5t+/rFdi0
>>2256
そんなん。
悪意のある奴から送られてくるリンクにあるトークンと
対象者の持ってるセッションに紐付けられるトークンは
全然違うやん。

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

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

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

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

理由が知りたい。
0263デフォルトの名無しさん (ワッチョイ 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 などをやらないと無理
0266デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)
垢版 |
2019/03/26(火) 19:14:05.12ID:d0iwa0lD0
Rubyを勉強し始めようか迷っていて、適当にWeb見てたんだけどさあ
一部のページで、「Railsから入った人にとっては驚くかもしれないけど、Ruby単体でもプログラムが書ける」みたいなことが書いてあって驚いちゃったな
これ、Rubyの言語より先にRailsの学習をすることも可能なんか?
0269デフォルトの名無しさん (ワッチョイ 6b2d-5HBQ)
垢版 |
2019/03/26(火) 19:26:11.18ID:d0iwa0lD0
>>268
そうなのか、ありがとう!
面白そうだからRailsからやろうかな
0270デフォルトの名無しさん (ワッチョイ de2c-ZSTg)
垢版 |
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の文法とは関係ないから。
ほとんどの内容が、システムの事
0273デフォルトの名無しさん (アウアウエー 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
0274デフォルトの名無しさん (ワッチョイ 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]]
0275デフォルトの名無しさん (ワッチョイ 4ad2-KGYh)
垢版 |
2019/03/27(水) 13:35:27.03ID:mz7eRfCH0
>>274
すみません。途中に入ったひらがなはゴミです無視してください。
0278272 (ワッチョイ de2c-ZSTg)
垢版 |
2019/03/27(水) 23:32:37.93ID:iumvruyG0
番兵を使わないと、1〜6 (1:start, 6:end)の道順をたどる際、面倒だろ?

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

Ruby 2.6 対応の新版が出た!
0285デフォルトの名無しさん (ワッチョイ 02d2-GBaV)
垢版 |
2019/04/08(月) 19:53:09.21ID:Axd3G2xU0
番兵の話はお題スレからきていてると思うのだけど
番兵が有用と言う人と無用と言う人で
元のお題をやってみたら?
0286272 (ワッチョイ ee2c-f03p)
垢版 |
2019/04/09(火) 00:49:34.31ID:BWeYJxgy0
番兵が無ければ、

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

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

んなことをせんでも、番兵や余白を利用したら、わかりやすさや効率化を果たせることもあるんやで。
0292デフォルトの名無しさん (ワッチョイ 012d-gjr1)
垢版 |
2019/04/09(火) 17:27:08.92ID:a64vJmyf0
Ruby Motionって契約してる人います?
これって今から使い始めても継続的に保守され続けるような雰囲気してますか?
0296デフォルトの名無しさん (アメ MM8d-3NqX)
垢版 |
2019/04/09(火) 20:57:02.17ID:QoVolURMM
じゃあCでいいな。
遅いくせにCでやってたのと同じ方法でしか解決できないクソ言語。
0298デフォルトの名無しさん (ワッチョイ 012d-gjr1)
垢版 |
2019/04/10(水) 07:32:34.80ID:2VCYuCv80
>>293
広く捉えればIDEなのかも知れませんが、iOS/Android等の開発ができるのが売りなので他ではなかなか代替が効かないと思うんです
http://www.rubymotion.com/jp/
これもう廃れてるんですかね・・・・・
0305デフォルトの名無しさん (ワッチョイ 8b2c-9RpW)
垢版 |
2019/04/11(木) 00:28:18.22ID:SMdbPkuM0
Haxe が、Ruby・Elixir も、JavaScript(JS) に変換してくれればなあ

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

まあ、ES2015(ES6)で書いて、Babel で、ES5 に変換するぐらいかな?
0307デフォルトの名無しさん (ワッチョイ 1373-XGqV)
垢版 |
2019/04/11(木) 01:12:54.22ID:6OTuCZjY0
>>306
間違いは「プロトタイプをそのまま使いまわそうとすること」であって、
「プロトタイプにRubyを使ったこと」ではないはずだよね
「何がなんでもRubyを使うことは間違い」と言いたいだけなんちゃうん?
0308デフォルトの名無しさん (ワッチョイ d91f-Rw3k)
垢版 |
2019/04/11(木) 01:50:09.37ID:rbVbMGbi0
>>307
その解釈こそこの文脈ではうがちすぎだろう
実際のところは>>292に訊いてみないとわからんけど

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

GUI は、HTML, CSS, JavaScript で、
サーバーサイドはRuby
0311デフォルトの名無しさん (エムゾネ FF33-grM/)
垢版 |
2019/04/11(木) 11:27:47.80ID:bTGeujWNF
perlで書いたのがもったいない
そう思っていた時期がありましたが
rubyで書いたらそんな小さな心配は吹き飛びました

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

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

だけどあれ、確か2006年ぐらいにRuby版がでてから
6年ぐらいもかかっただろ?
そしてRuby版に機能が追いつくまでさらに数年
0318デフォルトの名無しさん (ワッチョイ 8b14-XGqV)
垢版 |
2019/04/12(金) 00:57:31.09ID:L59U/aC10
>>316
> 遅すぎる言語を使うことで

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

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

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

大規模になってきたら、他の言語に変える
0321デフォルトの名無しさん (アウアウエー Sae3-x1Th)
垢版 |
2019/04/12(金) 07:29:49.69ID:xRzutCJ1a
>>319
高負荷な処理の開発においては、検証すらままならないほどに遅くなることが普通にある(Cで書いててもね)
そもそも最初からパフォーマンスが問題になることが分かっているなら、速度自体もアルゴリズムの良し悪しを決める重要なファクターだ
まあRuby使いには想像しにくい世界かもね
0323デフォルトの名無しさん (ワッチョイ 8b14-XGqV)
垢版 |
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%

環境構築というか、"端末の"環境構築なので
端末を提供しているシェルスクリプトが一番相性が良い
0324デフォルトの名無しさん (ワッチョイ 8b14-XGqV)
垢版 |
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
0325デフォルトの名無しさん (ワッチョイ 8b14-XGqV)
垢版 |
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
0329デフォルトの名無しさん (エムゾネ FF33-grM/)
垢版 |
2019/04/12(金) 15:26:10.57ID:VR9mZ4dFF
スタートアップで使ってたってだけで
もう使ってないから

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

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

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

>>324-325は、*envを使ってないから、各言語用のインタプリタ本来の
起動時間ですよって話。
0334デフォルトの名無しさん (ワッチョイ d133-qzPJ)
垢版 |
2019/04/12(金) 23:32:32.24ID:5JLil1XU0
出力にかかる時間を計ってる以上、「起動」の時間はわからんだろ。
Unicodeうんぬんは、文字の妥当性を検証してる気がしたから。バイナリを流すとエラーになったような。

きっとRubyは遅いだろうと思うが、それでも、おまえの確認は証明になっていないぞ。
0336デフォルトの名無しさん (ワッチョイ 8114-XGqV)
垢版 |
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
0337デフォルトの名無しさん (ワッチョイ 8114-XGqV)
垢版 |
2019/04/12(金) 23:48:50.10ID:kdt5VzkQ0
だいたい。たかが出力にそんなに時間がかかるわけ無いだろ
real 0m0.054s の大部分が起動ではなくて、
出力の時間だっていうのなら、それはそれで大爆笑もんだろ
起動よりも出力のほうが時間かかるって言ってんだから
0339デフォルトの名無しさん (アウアウエー Sae3-grM/)
垢版 |
2019/04/13(土) 03:03:39.84ID:cdJINjrpa
ごみん
0349デフォルトの名無しさん (ワッチョイ 13a5-5Pop)
垢版 |
2019/04/16(火) 09:32:48.43ID:jMhdT2ep0
その逆、「開発がヘヴィで苦行なデスマーチになりまーーーす!」と宣伝する言語は無い
一般的には、どんな言語や商品でもそう宣伝する、そうしない商品は無い
0350デフォルトの名無しさん (ワントンキン MMd3-wiMN)
垢版 |
2019/04/16(火) 09:44:32.83ID:nXxzoFc/M
>>347
開発当初はその通り
Railsがしゃしゃり出てくる前もまあ当時の他言語と比べてまあ妥当
Rubyデツクルモノ=Railsとなってからは「Ruby別に楽しくないじゃん」とか言われるようにはなった
メモリ16GBとSSDで意識高い系言語もIDEでぐわんぐわん言わせられる昨今、Rubyのそのへんのメリットは比較上は薄い
0351デフォルトの名無しさん (ワッチョイ b102-2EiJ)
垢版 |
2019/04/16(火) 10:39:23.01ID:S7eq1ncA0
>>347
ごめん。
RubyよりHaskellが楽しい。
0352デフォルトの名無しさん (ワッチョイ 992d-U5P5)
垢版 |
2019/04/16(火) 10:54:33.68ID:xaQ/mbi+0
助成金サギみたいなのはやめようぜ
0353デフォルトの名無しさん (ワイーワ2 FF63-grM/)
垢版 |
2019/04/16(火) 11:56:14.82ID:vZl8q5zBF
ほんとうはデスマになってるのに
Ruby使うことでラリって気持ちいいから
デスマに気付いてないケースは多そうだ
0354デフォルトの名無しさん (ドコグロ MM33-x1Th)
垢版 |
2019/04/16(火) 13:37:30.80ID:V3kPCGsbM
後のこと一切気にしなくていいならJavaでも楽しいよ
最近Rubyにヘイトが集まってるのは、Rails全盛期にそうやって乱造されたアプリの便所掃除の仕事の割合が増えてるから
0355デフォルトの名無しさん (アメ MM4d-nfNM)
垢版 |
2019/04/16(火) 14:09:38.51ID:HGB3ondZM
書きやすく 読みにくい
→楽しく適当に書かれたウンコードの保守押し付けられた奴らブチ切れ
当然書いた本人はもういないw
0356デフォルトの名無しさん (ワイーワ2 FF63-grM/)
垢版 |
2019/04/16(火) 15:42:10.89ID:vZl8q5zBF
perlの読み難さに嫌気が差して造られた言語なのにperlの悪い所を引き摺ってるからな
0358デフォルトの名無しさん (ワッチョイ 5e2c-LwVf)
垢版 |
2019/04/20(土) 14:24:37.48ID:rcvSJkam0
社員50人の「Ruby 開発」という会社の求人を見た。
東京・大阪で求人

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

Cookpad, マネーフォワードに次ぐ会社か?
上場してるのか?
0359デフォルトの名無しさん (ワッチョイ 5e2c-LwVf)
垢版 |
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"
0365デフォルトの名無しさん (ワッチョイ b533-PkkG)
垢版 |
2019/04/21(日) 13:14:59.11ID:z90qN1ox0
んなこというのは、Ruby者だけやろ。
ふつうは、使い分けりゃいいんだよ。
まあ、他の言語にさんざケチをつけまくったわけだから、Rubyにもケチをつけんとな。

どうでもいい改善のために、後方互換を壊すのはクソ過ぎだが。
0366デフォルトの名無しさん (ワッチョイ 092d-RDgi)
垢版 |
2019/04/24(水) 15:15:30.27ID:NuE3hWAT0
最近、Rubyで簡単に稼げたとうたって謎の講座を売りつけようとしてるやつがえっらい増えてんな
HTMLで稼げた系の方が遥かに多いものの、SNSにも動画サイトにもすげえ数あるわ
情報商材屋もアフィリエイトや仮想通貨ネタじゃ食ってけなくなってHTMLネタや延いてはRubyネタまで来たんだろか?
0367デフォルトの名無しさん (ワイーワ2 FF1a-ZG7F)
垢版 |
2019/04/24(水) 15:53:51.84ID:KVKHKBwPF
補助金に群がる日本恒例のあれやろ
0368デフォルトの名無しさん (アウアウウー 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を使うにはどうするのが一番スマート?
0369デフォルトの名無しさん (ワッチョイ 9f2c-NS0m)
垢版 |
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年は様子を見た方がよい
0370デフォルトの名無しさん (ワッチョイ 375f-4N0r)
垢版 |
2019/05/11(土) 12:41:03.42ID:td9YBJ3L0
windows で ruby はマジでお薦めしない
四の五の言わず VM 入れろ
0377デフォルトの名無しさん (ワッチョイ 5714-y0Vo)
垢版 |
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が実用レベルだとわかったら乗り換えれば良い
0379369 (ワッチョイ 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 で、ダブルクォーテーションをエスケープできる。
\"-\"
0380デフォルトの名無しさん (ワッチョイ 572d-vM1y)
垢版 |
2019/05/12(日) 14:48:42.32ID:eMjN+/Cm0
>>376
みんなコードを書くのはMac、実行がLinuxってのが普通になっちゃってるからな
Windows版は、「高卒用パソコンなんてサポートしてどうするの」ぐらいの扱いがされてる
0383369 (ワッチョイ 9f2c-NS0m)
垢版 |
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 とか、他の部分も異なるけど
0389デフォルトの名無しさん (アウアウエー Sadf-4N0r)
垢版 |
2019/05/13(月) 21:58:08.28ID:XgdYNs3Ba
ruby が何か努力した訳ではないな
M$ が頑張ってくれただけ
0390デフォルトの名無しさん (ワッチョイ f0ba-N32O)
垢版 |
2019/05/20(月) 23:17:13.22ID:uii5Lp4R0
初心者すぎてすみませんがprogateのrubyを2回やり終えたんですが
次は何やるのがお勧めでしょう?
同じくprogateのruby on railsに進むべきか
たのしいrubyや3ステップで学ぶruby入門などの書籍を読むべきか
あるいは他に何かありますでしょうか?
0392デフォルトの名無しさん (ワッチョイ f82d-Q2B8)
垢版 |
2019/05/21(火) 02:18:15.20ID:NmxJjL0u0
>>390
俺と一緒にRubyMotionをやらないか
0394デフォルトの名無しさん (ワッチョイ ae2c-rckI)
垢版 |
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 の文書で、どういう機能があるか理解する
0399デフォルトの名無しさん (ワッチョイ cf2d-3Ed1)
垢版 |
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はすみませんわかりません
ツクール関係だとは思うのですが、ツクール関係独特のものなのかどうかもわからず
0401デフォルトの名無しさん (ワイーワ2 FFa2-dkMk)
垢版 |
2019/06/04(火) 11:29:47.34ID:uvNmGZETF
最適化されてない自動生成のコードだろ
0402デフォルトの名無しさん (ワッチョイ 6a2c-n0I8)
垢版 |
2019/06/04(火) 12:20:57.18ID://1XsOfQ0
同じファイルを何回も読むのは、無駄

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

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

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

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

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

>>396
VSCode でも、キーワードなどは色分けされる
0403デフォルトの名無しさん (ワッチョイ cf2d-3Ed1)
垢版 |
2019/06/04(火) 12:49:27.49ID:oR7ssn0w0
ありがとうございます
特に中略部分でfile側が変化しているということはないようです

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

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

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

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

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

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

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

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

Effective Ruby、2015
バグが起きにくい、安全で効率的なコーディングと、間違いやすいポイントを解説
0406デフォルトの名無しさん (ドコグロ MM22-3QJd)
垢版 |
2019/06/04(火) 18:16:47.29ID:aXH0FNpKM
いつものキチガイを相手にするつもりはないけど、質問者が誤解しないようにコメント
仕事のプログラミングだと基本的にソース眺めてる時間のほうが長いよ
ましてRubyも今や落ち目で便所掃除の仕事ばかり増え、全く新しいものを作る機会は減る一方だ
0409デフォルトの名無しさん (ワッチョイ cf2d-3Ed1)
垢版 |
2019/06/04(火) 20:28:11.60ID:oR7ssn0w0
開発/運用側に立ってるとネットなんて
宣伝と、自作自演・サクラと、ユーザ奪い合い荒らしと
この3つばっかりって身にしみてるもんですし

>>408
たまたまMarshal関係で調べてて出くわしたもので
rubyがこういう(>>399)書き方・使い方がデフォな言語なのかどうかを
知りたかったというのがほとんどなので
0411402 (ワッチョイ 6a2c-n0I8)
垢版 |
2019/06/04(火) 21:35:03.46ID://1XsOfQ0
だから、他人のクソコードを見ても、時間を損しただけだろ。
得るものなんてない

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

重箱の隅をつつくような断片的な知識は、覚えられられないし転用できない。
体系的に学ぶ必要がある
0415402 (ワッチョイ 6a2c-n0I8)
垢版 |
2019/06/04(火) 23:41:11.09ID://1XsOfQ0
Marshal.load(port, proc = nil) -> object

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

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

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

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

結局、他人がどう作っているのかなんて、わからない!
所詮どこまで行っても、推測に過ぎない!
0418デフォルトの名無しさん (ワッチョイ 8a52-gkx+)
垢版 |
2019/06/05(水) 02:34:30.81ID:UjRB/6p50
>>415
APIの仕様は文書で調べればいいだけと自分で>>411で書いているくせに、>>415では何で頓珍漢な当て推量をする流れなんだ?
いつもどこかで聞いてきたようなお題目を並べてはいるが、上っ面の字面だけを覚えているだけだろう。本人は実践できてないし理解もしていない。
0419402 (ワッチョイ 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による値渡しが基本みたい
0423デフォルトの名無しさん (アウアウエー Sa93-dZrz)
垢版 |
2019/06/07(金) 01:23:56.05ID:yhNlt0n8a
Rubyとか今時使うもんじゃない
0424デフォルトの名無しさん (ワッチョイ 1784-zjL7)
垢版 |
2019/06/07(金) 01:42:47.01ID:UE5bXA580
Marshalでファイルに複数のオブジェクトを読み書きできるのか
てっきり1個のオブジェクトに固めてから使うのかと思った
リファレンスマニュアルにはそのあたり書いてないからね
0425デフォルトの名無しさん (スップ Sdcf-yQWj)
垢版 |
2019/06/07(金) 10:49:24.42ID:Eixypjmyd
CSV出力処理でメモリが上がってしまうことが多く、対策しようとしているのですが良い方法はありますか?
少し調べて、pluckメソッドを使おうと思ったのですが、ソート順が想定通りにならなかったりしそうだったので、引き続き調べてみています。
0427デフォルトの名無しさん (ワッチョイ 6b2c-MqbY)
垢版 |
2019/06/07(金) 22:37:13.77ID:wtNNzOUb0
CSV.foreach で、ファイルを1行ずつ処理できる

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

でも、ソートするなら、すべてのデータがメモリ内に存在しないといけないのでは?
だから、全行をメモリ内に読み込むことになる!
0428デフォルトの名無しさん (ワッチョイ 6b2c-MqbY)
垢版 |
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 } )
0431デフォルトの名無しさん (ワッチョイ 8992-GC2g)
垢版 |
2019/06/08(土) 03:54:40.62ID:Vf2EEML20
>>425
csvを全部読み込んで処理しようとするとそうなるのは避けられない、何らかの工夫をするしかない
一行、数行ずつ処理し、終わるごとに配列、hashをクリアしていけばいいが、出来ない場合ね

csvを二回読み、一回目で必要なキーや情報だけ集めて一度csvをclose、
2回目にその情報を使って一行ずつ処理するなど
0433デフォルトの名無しさん (ワッチョイ 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]
0437デフォルトの名無しさん (ワッチョイ eb7c-yvwO)
垢版 |
2019/06/09(日) 14:03:11.38ID:V8qyq4Ge0
*[[1, 2], [3, 4]]
0438デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 14:33:40.10ID:FDYkpc7vd
オススメな本ある?
0440デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 20:52:05.62ID:FDYkpc7vd
>>439
Rubyで作る奇妙なプログラミング言語-〜ヘンな言語のつくりかた〜
これ?
0442デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 21:45:31.88ID:FDYkpc7vd
>>441
Kindleバージョンしかないの?
0444デフォルトの名無しさん (ワッチョイ 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
0445デフォルトの名無しさん (ワッチョイ 115f-Gzfa)
垢版 |
2019/06/09(日) 22:06:11.67ID:+p5uJAry0
>>443
2008年発売の書籍!
0448デフォルトの名無しさん (ワッチョイ 5b33-2qry)
垢版 |
2019/06/13(木) 15:09:32.77ID:mYw2PK9v0
標準ライブラリに仮想環境を構築するモジュールがあれば教えてください
0452デフォルトの名無しさん (ワッチョイ 5b33-2qry)
垢版 |
2019/06/14(金) 17:43:29.05ID:2ICDzfK10
>>449
Pythonのvenvみたいなのはないんですか?
0453449 (ワッチョイ 9a2c-oZrO)
垢版 |
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
0456デフォルトの名無しさん (アウアウウー Sac7-FH5+)
垢版 |
2019/06/14(金) 22:59:33.98ID:cwcbHRc8a
Rubyは第一級関数じゃないからパイプ演算子とは極めて相性が悪い
Rubyで a |> b と書いたら、(このRubyキチガイを除く)まともな頭で普通に類推したら b()(a()) の意味になっちゃうからね
括弧省略が鬼門
0461デフォルトの名無しさん (ワッチョイ 9a73-2qry)
垢版 |
2019/06/15(土) 23:03:19.36ID:suvV29vR0
>>456
Rubyは第一級関数言語やで
Rubyはカッコを省略してメソッドを呼び出せるので関数オブジェクトの取り出し方がめんどくさいのは事実だけどね
だからかどうか知らんけど、Symbol#to_proc みたいなのもあるけど

まぁ、メソッドチェーンでできるんだから、パイプ演算子は要らんかなとは思う
0462449 (ワッチョイ 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 は、第一級関数ではない。
処理をオブジェクトにするとややこしいから、第一級関数にしない方がよい
0464デフォルトの名無しさん (ワッチョイ 3e7c-jEB4)
垢版 |
2019/06/16(日) 11:55:03.74ID:NdAq/MEw0
windows なら素直に python 使え
無理して ruby 使ってもロクなことにならない
0468デフォルトの名無しさん (ワッチョイ 9a01-nQaC)
垢版 |
2019/06/16(日) 21:33:59.28ID:keFwsV830
Windowsでちょっとしたスクリプトを書くなら、AutoHotkeyがお手軽かつ強力だな。
0470デフォルトの名無しさん (ワッチョイ 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
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
0471デフォルトの名無しさん (ワッチョイ 9a2c-oZrO)
垢版 |
2019/06/18(火) 22:50:32.33ID:PmBejiWq0
雑誌、WEB+DB PRESS Vol.110 (2019/4/25) では、

RubyVM を作った、Cookpad の笹田耕一による、Ruby 実装系の新連載が始まった!
0475デフォルトの名無しさん (ワッチョイ c195-eGkX)
垢版 |
2019/06/23(日) 19:01:19.76ID:WHM6Ibwm0
日本語のような全角を2
英語のようなのを1
で計算する
printf を使えますか?

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

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

ruby には
日本語も整形できる手段ありますか?
スマートなprintfの類ありますか?
0484デフォルトの名無しさん (スップ Sdca-rCja)
垢版 |
2019/07/01(月) 12:54:44.12ID:fiA0UtsUd
Pythonなんかだと
printとinputですが
Rubyでは
putsとgetsと三単現のsがつきますよね

命令文なので二人称のputとかgetにした方が良いと思うのですが…
何でRubyは基本的な英語の語法を無視しているのですか?
0486デフォルトの名無しさん (スップ Sdca-rCja)
垢版 |
2019/07/01(月) 12:59:27.33ID:fiA0UtsUd
>>485
いや、よく理解出来ました
考え方として賛成はしかねますが納得は出来てすっきりしました
ありがとうございましたm(_ _)m
0488デフォルトの名無しさん (スップ Sdca-rCja)
垢版 |
2019/07/01(月) 13:06:28.54ID:fiA0UtsUd
>>487
いろいろありがとうございます
己の無知を反省します
0489デフォルトの名無しさん (ワッチョイ 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 は基本的な英語の語法を無視しているのですか?
0490デフォルトの名無しさん (アウウィフ FF11-a57L)
垢版 |
2019/07/01(月) 17:05:17.93ID:87GWfzf4F
startswith や endswith には s ついてる
0493デフォルトの名無しさん (ワッチョイ ca2c-fjwL)
垢版 |
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
0495デフォルトの名無しさん (ワッチョイ a97c-a57L)
垢版 |
2019/07/02(火) 09:54:03.28ID:dJ0Zw08U0
493 は死んで良い
0497デフォルトの名無しさん (ワッチョイ 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
0498デフォルトの名無しさん (ワッチョイ 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 へ
 > チェーンさせることができます
0499デフォルトの名無しさん (ワッチョイ ff2c-NenP)
垢版 |
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]のように開くには、どうすればよいですか?
0500497 (ワッチョイ ff2c-NenP)
垢版 |
2019/07/10(水) 16:39:54.23ID:Jbt6AAsO0
>>498
ありがとう

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

each_with_index, each_with_object では、ダメなのか
0501デフォルトの名無しさん (ワッチョイ 03e7-MLAK)
垢版 |
2019/07/10(水) 17:37:17.74ID:tfcMfkAP0
>>499
[[2, 1], [3, 2]].flat_map { |n, e| [n] * e }
#=> [2, 3, 3]
0503デフォルトの名無しさん (ワッチョイ 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]
0504デフォルトの名無しさん (エムゾネ 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
0506デフォルトの名無しさん (ワッチョイ 7f2d-ShKg)
垢版 |
2019/07/20(土) 17:05:02.08ID:wkIhGLkm0
2人コミッター知ってるけど何の専門家でもなければまともな経歴でもないよ・・・・
0507デフォルトの名無しさん (ワッチョイ 4f7c-CMz4)
垢版 |
2019/07/20(土) 17:08:41.13ID:ppdy8tl00
メルセンヌツイスターって初期化しなくて良いんだっけ
0509503 (ワッチョイ 3f2c-QKg6)
垢版 |
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

平均すると、まんべんなく出るのだろうが
0510503 (ワッチョイ 3f2c-QKg6)
垢版 |
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

何回やっても偏る
0511デフォルトの名無しさん (ワッチョイ 4f7c-CMz4)
垢版 |
2019/07/20(土) 18:37:19.17ID:ppdy8tl00
おま環かどうか切り分けるために
codepad.org
とか
ideone.com
あたりで実行してみたら
0512デフォルトの名無しさん (ワッチョイ 4f7c-CMz4)
垢版 |
2019/07/20(土) 18:37:49.12ID:ppdy8tl00
おま環かどうか切り分けるために
codepad.org
とか
ideone.com
あたりで実行してみたら
0513503 (ワッチョイ 3f2c-QKg6)
垢版 |
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
0515◆QZaw55cn4c (ワッチョイ 3f47-19w1)
垢版 |
2019/07/20(土) 19:33:38.40ID:jbjCUWIF0
>>513
偏っているか、それともそうでないかを判断する基準をどのように記述していますか?
私には >>513 2 2 2 6 6 が偏っているようにはみえないのです、多分判断基準が違うのだと思います、なにか判断基準を書いていただけますか?
0520デフォルトの名無しさん (ワッチョイ cf14-C4ZB)
垢版 |
2019/07/20(土) 20:02:00.13ID:b/O9on/e0
乱数なんだから偏ってはいけない。
例えばサイコロを6回ふれば、必ず1〜6の数字が一回ずつ出るのが真の乱数だ
続けて1の目がでるなんてことはあってはいけない

俺の好きなテトリスも昔はテトリス棒が全然出なかったりしたもんだが
今のテトリスは同じものが続けて出ない。偏り無くまんべんなく出てくれるから
次に来るのが予測しやすい。これが真の乱数だ
0521デフォルトの名無しさん (ワッチョイ 4f7d-woJQ)
垢版 |
2019/07/20(土) 20:09:09.31ID:CMictvk+0
つまりテトリスカンパニーのようにメルセンヌツイスタ株式会社みたいなのが数字の出る順番のルールを決めて
ひとつの言語にはひとつのメルセンヌツイスタライブラリしか認可しないというふうにして品質の
0522デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
垢版 |
2019/07/20(土) 20:57:00.17ID:2izalSzA0
>>518
全然違う
shuffleはただ位置を入れ替えるだけだから、最初の10個には必ず0から9が1つずつ含まれる
これが君の望む乱数のようだからそうすりゃいいんじゃね?と言ってるだけ
0524デフォルトの名無しさん (ワッチョイ 4f7d-woJQ)
垢版 |
2019/07/20(土) 21:11:50.98ID:CMictvk+0
ものによっては「7が最近出てないのでそろそろ出るはず」「1が何回も出るはずがない」を支持するデタラメ数が必要とされることはあるのだが
それは乱数で表現されるものではないので自前で実装するよりない
0525デフォルトの名無しさん (ワッチョイ cf4e-NxfS)
垢版 |
2019/07/20(土) 21:43:20.93ID:/ET4uH9K0
乱数 まろやか で検索するといいぞ。ポイントは正規分布
0526503 (ワッチョイ 3f2c-QKg6)
垢版 |
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 ]
0527デフォルトの名無しさん (ワッチョイ cf4e-NxfS)
垢版 |
2019/07/20(土) 22:07:15.82ID:/ET4uH9K0
>>526
赤黒が1/2の確率で出るルーレットがあります。
三回回したところすべて黒が出ました。
次に赤が出る確率は?
一般人「1/2」
バカ「こんなに黒が続いたんだからそろそろ赤が出ないとおかしい!偏っている!だから赤100%だ!!」
0528デフォルトの名無しさん (ワッチョイ 3f52-5sVo)
垢版 |
2019/07/20(土) 23:53:39.37ID:QHhW8HGw0
>>526
乱数にけちつける前に10面ダイス買ってきて、10000回振って出目をメモして偏りを確認してこい。
それが片寄ってると思うなら、別の店でダイス買い直して再試行しろ。
終わるまでスレに帰ってくるなよ。
0529デフォルトの名無しさん (アウアウエー Sabf-CMz4)
垢版 |
2019/07/21(日) 01:29:14.20ID:7an9cjGSa
リアルのダイスは安物だと
1の目と6の目で掘り具合が適当で
重心がばらつくから良くない
1をでかく掘ってあって
ちゃんとバランスとってる香具師を買え
0530デフォルトの名無しさん (ワッチョイ 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
0533デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
垢版 |
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倍ぐらい確率が違うんだよ
「君の言葉で言う偏る」のは確率で見てもむしろ当然

# 計算式が合ってるかは誰か検証して
0535デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
垢版 |
2019/07/21(日) 15:10:50.24ID:NYTsshMI0
もっと単純化して言ってしまえば、コインを2回投げたときに、表裏が1回ずつ出る確率と
表か裏かのどちらかしか出ない確率は同じだというのはすぐ分かると思う

それを「どちらかしか出ない場合があるのは偏ってる!」と言ってるようなもんだよ、これは
0536デフォルトの名無しさん (ワッチョイ 3f73-jGuh)
垢版 |
2019/07/21(日) 16:40:43.81ID:NYTsshMI0
こういうと、
「25回投げたときに、そのうち10回を取り出して8回以上表か裏が出てたら偏ってるじゃないか」
と言われそうなので、その確率も計算しておこう

面倒なのでPCでぶん回して計算すると、約49%だった。
つまり、25回投げたときに恣意的に10回を取り出して表か裏が8個以上あることなんて普通に
ありえることなんだよね
0538デフォルトの名無しさん (スッップ Sdaa-nIbq)
垢版 |
2019/07/28(日) 16:46:50.69ID:RyVu3FEFd
ActiveRecordの件数が多い時、メモリを大量に使った際に、その分のメモリが開放されないままになってるように見えるのですがこれは仕様ですか?

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

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

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

DB設計は、DB資格の教科書とか、ミックの本などで勉強していないと難しい。
バグのほとんどは設計段階で生じるから、SE の給料が、プログラマーよりも高い!
0544デフォルトの名無しさん (アウウィフ FFcf-tP4r)
垢版 |
2019/07/31(水) 12:41:48.82ID:+MN2XkdtF
馬鹿には無理
0546デフォルトの名無しさん (ワッチョイ 2dda-dfB4)
垢版 |
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
0548デフォルトの名無しさん (ワッチョイ 8595-7p+E)
垢版 |
2019/08/01(木) 20:11:56.88ID:WaJjQk0q0
ruby はよくある printf の類が日英混合文でも大丈夫?
perl で 日英両対応 align.pl 書いたけど 日本語はprintfのフォームと
ずれてしまったのでコードがそれを避けた書きかたになってしまって
気がはれない
0553デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/03(土) 22:04:00.83ID:bbhz9sWw0
やった!!
俺の求めていたものだ
https://logmi.jp/tech/articles/321280
一見楽そうに見えて、余計に面倒なことになるwww
こんなんだったら、初めから型宣言したほうがマシだわな
型宣言の何が嫌なんだろ(謎
意地?
DRYに反してるっていうけど、何処が?

まぁでも求めていた展開だ
本人も作りたくないであろうこんなツールに多大な時間を割くことで
10年単位で他の言語に遅れることになるだろうな
大爆笑
0554デフォルトの名無しさん (ワッチョイ 2333-uzAh)
垢版 |
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を言い訳にして、とにかくなにがなんでもオブジェクトの宣言を含めたくないんだろう。
0555デフォルトの名無しさん (ワッチョイ 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 だのスコープ問題の泥縄的解決である
変数宣言を言い訳にして、とにかくなにがなんでも型宣言を含めさせたいんだろう。
0556デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/04(日) 12:53:29.81ID:uuq2lSJI0
あと
別ファイルに型定義書くのって立派なDRYじゃねーの?
だって、クラス名やメソッド名変更するとき
両方書き直さなきゃならないじゃねーか
これはDRY以外の何なんだ?
ほんと、ペテン師はいつも自分に都合のいい事だけ言うよな
分かっててすっとぼけるんだわ
信者には悪いが、マジで毎回そう
0557デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/04(日) 13:05:34.87ID:uuq2lSJI0
つまり、
普通に素直に型宣言するより
別ファイルに型定義書く方が
よりDRYだし面倒だし
この掛け違えたボタンで首が絞まる感じ何なん
もう普通に型書いたら?
アホらしすぎ
0558デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/04(日) 13:18:44.89ID:uuq2lSJI0
型定義を別ファイルの書くのって
丁度C言語が.hと.cに分かれてるのと同じ感じだよね
で、関数名変えるとき.hと.cの両方書き換えるっていうね
今更C言語に先祖返りってどうよ
あれDRYって何だっけ
0559デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/04(日) 13:39:41.20ID:uuq2lSJI0
あるクラスの名前を変更する
型定義ファイルに書いてあるクラス名を変更し忘れる
そのクラスの型定義が無くなり型チェックが効かなくなる
プログラマは型チェックが効いてると思い込みテストをサボる
バグを組み込んでしまう
あり得るシナリオだし、こういうのをDRYと言うのではww

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

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

で、誰得なんこれ
0561デフォルトの名無しさん (ワッチョイ 232c-n0r7)
垢版 |
2019/08/04(日) 20:45:52.66ID:zjBZp1dd0
WEB+DB vol.111

詳解 Rails 6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

また何も知らないか、知ってても嘘をつく
いつものパターンね
0568デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/05(月) 13:40:37.89ID:nl2V9bb60
ちなみにmatzがソースコードに型を書きたくない理由だが
色々言ってるが、彼は詐欺師だから、本音ではないし、嘘も含まれる

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

つぎに、静的型と動的型は振り子のようにトレンドが移り変わり
今後また動的型言語の時代が来るから、というもの
いやいやこれから先、動的型の時代など来ないだろうし、そもそもの前提がおかしい
C言語以降はずっと静的型の天下であり、動的型が勝ってた時代などなかった
振り子のようにというのがそもそも嘘偽り誇大表現、こうやって騙してくる
C/C++、Java、C#といった超メジャー言語にRubyが勝っていた時代など一度もなかっただろ、詐欺師め
0569デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
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に型アノテーションが導入されたら
型を書いた方が行儀が良いという風潮が蔓延するだろうが、自分は型を書きたくないので
そのために型をかけないようにしておく、というもの

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

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

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

型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。
妥協できるラインが、今の、書きたいやつは書けば良いんじゃない?でも、文法を拡張して既存コードとの非互換生むような修整は受け入れられない。
と言う話でしょ。
0581デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
垢版 |
2019/08/05(月) 16:33:24.89ID:MNXFY7cg0
>>577
> 型を使うと速くなる? そんなに速度が要求される要件に使うなんて決定をする奴がおかしい。
> 型を使うとバグが減る? そんなにレベルの低い人は使わなければいい。

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

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

事実ならまず「それは事実だね」って言ってみようか?
事実に対して反論するかと思いきや、反論しないんだもの(笑)
0582デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
垢版 |
2019/08/05(月) 16:34:57.91ID:MNXFY7cg0
> でも、文法を拡張して既存コードとの非互換生むような修整は受け入れられない。

結局本音はそこ。

速くなるとかバグが減るという "事実" は存在するが、
既存コードの非互換性をうむから、改善できない。
0583デフォルトの名無しさん (ワッチョイ ad61-5VcE)
垢版 |
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 で書かれたごく一部のライブラリ程度じゃない?
0584デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
垢版 |
2019/08/05(月) 17:55:40.47ID:MNXFY7cg0
型を入れてもオープンクラスな言語では大して速度は上がらない
→オープンでない言語なら速度は上がる
→速度を上げるためにはオープンでなくすれば良い
→そのような改善方法は存在するが、非互換性をうむから、取り入れられない。
→まつもと「Rubyでは改善はなんです。諦めてください」
0586デフォルトの名無しさん (ワッチョイ bd14-F0Sa)
垢版 |
2019/08/05(月) 17:58:22.53ID:MNXFY7cg0
>この場合の strict モードって何を指してるの?

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

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

変数の型をobject型と書く(もしくは省略)か、適切な型を書くかの違い。
0588デフォルトの名無しさん (ワッチョイ 2333-uzAh)
垢版 |
2019/08/05(月) 18:55:01.90ID:kCWOwKEP0
Rubyの癌は、型を指定できないことよりも、宣言ができないこと。
型を指定できないのは、宣言ができないことによる副産物。

宣言は、ここからこのオブジェクトを使うで、ということを明確にできてわかりやすいのに、何で嫌がってんだか。
0589デフォルトの名無しさん (ワッチョイ ad61-5VcE)
垢版 |
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。
0593デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/05(月) 21:15:23.92ID:nl2V9bb60
型チェックが欲しい人は他の言語使えって言ってるけど
Ruby3.0で型チェックが導入されるんだからそこは前向きに検討しようよwww

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

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

これがRuby3.0
0597デフォルトの名無しさん (ワッチョイ ad7c-ONUK)
垢版 |
2019/08/06(火) 15:11:10.96ID:SvihPrAV0
実行時まで型が決まらない

ひとことで言え
0600デフォルトの名無しさん (ワッチョイ 9b7c-Ybim)
垢版 |
2019/08/06(火) 20:21:21.15ID:vJC9K0rF0
前々からの、掛け違えたボタンの、いよいよ一番上を閉めようとしている段階なのだよ
そんなことは出来ないか、不格好か、首が絞まるか
何にせよ、こういう仇花的なことをしなければならない状況に追い込めたのは
日々のみんなの空気づくりのおかげであって、いわば人類側の勝利だよ
おめでとう
0603デフォルトの名無しさん (ワッチョイ 8514-F0Sa)
垢版 |
2019/08/06(火) 20:34:15.67ID:9obbnMlM0
モンキーパッチ(オープンクラス)ができるのはメリットではあるが、
通常はそんなことしないので、小さなメリットのために
大きなデメリットが発生してるんだよな。
最終手段を取るしか無いところだけ、unsafeとかマークを付けて対応すればよかった。
0604デフォルトの名無しさん (ワッチョイ 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における暗黙的な静的型付けの導入方針」として、
(型推論の代用である)「型プロファイラ」と呼ぶ新技術の紹介が続くわけだ
0605デフォルトの名無しさん (ワッチョイ 1514-F0Sa)
垢版 |
2019/08/07(水) 18:42:31.98ID:WK8NJ3/V0
>>604
なにかごちゃごちゃ語ってるけど、

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

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

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

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

根本の問題だからなぁ
悪人は悪人にしかなれないってわけじゃないけど
気づけなきゃ悪人のまま終わるよね
0614デフォルトの名無しさん (ワッチョイ da2c-8lAC)
垢版 |
2019/08/08(木) 22:17:23.13ID:/tBUMiMq0
Haxe では、Array<Dynamic> で、何の型でも入る、配列を定義できる

これは型推論しないから、できる限り避けるべき!
これは、設計ミスかも知れない
0615デフォルトの名無しさん (ワッチョイ 2ecb-l5Zy)
垢版 |
2019/08/11(日) 09:42:24.48ID:w8BJYpRO0
typescript なら [ null, string, number, ‘foo’ | ‘bar’, 1 | 2 ]
のように定義できるしね
0619デフォルトの名無しさん (アウウィフ FF39-FHwm)
垢版 |
2019/08/13(火) 09:14:00.33ID:oXPAD0KHF
TSで書いてRuby吐くコンパイラω
0623デフォルトの名無しさん (ワッチョイ 7be9-SXVW)
垢版 |
2019/08/17(土) 16:58:40.60ID:iudotV170
jsは構文でもJavaと似ても似つかないぞ
0625デフォルトの名無しさん (ワッチョイ 7be9-SXVW)
垢版 |
2019/08/17(土) 17:16:36.20ID:iudotV170
話を逸らすのはチョン國人の手口
0629デフォルトの名無しさん (ワッチョイ 2914-2ejv)
垢版 |
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
0630デフォルトの名無しさん (ワッチョイ 2914-2ejv)
垢版 |
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;
 }
}
0631デフォルトの名無しさん (ワッチョイ 2914-2ejv)
垢版 |
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.`);
 }
}
0632デフォルトの名無しさん (ワッチョイ 132c-BF++)
垢版 |
2019/08/17(土) 23:51:47.98ID:fYRni8gj0
Node.js は、Ruby のコピー。
npm, yarn も、Bundler のコピー

CakePHP は、Rails のコピー
0633デフォルトの名無しさん (ワッチョイ 2914-2ejv)
垢版 |
2019/08/18(日) 00:59:22.65ID:KK6bG3/n0
> Node.js は、Ruby のコピー。
間違い。Node.jsは言語ではなく実行環境(≒ライブラリを提供してる)

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

ツールやフレームワークに価値はあって、そっちはコピーしたとしても
Rubyという言語にコピーする価値はないですからねw
0637632 (ワッチョイ 132c-BF++)
垢版 |
2019/08/18(日) 08:06:58.21ID:26pp6bRY0
Node.js は、Ruby 実装系のコピーだろ。
npm, yarn も、Bundler そっくり!

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

Ruby, Node.js も、サーバー側プログラミング
0640デフォルトの名無しさん (ワッチョイ 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でも日本語でバグらないかどうか、知りたい
0641デフォルトの名無しさん (ワッチョイ f57f-7nd5)
垢版 |
2019/08/23(金) 01:33:05.16ID:ypvGItf/0
ocraやgolangのgo buildみたいにRubyスクリプトとその要求ファイルを
単一の実行ファイルに固める仕掛けのLinux/FreeBSD向けってありませんか?
利用側でのセットアップを簡単にするために探しています
0644デフォルトの名無しさん (ワッチョイ 1597-oRVe)
垢版 |
2019/08/25(日) 21:34:28.24ID:qjFyDFHg0
>>640
JuliaとPythonじゃ目指してる方向が違うから、PythonがまるまるJuliaに移行するということはないよ。
numpyでゴリゴリ計算してるようなものはJuliaに移行するだろうけど、
Cなどで書かれた外部ライブラリを呼び出しまくっているようなものが移行するとは思えない。
0646デフォルトの名無しさん (ワッチョイ 1aff-fOxg)
垢版 |
2019/08/25(日) 23:37:44.87ID:5Gyozg9W0
Rubyは良く出来た言語だが、困るのはバイナリ処理したいとき
バイナリを扱うことはできるらしいが、かなり面倒そうで結局やらない
rubyにCのインタプリタを内蔵してはどうなのだろう
AIなど一挙に使える範囲が広がる
0647デフォルトの名無しさん (ワッチョイ 0e93-zLXz)
垢版 |
2019/08/26(月) 00:06:00.18ID:VlVyQYXI0
もうCでよくない?
0651デフォルトの名無しさん (ワッチョイ faa5-0PH2)
垢版 |
2019/08/26(月) 10:06:15.99ID:rKfqBH6Q0
perlからの流れであり深い意味は無い
それが好ましいと言う奴だけがrubyを使ってる
だから宗教だ

「わたくしはそれを気にいっている」宗教ではコレ以外の理由は必要無い
0652デフォルトの名無しさん (オイコラミネオ MMbd-HFEL)
垢版 |
2019/08/26(月) 13:12:19.64ID:WoXCTlJRM
>>650
スクリプト言語は原則として、メモリに直接アクセスするようにはできていない。

念のために言っておくと、C/C++のキャストと比較しているのならそもそも大間違い。
また、あれはあれで問題だらけ。
0655デフォルトの名無しさん (ワッチョイ a67c-9WLl)
垢版 |
2019/08/26(月) 14:43:00.63ID:T0vtMl8v0
>rubyにCのインタプリタ

ffiとかwin32apiとかじゃだめなんか
0656デフォルトの名無しさん (ワッチョイ 1a76-fOxg)
垢版 |
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回ダウンロードされていたそうだ
0665デフォルトの名無しさん (スップ Sd73-s5ZA)
垢版 |
2019/08/30(金) 02:31:29.55ID:mLs+0kBOd
RubyはPythonにはもちろんだけどPHPにも喰われ出してるね
何故こうなってしまったんだろうか
文法というか記法が独特だからなのかな
0666デフォルトの名無しさん (ワッチョイ a97c-ca7b)
垢版 |
2019/08/30(金) 09:52:23.42ID:GEn/r+mZ0
元々大した事なかったからな
Railsみたいなモルヒネで延命してるうちに手遅れになった
0667デフォルトの名無しさん (ワッチョイ 9963-4dMe)
垢版 |
2019/08/30(金) 14:40:23.42ID:RCTyVXY+0
>>650
自分でTCP/IPパケットの解析をするときに、「バイナリはバイナリのまま処理すれば」十分なの?
バイナリをバイナリのまま処理できるのなんてコピーぐらいの単純なIOしか思いつかないのだが。

バイナリって文字列じゃないだけであって区切りを持った意味のあるバイト列だからね。
0670デフォルトの名無しさん (ワッチョイ eb14-dbQt)
垢版 |
2019/08/31(土) 05:48:43.98ID:bRBeXa4d0
Rubyには無いでしょw

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

なんて寝言言ってるから、バイナリ扱うのはC/C++の方が
簡単だって話をしてる。
0675デフォルトの名無しさん (ワッチョイ 0b7c-ca7b)
垢版 |
2019/08/31(土) 10:28:13.26ID:nubn4z9u0
>>672
ffi
0681デフォルトの名無しさん (ワッチョイ 132c-cmxz)
垢版 |
2019/09/03(火) 04:03:18.48ID:IE86u3rd0
>>656
Windows 10, WSL, Ubuntu 16.04 では、Ruby 2.3 を使っているけど、
2.3 は、サポート切れなのに更新された!

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

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

まあCOBOL削った分Python入れてもいいですよ
ただそれなら表計算削ってRuby入れろや
国産で世界にも認められてる言語をお上が認めないでどうすんの?バカなの?氏ぬの?
それにMatz氏は親日だぞ?
0685デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 10:30:47.44ID:Z0seKSTeF
excelにpython乗ったらもう試験に表計算は要らないよな
表計算を削ってpandasを入れて欲しい
0686デフォルトの名無しさん (ワッチョイ 13a5-u0zy)
垢版 |
2019/09/04(水) 10:39:47.55ID:nmk4+Aqu0
rubyで一番ヤバいのは|x|とかのラムダ式だろ
縦棒とか一番押しにくい位置にあるじゃん
これ|を二つ押すよかlambdaと5文字書いた方がラク、ってのが世界の趨勢だよ
だもんでruby最大の癖がコレ|x|だ
0688デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 11:03:04.89ID:Z0seKSTeF
BS NHK でやってた島根県の松江の
おもちゃの病院
割と良かった
0691デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 11:10:43.54ID:Z0seKSTeF
->
0692デフォルトの名無しさん (エムゾネ FF33-ca7b)
垢版 |
2019/09/04(水) 11:11:49.38ID:Z0seKSTeF
NHK じゃなかった BSフジ の FNSドキュメンタリー大賞
0701デフォルトの名無しさん (ワッチョイ 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上位ランク言語で断行されたのは、
おそらく歴史的に初めてであろうし、
後世に「後方互換性の断絶」の代表例として語り継がれていくだろう
0702デフォルトの名無しさん (ワッチョイ 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の習得は難しいから、無理に背伸びせず
中学生レベルに成長してから再挑戦してもらいたいです
0708デフォルトの名無しさん (ワッチョイ 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ほど汎用的にいろんな場所で使われるようになるのは難しい、と考えられるけども。
0711デフォルトの名無しさん (ワッチョイ ed7c-p7Vf)
垢版 |
2019/09/06(金) 13:17:37.49ID:CfEMcmDH0
>>702
放送大学か
0713デフォルトの名無しさん (ワッチョイ 49e7-ZcvA)
垢版 |
2019/09/06(金) 23:33:10.17ID:NV9LDg+C0
>>705
Rubyの栄光?Rubyを救う?何を言ってるのかなぁ

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


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

ちなみにRubyの世界には、小学生どころか5歳児に素のRubyを
学ばせようという、世間一般からすれば無謀と言われかねない試みもあったりする
・『ルビィのぼうけん』特設サイト - 翔泳社
 https://www.shoeisha.co.jp/book/rubynobouken/
個人的には、子供の持つ好奇心という破壊的なパワーをなめちゃいかんと思います
0716デフォルトの名無しさん (アウアウエー Sa4a-p7Vf)
垢版 |
2019/09/07(土) 00:22:45.12ID:lrUhBd6ha
同じ●ビィでもヴィビィよりは遥かにマシ
0722デフォルトの名無しさん (ワッチョイ 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
0724722 (ワッチョイ 5f2c-+BGV)
垢版 |
2019/10/01(火) 22:53:28.60ID:9HRGRt020
CSV::Table#by_col! で、列単位で扱える。
そこで、delete(列名) で、列ごと削除できるけど、
事前に、列名が必要

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

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

>>723
csvtool というコマンドがあるのですね
0726デフォルトの名無しさん (ワッチョイ eaa5-P2X/)
垢版 |
2019/10/03(木) 12:16:59.30ID:PnP8AkUw0
Rubyに決めた!
0727722 (ワッチョイ ea2c-2rUB)
垢版 |
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 }
0728デフォルトの名無しさん (ワッチョイ 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)
0729デフォルトの名無しさん (ワイーワ2 FF92-PqvS)
垢版 |
2019/10/09(水) 16:59:03.96ID:dDDCJBWOF
君の pwd の結果を曝すか
runas /user:administrator 汁
0730728 (ワッチョイ ea2c-2rUB)
垢版 |
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 には、その機能が無いのかも
0732デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/10(木) 09:40:50.22ID:yMym0WfOF
ちゃんと読め
Insecure world writable dir /mnt/c in PATH
0735728 (ワッチョイ 9f2c-la4p)
垢版 |
2019/10/10(木) 18:57:06.29ID:dv1+zkCU0
Windows10, WSL, Ubuntu 16.04 の端末上で、
tty と入力すると、/dev/tty1 と表示される

Ruby ではなく、シェルスクリプトで、expect をしようか
0736728 (ワッチョイ 9f2c-la4p)
垢版 |
2019/10/10(木) 19:25:48.03ID:dv1+zkCU0
pty は仮想端末だから、ssh 接続をしないと使えないのかも

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

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

expectだけでも使えるのか?
誰か、サンプルを書いて!
0738728 (ワッチョイ 9f2c-la4p)
垢版 |
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 は特殊
0739デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/11(金) 10:13:43.38ID:hkXt1GtmF
Windows で Ruby 使ってもロクなことにならない
(WSL でもね)
0741デフォルトの名無しさん (ワイーワ2 FFdf-1wBF)
垢版 |
2019/10/11(金) 10:44:47.24ID:hkXt1GtmF
別に目の仇にしてる訳じゃないやろ
「rubyはなんでwindowsで使うと糞なの」
「じゃあおまいが対応汁」
「forkωωω」
「挫折」
の流れを繰り返してるだけ
屍累々
0742デフォルトの名無しさん (ワッチョイ 9714-Gl4G)
垢版 |
2019/10/11(金) 10:59:31.96ID:PhVW6Uck0
>>738
お前がわかってないだけだろ

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

今どき暗号化されてないtelnetサーバーなんて使わないから
前者だろうな。
0745728 (ワッチョイ 9f2c-la4p)
垢版 |
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 が開いていないのかも
0748デフォルトの名無しさん (ワッチョイ 7f73-pTuN)
垢版 |
2019/10/20(日) 00:18:23.73ID:tI/yRj1E0
Rubyの課題が全然わからないので教えてほしいです。
1、0、−1、0が繰り返し表示されるようにしたいです。
when使ってできないでしょうか。
OS→windows10
Rubyバージョン→1.8.4
一応作ったのですが、nilが永遠にでます。
0750デフォルトの名無しさん (ワッチョイ 122c-pTuN)
垢版 |
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 という拡張機能を入れると、
右クリックメニューから、選択したコードを実行できる
0752デフォルトの名無しさん (ワッチョイ b35f-dFI/)
垢版 |
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を使わない理由が見つからないのだが、なにかバグありました?
0754750 (ワッチョイ 122c-pTuN)
垢版 |
2019/10/20(日) 10:13:18.00ID:ADDbXmaX0
>>752
Windows 用のRuby は、いつも1つ前のバージョンを使う!
RubyInstaller のサイトにも、最新版を使わないようにと、いつも書いてある

Windowsでは、MSYS2 でコンパイルするモジュールなどが、
最新版に対応していないので、1年ぐらい待つ必要がある
0756デフォルトの名無しさん (ワッチョイ b35f-dFI/)
垢版 |
2019/10/20(日) 11:35:59.48ID:X1mKFDBe0
>>754
RUBYINSTALLER-HEAD(https://github.com/oneclick/rubyinstaller2/releases/tag/rubyinstaller-head)については書いてありますが
latestについては記述見つかりませんでしたが、どこに書いてありますか?

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

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

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

とにかく、Mac を使っている人は、Windowsの依存関係が地獄だから、皆Macへ移った
0758デフォルトの名無しさん (ワッチョイ d201-4js2)
垢版 |
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を返す方法を学ぶ
0759デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
垢版 |
2019/10/20(日) 12:46:50.25ID:9lZC9vgyF
ひょっとすると Ruby は糞なのかも知れない

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

10.times{|n|puts Math::cos(n*Math::PI/2).to_i}
0768デフォルトの名無しさん (ワイーワ2 FF6a-uHRg)
垢版 |
2019/10/21(月) 17:07:36.09ID:5+ah6i6TF
禁止事項
トリを使おうとしている質問者に対して、そんなトリはやめろとかという、斜め上からのアドバイス
質問者そっちのけでの昔語り(昔はもっと苦労したもんだ、今の若い者は…)
知らないのに、使ったことないのに、知ったかぶりでの書き込み
ググれという誰でも言えそうな忠告
俺は知ってるけど言わない等といった、実社会での扱われ方からの僻みから来る
意地悪な言辞

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

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


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

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

2π で mod すればいい
0773デフォルトの名無しさん (ワッチョイ 7f73-pTuN)
垢版 |
2019/10/22(火) 11:42:16.77ID:Bl/xGts70
質問したものです。皆さん様々な意見ありがとうございます。考えてくださってとても感謝しています。
皆さんのを見ながらなんとかできました!
ありがとうございました。
0774デフォルトの名無しさん (ワッチョイ 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などを
返すようにできないのでしょうか。
0775デフォルトの名無しさん (ワッチョイ 6373-sEIE)
垢版 |
2019/10/26(土) 11:21:02.82ID:VCWPcpX80
ごめんなさい、
i = 10;
while i > 0
break_test
}
でした。
0776デフォルトの名無しさん (ワッチョイ ff2c-vu2g)
垢版 |
2019/10/26(土) 12:47:43.93ID:751XFDvk0
そういうキーワードそのものは、返せないだろ

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

:next, :break みたいなシンボルとか、文字列とか
0779デフォルトの名無しさん (ワッチョイ bf33-1RvR)
垢版 |
2019/10/26(土) 19:48:47.03ID:zP6esb2p0
>>774
斬新な発想だな。w
Rubyに限らず一般的に、制御を移すしくみは、関数(メソッド)の範囲を越えることはできない。

ただし、「例外」ならそれ以降をすっとばすことができるので、break相当ならできるかも?
# 勧めないけど。
0781デフォルトの名無しさん (ワッチョイ 6373-sEIE)
垢版 |
2019/10/26(土) 22:09:58.48ID:VCWPcpX80
>>778
実際はwhileじゃなくて
xxxxx.each do |key|
同じようなことする関数(引数)
  同じようなことする関数(引数)
  同じようなことする関数(引数)
end
の中で関数の中身がある条件だったら
nextで残りをやらずにeach.doの最初からやりたいんですけど
引数の値が違うだけなのに
例えば関数にTrueを返したら next しろとか条件をいちいち
付けるのもめんどくさいと思い、質問してみました。
0782デフォルトの名無しさん (ワッチョイ 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にあまり詳しくないのでよくわからないのですが
こんな感じなのでしょうか?
0783デフォルトの名無しさん (ワッチョイ a3e0-Oqw9)
垢版 |
2019/10/26(土) 23:35:07.98ID:BPSgYag60
慣習的に返り値を成否にすることが多いから論理を逆にして

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

xxxxx.each do |key|
next unless 同じようなことする関数(引数)
next unless 同じようなことする関数(引数)
同じようなことする関数(引数)
end
0785デフォルトの名無しさん (ワッチョイ ff2c-vu2g)
垢版 |
2019/10/27(日) 05:02:59.99ID:hJUpCTqv0
jQuery.each( object, callback )

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

繰り返し処理中に、ループを抜けたい場合(一般的なループ処理で言うところのbreak)、
コールバック関数で、falseを返すことで実装できます。
それ以外の値を返した場合は、無視されます
0789デフォルトの名無しさん (ワッチョイ 2314-BWw0)
垢版 |
2019/10/27(日) 10:40:08.22ID:Lik42TLZ0
あとgithubプロジェクトには、オブジェクトファイルとか
vimのスワップファイルとかも入っていて周辺知識もない

つまりはプログラミング全般の幅広い知識をつけて、
言語開発できるレベルになったと言うより
言語作ってみたくて、それ関連の知識をぐぐってコピペした程度
再帰を知ってるかも怪しいw
0791デフォルトの名無しさん (ワッチョイ 6f8c-cmPQ)
垢版 |
2019/10/27(日) 11:37:21.19ID:vygsvak+0
どこにも新人を虐め殺す人はいる。
0797デフォルトの名無しさん (スップ Sd1f-PDRl)
垢版 |
2019/10/29(火) 23:05:22.63ID:wWZj5nZGd
github の ignoreとか適当だから、objとか普通にアップしてるな。
仕事ならまだしも、個人ねやつなんか、完全やバックアップもくてきだから、
あまりにデカイみだな .db とか除いて、全部あっふだわ。

個人のリポジドリも200とか超え始めると、一つ一つ丁寧に設定なんかしとれんわ。
githubやエディタ独自仕様に振り回される必要なし。
0799デフォルトの名無しさん (エムゾネ FF1f-Tlcr)
垢版 |
2019/10/30(水) 13:12:15.78ID:Jt7N9BVBF
>>797 はパスワードをうpして慌てるタイプ

あるいは気付かず放置してるだけかも知らん
0800デフォルトの名無しさん (ワッチョイ 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 # フォルダが存在しない
0803800 (ワッチョイ ca2c-0B+f)
垢版 |
2019/11/04(月) 19:37:03.85ID:Zu03xGz40
Dir.glob( "パス", :directory )

みたいに、ブロックじゃなくて、
オプション・シンボルなどで、簡単に指定できれば
0806デフォルトの名無しさん (アウアウウー Sa2f-x9nz)
垢版 |
2019/11/05(火) 21:08:09.25ID:z9XdE4jra
rubyを使い出して2週間なのですが困っています。

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

ログファイルはwindowsにsjisで保存されていて、
これをsjis指定で読み込んでも\x33等と化けます。
どうすれば半角カナが化けないように読めるのでしょうか。
0807デフォルトの名無しさん (ワッチョイ c68c-fAkU)
垢版 |
2019/11/05(火) 22:01:22.14ID:+vsp0I/Q0
sjis指定で読み込んでると思い込んでるだけで実際はutf-8になってるんじゃないかな
あるいはログがsjisと思い込んでるだけという線もありうる
もしくは書き出しがsjisになってないとか
可能性を挙げたらきりがない
コードをさらすのが解決への近道
0808デフォルトの名無しさん (アウアウウー Sa2f-xbEI)
垢版 |
2019/11/05(火) 22:19:23.14ID:HJJtuDtXa
汎用機のデータをRubyで処理とか懐かしいな
俺もやってたわ
結局転職するのが唯一にして最良のソリューションだから、あまり変なことに拘って時間を無駄にするよりAWSの勉強でもしたほうがいいよ
0809デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
垢版 |
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")
0810デフォルトの名無しさん (アウアウウー Sa2f-x9nz)
垢版 |
2019/11/06(水) 00:03:50.72ID:lUVlDRaka
>806です
解決しました。

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

ファイルの文字コードは確実にsjisなのに、
なんでsjis指定で読み込んだら化けるのか分かりませんが、
ひとまず解決です。
0813デフォルトの名無しさん (アウウィフ FF2f-DOEl)
垢版 |
2019/11/06(水) 11:43:12.78ID:o3tEvZiYF
半角カタカナ ← 混ぜるな危険

30年くらい前の話
0816デフォルトの名無しさん (アウウィフ FF2f-DOEl)
垢版 |
2019/11/06(水) 12:34:12.51ID:o3tEvZiYF
いいがかりは止せ
SJISファイルじゃないんだから当然だろ
0817デフォルトの名無しさん (ワッチョイ ca2c-0B+f)
垢版 |
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
0818デフォルトの名無しさん (ワッチョイ de14-EL77)
垢版 |
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が拡張した部分とかぶってるので互換性がないんだけどな
0819デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
垢版 |
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に変更して解決する事があるんですねー(棒)
0822デフォルトの名無しさん (ワッチョイ 077d-qsv/)
垢版 |
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
0823デフォルトの名無しさん (アウウィフ FF2f-DOEl)
垢版 |
2019/11/06(水) 19:55:23.52ID:o3tEvZiYF
HTML (HTTP) で Encoding Shift_JIS って書くと怒られた思い出
0824デフォルトの名無しさん (ワッチョイ 8a01-ODnH)
垢版 |
2019/11/06(水) 20:51:13.84ID:Fx0hE3mY0
>>821
いやいやいや

文字集合と符号化方式を別々に選択できる状況ならともかく
「ファイル読み取り時のエンコーディング指定」とかの文脈で使うエンコーディングって用語は
狭義の符号化方式だけでなく文字集合も含めた上位の概念だから
0830デフォルトの名無しさん (ワッチョイ 2b14-6wYC)
垢版 |
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の頃のような各社バラバラで互換性がないってことにはならない
(ただし私用領域を使ってる場合は除く)
0832デフォルトの名無しさん (ワッチョイ 9f01-vL98)
垢版 |
2019/11/07(木) 08:58:28.91ID:debRpYWr0
>>830
>エンコーディングは変わっていないが文字集合は変わってるので
>最新のUnicodeを表示させると一部文字化けする

じゃ文字集合だけ更新すれば文字化け解消するのかな?
文脈理解せず無意味なレス繰り返してるとそりゃ外字言われるわ
0834デフォルトの名無しさん (ワッチョイ 2b14-6wYC)
垢版 |
2019/11/07(木) 12:52:46.05ID:sEmiRyTj0
正確に言えば、新しい文字集合に対応したフォントを使うとだね。

>>832の言う「文字集合だけ更新すれば」が意味不明だが
「仕様書を更新すれば、なにも変更はいらない」って意味なら
そんなことは誰も言ってない
0836デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce)
垢版 |
2019/11/08(金) 15:49:09.19ID:bNpOstnB0
よく出てくる、&:メソッド名は、proc オブジェクトですが、
たまに出てくる、:メソッド名は、何ですか?

違いが、よく分からない

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

p nums.inject( :+ ) # 10
0838デフォルトの名無しさん (ワッチョイ 9f01-vL98)
垢版 |
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が呼ばれてそれがブロックとして渡される
0839デフォルトの名無しさん (ワッチョイ 9f01-vL98)
垢版 |
2019/11/08(金) 18:31:13.82ID:q9/Fdf+e0
mapはシンボルを引数にとらないからmap(&:to_i)でブロックとして渡すけど
injectはシンボルを引数に取るからinject(:+)で実行できる
inject(&:+)としてブロックとして渡してもいいけど無駄処理が入るので普通はやらない
0840836 (ワッチョイ 9f2c-E8Ce)
垢版 |
2019/11/08(金) 18:48:10.88ID:bNpOstnB0
漏れは、いつも、メソッドがシンボルを引数に取るかどうか、分からないから、

ひとまず、map!( :to_i ) みたいに、シンボルを渡して、エラーになったら、
map!( &:to_i ) と、& を付けることにしている
0843デフォルトの名無しさん (ワッチョイ eb14-6wYC)
垢版 |
2019/11/08(金) 23:51:37.33ID:sLgGgSr40
シンボル・・・型が無い言語で、型を気付かれないように書くための手段の一つ

型がないとされる言語でも、123は数字だが、"123"は文字というように
書き方で型をこっそりと記述している。
他にも/abc/は正規表現型、1.0は浮動小数点型などの定義方法がある。
シンボルはその一つで、:で始めることにより、シンボル型の値を書くことができる
0848デフォルトの名無しさん (ドコグロ MM3f-keNo)
垢版 |
2019/11/09(土) 12:03:54.60ID:u1W/mjBNM
>>842
文字列リテラルよりも記述が簡便だからという理由により、本来文字列を使うべき用途にもシンボルが乱用された結果、
シンボルGCなどという頭の悪いものが誕生したりしたんだよな
誰がどう見ても完全に失敗
0849デフォルトの名無しさん (ワッチョイ 9f2c-E8Ce)
垢版 |
2019/11/09(土) 12:04:25.68ID:Ypm9+s0e0
シンボルは、識別子を表すために作られたのか、数字で始められないだろ。
下はエラーになる

p :"1" # OK

p :1 # エラー
0853デフォルトの名無しさん (ワッチョイ 9f01-vL98)
垢版 |
2019/11/09(土) 14:08:02.54ID:MvykJ39t0
>>850
sliceやchunkのような分割系以外は
ブロックがなければEnumeratorを返すのを基本ルールにしてるから
mapはシンボルを取る形がないんじゃないかな

injectはEnumeratorを返すものじゃないから
ちょっと気を利かしてシンボルを取る形を加えたのかもね
0855デフォルトの名無しさん (アウアウカー Sa89-AiI5)
垢版 |
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
とかだと見てくれ良くないし無駄も多い
0861デフォルトの名無しさん (ワッチョイ 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]となってしまいます
0862デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 01:27:53.59ID:DazDco060
method([0,1])でした
失礼しました
0864デフォルトの名無しさん (ワッチョイ 9305-CPe6)
垢版 |
2019/11/23(土) 10:59:21.53ID:DazDco060
>>863
ありがとうございます
アドレスの参照先をコピーしてるだけだったんですね
理解しました
調べたところMarshalで書き出せばバイト値もコピーできるようなのでこの方法でいきます
0865デフォルトの名無しさん (ワッチョイ 9301-wiXz)
垢版 |
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]]
0866デフォルトの名無しさん (ワッチョイ 132c-4eZD)
垢版 |
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 などの自社サービス系は、多重請負構造じゃないから抜かれない
0867デフォルトの名無しさん (ワッチョイ 132c-4eZD)
垢版 |
2019/11/23(土) 21:01:37.75ID:fygFNKSM0
C/C++ 以外のほとんどの言語では、参照がコピーされるだけ!
インスタンスを作っていない

だから、実際のインスタンス数は、clone, dup, new された回数を、チェックすれば良い
0868デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
垢版 |
2019/11/23(土) 22:03:14.93ID:uAZdpObm0
土方系の仕事って何ですか
0874デフォルトの名無しさん (ワッチョイ f98f-Sa3v)
垢版 |
2019/11/24(日) 15:33:55.35ID:Gqvqz24c0
要件定義、外部設計を受注できるプライマリの
会社に行かないと高収入はないよ。
内部設計、プログラミングは下流工程だから下請けに流される。

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

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

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

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

実際に、車のメーカーの企業の時価総額は変わらないけど、
アマゾン・Google などのサーバー屋は、100兆円企業になってる!
0878デフォルトの名無しさん (ワイーワ2 FF63-KqLj)
垢版 |
2019/11/25(月) 12:33:00.08ID:pjJuONFZF
>上流工程が、下級工程の給料を決める
>クライアント側ではなく、サーバー側・構築運用へ行った

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

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

DSL の書き方だけができる、ライブラリ・フレームワークはないの?
0885883 (ワッチョイ 922c-Ql8R)
垢版 |
2019/11/30(土) 09:10:10.03ID:HbGyzSLF0
環境の構築テストなどを、すごく簡潔に、宣言っぽく書いている

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

便利だなと思って
0887デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
垢版 |
2019/12/02(月) 22:47:05.03ID:H5nAExhM0
改訂4版 基礎 Ruby on Rails、黒田努・佐藤和人、2018/9/7

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

ついでにオブジェクト脳の本の社長起立プログラム、あれ最高にキモイ
0889デフォルトの名無しさん (ワッチョイ 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'
0892889 (ワッチョイ 232c-+J45)
垢版 |
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に渡る際に、どう変換されるのか?

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

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

それに比べたら、PowerShellははるかにまともで現代的。
0897889 (ワッチョイ 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
0898デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:14:28.56ID:uUae0oO6F
pythonは””も’’も意味一緒だが
rubyは””と''は微妙に意味違うよな
0899デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/06(金) 10:16:15.68ID:uUae0oO6F
'puts %Q(hello)'
あるいは
"puts %Q(hello)"
で良いのに
0900889 (ワッチョイ 232c-+J45)
垢版 |
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
と出力された!
0903889 (ワッチョイ 232c-+J45)
垢版 |
2019/12/06(金) 23:26:41.64ID:IktivxOB0
1-liner を、" " で囲むと「$ \ ` !」などの機能が働くので、
それよりも強いエスケープである、' ' で囲む

' ' で、すべての特殊文字を無効化して、シェルに解釈させないため
0904デフォルトの名無しさん (ワイーワ2 FF93-MVf8)
垢版 |
2019/12/07(土) 14:11:49.26ID:qPdUR/SgF
>>902
``
0906デフォルトの名無しさん (ワッチョイ 232c-+J45)
垢版 |
2019/12/09(月) 06:17:52.14ID:+FpDkG8n0
rdoc の説明を読んでるけど、難しい

皆、自作ライブラリをrdoc用に書いてるの?
0908デフォルトの名無しさん (ワッチョイ 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)
0909デフォルトの名無しさん (アウウィフ FF3b-uKDx)
垢版 |
2019/12/17(火) 13:41:59.97ID:rApV4krMF
shuffle! shuffle!
0910デフォルトの名無しさん (ワッチョイ 62ad-I3wE)
垢版 |
2019/12/17(火) 14:23:19.78ID:ObjwLX/w0
>>908です
定義の最後の部分で戻り値を記述するのを忘れており
記述したら解決しました
0913デフォルトの名無しさん (ワッチョイ efd2-LrQS)
垢版 |
2019/12/18(水) 17:27:34.36ID:JutxhN8f0
digitsメソッドが返す配列を元の数値に戻すには
自分で計算するしかないのかな
何かついになるメソッドがないかと
探してみたけどわからなかった
0920デフォルトの名無しさん (ワイーワ2 FFdf-yOET)
垢版 |
2019/12/19(木) 12:17:12.46ID:+cpLTGtZF
tpyhonは知らんけどpythonにはnumpyでpackbitsがあるんやで
0921デフォルトの名無しさん (ワッチョイ 9f01-pdcM)
垢版 |
2019/12/19(木) 14:26:11.65ID:snKgfw1x0
>>919

>>914が言ってるのは単なる基数の変換じゃないよ
基数の変換はto_s, to_iに2~36までなら直接渡せるからそれで済ませることが多い
もっと大きい基数が必要になってもinjectやmapで簡単に変換可能だから
いくつかgemあるけど人気ない
0925デフォルトの名無しさん (ワッチョイ 9f01-pdcM)
垢版 |
2019/12/19(木) 21:39:52.45ID:snKgfw1x0
2/8/10/16進数の変換は基本的だろうけど
それはInteger#to_s, String#to_i, Integer()で十分

遊びで作るようなプログラムを除くと
それ以外で必要なのってBase64くらいでそれは別途用意されてる
0927926 (ワッチョイ bf7d-e4Q/)
垢版 |
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"
0929デフォルトの名無しさん (ワイーワ2 FFdf-hPjh)
垢版 |
2019/12/22(日) 13:06:26.92ID:6Us+wzVLF
質問です
Ruby on Rails で SQLite は使えますか?
使えるならどうやれば良いですか?
0936デフォルトの名無しさん (ドコグロ MMbf-On3P)
垢版 |
2019/12/23(月) 13:18:52.98ID:+KUE/8IiM
まあ実際にはRailsアプリでSQLiteを使うことなんて無いから、使えないと考えても差し支えない
DBMSの癖に依存しないアプリなんて現実には不可能なので、テストであっても最初からプロダクションと同じDBMSを使えばよい
0937931 (ワッチョイ 9f2c-1ZZR)
垢版 |
2019/12/24(火) 03:27:44.81ID:3XzgnZW70
SQLite は、ブラウザがURL などを保存するのに使っている

ただ、Rails では開発用専門で、本番では使えない
0940デフォルトの名無しさん (ワッチョイ 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 )
0941940 (ワッチョイ 9f2c-1ZZR)
垢版 |
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}
0943デフォルトの名無しさん (ワッチョイ 62ad-pk5L)
垢版 |
2019/12/28(土) 13:49:43.58ID:TvplFsgk0
ビット演算のビット反転について質問なんですが
(~0b1010).to_s(2) の戻り値が"-1011"なのは何故ですか?
反転なので単純に "0101" となるか、補数表現なら"0110" だと思ったのですが
0947デフォルトの名無しさん (ワイーワ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
0948デフォルトの名無しさん (ワッチョイ f12d-vQnI)
垢版 |
2019/12/28(土) 16:13:08.13ID:VPT4/FzX0
QiitaかHatenaでやれ
0953デフォルトの名無しさん (ワッチョイ 62ad-pk5L)
垢版 |
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 と言えるのか
0958デフォルトの名無しさん (ワッチョイ 8e14-K2lL)
垢版 |
2019/12/28(土) 23:49:13.11ID:u9ordgE/0
補数表現には2の補数と1の補数があるって知らないのかな?
補数表現とだけじゃどちらかわからんだろ

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

違う
それは君が2の補数の負数に慣れ過ぎてそう思ってるだけ
1の補数を負数とする定義も普通に存在する
0965デフォルトの名無しさん (アウウィフ FF3a-v1fK)
垢版 |
2019/12/29(日) 13:55:36.09ID:49gQrlWfF
そりゃ便利な方が使われるわ
存在するのと使われてるか普及してるかは関係無い
utf-7とかおまいら使ってないやろ
0967デフォルトの名無しさん (ワイーワ2 FF7a-v1fK)
垢版 |
2019/12/30(月) 11:12:31.07ID:WAqdspciF
1の補数があまり使われない理由は
計算が面倒なんじゃなくて
0が+-二つあるのがもったいないからって理由だっけ
0971デフォルトの名無しさん (アウウィフ FF3a-Qqkg)
垢版 |
2019/12/31(火) 19:37:02.21ID:z/4e8Z8bF
すみません、初学者で苦労してまして・・
Rubyxlでエクセルのテンプレートを編集したく

そこで、特定のセルをコピーして特定のセルに貼り付ける
操作を行いたいのですが、ネットで検索しても全くヒットせず
有識者のかたいらっしゃれば、ご教授いただけましたら幸いです。。
0973972 (ワッチョイ ae2c-fJ/L)
垢版 |
2019/12/31(火) 20:55:42.15ID:ozxOKIBe0
Ruby で xlsx を編集する
http://secret-garden.hatena@blog.com/entry/2017/09/21/174348

rubyXL についての記事

@ を取り除いてください!
はてなブログなので一応、5ch のアクセス禁止を警戒して、URL を書きません!
0974デフォルトの名無しさん (ワッチョイ ed63-av3+)
垢版 |
2020/01/01(水) 01:22:54.75ID:m6l/1R8h0
>>973
ご丁寧に有難うございます!!
0976デフォルトの名無しさん (ワッチョイ c2a5-s4wZ)
垢版 |
2020/01/01(水) 10:46:50.28ID:zZ41nBr+0
本当にxmlでやりたいんなら

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

こりゃーRubyは関係ないな
0977デフォルトの名無しさん (アウウィフ FFa5-p4uH)
垢版 |
2020/01/01(水) 11:27:28.59ID:tqBP4ADqF
ぶっちゃけ質問者の利益を最優先で回答すると
python で win32com 使うのが最善解
0980デフォルトの名無しさん (ワッチョイ 8201-TJkF)
垢版 |
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使ったほうが簡単
0981デフォルトの名無しさん (ワッチョイ 8201-TJkF)
垢版 |
2020/01/01(水) 15:12:15.44ID:DUq05mSq0
VBAの代わりに使うようなクライアントサイドの用途なら
Python + xlwingsが知ってる限りは一番使いやすい

RubyからもPyCallかませば使えるがExcel処理はPython + xlwingsで書いて
それをPyCall経由でやり取りするのが簡単
0983デフォルトの名無しさん (ワッチョイ ed61-BfT8)
垢版 |
2020/01/01(水) 19:00:41.76ID:mlJgbHp20
>>981
Excelでちょっと始めて、データが大きくなってきたら、そのままpandasに移行。
もう勝ち目ないな。
0986デフォルトの名無しさん (ワッチョイ 42a5-aiXr)
垢版 |
2020/01/03(金) 09:09:03.63ID:+DQqbAVf0
rubyって全てがオブジェクトなところがいいですよね
0988デフォルトの名無しさん (ワッチョイ 4914-DsOW)
垢版 |
2020/01/03(金) 13:15:01.02ID:CVCs++Sx0
Ruby・・・値型はオブジェクトだが、メソッドはオブジェクトでない。
JavaScript・・・値型はオブジェクトではないが、メソッドはオブジェクト。
         ただし値型に対応するオブジェクト型が存在する。例 Number(1)

どっちが良いんだろうなw
値型はRubyの方が便利なんだろうけど、JavaScriptの方が最適化できるだろうし
0994デフォルトの名無しさん (ワッチョイ 6265-oRfB)
垢版 |
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    (* 結果は同じ *)
0995デフォルトの名無しさん (オッペケ Srf1-hZl1)
垢版 |
2020/01/03(金) 20:45:58.77ID:+RiBlMC+r
>>986「rubyって全てがオブジェクトなところがいいですよね」
>>987「メソッドはオブジェクトじゃないぞ」
>>990「Methodクラスがあるよ」 ←は?
>>991「Methodクラスのオブジェクトはメソッドじゃないぞ」
>>992「それがどうしたの?」 ←は?は?は?

マジで意味不明だわコイツ
馬鹿すぎる
0996デフォルトの名無しさん (ワッチョイ 6265-oRfB)
垢版 |
2020/01/03(金) 21:03:06.07ID:e4Snrs1J0
>>993
間違っているという指摘、そのものが誤りだということ

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

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

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

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

だったとして、それでもなお>>987を擁護する?
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を超えています。これ以上書き込みはできません。

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