[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/13 18:23 / Filesize : 307 KB / Number-of Response : 1052
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby 初心者スレッド Part 66



1 名前:デフォルトの名無しさん [2020/01/04(土) 01:15:34.30 ID:X7t3Qsuc0.net]
プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ

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

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

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

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

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

Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

653 名前:デフォルトの名無しさん mailto:sage [2020/08/11(火) 20:23:27.98 ID:Uga1WByLa.net]
自動的に if then else end に展開するスクリプトを書けば
問題解決じゃないの?

654 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 01:36:05.08 ID:UVmFgkue0.net]
JavaScript, PHP, Python は、各型に偽があるので、10個ぐらいあって大変。
0, 0.0, 空文字列、空配列、空辞書とか

Ruby では、nil, false だけが偽だから、変数の型を考えなくて済む。
各型が偽になる条件を考えるのは、苦痛

確か、Rails には、そういう関数があったかも知れない

655 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 02:44:28.08 ID:2N2Ra+Iw0.net]
しかし、コンピュータは、ロジック回路や電卓の時代から、0が偽で、1が真と
決められ、TTL-ICでも、NAND, NOR,AND,OR,NOTのどれもがその規則に
従っていた。
アセンブラやマシン語でもそれが踏襲され、1 and 1 = 1, 1 and 0 = 0となる。
とこが、Rubyだけは、1 and 0 = 1 というような変なことになる。
これは受け入れがたい。
こういうコンピュータの基礎を無視するようなことしてるのは困る。

656 名前:デフォルトの名無しさん (ワッチョイ 2e63-cv7i) mailto:sage [2020/08/12(水) 02:52:44 ID:02pnoruX0.net]
r

657 名前:ubyの0はメモリに何も入ってないのを表すんじゃなくてNumericクラスのインスタンス
何かのインスタンスなんだから真なのは自然
rubyの全てオブジェクトという基礎を無視するのは困る
[]
[ここ壊れてます]

658 名前:デフォルトの名無しさん (ワッチョイ 4d61-CWhB) mailto:sage [2020/08/12(水) 03:08:54 ID:2N2Ra+Iw0.net]
>>630
しかしそれ自体が、コンピュータの基礎とかけ離れた設計思想になっている。
コンピュータの世界では、非常に古くから0が偽であると定義されている。

659 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 03:12:27.26 ID:2N2Ra+Iw0.net]
数学の世界でも、真理値表では、0が偽、1が真。
andを「論理積」というのは、andを掛け算(つまり「積」)に置き換えてみると
結果が同じになり、
orを「論理和」というのも、足し算を「飽和演算」とする場合に、足し算に
置き換えられるからで、
それらは、0を偽とした場合にのみ成り立つ。
0も1も真としてしまっては、これら、論理積、論理和という言葉の定義すら
理解しにくくなってしまうだろう。

660 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 04:29:24.89 ID:RMBTHnXK0.net]
>>630
だったら、偽なのはfalseだけにしとけよと思う。
真偽値でなければならないところは真偽式しか書けないようにしとけと。

微妙にいいかげんなんだよな。

661 名前:デフォルトの名無しさん [2020/08/12(水) 05:16:20.30 ID:pHDlYbYE0.net]
いやいや、そもそも0や1が真になるのがおかしい
if 0 then 〜 はエラーにすべきだろう



662 名前:デフォルトの名無しさん [2020/08/12(水) 07:16:25.66 ID:MEC6nwIV0.net]
俺は、Rubyではnil, falseだけが偽とする。0を偽としないって設計は好きだな。

Conventionalな考え方とは異なるってのも別に良いじゃん。
そんなConventionalな、つまり従来の考え方を踏襲しない言語なんて一杯あるし。

これが気に入らんのは、Kotlinでfunで関数定義するやつ。

663 名前:デフォルトの名無しさん (ワッチョイ 454e-/dLM) mailto:sage [2020/08/12(水) 07:25:45 ID:q4xTlvo30.net]
まあ一番基本的であろうdefで作った関数(ほんとは関数じゃないというのは置いといて)が第一級市民(オブジェクトと言うと誤解を招くので)として扱われない仕様には若干古くささを感じる。
JSどころかPythonですらできるのに…
引数ゼロで呼び出しかかっちゃうんだよなぁ…
()省略文法の弊害。
今思えば必須でよかったんじゃないか?()くらい

664 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 08:00:48.62 ID:UVmFgkue0.net]
Ruby では、関数・ブロック(クロージャ)の2つのスコープがある。
2つないと、バグりやすい

関数は、クロージャと違って、スコープが厳しい。
C と同じで、外側の変数を通さないから、バグが少ない

Go も、Rubyを見習ったし、
JavaScript も、新たなスコープを作った

665 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 08:34:16.06 ID:lEc3olaBM.net]
老害の極み
1 and 0 なんてコードを書こうとするほうがどうかしてる

666 名前:デフォルトの名無しさん [2020/08/12(水) 08:38:11.02 ID:MEC6nwIV0.net]
>>638
そのとおり!

いつまでも、0が偽であるべき!
なんて考えに取り憑かれているべきでは無い。

ちなみに、俺、56歳ね!

667 名前:デフォルトの名無しさん (アメ MM55-/dLM) mailto:sage [2020/08/12(水) 08:49:24 ID:1xAI9U35M.net]
ぶっちゃけ今どきるびぃみたいな型なしクソ言語にしがみついてるやつらが老害だけどなw

668 名前:デフォルトの名無しさん (テテンテンテン MM26-ocCp) mailto:sage [2020/08/12(水) 09:10:24 ID:fvB0TNCqM.net]
>>636
オブジェクト指向原理主義的には、メソッドはオブジェクトに対してメッセージを送信した結果生じるオブジェクトの「反応」なんだよ
そこは完全にオブジェクト側に任されていて、オブジェクト自体がRubyの仮想マシン上でどう実装されてる

669 名前:ゥすらも呼び出し側が期待するべきではないの
JavaScriptだとオブジェクトが単なる連想配列であるという前提のもとでそこからメソッドを引っ張り出して呼び出すわけだけど、それはある意味オブジェクトのカプセル化を破っているというわけ
そういう思想的背景を理解すれば、Rubyのメソッドが第一級関数ではない理由は君にも納得できるんじゃないかな
まあその思想に拘ることにどれだけ実用的意義があるかは別問題で、俺もRubyが時代遅れだというのは同意するけどね
[]
[ここ壊れてます]

670 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 09:42:55.58 ID:/4eCUYwNa.net]
これ本当なのですか?

Ruby on Rails では、サーバー側がRubyで、
クライアント側が、React + Bootstrap も多いけど、

サーバー側をJavaScript(JS), Node.js にすれば、
言語が1つになるので、開発が楽になると主張する人もいるけど、

あまりに、JSは巨大だから、かえって難しくなる

だから、Rails では、Node.js, Webpack, Babel をコンパイルツールとして使っているだけ

671 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 09:55:36.17 ID:sCXl4KJWa.net]
> あまりに、JSは巨大だから、かえって難しくなる
ここが飛躍していて意味不明である
RailsはサーバーサイドだけであってもJSよりRubyで書いた方が簡単だと思っている奴が使うためのフレームワークであり、それに正しいもクソもない
そう思う奴が少なければ自然に廃れるだけだし、事実廃れている



672 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 10:22:22.84 ID:UVmFgkue0.net]
JS は最近まで、基本型であるハッシュも無かった

皆、オブジェクトをハッシュの代わりに使っていたけど、
__proto__ という属性名を使うと、バグってしまう

こういう事も知ってる香具師は、まずいない。
標準機能が少なくて、自作すると、様々な引掛けに掛かってしまう

var myObj = { };
str = 'abc';

myObj[ str ] = 1;
console.log( myObj[ str ] ); // 1

str = '__proto__';

myObj[ str ] = 2;
console.log( myObj[ str ] ); // 2 ではなく、{ }

673 名前:デフォルトの名無しさん [2020/08/12(水) 10:28:49.86 ID:0iqLL9pv0.net]
Railsは、PHP全盛期に誰が使っても大穴が開かないから人気があっただけでさ
Node.js等に優秀なフレームワークが出そろった今ではもう、使う価値はほとんどないよ・・・・

674 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 12:33:47.08 ID:RMBTHnXK0.net]
>>644
あらさがしもいいとこ。
識別子に「__」を混ぜるヤツなんかそうそういねえ。

675 名前:643 mailto:sage [2020/08/12(水) 12:51:13.63 ID:UVmFgkue0.net]
使っている単語を集めるアプリで、__proto__ が使われていたら、バグる

Haxe では、この仕様を回避するために、すべての属性名の先頭に、@ を付けていた。
@abc, @__proto__ みたいにする

でも、__proto__ も、ブラウザが慣習として使っているだけのもので、
規格で決まっているわけでもないので、変わるかも知れない

もし変わったら、突然アプリがバグってしまう

各社が、勝手に決めている部分も多いから、プログラミングしにくい。
言語の標準機能が少ないから、配列の便利な操作でも、
Lodash など外部のライブラリを使うしかない

676 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 13:21:10.21 ID:/qrw2h6bM.net]
標準なのかRailsの独自拡張なのかの区別すら困難なほどにRailsにクソミソに汚されたRubyの悪口はやめなさい
少なくともJSにおいては、標準ライブラリを汚すような行儀の悪いライブラリが広く一般的に使用されたりはしていない

677 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 13:25:19.87 ID:kGuev0jHr.net]
TSでいいじゃない 人間だもの

678 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 14:24:08.46 ID:HozojyCs0.net]
暑くなるとどのスレにも変なのが湧くね
知ってて批評する

679 名前:分にはいいけど知ったか批評しかなく中身がない []
[ここ壊れてます]

680 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 15:43:20.47 ID:8Nm8vDB1M.net]
unixの世界では0がtrue、1を含むそれ以外がfalse。

慣習よりも実益が上回るなら、慣習に従う必要なんてない。

Swift、Kotlin、Go、Rustらのメジャーな新言語で0や1をそのまま真偽値として使える言語は一つとしてないのは、JSのtruthy/falsyはバグの温床だから。

681 名前: mailto:sage [2020/08/12(水) 17:03:15.03 ID:UG+oufucH.net]
>>651
それはシェルが扱う「プログラムの」返値のときで、しかも意味は 0 が正常終了、1 が非正常終了、と、ちょっと違う



682 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 17:41:31.55 ID:RMBTHnXK0.net]
>>652
testコマンドでは、0が真、それ以外が偽。

>>651が「unixの世界」とか言ったからややこしいけど、シェルだけの話でもない。

683 名前: mailto:sage [2020/08/12(水) 17:54:35.78 ID:UG+oufucH.net]
>>653
test コマンドの実体が外部の実行ファイルなら、それは >>652 のいうところの「プログラムの返値」‥‥@
test コマンドがシェルの内部に埋め込まれている場合もある(例えば bash)‥‥A

@Aいずれの場合も「シェルの話」なのでは?

684 名前:デフォルトの名無しさん mailto:sage [2020/08/12(水) 18:29:24.32 ID:RMBTHnXK0.net]
>>654
「終了」だけの話じゃないから。

685 名前:デフォルトの名無しさん [2020/08/13(木) 10:20:15.54 ID:m1xh97jBF.net]
>>652
unix とか shell とか C の関数とか
戻り値の扱いが統一されてないのは不自然だよね

686 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 11:02:33.72 ID:HLH3bdVq0.net]
>>656
コマンドの終了コードは真偽の2値だけじゃないから。
わかりにくいといえばそうだが、しかたない。

687 名前:デフォルトの名無しさん mailto:sage [2020/08/13(木) 11:27:21.81 ID:+ydphYXd0.net]
>>651
それは真偽値じゃなく、0が成功、0以外がエラーで、番号でエラーの種類を表しているだけ。
Unixでは、誕生の時から、Cと二人三脚だったが、Cはもともと1が真、0が偽だった
わけだから、Unixも当然、1が真、0が偽。
エラー番号は、真偽値とは直接関係が無く、Unixとは関係ないMS-DOSや
PC-8801のアセンブラの世界でも、0が成功、0以外でエラーの種類を表すことが
多かった。なぜかといえば、それが効率が良かったから。
当時のCPUは非力だったので、そのように1つの整数で多くの情報を表すと、
飛躍的に体感速度が上がったからそうなっていた。

688 名前:デフォルトの名無しさん [2020/08/13(木) 19:09:06.75 ID:Tr7DEHMo0.net]
dllでchar* hoge(){

}

689 名前:デフォルトの名無しさん [2020/08/13(木) 19:11:24.89 ID:Tr7DEHMo0.net]
dllで
char* hoge(){
return msg;
}
ってやったのをrubyではどうやってうけとればいいんですか?
お願いします

690 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 05:15:39.54 ID:SCMnTycc0.net]
「ruby dll 呼び出し」で検索すれば?

ただ、Windows 用にコンパイルしても、正常に動くかな?

691 名前:デフォルトの名無しさん [2020/08/14(金) 15:59:11.59 ID:XKPWE/tlF.net]
ffi



692 名前:デフォルトの名無しさん [2020/08/14(金) 16:44:23.46 ID:MuRP3aMr0.net]
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "D:./myruby.dll"
extern "char* gethoge()"
end
ss = M.gethoge
puts ss

文字化けします

693 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 17:05:39.60 ID:B0hSR/wp0.net]
文字コードが違うんやろ。
変換すれば。

694 名前:デフォルトの名無しさん [2020/08/14(金) 17:27:30.3 ]
[ここ壊れてます]

695 名前:1 ID:MuRP3aMr0.net mailto: 変換のしかたがわからないのです []
[ここ壊れてます]

696 名前:デフォルトの名無しさん [2020/08/14(金) 17:28:37.41 ID:MuRP3aMr0.net]
dllはshiftjisです

697 名前:デフォルトの名無しさん [2020/08/14(金) 17:30:52.13 ID:MuRP3aMr0.net]
`require': cannot load such file -- ffi

698 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 17:44:20.45 ID:cCFmHkiX0.net]
>>663
ss = M.gethoge.force_encoding( Encoding::CP932 )

699 名前:デフォルトの名無しさん [2020/08/14(金) 18:18:09.19 ID:zY2s9ydfF.net]
ruby -Ks

700 名前:デフォルトの名無しさん [2020/08/14(金) 18:24:57.25 ID:MuRP3aMr0.net]
一通りやったのに問題解決しませんでした、諦めました
どうもありがとうございました

701 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 18:35:40.73 ID:5nafUaAcr.net]
dllがShift-JISでrubyがUTF-8でターミナルがWindows-32Jとかなんじゃねえの
情報を小出しにされたんじゃわかるわけない



702 名前:デフォルトの名無しさん [2020/08/14(金) 18:40:48.13 ID:MuRP3aMr0.net]
それです
ターミナルがよくわかりません

703 名前:デフォルトの名無しさん [2020/08/14(金) 18:42:22.56 ID:MuRP3aMr0.net]
ターミナルはshiftjisでした

704 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 18:58:09.61 ID:5nafUaAcr.net]
そもそも本当に文字化けなのか?
想定する文字列と
p ss
した結果は?

705 名前:デフォルトの名無しさん [2020/08/14(金) 19:03:22.47 ID:MuRP3aMr0.net]
#<Fiddle::Pointer:0x000000000313e7d0 ptr=0x00007ffea5c03038 size=0 free=0x0000000000000000>

706 名前:デフォルトの名無しさん [2020/08/14(金) 19:04:10.92 ID:MuRP3aMr0.net]
require 'fiddle/import'

module M
extend Fiddle::Importer
dlload "D:./myruby.dll"
extern "char* gethoge()"
end

p M.gethoge

system "pause"

707 名前:デフォルトの名無しさん [2020/08/14(金) 19:06:41.96 ID:MuRP3aMr0.net]
想定する文字列は「こんにちは!」です

708 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 19:07:56.76 ID:cCFmHkiX0.net]
p M.gethoge.encoding

709 名前:デフォルトの名無しさん [2020/08/14(金) 19:08:46.36 ID:MuRP3aMr0.net]
puts M.gethoge
だと
S0�0k0a0o0�

710 名前:デフォルトの名無しさん [2020/08/14(金) 19:10:43.30 ID:MuRP3aMr0.net]
>>678
undefined method `encoding' for #<Fiddle::Pointer:0x0000000002c42230> (NoMethodError)

711 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 19:16:58.97 ID:cCFmHkiX0.net]
p M.gethoge.to_s.encoding



712 名前:デフォルトの名無しさん [2020/08/14(金) 19:19:22.81 ID:MuRP3aMr0.net]
>>681
#<Encoding:ASCII-8BIT>

713 名前:デフォルトの名無しさん [2020/08/14(金) 19:21:07.40 ID:MuRP3aMr0.net]
#include <stdio.h>

char name[] = "こんにちは!";

extern "C" __declspec(dllexport) char* __stdcall gethoge() {
return name;
}

dll側です

714 名前:デフォルトの名無しさん (ワッチョイ 1e7d-yoZq) mailto:sage [2020/08/14(金) 19:28:01 ID:cCFmHkiX0.net]
puts M.gethoge.to_s.force_encoding( Encoding::CP932 )

715 名前:デフォルトの名無しさん (ワッチョイ dd5f-XQXO) [2020/08/14(金) 19:29:32 ID:MuRP3aMr0.net]
>>684
お!出ました!
ありがとうございました
助かりました

716 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 19:38:38.19 ID:5nafUaAcr.net]
hoge.dllコンパイルしてたら解決してた
良かったね

717 名前:デフォルトの名無しさん [2020/08/14(金) 19:58:30.98 ID:MuRP3aMr0.net]
>>686
ありがとうございました

718 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 22:28:15.31 ID:SCMnTycc0.net]
Windows で、Ruby を使うのは、CP932 で苦しむ。
ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932

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

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

719 名前:デフォルトの名無しさん mailto:sage [2020/08/14(金) 23:58:52.64 ID:sxmwfi0L0.net]
>>688
スクリプト/内部/外部のエンコーディングをCP932にすれば
CP932 -> UTF8とUTF8 -> CP932の変換や指定は不要

720 名前:デフォルトの名無しさん [2020/08/18(火) 19:07:20.91 ID:7fbjefcm0.net]
mechanizeのform送信を使って5chに書きこむことはできますか?

textareaにvalue値を入れ、submitし、承諾しますか?の画面まで行けたのですが、そこから同じようにsubmitしてもページ遷移が起こらずそのままみたいです

721 名前:デフォルトの名無しさん mailto:sage [2020/08/18(火) 19:31:46.44 ID:AGh/qXAtr.net]
>>69



722 名前:0
cookie
[]
[ここ壊れてます]

723 名前:デフォルトの名無しさん [2020/08/18(火) 19:53:02.69 ID:7fbjefcm0.net]
>>691
具体的にcoockieをどうすれば良いでしょうか?

724 名前:デフォルトの名無しさん [2020/08/18(火) 20:08:47.36 ID:h5vNCvfYF.net]
hanamogera
tepodon

725 名前:デフォルトの名無しさん mailto:sage [2020/08/18(火) 21:43:20.22 ID:HR/M/dGq0.net]
>>688
>Windows で、Ruby を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932

Rubyを生半可に知ったつもりの人にありがちな勘違いだな
まず、多言語化に対応した多くのプログラミング言語は、
内部エンコーディングとしてUTF-8を採用している、ここまでは間違いではない
しかしながらRubyは内部エンコーディングとして特定のエンコーディングを採用せず、

  文字列(String)オブジェクトの属性としてエンコーディング情報を保持する

方式を採用した
だから>>689氏が指摘しているように、エンコーディングをCP932で統一できるなら、
Rubyであれば 外部・CP932 → Ruby内部・CP932 → 外部・CP932 と
エンコーディングフリーなプログラミンングを実践できる

・Ruby 2.7.0 リファレンスマニュアル > 多言語化
 ttps://docs.ruby-lang.org/ja/latest/doc/spec=2fm17n.html
・Rubyのエンコーディング
 ttps://www.sl*d*share.net/tmtm/ruby-nseg30
・Rubyのエンコーディング
 ttps://tmtms.h*t*n*blog.com/entry/20120812/ruby_encoding

ありふれた言語、たとえばPythonであれば内部エンコーディンングはUTF-8固定だから:
>Windows で、Python を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Python内部・UTF-8 → 外部・CP932
という指摘は正しい

726 名前:デフォルトの名無しさん mailto:sage [2020/08/18(火) 22:19:28.71 ID:KlQrPk6/0.net]
CSI方式を採用した背景はこれ読むといいよ
https://jp.quora.com/Ruby-deha-naze-UCS-seiki-ka-wo-saiyou-shi-tei-nai-node-shou-ka/answers/141570426

↓こう書いとけばリテラルもI/OのデフォルトもCP932
#! /usr/bin/env ruby -E CP932:CP932
# encoding: CP932

727 名前:デフォルトの名無しさん mailto:sage [2020/08/19(水) 00:17:36.61 ID:45CsPPnjM.net]
エンコーディングのコストなんてIOに比べりゃ無視できる
ぶっちゃけRubyのやり方は百害あって一利無し

728 名前:デフォルトの名無しさん mailto:sage [2020/08/19(水) 00:28:27.54 ID:dM5o8vR90.net]
windowsのファイルシステムのエンコーディングを中途半端なままにしたことで、
windowsユーザーへの嫌がらせになった以外に何の意味もなかった

729 名前:デフォルトの名無しさん [2020/08/19(水) 01:42:46.33 ID:Ch6IfZIA0.net]
>>696
+1
ほんそれ

730 名前:デフォルトの名無しさん (ワッチョイ 9f33-KILr) mailto:sage [2020/08/19(水) 01:52:26 ID:zoQbwZV20.net]
>>697
Windowsのファイルシステムでは、あらゆるエンコーディングがうまくいってない気がするな。w
まあ、しょせんUTF-16だしな。
安全そうなところだけをつかったほうが安心。

731 名前:687 mailto:sage [2020/08/19(水) 02:07:17.75 ID:w/3evjlx0.net]
UTF-8 以外は実績が無いから、文字列処理とか、怖くて使えないだろ。
誰も使っていないから

文字列を、正しく数値に変換できるのかとか

IO の境界で、変換する方が安全だと思う



732 名前:デフォルトの名無しさん mailto:sage [2020/08/19(水) 02:33:17.91 ID:w/3evjlx0.net]
>>690
RubyでCookieの読み込みや保存を幸せにする(Mechanize&Selenium)
https://rooter.jp/web-crawling/ruby-cookie/

「ruby mechanize cookie」で検索すれば?

漏れは、selenium webdriver で、実際のブラウザを操作しているだけだから、
クッキーの事も、考えたことはない。
ブラウザが勝手にやる

プログラミングでは、入力して、ボタンを押すだけだから、簡単。
下は、yahoo のログインの例

driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"

element = driver.find_element(:id => "username")
element.send_key "ユーザー名"

driver.find_element(:id => "btnNext").click

element = driver.find_element(:id => "passwd")
element.send_key "パスワード"

driver.find_element(:id => "btnSubmit").click

733 名前:700 (ワッチョイ 1f2c-1yu9) mailto:sage [2020/08/19(水) 07:23:42 ID:w/3evjlx0.net]
selenium webdriver なら、これで、
この板のtest スレの、書き込み確認画面が出る。
ひょっとしたら、確認画面が出ないかも知れない

require "selenium-webdriver"

options = Selenium::WebDriver::Chrome::Options.new

options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大

driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 15 # default timeout

# プログラム板のtest スレ
driver.navigate.to "https://mevius.5ch.net/test/read.cgi/tech/1597362675/1"

element = driver.find_element( :css => ".formbody textarea" )
element.send_key "あい"

driver.find_element( :css => ".formbody input.submitbtn" ).click

734 名前:700 mailto:sage [2020/08/19(水) 09:15:13.90 ID:w/3evjlx0.net]
>>702
の続きに、以下を書くと、確認画面に切り替わった後の処理も、できる

単に、input[type=submit] のボタンを待つと、
遷移前後の両方のページで、ヒットするので、
確認画面に切り替わったかどうか、判別できない

遷移後のページだけに存在する、要素を待てば、
それが出現するまで、wait できるかも

sleep 7

# 確認画面が出る。https://mevius.5ch.net/test/bbs.cgi
puts driver.current_url # 切り替わったかどうか、URL を表示する

# ボタンのラベルを表示する
puts driver.find_element( :css => "input[type=submit]" ).attribute( "value" )

735 名前:デフォルトの名無しさん [2020/08/19(水) 10:10:18.21 ID:jdryYSd80.net]
>>701さんのリンク先参考に見よう見まねでとりあえずやってみたんですけど、いまいちcookie_jarとかよくわからない・・・

require 'mechanize'
require 'yaml'

agent = Mechanize.new
agent.user_agent_alias = "Windows Mozilla"
agent.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50')
cookie_str = agent.cookies.map{|e| e.set_cookie_value}.join(", ")
#puts cookie_str

agent2 = Mechanize.new
HTTP::Cookie.parse(cookie_str, "https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50").each{ |cookie| agent2.cookie_jar << cookie }

cookie_yml = agent.cookies.map{ |e| e.to_yaml }.join
#puts cookie_yml

agent2.cookie_jar << YAML.load(cookie_yml)

#pp agent2.cookie_jar

agent2.user_agent_alias = "Windows Mozilla"
page = agent2.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50')


form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')
form.field_with(:name=>'MESSAGE').value = 'テスト'
next_page = agent2.submit(form)
form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')

736 名前:デフォルトの名無しさん [2020/08/19(水) 10:13:04.91 ID:jdryYSd80.net]
agent2.submit(form2)

737 名前:700 mailto:sage [2020/08/19(水) 10:21:48.83 ID:w/3evjlx0.net]
そりゃ、個別のページのクッキーを解析したり、大変だよ。
お金をもらえる訳でもないのに、他人が作ったシステムを分析するのは

それが嫌だから、漏れらは、selenium webdriver で、ブラウザにやらせる。
入力したり、ボタンを押したり、ブラウザを操作するだけだから、まだマシ

738 名前:700 mailto:sage [2020/08/19(水) 10:32:07.88 ID:w/3evjlx0.net]
>>704
>form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')

>form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')

これらには、https: とか、付いていないけど、動くの?

739 名前:700 mailto:sage [2020/08/19(水) 10:38:39.32 ID:w/3evjlx0.net]
簡単に言えば、serialize と同じなんだろう。
異なるアプリに、Ruby のオブジェクトを渡せない

1 などの数値も、"1" みたいな文字列になってしまうのだろう。
すべての型情報が無くなって、文字列になる。
だから、YAML.load とかを、使っているのだろう

今なら、JSON を使う事が多い

740 名前:デフォルトの名無しさん [2020/08/19(水) 14:06:31.62 ID: ]
[ここ壊れてます]

741 名前:jdryYSd80.net mailto: agent.getの時点でcookieの情報って得られてるんですね []
[ここ壊れてます]



742 名前:デフォルトの名無しさん [2020/08/19(水) 14:20:11.51 ID:jdryYSd80.net]
>>706
seleniumはブラウザ操作でmechanizeはhttp解析?みたいな感じですか?

743 名前:デフォルトの名無しさん [2020/08/19(水) 20:08:35.13 ID:JONuvCWb0.net]
>>690
よく調べたわけじゃ無いけど、
CSRF, クロスサイトリクエストフォージェリ、サイバー攻撃の一種対策されてるんじゃないかなぁ。

つまり、何某かのTokenが5chから送られていて、そいつをPOSTしないといけないとか。

5chのサイトからPOSTする時には、<input type=“hidden” value=“Token” name=“CSRF対策”>とかのタグがあって、Submitと共に自動送信される。

744 名前:700 mailto:sage [2020/08/19(水) 22:43:49.56 ID:w/3evjlx0.net]
プログラム板のtest スレと、その確認画面は、どちらも、mevius.5ch.net だから、
クロスドメインアクセスにはならない

ただ、HTML は本来、1回限りのアクセスで、前後のページには関係がない。
それを関係があるようにするために、ブラウザのクッキーを使って、セッションを結ぶ

こういうセッションがあるものは難しい。
5ch 側は仕様を知っているけど、分析する方は、仕様を知らないから、
ずっと他人のアプリを解析しなければならない

漏れは、解析するのが面倒だから、selenium webdriver を使って、ブラウザにやらす。
ただ、これはブラウザの操作でも、難しい

クッキーが無ければ確認画面が出て、有れば確認画面が出ない。
こういう条件判断をしないといけないから、難しい

Ruby on Rails でも、システムテストには、Capybara を使うけど、
これは、seleniumで、Headless Chrome を使っている

他人のアプリの解析は、HTML ヘッダーなどを分析しないといけないから、かなり難しい。
スクレイピングをやってる香具師で、こういうのを知ってる香具師は、まずいない。
HTMLヘッダーなんて、無数の項目があるから

745 名前:700 (ワッチョイ 1f2c-1yu9) mailto:sage [2020/08/19(水) 22:57:07 ID:w/3evjlx0.net]
たぶん、Mechanizeは、Nokogiri みたいなものなんだろう

その時点のHTML を取得するだけ。
ちょっとした、GET, POST などは、出来るけど

JavaScript, Ajax で動的にページを作ったものには、対応できないとか

746 名前:デフォルトの名無しさん [2020/08/20(木) 06:07:11.62 ID:5ApdpCMn0.net]
>>713
MechanizeはServerから受け取ったCookieを返すよ。

だから、POSTしたパラメータに問題があって上手くいかないのだ。

書き込み画面のHTMLからinputタグをscrapingしてhidden属性の付いてるのを探す事が先決。

見つかったらそのname, valueを取り出してPOSTパラメータへセットしてやれば良い。

747 名前:デフォルトの名無しさん [2020/08/20(木) 06:08:32.79 ID:5ApdpCMn0.net]
seleniumが簡単だが、動作が重い。
Mechanizeでがんばれ!

748 名前:デフォルトの名無しさん [2020/08/20(木) 06:38:17.41 ID:5ApdpCMn0.net]
>>688
これは違う!

外部・CP932 → Ruby内部・CP932 → 外部・CP932

が正解。
Ruby内部は、外部・CP932であればCP932だし、UTF-8なら、それに合わせて、Ruby内部・UTF-8なのだ。

749 名前:デフォルトの名無しさん [2020/08/20(木) 06:39:16.98 ID:5ApdpCMn0.net]
>>709
agent.cookies

750 名前:デフォルトの名無しさん [2020/08/20(木) 07:05:48.71 ID:5ApdpCMn0.net]
大抵のWebサイトのFormは、Formを表示したBrowserからしか、POSTできない様になっている。

その仕組みは、ServerがFormを表示するするHTMLを生成する時に、Tokenを埋め込み、そのTokenが帰って来なかったPOSTを弾くと言うものだ。

TokenはFormが表示されるごとに変更さる。(one time Token)

https://html-coding.co.jp/knowhow/security/csrf/

751 名前:700 mailto:sage [2020/08/20(木) 07:13:47.07 ID:nWR09WFB0.net]
Rails にもある、CSRF のセキュリティー・トークンとかか?

2つのページが、同じセッションと判別できるような、仕組みを探さないといけない。
他人が作った、アプリを解析するのは大変



752 名前:デフォルトの名無しさん [2020/08/20(木) 07:53:19.33 ID:5ApdpCMn0.net]
>>719
違うんだなぁ。
RubyプログラムがいきなりPOSTしても成功しない。
一旦Form画面をScrapingすれば良いのだ。

753 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 09:46:21.48 ID:Myo84Br30.net]
>>716
それも違う。RubyはUnicode対応で作られてる
だから内部もUnicode
Windows側からUTF16で渡された場合はUnicodeで受け取るし
ANSIで渡された場合はUnicodeに変換して処理する
出力する場合はその反対

754 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 10:42:37.67 ID:nWR09WFB0.net]
Ruby の文字列は、混在できる

ある文字列は、CP932 で、
別の文字列は、UTF-8 とか

何もしなければ、変換されない

755 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 11:13:11.83 ID:FC2EZr4O0.net]
>>720
kan = [
"\xE6\xBC\xA2\xE5\xAD\x97".force_encoding( Encoding::UTF_8 ),
"\x8A\xBF\x8E\x9A".force_encoding( Encoding::CP932 ),
"\xB4\xC1\xBB\xFA".force_encoding( Encoding::EUC_JP ),
"\x1B\x24B4A;z\x1B(B".force_encoding( Encoding::ISO2022_JP )
]
puts kan
kan.combination(2){ |a,b| p a == b }
kan.size.times{|n| puts kan.inject(''){|r,s| r << s.encode(kan[n].encoding) } }
puts kan.map{|s| s.encoding }

756 名前:デフォルトの名無しさん (ワッチョイ 7f01-08ML) mailto:sage [2020/08/20(木) 12:03:56 ID:tyNv301J0.net]
>>716,721
君たちまずマニュアルを読もうか
https://docs.ruby-lang.org/en/2.7.0/Encoding.html

757 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 13:07:43.70 ID:UjCnOWKd0.net]
>>719
解析が大変かどうかはものによる。
セッションIDベースのWebアプリならともかく、ログインなしの掲示板なら大したことはないやろ。

758 名前:デフォルトの名無しさん mailto:sage [2020/08/20(木) 22:50:29.80 ID:Uplnh7Gz0.net]
>>721 変換はせんだろ

759 名前:デフォルトの名無しさん (ワッチョイ 1f61-VqLe) mailto:sage [2020/08/21(金) 01:31:14 ID:SPVvFNrm0.net]
Rubyをしばらく使ってきたが、やっぱり、ブロックの最後がendであることや、
0,1が共に真であること、複数行コメントが書きにくいこと、
構造体の書き方が new Person ではなく、Person.newであること、
Directory関連でワイルドカードを使うと、関連フォルダを全て変数に読み込んでから
動作し始めること、などが使いにくいので、node.jsに乗り換えようかなと思ってる。
Rubyが良い点は、それらの機能は使ったことは無いけど、
・最初から用意されているメソッド群でmethodチェーンが書けること。
・ブロック関数が書けること。
かな。
でも、使ったことがないということは、優先順位が低いと言うことではなかろうか。

760 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 10:50:02.63 ID:w5e9p4kz0.net]
え。
そんな調子だと何を使ってもダメそう。w

761 名前:デフォルトの名無しさん mailto:sge [2020/08/21(金) 13:05:57.88 ID:SPVvFNrm0.net]
>>728
個人的には、実世界では、能力はかなり高いと評価されているけれど。



762 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 14:15:07.59 ID:tDzk/wNZ0.net]
0, 0.0, 空文字列、空配列、空辞書など、
各型に、偽がある言語は、バグる

Ruby の偽は、nil, false だけ

MISRA-C でも、( a ) みたいに、単独の数値型の変数で、真偽値を表すのは禁止されてる。
0 なら偽として使う方法

Ruby で、if ( b ) みたいに書けるのは、nil の時だけ偽だから。
0, 0.0, 空文字列、空配列、空辞書などでも真

または、b がbool 型の場合

763 名前:デフォルトの名無しさん [2020/08/21(金) 14:31:29.79 ID:2LaXNW9iF.net]
nil == false
は false

764 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 14:33:13.81 ID:w5e9p4kz0.net]
>>729
相対評価は、まわりのレベルがわからんので、なんとも。
元コメから判断すると、周辺まるごと低いのかな?と思わざるを得ない。w

まあ、たまたま自分が使ってない特定機能をアレコレ言うのはアホに見えるのはたしか。

765 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 14:35:00.79 ID:w5e9p4kz0.net]
>>730
型のないRubyでそんなことを言われても。w
そんなの、たいした違いじゃないよ?

766 名前:デフォルトの名無しさん mailto:sage [2020/08/21(金) 14:49:57.72 ID:SPVvFNrm0.net]
>>732
そんなことない。
非常に上層のごく一部の人しか入れないところだと言われている。

767 名前:デフォルトの名無しさん [2020/08/21(金) 15:22:52.16 ID:2LaXNW9iF.net]
スキンのひとか

768 名前:デフォルトの名無しさん [2020/08/21(金) 15:35:51.23 ID:dYZcDjdTH.net]
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

VM + ASM を書いた (C#, DX) * x86 ではない!
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ

VM + ASM のダウンロード
ttp://up.x0000.net/files/TSimulang.zip

769 名前:デフォルトの名無しさん mailto:sage [2020/08/22(土) 00:05:39.01 ID:cH1OO8njr.net]
「実世界では、能力はかなり高いと評価されている」っていう言い回しが最高に知性を感じないんですけど
いや煽りとかじゃなくマジで

770 名前:デフォルトの名無しさん mailto:sage [2020/08/22(土) 00:13:16.02 ID:rn2pygew0.net]
異世界では無双している

771 名前:デフォルトの名無しさん mailto:sage [2020/08/22(土) 02:33:00.24 ID:orN/hav20.net]
>>737
非常に上層のごく一部の人しか入れないんだぞ!



772 名前:デフォルトの名無しさん [2020/08/22(土) 08:20:46.05 ID:lfF/bqLu0.net]
非情に上層のごく一部の人しか入れないんだぞ!

773 名前:デフォルトの名無しさん (ワッチョイ 7f52-Qb6H) mailto:sage [2020/08/22(土) 08:46:37 ID:j5SL9Fsb0.net]
>>737
あんまりちゃんと人と会話したりまともな本とかは読んだことがなくて、丁寧にかつちょっとカッコつけて話そうとしたらラノベとかで覚えた変な言い回ししか出てこなかった、と予想してみる

774 名前:デフォルトの名無しさん [2020/08/22(土) 15:31:25.70 ID:rjSk5doP0.net]
まあ、能力の高いっていうそこのお方は、Youtubeで流行ってる学歴ジャンケンでもして能力を示した方がいいんじゃん?
学歴だけが能力を示すものじゃないにしても、能力がどうの言い張るだけよりずっとマシだし、おおよその実力が周りの人も推定できるだろうからいいぜ!

775 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:10:17.03 ID:vLz2GEqc0.net]
Rubyは、node.jsに比べて、ファイル出力のメソッド名が短いので楽。
fp=File.open("filename","w");
fp.print( "nanigshi=#{変数名}\n" );
みたいに書ける。node.jsだと、
fd = fs.openSync("filename", "w");
fs.writeSync(fd, `nanigshi=${変数名}\n` );
となり、キーワードが長い。逆引用符`が打ち込みにくいという
欠点も有る。

776 名前:デフォルトの名無しさん (オッペケ Sr51-eS8N) mailto:sage [2020/09/01(火) 22:45:30 ID:Bhx0z62Fr.net]
US配列なら楽だぞ

777 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 22:58:40.10 ID:JyDU62SB0.net]
>>743
「Sync」をあえて表現してるんやろ。
ポリシーの問題。

778 名前:デフォルトの名無しさん mailto:sage [2020/09/01(火) 23:33:04.32 ID:knLE24Nq0.net]
ブロックと;省略で
File.open("filename","w") { |file| puts "nanigshi=#{変数名}" )
みたいに書くのがRubyっぽくない?

779 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 02:02:43.13 ID:0/6Ab1gT0.net]
クローズしちゃうだろ

780 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 15:16:44.13 ID:Wngy4TOD0.net]
>>745
でも、コンピュータ黎明期の非常に古くから open, write は、同期的だったの
だから、互換性を考えれば、逆さまにしたのは問題。

781 名前:デフォルトの名無しさん mailto:sage [2020/09/0 ]
[ここ壊れてます]



782 名前:2(水) 15:21:09.21 ID:Wngy4TOD0.net mailto: open, writeといえば、Unix/Linux/Windows/Macでも動作がほぼ同じな
非常に大事なもので、特にUnix/Linuxでは、「全てがファイル」という設計
思想であり、その根幹を成すのが、これらの関数で、あらゆる概念の基礎と
なっているので、その動作を変更するのはあらゆる場所に悪影響を及ぼす。
Unix系では、OSの動作の90%以上が、open, writeに依存した設計に
なっているといってもかごんでは無いくらい、基礎中の基礎。
その動作を変更することは、自然法則を変更するくらい驚天動地の試み。
重力が引力ではなく斥力になってしまうくらいで、太陽も惑星も存在し得ない
位の結果となる。
[]
[ここ壊れてます]

783 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 15:57:35.42 ID:iCfAZPhu0.net]
>>748
Cとの互換性がー、とか非同期重視のアグレッシブなNode.jsに言うの?w

784 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 16:53:35.95 ID:X9xcF9vI0.net]
>>749
でもネットワークはファイルじゃないんですよ
全てがファイルという設計と言っても
その程度のものなんです。

785 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 17:55:27.42 ID:Wngy4TOD0.net]
>>750
Cとの互換性というより、UnixやWindowsなどのあらゆるOSの基礎の部分との
互換性。
それくらい、open, writeは、OSの基礎に根ざしていて、勝手に働きを変えるべき
じゃない。
働きを変えたいなら、変えた方の関数の名前を少し変えるべき。
それで十分なのに、名前と働きをさかさまにしてはいけなかった。

786 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 18:19:28.61 ID:0/6Ab1gT0.net]
rubyInstallerでruby 2.7入れたんだがirbのレスポンスがめちゃくちゃ遅くて
かなりゆっくりキーボード入力しても入力を取りこぼすんだけど
速くする方法ありませんか?

787 名前:デフォルトの名無しさん mailto:sage [2020/09/02(水) 21:47:08.53 ID:iCfAZPhu0.net]
>>752
いちいちAsyncをつけろというのか?
Node.jsのポリシーにあわんやろ。
郷に入っては郷に従え。

オレも知らんけど。w

788 名前:デフォルトの名無しさん [2020/09/03(木) 10:05:34.13 ID:DK3Ul6vKF.net]
Sync.js

789 名前:デフォルトの名無しさん [2020/09/04(金) 00:42:11.02 ID:Wl7qFIBb0.net]
Node.js は非同期が基本。
Windows では、50ms 以上掛かるものは、非同期にするのが基本

>>753
irb とか、そんな面倒なものは使わない

VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる

790 名前:デフォルトの名無しさん (ワッチョイ bf8c-9HBf) mailto:sage [2020/09/04(金) 03:38:08 ID:Akgzavid0.net]
VSCodeでCode Runnerね。オーケーオーケー

791 名前:デフォルトの名無しさん mailto:sage [2020/09/04(金) 05:36:12.08 ID:ovAJuzA/0.net]
穴ほって埋めるやつか



792 名前:デフォルトの名無しさん mailto:sage [2020/09/04(金) 10:18:21.30 ID:icCvRHhg0.net]
平安京エイリアンか。

793 名前:デフォルトの名無しさん [2020/09/05(土) 22:17:01.41 ID:dAk5cbFF0.net]
エンジニアチャンネル粟島、9/4

プログラミングでYouTube動画の編集作業を自動化する
https://www.youtube.com/watch?v=2nDkNHeCKs4

プログラミングで、自動的に無音部分をカットして、動画をつなげる。
Python で作ってる

皆、何時間も掛かって編集しているから、
誰か、Ruby で作って、公開しろ

粟島に、スーパー・プログラマーの称号を独り占めさせるのは、癪にさわる

794 名前:デフォルトの名無しさん [2020/09/06(日) 14:32:01.97 ID:pKWvrGW4F.net]
ffmpeg 呼んでるだけだから ruby で同じことすればいいだけ
そもそも youtube の web 上の作業を自動化するのかと思ったらそうでもないし
誤解を招く

795 名前:759 mailto:sage [2020/09/07(月) 11:58:27.72 ID:IF51aHwX0.net]
粟島に、敵対心むき出しの、凡才プログラマーKBOY に教えてやったら?

エンジニアチャンネル粟島

【検証】現役プログラマーは30万円の案件を何時間で出来るのか?
https://www.youtube.com/watch?v=rt_X6n9oWa4

YouTube API で、指定条件に当てはまる、動画を集める(filtering)のを、Ruby で、1時間で作った。
つまり、時給30万円!

これも最終的に、30人が応募して、数千円になったらしいがw

796 名前:デフォルトの名無しさん (エムゾネ FF7f-j7FC) [2020/09/07(月) 12:03:06 ID:K0kNn/CsF.net]
闇サイトのバイトか

797 名前:デフォルトの名無しさん mailto:sage [2020/09/22(火) 15:57:03.29 ID:uSjSk1xMZ]
副業、大手も制度着々…コロナ禍、働き手は空き時間活用
https://www.itmedia.co.jp/business/articles/2009/07/news111.html
富士通「年収3500万円」の衝撃 ソニー、NECも戦々恐々の「グローバル採用競争」
https://www.itmedia.co.jp/business/articles/2008/21/news031.html
東大の起業ラッシュは本物か、大学発ベンチャー数日本一の実力
https://business.nikkei.com/atcl/NBD/19/special/00448/
AI研究の第一人者、東大・松尾研でも起業ラッシュ
https://business.nikkei.com/atcl/gen/19/00158/051900002/?i_cid=nbpnb_arc
失敗は認める、多数決はダメ。拡大する「社会起業家集団」の作り方
https://newswitch.jp/p/23033
新卒“即”起業せよ。社会起業家への最短距離に挑む若者たち
https://newswitch.jp/p/23020
人々の共感を得られないと潰される時代。
https://news.yahoo.co.jp/articles/37aef71415e8181ce8451e27feb3983bf1f6f9cd
ゼロから起業するよりも事業承継(小さな会社の買収)が圧倒的に有利である3つの理由
https://honsuki.jp/pickup/17323.html
「エース人材だって起業OK」、NECは挑戦者が集う場をつくる
https://business.nikkei.com/atcl/gen/19/00106/012900003/
NECなど「出向起業」 大企業人材、起業しやすく
https://www.nikkei.com/article/DGXMZO61733720Q0A720C2TJ1000/

798 名前:デフォルトの名無しさん [2020/09/23(水) 01:34:43.74 ID:vUEpR4nB0.net]
エンジニアチャンネル・小川

【悪用厳禁】Amazonの価格を監視するシステムを作ってみた
https://www.youtube.com/watch?v=Gr6FJUOfMHc

Amazon のAPI を使って、価格を監視して、LINE へ通知する

799 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 08:01:27.35 ID:ZnjqOblj0.net]
このサイトIRB代わりに使ってたんですがバージョン2.1.5とめっちゃ古いです
ライブコーディング?機能のついた同種のサイトってないですか
fatiherikli.github.io/fil/#eyJwYXRoIjoiSVJCLnJiIiwic291cmNlIjoicCBSVUJZX1ZFUlNJT04ifQ==

800 名前:デフォルトの名無しさん [2020/10/01(木) 08:39:12.41 ID:theiHz1p0.net]
JSON ファイルの中身が、下のようなユニコード・コードポイントの表示が多くて、読めない

{{\u30ab\u30ec\u30f3\u30c0\u30fc 10\u6708}}

ファイルを丸ごと読めるように、変換する方法を教えて!

801 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 08:49:16.5 ]
[ここ壊れてます]



802 名前:1 ID:theiHz1p0.net mailto: >>766
paiza.jp は比較的、新しいバージョンだったと思う

puts RUBY_VERSION
と入力してみ
[]
[ここ壊れてます]

803 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 21:03:03.13 ID:BMjHKKQ5r.net]
>>766
そもそものopalのサイト使えば?
https://opalrb.com/try/

>>767
標準出力に出力すれば?

804 名前:765 [2020/10/01(木) 22:25:46.66 ID:theiHz1p0.net]
JSON ファイルをcat しても、変換されませんでした!

普通の英数字と、\u6708 みたいな文字が混じっているファイルです

805 名前:デフォルトの名無しさん [2020/10/02(金) 09:07:20.78 ID:ugOoTtJuM.net]
matlabでのfiltfilt()のように、ゼロ位相デジタルフィルター処理ができる関数はなんでしょうか

806 名前:デフォルトの名無しさん [2020/10/02(金) 11:29:50.32 ID:36KHjBX6M.net]
すみませんでした

807 名前:765 [2020/10/03(土) 07:39:23.69 ID:/wA+nWqo0.net]
c@at input.json | pe@rl -@Xpne 's/\\u([0-9a-fA-F]{4})/c@hr(h@ex($1))/eg'
(投稿できないので、@を入れました)
で、日本語で表示されました!

これを、Ruby では、どう書きますか?
正規表現で、\u6708 みたいな文字を、どう変換するの?

808 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 09:17:06.76 ID:DiO6Np8S0.net]
Rubyだと、正規表現にマッチした部分を引数にして関数に渡してくれる
メソッドが有る筈だから、それを使えば出来るはず。

809 名前:デフォルトの名無しさん [2020/10/03(土) 09:27:06.27 ID:F7oAx4CC0.net]
-Ks -Ke -Ku があるから -Kw もあるはずだろう(驚き最小)

810 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 09:32:00.87 ID:DiO6Np8S0.net]
>>773
以下のようにすれば、\uXXXX の部分を unicode コードとして文字に直した後のテキストが
標準出力に出力されるのではないかと思われる。
なお、試して無いので実際に動くかどうかは分からない。
$1.to_i(16)は、$1 に入っている文字列を 16進数とみなして整数値に直しているつもり。
x.chr は、数値 x を文字コードとして対応する文字に直しているつもり。
gsub は、正規表現に合致した部分を後続のブロックの中の $1 に入れて、結果に
置換しているつもり。

[test.rb]

strJson = JSONを読み込んだ文字列;

print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr } );

811 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 09:45:21.01 ID:MOu6VxbMr.net]
そういうことならJSON.load使えば?

require 'json'
JSON.load(fname)

愚直にやるならArray#packを使いましょう。

str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}



812 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:47:42.33 ID:DiO6Np8S0.net]
>>776
間違いがあった。正しくは、
print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr("UTF-8") } );

813 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 10:58:07.83 ID:DiO6Np8S0.net]
"UTF-8"ではなくて、"UTF16-BE"か、"UTF16-LE"かも知れない。
試して上手く行くのを選んで欲しい。

814 名前:765 mailto:sage [2020/10/03(土) 11:41:59.34 ID:/wA+nWqo0.net]
>>777
>>778
でも、正常に動きました。ありがとう。
JSON.load で、自動的に読めるようになるのが便利

require 'json'

json = File.read( "input.json" )
p JSON.load( json )

p json.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}

print( json.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr("UTF-8") } );

815 名前:デフォルトの名無しさん mailto:sage [2020/10/03(土) 12:38:03.63 ID:1IyBCfpu0.net]
👨‍👩‍👧‍👦1コードポイント1文字とは限らないし¥uの後は4桁とは限らないよね👨

816 名前:765 mailto:sage [2020/10/03(土) 13:09:59.31 ID:/wA+nWqo0.net]
それなら、単純な正規表現では、ダメ。
実際に存在する、コードポイントを調べないといけない

ひょっとしたら、JSON.load は、それに対応しているかも

817 名前:デフォルトの名無しさん mailto:sage [2020/10/04(日) 15:56:43.31 ID:P8Zgc9xR0.net]
>>782
全ての文字を utf16 に変換してから、utf8に再変換すればいい気がする。


818 名前:一段階の変換で、ついでに \uXXXX の部分を 単純に 16BIT 整数に直せばいいはず。 []
[ここ壊れてます]

819 名前:765 [2020/10/05(月) 01:16:19.79 ID:z7kgQPv30.net]
\u は、4・8桁の2種類あるのか?

820 名前:765 mailto:sage [2020/10/05(月) 08:08:05.24 ID:z7kgQPv30.net]
👨‍👩‍👧‍👦 は、4つの文字が連結したような感じ

\uD83D\uDC68\u200D
\uD83D\uDC69\u200D
\uD83D\uDC67\u200D
\uD83D\uDC66

\U0001F468\U0000200D
\U0001F469\U0000200D
\U0001F467\U0000200D
\U0001F466

\u{1F468}\u{200D}
\u{1F469}\u{200D}
\u{1F467}\u{200D}
\u{1F466}

821 名前:デフォルトの名無しさん [2020/10/05(月) 10:14:21.95 ID:H6rSrLtq0.net]
もう ruby 関係無いだろ
良い加減消えろ

推奨スレ
mevius.5ch.net/test/read.cgi/tech/1545032904/
mevius.5ch.net/test/read.cgi/tech/1593777227/



822 名前:デフォルトの名無しさん [2020/10/11(日) 00:59:43.22 ID:B+MSoWxK0.net]
( line, ary ), line_num
この( ) をなくすと、エラーになる

TEXT = <<'EOT'
a
b
EOT

line_numbers = TEXT.each_line.with_object( [ ] ).with_index( 1 ) do | ( line, ary ), line_num | # 各行・蓄積変数・行番号
ary.push( line_num )
puts "#{ line_num } : #{ line }"
end

p line_numbers

出力
1 : a
2 : b
[1, 2]

823 名前:デフォルトの名無しさん mailto:sage [2020/10/11(日) 18:44:20.92 ID:vt3DXswMr.net]
>>787
仕様通りです

824 名前:デフォルトの名無しさん [2020/10/13(火) 15:52:15.31 ID:Iy+8ZYjV0.net]
初心者です
Windows10でrubyのバージョンは2.4です
gets.chompで日本語の文字列を入力しprintで出力したら文字化けするのですがどうしたら治りますか?

825 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 16:24:17.23 ID:y5Oy6HcC0.net]
漏れは、WSL, Ubuntu 18.04 を使っているけど、
Ruby Installer のMSYS 2 かい?

日本語入力が難しい

ファイルか、端末の文字コードの設定だろう。
BOM 無しUTF-8(UTF-8N)

ユーザー環境変数に、RUBYOPT を作って、--encoding=UTF-8 を設定するとか。
ただし、irb が、コマンドプロンプトでは使えなくなるので、
PowerShell しか使えなくなる

VSCode の拡張機能、Code Runner で、
選択したコード片、またはファイル全体を実行できる

これで、irbは使わなくてもよいけど、デバッグで、pry が使えなくなるかも。
pry は、irbを使っているのかも?

826 名前:788 mailto:sage [2020/10/13(火) 16:34:59.69 ID:y5Oy6HcC0.net]
2020-10-06
RubyInstaller 2.7.2-1, 2.6.6-2 and 2.5.8-2 released

Windows では最新版を避けて、2.6.6-2 を使えば?

漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト

anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える

827 名前:788 mailto:sage [2020/10/13(火) 16:44:54.23 ID:y5Oy6HcC0.net]
Windows 版Ruby の日本語入力では、

コマンドプロンプトよりも、
PowerShell を使う方が良いのかも?

日本語出力は問題ない。
もし、フォントがかすれて表示されたら、バグっているけど

828 名前:788 mailto:sage [2020/10/13(火) 16:56:07.22 ID:y5Oy6HcC0.net]
>>790
修正

>ユーザー環境変数に、RUBYOPT を作って、--encoding=UTF-8 を設定するとか。
>ただし、irb が、コマンドプロンプトでは使えなくなるので、
>PowerShell しか使えなくなる

RUBYOPT に、--encoding=UTF-8 を設定すると、
コマンドプロンプト・PowerShell の両方で、irbが起動しなくなる

C:/Ruby25-x64/lib/ruby/site_ruby/rbreadline.rb:6135:in `delete': invalid byte sequence in UTF-8

コマンドプロンプト・PowerShell の文字コードの設定で、使えるようになるのかな?
漏れは、VSCode, Code Runner を使っているから、irbを使ってい

829 名前:ネい []
[ここ壊れてます]

830 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 17:01:18.58 ID:v339nyYs0.net]
>>789
ridk use で切り替えられるから最新版を試すと良い
このへんの問題も改善されてたはず

831 名前:788 mailto:sage [2020/10/13(火) 17:05:42.76 ID:y5Oy6HcC0.net]
RUBYOPT に、--encoding=UTF-8 を設定すると、

コマンドプロンプト・PowerShell の文字コードの設定で、
chcp 65001
と入力したが、どちらもエラーで、irbが起動しない

でも、irbを使わなければ、
RUBYOPT に設定するのは、便利なんだけど



832 名前:788 mailto:sage [2020/10/13(火) 17:09:23.25 ID:y5Oy6HcC0.net]
>>794
ほう

833 名前:デフォルトの名無しさん [2020/10/13(火) 17:24:55.62 ID:Iy+8ZYjV0.net]
みんなありがとうございます
環境変数って編集したら再起動しないといけないとかありますか?

834 名前:788 mailto:sage [2020/10/13(火) 17:43:39.31 ID:y5Oy6HcC0.net]
OS の再起動は、いらないと思う。
Ruby の再起動だけで良いと思う

PowerShell で、以下を入力して、正しく設定されたか、確認してみ
ls env:

835 名前:デフォルトの名無しさん mailto:sage [2020/10/13(火) 19:42:36.62 ID:MMOmBqSMr.net]
pryがirb使ってるわけないじゃん。(「irb使う」ってのもよくわからんが)
readlineのライブラリがマルチバイト未対応なだけだから
日本語扱うならnoreadlineで起動すればいいよ。

836 名前:788 mailto:sage [2020/10/14(水) 05:06:57.79 ID:z5Uy/Vd30.net]
pry, rails console を起動すると、irb が起動されるのかな? と思っていた。
画面が似てるでしょ?

例えば、Windows 10, WSL, Ubuntu 18.04 を起動すると、
コマンドプロンプトと同じ画面が起動される

そういうのと同じなのかな? と思って

837 名前:デフォルトの名無しさん [2020/10/14(水) 08:31:15.20 ID:kgj1R+5V0.net]
RUBYPORT変えてやってみたけどだめでした.
コマンドプロンプトとPowerShellは両方文字化けします.
bash on Windowsだと問題なく動きます. 学校で配布された教材がコマンドプロンプトしか使っておらず, 与えられたサンプルプログラムはバージョン2.4以下じゃないと動かないらしいです. 留年しそう.

838 名前:788 mailto:sage [2020/10/14(水) 09:58:02.17 ID:z5Uy/Vd30.net]
>RUBYPORT
RUBYOPT だよ。
ユーザー環境変数に、RUBYOPT に、--encoding=UTF-8 を設定する

PowerShell で、以下を入力して、正しく設定されたか、確認してみ
ls env:

irb さえ使わなければ、文字化けしないはず!

たぶん、ファイルの設定だろう。
sjis・CP932 じゃなく、BOM 無しUTF-8(UTF-8N)

それで、PowerShell から「ruby a.rb」などで実行できるはず。

または、VSCode のCode Runner でも出来る。
ただし、Code-runnerの設定ファイルで、File Directory As Cwd をチェックしておく

839 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 10:01:17.73 ID:rQGDkRcC0.net]
学校での話なら、友達か先生かに聞けよ。

840 名前:788 mailto:sage [2020/10/14(水) 10:07:17.92 ID:z5Uy/Vd30.net]
ただし、RUBYOPT に、--encoding=UTF-8 を設定した場合、
chcp はデフォルトの、CP932 のままにしておく!
65001 にしない

コマンドプロンプト・PowerShell で、chcp と入力してみ

841 名前:788 mailto:sage [2020/10/14(水) 10:21:16.97 ID:z5Uy/Vd30.net]
>>804
修正

>chcp はデフォルトの、CP932 のままにしておく!
>65001 にしない

RUBYOPT に、--encoding=UTF-8 を設定した場合、
CP932/65001 のどちらでも、文字化けしない。正常に動く



842 名前:デフォルトの名無しさん [2020/10/14(水) 11:42:15.98 ID:kgj1R+5V0.net]
>>805
ごめん!RUBYOPT変えた!
ファイルの設定ってプログラム書いてるテキストファイルの設定ってことですか?どうやって変えるのでしょうか? 一応Rubyopt変えただけだと文字化けしちゃってchcp 65001って実行してプログラム起動させたらコマンドプロンプトは落ちちゃった. PowerShellはもう日本語全部文字化けしちゃった

843 名前:788 mailto:sage [2020/10/14(水) 12:29:05.96 ID:z5Uy/Vd30.net]
たぶん、エディタの文字コードの設定メニューあたりから、
BOM 無しUTF-8(UTF-8N)に設定する

一番よいのは、VSCode で、Code Runner を使う

844 名前:デフォルトの名無しさん mailto:sage [2020/10/14(水) 19:15:13.60 ID:Y0U/d7P+r.net]
>>801
noreadlineで起動すればいいって言ってんじゃん

845 名前:788 mailto:sage [2020/10/15(木) 06:56:58.31 ID:7eWumHpU0.net]
RUBYOPT に、--encoding=UTF-8 を設定すると、

irb --noreadline
で起動しても、エラーになる

846 名前:788 mailto:sage [2020/10/15(木) 07:13:17.57 ID:7eWumHpU0.net]
RUBYOPT に、--encoding=UTF-8 を設定すると、

irb --noreadline

irb -E UTF-8
irb -E Shift_JIS
で起動しても、エラーになる

847 名前:788 mailto:sage [2020/10/15(木) 07:32:54.02 ID:7eWumHpU0.net]
Windows では、RUBYOPT の、--encoding=UTF-8 と、irb は両立しない

irb を捨てて、VSCode のCode Runner を使う方がよい。
これで、選択したコード片、またはファイル全体を実行できる

その代わり、pry, rails console が使えなくなるかも?
よく分からないけど

848 名前:デフォルトの名無しさん mailto:sage [2020/10/15(木) 14:56:39.44 ID:FYvAP3o60.net]
powershellじゃなくてレガシーコンソールのコマンドプロンプトを使わないとダメだったはず

849 名前:788 mailto:sage [2020/10/15(木) 15:46:22.07 ID:7eWumHpU0.net]
>>810
は、PowerShell・コマンドプロンプト

850 名前:フどちらでも、エラーになる []
[ここ壊れてます]

851 名前:デフォルトの名無しさん mailto:sage [2020/10/17(土) 14:09:06.36 ID:cX3MrjsP0.net]
4,000行ほどのRubyプログラムをnode.jsに乗り換えようと思ってましたが
やっぱりRubyの方が便利な気がしてきました。
JSはローカル変数がちゃんと作れることやapplyが使えること、ifブロックやコメントの書き方などが
好きだったんですが元々ブラウザ用だったせいかファイル関連が非同期推奨ですし
stdoutとfileの違いもちゃんと意識しないといけなくなっているようです。
ファイル関連のライブラリも非同期のみの対応の場合も多いようで、Rubyに比べると
使い勝手に問題が有りそうです。
スクリプト言語の目的は簡単にプログラムしたいことですが、node.jsよりRubyの方が
ファイル関連は簡単なようです。



852 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 01:39:25.66 ID:xeOKOt4d0.net]
Rubyはちゃんとしたブロック変数が作りにくいことが欠点だと思っていたのですが
逆にnode.jsの場合、グローバル変数とローカル(ブロック)変数の違いが
最初の定義時にlet(またはvar)を書くかどうかだけで区別されており、
それはそれで危険な場面もあるように気付きました。
Rubyの場合は、先頭が$で始まる変数はグローバルになり、大文字で始まる変数は
グローバル定数になりますので、有る意味では安全ですし、命名規則としても
全てのプログラマで共通になりソースの分かり易さに貢献している可能性があります。
node.jsの場合、let文を書き忘れただけでグローバル変数になるのは原因不明の
バグが入り込む可能性を増やしている可能性があります。
また、Rubyは、system関数が便利です。
実際に使用してみた感想としてRubyは全体的に安定している印象を持ちましたが、
node.jsは、インストール時の一番大事な環境変数ですら自動設定されておらず、
プログラマー以外の人にプログラムを配布することは絶望的です。

853 名前:デフォルトの名無しさん [2020/10/18(日) 18:18:43.72 ID:WlQf1Fni0.net]
>最初の定義時に、let(またはvar)を書くかどうかだけで区別されており
VSCode ESLint とかで、チェックできるのでは?

Windows でも、50ms 以上掛かる、IO は非同期を推奨してるから、書きにくい

でも、Ruby on Rails 6 では、デフォルトで、Node.js, Webpack を使う

ただし、GUI はHTML, CSS/SASS, Bootstrap, JavaScript(JS)だけど、
サーバー側言語には、Rubyを使う

Rubyには最初から、C と同様、関数スコープがあった。
ES2015 で、JS にも出来たのかな?

854 名前:814 mailto:sage [2020/10/18(日) 18:30:15.98 ID:WlQf1Fni0.net]
YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる

この2つ以外は、出てこない。
JavaScript, Python から始めろって絶対に言わない!

Python から始めてはいけないって言ってる。
「AIや機械学習に興味があるのでPythonから勉強」は誤りです。【YAGNIの法則】

KENTA は、10言語以上知っていて、
登録者数5万人、月千円のサロンが、2千人もいるから、
十分にヒアリングしてるし、どの言語が挫折確率が高いか、よく分かっている

855 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 18:36:30.11 ID:xWXtsYNK0.net]
KENTA「Rubyに拘泥する奴は伸びない。さっさと他の言語に進め」

856 名前:デフォルトの名無しさん mailto:sage [2020/10/18(日) 19:10:33.77 ID:Ie2s5K3J0.net]
>>816
Cは、関数スコープというより、ブロックスコープ。
Rubyとは違う。

857 名前:デフォルトの名無しさん [2020/10/18(日) 20:35:28.25 ID:2aU6LfzH0.net]
KENTA「C++を始めるべき」

858 名前:デフォルトの名無しさん mailto:sage [2020/10/23(金) 17:32:28.92 ID:iE1/WHvK0.net]
VSCodeなどにHTMLのLivePreview機能がありますが、
erbのLivePreview対応

859 名前:アプリケーションってありますか? []
[ここ壊れてます]

860 名前:デフォルトの名無しさん [2020/10/24(土) 08:32:09.72 ID:PENdR3tu0.net]
VSCode の拡張機能のLive Server では、Web Extension で、
PHP で作る動的ページも表示してるけど、ERB のやり方は分からない

https://chrome.google.com/webstore/detail/live-server-web-extension/fiegdmejfepffgpnejdinekhfieaogmj?hl=pt-BR

Rails 6 なら、webpack-dev-server が標準

861 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 14:35:22.81 ID:rBYTjNf90.net]
>>822
ありがとうございます
webpack-dev-server 調べてみます



862 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:01:22.94 ID:ehonUome0.net]
number = "0.072953"
float_number = number.to_f
bigdecimal_number = number.to_d

(1000 / float_number)
# => 13707.455485038312
(1000 / bigdecimal_number)
# => 0.13707455485038e5

1000.div(float_number)
# => 13707
1000.div(bigdecimal_number)
# => 13707

1000.fdiv(float_number)
# => 13707.455485038312
1000.fdiv(bigdecimal_number)
# => 2.22360747e-314

なぜ 1000.fdiv(bigdecimal_number) のときは 13707 台ではなく 2.2 e-314 になるの?
fdivの引数にdecimalは期待されていない?

863 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:05:37.26 ID:xQuuF55sr.net]
どっちも変わらん
p 100.fdiv(float_number) # => 1370.745548503831
p 100.fdiv(biddecimal_number) # => 1370.745548504

864 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:19:23.51 ID:6XNLJEFJ0.net]
biddecimalwwwww

865 名前:デフォルトの名無しさん mailto:sage [2020/10/24(土) 21:23:11.77 ID:ehonUome0.net]
ありがとう
使ってるrubyのバージョンが低すぎるみたいだ

866 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 09:56:38.85 ID:/elpRfls0.net]
rubyはバージョン上げると前動いたコードが動かないからな。
そこらへんの互換性はjs>>php>>>python>>>rubyみたいな感じ。
行き当たりバッタリで以前の仕様気にせず変える。

867 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 10:48:16.22 ID:M7kzCKlu0.net]
>>828
phpは知らんけど
js >> ruby >>> python やろ

railsと違ってruby自体は後方互換性かなり高いぞ
CLI系なら10年以上前のものでもだいたい問題なく使える

pythonも言語自体は後方互換性高いが
バージョンごとにdeprecated/removedになるAPIはrubyよりずっと多い
それもあってメジャーなライブラリの新バージョン対応は遅くて
半年くらい待たないと言語の新しいバージョンを使えないし
言語の新バージョン + ライブラリの旧バージョンの組み合わせだと
動かなくなる率が高くてライブラリのAPI変更にも対応しないといけない

868 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 11:02:35.93 ID:/elpRfls0.net]
確かにpythonは2系と3系は隔絶してるけどマイナーバージョンアップでブッ壊れるのはrubyだろ

869 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 11:36:06.65 ID:M7kzCKlu0.net]
>>830
例えば?

870 名前:デフォルトの名無しさん [2020/10/25(日) 12:12:32.16 ID:usbfp6+yF.net]
C最強ですね判ります

871 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 13:00:13.81 ID:vQGWPLvqr.net]
マイナーバージョンアップで後方互換性がぶっ壊れた例
俺も気になるんで教えて



872 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 13:25:50.19 ID:M7kzCKlu0.net]
>>829
よく考えるとjsもクライアントサイドだけじゃなく
サーバーサイドで考えると動かなくなることあるな

rubyやpythonに比べて新陳代謝が激しくて
10年使い続けたりしないから気にならないだけかも

873 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 17:55:59.08 ID:y6I5Oh6cM.net]
>>831
リリースノートでも読め。
標準モジュールの変更とか。

874 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 18:04:13.90 ID:MTjKoQS00.net]
JIS規格化されてる

875 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 18:42:02.16 ID:M7kzCKlu0.net]
>>835
エアプでしたか
pythonと違ってrubyでは「標準モジュール」という言い方はしないよ

876 名前:デフォルトの名無しさん mailto:sage [2020/10/25(日) 19:16:39.17 ID:y6I5Oh6cM.net]
>>837
んな言葉の違いはどうでも。w
ま、違いにあたらなければどうということはないから、

877 名前:キきにしろ。

実際にあたった人や、心配性にはツラい言語。
3以降は、絶対にないレベルにしてほしいものだ。
できればPerlレベルに。
[]
[ここ壊れてます]

878 名前:デフォルトの名無しさん [2020/10/26(月) 15:04:44.51 ID:EltRWJ/HF.net]
Ruby が C++ を Hate してるのはホント良く判る

879 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 16:25:50.97 ID:NTmfRHBrM.net]
>>838
Perlもエアプかいw
駱駝道で極楽浄土に行けるといいネ

880 名前:デフォルトの名無しさん mailto:sage [2020/10/26(月) 17:52:56.78 ID:yxMoBvg5M.net]
>>840
今やPerl6は存在しないことを知らないの?w

881 名前:デフォルトの名無しさん [2020/10/28(水) 21:30:30.88 ID:H1Ljm7vl0.net]
>>2
リファクタリング:Rubyエディション (日本語) 単行本、2020/3、
Jay Fields/Shane Harvie/Martin Fowler/Kent Beck/長尾 高弘

Martin Fowlerの名著『リファクタリング』のRuby対応全面改訂版が、ついに復刊!
Kent Beck は、eXtreme Programming(XP)の提唱者

Java 版をRubyへ書き直したもの。
2010年の復刊。8,800円!



882 名前:デフォルトの名無しさん [2020/10/31(土) 08:20:00.50 ID:B8uNhuq7M.net]
ruby初心者です。

以下のNodeクラスにEnumerable moduleをincludeできるようなeachメソッドを
定義することはできますか。

class Node
attr_accessor :data, :next
def initialize(data)
@data = data
@next = nil
end
end

883 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 14:36:23.15 ID:zTfIs5nt0.net]
「Ruby Enumerable 実装」で検索!

Rubyで簡潔にeachなどの機能を持つクラスを実装する方法
https://ja.stackoverflow.com/questions/1593/ruby%E3%81%A7%E7%B0%A1%E6%BD%94%E3%81%ABeach%E3%81%AA%E3%81%A9%E3%81%AE%E6%A9%9F%E8%83%BD%E3%82%92%E6%8C%81%E3%81%A4%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

Ruby: EnumerableをincludeするよりEnumeratorを返そう
https://techracho.bpsinc.jp/hachi8833/2018_06_29/57698

884 名前:デフォルトの名無しさん mailto:sage [2020/10/31(土) 15:21:36.29 ID:OmKC8x+Wd.net]
>>843
https://ideone.com/IjTOn4

885 名前:デフォルトの名無しさん [2020/11/01(日) 00:02:35.61 ID:X6j+EvTNM.net]
>>844 さん
特に、>>845 さん
実装を教えていただいて、ありがとうございます。
https://ideone.com/IjTOn4に記載されていた実装は
私では考えつくことができませんでした。
何を勉強したら書けるようになるのか、悩みます。

ちなみにですが、私の考えたeachの実装は以下のようなものです。
class Node
  def each
  while self.next != nil
  yield self.data
  self.self.next
  end
  end
end
(でも、私のeachは動作しません。)

886 名前:デフォルトの名無しさん [2020/11/01(日) 00:07:41.13 ID:X6j+EvTNM.net]
>> 844
self.self.nextは、self = self.nextの誤記です。

887 名前:デフォルトの名無しさん mailto:sage [2020/11/02(月) 02:18:36.47 ID:cH+o+Znx0.net]
Mix-in とは、何かのモジュールをinclude すると、
それが継承チェーンの親の所へ入ってくるから、
そのモジュール内の関数が使えるようになる

例えば、include Enumerable とすると、
自クラスで、each を定義してあれば、Enumerable内のすべての関数が使える

Array も、Enumerableをインクルードしているから、
Array内の関数と、Enumerable内の関数が使える

つまり普通に、複数のインスタンスを配列に入れておけば、
Array・Enumerable内の関数が使える

ほとんど、この2つのクラス内の関数ばかり

888 名前:を使うから、
どういう事ができるか、見ておいた方がよい

また、eachを定義せずに、Enumerableの機能を使うには、Enumerator を使う。
eachは内部イタレータで、Enumeratorは外部イタレータ

初心者はイタレータなど考えず、普通に配列内に入れておけばよい

デザインパターンなら、この本が良い。
改訂2版 Ruby逆引きハンドブック、2018
[]
[ここ壊れてます]

889 名前:846 [2020/11/02(月) 08:31:13.28 ID:cH+o+Znx0.net]
「Ruby each 実装」「ruby イテレータ 実装」で検索!
内部・外部イテレータの違いも、調べてみれば?

ruby eachの実装
https://teratail.com/questions/117974

890 名前:デフォルトの名無しさん [2020/11/03(火) 09:41:15.68 ID:XEwmRHqvp.net]
>>848さん
アドバイスありがとうございました。
示していただいたキーワードを使ってネットの情報を読み漁ってました。
rubyに関する基本的な文法知識も弱いのですが、デザインパターンという
考え方?思想?もわかっていないので、文法の習得と並行して勉強が必要だと
感じました。修業します。

891 名前:846 mailto:sage [2020/11/03(火) 22:57:00.33 ID:pWieQE6j0.net]
Mix-in の例で、include Enumerable して、
Enumerableモジュール内の関数が使えるように、
自クラスで、each を実装しましょうとか、
こういうのを初心者向けで見たことがない

ほとんど、こういう事をやってる人は、いないと思う

なぜかというと、Array は、Enumerableをインクルードしているから、
配列に入れれば、何でもできるから

だから、そもそも、どうしてこういう事をしようと思ったのか、疑問に思う

プログラミングのお題スレの問題でも、
すべて、Array, Hash, Enumerableで解ける



892 名前:デフォルトの名無しさん mailto:sage [2020/11/03(火) 23:15:09.60 ID:eTFEu/to0.net]
>>851
遅延評価

893 名前:デフォルトの名無しさん [2020/11/04(水) 10:08:06.70 ID:wF8lqQTTF.net]
Ruby、信者は、おことわり

894 名前:846 mailto:sage [2020/11/04(水) 23:31:34.08 ID:oOk5Pqvr0.net]
一部のメソッドで、遅延評価できる

instance method Enumerable#lazy
lazy -> Enumerator::Lazy

map/collect, flat_map/collect_concat
select/find_all
reject
grep
take, take_while
drop, drop_while

一貫性のため、ブロックを渡さないケースのみlazy
zip, cycle

895 名前:デフォルトの名無しさん mailto:sage [2020/11/04(水) 23:51:12.04 ID:lTVc+I7v0.net]
Enumerableは高階関数とともに脱初心者の一番の目安
この2つをパパっと作って使えるようになれば初心者は卒業

896 名前:846 mailto:sage [2020/11/05(木) 23:53:13.53 ID:lCe7ZMVj0.net]
Ruby の強みは、

Array, Hash, Enumerable, Enumerator の豊富なメソッドを、
メソッドチェーンでつなげていくプログラミング

どういうメソッドがあるのか、じっくり見ておくべき!

897 名前:デフォルトの名無しさん mailto:sage [2020/11/07(土) 23:50:43.02 ID:DktN1QwS0.net]
TIOBE Index、perlより下じゃん

898 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 03:09:45.71 ID:YnyAcD/m0.net]
とうとうperlより下になったかw
誕生経緯w存在意義が…w

899 名前:デフォルトの名無しさん [2020/11/08(日) 10:17:52.02 ID:WJSuSySW0.net]
助成金ひっぱりんごビジネス

900 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 10:46:31.03 ID:msYgn7TJM.net]
エンベデッド詐欺
ストリーム詐欺

901 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 13:35:54.75 ID:P6MM9gKe0.net]
問題 Rubyを開発したのはだれか
答え 2ちゃんねる開発者でもあるひろゆき

根拠
https://programmercollege.jp/column/16456/



902 名前:デフォルトの名無しさん mailto:sage [2020/11/08(日) 16:28:40.45 ID:2D8TgavPM.net]
もうすっかりマイナー言語だな

903 名前:デフォルトの名無しさん [2020/11/09(月) 21:51:36.37 ID:A/fRbmyh0.net]
初めまして、現在の状況はRuby、Windows 10、 VSCode(エディターのみ)です。
以前Basic言語をやってましたがRubyの言語は勉強しました。
1.RubyでVSCodeの便利なデバッガーは何がいいですか。
2.RubyでVSCodeのインターネットまたは本等の使い方を勉強したい。
3.gemへのログインの方法を知りたい。
以上の3点知ってる人がいましたら教えてください、お願いします。

904 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 00:15:08.25 ID:TotITmpP0.net]
>>791
に書いた

漏れは、Windows 10, WSL1, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

WSL2 と言う、Hyper-v を使ったものもあるけど、
安定バージョンかどうかは、知らない

VSCodeの便利な拡張機能については、VSCodeのスレで聞いてください。
本は、徹底解説Visual Studio Code、本間咲来、2019/9

漏れのおすすめ拡張機能、Code Runner
右クリックメニューから、選択したコード、またはファイル全体を実行する

この設定をチェックしておく
Code-runner: File Directory As Cwd
Whether to use the directory of the file to be executed as the working directory.

デバッガーは漏れは、p, pp, tap などで見てる

VSCodeの拡張機能では、Ruby というものかな?
8個の拡張機能をパックした、Ruby extension pack とか?
漏れは、よく知らない

gem でインストールするのは、bundler だけ!
その後は全て、bundlerでインストールする

gemは、依存関係を考慮しなかったっけ?
gemでインストールしても、依存関係で動かないかも

gem, bundler については、検索して調べてください!

905 名前:デフォルトの名無しさん mailto:sage [2020/11/10(火) 07:08:10.23 ID:yOpM0tMJr.net]
Rubyで本の使い方を勉強するってどういう意味?

906 名前:デフォルトの名無しさん [2020/11/10(火) 12:09:50.03 ID:08CevRpcF.net]
Ruby 卒業しようぜ さっさと

907 名前:デフォルトの名無しさん [2020/11/12(木) 23:43:36.78 ID:9JGUhgPP0.net]
g++です
undefined reference to `ruby_init'
と表示されます
たぶんdllに入ってると思うのですがどこにあるのでしょうか?
よろしくお願いします

908 名前:デフォルトの名無しさん [2020/11/12(木) 23:44:28.91 ID:9JGUhgPP0.net]
versionは2.7.0です

909 名前:デフォルトの名無しさん mailto:sage [2020/11/12(木) 23:46:31.86 ID:1kfP87l60.net]
「dumpbin Windows」で検索!

910 名前:デフォルトの名無しさん [2020/11/12(木) 23:48:50.89 ID:9JGUhgPP0.net]
そもそもDLLが見つかりません
ほんとお願いします

911 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 00:13:10.26 ID:1m9BN6xD0.net]
>>869
初心者には意味不明です



912 名前:862 mailto:sage [2020/11/13(金) 00:22:55.68 ID:LLS1FCOb0.net]
g++ は、GNU の GCC に含まれる、C++コンパイラ。
GNU で、Windows 向けのDLL を作るの?

RubyInstaller か?
MSYS2/MINGW の、RubyInstaller Development Kit(DevKit)有りか?
ridk install がどうしたこうしたとか?
よく知らないけど

https://rubyinstaller.org/downloads/

Windows 10, WSL, Linux でコンパイルする方法なら、
>>791
に書いたけど

913 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 00:28:08.04 ID:1m9BN6xD0.net]
c++にruby_initを組み込んでみたいです
コンパイルエラーがでます
さっぱりわかりません

914 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 00:34:11.29 ID:1m9BN6xD0.net]
#include <ruby.h>

int main() {
// Rubyインタプリタの初期化
ruby_init();

// スクリプトの実行
rb_eval_string("print 'Hello World!'");

// Rubyインタプリタのクリーンアップ
ruby_cleanup(0);
}

915 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 00:55:32.20 ID:4qY0TlDt0.net]
「初心者」のやることじゃねえ。w

916 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 01:16:13.61 ID:LLS1FCOb0.net]
正気?
初心者が、こんな事をする訳ないだろ

C/C++ を、数年以上やってからの話

917 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 01:17:12.74 ID:1m9BN6xD0.net]
そう言わずにコンパイルできる方法を教えてください

918 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 01:52:06.56 ID:LLS1FCOb0.net]
ffi は C や C++ ように作成された共有ライブラリを、
Ruby で扱うことができるようにするためのライブラリです

libffi を使っているので、事前にインストールが必要です。
NativeExtensions を直接扱わずに、C を操作できます

ruby ffi 入門
https://hawksnowlog.blogspot.com/2019/0

919 名前:4/getting-started-ruby-ffi.html []
[ここ壊れてます]

920 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 01:57:04.06 ID:1m9BN6xD0.net]
その逆が知りたいわけで。。。

921 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 02:03:07.72 ID:LLS1FCOb0.net]
C/C++ から、Ruby を呼ぶ方法か

検索すれば?



922 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 02:06:45.73 ID:1m9BN6xD0.net]
検索したんですけど見つかりませんでした

923 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 03:33:11.86 ID:LLS1FCOb0.net]
Windows では、無理じゃない?

Linux で探した方が良いかも

924 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 03:35:06.10 ID:ZgWaq86m0.net]
Windows使ってるってだけで教祖様の号令一下で石投げられるのがRubyコミュニティだからな
Pythonにしとき

925 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 04:42:47.05 ID:b8ug5Yf30.net]
C/C++ から Python を呼ぶ方法なんて袋叩きに逢うのが
Python コミュニティですが、それがなにかどうかされますた???

926 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 04:53:52.48 ID:1m9BN6xD0.net]
難しそうなのであきらめました

927 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 06:40:07.62 ID:LLS1FCOb0.net]
普通は、Ruby から、C 製のNArray みたいな高速なライブラリを呼ぶ

逆に、Cから、Rubyを呼ぶ事はない。
普通に、Rubyコマンドを呼べば良いだけ

例えば、Rubyスクリプト内で、Python3 コマンドを呼ぶ

str = `python3 -c 'print( "あ" )'`

puts str #=> あ

928 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 07:00:14.39 ID:PGsPGVPV0.net]
まつもと:それから「Backquotes」の地上げも考えていたんですけども、Backquotesをするとシェルで実行して結果を文字列で返すってやつですね。

(参加者から「いける、いける」の声)

まつもと:なんかあの辺で「いける、いける」って言ってる人がいますけど、信じない(笑)。なので、これももうちょっと先で、もう1回くるかもしれませんが、少なくとも3.0では死なないということです。
https://logmi.jp/tech/articles/321308

バージョンによって使えてたクォートが使えなくなったりするクソ言語

929 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 08:51:10.39 ID:LLS1FCOb0.net]
Python 2/3 のコミュニティーの分断は、地獄だった

だからRubyは、2/3 で絶対に分断させない!

930 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 09:27:17.47 ID:PGsPGVPV0.net]
マイナーバージョンで細切れ分断してるからな。
その辺は抜かりない。

931 名前:デフォルトの名無しさん [2020/11/13(金) 12:02:41.44 ID:RWm0omqa0.net]
>>884
>C/C++ から Python を呼ぶ方法なんて袋叩きに逢うのが Python コミュニティ
初めて聴いたけどどこ情報?



932 名前:デフォルトの名無しさん [2020/11/13(金) 12:09:12.42 ID:RWm0omqa0.net]
funktor.org/programming/cpp/embedding-ruby

933 名前:デフォルトの名無しさん [2020/11/13(金) 14:17:08.52 ID:/AMzz1sP0.net]
>>883
「私がWindowsを嫌っているのではなく、WindowsがRubyを嫌っているのだ。だからWindowsを使ってはいけない。」と教組様が言ってたけど。

934 名前:デフォルトの名無しさん [2020/11/13(金) 14:22:10.08 ID:RWm0omqa0.net]
教祖も言ってるけど
windowsならrubyやめてpython使う方が楽ちん

935 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 14:47:22.41 ID:b3aeLCbPa.net]
エラーが出たので助けてほしいです…
ターミナルでrails db:createをするの下記のような文が出ます…

Traceback (most recent call last):
4: from bin/rails:3:in `<main>'
3: from bin/rails:3:in `load'
2: from /Users/tech-camp/projects/tweet/bin/spring:10:in `<top (required)>'
1: from /Users/tech-camp/projects/tweet/bin/spring:10:in `read'
/Users/user/projects/tweet/bin/spring:10:in `read': No such file or directory @ rb_sysopen - /Users/user/projects/tweet/Gemfile.lock (Errno::ENOENT)

936 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 14:49:36.90 ID:b3aeLCbPa.net]
エラーが出たので教えてほしいです…
ターミナルでrails db:createをしたらこのようになりました…


Traceback (most recent call last):
4: from bin/rails:3:in `<main>'
3: from bin/rails:3:in `load'
2: from /Users/user/projects/tweet/bin/spring:10:in `<top (required)>'
1: from /Users/user/projects/tweet/bin/spring:10:in `read'
/Users/user/projects/tweet/bin/spring:10:in `read': No such file or directory @ rb_sysopen - /Users/user/projects/tweet/Gemfile.lock (Errno::ENOENT)

937 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 15:16:02.12 ID:9KKZC7FrM.net]
bundle installしてないとか

938 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 15:45:24.78 ID:b3aeLCbPa.net]
まさにそれでした…!
ありがとうございます…!

939 名前:デフォルトの名無しさん mailto:sage [2020/11/13(金) 17:04:48.25 ID:b4HB1/RK0.net]
>>867
$ export PKG_CONFIG_

940 名前:PATH="$HOME/.rbenv/versions/2.7.2/lib/pkgconfig"
$ gcc $(pkg-config --cflags --libs ruby-2.7) hello.c -o hello

上の例はWindowsじゃなくmacOSでrbenv使ってる環境だけど
Windowsでも.pcファイルあると思うからpkg-configで必要なオプション取得すれば良いと思うよ
[]
[ここ壊れてます]

941 名前:デフォルトの名無しさん [2020/11/17(火) 15:37:28.16 ID:+8mZ0oHh0.net]
拡張ライブラリについての質問です
一次元配列の場合はデータを取得できたんですけど、
二次元配列の場合はどうすればいいんでしょうか?
よろしくお願いします

//一次元配列の場合
num = rb_ary_entry(p_val, offset);
a = FIX2INT(num);



942 名前:デフォルトの名無しさん mailto:sage [2020/11/17(火) 18:11:21.31 ID:PuHDpULa0.net]
VALUE, FIX2INT, RARRAY, rb_ary_entry

これは、Ruby なのか?
奇妙

943 名前:デフォルトの名無しさん mailto:sage [2020/11/17(火) 18:42:35.55 ID:PuHDpULa0.net]
Ruby では、ary[offset] だろ。
2次元配列なら、

ary = [ [1, 2], [11, 12], [21, 22] ]

ary[0][1] = 99
p ary #=> [[1, 99], [11, 12], [21, 22]]

p ary.length #=> 3
p ary[0].length #=> 2

944 名前:デフォルトの名無しさん mailto:sage [2020/11/17(火) 19:23:04.59 ID:yKNV/xx90.net]
>>899
配列要素オブジェクトを多段にRArray*にキャストしたらええんちゃうの?知らんけど。

https://docs.ruby-lang.org/ja/latest/function/rb_ary_entry.html
https://docs.ruby-lang.org/ja/latest/function/RARRAY.html

>>900
知らんかったら黙っとくか、ググるくらいしろ。

945 名前:デフォルトの名無しさん [2020/11/18(水) 19:49:47.73 ID:XrXdqU1w0.net]
やっと解りました。。。
どうもありがとうございました!
ary = [[0,1],[2,3],[4,5]]


num0 = rb_ary_entry(ary_val, 2);
num1 = rb_ary_entry(num0, 0);
a = FIX2INT(num1);

num0 = rb_ary_entry(ary_val, 2);
num1 = rb_ary_entry(num0, 1);
b = FIX2INT(num1);

sprintf(buf, "%d , %d", a, b);
MessageBox(NULL, buf, "", MB_OK);

946 名前:デフォルトの名無しさん [2020/11/24(火) 05:57:29.80 ID:tcZG3tlz0.net]
ocraを実行してexe化したのですが、
libssp-0.dllがないというエラーが出てフリーズしました
放っておけばそのうちocraがバージョンアップで対応してくれるんでしょうか?

プログラムは、

puts "hoge"

だけです

947 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 06:47:14.40 ID:/T/Ll6K6r.net]
フォルダ名に日本語混ざってるとocra使えないからそれかもね

948 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 06:50:52.14 ID:/T/Ll6K6r.net]
日本語Windows環境ならocraよりneri使ったほうがいいと思うよ

949 名前:デフォルトの名無しさん [2020/11/24(火) 07:16:55.53 ID:tcZG3tlz0.net]
どちらもだめでした
MinGWが64bitなのがいけないいんですかね?
neriの場合は、「アプリケーションを正しく起動できませんでした」
と出ます
日本語は使ってないですよ

950 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 09:00:20.18 ID:gfNKbZsOa.net]
最近同じエラー吐いてる人が多いからマルチバイト文字とかじゃなくてocraのバグじゃね
今つっかかってる場所はlibssp-0.dllの有無
libssp-0.dll入手して適切なフォルダに入れれば動くかもしれないし、それを超えてもまた次のエラーメッセージ出るかもしれない

こういう場合むしろ古いバージョンのocraやrubyを使ったほうが正常に動いたりするよ
特定のバージョンとの相性で上手く動作したらむやみにアップデートしないことな

951 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 09:01:18.97 ID:XRJpBbZB0.net]
ひょっとして、フォルダ名・PC のユーザー名に、日本語を使っていないか?

>neriの場合は、「アプリケーションを正しく起動できませんでした」
もっと正確なエラーメッセージを取得して、それで検索すれば?

どういう理由で起動できないのかを、知りたい
色々な理由があるから、このメッセージだけでは原因を特定できない

Linux みたいに、Windows には、OS のログとか無いのか?



952 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 09:46:40.72 ID:gfNKbZsOa.net]
日本語じゃないって否定してんのに直前のレスも読めねーのか
https://stackoverflow.com/questions/64368535/ruby-compile-with-ocra-error-libssp-0-dll-not-found

Maybe you don't have the libssp-0.dll file installed.
You can download it from https://www.dll-files.com/libssp-0.dll.html
then placing the file where the error says.

953 名前:デフォルトの名無しさん [2020/11/24(火) 12:56:57.47 ID:tcZG3tlz0.net]
neriのエラー
アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じてください。

libssp-0.dllはMinGWでgetするdllです

バグか64bitに対応してないかのどちらかだと思います
暫く様子を見ることにしました
あと古いバージョンも試してみます

954 名前:デフォルトの名無しさん mailto:sage [2020/11/24(火) 20:33:08.36 ID:GlJ0k2Kgr.net]
こっちは64bit windows10でneri使えてるけどなぁ

955 名前:デフォルトの名無しさん [2020/11/25(水) 06:01:29.82 ID:vPLi7EhQ0.net]
2.4で動きました
しかし自作のsoファイルをソースに含めると
ocra test.rb --dll ddddd.so

実行すると
FATAL ERROR: Bad signature in executable.

956 名前:デフォルトの名無しさん mailto:sage [2020/11/25(水) 12:15:29.69 ID:BeZXjuPe0.net]
自分でエラーを作っているから、原因は君にしか分からない

そのエラーメッセージで検索すれば?

957 名前:デフォルトの名無しさん [2020/11/25(水) 12:51:53.26 ID:BeZXjuPe0.net]
文字列内にある、URL を抜き出す、URI.extract、
または、正規表現のURI.regexp は、

Ruby 2.2 から obsolete になっているけど、
それに代わるものは、何ですか?

require 'uri'

URI.extract("文字列", ['http','https'] )

p URI.regexp =~ "www.ruby-lang.org/" #=> 0

958 名前:デフォルトの名無しさん [2020/11/25(水) 16:47:47.83 ID:vPLi7EhQ0.net]
>>914
neriでexe化できました
ocraは相変わらずですが
ありがとうございました!

959 名前:(u_・y) mailto:sage [2020/11/26(木) 17:59:03.02 ID:ACzSTlzfa.net]
>>915
text ="
https://i.imgur.com/UJbFSti.jpg
www.ruby-lang.org/
"
text.scan(URI.regexp).map { Regexp.last_match }.each { |uy|
puts uy
}

960 名前:デフォルトの名無しさん [2020/11/27(金) 02:05:30.36 ID:lOUpIwv20.net]
>>917
出力
www.ruby-lang.org/
www.ruby-lang.org/

2回とも、同じものが表示されるから、ダメ!

961 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 07:36:58.12 ID:8Z+4V8c6r.net]
text.scan(URI.regexp){|v| puts '%s://%s' % [v.shift, v.compact.join]}



962 名前:916 mailto:sage [2020/11/27(金) 08:41:48.24 ID:lOUpIwv20.net]
text.scan( URI.regexp ){ |v| p v }

出力
[ "https", nil, nil, "i.imgur.com", nil, nil, "/UJbFSti.jpg", nil, nil ]
[ "http", nil, nil, "www.ruby-lang.org", nil, nil, "/", nil, nil ]

この奇妙な、nil は何?
それに、:// が飛ばされている

963 名前:(u_・y) mailto:sage [2020/11/27(金) 16:29:26.66 ID:6fRHx8hla.net]
てかURI.regexpもobsoluteだった

964 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 17:54:13.89 ID:tPIe9OcJ0.net]
https://bugs.ruby-lang.org/issues/2542
はっきりした理由は書いてないけど
RFC2396自体がobsoleteになって新しくRFC3986/3987対応のregex考えるの大変だから
URI.extract/URI.regexpはobsoleteになったように見える

なので今の仕様で問題ないなら使えばいいんじゃないかって気がする
warningを避けたいならURI::DEFAULT_PARSER.extractを直接使ってもいいけど中身は同じ
もう少しちゃんとしたのがよければtwitter-textのExtractor.extract_urls

965 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 21:04:45.51 ID:8Z+4V8c6r.net]
qiitaにRFC3986対応の正規表現とか出てるけどそんな大変なのかね
詳しく知らんからなんも言えないけど

966 名前:デフォルトの名無しさん mailto:sage [2020/11/27(金) 21:32:51.26 ID:OZT1ua320.net]
多言語対応まで考えるとややこしいから、すっぱりあきらめたんやろ。

967 名前:デフォルトの名無しさん [2020/11/28(土) 11:23:25.42 ID:FGpMIdZG0.net]
RFC3986に準拠したURI検証用正規表現
https://qiita.com/shimataro999/items/fced9665fa970c009c1e

HTTP/HTTPS の所には、こういうのが出てくるから、これらが特殊文字なんだろう。
もっと簡単な正規表現で良い

終了点を知りたい。ある文字が出たら、そこで終わりみたいな。
URL で使われない文字

^https?:\/\/

|[!$&'()*+,;=]|:)*@)?
|[!$&'()*+,;=])*)(:\d*)?
|[!$&'()*+,;=]|:)+
|[!$&'()*+,;=]|[:@]))*)*

[-._~]

968 名前:デフォルトの名無しさん [2020/11/30(月) 03:48:29.64 ID:r8rQ87Qr0.net]
コンテンツをファイルに書きこみながら、同時にハッシュ値も求める場合、
Go では、io.MultiWriter で、2回読み込まずに処理できるらしいが、

Ruby にも、こういう機能がありますか?

969 名前:デフォルトの名無しさん [2020/11/30(月) 20:22:04.13 ID:G81cwQG00.net]
RailsチュートリアルをRubyの言語自体の入門書としてみた場合、一般的な入門書の何割ぐらいをカバーしてるものなのですか?

970 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 21:45:48.29 ID:r8rQ87Qr0.net]
Rails チュートリアルは軽く「たのしいRuby」の10倍以上はある

MVC は、構造・デザインパターンなどを学ぶのが大変

おまけに、Linux・サイト製作の基本知識とか、
データベース・ERB・HTML・CSS/SASS・JavaScript・Webpack・テストとか

971 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 22:12:15.34 ID:ifp6ptD/0.net]
そして、それでいて文法やメソッドなどの基礎的なところをすっとばしている可能性が。w

要するに、方向性が違うので、どっちが他方をどう含んでるかは何とも言えんやろ。



972 名前:926 mailto:sage [2020/11/30(月) 22:44:30.64 ID:r8rQ87Qr0.net]
入門書で文法を学んだら、Enumerable のメソッドの内容を見てから、

プログラミングのお題スレの問題を解いたり、
テキスト処理などを少しやった方が良いと思う

Rails チュートリアルは、時間が掛かるから

まあでも、ウェブサイトの構築運用の最短距離は、Linux・AWS・Rails。
バックエンド・エンジニアなら、Linux・AWS・Ruby

973 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 01:00:57.88 ID:bLJR8T1fa.net]
3割くらいじゃね
あと別にrubyの魔術コードを書けたり読めたりしなくても生きていける

974 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 21:27:16.65 ID:gqqffooe0.net]
ちょ、DateTimeがdeprecatedになってるんですが・・・
これいつから?

975 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 23:02:19.70 ID:uBfLZ+080.net]
さすがRuby!w
おどろきの互換性。

976 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 23:28:41.06 ID:KOqkaYUf0.net]
wwwwww

977 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 10:02:26.56 ID:WhLorZrAM.net]
2.5からだね
なお英語版ドキュメントへの記載を忘れていたためRails勢には全く認知されておらず最近になって混乱を引き起こしている模様
これがRubyクォリティ

978 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 10:21:56.70 ID:s/Tj40p50.net]
な?ww
マイナーバージョンアップで互換性崩れるだろ?www

979 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 12:09:59.52 ID:X5mOhjXr0.net]
>>935
2.5からというソースある?


980 名前:9末に特にアナウンスもなく変更されてるように見えるんだけど
https://github.com/rurema/doctree/commit/0645aad1d9107fa4020269f12ca9a21ec6bd859c

deprecatedになっても削除されるものじゃないから実害はないんだけど
さすがにこれはやり方が乱暴
[]
[ここ壊れてます]

981 名前:デフォルトの名無しさん [2020/12/02(水) 12:39:09.20 ID:vDg6xkSY0.net]
DateTime は非推奨で、代わりに、Time を使うこと。
つまり、Date, Timeを使う

DateTime < Date < Comparable

Time < Comparable



982 名前:(u_・y) [2020/12/02(水) 17:21:15.67 ID:LINF+1vva.net]
https://docs.ruby-lang.org/ja/2.4.0/class/DateTime.html
https://docs.ruby-lang.org/ja/2.5.0/class/DateTime.html

983 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 22:11:56.65 ID:n0CYjqknr.net]
>>936
互換性は崩れてないじゃん

984 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 23:36:25.61 ID:26rcFOAE0.net]
deprecatedで混乱するもんなの?
廃止じゃないでしょ?非推奨でしょ?

そりゃ書き換えないといけないが
普通deprecatedになってから書き換えるでしょ?

985 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 23:39:12.64 ID:26rcFOAE0.net]
Ruby開発勢ならなんでいきなりdeprecatedになってるんだ?って
なるかもしれないけど、Rails勢は所詮Ruby使ってるだけの人たちだし

986 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 03:48:48.84 ID:1lle3h49a.net]
その身朽ちても仕様変更の激しい言語の代名詞としてruby生き残ったりして

987 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 03:50:09.86 ID:QOvIykSz0.net]
言語界のテセウスの船wwww

988 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 04:49:29.49 ID:GO6EbsS10.net]
rails自体によるdeprecatedなんていくらでもあるしそんなに騒ぐようなものでは無い

989 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 09:35:07.22 ID:QOvIykSz0.net]
名実ともにrailsが本体、rubyはそのバッテリーだなwww

990 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 10:20:11.90 ID:2qogV6iv0.net]
>>939
ソースの https://github.com/rurema/doctree/blob/master/refm/api/src/date/DateTime では
バージョンに関係なく deprecated になってるから、まだ変更が反映されてないだけですね

require 'open-uri'
%W[ 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 ].each{|ver|
open( "https://docs.ruby-lang.org/ja/#{ver}/class/DateTime.html" ) {|f|
puts "#{ver} #{( f.read.force_encoding( Encoding::UTF_8 ).match( /\bdeprecated\b/ ) )? "true ": "false"} #{f.last_modified.localtime.strftime( '%Y/%m/%d %T %z' )}"
}
}
#=>
2.3.0 false 2018/08/19 18:16:47 +0900
2.4.0 false 2020/04/10 09:17:55 +0900
2.5.0 true 2020/10/25 09:17:38 +0900
2.6.0 true 2020/10/25 09:17:11 +0900
2.7.0 true 2020/10/25 09:16:43 +0900

>>937 仰るとおり、9月の変更が反映されているかどうかのようです

991 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 12:06:44.28 ID:7EFKRkup0.net]
先日のURIのやつもそうだけど、過剰でもう手におえなさそうな実装を切ろうとしてんのかな。

来るべきRuby3に向けてか?



992 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 12:09:49.47 ID:Glofd6fS0.net]
>>947
なるほど、2.4はサポート切れてるから2.5以降だけリファレンスを更新したんだろうね

Railsとか本番で使うシステムは特殊な用途以外はTimeかTimeWithZone使ってるから別にいいんだろうけど
ちょっとしたツールでactivesupport使うまでもないようなものはTimeじゃなくDateTime使うことが多かったから
急にdeprecatedになってて驚いた

993 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 18:12:31.59 ID:PfGMH4zi0.net]
deprecatedで驚くのは中級以上の証
初心者は「まぁ動いてるからヨシ!」

994 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 20:52:46.44 ID:rS3QJvGw0.net]
ルビー初心者なんですがうまく動かなくて悩んでいます。
ここで

995 名前:ソ問さしていただいてもいいでしょうか? []
[ここ壊れてます]

996 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 21:12:35.91 ID:hX6RFB1N0.net]
どうぞ

997 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 21:16:41.53 ID:QtB29qoZr.net]
>>951
OSとruby -vの結果とエラーログを貼ってください。

998 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 00:07:56.54 ID:fauI+lK+0.net]
ありがとうございます
CentOS 7.8上に Ruby2.5.8 + Rails4.2 + MySQL8.0 で立てる、ごく普通の
Webアプリを構築しています。nginxは1.16です

ログイン画面で認証(sorcery)したら次画面に自分が所属する店の売り上げを
表示する、というアプリを作っているのですが、店の売り上げはログインした
ユーザに関する店の情報だけ出せば良いので、ActiveRecordのdefault_scopeを
使って、current_userのユーザ情報を元にscopeを設定しています

おおむねこんな感じです

default_scope {
where(shop: current_user.show)
}

999 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 00:12:58.79 ID:fauI+lK+0.net]
current_user情報の保持はRsquestStoreを使っています

うまく動いていないのは、このRequestStoreを介したcurrent_user情報が
modelのdefault_scopeの中でうまく不具現できないときがあるのです
うまく動くときもあるだけに逆に難儀しています

たまにcurrent_userの情報が直前にログインしていた別のユーザの情報と
なっている事が合って、default_scopeが期待した動きになりません。
デバッグで確認してみると、controller上でRequestStoreからcurrent_userを
復元させる場合は必ず期待通りに現在ログイン中のユーザの情報になりますが
model内で同じ事をやると正しく復元できたり出来なかったりします

model内でRequestStoreを使用するのがそもそも間違っているのでしょうか?

1000 名前:デフォルトの名無しさん [2020/12/04(金) 11:46:23.71 ID:sfksvFP90.net]
Rails 4.2 は古い

今は、Rails 6 の本も数冊出てる。
最低でも、Rails 5 以上

パーフェクト Ruby on Rails、2020/7、には、
scope とは再利用するクエリに、名前を付けるものって書いてある

class Book < ApplicationRecord
scope :costly, -> { where( "price > ?", 3000 ) }
end

これで、Book.costly と書けば、
Book.where( "price > ?", 3000 )となる

1001 名前:954 mailto:sage [2020/12/04(金) 11:58:35.47 ID:sfksvFP90.net]
同じ本に、default_scope は使うなって書いてある

そのモデルクラスのすべての操作に、暗黙的に適用されるため、

逆に適用しない場合に、
Book.unscoped.where(何々)みたいに、
一々、unscoped で取り消さないといけないから、初心者を惑わすから



1002 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 13:08:31.79 ID:tBcZspOUM.net]
>>955
まずはcurrent_userを設定してるところに問題ないか見直したほうがいいんじゃね?

1003 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 13:45:26.29 ID:/FLfc1Yi0.net]
anemoneが更新されていないのですが、
代替えってありますか?

1004 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 15:24:37.53 ID:L/fvSJtl0.net]
>>959
kimurai, spidr

1005 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 16:31:36.83 ID:/FLfc1Yi0.net]
>>960
あざっす

1006 名前:デフォルトの名無しさん mailto:sage [2020/12/10(木) 20:38:12.66 ID:TEgFYOMiM.net]
DBロールバックっていつ使うんすか?
マイグレしたあとにリクエスト処理してロールバックしたらデータ整合性崩れない?
NULL不可をNULL可能にマイグレ→NULLデータ追加→ロールバック→戻せなくて死亡
みたいな感じ?
バックアップダンプファイルからリストアじゃイカンのかな

1007 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 02:39:12.75 ID:ExAO4AKO0.net]
>>962
トランザクションの基礎を勉強しなさい
アプリを実際に作りなさい
経験がなさすぎる

1008 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 08:54:21.70 ID:Ollsi5 ]
[ここ壊れてます]

1009 名前:9NM.net mailto: >>963
あーそっちのロールバックじゃなくてマイグレのロールバックな
[]
[ここ壊れてます]

1010 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 10:55:45.84 ID:vQm1aiEb0.net]
>>964
それは「Ruby」「初心者」スレで聞くことなのか?

1011 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 11:49:56.62 ID:s+ujdTab0.net]
>>962
もし戻す必要が出た場合にそれまでの間に追加・更新されたデータをどうするか先に考えておく必要がある
NOT NULLに戻す場合はchange_column_nullだけで対処可能だからそんなに問題にならない
バックアップから戻したら追加・更新されたデータが消える



1012 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 12:49:02.80 ID:PpUdey1gM.net]
>>965
初心者といったらruby
rubyといったらrails
railsといったらmigration

1013 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 12:57:56.46 ID:PpUdey1gM.net]
>>966
ふむ
マイグレのセマンティクスをよく考えて個別にロールバックを実装していくしかないのかな
でもそれだとロールバック実装コストがかなり高く付きそうではあるな
どうせロールバックは緊急時にしか使わないわけであって
だったらロールバックは捨ててバックアップリストアでもいいんじゃないかなと

1014 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 16:10:31.24 ID:s+ujdTab0.net]
>>968
実装しないとしても戻す必要が出た場合にどう対応するのかを事前に検討しておく
検討の結果、実装しない選択をするんであればいいけど
何も考えずバックアップリストアでいいとか言ってると確実にGoToトラブル

ロールバック時に必要な対応も考慮して
アプリは戻してもDBは戻さなくていいような方法を取ることもよくある

1015 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 19:19:15.81 ID:jyJfdkePM.net]
.そもそも戻す必要性を可能な限り無くすために実データレプリカを含む膨大なデータセットでテストする
.運悪く戻す場合も安易なロールバックに頼らず修正マイグレーションを開発して緊急リリースする
.それでもだめなら神頼みロールバック
.それでもだめならバックアップリストア

これでOK

1016 名前:デフォルトの名無しさん [2020/12/13(日) 01:03:58.24 ID:bSx7ciZe0.net]
1. まず、これから更新するデータを、ジャーナルに書き込む
2. 実際に更新する
3. ジャーナルから記録を消す

だから、ジャーナルに記録があれば、更新できなかったと言う事。
その場合、回復ポイントから、ジャーナルにある分だけ更新していく(roll forward)

レアケースで、2が正常に終わった後、3でエラーになった場合は、
回復ポイントから、ジャーナルにある分だけ更新していく過程で、
既に正常に更新されている事を、チェックする

1017 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 01:12:39.96 ID:bSx7ciZe0.net]
Kubernetes では、ネットワーク分断に備えて、
マスターを、3, 5, 7個の奇数にしておく

奇数なら、2:1 とか、過半数を取れるから、多数派を正常として扱う事ができる

偶数なら、2:2 とか、1:1:2 などに分断されても、
どのグループも過半数が取れず、判断できなくなる

1018 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 01:24:25.52 ID:bSx7ciZe0.net]
AWS S3 では、3重に記録してる

それを災害に備えて、東京・大阪の2か所に保存する。
つまり、6重

1019 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 22:16:52.20 ID:bSx7ciZe0.net]
Software Design 12月号は、Docker, AWS 特集だけど、
クラスメソッドの社員が、AWS 主要サービスを紹介している

クラスメソッドには会社全体で、AWS の800資格を持ち、
12資格すべてを持つ、マスターが7人いる

MySQL・PostgreSQL 互換のAurora について、
1つのAZ(データセンター)毎に、2つずつ、合計3つのAZで6重にしてる。
Primary に2つと、Read Replica 2つに、2つずつ

>>2
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11/25

宇宙開発などの

1020 名前:組み込み用、Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応
[]
[ここ壊れてます]

1021 名前:(u_・y) mailto:ruby [2020/12/15(火) 18:08:34.40 ID:02qf4hkKa.net]
(u_・y)言うほどRubyで書いた制御システム詰んだ宇宙船に乗りたいか?



1022 名前:デフォルトの名無しさん [2020/12/16(水) 03:27:02.65 ID:0pLL+JPf0.net]
F-15はエイダ、F-22、F-35はC++で書かれてる。

1023 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 20:07:12.86 ID:aAJmKFvh0.net]
ruby3って3倍速くなった?

1024 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 20:48:04.60 ID:0svuoGhO0.net]
全体の0.1%が3倍速くなった

1025 名前:デフォルトの名無しさん mailto:sage [2020/12/22(火) 21:18:44.50 ID:10xc+AYD0.net]
www

1026 名前:デフォルトの名無しさん [2020/12/24(木) 03:08:33.92 ID:qBLsz+9E0.net]
Ruby VM では、1秒間に、100万回ループすると、
Ruby中間言語を、JIT で機械語にコンパイルして、
1秒間に、1,000万回ループ出来るようになる

もう、10倍になってる!

1027 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 08:31:42.54 ID:7F4cW8XH0.net]
いや指定した数だけループしろよ
何勝手に回数10倍に増やしとんじゃい

1028 名前:デフォルトの名無しさん [2020/12/24(木) 11:17:26.40 ID:TzdYJrci0.net]
三倍速い赤い奴!
人民解放軍!

1029 名前:デフォルトの名無しさん [2020/12/24(木) 15:48:27.18 ID:W/9MTNsy0.net]
Rubyを使ってunityでゲームを作る事は可能ですか?

1030 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 15:57:07.62 ID:uFIcYFKMM.net]
何その苦行
可能だったとしてそれでおとなしくC#でやるより簡単になるとでも思ってんの?

1031 名前:デフォルトの名無しさん mailto:sage [2020/12/24(木) 19:13:03.26 ID:5YZuSfe/0.net]
>>983
現実的に不可能。

Ruby→C#トランスレータが存在すれば可能かも?w



1032 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 01:13:50.85 ID:8LlCCPCm0.net]
mrubyとかみたいな感じでなんかできないかね。

1033 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 01:24:54.53 ID:cyV6b5qO0.net]
何その苦行
可能だったとしてそれでおとなしくC#でやるより簡単になるとでも思ってんの?

1034 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 01:50:36.29 ID:J4ouM17Ca.net]
>>985
Rubyからunityを呼び出せば原理的には可能じゃないの?
そんなめんどくさいことを誰がやるのかという問題はあるけど

1035 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 01:56:34.02 ID:DE1iEGh90.net]
>>988
それのどこが「Rubyを使ってunityでゲームを作る事」なの?

1036 名前:デフォルトの名無しさん [2020/12/25(金) 22:24:56.42 ID:DVzhLIY40.net]
松原案件でRuby松本メルカリ弟は絶対死亡になりました
byねね室原幕府色彩空間

1037 名前:デフォルトの名無しさん mailto:sage [2020/12/25(金) 23:45:34.05 ID:aa9Khe9z0.net]
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11/25

この本を読んだ印象では、
宇宙開発などの組み込み用、Lua, Squirrel の代替になる

Apache などのミドルウェアに組み込んで、拡張機能を作る。
ロジック・文字列処理は、C よりも、GC のあるmrubyでやった方が、安全性が高い

Unity, Xamarin は、Mono か。
Mono とは、Linux で、C# を動かす、.NET 用のOSS

Mono に組み込んで使えるかも知れない

次スレ

Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/l50

1038 名前:デフォルトの名無しさん mailto:sage [2020/12/26(土) 10:11:10.42 ID:q2RopqqH0.net]
mrubyの本にmrubyは使い物になりませんなんて書いてあるわけないだろ
小学生かよマルチに引っ掛からないようにな

1039 名前:デフォルトの名無しさん mailto:sage [2020/12/30(水) 10:46:44.30 ID:nbKcCzET0.net]
unlimited対応なRuby3本マダー

1040 名前:989 [2021/01/25(月) 12:01:43.51 ID:+q31tGtg0.net]
mruby で作った、小型人工衛星イザナミの打ち上げが成功した!

mruby 製の1号機が『イザナギ』、2号機は『イザナミ』

1041 名前:デフォルトの名無しさん [2021/01/27(水) 11:48:55.98 ID:cJSBZXf90.net]
三代目
ヒルコ



1042 名前:デフォルトの名無しさん [2021/01/31(日) 15:1 ]
[ここ壊れてます]

1043 名前:4:05.39 ID:nfjawlju0.net mailto: デスクトップにショートカットを作って、
それに複数のフォルダ/ファイルをドラッグアンドドロップ(D&D)して、
それらのフルパスを取得してみた

まず、デスクトップのa.rb に、
puts ARGV
と書いて、そのショートカットを作る

ショートカットのリンク先を、コマンドプロンプトとする。
cmd@.exe で、ruby で、a.rb を実行する。
C:\Windows\System32\cmd@.exe /k "ruby a.rb"

書き込めないので、@を付けましたが、
cmd@.exe の、@を抜いてください

これで、ショートカットにD&Dした、すべてのフォルダ/ファイルのフルパスが表示される

出力
C:\Users\〜
C:\Users\〜
[]
[ここ壊れてます]

1044 名前:デフォルトの名無しさん [2021/02/10(水) 17:18:18.24 ID:eXs8qevw0.net]
autoload は、モジュールを使う場合にだけ、require されて、
使わない場合には読み込まないので、非常にエコだと思ったけど、

autoload で相対パスを読み込む、require_relative が無いのは不便

1045 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 08:27:23.75 ID:PHAHurb8a.net]
>>991
次スレありがとう!
こっち埋めておくね

1046 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 08:27:37.46 ID:PHAHurb8a.net]
うーめ

1047 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 08:27:51.32 ID:PHAHurb8a.net]
埋めておきます

1048 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 08:28:03.41 ID:PHAHurb8a.net]
埋めたい

1049 名前:デフォルトの名無しさん mailto:sage [2021/02/12(金) 08:28:16.84 ID:PHAHurb8a.net]
1000

1050 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 405日 7時間 12分 43秒

1051 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<307KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef