Ruby 初心者スレッド Part 63
■ このスレッドは過去ログ倉庫に格納されています
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 62
https://mevius.5ch.net/test/read.cgi/tech/1511451329/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/ IP表示して自分で荒らし行為してますって宣言してるからどうしようもない
何度もおかしいって忠告してるのに >>369
ほんまこれ
なんも荒れてない時にも湧いてくるから意味不明だわ
んできっと俺も荒らしの自演認定されるんだろな >>368
この様にして毎回荒らされるんです
>毎回「私は荒らしじゃないよ」って言いながら
まさにこの通り IDを変えられるという事はこれ以降も荒らしが出てくるのか
出てくる度にチェンジって言ってやれば良いんじゃね? CとRubyの繋ぎで構造体をやり取りしたいんだけど、
require 'fiddle/import'
module M
extend Fiddle::Importer
dlload "libc.so.6"
extern('int gettimeofday(void *, void *)')
Timeval = struct( ["long tv_sec",
"long tv_usec"])
end
timeval = M::Timeval.malloc
e = M.gettimeofday(timeval, nil)
if e == 0
p timeval.tv_sec #=> 1173519547
end
上のコードよりもっと簡単な方法って何かない? Rubyはじめようと思ったけど
MacにRailsをインストールできなくてつんだかとおもたわ Macとかだとrbenvで入れて遊ぶのが吉な気がする 運用情報板でここの荒らしが盛大に自演をミスって自爆
本当に何を考えてんだ荒らしは
>>376
[1,2,3,4].pack("iiii")
みたいな感じで配列をパックして文字列として渡す ttps://qiita.com/is-lab/items/e0443b79da117ed48294
homebrewとrbenvのインスコ方法はぐぐればすぐ見つかる つまりいちいちググらないといけない。
すぐ使えない。 えーそれはさすがに無理だろー!?
無知な状態からググる必要があるのは
Ruby以外のどんな言語でも同じだろー? ググらないといけないから使えない
というのはさすがに無理筋 >>376
dl/win32の頃はarrayをpackしてわたしてた
require 'Win32API'
api = Win32API.new('foo.dll', 'foo', 'p', 'v')
args = ["\0" * 256, "\0" * 256, "\0" * 256]
api.call(args.pack("p3")) ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [i386-mingw32]
この式だとシンタックスエラーと表示される。
p { a: 1, b: 2, c: 3}.map{ |k, v| [k,v * 10] }
hash_a =をつけると正常になる。
p hash_a = { a: 1, b: 2, c: 3}.map{ |k, v| [k,v * 10] }
上の式だとなにかに代入しないのでシンタックスエラーになったのでしょうか? >>390
ハッシュじゃなくてブロックと解釈されたんだろう
p({...}) とすればエラーは消えるはず p({ a: 1, b: 2, c: 3}.map{ |k, v| [k,v * 10] })
と書けばいいと思うよ
p(に限らずメソッド名)の後に{が続くとブロック引数と解釈されるので
それに続く記述は式になっていないと構文エラーになる…んじゃないかな
ちゃんとparse.y読んでないからわからんけど サクっとRailsを勉強したけどマイグレーションクラスの書き方が気持ち悪いな 静的型付き言語から来たけど、リファクタリングが1万倍つらい 静的から来たんなら一発でリファクタリング不要なの創れ つまり動的型付け言語ではなく静的型付け言語を作れと?
TypeScriuptみたいに、TypeRubyを作れってことですかな? 作ろうかな。その名も「なんちゃってCrystal」 書き込み時間みたらここまで全て自演か
質問・雑談スレ357@運用情報板
http://agree.5ch.net/test/read.cgi/operate/1530175433/
のスレの星もちって言われてる人が自演でここを荒らしてるので気をつけてね >>402
お前が例の荒らしなの?
というか人の質問ぶっちしてよくも荒らしてくれたな
失せろ この人は本物のアレな人なんで、これからもずっと居続けるだろうし、
我々が我慢するしかないのですよ やっぱりそうだったか
ID:/HPmTQSMはNGにつっこんで無視するとして自演はどうする?
いくらでもIDを変えられるだろこいつ 荒らしを擁護する奴とか明らかにネガキャン狙いの奴は自演だろうし、
片っ端からチェンジで良いんじゃね? 初心者質問ですいませんがwebサービスを実装した時の認証って一般的にはどのようにしているのでしょうか
単純なhtmlからajaxでwebサービス叩くのは簡単ですが、認証も伴うとなるとgetやpostでどう実現しているのか不思議に思いまして twitter api とかは、oauth認証を使っている
gem 'twitter'
gem 'oauth'
gem 'omniauth-twitter' 今、mrubyってのを組み込み用に作ってるんだよな確か
Cで書かれてる実装の移植じゃダメな理由でもあるの? >>410
MRIはUNIXに依存してるから組み込みでは使い物にならない > 今、mrubyってのを組み込み用に作ってるんだよな確か
今・・・作っている・・・?
もう何年も前から聞く名前だが
終わらないプロジェクトじゃないかw 誰も何も要求してないから要求仕様というものが無いwwwww
打出の小槌wwwww 補助金貰ってるから作ってるポーズだけは続けなきゃいけないんだよ
MRIのコミッタ達が飯食えなくなったらそれこそ終わりだぞ Rubyと組み込みってあんま相性良さそうに思えない
Windows(GUI)とかAndroidとかもっと進出して欲しかった あと最近Pythonに押されてる理由の機械学習系のライブラリとか
リソース投入して欲しい分野他にいっぱいあるのに そういう海外の特定企業のプラットフォームに依存したものだと補助金貰いにくいからね
機械学習は今のRubyにはできる人材がいないから無理 >>411
ラズパイやなんかはほぼlinuxの組み込み用ディストリだろ?
別にunix依存でも組み込みで遊べれば良いんじゃないかと個人的には思う
というかなんか荒らしが湧いてるな スマフォは端末20億ぐらいが今の所上限、人口から計算するとそうなる。
IOTになると300億ぐらいになると言われている。
だから市場としては組み込みのほうが遥かにデカイんだ。 >>420
補助金の申請書に書くには良い説明だね
現実にはそれは詭弁で、何百億もばら撒かれるような大量生産するデバイスに、
ラピッドプロトタイピングを売りにしてるmrubyなんか使われる訳がないんだよね
一方プロトタイピングでコストを気にしないならラズパイ的なLinuxボードでフルのRuby動かせばいいわけで、完全に論理的に破綻してる ああ、商業的にmrubyを組み込み市場にって事か
ホビー的なものやプログラム教材的なものも含めればそれなりに大きいし IoTで夢はひろがりんぐ
でも現実はJavaScriptとPythonに
シェアをゴリゴリ取られてる Ruby本体のパーサってツール使って書かれてるの?
それとも手作業?
ずいぶん前に何かツールつかって書かれてる、みたいな記事を見た記憶があるんだけど
あやふやで思い出せない >>419
いや組み込み用っていうかそういう組み込みじゃない
linux動くなら普通のruby使えばいいし あんなに嘘を書き込んでたネガキャン厨が出てこなくなった
何故だ? bison と言うツール(と言うことが聞きたい?) カーネル(?)オブジェクトと一緒にリンクしてローダからジャンプして起動される様な組み込み。それこそファイルシステムも無いようなものもターゲット。 >>425
この本に書かれていたような気がする。
https://www.ohmsha.co.jp/book/9784274050657/
確かツールでは上手くできなくて、独自のものを使っているだったような。 質問を普通に読むと、
パーサジェネレータに食わせるソースを人手で書いてるのかツールで出力してるのか、
聞いているんだと思うんだが
例の荒らしは日本語が不自由なの? >>435
元の質問ってこれだよね
>>>>425
>> Ruby本体のパーサってツール使って書かれてるの?
>> それとも手作業?
普通に読むと、パーサのコードがジェネレータで自動生成されているのか、
あるいは手書きでゴリゴリとパーサをC言語で書いているのか?という内容で、
>>429と>>432が適切なレスを返している(>>431は知ったかぶりのお馬鹿さん)
で、それに対して日本語が不自由と噛み付く>>435の日本語読解力に対して小一時間
ちなみに、Rubyの構文解析(パーズ)に関しては、
以下の文書、いわゆる RHG - Ruby Hacking Guide で詳しく解説されてる
・Rubyソースコード完全解説
http://i.loveruby.net/ja/rhg/book/ >>431の本は読んだことないけど、いくらRubyistが書いた本とはいえそんな低レベルな間違いをするとは思えないから実際の記述が気になるな
独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか
字句解析器は手書きでも比較的簡単に作れるので、パーサは自動生成で字句解析は手書きというのはよくあるよね 標準ライブラリのRipper クラスで、字句・構文解析ができる。
文法規則から、Bisonでパーサを作る
文法規則(parse.y) → Bison → パーサ(parse.c)
「Rubyのしくみ」に書いてある Rubyの文法は、改行が文のセパレータだったりなかったりするので、yaccでは書きにくそうな気も。 >>437
>独自に作ったと書かれてるのってパーサじゃなくて字句解析器のことだろうか
Rubyの字句解析器は(次で詳しく書くけど)手書きだから、「独自に作った」には該当しないね
で、>>431の書籍は手元にあるから「独自に作った」部分を推測すると、p68 第3章の
囲み記事にある「YARV命令を間近に見てみる」の内容ではないかと思われる
この記事によると、Rubyの仮想マシン YARV の命令セットはC言語で実装されているが、
実際には insns.def という命令セット記述向け外部DSL(ドメイン特化言語)で書かれており、
Rubyで書かれた独自ツールを用いてC言語ソースが自動生成される、とある
>字句解析器は手書きでも比較的簡単に作れるので、
>パーサは自動生成で字句解析は手書きというのはよくあるよね
うん、よくある
ただし、Rubyに関しては字句(トークン)の意味が文脈によって異なるので、
字句解析器を汎用的なツール(Flex, Lex)で自動生成するのは原理的に無理
だからRubyでは字句解析器をC言語で(=手書きで)ゴリゴリ書いてる /__.))ノヽ
.|ミ.l _ ._ i.)
(^'ミ/.´・ .〈・ リ
.しi r、_) | 字句解析器はわしが独自に作った
| `ニニ' /
ノ `ー―i´ parse.yって結構な量になるだろ
まじで手書きなの? flexはライセンスの問題があるのに対して、bisonは解決してるので、字句解析だけ手書きという場合もありそう。 def hoge(ary)
if ary.length > 10
略
end
def hoge(ary)
return ary.pop if ary.length > 10
略
end 途中で投稿しちゃったすまん
hoge1を書く時にhoge2みたく1行でぱぱっと書いてしまいたくなるんだけど、あまり良くない書き方かな?
return ary.popの値を別に使うわけじゃないから却って読みにくくなってるかな?
同様にbreak(ary.pop) if 〜 みたいなこともやりたくなる
def hoge1(ary)
if ary.length > 10
ary.pop
return
end
略
end
def hoge2(ary)
return ary.pop if ary.length > 10
略
end かといって (ary.pop; return) if 〜 とは書きたくないんだよね 却ってもなにも普通に読みづらい
やる事がpopとreturnの2つあるんだから素直に別々に書け >>448
サンキュー 横着しないで書くことにするわ 普通、ワンライナー書いて通ったら、
早めにリファクタリングするだろ
そんな後々まで残しておかないよ どうでもいいだろ
どうせRubyなんか後でメンテできないんだから、後でばっさり捨てても惜しくないくらいの簡易な実装を心掛けたほうがいい 一昔前の Web プログラミング言語のトレンドは動的型付け一辺倒でしたが、
その時代も終わり、静的な型宣言を再評価するフェーズが来ているように思います。
この背景には、おそらく Web プログラミングの規模が年々肥大化しており、
動的検査のコストが増してきたのが理由にあるでしょう。 まーたネガキャンしとんのか
ほんと懲りないな荒らしは ステマ荒らし VS ネガキャン荒らし
ネガキャンじゃないやつは
ステマ荒らしだよw だから大規模開発は、Haxe
ソースコードをそのまま送って、10言語に変換できる >>463
変換できたってライブラリを使った時点で破綻するんだから意味ない
jQueryを使ったコードをC++に変換したって動くわけない ス テ マ 荒 ら し
↑の粘着のセンスって最悪やな RubyスレでRubyのステマ荒らし?
こわいわー
いやマジでこわいわー 荒らし「ステマ荒らしVSネガキャン荒らし(ドヤッ)」
凄い語録が誕生したな 粘着さんは自演でネガキャンしないと発作が起きちゃうから、
みんな優しくしてあげて
けっして「ステマ荒らし(ドヤッ)さん」なんて呼んではだめですよ
話は変わるけど、
ブロック内のself省略したらself以外のオブジェクトが割り当てられるようなメソッドってどんくらいあるの? ■ このスレッドは過去ログ倉庫に格納されています