■ このスレッドは過去ログ倉庫に格納されています
Ruby 初心者スレッド Part 58
- 1 :デフォルトの名無しさん:2016/03/23(水) 21:16:44.36 ID:6HedlyzC.net
- プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 57
http://peace.2ch.net/test/read.cgi/tech/1426165733/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
- 2 :デフォルトの名無しさん:2016/03/24(木) 04:01:05.34 ID:FJvNCHp3.net
- たのしいRuby 第5版、2016
Effective Ruby、2015
メタプログラミング Ruby 第2版、2015
Rubyのしくみ、2014
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015
- 3 :デフォルトの名無しさん:2016/03/24(木) 19:11:14.30 ID:5a9zwPTf.net
- Windows版でunicodeのコマンドライン引数まだ使えないの?
- 4 :デフォルトの名無しさん:2016/03/25(金) 09:00:13.57 ID:amKPWQ2X.net
- Seleniumデザインパターン&ベストプラクティス、2015
OSSのブラウザ自動テストツール、Selenium WebDriver を使って、
Rubyでテストを書いた本
Effective Ruby、2015
バグが起きにくい、安全で効率的なコーディングと、
間違いやすいポイントを解説
Rubyのしくみ、2014
Rubyの実装系、Ruby1.9のRuby仮想マシンの本
- 5 :デフォルトの名無しさん:2016/03/27(日) 10:04:22.49 ID:zeXJFeRN.net
- ヤクザ
- 6 :デフォルトの名無しさん:2016/03/28(月) 02:19:58.22 ID:NlvcQEtD.net
- http://49.media.tumblr.com/7ae74678e1d2f5bea5faf824823d0176/tumblr_noklqpmdua1us3zemo1_540.gif
- 7 :デフォルトの名無しさん:2016/03/30(水) 08:52:01.47 ID:8NmKCzQm.net
- おわってるな
- 8 :デフォルトの名無しさん:2016/03/30(水) 10:23:11.00 ID:pubF0BCK.net
- aという文字列でp aとやると\\と表示されるのに
a.count"\\"をやると1とでます
文字列で\¥を\だけにするほうほうおしえくてださい
- 9 :デフォルトの名無しさん:2016/03/30(水) 11:09:52.71 ID:14q3t0GC.net
- 前スレ落ちてるからよく分からないんだけど、ここは質問とかしていいのか?
- 10 :デフォルトの名無しさん:2016/03/30(水) 12:05:39.08 ID:R5AIxfw4.net
- a = '\\'
p a #=> "\\"
puts a #=> \
puts a.count('\\') #=> 1
p はデバッグ用関数だから、内部に入っているものが見えているだけ。
ちゃんと、puts a すれば、\ と1文字になる
- 11 :デフォルトの名無しさん:2016/03/30(水) 12:19:47.60 ID:MbRjE7fG.net
- ハッシュオブジェクトのイテレーションについて教えてください。
よくある言語実装のように代入時のままの順序かどうかは保証されていないんでしょうか?
http://stackoverflow.com/questions/17355316/hash-ordering-preserved-between-iterations-if-not-modified
・Ruby1.9 からは保証されてる。信頼してよい。RubySpecのココ見たらいいがな (←リンク切れ) Jun 28 '13 at 0:29
って意見と
・Ruby 2.2.0 からは別に rubyspec に従ってるわけじゃないからな。(実装次第で保証されないって事?) Mar 20 '15 at 4:06
があります。現在はどうなってるんでしょうか?
- 12 :デフォルトの名無しさん:2016/03/30(水) 12:32:31.71 ID:MbRjE7fG.net
- pry (ver0.10.1 on Ruby 2.1.8) で
ri Hash してみたら
〜
Hashes enumerate their values in the order that the corresponding keys were
inserted.
〜
と出てきました。
これは今後も保証されると思っていいんでしょうか?
- 13 :デフォルトの名無しさん:2016/03/30(水) 12:55:41.31 ID:R5AIxfw4.net
- Javaでは、LinkedHashMap という、挿入された順に、キーを管理する、HashMap があるけど
Rubyは知らない
- 14 :デフォルトの名無しさん:2016/03/30(水) 13:29:51.33 ID:S0HkEiDs.net
- >>12
Arrayは順番を必ず保証する
なぜなら取り出す順番が保証されていることが配列の存在意義だから
Hashは順番を必ずしも保証しない
なぜなら取り出す順番は連想配列の存在意義じゃないから
それ以上の意味はない
現在の実装は「たまたま」順番が保証されているけどそれはオマケとか親切とかそういうレベルの話
p Time.nowで確実なのは現在時刻を表示することだけであって
表示される文字列を決め打ちして処理にかけてはいけないというのと似たようなものだ
将来ユーザーフレンドリーに日本語で表示されるかもしれない
- 15 :デフォルトの名無しさん:2016/03/30(水) 13:48:45.91 ID:mQiL8UBv.net
- このへんはしょっちゅう議論されてるけど、取り出す順番の固定化を必要としているならHashという名前のものは使わないのが「プログラミングの普通」なのよ
順番固定で勝手に出てくること自体は構わない
だけど、それを頼りになにか処理を記述するのは非常に奇妙で不快に映る
繰り返すけど、出てくる順番が揃ってるのはいい
それを利用するようなコードを見ると吐き気がする
HashArrayとかOrderdHashとかそういう名前のオブジェクトなら納得するけど、Hashという名前では歴史的名前的にダメ
- 16 :12:2016/03/30(水) 14:34:26.61 ID:MbRjE7fG.net
- ありがとうございます。
- 17 :デフォルトの名無しさん:2016/03/31(木) 00:11:32.35 ID:SXg61G2F.net
- 仕様じゃない動作に頼るなという話ならそう思うが、責務を限定しろという話ならそれはrubyには通用しない話だと思う
- 18 :デフォルトの名無しさん:2016/03/31(木) 01:39:56.18 ID:hZH1pyKx.net
- Rubyは手軽で愛用してるのですが、
GUIを用いたりexeにまとめて配布するものまでRubyで行おうとすると、結果的に別言語を習得するのよりコストかかるでしょうか?
試みたことある方いらっしゃいましたら意見くださると嬉しいです
- 19 :デフォルトの名無しさん:2016/03/31(木) 12:59:43.70 ID:yy0681Er.net
- 制作者は、gem だけを配布して、
それを使う人が勝手に、システムにインストールして使う
RoRのようなWebアプリならあるけど、
Rubyで作った、デスクトップGUIアプリってあるのか?
- 20 :デフォルトの名無しさん:2016/04/01(金) 07:05:17.08 ID:6aCBXilE.net
- JRuby+swingなどは試してみたのですが、Java知識が皆無なためかかなり詰まるんですよね
素直にC#とか学んだ方がいいのかもしれませんが、RGSSのようなものを知ってしまったので微妙に未練が……
- 21 :デフォルトの名無しさん:2016/04/02(土) 18:12:28.67 ID:CqWvTnZR.net
- ruby初心者なのですがsoap通信のプログラムを作っていて
エラーが出ていて調べたのですが原因がよくわかりません
wsdlは下記を使用しています
http://h-invitational.jp/hinv/hws/varysysdb/soap_search_rs_number.php?wsdl
そして下記のコマンドを実行しました
[root@localhost www]# wsdl2ruby --wsdl 'http://h-invitational.jp/hinv/hws/varysysdb/soap_search_rs_number.php?wsdl' --type client
[root@localhost www]# ruby search_rs_number_execServiceClient.rb
/usr/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:268:in `send_post': 404: Not Found (SOAP::HTTPStreamError)
from /usr/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/streamHandler.rb:172:in `send'
from /usr/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:179:in `route'
from /usr/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/proxy.rb:143:in `call'
from /usr/lib/ruby/gems/1.8/gems/soap4r-1.5.8/lib/soap/rpc/driver.rb:181:in `call'
from (eval):6:in `search_rs_number_exec'
from search_rs_number_execServiceClient.rb:27
- 22 :デフォルトの名無しさん:2016/04/02(土) 19:33:53.20 ID:cgCmjNww.net
- >>20
「スッキリわかる Java入門 第2版」2014 を読めば?
>>21
HTTP 404は、ホームページ(のデータ)が見つかりません
- 23 :デフォルトの名無しさん:2016/04/02(土) 21:10:59.86 ID:0eiGAsV4.net
- というかRuby 1.8 ってまだサポートしてんだっけ?
- 24 :デフォルトの名無しさん:2016/04/03(日) 02:37:49.45 ID:RpcNuWJW.net
- >>22
ありがとうございます
プログラム側の問題というよりはホームページ側の問題みたいですね
- 25 :デフォルトの名無しさん:2016/04/03(日) 09:43:35.27 ID:T0KKITG1.net
- >>24
ちがう
あなたにHTTPとHTML(やJavaScript(や一般的なサイト運用技術知識))の知識がないがために普通のブラウザの挙動をエミュレートできてない
必要なのはRubyの知識じゃなくってWebブラウザの挙動とHTTP通信とHTMLでのサイトの書かれ方の知識
- 26 :デフォルトの名無しさん:2016/04/03(日) 15:55:17.04 ID:RpcNuWJW.net
- >>25
すみません、指摘していただいたことがうまく理解できないのですが
サーバにリクエストを送って帰ってきたHTMLファイルをブラウザが解析して
表示がされるという程度の認識でした。
自分の想定していた挙動は
>>21の
>[root@localhost www]# wsdl2ruby --wsdl 'http://h-invitational.jp/hinv/hws/varysysdb/soap_search_rs_number.php?wsdl' --type client
を実行して作られたクライアントクラスの中を修正して
>[root@localhost www]# ruby search_rs_number_execServiceClient.rb
を実行すればXML形式で期待する結果が返ってくると思っていました。
- 27 :デフォルトの名無しさん:2016/04/03(日) 16:58:38.52 ID:OaDtSrzO.net
- from search_rs_number_execServiceClient.rb:27
その前後の変数の内容を、片っ端から見てみれば?
- 28 :デフォルトの名無しさん:2016/04/04(月) 07:02:52.26 ID:UUnGIXWs.net
- >1a77a8341bddc4b45418f9c30e7102b4
こういう0..fで構成されたハッシュ値を
>tp://i.imgur.com/nOBxnDb.jpg
>nOBxnDb
みたいな短縮URL風に短くするコード教えて下さい
- 29 :デフォルトの名無しさん:2016/04/04(月) 09:10:25.66 ID:jvwKdFAZ.net
- >>28
どこからわからんのかくらいは言って欲しい
16進数を(10進数に置き換えてから)26進数なり52進数なりに計算し直して文字を当てはめる
- 30 :デフォルトの名無しさん:2016/04/05(火) 13:10:42.86 ID:wRkvpogr.net
- gets(
- 31 :デフォルトの名無しさん:2016/04/05(火) 13:12:49.42 ID:wRkvpogr.net
- 標準入力から一度に改行を含めて文字列を得るにはどうやりますか?
- 32 :デフォルトの名無しさん:2016/04/05(火) 13:52:47.37 ID:Uvoa8jl9.net
- Rubyで真にprivateなインスタンス変数を作るにはどうしたらいいんでしょうか?
別に切羽詰まった話ではありません、ふと浮かんだ疑問です。
class SecretHeart
def initialize(feeling="")
@feeling = feeling
end
private
def feeling=(any) end
private
def feeling() nill end
end
john = SecretHeart.new("悲しい")
print john.feeling # → error
print john.instance_eval{@feeling} # → "悲しい"
print john.instance_eval{@feeling = "楽しいです!"}
print john.instance_eval{@feeling} # → "楽しいです!"
BasicObject#instance_eval を使えばなんでもアリじゃないですか?
private
def instance_eval() end
こんなoverrideをしても、きっとまだ裏道ありますよね。
- 33 :デフォルトの名無しさん:2016/04/05(火) 14:12:22.26 ID:F6iG++QK.net
- # 標準入力から、一気に終わりまで読む
ary = $stdin.readlines
# 1行ずつ処理する
ary.each_line do |line|
line.chomp!
end
- 34 :デフォルトの名無しさん:2016/04/05(火) 14:16:14.23 ID:Wtb6QTFr.net
- >>32
>Rubyで真にprivateなインスタンス変数を作るにはどうしたらいいんでしょうか?
Rubyでは絶対的なアクセス制御はできない
なぜなら「普通に」アクセスした時に拒まれさえすれば用は済むからだ
- 35 :デフォルトの名無しさん:2016/04/05(火) 14:20:10.18 ID:Uvoa8jl9.net
- >>34
了解。 そういう文化なんですね。
- 36 :デフォルトの名無しさん:2016/04/06(水) 00:23:46.52 ID:q1HrDxSz.net
- Win7でRubyを勉強しようと思うんですが、Cygwinでやるのがお手軽ですか?
- 37 :デフォルトの名無しさん:2016/04/06(水) 01:43:49.90 ID:SreJMpRz.net
- ImageMagickやらのLinux由来の拡張ライブラリを使うのでなければ、Ruby Installerでいいんじゃない。
Win10にしてUbuntu on Windows上でRuby動かすってのはいつからできるんだっけか。
- 38 :デフォルトの名無しさん:2016/04/06(水) 02:33:03.12 ID:kRFLofHq.net
- >>36
わざわざcygwin導入しなくてもコマンドプロンプトで十分
導入してるのならお好きに
- 39 :デフォルトの名無しさん:2016/04/06(水) 07:38:43.97 ID:BFsTf7eA.net
- paiza.IO, CodePad など、ブラウザを使って、オンラインでもプログラミングできる
環境構築もいらん
- 40 :デフォルトの名無しさん:2016/04/06(水) 11:05:30.04 ID:vURaTx4x.net
- >>39
そしてIDやパスワードを自分からお漏らしするまでがセットか
ttp://codepad.org/recent
初心者向け「だからこそ」ローカルで完結するべき
- 41 :デフォルトの名無しさん:2016/04/08(金) 21:35:25.29 ID:/jXs509G.net
- class Tesuto < ActiveRecord::Base
validates :password, format: { with: /\A([^@\s]+)\Z/ }
devise :database_authenticatable, :registerable,
:validatable
end
スキャッフォルドで何かアプリケーションを作りたいと思い、scaffoldを使ってdeviseをインストールしました。
そこで編集ページできちんとパスワードが打てるようにvalidateも設定して空白禁止処理を施そうとしましたが、ユーザー登録やユーザーログインで空白をデフォルトで禁止されていて、
編集ページではデフォルトで禁止されておらず、空白が許可されています。
validateでpassword指定して空白禁止すると編集ページで変更するためのパスワードが省略できず、確認用パスワード、現在のパスワードの3回連続で打たなければなりません。
validate、またはほかの場所にどのような処理を施せばよろしいでしょうか?
- 42 :デフォルトの名無しさん:2016/04/08(金) 23:24:07.46 ID:R25zKOdT.net
- WEBプログラミング板に、RoRのスレがあるので、そっちで聞いたら?
- 43 :デフォルトの名無しさん:2016/04/09(土) 00:40:43.27 ID:d9XDMAzz.net
- >>41
before_action とかで空白禁止のバリデーションを edit のときのみ適用すればよいのでは?
- 44 :デフォルトの名無しさん:2016/04/09(土) 23:00:32.93 ID:O9j9lH5Y.net
- >>18
>>19
GUIとEXEもわりと低コストでできるぞ
- 45 :デフォルトの名無しさん:2016/04/10(日) 05:59:09.98 ID:QHKhqpLv.net
- >>44
よければ詳しく
- 46 :デフォルトの名無しさん:2016/04/10(日) 07:24:02.68 ID:WTOWAaLY.net
- >>45
たとえばGUIはTk、EXEはOcraでできる
- 47 :デフォルトの名無しさん:2016/04/11(月) 00:47:25.00 ID:zoLHrFMR.net
- railsのインストールできないんだけどどうしたらいい?
http://i.imgur.com/LrHWsVu.png
- 48 :デフォルトの名無しさん:2016/04/11(月) 01:03:31.98 ID:WJsT15xh.net
- linuxに乗り換える
- 49 :デフォルトの名無しさん:2016/04/11(月) 01:10:55.06 ID:uBEcAuw5.net
- rubyのバージョン2.3に対応してないみたいだね
- 50 :デフォルトの名無しさん:2016/04/11(月) 02:21:36.55 ID:JpybrsSq.net
- RWBY は第4クルー始まるというのにね
- 51 :デフォルトの名無しさん:2016/04/11(月) 06:36:47.71 ID:zoLHrFMR.net
- >>47
http://www.rubylife.jp/railsinstall/rails/index1.htmlの手順に従ってやって
その次にhttp://rubyonrails.org/行ってみたけどrailsダウンロードできない
- 52 :デフォルトの名無しさん:2016/04/13(水) 16:29:53.43 ID:372sz71r.net
- 10ビット3つを、(10, 10, 10)とbitsetのように使っているとき、
真ん中の10ビットを、上書きするにはどうすればよい?
上書きする演算子が見つからない
- 53 :デフォルトの名無しさん:2016/04/13(水) 17:42:17.15 ID:oU5fSDxg.net
- 何をしているのかよくわからんが
bitset = bitset & 0b111111111100000000001111111111 | 0000000000(上書きしたい10ビット)0000000000
ではいかんのか
- 54 :52:2016/04/13(水) 18:12:34.54 ID:372sz71r.net
- ありがとう
元のビットの上書きしたい部分を、0&でマスクしてから、
ORで上書きすれば良かったのか
- 55 :デフォルトの名無しさん:2016/04/15(金) 21:02:46.68 ID:qyn/7G/H.net
- pryでShiftキーを押すと結構な確率で動きが一時的に固まるんだけどどうしたら良いのかな
例えば
puts "Hello, World!"
って左から順に打った場合、"、H、W、!、"のどれかを押した瞬間に固まってそのまま数十秒動かなくなる
その間はCtrl+cとかも無反応
Pry version 0.10.1 on Ruby 2.2.3
Windows 8.1
- 56 :デフォルトの名無しさん:2016/04/15(金) 21:43:29.46 ID:kJz9a6FQ.net
- ActiveRecordの関連付けってなにが嬉しいんですか?
- 57 :デフォルトの名無しさん:2016/04/15(金) 22:08:30.22 ID:dCoxeauz.net
- >>56
複雑あるいは面倒な処理を簡単かつ直感的なメソッドチェインで扱えるところが嬉しい
- 58 :デフォルトの名無しさん:2016/04/15(金) 23:38:46.31 ID:pdQdC9Xb.net
- >>52
xor だったら入力のマスクも簡単にできる
bitData ^= ((1 << bitOffset + bitLen) - (1 << bitOffset)) & (bitData ^ (setVal << bitOffset))
- 59 :デフォルトの名無しさん:2016/04/17(日) 00:33:18.57 ID:v9XO8+KJ.net
- Ruby始めようと思ってこのスレ来たが、中括弧じゃなくてendなのか
- 60 :デフォルトの名無しさん:2016/04/17(日) 00:55:07.10 ID:7GcoLz9W.net
- RubyはC++でもJavaでもCでもVBでもないので
予断持たずにきちんと体系的に学習することをお勧めします
なお「RubyはC++でもJavaでもCでもVBでもない」というのは煽りじゃなく本気のアドバイスです
- 61 :デフォルトの名無しさん:2016/04/17(日) 01:07:34.17 ID:BiZQs4Wa.net
- 何から何まで独特だよね
ここまで流行ったのが不思議なほど
- 62 :デフォルトの名無しさん:2016/04/17(日) 22:49:27.40 ID:DiLcHZEv.net
- Python, Rubyはすごい便利だから、Googleも、実装すべき
>>59
ブロックでは、do 〜 end は複数行で、{ } は1行のみの処理で、使うことが多い
- 63 :デフォルトの名無しさん:2016/04/18(月) 00:49:33.87 ID:zxdOCIHu.net
- 独特というかむしろ
いろんな言語を折衷してるから
書きやすいと思う
書きやすいから流行った
- 64 :デフォルトの名無しさん:2016/04/18(月) 23:52:27.01 ID:IbVy+CTe.net
- win32oleのieでgoogle検索するやり方はわかったんだけど、
一番最初の検索結果のページに飛ぶやり方がわからない。
検索後ie.document.links.item(0).clickとかやってみたけど全然ダメだった。
ソースを見てみても複雑なjavascriptでよくわからん。
- 65 :デフォルトの名無しさん:2016/04/19(火) 06:12:04.67 ID:Zv7m44nm.net
- 説明しよう! いま現在のクローラー製作に必要なものは
・相手のサーバに目的のHTMLをきちんと表示させられる程度のHTTPの知識
・目的のリンクなり画像なりテキストなりの位置を判断できる程度のHTMLの知識
・目的のリンクなり画像なりテキストなりの位置を表現できる程度のXpathの知識
・通常のWebブラウザではどういう動作をしているのかを分析できる程度のJavaScriptの知識
・通常のWebブラウザでのクリックでどういうことが起こっているかを説明できる程度のWebブラウザ挙動の知識
の5つだ! Rubyスクリプトを作るはずなのにRubyと利用ライブラリの知識という項目が軽視されてることに注目だ!
どういう対象をどういう操作して通常のWebブラウザでいうところのどういう動作にあたるのかを理解せず盲目的に
> 検索後ie.document.links.item(0).clickとかやってみたけど全然ダメだった
とかやってるようでは道程は遠いぞ!
っていうかWebクローラーは初心者的な用途イメージの割にはWeb利用の統合的な技術知識が要求される上に
Googleは超絶効率化のために超絶高度な遣り取りやってるから練習やサンプルには全く適してないんだ! ご愁傷様だったな! Yahoo使えYahoo!
- 66 :デフォルトの名無しさん:2016/04/19(火) 06:20:43.61 ID:fF4GXe73.net
- Rubyでクローラー作る本があるから読めば?
- 67 :デフォルトの名無しさん:2016/04/19(火) 15:19:46.53 ID:DoDYnfhi.net
- ie.open(ie.document.links.item(0).value)
- 68 :デフォルトの名無しさん:2016/04/19(火) 19:12:04.08 ID:kcmoRlAu.net
- >>67
`method_missing': unknown property or method: `value' (NoMethodError)
- 69 :デフォルトの名無しさん:2016/04/19(火) 21:14:24.24 ID:+csqt/Wa.net
- >>68
ドキュメント読もう
- 70 :デフォルトの名無しさん:2016/04/19(火) 21:50:54.87 ID:kcmoRlAu.net
- どこにドキュメントあるのかわからん。
ググれば見つかるもんなの?
- 71 :デフォルトの名無しさん:2016/04/19(火) 22:44:13.44 ID:+csqt/Wa.net
- win32oleってやつ?だよな?
浸かったことないが検索したら出たぞ
2.1.0だけど http://docs.ruby-lang.org/ja/2.1.0/library/win32ole.html
- 72 :デフォルトの名無しさん:2016/04/20(水) 06:55:31.98 ID:w5hbs5qX.net
- 下を読めばわかるけど、クローラーって実は、驚異的に難しいw
エラーになる可能性が無数にあるので、言語どうこうの話じゃない
Rubyで、anemoneの物足りない部分を補完するクローラーを自作した
ttp://qiita.com/tkosuga@github/items/7c1b7bf98a697de66b68
るびきちが、Rubyによるクローラーの本を出している
>>64
そもそも他人の作ったプログラムは、簡単に解析できない。
APIの使い方を、公開していなければ、まず使うのは無理
企業はアプリを解析するのに、普通、1人月百万円以上払う。
それくらい難しいってこと
- 73 :デフォルトの名無しさん:2016/04/20(水) 07:40:43.74 ID:IJSlkgxq.net
- 難しいというよりとにかく泥臭い
Rubyistの仕事としては最底辺の部類
- 74 :デフォルトの名無しさん:2016/04/20(水) 11:21:11.72 ID:TvagBB0u.net
- クロールされたサイトになんのメリットもないクローラー開発なんか
やっちゃだめだぞ。俺はやらされてたが。
- 75 :デフォルトの名無しさん:2016/04/20(水) 22:04:01.92 ID:+P5uzrzE.net
- 結局HTML読めないとクローラーって作れないのね。
まあ、ぼちぼち頑張るか。
- 76 :デフォルトの名無しさん:2016/04/21(木) 09:09:15.15 ID:636JdrjZ.net
- Linux やmacでzip作成したいのですが、Windowsファイル名のダメ文字を
置換するリネームプログラムってないですか?
Windowsで使えない文字は「< > : * ? " / \ |」。
Linuxで使えない文字は、「/」(他はNull)で
Macで使えない文字は、「 : /」。
ファイルやフォルダはfindで検索するとして、指定ディレクトリの
ファイルやフォルダを「< > * ? " \ |」半角文字を検索し
全て全角に置換したいです。ruby1.8.7希望。
- 77 :デフォルトの名無しさん:2016/04/21(木) 13:53:08.49 ID:IzmoSDze.net
- ruby unixコマンド 実行
とかで検索したら出てくるけどいくつかあるよ
find の結果の文字列を gsub で置換してやればいいんじゃね?
- 78 :デフォルトの名無しさん:2016/04/21(木) 16:32:18.89 ID:636JdrjZ.net
- >>77
どうもです。ファイル名に複数のダメ文字がある可能性があるので一つの記号にgsubするしかないですね。
- 79 :デフォルトの名無しさん:2016/04/21(木) 19:52:32.92 ID:iEWNQ8UB.net
- gsubはHashわたせば複数痴漢できるよ
ってそういう話じゃないか?
- 80 :デフォルトの名無しさん:2016/04/21(木) 20:36:07.43 ID:636JdrjZ.net
- >>79
【Ruby】gsubで複数文字を置換したかった話 | カイトズズキ
http://www.kaitosuzuki.com/posts/406909
str = 'abcdef'
hash = {'a'=>'A', 'b'=>'B', 'c'=>'C'}
puts str.gsub(/a|b|c/, hash)
こんな感じかな。雰囲気はつかめたのでよかった。(^_^;) 楽できそうです。
- 81 :デフォルトの名無しさん:2016/04/21(木) 20:57:51.29 ID:/vBm71ZP.net
- 場合によっちゃあtrでもいいかもね
p '12345'.tr('15', 'lS')
↓
"l234S"
- 82 :デフォルトの名無しさん:2016/04/22(金) 20:35:54.49 ID:2DzgCe5n.net
- gsub重ね掛けするのってそんな面倒か?
ループで回すだけだと思うんだが。
- 83 :デフォルトの名無しさん:2016/04/22(金) 21:25:13.47 ID:lAvb/AZz.net
- gsubでhash渡すやつ、なんか使いづらいな
正規表現をキー、一致した文字列を置換する文字列をバリューにとかなら便利なのに
- 84 :デフォルトの名無しさん:2016/04/22(金) 23:51:19.95 ID:++t+RWP3.net
- >>81
require "jcode"
で全角の tr ができるようになる
- 85 :デフォルトの名無しさん:2016/04/23(土) 10:34:50.94 ID:5AJaEQrL.net
- >>83
正規表現だと置換前の文字列が重複しかねなくない?
- 86 :デフォルトの名無しさん:2016/04/24(日) 14:22:44.47 ID:Uo+BTEtc.net
- Rubyってダイレクトドライブアクセスできんの?
存在するドライブやディスクに対して
f = File::open(
- 87 :デフォルトの名無しさん:2016/04/24(日) 14:29:36.53 ID:aqqgpD8T.net
- できる
- 88 :デフォルトの名無しさん:2016/04/24(日) 18:01:19.78 ID:+9N3vohH.net
- なんとなくJSONを文字列化してCipher使って暗号化→復号化ってやってて、
復号化した後に文字列になったJSONをJSONに戻す良い方法が分からなくて困ってるんだけど、なんか良い方法ない?
- 89 :デフォルトの名無しさん:2016/04/24(日) 18:41:24.15 ID:+9N3vohH.net
- 申し訳ない、自己解決しました・・・
お目汚し失礼しました
- 90 :デフォルトの名無しさん:2016/04/25(月) 23:22:01.75 ID:VbK9UkJ/.net
- #10から0を改行区切りで出力してください
for i in 10..0
print i
end
ではまちがっているんですか??
- 91 :デフォルトの名無しさん:2016/04/26(火) 00:09:41.02 ID:c1+pgvSl.net
- 私ならこうかくが
10.downto(0){|i| puts i}
- 92 :デフォルトの名無しさん:2016/04/26(火) 01:15:49.37 ID:du3QkmSG.net
- downto使わないでfor to_a reverse とかいうのを
使うらしいんですけど
- 93 :デフォルトの名無しさん:2016/04/26(火) 01:34:24.43 ID:XcjXnWra.net
- >>90
そんな書き方したことないから自信ないけど、範囲式は逆順指定できないんじゃないかな?
もしかしたら俺が勘違いしてるだけでできるかもしれないけど、普通しない
並びにfor文はあまり使われない
一応あるけど91のようにイテレータを使うのが一般的
詳しくはイテレータで調べてくれ
- 94 :デフォルトの名無しさん:2016/04/26(火) 01:39:20.39 ID:XcjXnWra.net
- >>92
更新してなかった
10.downto 0 → 10から1ずつ減らしてループする
0..10.to_a.reverse → 0から10の範囲オブジェクトを作って配列に変換
それからその配列を逆順に並び替えて、要素それぞれを対象にループ
後者は無駄に長いし、処理時間も増えるし、メモリも食うし、
特別な理由がなきゃわざわざそんなことする意味ない
- 95 :デフォルトの名無しさん:2016/04/26(火) 17:28:12.49 ID:6COxB88I.net
- 初心者の人は、わかりにくい for in 構文を一体どこから拾ってきてるんだろ?
一般的なコードに for in なんてないのに。不思議だ。
- 96 :デフォルトの名無しさん:2016/04/26(火) 17:42:42.60 ID:du3QkmSG.net
- 改行区切りで出力するばあいは
print iの後になんというコマンドを追加すればいいのですか?
>>90を訂正したヤツだと改行しない結果になるらしいんですけど
- 97 :デフォルトの名無しさん:2016/04/26(火) 17:52:41.48 ID:hodGhGMX.net
- puts i
print i.to_s + "\n"
print "%d\n" + i
- 98 :デフォルトの名無しさん:2016/04/26(火) 17:53:50.31 ID:hodGhGMX.net
- print "%d\n" % i
修正ミス
- 99 :デフォルトの名無しさん:2016/04/26(火) 18:35:38.41 ID:du3QkmSG.net
- #1から9の奇数を出力してください
for i in 1..9 #ここに範囲
puts i
end
でどう偶数抜いて表示すればいいんですか?
- 100 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/26(火) 18:38:58.99 ID:P4FlrKEb.net
- 2で割ったときの余りを使う。
for i in 1..9
puts i if i % 2 == 1
end
- 101 :デフォルトの名無しさん:2016/04/26(火) 18:44:56.52 ID:c1+pgvSl.net
- 宿題は自分でやりましょう
- 102 :デフォルトの名無しさん:2016/04/26(火) 19:55:33.70 ID:x2RHMR6g.net
- >>95
awk
- 103 :uy:2016/04/26(火) 20:29:48.28 ID:4KSOxSiL.net
- http://suumo.jp/ms/shinchiku/tokyo/sc_koto/nc_67712348/
こういうとこ住みたいんですけど
1日どのくらいRubyのソースコード書いてれば住めますか?
>>99
ha?
p (1..9).reject(&:even?)
- 104 :デフォルトの名無しさん:2016/04/26(火) 23:11:59.29 ID:HvJUwHuI.net
- >99
1.step(9,2){|x| puts x}
- 105 :デフォルトの名無しさん:2016/04/27(水) 05:43:58.05 ID:dtd6C8pN.net
- コードガールのruby STAGE17まで解いてしまったッ
- 106 :デフォルトの名無しさん:2016/04/27(水) 16:37:59.42 ID:wyNXRpNW.net
- こんなのあるのかw
序盤の標準出力ラッシュで飽きてやめたけど
- 107 :デフォルトの名無しさん:2016/04/28(木) 01:06:23.99 ID:QkuSJykk.net
- プログラミングってよりただのタイピング・ソフトじゃねえか
問題はくそなのに、初見だとたまに☆2つとかになってついイライラしてしまう
- 108 :デフォルトの名無しさん:2016/04/28(木) 02:05:42.82 ID:cNgqnPtu.net
- プログラマ脳を鍛える数学パズル
シンプルで高速なコードが書けるようになる70問、増井 敏克、2015
CodeIQに掲載された問題を、Rubyで解説
「ITエンジニアに読んでほしい!技術書・ビジネス書 大賞(ITエンジニア本大賞)」の受賞作
- 109 :デフォルトの名無しさん:2016/04/28(木) 11:42:25.74 ID:B+IQUyxU.net
- プログラミングや3Dモデリングデータ作成なしで3DマップのRPGを作れる
「Smile Game Builder」を発表。GDC 2016へ出展
http://www.4gamer.net/games/337/G033741/20160317004/
- 110 :デフォルトの名無しさん:2016/04/28(木) 13:22:26.24 ID:1hszbTkN.net
- スレチ
- 111 :デフォルトの名無しさん:2016/05/01(日) 08:49:23.40 ID:tKi6j9CT.net
- 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
e
- 112 :デフォルトの名無しさん:2016/05/01(日) 23:26:41.59 ID:GuNd9hsH.net
- rubyのスコープ気持ち悪いと思うんだけどなんかいい感じの解説ない?
例えばこれとか
def test
if true
result = 1
end
result
end
#=> 1
なんかめっちゃ違和感ある
- 113 :デフォルトの名無しさん:2016/05/02(月) 00:24:57.68 ID:703evd9b.net
- その例からだと何が気持ち悪いのかわからない
- 114 :デフォルトの名無しさん:2016/05/02(月) 00:29:59.79 ID:o2fcY4RJ.net
- ifの中で定義された変数がifの外で未定義にならないところです
- 115 :デフォルトの名無しさん:2016/05/02(月) 05:30:37.04 ID:zpJUdxcq.net
- defはメソッドだからRuby1.9ではという話をするのかと思ったら斜め上だった
そういや初心者スレだったなココ
というかifの前で変数定義しないと変数持ち出せない言語なんてそうそうないと思うのだが
>>114
最後がendかどうかで構造を判断するのやめれ
君は「endで括られている範囲なのに」と考えているはずだ
endは終了を示すただの記号でしかない
最後の文字ではなく def とか if とか do とか先っぽ見てスコープというか制御構造かどうかを判断しろ
- 116 :デフォルトの名無しさん:2016/05/02(月) 07:19:53.61 ID:fVfRKiIw.net
- >>115
前段どういう話か教えてくんろ
そのあたり疎いんだ
- 117 :デフォルトの名無しさん:2016/05/02(月) 07:28:06.01 ID:R0ulJHCe.net
- >>112
その挙動で良いと思うが
>>114
そっちの方が違和感ある
- 118 :デフォルトの名無しさん:2016/05/02(月) 08:11:00.54 ID:HJ2xVTJl.net
- do end や {} ならブロックローカルになるんだけど、ifの中身はブロックではないのでスコープは外と同じ
実際一貫性がなくて紛らわしいところだから、今設計しなおしたら全部ブロックになりそう
- 119 :デフォルトの名無しさん:2016/05/02(月) 09:56:51.18 ID:o2fcY4RJ.net
- >>115
うーん理由としてはあんま納得できないわ
俺も一貫性に欠けてると思う
ちなみに Ruby ではほぼ使われないけど for や while もスコープ作らないからその判別方法は良くない
- 120 :デフォルトの名無しさん:2016/05/02(月) 13:02:10.27 ID:s90URipo.net
- むしろブロックスコープがいらない
「ローカルスコープを作るのはdefのみ」でいいよ
外側の名前を上書きするバカはほっとけ
- 121 :デフォルトの名無しさん:2016/05/02(月) 13:22:44.05 ID:Nwnpiy9m.net
- ブロックスコープが要らないは飛びすぎじゃないか?
そういう意味でもやっぱりforやらwhileにスコープある方がしっくりくるわ
- 122 :デフォルトの名無しさん:2016/05/02(月) 15:50:36.97 ID:tHMT3Y4S.net
- 一貫性がないのは確かだが、無駄に宣言しなくていいようにあえてしてるってメーリスか何かで言ってたはず
- 123 :デフォルトの名無しさん:2016/05/02(月) 16:03:03.37 ID:75TgGWvQ.net
- >>122
まじか知らなかったわサンクス
- 124 :デフォルトの名無しさん:2016/05/02(月) 16:26:43.85 ID:R0ulJHCe.net
- ifで分けて変数を初期化するようなときに
宣言しておく必要があるとムダだからな
- 125 :デフォルトの名無しさん:2016/05/02(月) 20:35:25.61 ID:703evd9b.net
- a = case x
when foo then ...
when bar then ...
...
end
とか
a = if x then ... else ... end
とか書けるけどあまりにないしね
- 126 :デフォルトの名無しさん:2016/05/03(火) 00:23:18.99 ID:Hk0ecHR9.net
- 違うバージョンのRubyをインストールしたいのですが
調べたらuruというツールでRubyInstallerでインストールしたRubyを切り替えるようです
しかし現状ActiveScriptRuby1.8.5が入っていて、その1.8.5と新しいバージョンのRubyを使いたいのです
ActiveScriptRubyとuruで管理するRubyInstallerのRubyって共存できるんでしょうか
- 127 :デフォルトの名無しさん:2016/05/03(火) 00:24:59.57 ID:9WoSDP+1.net
- >>126
大人しくrbenvにしとけ
- 128 :uy ◆e6.oHu1j.o :2016/05/03(火) 03:24:55.90 ID:gzQ2BK1K.net
- 言語仕様にそこまでの強い一貫性なんていらないけどな
日本語の挨拶を例にしてみても
端から一貫性なんて持たせる気が無いように思える
「おはよう」「ございます」
「こんにちは」「NULL」
「こんばんわ」「NULL」
「おやすみ」「なさい」
しかも、「おはよう」「ございます」の対になるのって「こんばんわ」「NULL]なのか「おやすみ」「なさい」なのかどっちだよ?
しかし我々は何不自由なく使ってしまっている
- 129 :デフォルトの名無しさん:2016/05/03(火) 11:26:54.83 ID:wFmBMyJC.net
- ツクツクボウシの鳴き声を一番正確に表せた奴が優勝 [無断転載禁止]©2ch.net
1 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:01:56.231 ID:EVnE4ji20
ツクツクボーシッ!!!!ツクツクボーシッ!!!!ツククツ、ツククククククク……!!!
アッ ヴィーナス!!!! ヴィーナス!!!!ヴィヴィヴィヴィッ!!!!!
8 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:05:05.180 ID:rZ8gq0650
ツクツクホーシ!ツクツクホーシ!ッツクツク、ツクツクホーシ!
ッ!ツクツクヴィーヨー!ツクツクヴィーヨー!ツクツクツクツクアアアアア゙ア゙ア゙ア゙ア゙…天
12 :以下、無断転載禁止でVIPがお送りします:2016/04/28(木) 08:24:50.425 ID:SYCMGSQFa
ツクツクウィーヨーンwwwwwwツクツクウィーヨーンwwwwwwウィーヨーンwwwwwwウィーヨーンwwwwwwあああああああああああああああ あ!!!!!!!
- 130 :デフォルトの名無しさん:2016/05/03(火) 11:46:22.66 ID:1U/0N7SV.net
- >>112
変数宣言は、if文よりも前でするべき
そうしないと、ちょっと、if文を修正するだけで、バグが生じる
- 131 :デフォルトの名無しさん:2016/05/03(火) 12:42:53.56 ID:9WoSDP+1.net
- >>130
そういう問題じゃないでしょ
本質掴めてなさすぎ
- 132 :デフォルトの名無しさん:2016/05/03(火) 20:45:46.51 ID:gAzicoKM.net
- できればeval使わずに、クラス名を指定してそのクラスのインスタンスを生成したいんだけど何か良い手段無いですか?
class Hoge
end
class_name =
- 133 :デフォルトの名無しさん:2016/05/03(火) 20:47:32.30 ID:gAzicoKM.net
- ごめん、コード書こうとしたらダメっぽかった・・・
- 134 :デフォルトの名無しさん:2016/05/03(火) 20:52:05.06 ID:KyaiRmb1.net
- >>132
hoge_class = Module.const_get 'Hoge'
hoge_instance = hoge_class.new
- 135 :デフォルトの名無しさん:2016/05/03(火) 20:53:17.97 ID:obzBgI3N.net
- Foo = Class.new
bar = Foo.new
- 136 :デフォルトの名無しさん:2016/05/03(火) 20:54:33.61 ID:obzBgI3N.net
- すまそ >>135は勘違い
- 137 :デフォルトの名無しさん:2016/05/03(火) 21:01:46.16 ID:gAzicoKM.net
- >>134, >>135
即レスどうもありがとうございます、助かりました
- 138 :デフォルトの名無しさん:2016/05/04(水) 03:37:31.28 ID:/fPdRPly.net
- 文法的な話じゃないんですけど
Rubyでエディタのアウトライン表示の見出しになるようなサインみたいのないですか
例えばですけどこんな感じのもので習慣的に使われてるようなもの
#<h1>メインの処理</h1>
- 139 :デフォルトの名無しさん:2016/05/06(金) 16:40:28.33 ID:V+H0dCvP.net
- メールのハイパーリンクについて教えてください。(gmailです。)
httpから始まらない文字列がメール本文にあって、これをサファリなりクロームなりで開きたいのですがリンクになっていないので、コピペしないといけない状態です。
これをハイパーリンク扱いにしてブラウザに飛ばしたいのですがいい方法ないでしょうか?
ちなみにブラウザに渡るとスマホアプリが呼ばれる仕組みになっています。(引数で個別の画面が呼ばれる)
- 140 :デフォルトの名無しさん:2016/05/06(金) 16:53:28.81 ID:j3Cd+A95.net
- もっと簡単にできるかもしれないけど、webrick使ってローカル・プロキシ作れば?
- 141 :デフォルトの名無しさん:2016/05/06(金) 17:16:14.42 ID:GOfm3Be0.net
- >>139
PC版Chromeなら機能拡張で普通にできる
スマホ版と他ブラウザはしらん
- 142 :デフォルトの名無しさん:2016/05/06(金) 17:35:40.79 ID:V+H0dCvP.net
- >>140
すみません、ローカルプロキシ作った後のギミックが、ピンときません。もう少しヒントを。。
>>141
スマホから操作する前提なんです。
htmlメール形式にしたらいけるのかなぁとも思ってるんですがググってもよくわからん。タグが本文に入ってたら勝手にリンクにしてくれるんかなぁ。後でやってみます。
- 143 :デフォルトの名無しさん:2016/05/06(金) 20:16:12.86 ID:j3Cd+A95.net
- スマホのgmailって知らないけど該当するURLの頭にhttp(s)://って付けるようにすればいいんじゃないの
そもそもスマホでwebrickが動くかは知らないが
- 144 :デフォルトの名無しさん:2016/05/06(金) 20:34:26.84 ID:j3Cd+A95.net
- 連想すまん
SSL通信だったらプロキシじゃ無理かもしれないね
- 145 :デフォルトの名無しさん:2016/05/07(土) 01:25:53.16 ID:DyCM9yow.net
- 俺だけが分からないのかも知らないけどよくこんな質問にレス出来るな
rubyとGmailとハイパーリンクのどこに共通性あるのかイミフ
メーラーの設定とか機能の話じゃないのかこれは。
- 146 :デフォルトの名無しさん:2016/05/07(土) 02:19:53.44 ID:eXsPGCae.net
- 俺も分からん
Rubyでどこをどうしたいのか書いてないのでアドバイスしようがない
- 147 :139:2016/05/07(土) 04:09:28.68 ID:TTqm4Ng+.net
- 確かにrubyでどうこうできる話じゃなかったわ。
スマンカッタ。出直してくる。
- 148 :デフォルトの名無しさん:2016/05/07(土) 05:45:30.51 ID:FoUXFEM8.net
- すぐリンクに飛ぶには危ない
メールのリンクからウィルス仕込みサイトに飛ばされるのは感染定番コース
- 149 :デフォルトの名無しさん:2016/05/07(土) 05:52:34.89 ID:v072DMKU.net
- Rubyの話をするなら
Rubyでメーラー自作すれば
好きな挙動できるだろ
- 150 :デフォルトの名無しさん:2016/05/14(土) 19:09:00.68 ID:qUyPqMWH.net
- 以下のa.rb、b.rbのように、loggerをrequireしているa.rbをb.rbで読み込んだところ、
#a.rb
require 'logger'
#b.rb
require 'logger'
require 'a.rb'
a.rb,b.rbともに、Logger.info(msg) などで「msg」部分のログへの出力はされるのですが、
↓のような行ごとにログの頭についていた情報が出力されなくなってしまいました。
・Before
I, [2016-05-04T18:00:01.791856 #24646] INFO -- : msg
・After
msg
これは何故出力されなくなってしまったのでしょうか?
また、可能であればrequireの状態は変えずにBeforeのように戻したいのですが、どのようにすれば戻せるでしょうか?
- 151 :デフォルトの名無しさん:2016/05/14(土) 19:21:41.36 ID:qUyPqMWH.net
- >>150
すみません、完全に前提が間違っていました。
正確には、以下をrequireした時にloggerの出力するログが150のようになってしまうようです。
require 'active_support/core_ext'
このログ出力を元に戻す方法を知りたいという質問に変更させて下さい
- 152 :デフォルトの名無しさん:2016/05/14(土) 19:42:21.70 ID:/R7YTKmR.net
- >>151
active_support/core_ext/logger ってのが logger を上書きしてそうなので、active_support/core_ext/format の方のlogger のフォーマットを指定してあげれば任意の形式で出力できそう
- 153 :デフォルトの名無しさん:2016/05/14(土) 21:51:29.64 ID:qUyPqMWH.net
- >>152
http://rubyist.g.hatena.ne.jp/rochefort/20100310
を参考にフォーマット設定したら出力できるようになりました
ありがとうございました
- 154 :デフォルトの名無しさん:2016/05/15(日) 21:09:22.74 ID:QEJW4alD.net
- プログラミングから初心者なんですが、おまいらみたいにここで質問に回答できるようになるにはどのくらいしゅぎょうすればよいですか??
- 155 :デフォルトの名無しさん:2016/05/15(日) 21:19:47.57 ID:YqlS4XMa.net
- 5年毎日8時間
- 156 :デフォルトの名無しさん:2016/05/15(日) 21:44:53.64 ID:NJhXH/sG.net
- >>154
俺が見た範囲だと、適性ある奴は一ヶ月もすれば仕事できるレベルになったりもする
逆に駄目な奴は何年やっても使い物にならない
- 157 :デフォルトの名無しさん:2016/05/15(日) 21:56:39.89 ID:QEJW4alD.net
- その仕事できるてどんなレベルや。すごすぎる
俺は作りながら学ぶみたいな本写経してエラーになっても、自分でどうにかしてエラーを取り除いて実行できるくらいしか能がない@2か月目
- 158 :デフォルトの名無しさん:2016/05/16(月) 01:11:03.22 ID:RYpks96x.net
- >>154
質問に回答なんてボランティアで
自分の作りたいものを作れることが重要だと思う
期間は人によって違うので一概に言えないが
まずは小物でいいのでアプリを作れるまではひたすら修行
作れたら後は好きに作ってるとある程度は勝手に上手くなる
- 159 :デフォルトの名無しさん:2016/05/16(月) 12:46:48.74 ID:DkcwsRla.net
- ここのみなさんは
簡単な質問には群がりますが
難しい質問には答えられません
- 160 :デフォルトの名無しさん:2016/05/16(月) 14:14:17.34 ID:aQMyk4Ho.net
- コードガールの17章までおわったら
あの条件式だけ入れるみたいなの以外
どうプログラムの全体像みえるようにするために
forとかランダム式以上の知識いれていけば
いいの???
- 161 :デフォルトの名無しさん:2016/05/16(月) 14:31:01.74 ID:OrJq5QDg.net
- 株の雑誌東洋経済が言語の特集をやっていた
http://store.toyokeizai.net/magazine/toyo/20160516/
今すぐ始めるプログラミング
小学校にプログラミング教育を導入する
rubyだと年収600万円、本当かいな
- 162 :デフォルトの名無しさん:2016/05/16(月) 14:38:16.89 ID:rbeFnNS9.net
- rubyの勉強にコードガールは全くお勧めできない
- 163 :デフォルトの名無しさん:2016/05/16(月) 14:38:55.54 ID:DkcwsRla.net
- 著者が気になるな
- 164 :デフォルトの名無しさん:2016/05/16(月) 15:03:24.52 ID:IBGTyv6p.net
- 算数英語で落ちこぼれボロボロ出るのを放置して
その複合のプログラミングなんか出来るわけねーだろ
義務教育の留年制度さきにつくれや
- 165 :デフォルトの名無しさん:2016/05/16(月) 18:26:58.17 ID:lq1JqEcP.net
- 重いでボロボロ
- 166 :デフォルトの名無しさん:2016/05/16(月) 21:56:49.34 ID:NgImICvk.net
- たのしいるびーをとりあえず1週して、作りながら学ぶとかいう本終わらせたばかりの初心者なんですけど、
何か次にやったら良さそうなおすすめなことをおしえてください
- 167 :デフォルトの名無しさん:2016/05/16(月) 22:00:46.70 ID:tTjqYMnb.net
- 取り敢えず、第2期に進めばいいんじゃないかな。
- 168 :デフォルトの名無しさん:2016/05/16(月) 22:50:40.11 ID:RYpks96x.net
- >>166
自作コマンド作ってみるとか
たのしいRuby読んでたらできるでしょ
- 169 :デフォルトの名無しさん:2016/05/16(月) 23:18:09.63 ID:NgImICvk.net
- def harapekorinrin
- 170 :デフォルトの名無しさん:2016/05/17(火) 11:15:55.60 ID:NWTAtPGB.net
- 結局問題解決に必要なのは言語の知識じゃなくて
OSや実行環境の知識だからなー
- 171 :デフォルトの名無しさん:2016/05/17(火) 12:26:40.03 ID:DX0ymGPY.net
- 必要なのは設計のセンスだよ
言語やインフラの細かいことなんか他人やGoogleに聞けば済む話だけど、
設計だけは個人の経験や能力に強く依存する
- 172 :デフォルトの名無しさん:2016/05/17(火) 15:25:50.55 ID:aNTJjeU0.net
- プログラミングだけじゃなくて、パソコンやなんかからよく知らない人はどうすりゃええねん
- 173 :デフォルトの名無しさん:2016/05/17(火) 17:08:38.12 ID:9orynTFq.net
- >>172
勉強する?
- 174 :デフォルトの名無しさん:2016/05/17(火) 18:00:08.28 ID:CnuAkB4H.net
- 先ずは電源の入れ方からマスターだな
- 175 :デフォルトの名無しさん:2016/05/17(火) 18:55:21.66 ID:eRIY89eq.net
- 電源の入れ方は切り方とセットでなければマスターとは認めん
- 176 :デフォルトの名無しさん:2016/05/17(火) 19:24:53.34 ID:0ndBRKVS.net
- はいそこで押し続ける!
ひとつ、ふたつ、みっつ、よっつ、いつつ!
- 177 :デフォルトの名無しさん:2016/05/17(火) 23:42:54.72 ID:cKpkeDSB.net
- rubyってウェブアプリやウェブサービスのイメージが強いんだけど、それ以外ってどんなとこに使われてるの?
- 178 :デフォルトの名無しさん:2016/05/17(火) 23:54:52.00 ID:PFL7J48p.net
- 実用ではウェブがほとんどじゃね
- 179 :デフォルトの名無しさん:2016/05/18(水) 00:11:20.05 ID:ot/2Utg3.net
- vagrant や fluentd など普通のスクリプトとしてもよく使われてるよ
- 180 :デフォルトの名無しさん:2016/05/18(水) 00:47:52.39 ID:K/5XOq2K.net
- 個人的にいままでCやってて
最近ruby始めたばっかりなんですが
rubyの変数って一般的な言語における変数とは全然概念が違うんですね…
i = 5
i = i +1
ってやると
一つめの実行式で5というオブジェクトにiという付箋をつける
二つめの実行式でiの付箋を6というオブジェクトに貼り替えるって感じでいいんです?
なんか他の言語とは概念が逆な感じで驚いてます
- 181 :デフォルトの名無しさん:2016/05/18(水) 00:51:31.83 ID:ot/2Utg3.net
- >>180
え?
有名どころの言語でも大体一緒だけど…
- 182 :デフォルトの名無しさん:2016/05/18(水) 00:59:26.97 ID:K/5XOq2K.net
- >>181
あれ、そうなんですか…
C言語だと宣言するとメモリのスタック領域に変数型分の領域が確保されて
その中身の数値が入れ替わるっていう風に習ったので…
逆にCの方が特殊と思った方がいいんでしょうか…
- 183 :デフォルトの名無しさん:2016/05/18(水) 01:30:34.37 ID:BFM6WmVS.net
- >>182
考え方が違うだけで起こることは大体一緒。
代入は代入で変わらないけど、代入するものが必ずオブジェクトなだけ。
- 184 :デフォルトの名無しさん:2016/05/18(水) 04:34:37.35 ID:BFM6WmVS.net
- >>182
混乱の元は、数値、文字列がオブジェクトだってところに
あるんだと思うけど、そこは慣れたら逆にわかりやすい。
- 185 :デフォルトの名無しさん:2016/05/18(水) 11:13:44.00 ID:tltkMhqB.net
- rubyの良いところでもあり悪い部分でもある場所
- 186 :デフォルトの名無しさん:2016/05/18(水) 14:49:34.18 ID:yDy1hpmH.net
- 格納場所や値のコピーをプログラマに強く意識させるという意味では
Cが特殊
- 187 :デフォルトの名無しさん:2016/05/18(水) 16:55:42.20 ID:u7J2zmgl.net
- >182
rubyのintはobjectでありかつprimitiveでもある
- 188 :デフォルトの名無しさん:2016/05/18(水) 22:39:52.30 ID:fCMOVnrJ.net
- practical object-oriented design in ruby
この本は初心者にはむずかしいですか?
英語は大丈夫です
- 189 :デフォルトの名無しさん:2016/05/18(水) 23:33:07.26 ID:+FiiBQuR.net
- Ruby はもともと英国の開発者が作った言語だからな
英語で勉強したほうがいい
- 190 :デフォルトの名無しさん:2016/05/19(木) 01:35:45.58 ID:6QrHkYGV.net
- Java, JS などは、数値などのprimitive型(4, 8バイト)があって、
primitiveにメソッドを呼ぶと、オブジェクトに変換する。
Boxing, Unboxing
ただし、ループ内で大量に変換されると遅くなるため、この変換は避けた方がいい
一方、Rubyではすべてがオブジェクトだから、1つに付き、16バイト?を使うが、変換はしない。
ただ、数値などは直接ポインタに納めて、メモリを節約している
- 191 :デフォルトの名無しさん:2016/05/19(木) 01:38:12.77 ID:sIW2z0LA.net
- >>189
なんで初心者に嘘ついてんだ。
>>188
元々rubyは日本出身の言語で日本語の情報が充実してるから、
rubyに限っては日本語書籍の方が良い可能性もある。
その本は読んだ事無いから知らないけど
- 192 :デフォルトの名無しさん:2016/05/19(木) 07:32:25.18 ID:l7SG7Alg.net
- 【OS】 Mac OS X 10.8.5 (x86_64) ruby 1.8.7です。
Dir.glob("/Users/xxxxx/Desktop/**/*", "/Users/xxxxx/test/**/*") do |filename|
記述すると
test.rb:11:in `glob': can't convert String into Integer (TypeError)
でエラーになります。片方だけにするとエラーはないのですが、
Dir.globで複数ディレクトリの指定は出来ないのでしょうか?
- 193 :デフォルトの名無しさん:2016/05/19(木) 08:06:41.37 ID:JUfHMrn+.net
- なんで勝手に引数を増やせると思ったのか謎だけどこれ読めば?
http://docs.ruby-lang.org/ja/1.8.7/method/Dir/s/=5b=5d.html
- 194 :デフォルトの名無しさん:2016/05/19(木) 08:46:18.92 ID:JUfHMrn+.net
- 一応これで動くよ
Dir.glob("/Users/xxxxx/Desktop/**/*\0/Users/xxxxx/test/**/*")
Dir["/Users/xxxxx/Desktop/**/*", "/Users/xxxxx/test/**/*"]
- 195 :デフォルトの名無しさん:2016/05/19(木) 16:57:17.84 ID:l7SG7Alg.net
- >>193
>>194
ありがとう。ググった記述は1.9.xのコードだったということですね。
- 196 :デフォルトの名無しさん:2016/05/19(木) 17:09:52.29 ID:l7SG7Alg.net
- ちなみに1.8.7にはDirメソッドないみたいだし、[か(か不明。[が正しいのかもしれないが。
- 197 :デフォルトの名無しさん:2016/05/19(木) 17:20:38.74 ID:JUfHMrn+.net
- いや、(おそらく)どのバージョンでも>>192はエラーになるし
(おそらく)どのバージョンでも>>194は動くよ
あとDirはメドッソ名じゃなくてクラス名だよ
たぶんDir.[]のことを言いたいんだろうけど
- 198 :デフォルトの名無しさん:2016/05/19(木) 20:10:11.72 ID:uWcto14Q.net
- とりあえず 1.8.7 はもう化石だし、対応してないライブラリも多いし、さっさとバージョンアップしないとね
- 199 :デフォルトの名無しさん:2016/05/19(木) 20:15:57.16 ID:X6Uyl1SE.net
- >>180
> …… 感じでいいんです?
そんな感じでだいたい合っているよ
あと以下でも引数渡しにおける変数の概念が丁寧に解説されている
・Rubyist Magazine - 値渡しと参照渡しの違いを理解する
http://magazine.rubyist.net/?0032-CallByValueAndCallByReference
> なんか他の言語とは概念が逆な感じで驚いてます
たしかにC/Pascal/Fortran/Cobolといった手続き型言語における
変数の概念とは大きく違っているね
ただしRubyにおける変数の概念は、Lisp/MLといった(破壊的代入を許容する)
関数型言語における変数と類似している
というか、オブジェクト指向Lispを手続き型言語風の構文糖で包んだのが
Rubyの本質なんだと思う
・Lisp から Ruby への設計ステップ | プログラマーズ雑記帳
http://yohshiy.blog.fc2.com/blog-entry-250.html
- 200 :デフォルトの名無しさん:2016/05/19(木) 20:46:38.83 ID:MKa/yUEp.net
- エクセルをrubyでうごかそうとおもったら、VBAの知識は必要ですか?
- 201 :デフォルトの名無しさん:2016/05/19(木) 20:50:13.84 ID:0NGD4TAz.net
- VBAのサンプル見ながら書くんだから必要に決まってる
- 202 :デフォルトの名無しさん:2016/05/19(木) 22:33:03.86 ID:MKa/yUEp.net
- @エクセル.do("エクセル動けVBA”)
こんなかんじ?
- 203 :デフォルトの名無しさん:2016/05/19(木) 22:38:09.82 ID:8tkESgzV.net
- 違う
そうじゃない
- 204 :デフォルトの名無しさん:2016/05/20(金) 00:04:24.82 ID:o172VlqL.net
- 俺、おまえらみたいになれるようにがんばるよ
- 205 :デフォルトの名無しさん:2016/05/20(金) 01:15:23.68 ID:KIw+nUhS.net
- qiitaってクソみたいな記事増えて見る気失せたな
- 206 :デフォルトの名無しさん:2016/05/20(金) 03:14:06.44 ID:5Uv57k1E.net
- スレチだけど
- 207 :デフォルトの名無しさん:2016/05/21(土) 00:15:47.42 ID:TJV+wjVx.net
- >>192
Heroku の笹田耕一が、命令を中間コードに折りたたむ、
Ruby仮想マシン(RubyVM)を作ったのは、2004年のRuby 1.9 から
- 208 :デフォルトの名無しさん:2016/05/22(日) 17:09:47.75 ID:xX01J0kV.net
- プログラマ芸人クソむかつくな
勉強中だからとか若いからとかいうのを免罪符にして
わかったふりして嘘を垂れ流すクズ
傀儡っていう自覚あるのかな
- 209 :デフォルトの名無しさん:2016/05/22(日) 20:11:08.18 ID:gMsVcx92.net
- >>208
プログラム芸人って?
- 210 :デフォルトの名無しさん:2016/05/22(日) 21:54:03.17 ID:yMwTDWKP.net
- >>208
そういうタレントなんか、相手すんな、気にするな。
- 211 :デフォルトの名無しさん:2016/05/24(火) 22:57:15.19 ID:XEe/ObJR.net
- ウィンドウズ用のデスクトップのアプリケーションをつくりたいのですが、RubyでやるよりVBでやったほうが簡単でしょうか?
Ruby用のGUIはTKを一緒にインストールしました。
ウェブアプリケーション用の記事やレイルズ関連の話が多く、自分で使う用の簡易なデスクトップアプリはRubyで作成可能なのかよくわかりません。
選択やプルダウンをいくつか選ぶと、エクセル等に計算結果が自動出力されるものをつくりたいのです。
- 212 :デフォルトの名無しさん:2016/05/24(火) 23:02:11.55 ID:Zf7m21lM.net
- 出力先がExcelなのなら素直にVBやExcelマクロを使ったほうが素直
ただしなにかめっちゃテキスト処理するというならそこはRubyのほうがいいかも
- 213 :デフォルトの名無しさん:2016/05/24(火) 23:11:29.51 ID:XEe/ObJR.net
- あーやはりそうですか。rubyをしばらく勉強してみて思ったのですが、
そもそもデスクトップ上でのみ動くようなもの(特にGUI)を作るのには、初心者にはあまり優しくはないですよね
- 214 :デフォルトの名無しさん:2016/05/24(火) 23:14:10.63 ID:2NWdMlbv.net
- RubyでGUIは修羅の道だからな
- 215 :デフォルトの名無しさん:2016/05/24(火) 23:15:38.91 ID:XVnpS8Zn.net
- >>213
VBとかはWindowsに特化してる分だけ簡単になるんよ。
Linuxでも動かしたいとかの場合は逆にRuby/TKになるけどね
- 216 :デフォルトの名無しさん:2016/05/24(火) 23:28:05.99 ID:XEe/ObJR.net
- おとなしくVB勉強することにします。
全然アプリ作成がイメージできないから、結構買っちゃったRubyの本たちどうしよう。
- 217 :デフォルトの名無しさん:2016/05/24(火) 23:56:26.69 ID:ODiJmRGM.net
- 通販は知らんが放送開けてなくてレシートがあるなら返品できるかもしれないよ
- 218 :デフォルトの名無しさん:2016/05/25(水) 00:04:55.01 ID:0fASXL2x.net
- >>216
近場なら買取に行くのにな
- 219 :デフォルトの名無しさん:2016/05/25(水) 08:35:17.92 ID:bbq7lHBG.net
- >>216
てかJavaScriptにすれば?Electronとか流行ってていいんじゃね?
- 220 :デフォルトの名無しさん:2016/05/25(水) 12:32:03.88 ID:RqoGasre.net
- プルダウンリストとボタンぐらいだったらRuby/Tkが簡単だし十分でしょ
凝ったUIにしようとすると死ねるけど
- 221 :デフォルトの名無しさん:2016/05/25(水) 12:43:12.66 ID:ECOeuz5z.net
- win32oleを使ってもいいんじゃない?
解説も多いし
- 222 :デフォルトの名無しさん:2016/05/25(水) 14:51:30.25 ID:JMqhkYJX.net
- >>211
テンプレートをエクセルで作っておいて
Rubyなりで選択やプルダウンした結果をテンプレに挿入して
出力する造りにすると楽
- 223 :デフォルトの名無しさん:2016/05/25(水) 14:52:11.16 ID:JMqhkYJX.net
- >>214
それな
- 224 :デフォルトの名無しさん:2016/05/25(水) 17:30:55.16 ID:pZYZ14wu.net
- ruby はすべてが修羅の道だよ
- 225 :デフォルトの名無しさん:2016/05/25(水) 18:09:07.32 ID:wY/Wnuvz.net
- いやGUIはともかく
言語自体は簡単だろ
- 226 :デフォルトの名無しさん:2016/05/25(水) 18:13:47.52 ID:UjzgjwET.net
- Windowsなら修羅の道
こういう勘違いして時間を無駄にする被害者を増やさないためにも、
Ruby開発陣はもうWindows相手にする気無いんだからはっきりそうアナウンスするべき
- 227 :デフォルトの名無しさん:2016/05/25(水) 18:13:57.93 ID:JMqhkYJX.net
- windowsにも優しくしてください
- 228 :デフォルトの名無しさん:2016/05/25(水) 18:17:31.67 ID:JMqhkYJX.net
- >>226
明言しちゃったら予算税金ぶんどれなくなるからじゃね
- 229 :デフォルトの名無しさん:2016/05/25(水) 18:19:31.06 ID:CBm2j+F0.net
- かつてWindows上でのテキスト加工やVBA代わりに使ってる人も多かったけど、
今ではコミュニティが完全にRailsに乗っ取られちゃってもうダメだね
公式のVer.Upアナウンスで「Railsのパフォーマンスを改善しました」とか普通に言っててもう完全にRails専用スクリプト
- 230 :デフォルトの名無しさん:2016/05/25(水) 20:09:42.99 ID:o7owtJWO.net
- IronRubyがあるやん
つかったことないけど。
- 231 :デフォルトの名無しさん:2016/05/25(水) 21:15:35.26 ID:ijFGsv4R.net
- >>229
彼らの目は覚まさせなければならない
どんな犠牲を払ってもね
不快とかではなく害悪だ
- 232 :デフォルトの名無しさん:2016/05/26(木) 00:01:52.65 ID:HY9T5R8V.net
- IronRubyの最終更新見たら2011年で草生える
- 233 :デフォルトの名無しさん:2016/05/26(木) 00:03:07.06 ID:HY9T5R8V.net
- そういえばバイオインフォマティクスでruby扱うって言うのも結局はやらなかったのだろうか
結局perlな気がする
- 234 :デフォルトの名無しさん:2016/05/26(木) 01:24:50.33 ID:UjMbTLsx.net
- MSはWindows依存の言語ばかりで、すべてのOSで使える、汎用言語を持っていない
だから、VS Code, Bash on Windows でも、Python, Ruby のサポートが最優先
- 235 :デフォルトの名無しさん:2016/05/26(木) 01:39:34.33 ID:/SAceF4R.net
- VS Code、まだ日本語だと使いにくいんだよなー
- 236 :デフォルトの名無しさん:2016/05/26(木) 13:42:44.17 ID:PPtVZd97.net
- >>232
終わってんな
- 237 :デフォルトの名無しさん:2016/05/26(木) 13:43:38.01 ID:PPtVZd97.net
- >>233
放送大学のプログラミングの授業はRuby使っとった
- 238 :デフォルトの名無しさん:2016/05/26(木) 14:15:25.09 ID:looUebM7.net
- うちの大学の前期課程ではrubyが準必修だったわ
- 239 :デフォルトの名無しさん:2016/05/26(木) 15:54:40.68 ID:QgXVvdFH.net
- 窓OSなんか、Rubyのサポートから捨てちゃえばいい。
- 240 :デフォルトの名無しさん:2016/05/26(木) 16:09:51.98 ID:PPtVZd97.net
- 昔からサポートなんてしていない
自己責任
- 241 :デフォルトの名無しさん:2016/05/26(木) 20:43:44.33 ID:kf6+V6jX.net
- 大学でRuby準必修とかすごいな
こちとらC, Scheme, Javaだったぞ…
- 242 :デフォルトの名無しさん:2016/05/26(木) 21:04:26.33 ID:gEBgfilR.net
- Javaの授業と言いながら、mainメソッドの中に変数a,b,c,...を用意して全部そこで処理〜
みたいなのを東大出身者にやられてから10年程度しか経ってないと思うと感慨深い
- 243 :デフォルトの名無しさん:2016/05/27(金) 10:05:35.18 ID:M1a78pSK.net
- >>238
お前、東大の理系の学生だろ
- 244 :デフォルトの名無しさん:2016/05/27(金) 11:51:43.10 ID:+931Hxzr.net
- >>242
どこの學校?
- 245 :デフォルトの名無しさん:2016/05/27(金) 16:26:46.66 ID:HURQQ888.net
- プログラミングの考え方が対象年齢5歳の絵本で身につく「ルビィのぼうけん」レビュー
http://gigazine.net/news/20160524-hello-ruby-review/
プロジェクトの開始からわずか3時間で目標額の1万ドル(約100万円)に到達
- 246 :デフォルトの名無しさん:2016/05/27(金) 17:03:59.14 ID:a5zDK+Zd.net
- djangoわろす
- 247 :デフォルトの名無しさん:2016/05/27(金) 17:40:10.41 ID:yYwIsK/3.net
- >>244
某田舎の高専
- 248 :デフォルトの名無しさん:2016/05/28(土) 00:20:50.45 ID:PtZBoQp9.net
- 真偽・対偶・集合など論理的思考・論理演算は、中学生以上じゃないと理解できない
小学生はそろばんとか、1+1=2 とか、言語能力など、暗記型の単純なものしかできない
判断や思考は、できない
- 249 :デフォルトの名無しさん:2016/05/28(土) 00:53:58.83 ID:HvcbCyzV.net
- >>248
小学生舐めすぎ
- 250 :デフォルトの名無しさん:2016/05/28(土) 08:30:37.99 ID:87dv3xOx.net
- 小学生舐めたい
- 251 :デフォルトの名無しさん:2016/05/28(土) 11:28:04.15 ID:GLCLhEM2.net
- >>250
おまわりさんこっちです
- 252 :デフォルトの名無しさん:2016/05/28(土) 12:00:38.49 ID:YkPoIoOS.net
- >>248
親や環境の影響によると思う
- 253 :デフォルトの名無しさん:2016/05/28(土) 12:01:49.75 ID:YkPoIoOS.net
- 出来るやつは小学生でも出来る
出来ないやつは大人になっても出来ない
もちろん多くの人間はその中間でしかない
- 254 :デフォルトの名無しさん:2016/05/28(土) 23:14:33.76 ID:vZatrWbm.net
- プログラミング初心者です
rubyを始めようと思っているのですが、基礎から教えてくれるサイトなどを教えていただきたいです
- 255 :デフォルトの名無しさん:2016/05/29(日) 00:06:18.34 ID:VvL70MFq.net
- >>254
サイトは知らない
本ならテンプレ参照
- 256 :デフォルトの名無しさん:2016/05/29(日) 04:14:13.12 ID:RrRCCmyQ.net
- 本なら『たのしいRuby』が入門書の鉄板
- 257 :デフォルトの名無しさん:2016/05/29(日) 12:12:31.80 ID:9WWbP5OA.net
- プログラミング初学者向けの本なら「ルビィのぼうけん」(対象5歳以上)がおすすめ
- 258 :デフォルトの名無しさん:2016/05/29(日) 12:32:35.29 ID:fkiT89OT.net
- リンダって人どんだけプログラミングできんの?
芸人?
- 259 :デフォルトの名無しさん:2016/05/30(月) 01:22:02.02 ID:3DZnNVRd.net
- https://image.kusokora.jp/v1/b7daff98c2b748dfa6cb8240c8ac7c33/kusokora/Caz5uAHUsAAwKwp.jpg
- 260 :デフォルトの名無しさん:2016/05/30(月) 13:39:12.86 ID:JuVY621L.net
- Rubyって演算子もメソッドって聞いたんですけど
&.とか全然メソッドじゃないですか
うそじゃないですか
- 261 :デフォルトの名無しさん:2016/05/30(月) 15:50:13.85 ID:sT3Um2rG.net
- Fixnum#& はメソッドだろ
- 262 :デフォルトの名無しさん:2016/05/30(月) 16:45:26.45 ID:sT3Um2rG.net
- ちなみにメソッドじゃないものも確かにある
>再定義できない演算子(制御構造)
>演算子の組合せである自己代入演算子は再定義できません。
> = ?: .. ... not && and || or ::
http://docs.ruby-lang.org/ja/2.3.0/doc/spec=2foperator.html
- 263 :Ruby初心者:2016/05/30(月) 21:37:38.47 ID:FFEidQWc.net
- Rubyの超初心者です。
Rubyの勉強を始めようと思いhttp://rubyinstaller.org/からRubyのインストーラーを
ダウンロードしたのですが、rubyinstaller-2.2.4.exe など
KINGSOFT Internet Securityでマルウェア潜伏を検知しました。(tclpip85.dll)
これは誤検知なのでしょうか?
ご存じの方、よろしくお願いします。
- 264 :デフォルトの名無しさん:2016/05/30(月) 22:40:36.17 ID:IRxQFxCl.net
- >>263
KINGS○FT Internet Securityとかいう、
某特亞ソフトがマルウェアですぞい。
ということで、窓OSでRubyを使うのもやめなはれ。
マジレスすると、誤認識。
所詮、アレは特亞だから、さっさとアンインストールしはなれ。
- 265 :デフォルトの名無しさん:2016/05/30(月) 23:40:12.61 ID:CvrnMKOQ.net
- >>263
卵を残しているからuninstallしたあと、有料ソフトを入れて全スキャン
norton eset カスペルスキーなどを推奨
- 266 :デフォルトの名無しさん:2016/05/31(火) 20:06:20.39 ID:wtf3ir0Y.net
- ShiftJISとUTF8でかかれたテキストファイルをそれぞれ読み込んで
NEC特殊文字がないか検索したいんだけど、
str.encode('Windows-31J') =~ /[@-I]/
みたいな式を書いてもIncompatibleだと怒られます
どうすればいいのでしょうか?
- 267 :デフォルトの名無しさん:2016/05/31(火) 20:59:36.26 ID:7tSTm6mV.net
- なんでWindows-31J"でエンコードしてんの
- 268 :デフォルトの名無しさん:2016/06/01(水) 00:14:51.04 ID:91rys83L.net
- >>260
せっかくなので答えると
&は
def &(other)
end
で定義可能
.は演算子でなく区切り文字
- 269 :デフォルトの名無しさん:2016/06/01(水) 04:44:46.68 ID:bpjRczp9.net
- 円囲みの数字は、Windowsだけが使う、環境依存文字だね。CP932
- 270 :デフォルトの名無しさん:2016/06/01(水) 12:25:44.58 ID:dPnMKqYG.net
- &.って2.3のsafe navigation operatorの事を言ってるんじゃないの?
- 271 :デフォルトの名無しさん:2016/06/01(水) 12:30:21.40 ID:Fp4IytvV.net
- エスパーじゃないからわからないし
そもそもなぜ演算子すべてがメソッドじゃないと「嘘吐き」になるのかもわからない
- 272 :デフォルトの名無しさん:2016/06/02(木) 07:24:34.00 ID:lxZxN/+H.net
- Rubyのインストーラや構成ファイルがアンチウィルスソフトウェアでヒットするのは誤検知ではなく正常の範疇
プログラミングとはそういうもんだし安全側に倒した検知というのもそういうもんだ
キングソフトのアプリケーションの使用を勧めるものではないが
- 273 :デフォルトの名無しさん:2016/06/02(木) 12:24:43.10 ID:hpz40EtU.net
- >>271
分からないんだね
- 274 :デフォルトの名無しさん:2016/06/04(土) 01:10:14.44 ID:5FXvcCoj.net
- 【OS】 Mac OS X 10.8.5 (x86_64)
rbenvをインストールしたいんだけど、gitの基本を学ぶのに良い書籍かサイトを教えて下さい。
ruby 2.1.xか2.0.x系でgitのインストールが書かれている本でも可です。
- 275 :デフォルトの名無しさん:2016/06/04(土) 01:35:12.26 ID:3lsMjWzh.net
- git は、ネット回線がつながっていなくても、
ローカルPC内に、コピーしてあるファイルに、上書きできる
そして、ネット回線がつながった時に、サーバーにあるリポジトリに保存すればいい
このように、皆がローカルファイルに対して、上書きしているから、
リポジトリに保存する際、他者とのコンフリクトがよく起きるので、うまく調整すべし
- 276 :デフォルトの名無しさん:2016/06/04(土) 02:51:29.78 ID:n5pCla5O.net
- わあアスペって本当にいるんだ
- 277 :デフォルトの名無しさん:2016/06/04(土) 03:27:04.44 ID:C4qvAlJn.net
- なんかむちゃくちゃでワロタ
- 278 :デフォルトの名無しさん:2016/06/04(土) 04:04:36.35 ID:HeBl+5ND.net
- rubyで動作確認したバージョン以下では動かないようにするにはどのように書けばよいですか?
例えばpythonで書くなら下記のようなイメージです。
if sys.version_info < (3, 4):
sys.exit('version error')
- 279 :デフォルトの名無しさん:2016/06/04(土) 04:14:00.42 ID:5FXvcCoj.net
- 274です。git使ったことも無いし知識もありません。とりあえず、
rbenvをインストールするためにgit clone出来るところまででOKです。
rbenvでrubyのバージョン管理をする - Qiita
http://qiita.com/MasahiroSakoda/items/b66f92df80b375f7c786
git clone git@github.com:sstephenson/rbenv.git ~/.rbenv
The authenticity of host 'github.com (192.30.252.128)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.128' (RSA) to the list of known hosts.
Permission denied (publickey).
- 280 :デフォルトの名無しさん:2016/06/04(土) 05:59:42.06 ID:kjZDZHci.net
- なぜrbenvの事は調べられるのに
gitの事は調べられないのか
ついでに言っとくと、rbenvは良いとしてもgitはスレ違い
gitの事はgitのスレ行って聞いた方が良い
- 281 :デフォルトの名無しさん:2016/06/04(土) 07:34:17.81 ID:n5pCla5O.net
- なんだまだ詰まってたのか
rbenvの作者はgitを
「rbenvをいんすとーるするぷろぐらむ」
「rbenvをあっぷでーとするぷろぐらむ」
としか使ってない(少なくとも利用者に向けては)
現時点では全く難しいこと考えずに上記の2つのコマンドラインを呪文として使うといい
その探求心はあとあと君を助けるだろうし呪文じゃないものを呪文として積み残さないことにもつながるだろう
プログラミングにはオマジナイなんて存在しないのさ ※ローカルレガシー解明職業者以外向けの文言
んでとりあえず今はrbenvを入れることのほうを優先しろw
- 282 :デフォルトの名無しさん:2016/06/04(土) 11:28:20.81 ID:X9sTQ23f.net
- >>278
RUBY_VERSION か `ruby -v`でバージョン情報を取得すれば?
- 283 :278:2016/06/04(土) 18:00:02.31 ID:SsvSKySH.net
- >>282
できました!ありがとうございます。
perlからの移行なのですが、perlの use warnings; (一度も定義されていない関数を使用するとワーニングを出す)に相当するものはありますか?
- 284 :278:2016/06/04(土) 18:02:18.28 ID:SsvSKySH.net
- 変数を使用するときに毎回 hoge.nil? とするのは現実的ではないと思いますので、、
- 285 :デフォルトの名無しさん:2016/06/04(土) 18:09:56.30 ID:X9sTQ23f.net
- >>284
hoge rescue 例外処理
例外オブジェクトは$!で得られる
- 286 :デフォルトの名無しさん:2016/06/05(日) 04:51:30.39 ID:bEHxSIM9.net
- ruby -w
RUBYOPT環境変数 -w
$VERBOSEグローバル変数 true
これらのウォーニングは?
- 287 :284:2016/06/05(日) 13:26:35.11 ID:Nzi0oWQl.net
- >>285,286
ありがとうございます。
シェバンを使ってるので下記のようにしたところ、エラーになりました。
#!/usr/bin/env ruby -w
そこで、下記のようにしたところ、うまく動きました。
#!/usr/bin/env ruby
$VERBOSE=true # nil false true
この $VERBOSE 以外にもおすすめの設定などありますでしょうか?
$-W は $VERBOSE と同じようですが、下記2つを設定しても特に変化はなさそうでした。
$-v=true
$-w=true
- 288 :デフォルトの名無しさん:2016/06/05(日) 13:42:43.61 ID:sTpf+U42.net
- >>279
なんでマルチしようと思ったの?
- 289 :デフォルトの名無しさん:2016/06/05(日) 16:47:36.99 ID:V1+RWzEF.net
- class Foo
def <=>(other)
〜〜
end
end
というのを定義したとして、
<=>の左右を取り換えても同じ結果になるように
class Array
def <=>(other)
return 〜〜 if Foo === other
ここに<=>の古い定義による処理
end
end
みたいに書きたいんですが、可能でしょうか?
イメージとしてはsuperみたいな感じを思い浮かべています
- 290 :デフォルトの名無しさん:2016/06/05(日) 16:58:06.72 ID:yB2MQIFp.net
- >>289
> <=>の左右を取り換えても同じ結果になるように
その考え方自体がおかしい
あと>>288はテストケース書くことを覚えるといいぞ
- 291 :デフォルトの名無しさん:2016/06/05(日) 17:08:54.52 ID:V1+RWzEF.net
- >>290
左右取り換えても同じ結果っていうのは
Fooオブジェクトfoo <=> Arrayオフジェクトarray
が 1 なら
Arrayオブジェクトarray <=> Fooオフジェクトfoo
は -1 になる、っていう意味でした(0の時は不変)
すみません
テストケースというのも調べてみます!
- 292 :デフォルトの名無しさん:2016/06/05(日) 23:24:46.76 ID:bEHxSIM9.net
- >>287
$VERBOSEグローバル変数は、プログラム実行時に設定されるから、
コンパイル時には警告が見れないらしい
コンパイル時・実行時で、使いわけてくれ
>>289
9 <=> "9" → nil
Effective Ruby の項目13に書いてあるけど、
異なるクラス間では、<=> 宇宙船演算子は比較不能で、nil を返すのが無難
型変換か、ダックタイピングで考えた方が、無難
- 293 :デフォルトの名無しさん:2016/06/06(月) 10:29:45.98 ID:4LJvtaQK.net
- >>289
いくつか方法がある
http://d.hatena.ne.jp/rubikitch/touch/20080504/1209835550
- 294 :デフォルトの名無しさん:2016/06/06(月) 11:05:15.34 ID:4LJvtaQK.net
- >>289
リンク先よく見ずに貼っちゃったけど
そういう場合はprepend/superだな
Module FooExt
def <=>(other)
return 〜〜 if Foo === other
super
end
end
class Array
prepend FooExt
end
- 295 :デフォルトの名無しさん:2016/06/06(月) 11:47:47.85 ID:MfRp00K1.net
- 日付とユーザー名見てもらっても見当つくと思うけど、
Rubyではなんでもできるなにしても許されるなんて思い上がってた時代の遺物ではある
今は標準クラスの拡張をしなくて済むような方法をなんとか模索するのが普通
普通の言語になっちゃったって? まあねえ
- 296 :デフォルトの名無しさん:2016/06/06(月) 12:13:03.09 ID:G3lOY9F4.net
- >>295
Yahoo!知恵袋みたいな回答だな
- 297 :デフォルトの名無しさん:2016/06/06(月) 12:55:43.54 ID:uH2v6H5p.net
- >>292-294
どうもありがとうございます!
prependがちょうど想定していたようなものでした!
- 298 :デフォルトの名無しさん:2016/06/06(月) 13:06:00.10 ID:LOH+gXPe.net
- >>295
十年前はムダに意識高かったな
- 299 :デフォルトの名無しさん:2016/06/06(月) 15:33:00.64 ID:MfrgUwdV.net
- >>297
ちなみに多分関係ないと思うけど、
数値っぽいクラスを作るときはNumeric#+とかを再定義するんじゃなくてFoo#coerceを定義するんだぞ
http://docs.ruby-lang.org/ja/2.1.0/method/Numeric/i/coerce.html
- 300 :デフォルトの名無しさん:2016/06/06(月) 17:30:53.24 ID:uH2v6H5p.net
- >>299
coerceを知らずに、まさにやらかそうとしてました
重ねてありがとうございます!
- 301 :デフォルトの名無しさん:2016/06/09(木) 20:20:07.54 ID:biKmaAAl.net
- たのしい 5版の8章 クラスとモジュール まで読んでいます。
Net::HTTP クラスというのが出て来たのですが、ここで使われている::の記号はNetクラスのHTTPメソッドを呼び出しているとみて良いのでしょうか?
- 302 :デフォルトの名無しさん:2016/06/09(木) 20:28:02.35 ID:OsIQiMsD.net
- Foo::BAR Fooクラスの定数BAR
FOO$bar Fooクラスのbarメソッド
- 303 :デフォルトの名無しさん:2016/06/09(木) 20:28:44.66 ID:XKw/hvPS.net
- そのへんの記号の説明自体が本に書いてねーか
面倒なら階層区切りの記号だとでも思ってくれ
Windowsエクスプローラーの\
URLの/
- 304 :デフォルトの名無しさん:2016/06/09(木) 20:28:48.01 ID:OsIQiMsD.net
- タイポ
$じゃなくて#ね
- 305 :デフォルトの名無しさん:2016/06/09(木) 20:46:09.43 ID:biKmaAAl.net
- コラムに メソッドの表記法 として
あるクラスのインスタンスメソッド名は
マニュアルではクラス名#メソッド名
クラスメソッドの名前表記には
クラス名.メソッド名
クラス名::メソッド名
というのがだいぶ前のページにありまして、それに従って解釈すると
Net::HTTPはNetクラスのHTTPメソッド
って事になるのだけれど、irbでNetクラスが呼び出せないのでおかしいなと。
- 306 :デフォルトの名無しさん:2016/06/09(木) 20:51:52.35 ID:OsIQiMsD.net
- そのくらいググればすぐわかんだろ
http://docs.ruby-lang.org/ja/2.3.0/library/net=2fhttp.html
- 307 :デフォルトの名無しさん:2016/06/09(木) 21:50:59.90 ID:bVgVhSJZ.net
- それを調べてここで報告するのがお前の仕事だろ
- 308 :デフォルトの名無しさん:2016/06/09(木) 22:07:37.30 ID:c+D8jpow.net
- 職業:Web検索スペシャリスト
- 309 :デフォルトの名無しさん:2016/06/09(木) 22:35:18.52 ID:j0nSzaIT.net
- ×Web検索スペシャリスト
○自宅検索員
- 310 :デフォルトの名無しさん:2016/06/10(金) 00:58:53.85 ID:w12bLHXo.net
- >>301
>ここで使われている::の記号はNetクラスのHTTPメソッドを呼び出しているとみて良いのでしょうか?
いや、それは間違いだよ
正しくは「::の記号はNetモジュールのHTTPクラスを参照している」と読む
・Rubyでは、名前空間として階層的な(=入れ子になった)モジュール構造を定義できる
・Rubyでは、クラスClassはクラス Modouleを継承している(=サブクラスである)から、クラスも(モジュールと同様に)階層的なモジュール構造を定義できる
・記号::は、この階層的な名前のパスを区切るために用いられる(>>303)
たとえば Net::HTTP::Getは、モジュールNet内で定義されたクラスHTTPの
更にその中で定義されたクラスGetを指す
くわえて Net::HTTP::Get::METHODは、前記のクラスGet内で定義された
定数METHODを指す
http://www.h6.dion.ne.jp/~machan/tmdoc/example/net.book/html/tmdoc.def.Net.HTTP.Get.html
$ irb
>> require 'net/http'
=> true
>> Net::HTTP.new('127.0.0.1')
=> #<Net::HTTP 127.0.0.1:80 open=false>
>> Net::HTTP::Get::METHOD
=> "GET"
>>
- 311 :デフォルトの名無しさん:2016/06/10(金) 01:05:31.69 ID:w12bLHXo.net
- >>305
>それに従って解釈すると
>Net::HTTPはNetクラスのHTTPメソッド
>って事になるのだけれど、
Rubyでは:
・モジュール/クラス/定数は、英大文字で始まる
・メソッド/ローカル変数は、英子文字で始まる
という決まりがあるから、記号HTTPは
(メソッドではなくて)モジュールもしくは
そのサブクラスであるクラスを表すものと推測すべき
- 312 :デフォルトの名無しさん:2016/06/10(金) 03:03:40.39 ID:1r2/ZPeG.net
- >>302
これの2つめは初心者混乱するだろ
どうしても2つめを書きたいならFoo#barとFoo.barの違いと一緒に伝えるべき
- 313 :デフォルトの名無しさん:2016/06/10(金) 23:17:05.17 ID:bspATi8a.net
- ::ってフォルダ階層のパス区切り記号だったんだ。
昔のMacOSでは:がフォルダ階層のパス区切り記号に使われていたらしいから、開発者はAppleUserだった?
- 314 :デフォルトの名無しさん:2016/06/11(土) 06:13:16.75 ID:Z1WdmHmp.net
- >>313
C++由来
残念でした
- 315 :デフォルトの名無しさん:2016/06/11(土) 11:55:15.68 ID:peVuG0iD.net
- ちょまどたんはぁはぁ
https://pbs.twimg.com/media/Cko0bn9VAAANiKM.jpg
https://pbs.twimg.com/media/Cko0cHtUUAAvUQo.jpg
https://pbs.twimg.com/media/Cko0cbrUYAYeAnc.jpg
- 316 :デフォルトの名無しさん:2016/06/11(土) 19:18:48.19 ID:iSPIsEmM.net
- だれ?
- 317 :デフォルトの名無しさん:2016/06/11(土) 20:06:42.47 ID:tJYHO1Ae.net
- >>316
たぶんこいつ
https://chomado.com/
- 318 :デフォルトの名無しさん:2016/06/12(日) 02:29:41.59 ID:GVmUZEwV.net
- ちょまどのあの噂は本当なんだろうか
- 319 :デフォルトの名無しさん:2016/06/12(日) 11:23:16.13 ID:xN9NR8mn.net
- 今なら聴ける気がするので。
ちょまどの絵は好みじゃないけど、
CPUの創り方
の絵を描いた絵師さんを知りたい。
- 320 :デフォルトの名無しさん:2016/06/12(日) 14:16:10.54 ID:5Z+bF2WO.net
- スレチ
- 321 :デフォルトの名無しさん:2016/06/12(日) 16:09:48.75 ID:nE4rQ5a5.net
- >>320
http://livedoor.blogimg.jp/rogyweb314/imgs/3/b/3b3ad6de.png
- 322 :デフォルトの名無しさん:2016/06/12(日) 17:10:50.81 ID:cSvEa/ak.net
- マイナビに問い合わせたらええやろ。
ストーキングしたいので教えてくださいって。
- 323 :デフォルトの名無しさん:2016/06/12(日) 21:14:18.29 ID:4Gt33m04.net
- >>319
スレチだけど
本文イラスト 須田 都 って書いてた
- 324 :デフォルトの名無しさん:2016/06/13(月) 01:42:21.85 ID:BHwe7pwo.net
- gemのinstall時にdevkitでビルドする系のgemをインストールする際に
ビルドの進捗状況を報告させることってできます?
時間かかってるときに固まってるのか進んでるのかわからない・・・
- 325 :デフォルトの名無しさん:2016/06/13(月) 03:03:23.43 ID:I6MCNyjd.net
- --verboseはどうだろ
- 326 :デフォルトの名無しさん:2016/06/13(月) 15:11:26.91 ID:zgrawcOE.net
- >>323
スレチだけど
本文執筆者と絵師は同一人物ってことになるな
- 327 :デフォルトの名無しさん:2016/06/13(月) 18:07:35.31 ID:3kyYR2Ny.net
- >>326
スレチだけど
著者は渡波 郁 になってたよ
- 328 :デフォルトの名無しさん:2016/06/13(月) 18:18:33.22 ID:LOYYlPRQ.net
- 「スレチだけど」は免罪符にならねえよ
いい加減黙れ
- 329 :デフォルトの名無しさん:2016/06/13(月) 19:09:49.77 ID:Q+rjY21+.net
- >>327
スレチだけど、下の名前が同じだから、ペンネームかもね
- 330 :デフォルトの名無しさん:2016/06/13(月) 20:10:53.27 ID:EyvJcWZd.net
- 変わるんだ変わるんだ
出版毎に
行くぞ幽霊作家
ゴーストライター
- 331 :デフォルトの名無しさん:2016/06/14(火) 01:09:38.96 ID:6xiZrmBI.net
- 1変数の非線形関数f(x)がf(x)=0となるxを求めるシンプルでいい感じのライブラリありませんか?
Ruby/GSLだとちょっとオーバースペック過ぎて…
- 332 :デフォルトの名無しさん:2016/06/14(火) 10:21:33.16 ID:dYSnVaKQ.net
- Webアプリケーションではない、それほど小さくはないツールをrubyを使って書こうとしてます。
規模は、Model数でいうと20個くらいです。
Controller的なものもRubyで、Viewはありません。
で、データベースアクセスにActiveRecordを使ってみようと思ったんですが、establish_connection()に
250msくらいかかってしまいます(localのPostgreSQLに対して)。
これだと、Model用のテストで、データベース接続だけで250*20=5秒もかかってしまいます。
これを改善する方法はありますか?
・establish_connection()そのものを速くする方法
・test/unitを使ったテストでデータベース接続を共有する方法など
環境は、
ruby 2.3.1p112
activerecord (4.2.6)
CentOS release 6.8
- 333 :デフォルトの名無しさん:2016/06/14(火) 13:07:34.64 ID:Xw3W+KJl.net
- iruby
割とマジで
- 334 :デフォルトの名無しさん:2016/06/14(火) 13:58:36.80 ID:dYSnVaKQ.net
- >>333
情報サンクス。
irubyはハードルが高そうなので、とりあえずjrubyで試してみるかと思ったけど、jruby + pg + activerecordな
環境を作るのさえハードルが高そうです。
$ irb
irb(main):001:0> require 'pg'
=> true
irb(main):002:0>
となるのに、
$ ruby test.rb
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).
というエラーが。
$ ruby -v
jruby 9.1.2.0 (2.3.0) 2016-05-26 7357c8f Java HotSpot(TM) 64-Bit Server VM 25.45-b02 on 1.8.0_45-b14 +jit [linux-x86_64]
ちょっとあきらめモードです。
- 335 :デフォルトの名無しさん:2016/06/14(火) 14:05:30.93 ID:bPd6E78A.net
- >>332
これよくわからんのだけどデータベースはひとつじゃないの?
モデルはテーブルに当たると思うのだが
- 336 :デフォルトの名無しさん:2016/06/14(火) 14:24:28.45 ID:dYSnVaKQ.net
- >>335
モデルの数=models/*.rbのファイル数=test/*_test.rbのファイル数
となると思ってます。
*_test.rbを1プロセスでまとめて実行できれば、データベース接続も共有できそうな気がするんですが、
現状では*_test.rbそれぞれを別プロセスで実行し、それぞれデータベースに接続してます。
全体的にActiveRecordを使った方が楽になりそうではあるんですが、ノウハウが無いのと接続が
遅いということで、現状はPG::connect()して直接pgのメソッドを使ってコーディングを進めてます。
- 337 :デフォルトの名無しさん:2016/06/14(火) 22:17:59.99 ID:Kzbvzu4b.net
- >>332
DBMS(PostgreSQLサーバ)への接続にいくらかの時間を要するのは当たり前のこと
普通はDBMSにはアプリ起動時(あるいは初回のアクセス時)に接続してそれを維持する
また、すこし規模が大きくなれば(=「それほど小さくはない」規模になれば)、
コネクションプールといった技法も要求される
それから「250*20=5秒」という計算式について、この20という定数は何の値かな?
もしModel(=テーブル)の数ということであれば、根本的なところで勘違いしてるよ
DBMS上で複数のデータベースを定義して、そのデータベース単位にコネクションを確立する
だからデータベース内に存在する複数のテーブル(=Model)をアクセスするのに、
あらたにコネクションを張る(=データベースに接続する)必要は無い
- 338 :デフォルトの名無しさん:2016/06/15(水) 02:30:34.57 ID:Gm0oH8T8.net
- こんな女の子キャピキャピ漫画の需要層は薄いだろ
だいたいRuby やワイスの格好見てみろ
フリフリのミニスカとか戦闘する気あんのかと
- 339 :デフォルトの名無しさん:2016/06/15(水) 10:14:53.09 ID:0Hf+sg/L.net
- >>337
> DBMS(PostgreSQLサーバ)への接続にいくらかの時間を要するのは当たり前のこと
その「いくらか」のオーダーは、直接接続するのとactiverecordを使用するのとでは大きく異なります。
--
t = Time.now
PG::connect(:host => 'localhost', :user => '**', :password => '**', :dbname => '**')
puts Time.now - t
--
=> 0.003679357
> それから「250*20=5秒」という計算式について、この20という定数は何の値かな?
test-unitを使ったテストファイルの数です。
user_test.rbとか。それがModelの数分できるので20ファイルくらいできる予定です。
> だからデータベース内に存在する複数のテーブル(=Model)をアクセスするのに、
> あらたにコネクションを張る(=データベースに接続する)必要は無い
現状では、20ファイル(できる予定)のテストを1プロセスで実行できる方法が見つかっていないので、
それぞれ別プロセスで実行していて、そのためデータベースへの接続も20回必要になります。
- 340 :デフォルトの名無しさん:2016/06/16(木) 22:27:32.05 ID:DrR6OXvd.net
- Ruby2.3.0で
nil[0]=0
が例外にならないんだけど、なぜだろう?
Ruby2.2だと、ふつうに例外になるのに。
Ruby2.3.0でも、nil[0]なら例外になる。
なんかおかしい気が。
- 341 :デフォルトの名無しさん:2016/06/16(木) 22:46:45.58 ID:lq2RMnrw.net
- >>340
バグ報告しましょう
- 342 :デフォルトの名無しさん:2016/06/16(木) 23:21:17.48 ID:T2EM03jj.net
- 2.3.1でも例外になるね
- 343 :デフォルトの名無しさん:2016/06/16(木) 23:36:15.65 ID:G8mFGz+4.net
- nil[hoge] = hogehoge
とかしてもNameErrorにすらならないんだな
- 344 :デフォルトの名無しさん:2016/06/16(木) 23:54:18.82 ID:neKk6sZN.net
- おおこれすごいな
- 345 :340:2016/06/17(金) 10:43:12.89 ID:SNT89ii+.net
- >>342
お、たすかる。
2.3.1のWindows版バイナリはまだ配布されてないので。
やっぱりバグで、修正されたんやね。
- 346 :340:2016/06/17(金) 10:45:11.00 ID:SNT89ii+.net
- >>343
ぼっち演算の影響かねえ。
直接は歓迎会なさそうだけど。
- 347 :デフォルトの名無しさん:2016/06/17(金) 11:50:15.28 ID:wk6+tOOo.net
- 歓迎会がなんかツボったw
- 348 :デフォルトの名無しさん:2016/06/17(金) 12:57:18.13 ID:hG7B1m7h.net
- >>340
>nil[0]=0
1.8.7 だと無事エラーになった
- 349 :デフォルトの名無しさん:2016/06/17(金) 13:29:02.01 ID:WSjlHFjC.net
- ソースが仕様です(キリっ
- 350 :デフォルトの名無しさん:2016/06/17(金) 14:21:01.72 ID:SYFwm9MP.net
- 230のみで起こるバグなのか
231で修正されてるならあんまり気にしなくて良さそうだね
- 351 :uy ◆e6.oHu1j.o :2016/06/17(金) 16:33:46.05 ID:GkjZw5OC.net
- 質問です
YAMLで読み書きをしてるコードをしばらく動かしていたら
c:/ruby/lib/ruby/2.3.0/psych.rb:377:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1 (Psych::SyntaxError)
ロードエラーが出てきて、
ファイル開いてみると確かにデータのインデントが変な風に書き込まれていました(20回分くらいのデータは正常に書き込まれています
読み書きは
YAML.load_file( YAML_FILE )
と
YAML.dump( yaml , open( YAML_FILE , 'w') )
でやっています
間違ったデータを書き込んでる原因は模索中です
YAML.dumpで書き込んだデータが
YAML.load_fileで読めないケースってあるんですか?
書き込まれていたのはこんなデータです
http://echo.2ch.net/test/read.cgi/tech/1458735404/:
uy:
- '9999'
http://echo.2ch.net/test/read.cgi/tech/1458955459/:
uy:
- '9999'
- '2'
http://echo.2ch.net/test/read.cgi/tech/1462970810/:
uy:
- '9999'
- '9999' ← これが間違って書き込まれているデータ
- 352 :uy ◆e6.oHu1j.o :2016/06/17(金) 16:36:29.12 ID:GkjZw5OC.net
- >>351
インデントがおかしくなりました 修正
http://echo.2ch.net/test/read.cgi/tech/1458955459/:
uy:
- '9999'
- '2'
http://echo.2ch.net/test/read.cgi/tech/1462970810/:
uy:
- '9999'
- '9999'
- 353 :デフォルトの名無しさん:2016/06/17(金) 17:24:52.68 ID:WSjlHFjC.net
- データの方ではなく
再現するソースを貼りなさい
- 354 :デフォルトの名無しさん:2016/06/17(金) 17:34:13.83 ID:8Hiy7fy+.net
- >間違ったデータを書き込んでる
>YAML.dumpで書き込んだデータが
>YAML.load_fileで読めないケース
>← これが間違って書き込まれているデータ
自分で論理的に原因の切り分けも出来ないくせに原因特定するなんて馬鹿のすることです。
- 355 :uy ◆e6.oHu1j.o :2016/06/17(金) 18:48:19.99 ID:GkjZw5OC.net
- >>353
uy式会社uyの守秘義務があるので貼れません
>>354
もう少しわかりやすくお願いします
自分が知りたいのは
YAML.dump( yaml , open( YAML_FILE , 'w') )
↑ の時
変数:yaml にどのような値を入れて .yamlファイルを作成した場合に
この c:/ruby/lib/ruby/2.3.0/psych.rb:377:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1 (Psych::SyntaxError)
エラーが出現するかという事ですが
一般的な方法で再現する方法は存在しないという事で良いですか?
いま現在いくつかのエラーチェックを入れ再び同スクリプトを稼働し
原因特定のため全変数を.txtでdumpしながら走らせて3時間程になりますが
今のところエラーは出現していません
- 356 :デフォルトの名無しさん:2016/06/17(金) 19:13:18.67 ID:YpnIY8DD.net
- スラドにこんな記事あった
RubyがPythonのようなポジションを得られなかったのはなぜか
http://developers.srad.jp/story/16/06/17/0827240/
最近日本でもPython本急に増えた印象あるよね。
やばいのかなRuby。
- 357 :uy ◆e6.oHu1j.o :2016/06/17(金) 21:55:15.96 ID:GkjZw5OC.net
- >>355
ほぼ同じ別のスクリプトで再発し今度はさらに状態の悪いデータになっていたので原因は確定しました
どうバグを回避し表面化させないかというフェイズに移行します
ありがとうございました
本番環境はruby1.9.3なので古いバグを踏んだものと思う事にします
- 358 :デフォルトの名無しさん:2016/06/18(土) 15:29:35.92 ID:AGMP56Qn.net
- >>356
Pythonに負けた理由なら
1. 実行速度が遅かった
2. Windowsへの対応がひどかった
じゃね
他にもあるかも知れん
- 359 :デフォルトの名無しさん:2016/06/18(土) 15:37:16.15 ID:Au7MFafK.net
- 負けたというか世界的にはRubyってRailsの組み込みスクリプトという認識しかないわけで
そもそも勝負にすらなってない
- 360 :デフォルトの名無しさん:2016/06/18(土) 15:59:35.05 ID:RKqldoZs.net
- ある意味勝ち逃げだろ Pyrrha は。
ただ、あれで終わり。
みんなの記憶にしか残らない散った存在。
Ruby はまだこれから成長する。
この差は大きい。
- 361 :デフォルトの名無しさん:2016/06/18(土) 16:49:47.95 ID:SI6NucGb.net
- 勝ち負けとか心底どうでもよくね?
長けてる領域が違うだけの話
- 362 :デフォルトの名無しさん:2016/06/18(土) 19:27:38.85 ID:AGMP56Qn.net
- たしかに負けてるは言い過ぎだったかもしれない
こんなにたくさんレスが付くとは思わなかった
- 363 : ◆QZaw55cn4c :2016/06/18(土) 19:32:09.34 ID:KfEx8M6W.net
- ruby をはじめた
- 364 :デフォルトの名無しさん:2016/06/18(土) 20:10:04.10 ID:SI6NucGb.net
- >>362
なんかすまん
個人的にdisってるわけじゃないので気にしないでくれ
ちなみに俺はRubyの方が好き
- 365 :デフォルトの名無しさん:2016/06/18(土) 21:19:07.41 ID:bpHrap68.net
- >>362
Ruby に謝れ
- 366 :デフォルトの名無しさん:2016/06/18(土) 21:45:00.52 ID:QKdVDmdU.net
- Rubyは、Windows対応で負けている。
GUIに対応させるのは、面倒
一方、黒魔術(メタプログラミング・実装)系の良本が多い
メタプログラミング Ruby 第2版、2015
Effective Ruby、2015
Rubyのしくみ、2014
- 367 :デフォルトの名無しさん:2016/06/19(日) 12:37:38.12 ID:5KvSKdL/.net
- pythonにも黒魔術はあるが
黒魔術でもpythonの方が書きやすいな
- 368 :デフォルトの名無しさん:2016/06/19(日) 16:46:12.80 ID:rmVET6vi.net
- Win10 Anniversary Updateで少しはWin環境が良くなるのかな?
- 369 :デフォルトの名無しさん:2016/06/20(月) 01:21:45.09 ID:HoUv0dJ2.net
- >>365
http://img01.deviantart.net/c0e3/i/2013/346/1/5/rwby_genderbent_by_mechanicale-d6xq7tb.jpg
- 370 :デフォルトの名無しさん:2016/06/20(月) 09:01:35.78 ID:XE/E5M6R.net
- Ruby初学者です。既に5冊の本にチャレンジしましたがそのことごとくに挫折し、今新たに「Rubyの絵本」という本で
勉強しなおしています。以下のコードで理解できない場所があります。
n cats = [] = 1
cats[0] = "Kuro"
cats[1] = "Tama"
cats[2] = "Mike"
cats[3] = "Tara"
puts(cats[n])
cats[0] = "Shiro"
2〜4行目は配列catsに4つの要素を代入しているんだろうということはわかります。そして6行目は0番目の要素にShiro
を代入したのでKuroが消えている?のだろうということもわかる気がします。ところが、5行目のputs(cats[n])「は配列0〜3
までの要素をすべて表示する」と私は考えたのですが、本に「はcats[1]の値を表示」となっています。知りたいことは以下の2点です。
1.そもそもn cats = [] = 1とはどういう意味なのか、n cats = []は空配列を作るという意味ではないのか。なぜそのあとに=1と続くのか。
2..puts(cats[n])としか書いてないのになぜ、1番目が入るのか。
基本的なところから理解していなくて申し訳ありません。詳しい方のご教授をお願いします。
- 371 :デフォルトの名無しさん:2016/06/20(月) 09:12:09.51 ID:Kk80zM3k.net
- >n cats = [] = 1
SyntaxError: unexpected '=', expecting end-of-input
n cats = [] = 1
5冊読む前に1冊でも理解した方が良いよ
- 372 :デフォルトの名無しさん:2016/06/20(月) 09:24:31.93 ID:XE/E5M6R.net
- >>371
ありがとうございます。そうですよね、エラーが出るんです。おかしいな、間違って書いてないとおもうのですが。
あとはあなたのおっしゃる通りなのですが、プログラム自体が初めてでなるべく簡単そうな本を探して自学しています。
でおどの本も途中から猛烈に難しくなって「こりゃ駄目だ」と思ったら次の本という繰り返しで弱っています。
- 373 :デフォルトの名無しさん:2016/06/20(月) 09:25:44.54 ID:Kk80zM3k.net
- ちなみに
n cats = [] = 1
はまず [] = 1 ってのが実行されようとするからその時に構文エラーになる
n, cats = 1, []
の見間違いじゃない?
- 374 :デフォルトの名無しさん:2016/06/20(月) 09:40:16.81 ID:Kk80zM3k.net
- 誤植か見間違いから知らないけど
n cats = [] = 1 は結局は
n = 1
cats = []
としたかったんだろう
この前提の下なら370の言っていることは概ね正しい
そして n = 1 なので
puts(cats[n]) は
puts(cats[1]) ってことで1番目の要素が出力されることになる
- 375 :デフォルトの名無しさん:2016/06/20(月) 09:43:21.95 ID:XE/E5M6R.net
- >>373
おお、すごい。ありがとうございます。ちゃんとTamaが表示されました。うれしい。
今、改めて本を読みなおしてみたんですが、やっぱりn cats = [] = 1となっていました。
自分のようなど素人がこれをやられるとどうにもなりません。どこがわからないのかわからない
というのは情けない限りですが、おかげさまで納得して先に進むことができました。ありがとうございました。
- 376 :デフォルトの名無しさん:2016/06/20(月) 09:45:26.19 ID:XE/E5M6R.net
- >>374
おお、わかりやすい説明ありがとうございます。助かりました。
- 377 :デフォルトの名無しさん:2016/06/20(月) 09:51:56.08 ID:Tc3CU3LQ.net
- 出版社のサイトに正誤表あったよ
- 378 :デフォルトの名無しさん:2016/06/20(月) 10:29:34.75 ID:OWUJ8xtd.net
- そんなにRubyが合わないなら早めにPythonに乗り換えた方がいいな
せっかくこれから新しいのを覚えるというチャンスなのに10年後廃れている
言語を学ぶのはもったいない
- 379 :デフォルトの名無しさん:2016/06/20(月) 11:06:36.37 ID:XE/E5M6R.net
- >>377
そうですね、何で最初から出版社のホームページを見なかったんだろう…
>>378
いや、実はRubyが学びたいのではなくて人工無能を作成して将来、人工知能の勉強へとつなげられればと思って勉強しています。
そもそもなんでRubyなのかというと、10年ほど前に「恋するプログラムRubyでつくる人工無能」という本を購入しまして、
最初は「おお、面白い」と呼んでいたのですが、その内、配列?ハッシュ?インスタンス変数?とつぎつぎにわけのわからない
言葉がでてきました。これはもう本格的にRubyってやつを勉強しないとどうにも読めないなと考えて一念発起して、Rubyの解説書を
買いまくりました。ところがこれがさっぱり何を言ってるのかわからない…。なんせ、プログラムと言えば大学の時にちょろっとベーシックを
かじった程度でそのまま放置でしたから。
とりあえず、3冊買って読みましたが、「これは自分には無理だ」とあきらめ、数年が過ぎたのです。ところが幸か不幸か、今年は自由な時間が
取れまして(理由は深くは突っ込まないでください)、ふと本棚を見ると、ああこんなの買ったなあと思い出しました。よし、せっかくの機会だ。
なんとかがんばってRubyってやつをマスターしてやろうと今に至った次第です。とにかく、なんとしても「恋するプログラムRubyでつくる人工無能」
という本が理解できるようになりたいです!
長々とすみませんでした。
- 380 :デフォルトの名無しさん:2016/06/20(月) 12:33:22.39 ID:6a0VacLi.net
- 3行で
- 381 :デフォルトの名無しさん:2016/06/20(月) 15:04:19.05 ID:zSeivZg9.net
- >>366
> Rubyは、Windows対応で負けている。
> GUIに対応させるのは、面倒
気になったので試してみました
mswin版は1.8で少し調べてオワコンっぽい感じがしたので
動作確認したものはx86-mingw版のみで以下の組み合わせ
[2.3] fxruby gtk2 gtk3
[2.2] fxruby qtbindings-4.8.6.1 gtk2 gtk3
[2.1] fxruby qtbindings-4.8.6.1 gtk2-3.0.7 gtk3-3.0.7
[2.0] fxruby qtbindings-4.8.6.1 gtk2-3.0.7 gtk3-3.0.7
[1.9] fxruby qtbindings-4.8.3.0 gtk2-2.2.0 gtk3-2.2.0 wxruby-ruby19
[1.8] fxruby qtbindings-4.8.3.0 gtk2-1.2.1 wxruby
fxruby : まったく問題なし。
wx : 2系で使えないのが残念。
qt : QtSDKが300MB超とデカイのが気になるところ。
gtk : 依存パッケージのバージョン解決が甘いので
(gtk3自体はruby1.8に対応しているが依存パッケージがruby>=1.9を求めるので不可だったり
依存パッケージのバージョン上限が設定なされていない為
--ignore-dependencies, gem sp xxxなどしながら個別に入れる必要があった)
古いバージョンを使う時には少々手間がかるのがネック。
自分の場合は慣れたqtかgtkかの二択だけど
fxrubyが http://rubyinstaller.org/downloads/ にも明記されてるぐらいなので無難だと思う。
- 382 :デフォルトの名無しさん:2016/06/20(月) 16:37:55.79 ID:RVn5oxXA.net
- >>379
その本読んだけど
無脳本は目標として良いと思うよ
人工知能は最先端だから超難しいけど
人工無脳は基本が分かれば難しくない
マルコフ連鎖だけちょっと
何やってるか分かりにくいけど
ハッシュでしりとりみたいなこと
させる仕組みは単純で感心する
コードを読んで動作をイメージ
できるようになれば分かる
- 383 :デフォルトの名無しさん:2016/06/20(月) 16:41:50.02 ID:RVn5oxXA.net
- あとは本って出版された後は古くなる一方だから
GUIキットは本の(Visualu Ruby)にこだわらず
今の新しいライブラリ使った方が便利
- 384 :デフォルトの名無しさん:2016/06/20(月) 16:47:39.38 ID:78XmmaUt.net
- >>377
もしこれが本当なら
かなり恥ずかしい部類の
誤植だな
- 385 :デフォルトの名無しさん:2016/06/21(火) 12:37:52.56 ID:na89rYIQ.net
- 一行で短くまとめられる仕様もここまで極まったか…と一瞬戦慄したわ
- 386 :デフォルトの名無しさん:2016/06/21(火) 13:24:02.94 ID:LE9F52CG.net
- 編集者なにやってんだよ
首吊ってくるレベル
- 387 :デフォルトの名無しさん:2016/06/21(火) 17:03:07.87 ID:W3C4RKeO.net
- >>382
ありがとうございます。まあ、他の言語を試せばいいのでしょうけど、こうやってわからなかったら次の言語とやってると、同じことがあった時にまた引越しなきゃならなくなる
のでがんばってRubyをマスターすることにします。
さて、「Rubyの絵本」のループの中断まで勉強が進みましたが、以下のコードの違いがよくわかりません。どなたかご教授よろしくお願いします。#の部分は自分が理解しやすいように
かってにコメント文章をつけたものです。よろしく願します。
a = 0
while a < 5
if a == 2
a = 10
next
end
print(a, "")
a += 1
end
aの値がwhile文の条件に合致している間はループ。
(1回目ループ)aに0が入っているが、if文が成立しないのでnextの下へ行き、a0と表示されてaが1になり、2回目のループに入る。
(2回目ループ)aに1が入っているが、if文が成立しないのでnextの下へ行き、a1と表示されてaが2になり、3回目のループに入る。
(3回目ループ)aに2が入っているが、if文が成立するのでaの値が10になるが、nextが発動し今の処理はなかったものとされ、aの値は2のまま?
似たようなプログラムがredoでもあるのですが、そちらはまあなんとか理解できます。問題はnextのほうで、今一つ理解できません。a=2のままなら無限ループするんじゃないかと自分では思ったのですが、
実際の出力結果は
a0
a1
となっているので、何か勘違いをしているのだと思いますがそれがなんなのかわかりません。長文申し訳ありませんがよろしくお願いします。
- 388 :デフォルトの名無しさん:2016/06/21(火) 17:27:16.66 ID:rdnhr1yO.net
- a == 1 の時、
1 と出力してから a += 1 によって a == 2 になって2行目へ行く。
次のループでは a == 2 なので a == 10 になってまた2行目へ行く。
a < 5 は false なので while〜end は実行されずに終了する。
- 389 :デフォルトの名無しさん:2016/06/21(火) 17:28:05.78 ID:397g3bwN.net
- >>387
言語の引っ越しはしないで正解
C++、Javaとか他のメジャーな言語は
だいたいRubyより難しいよ
実行速度を速くしたいときとかに使う
コードの方は
nextについて「勘違いをしている」
nextの後whileの条件節で
偽になるから無限ループしない
- 390 :デフォルトの名無しさん:2016/06/21(火) 17:29:54.69 ID:LE9F52CG.net
- そもそもなんで a=10 を代入してるんだろ a=5 じゃだめなんすか?
- 391 :デフォルトの名無しさん:2016/06/21(火) 17:36:43.51 ID:397g3bwN.net
- >>390
5でもいいよ
>nextが発動し今の処理はなかったものとされ
これが勘違いね
- 392 :デフォルトの名無しさん:2016/06/21(火) 17:39:26.71 ID:rdnhr1yO.net
- まあそれを言い出したら print(a, "") とかも謎だよね
元は print(a, "\n") だったのかな
- 393 :デフォルトの名無しさん:2016/06/21(火) 18:01:59.82 ID:MNNlgPEV.net
- break を教えずに a=Hoge とか +=1 以外の方法で制御変数書き換える形で脱出って筋悪いよね
- 394 :デフォルトの名無しさん:2016/06/21(火) 18:09:39.05 ID:mjvOmEo6.net
- 普通にバグの元になるな
- 395 :デフォルトの名無しさん:2016/06/21(火) 18:10:26.89 ID:W3C4RKeO.net
- >>388
そっか、なるほど!条件文がfalseになってるからwhile文のendまですっ飛ばされるわけですね!
すっごくよくわかりました。ありがとうございます。「a=10がなかったことになる」のではなくて、
a=10のままwhile文の条件文を吟味するんですね。やっとわかりました。
それから今頃なんだと怒られるかもしれませんが、今一度本を読み返してみたら、nextとredoで
戻る場所が違ってたんですね。めんぼくない。redoだと条件文にジャンプしないからa=10のまま出力される
というわけですね。なんでもいいけど、難しいなあ。皆さんよくこんな複雑なものをマスターできましたね。
自分の頭が悪いのかな。まあ、とにかくがんばります!そのほかの皆さんの回答もありがとうございました。
- 396 :デフォルトの名無しさん:2016/06/21(火) 19:01:29.78 ID:VP/Q8JMz.net
- というかRubyでその手のループはtimesとかuptoとか使うべきだし、改行を伴う標準出力はputsを使うべきだと思う
元の本を知らんからアレだが…
あとRubyは簡単ではないと思う
それなりのことをサクッとやるのは簡単だけど
- 397 :デフォルトの名無しさん:2016/06/21(火) 19:08:43.11 ID:rdnhr1yO.net
- whileやforなんてなるほどあんまり使わないけど制御構造は一通り学んでおくべきなんじゃないのかな
まあ俺ならこう書くが
5.times{|i|
break if i == 2
puts i
}
- 398 :デフォルトの名無しさん:2016/06/21(火) 19:21:50.55 ID:gJMymMte.net
- 俺ならこう書く
5.times{|_|-~p(_)!=2||break}
- 399 :デフォルトの名無しさん:2016/06/21(火) 19:48:13.62 ID:mn7QpJSf.net
- 初心者向きじゃない書き方止めて!
わけワカメ
- 400 :デフォルトの名無しさん:2016/06/21(火) 20:30:33.33 ID:gJMymMte.net
- じゃあ
p *(0..5).first(2)
- 401 :デフォルトの名無しさん:2016/06/22(水) 06:25:24.35 ID:jdKVcriH.net
- module A
def a
p 'A'
end
end
module B
def b; a; end
def a
p 'B'
end
end
class X
include B
include A
end
p X.ancestors #=> [X, A, B, Object...]
p X.new.b
"A"
"A"
なぜ、2回もAが表示されたの? Bが表示されない
モジュールB内で、aを呼んだときは、静的スコープのB.a を読んでくれないな。
常に動的に、X, A, B の順に、aを探すのか
「メタプログラミング Ruby」1.6章より
- 402 :401:2016/06/22(水) 06:34:16.68 ID:jdKVcriH.net
- B.a を呼んだときは、メソッド探索順に影響されず、
静的スコープのB.a を呼ぶ方法はないの?
動的言語だから、無理なのか?
- 403 :デフォルトの名無しさん:2016/06/22(水) 08:04:36.14 ID:AQa0dSs+.net
- >>401
ひっかけ問題かな。p の数を数えてみろ。
- 404 :デフォルトの名無しさん:2016/06/22(水) 08:07:48.65 ID:AQa0dSs+.net
- >>402
C++ みたいなクラス名修飾は無いね。別の名前を付けるしか
- 405 :デフォルトの名無しさん:2016/06/22(水) 11:45:54.25 ID:yBOVYSwe.net
- >>399
その考え方は良くない
- 406 :デフォルトの名無しさん:2016/06/22(水) 12:30:51.61 ID:3DCeoZi+.net
- ruby向きじゃない書き方やめて!
わけワカメ
- 407 :デフォルトの名無しさん:2016/06/22(水) 17:17:51.11 ID:7oRMeHhG.net
- foo bar, baz do 0 end
foo bar, baz { 0 }
これって動作違うのな、テスト書いてたらエラー出てびっくりしたわ
- 408 :デフォルトの名無しさん:2016/06/22(水) 18:15:16.93 ID:gUQq/XMB.net
- トリッキーな書き方する方が
考え方として良くない
短くなっても保守しにくくなる
- 409 :401:2016/06/22(水) 20:22:56.84 ID:jdKVcriH.net
- >>401
自己レス
>p X.new.b
ここにも、p を付けていたから、2回表示された
>>407
意味わからん。カッコで囲んで
- 410 :デフォルトの名無しさん:2016/06/22(水) 20:31:09.09 ID:1DvIaRNW.net
- >>401
>モジュールB内で、aを呼んだときは、静的スコープのB.a を読んでくれないな。
>常に動的に、X, A, B の順に、aを探すのか
p X.ancestors #=> [X, A, B, Object...]
この結果を見れば明らかで、B, A の順序で include したのだから
Rubyの仕様に従った振る舞いな訳だけど、何が問題なの?
リファレンスを熟読してRubyの仕様を理解したほうがいいと思うよ
基礎ができていないのにメタプログラミングに手を出すのが挫折の原因だ
>>402
> 静的スコープのB.a を呼ぶ方法はないの?
ないよ
やるならクラス X の定義において、 include の順序を逆にする
> 動的言語だから、無理なのか?
いや、動的言語のRubyでも(モジュールやクラスを含む)定数の宣言は静的だよ
【ここで静的とは、一度宣言した値を後から(破壊的に)更新できないことを意味する】
できない理由は、上で書いたように「Ruby の仕様」だから
そのRubyの仕様に不満があるなら、多重継承とその問題点、および Mix-in が考案された
背景を勉強してから、Rubyコアへ次期Rubyの仕様変更案として提案すればいい
- 411 :デフォルトの名無しさん:2016/06/22(水) 21:15:23.44 ID:os3fAdit.net
- >>410
いやあるだろ
普通は使わんやり方だけど
- 412 :デフォルトの名無しさん:2016/06/22(水) 21:15:23.89 ID:V2EBWOtT.net
- >>407
http://rurema.clear-code.com/2.3.0/doc/spec=2fcall.html
リファレンスにがっつり書いてる
- 413 :デフォルトの名無しさん:2016/06/22(水) 21:16:15.70 ID:k2RSEIyn.net
- rubyを勉強してるだけで、文句を言ってるわけじゃないだろうに
- 414 :デフォルトの名無しさん:2016/06/22(水) 21:19:37.78 ID:49vA2Qsp.net
- リファレンスをおおかた読んで大体のやりたいことはできることになったんだけど
いまだにProcを使うツボがよくわからん
メソッドを新たに定義するのではダメなの?
- 415 :デフォルトの名無しさん:2016/06/22(水) 22:18:19.16 ID:Q+XBk88Y.net
- ProcはRubyの実装に内部的に使われているだけ
本来人間が直接触るもんじゃないので気にしなくていい
Rubyはメタプログラミングだのと抜かして中身を弄り回そうとする馬鹿が多いが、
あんなのはバッドノウハウであってカッコイイことでも何でもない
- 416 :デフォルトの名無しさん:2016/06/22(水) 22:40:21.74 ID:V2EBWOtT.net
- >>414
メソッドはクラスに属してなきゃいけないけど、それだとめんどくさいときとかに使える
- 417 :401:2016/06/22(水) 22:45:04.32 ID:jdKVcriH.net
- module B
def b; a; end
def a
p 'B'
end
end
静的言語では、bを呼んだら、同じモジュール内の、aを呼ぶのが自然。
モジュールBのbを呼んで、次にaを呼ぶ際、異なるモジュールのaを呼ぶとは普通、思わないだろw
モジュールBを書いている奴は、当然同じモジュール内の、b・aを想定している
これぐらい静的スコープから、解決してほしい
- 418 :デフォルトの名無しさん:2016/06/22(水) 22:51:38.89 ID:1DvIaRNW.net
- >>414
すぐに思いつくのは2つのケース
1. メソッドへ複数のブロックを渡したい時
2. メソッド定義するまでもない短い処理を定義したい時
1. は自明だと思うから省略するとして、2. の例:
複数のイベントに応じてアクションを実行したい時、
Actions = {
:eventA => Proc.new {|x| …. },
:eventB => Proc.new {|x| …. },
:
}
とHashでテーブル化しておいて、
Actions[event].call(x)
と呼び出す
アクションの中身が複雑で長いコードならば可読性のある命名で
メソッドを定義すべきだろうけど、たとえば変数に代入するだけとか
単にライブラリ関数を呼ぶだけなんてケースでメソッド定義は面倒だよね
そんな時にはProcを使って、明示的にブロックオブジェクト(=クロージャ)を生成する
(ただし、個人的には Proc.new ではなく lambda といふ記述を好むけどね)
- 419 :デフォルトの名無しさん:2016/06/22(水) 22:54:00.17 ID:jdKVcriH.net
- >>414-416
proc, lambda, block(&) は、コード・処理を持ち運んで、後で、call で実行できる。
blockは、yield で、callback してもらえる
以下は、即時実行っていうこと?
proc{〜}.call
lambda{〜}.call
- 420 :デフォルトの名無しさん:2016/06/22(水) 23:09:35.89 ID:1DvIaRNW.net
- >>417
だから静的言語とか静的スコープとかは関係ないよ
Mix-in とは無関係で、ただ単にモジュール関数を呼びたいのなら、
以下のように書きなさい
module B
module_function
def b
a
end
def a
p 'B'
end
end
詳しくは「Ruby モジュール関数」でググりなさい
>>410を繰り返すけど、リファレンスから module_function を見つけられない
君のレベルでメタプログラミングに手を出すのは子供じみた無茶な背伸びだよ
それよりもっと基本的なRubyのプログラミング技法を学んでからにしなさい
- 421 :デフォルトの名無しさん:2016/06/22(水) 23:40:23.32 ID:V2EBWOtT.net
- >>417
あくまで主役はXなんだから、Xから見て早く見つかる方を選ぶのは当然の話
静的言語の Scala にも Module と似たような trait があるが、結果は Ruby と変わらない
trait C {
def a: String
}
trait A extends C {
override def a = "a"
}
trait B extends C {
def b = a
override def a = "b"
}
class X extends A with B
class Y extends B with A
(new X).b // => "b"
(new Y).b // => "a"
- 422 :デフォルトの名無しさん:2016/06/22(水) 23:42:12.64 ID:gUQq/XMB.net
- >>414
コールバックに使う
- 423 :デフォルトの名無しさん:2016/06/23(木) 08:10:59.54 ID:LmS7lhU+.net
- >>414
無名関数の代わりに使う
- 424 :デフォルトの名無しさん:2016/06/23(木) 21:24:51.44 ID:O+dpjAUR.net
- ちょっと質問なんですが、1:1:多のデータベースあって最初の1のデータベースには管理者が登録するデータ、真ん中の1のデータベースにはユーザーが変更するデータ、最後は商品のデータベースという感じで設計してるんですがhas many throughで良いんでしょうか?
それともいっそ、管理者が登録するデータベースとユーザーが変更するデータベースを同じにしてアクセス権限で表示するビューを切り分けた方が良いでしょうか?
アドバイスよろしくお願いします。
- 425 :デフォルトの名無しさん:2016/06/23(木) 21:54:12.06 ID:M8iyAzNM.net
- has many through は多対多用
- 426 :デフォルトの名無しさん:2016/06/23(木) 23:16:42.11 ID:O+dpjAUR.net
- >>425
どの本読んでもそう書いてあったんですがこの場合で使えないということはないですよね?
- 427 :デフォルトの名無しさん:2016/06/24(金) 00:39:46.72 ID:gxtxbzXV.net
- rubyとかphpのwebフレームワークのインストールが難しすぎる、、、
いつも失敗する
- 428 :デフォルトの名無しさん:2016/06/24(金) 08:17:33.76 ID:xEd+6tYG.net
- 多:多って、A.key * B.key が、5 * 10 など、組み合わせが積になるもの
その際、中間にテーブルを作って、双方のキーを入れる
A, (A.key, B.key), B
- 429 :デフォルトの名無しさん:2016/06/24(金) 10:12:39.00 ID:F8DC/AtK.net
- >>414だけど解答どうもありがとうございました!
- 430 :デフォルトの名無しさん:2016/06/24(金) 10:13:24.55 ID:AFfOfH8V.net
- >>424
そもそも設計が良くない気がするんだが
- 431 :デフォルトの名無しさん:2016/06/24(金) 11:00:41.58 ID:Ua7mp3z0.net
- >>425
テーブル統一して1対多でいくことにしました。
- 432 :401:2016/06/25(土) 16:08:58.21 ID:4ZuZDTqb.net
- >>401
module A
class AA
def a; p 'A'; end
end; end
module B
class BB
def b; a; end
def a; p 'B'; end
end; end
class X
include B; include A
BB.new.b
end
p X.ancestors #=> [X, A, B, Object...]
X.new #=> "B"
a()をクラス内に入れたら、メソッド探索順では、Aモジュールの方が先なのに、
A::AA.a ではなく、B::BB.a が呼ばれるようになった
b()・a()が同じクラス内なら、呼び出し順は、モジュール探索順よりも、クラス内が優先される
- 433 :デフォルトの名無しさん:2016/06/25(土) 17:51:57.20 ID:4KOaD2nt.net
- A::AA B::BB は継承関係にないから当然だろ
A をインクルードしても A::AA のメソッド探しに行ったりしないよ
- 434 :uy ◆e6.oHu1j.o :2016/06/27(月) 12:10:54.85 ID:fzKuFJZp.net
- gmkzRubyのバグ報告です
hostsを以下のように書き替え( 広告NG用
http://notepad.cc/share/R0lOXB8Zzs
以下のようなプロキシーサーバーをたてて繋いでブラウジングをしていたところ
https://ideone.com/JN6VDO
rubyが実行を停止しました
http://i.imgur.com/4gxFT71.png
OS:Win10
ブラウザ:Firefox
administrator:uy
- 435 :uy ◆e6.oHu1j.o :2016/06/27(月) 12:12:44.87 ID:fzKuFJZp.net
- >>427
RailsInstaller使ったか?
gem install railsで普通にインストールが成功する可能性は、
ゼロではないけど、もはや幻想
- 436 :uy ◆e6.oHu1j.o :2016/06/30(木) 08:28:51.01 ID:U+B64GZ8.net
- >>401
https://ideone.com/9nWuIF
rubyのこの辺のスコープは不満ある
直される事はないだろうけど
rubyでしかやらないようなコードに分かりやすいルール作るのが難しいから
結局避けて書いていく
積極的には使われない癖に無駄に複雑な仕様だけが
class、module、include、extend 周りに拡がる
- 437 :uy ◆e6.oHu1j.o :2016/06/30(木) 08:40:38.48 ID:U+B64GZ8.net
- >>436
補足:
積極的には使われないといったのは、
この辺のklassを、上下に変数が行き来して、
それを理解しながら書くようなコードの事
include extend が飛び交う場所のメソッド・変数には闇が拡がる
この闇を扱う知識はしかも、他言語では使いようもないruby特有に複雑になってる闇の知識だから
わけのわからなくなってるスコープを制御しようとするのは無駄
- 438 :デフォルトの名無しさん:2016/06/30(木) 09:06:35.89 ID:bMW7pQBg.net
- そもそもモジュールのメソッド名は
衝突しないように付けること
- 439 :デフォルトの名無しさん:2016/06/30(木) 09:26:09.93 ID:+cgjiVYz.net
- refineとかusingって全く見かけないなあ
http://docs.ruby-lang.org/ja/2.3.0/method/main/s/using.html
- 440 :デフォルトの名無しさん:2016/06/30(木) 20:56:11.15 ID:prI+ToNW.net
- >439
んなこたーない。使っている人は使っている。
ただ、ruby2.1以上しか動かない縛りがあるので、古い環境でも動くようにみんな配慮してしまっているだけ。
個人的にはアスタリスク2回でハッシュを受け取る
def foo(a:, **b); p a, b end
foo({a: 1, b: 2})
結果
# 1
# {:b=>2}
とかの方がよっぽど見かけたことないです。
どなたか使ったことある方いらっしゃいますか?
- 441 :デフォルトの名無しさん:2016/06/30(木) 21:26:27.67 ID:0Yz92fUm.net
- refine多用はしないけど普通に使ってるわ
- 442 :uy ◆e6.oHu1j.o :2016/06/30(木) 21:49:00.82 ID:dzWCBRc4.net
- 個人的には&.を使える箇所が結構あるからこの実装は嬉しかった
- 443 :デフォルトの名無しさん:2016/07/01(金) 00:48:35.08 ID:ECjG4IrI.net
- ネットをみていたら知ったのですが
> new A().view();
これがなぜ通るのですか
class A
{
public void view()
{
Console.WriteLine(
- 444 :デフォルトの名無しさん:2016/07/01(金) 07:57:19.80 ID:CYpkmvov.net
- >>443
一つづつ整理して考えよう
・なぜそれが通らないと思ったのか?
・そのコードは何の言語で書かれたコードか?
・書き込む前にこのスレのタイトルを確認したか?
・確認したとすれば、ここで質問した理由は何か?
- 445 :デフォルトの名無しさん:2016/07/01(金) 08:50:38.16 ID:QEi+HiDI.net
- railsでjavascriptってどこにおいて呼び出せばいいんでしょうか?
生のjavascript使いたいのでcoffescriptとかいうのは使いたくないのですが
- 446 :デフォルトの名無しさん:2016/07/01(金) 09:48:09.75 ID:rLMTR09R.net
- >>445
普通に *.js.coffee を置くところに *.js を置けばいい
- 447 :デフォルトの名無しさん:2016/07/01(金) 19:03:05.10 ID:QEi+HiDI.net
- >>446
ありがとうございます。
試してみます。
- 448 :デフォルトの名無しさん:2016/07/02(土) 15:30:39.35 ID:rfELLhTB.net
- irbで「def !;end」ってすると
irb(main):1:0* irb(main):2:0* irb(main):3:0* irb(main):4:0* irb(main):5:0* irb(main):6:0*
ってのが延々と出力されるんだけど何が起きてるんだろう?
- 449 :デフォルトの名無しさん:2016/07/02(土) 16:12:53.91 ID:0c7wAYOM.net
- 以前、人工無能についてお聞きしたものです。以下のプログラムが文字化けしているので、
return "#{input}?A?A?E?E?H"
上記の部分を
return "#{input}って何?"
に書き直すとEncording::CompatibilityErrorが出てしまいます。ユーザーの入力場面でローマ字のままで
入力した場合は問題ないのですが、漢字やひらがなが入っていると、エンコードのエラーが出てしまいます。
いろいろと調べてみたのですが、うまい方法が見つからなくて困っています。どなたかご教授いただけないでしょうか?
なお、文字化けしたままの状態であれば、漢字・平仮名入力でもエラーは出ません。よろしくお願いします。
- 450 :デフォルトの名無しさん:2016/07/02(土) 16:17:12.16 ID:rfELLhTB.net
- 入力とソースのエンコードは何?
- 451 :デフォルトの名無しさん:2016/07/02(土) 16:25:16.33 ID:0c7wAYOM.net
- >>450
すみません、質問の意味が理解できません。ですが、プログラムの先頭には#! ruby -Ksとあります。
- 452 :デフォルトの名無しさん:2016/07/02(土) 16:27:47.01 ID:PNWyJIIt.net
- ruby -Kuso
- 453 :デフォルトの名無しさん:2016/07/02(土) 16:38:44.44 ID:+zIpsemS.net
- >>451
inputに入る文字列とファイルのエンコードはなに?ってことだと思います
- 454 :デフォルトの名無しさん:2016/07/02(土) 16:44:01.84 ID:0c7wAYOM.net
- >>453
すみません、それもわかりません。面目ない・・・
- 455 :デフォルトの名無しさん:2016/07/02(土) 16:44:17.44 ID:rfELLhTB.net
- >>451
-KsってことはエンコーディングとしてShiftJISを指定しているわけだけど
ソースファイルはちゃんとShiftJISで保存できてる?
更にinputにShiftJIS以外の文字列が来てるんじゃない?
例えばWindowsだったらコマンドプロンプトで入力するとShiftJISじゃなくてWindows31Jだからね
- 456 :デフォルトの名無しさん:2016/07/02(土) 16:52:56.82 ID:0c7wAYOM.net
- >>455
ご指摘にあるようにShiftJIS、Windows32Jなどググってみたのですが、どれも書いてあることが理解できませんでした。
もうちょっと基本的な用語を調べなおして、改めて質問させていただきます。ありがとうございました。
- 457 :デフォルトの名無しさん:2016/07/02(土) 16:58:35.24 ID:SUhI6wBF.net
- >>456
UnicodeとかUTF8とかの単語の意味を調べてからまたおいで
- 458 :デフォルトの名無しさん:2016/07/02(土) 16:58:41.18 ID:UusWQPpk.net
- 窓OSなんか、世の中から無くなったほうがいい。
Ruby の実行環境としても、窓OSは向いていない。
- 459 :デフォルトの名無しさん:2016/07/02(土) 17:01:53.20 ID:rfELLhTB.net
- >>456
input を input.encode(Encoding::Shift_JIS) に書き換えればうまくいくかも
windowsで日本語を扱うのって面倒だよね
- 460 :デフォルトの名無しさん:2016/07/02(土) 17:36:48.49 ID:NHPFDAI+.net
- OS関係なく、初心者にrubyの文字コードは難しいだろう
- 461 :デフォルトの名無しさん:2016/07/02(土) 19:59:27.04 ID:26rC20dw.net
- 文字コードでつまずくと
どの言語でも初心者には難しい
Rubyはマシな方だと思う
- 462 :uy ◆e6.oHu1j.o :2016/07/02(土) 20:11:17.24 ID:m6W0ip76.net
- HRESULT error code:0x80010108
- 463 :uy ◆e6.oHu1j.o :2016/07/02(土) 20:14:26.31 ID:m6W0ip76.net
- >>448
ruby -v
irb -v
- 464 :デフォルトの名無しさん:2016/07/02(土) 22:24:30.36 ID:0c7wAYOM.net
- >>459
アドバイスありがとうございます。試してみましたがうまくいかないようです(なんか変なことしているかも)。
ちょっと、このエンコードという問題はだいぶ難しそうなので、とりあえずRubyの基本を先にしっかり勉強したいと思います。
もっとも直近の目標が人工無能なので、遅かれ早かれ絶対に克服しなければならない問題なのは確かですが…
いずれにせよ、理解できないからと言っていつまでも足踏みしている暇はないので先に行きます。他の皆さんもありがとうございました。
- 465 :デフォルトの名無しさん:2016/07/02(土) 22:33:37.50 ID:no/g4eo0.net
- >>449-461
paiza.IO, codepad などのサイトで、ブラウザを使って、プログラミングすれば簡単
- 466 :デフォルトの名無しさん:2016/07/02(土) 22:41:05.68 ID:no/g4eo0.net
- サクラエディタ・TeraPad などで、文字コードを見れば?
Unix系は、UTF-8。
Windowsは、shift-jis, cp932(Windows31J)
改行コードも異なる
shift-jisに、Windowsだけの環境依存文字(@、丸で囲んだ数字など)を、加えると、cp932となる
Windowsだけの環境依存文字を使うと、shift-jisよりも、バグる確立が大きい
- 467 :デフォルトの名無しさん:2016/07/02(土) 22:50:14.62 ID:0c7wAYOM.net
- >>466
ありがとうございます。もういいや、と思って別のことやろうと思いましたが、念のためTeraPadで打ち込んでみたら右下にエンコードがでました。
「UTF-8N」とあるようです。ところで、自分はきれいで見やすいとNETで評判の?SublimeText3を使っているんですが。エディタによっても結構違うんですね。
465さんのpaiza.IOみたいなエディタがあると便利なんですが、まあないものねだりしてもしょうがない。あまり、自分の質問だけでスレッドを私物化するのも
申し訳ないので、ここらでクローズさせていただきます。重ね重ねのアドバイスありがとうございます。
- 468 :デフォルトの名無しさん:2016/07/03(日) 06:34:41.72 ID:KkvVurgp.net
- -Kって今推奨されてないんじゃないの?
-EShift_JIS:Windows_31Jとするべきでは
- 469 :uy ◆e6.oHu1j.o :2016/07/03(日) 11:25:14.56 ID:VJyaYSRj.net
- 動けば良いよ動けば
- 470 :デフォルトの名無しさん:2016/07/03(日) 17:04:45.03 ID:l9Pdm4ZB.net
- vrubyを使いたいのですが、以下のエラーが出て困っています。
G:Ruby23-x64/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in'require':cannot load such file -- vr/vruby(LoadError)
ネットでも調べてみたのですが、なかなか情報がヒットしません。よろしくお願いします。
- 471 :デフォルトの名無しさん:2016/07/03(日) 17:07:35.45 ID:KkvVurgp.net
- 最後の更新がruby1.9.2よりも前みたいだから
require_relativeとしなくちゃいけないところがrequireになってるんだろうね
- 472 :デフォルトの名無しさん:2016/07/03(日) 17:15:42.70 ID:T6bq1Tjn.net
- >>470
もう vruby なんて使うべきではないね
昔は何個かcontributeしたんだけどなー、懐かしい
- 473 :デフォルトの名無しさん:2016/07/03(日) 17:17:00.26 ID:l9Pdm4ZB.net
- >>471
ありがとうございます。ネットで検索したところ、2つの方法があるらしく。以下の内容を試してみました。
1:require 'vr/vruby'のvrの前に./をつける
2:require 'vr/vruby'のrequireをrequire_relativeとする
いずれもうまくいかず、途方に暮れています。
- 474 :デフォルトの名無しさん:2016/07/03(日) 17:19:52.23 ID:KkvVurgp.net
- カレントディレクトリとrbファイルのある場所が違うんじゃないの?
- 475 :デフォルトの名無しさん:2016/07/03(日) 17:21:08.98 ID:l9Pdm4ZB.net
- >>472
今、勉強している本の内容が古くて、本の内容がvrubyを使うことを前提にしているので弱っています。
本を買った時に諦めないで最後まで勉強していればなーと、いまさら言っても遅いですが。
- 476 :デフォルトの名無しさん:2016/07/03(日) 17:25:59.34 ID:T6bq1Tjn.net
- >>475
RubyでGUIでしかもWindowsでってのは鬼門でしかないからね
どうしてもWindowsでGUIってことなら素直にC#使うべきだよ
- 477 :デフォルトの名無しさん:2016/07/03(日) 17:27:02.20 ID:KkvVurgp.net
- >>474は勘違い 無視して
- 478 :uy ◆e6.oHu1j.o :2016/07/03(日) 17:28:05.70 ID:VJyaYSRj.net
- >>470
http://www.osk.3web.ne.jp/~nyasu/vruby/core.html
こっから該当ファイル探して自分でパス通せ
- 479 :デフォルトの名無しさん:2016/07/03(日) 17:29:16.56 ID:l9Pdm4ZB.net
- >>474
今、rbファイルをruby.exeと同じフォルダにぶっこんでみましたが、状況は変化しないようです。
以前、このスレでどなたかが書いていたんですが、情報が常に古くなってしまって初学者が
勉強するには難しい言語なんでしょうか…もう心が折れてきました
- 480 :デフォルトの名無しさん:2016/07/03(日) 17:32:02.55 ID:KkvVurgp.net
- requireを書き換えてもうまくいかないっていうのは具体的にどういうことなの?
LoadErrorにはなるの?
- 481 :デフォルトの名無しさん:2016/07/03(日) 17:34:05.18 ID:LjwuNqiA.net
- そもそも64bitに対応しているだろうか
- 482 :デフォルトの名無しさん:2016/07/03(日) 17:34:32.24 ID:l9Pdm4ZB.net
- >>478
ありがとうございます。すでにこの場所には来ていたんですが、上書きすればいいんでしょうか?
って、聞く前にとあえずやってみます
- 483 :uy ◆e6.oHu1j.o :2016/07/03(日) 17:35:50.97 ID:VJyaYSRj.net
- ちょっと入れてみようとしたけど
パス通しても動かない
swin.soが既に配布されてなくてソースコードでの配布になってるから
パス通した後さらにコンパイルしないと無理だよ
- 484 :デフォルトの名無しさん:2016/07/03(日) 17:40:59.61 ID:l9Pdm4ZB.net
- >>480
そうですね、書き換えてもLoadErrorになります。また、書き換えても書き換えなくてもエラーの内容は同じようです。
>>481
自分もなんか嫌な予感がするんですが、もしかして64じゃうまく動かないなんてことは…今まで投入した時間はなんだったんだ
- 485 :デフォルトの名無しさん:2016/07/03(日) 17:44:06.57 ID:KkvVurgp.net
- requireのままじゃないといけないところもrequire_relativeにしてない?
そうじゃなくて、特定の行がどちらの場合もエラーになるってこと?
- 486 :デフォルトの名無しさん:2016/07/03(日) 17:49:45.60 ID:LjwuNqiA.net
- 素直にruby1.8.7を入れればいいわけだけど、今更vrubyを勉強する意味はないよ
- 487 :デフォルトの名無しさん:2016/07/03(日) 17:52:44.03 ID:l9Pdm4ZB.net
- >>485
全ての組み合わせを試しました。つまり、以下の3つです。
1:require 'vr/vruby'のvrの前に./をつける
2:require 'vr/vruby'のrequireをrequire_relativeとする
3:require 'vr/vruby'のvrの前に./をつけ、なおかつrequireをrequire_relativeとする
すべてLoadErrorになっています。
- 488 :デフォルトの名無しさん:2016/07/03(日) 17:54:55.25 ID:l9Pdm4ZB.net
- >>486
そっか!そういえばそうですよね、思いつかなかった。素直に古いバージョンでやれば済む話だった。本がそうなっているのだから。
とりあえず、それで行きます。ありがとうございました。
- 489 :デフォルトの名無しさん:2016/07/03(日) 18:01:50.01 ID:KkvVurgp.net
- まあ学習目的なら古いバージョンでやるのが一番かもね
ただ誤解があったようなのでそこだけ説明させてもらう
例えば
require "mathn"
require "vr/vruby"
ってあった時にmathnとかもrequire_relativeって書いてないかってこと
もし
require "mathn"
require_relative "vr/vruby"
ってやってもLoadErrorになるならそれはファイルがないってことだからバージョン変えてもエラーになると思うけど
何行目でLoadErrorになってるのかちゃんと確認してたのかな
- 490 :デフォルトの名無しさん:2016/07/03(日) 18:43:02.70 ID:l9Pdm4ZB.net
- >>489
ありがとうございます。今試してみましたが、エラーの内容が少し変わりました。
require_relative "vr/vruby"
require 'vr/vrcontrol'
これで試したところ、
G:Ruby23-x64/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in'require':cannot load such file -- vr/vruby(LoadError)
↓
G:Ruby23-x64/chatbot/gui_vruby_sample.rb:1in'require_relative'':cannot load such file -- G:Ruby23-x64/chatbot/vr/vruby(LoadError)
と変化しました。どういうことだかさっぱりわかりませんが、動かないのは以前の通りです。とにかく古いバージョンで試してみます。感謝。
- 491 :デフォルトの名無しさん:2016/07/03(日) 18:51:12.47 ID:2FNA+IvI.net
- Cloud9でmysqlデータベース使うときの設定って
どれが正しいんですかね、検索していろいろ出るんですが悉くエラーはいてしまって開発にうつれないっす
だれかやり方を教えていただけませんか…
- 492 :デフォルトの名無しさん:2016/07/03(日) 20:00:46.85 ID:+diucK3B.net
- >>475
本の内容をそのままそっくり
なぞることにこだわらなくていいよ
慣れるにつれて自力でできる部分は
自分で書いた方が早くなる
部分的にでも未知の情報を吸収できればよし
- 493 :デフォルトの名無しさん:2016/07/04(月) 03:09:10.05 ID:24pN0A7m.net
- Ruby1.9から、仮想マシン(RubyVM)になったから、
それより前のバージョンは、推奨しない。
vrubyというのも初耳
定番の本は、「たのしいRuby 第5版」2016
paiza.IO, codepad などのサイトで、ブラウザを使って、プログラミングするのが簡単。
ログインもいらない
- 494 :uy ◆e6.oHu1j.o :2016/07/04(月) 15:13:47.56 ID:RKNLnwF6.net
- >>493
RubyのGUIが今よりもさらにgmks of gmksだった頃に
頑張って何かを作ろうとして挫折した人の作ったライブラリ
- 495 :uy ◆e6.oHu1j.o :2016/07/04(月) 15:21:46.40 ID:RKNLnwF6.net
- rubyはアルゴリズムの記述には適してるものの、宣言・代入がメインとなるソースコードでは冗長
GUIは厳しかったね
多分ハードのほうも無理
宣言・代入メインならもっとマシな言語はある
- 496 :デフォルトの名無しさん:2016/07/04(月) 20:11:11.28 ID:1TFm36GL.net
- ウインドウズ10の初期設定で、
デフォルトで、パソコンの中身が会社に送られるとか、頭おかしいんじゃないの?
アメリカは、プライバシーの問題が、狂ってるんじゃねえの、モラルがないどころの話しじゃない
- 497 :デフォルトの名無しさん:2016/07/04(月) 20:17:48.27 ID:A9h+6tfb.net
- そうだな、まずは落ち着いてスレタイ読んでから書き込もうぜ
- 498 :デフォルトの名無しさん:2016/07/04(月) 22:05:27.13 ID:3uqHV0dH.net
- >>492 >>493
ありがとうございます。泣き入れていてもしょうがないので、気持ちを切り替えて「楽しいRuby」はじめました。
『今のところは』楽しいです。もうちょっとがんばってみます。以前挫折したときに比べて何かが見えてきた…気がします。
- 499 :デフォルトの名無しさん:2016/07/04(月) 22:08:28.55 ID:yHpo7u0t.net
- >>498
『たのしいRuby』からで正解
プログラムをいきなり思い通りには書けないよ
英語をいきなりペラペラしゃべれないのと同じ
慣れればスラスラ読み書きできるから
急がば回れで基礎を積み重ねることが肝要
- 500 :デフォルトの名無しさん:2016/07/05(火) 06:38:44.92 ID:j6ObOS3k.net
- 「Rubyによるクローラー開発技法」P65にあるselenium-webdriverをインストールしており、
読み込みをさせようとすると下記のエラーが出て困っています。
cannot load such file -- ffi_c (LoadError)
gem listコマンドからはffi (1.9.10 x86-mingw32)の確認が取れています。
rubyのバージョンは、 2.3.0p0 (2015-12-25 revision 53290) [i386-mingw32]です。
PCスペックは、WIN7 32bitです。
PATHの指定が間違っているのかと思い、require先にフォルダ毎移動させたりしたのですが
エラーの改善には至りませんでした。
考えられる原因は、rubyとffiの整合性が取れてないのかとも思いrubyのバージョンも
変更してみたのですが、これもエラーの改善には至りませんでした。
ググっても特にヒントになりそうなのを見つけられなかったため、
何か解決方法があれば、ご教授頂きたいと思い書き込みさせて頂きました。
何卒、よろしくお願い致しますm(_ _)m
- 501 :デフォルトの名無しさん:2016/07/05(火) 07:28:57.81 ID:JLNuGFh4.net
- >>500
gem uninstall ffi
gem install ffi --platform ruby
- 502 :デフォルトの名無しさん:2016/07/05(火) 09:02:24.93 ID:j6ObOS3k.net
- >>501
コメントありがとうございます!
ffiの再インストールまでは成功したのですが、selenium-webdriverを起動すると
再び下記エラーが出てきました。。
C:/Ruby23/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:133:in `r
equire': cannot load such file -- ffi_c (LoadError)
エラーに書いてあるkanel_require.rbを見てみると
133 return gem_original_require(path) if require_again
と記述されていました。
パスの指定がうまく行ってないんですかねぇ・・・
- 503 :デフォルトの名無しさん:2016/07/05(火) 09:18:02.59 ID:LGOaFQLh.net
- 「gem ffi_c」でググったら一番上に出てくるじゃねえかよ
ttp://github.com/ffi/ffi/issues/432
- 504 :デフォルトの名無しさん:2016/07/05(火) 09:20:02.52 ID:j6ObOS3k.net
- 500です。
現在、RUBYライブラリのロードパスは以下のようになっています。
irb(main):006:0* puts $LOAD_PATH
C:/Ruby23/lib/ruby/gems/2.3.0/gems/did_you_mean-1.0.0/lib
C:/Ruby23/lib/ruby/site_ruby/2.3.0
C:/Ruby23/lib/ruby/site_ruby/2.3.0/i386-msvcrt
C:/Ruby23/lib/ruby/site_ruby
C:/Ruby23/lib/ruby/vendor_ruby/2.3.0
C:/Ruby23/lib/ruby/vendor_ruby/2.3.0/i386-msvcrt
C:/Ruby23/lib/ruby/vendor_ruby
C:/Ruby23/lib/ruby/2.3.0
C:/Ruby23/lib/ruby/2.3.0/i386-mingw32
=> nil
- 505 :デフォルトの名無しさん:2016/07/05(火) 09:47:55.30 ID:j6ObOS3k.net
- >>503
ありがとうございます。解決しました。
インストール手順がまずかったようです。
gem uninstall ffi
→-x86-mingw32を選択して削除。
ruby dk.rb init
ruby dk.rb install
上記の手順でやったら無事にSeleniumWebDriverが動作しました。
ありがとうございます!
- 506 :uy ◆e6.oHu1j.o :2016/07/05(火) 18:35:12.75 ID:1uRQlpDk.net
- ffi_cは、パスが通ってないというより、
現段階では普通にインストールしただけだと、2.3用のファイルが無かったな
>require': cannot load such file -- ffi_c (LoadError)
このLoadErrorになっていた原因はここ↓
C:\Ruby\lib\ruby\gems\2.3.0\gems\ffi-1.9.10-x86-mingw32\lib\\
- 507 :デフォルトの名無しさん:2016/07/05(火) 23:15:15.87 ID:ZQWdXgH1.net
- 今日1週間のブートキャンプ3日目、いつになったらみんなが話してる内容がわかるのかなぁ、、、初心者ですが、よろしくお願いいたします。(≧∇≦)
- 508 :デフォルトの名無しさん:2016/07/05(火) 23:25:54.80 ID:94G9IfNv.net
- Rubyの女神・女優の池澤あやかは、慶応大学のプログラム研究会に入ったり、
島根県のRuby合宿へ、行ったみたい
- 509 :デフォルトの名無しさん:2016/07/06(水) 00:29:15.16 ID:ziud5nB+.net
- RWBYは百合アニメって話だろ
男消えろ
- 510 :uy ◆e6.oHu1j.o :2016/07/06(水) 19:01:28.90 ID:4XXkMTdx.net
- 質問です
selenium-webdriverでIE起動する時にvisibleオプションの設定って出来ませんか?
ライブラリのソースコードを追ってみましたが、
もしかしたらIEDriverServer.exeの中でそういうのやってる可能性もあって
rubyのソースコード上でvisibleを設定している箇所が特定できませんでした
- 511 :uy ◆e6.oHu1j.o :2016/07/08(金) 14:18:11.61 ID:ReeCCMlZ.net
- 質問です
ある日付からの残り日数を求めたく引き算をしてみましたが
t = Time.new
a = Time.local(2016, 7, 9)
b = a - t
bに返ってくる値がFloatで、これをどう整形したら良いのか分かりません
スマートに書く方法はありますか?
- 512 :デフォルトの名無しさん:2016/07/08(金) 14:21:47.06 ID:4qgBf6xV.net
- b/(60*60*24)
- 513 :デフォルトの名無しさん:2016/07/08(金) 14:31:15.37 ID:4qgBf6xV.net
- ミス
(b/(60*60*24)).ceil
- 514 :uy ◆e6.oHu1j.o :2016/07/08(金) 14:34:46.90 ID:ReeCCMlZ.net
- >>512
こうなりました
t = Time.new
a = Time.local(2016, 7, 9)
b = a - t
p b / (60*60*24)
# => 0.3943060819212963
- 515 :uy ◆e6.oHu1j.o :2016/07/08(金) 14:36:27.94 ID:ReeCCMlZ.net
- >>513
t = Time.new
a = Time.local(2016, 7, 9)
b = a - t
p (b/(60*60*24)).ceil
# => 1
です
- 516 :デフォルトの名無しさん:2016/07/08(金) 14:41:36.56 ID:4qgBf6xV.net
- >>515
へ?? これで何か問題なの?
- 517 :uy ◆e6.oHu1j.o :2016/07/08(金) 14:47:45.41 ID:ReeCCMlZ.net
- >>516
失礼しました問題ないです
条件反射で書き込んでしまいました
ありがとうございます
- 518 :デフォルトの名無しさん:2016/07/08(金) 15:38:17.55 ID:wR56VJym.net
- Time#strftime 使ったほうが良くない?
- 519 :デフォルトの名無しさん:2016/07/08(金) 16:06:49.18 ID:k4oWZhGm.net
- >511
これでいい気がする。
require 'date'
t = Date.today
a = Date.new(2016, 7, 9)
p b = (a - t).to_i
- 520 :デフォルトの名無しさん:2016/07/09(土) 07:29:20.44 ID:OPT8/HRF.net
- ruby2.3ってsqlite3に対応してないんですかね
ちなみに、環境はwin7です。
- 521 :デフォルトの名無しさん:2016/07/09(土) 09:29:37.94 ID:70tfGxUK.net
- >>520
gem あるぞ?
- 522 :デフォルトの名無しさん:2016/07/09(土) 19:00:25.45 ID:yWA3G7Ehx
- ruby1.9.3p551
centos6.7(x86)
GNOME 端末 2.31.3
test.rb------------
STDOUT.sync = true
STDIN.each_line do |line|
p line
end
------------------
上のコードで、文字列入力中に全角文字入れると
バッックスペースキーで文字削除したとき半角分しか削除されないん
これってうちの環境依存によっておこる問題?それとも仕様?
解決方法じゃなくてどういう仕組みで起こってるのか知りたい
- 523 :デフォルトの名無しさん:2016/07/09(土) 20:12:52.56 ID:pnlJS2Wt.net
- gemを使ってgtk3をインストールしようとしたのですができませんでした
解決策をご教授願えませんか? 出力は以下の通りです
少々長いのでレス分けます
C:/Ruby21-x64/bin/ruby.exe extconf.rb
checking for --enable-debug-build option... no
checking for -Wall option to compiler... yes
checking for -Waggregate-return option to compiler... yes
checking for -Wcast-align option to compiler... yes
checking for -Wextra option to compiler... yes
checking for -Wformat=2 option to compiler... yes
checking for -Winit-self option to compiler... yes
checking for -Wlarger-than-65500 option to compiler... yes
checking for -Wmissing-declarations option to compiler... yes
checking for -Wmissing-format-attribute option to compiler... yes
checking for -Wmissing-include-dirs option to compiler... yes
checking for -Wmissing-noreturn option to compiler... yes
checking for -Wmissing-prototypes option to compiler... yes
checking for -Wnested-externs option to compiler... yes
checking for -Wold-style-definition option to compiler... yes
checking for -Wpacked option to compiler... yes
checking for -Wp,-D_FORTIFY_SOURCE=2 option to compiler... yes
checking for -Wpointer-arith option to compiler... yes
checking for -Wswitch-default option to compiler... yes
checking for -Wswitch-enum option to compiler... yes
checking for -Wundef option to compiler... yes
checking for -Wout-of-line-declaration option to compiler... no
checking for -Wunsafe-loop-optimizations option to compiler... yes
checking for -Wwrite-strings option to compiler... yes
checking for rb_define_alloc_func() in ruby.h... no
checking for rb_block_proc() in ruby.h... no
checking for new allocation framework... yes
- 524 :デフォルトの名無しさん:2016/07/09(土) 20:13:15.27 ID:pnlJS2Wt.net
- checking for attribute assignment... no
checking for cairo... yes
checking for rb_cairo.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby21-x64/bin/ruby
--enable-debug-build
--disable-debug-build
--with-pkg-config
--without-pkg-config
--with-override-variables
--without-override-variables
extconf failed, exit code 1
- 525 :デフォルトの名無しさん:2016/07/09(土) 21:17:36.39 ID:70tfGxUK.net
- >>523
http://stackoverflow.com/questions/31552590/error-when-try-to-install-ruby-gtk3-gem
これじゃね?
- 526 :デフォルトの名無しさん:2016/07/09(土) 21:41:42.30 ID:pnlJS2Wt.net
- >>525
ありがとうございます!
おかげさまでgtk3をインストールすることができました!
しかしgtk3を使ったテストプログラムを実行する段階で次のようなエラーが起こってしまいました
cannot load such file -- cairo.so (LoadError)
調べたのですがどうやら実際にcairo.soがないのではなく
なにか別の要因が作用してこのようなエラーを吐いているのだということは分かったのですが
具体的にどう対処すべきかということについての情報が見つからず困っています
お助けいただけると幸いです
- 527 :デフォルトの名無しさん:2016/07/09(土) 21:45:25.80 ID:LUkvWe2U.net
- まずはcairo.soがどこにあるのか調べよう
- 528 :デフォルトの名無しさん:2016/07/09(土) 21:51:34.71 ID:pnlJS2Wt.net
- >>527
c:Ruby21-x64\lib\ruby\gems\2.1.0\gems\cario-1.15.2~~\lib内の
2.2フォルダと2.3フォルダ内にありました!
これをどうすればいいのですか?
- 529 :デフォルトの名無しさん:2016/07/10(日) 01:01:33.24 ID:FaCg4BOi.net
- >>528です
自己解決しました
ありがとうございました
- 530 :デフォルトの名無しさん:2016/07/10(日) 22:28:19.60 ID:7ZpGAM9O.net
- 自己解決したときでも後進のために何をやったか書くのが礼儀だチンカス
クレクレだけでなく
- 531 :デフォルトの名無しさん:2016/07/10(日) 22:53:06.11 ID:IT8q3R81I
- キーボードから標準入力(STDIN)で文字入れてる時、
backspaceキーで文字の表示を削除したりカーソル移動させたりって処理は
どこでやってるの?
rubyのインタプリタがやってるの?
- 532 :デフォルトの名無しさん:2016/07/12(火) 19:22:25.10 ID:gIrYEA97.net
- >>530
あまりにもあれなので書く必要もないかと思いまして……
>>528に書いてある通り使っていたRubyのバージョンが2.1で
gtk3の現在のバージョンが対応しているのは2.2と2.3だったのです
というところでもう一つ質問させてください
gtk3を使ってサンプルプログラムの写経をしているのですが
その中でkey, mod = Gtk::Accelerate.parse "N"という行がありました
しかし実行してみるとGtkクラスには定数Acceleratorはありませんという旨のエラーが出てしまいます
仕様が変わったのかもしれないのですが調べても出てきません
どなたかご存知の方がいたら教えていただけませんでしょうか?
- 533 :デフォルトの名無しさん:2016/07/12(火) 20:10:31.38 ID:Eu9k9lZN.net
- Ruby 2.1でデバイスファイルを開いた時にサイズなどの情報を取得することは出来ないのでしょうか?
seek(0, IO::SEEK_END)、size、statは全て通りません
>type test.rb
open("\\\\.\\PHYSICALDRIVE0", "rb"){|f|
f.seek(0, IO::SEEK_END)
p f.stat
p f.size
p f.pos
}
>ruby test.rb
test.rb:2:in `seek': Invalid argument @ rb_io_seek - \\.\PHYSICALDRIVE0 (Errno::EINVAL)
from test.rb:2:in `block in <main>'
from test.rb:1:in `open'
from test.rb:1:in `<main>'
プラットフォーム固有の手段(WindowsならWMI、PC UNIXならlsblkなど)を使えば取得できますが
出来ればそれは避けたいので・・・
- 534 :デフォルトの名無しさん:2016/07/12(火) 23:16:54.90 ID:O9LM8Fab.net
- >>533
Rubyに限定されない一般論として:
デバイスファイル(物理ドライブ)から取得できるサイズとして、
いったいぜんたい何を期待しているの?
ディスク容量?パーティション容量?利用容量?空き容量?
デバイスファイルをシークして、いったいぜんたい何をしたいの?
UNIXファイスシステムでセクタ単位にアクセスしたいのなら、
特殊なRAW(生)デバイスをオープンするけど、それはUNIX固有の手段になる
なんだか無邪気な子供が無い物ねだりしているようにしか聞こえないね
あなたは最終的に何をしたいの?
- 535 :デフォルトの名無しさん:2016/07/13(水) 00:06:53.28 ID:iqeWAEZd.net
- いけあやちゃんのDVD借りてきたよ
昔は水着DVDとか売ってたんだなぁ
- 536 :デフォルトの名無しさん:2016/07/13(水) 00:11:36.68 ID:vjGvgzcz.net
- そもそも、デバイスファイルって、Unix系だけだろ?
Windowsでは使えないのでは?
そもそも、そんな特殊ファイルに、Rubyが対応しているのかな?
とにかく、seek の引数が間違っているから、正しくすれば?
>>532
>Gtk::Accelerate.parse "N"
>Gtkクラスには定数Acceleratorはありません
Accelerate, Accelerator はつづりが異なる。
そもそも、定数.parse(定数.メソッド) という表記は可能なのか?
- 537 :デフォルトの名無しさん:2016/07/13(水) 01:10:27.49 ID:t0tludUSX
- 標準入力の全角文字入力時のズレの原因がわからないからひとまず置いといてReadlineつかってみたら
エスケープシーケンス文字の入力で見事にクォートされて、意図した入力にならなくなった
gsub使ってちまちま置換する以外に、dequoteとかunescapeとかそんな感じのいい手はありませんか?
- 538 :531:2016/07/13(水) 21:08:36.13 ID:9IGkZ4N6.net
- Windowsでディスクをダイレクトに開くコードを貼ったのに、調べも試しもせずに思い込みだけでWindowsでは
デバイスファイルが使えないと返されても自分はなんて答えればいいのだろう
Windowsのデバイスファイルの取り扱いについてゼロから解説しないと話がかみ合わないとかどうすればいいの
ggrksって書かなきゃダメなの?
seekの引数もリファレンスマニュアルからコピペして数字を変えただけなのにそれを間違っていると言われても
どう直せば良いんだ
- 539 :デフォルトの名無しさん:2016/07/13(水) 21:41:01.10 ID:O2/Udv7T.net
- >>538
> Windowsのデバイスファイルの取り扱いについてゼロから解説しないと話がかみ合わないとかどうすればいいの
だってWIndowsにはデバイスファイル(と一般に呼ばれるもの)はないんだもの
しょうがないじゃん
- 540 :デフォルトの名無しさん:2016/07/13(水) 22:04:05.33 ID:7QL1TPM6.net
- そのコードをどんなプラットフォームで動かそうとしてるんだ?
プラットフォームに依存せずにとか考えてる?
Windowsでは動かんし、Linuxなら別の理由でそっちも動かんぞ
- 541 :デフォルトの名無しさん:2016/07/13(水) 22:20:27.32 ID:zSyoSNoY.net
- スルーでよくね?
- 542 :デフォルトの名無しさん:2016/07/13(水) 22:49:33.67 ID:zLt10+AI.net
- いやよくない
- 543 :531:2016/07/14(木) 00:32:41.64 ID:VP5bmt0B.net
- Windows上からストレージのLBA:0を読み最後の2ByteをHexで表示する例
ttp://uploader.purinka.work/src/0068.png ←MBRのシグネチャである0x55 0xAAが表示されている
少なくともread、write、seek(n, IO::SEEK_SET)は機能して開いたストレージの任意のセクタを読み書き出来た
>>540
今のところWindowsとLinuxやFreeBSDあたりで動かしたいです
Linuxだと↑の"\\\\.\\PHYSICALDRIVE0"を"/dev/sdc1"とかにしても動かないのかな?
- 544 :531:2016/07/14(木) 02:25:09.71 ID:jqQ4G2uAQ
- >>543
成り済まし?
windows環境の話じゃないんだけど
他人を騙るのはやめろ
- 545 :デフォルトの名無しさん:2016/07/14(木) 03:02:03.84 ID:tcxRZQBL.net
- なんかおかしいなと思ったら元スレの方に反映されていなかったので、もう一度書きます
ruby1.9.3p551
centos6.7(x86)
GNOME 端末 2.31.3
test.rb------------
STDOUT.sync = true
STDIN.each_line do |line|
p line
end
------------------
上のコードで、文字列入力中に全角文字入れると
バックスペースキーで文字削除したとき半角分しか削除されない
これって環境依存によっておこる問題?それとも仕様?
解決方法じゃなくてどういう仕組みで起こってるのか知りたい
- 546 :デフォルトの名無しさん:2016/07/14(木) 05:13:27.03 ID:5Jg64+hU.net
- >>543
ソースコードをコピーして実行できないから、画像を使わないで。
paiza.IO, codepad などを使えば、ログイン無しでも書き込める。
そりゃ、実行すればエラーになるけど、ひとまず書き込める
デバイスファイルって、Linuxの特殊ファイルのことかと思っていた。
物理ディスクに、直接アクセスしたいのか
Errno::EINVAL
不正な引数。関数の引数のいずれかに無効な値が指定されています。
たとえば、fseek 呼び出しでファイル ポインターを移動するとき、
指定した元の位置が、ファイルの先頭より前にある場合です。
>>545
全角の多くは、3byteだけど、バックスペースで、1byteしか戻らないのか。
普通のエディタなら、バックスペースで1byteじゃなく、全角1文字分戻る。
その端末が、日本語に対応していないのだろう
コマンドプロンプト・端末などは、大昔に外人が作ったものだから、
日本語には対応していない。
一方、エディタは対応しているものが多い
- 547 :デフォルトの名無しさん:2016/07/14(木) 05:33:08.45 ID:5Jg64+hU.net
- >>543
IO::SEEK_SET: ファイルの先頭から (デフォルト)
IO::SEEK_CUR: 現在のファイルポインタから
IO::SEEK_END: ファイルの末尾から
たぶん、SEEK_ENDがダメなんだろう
- 548 :デフォルトの名無しさん:2016/07/14(木) 05:53:08.52 ID:tcxRZQBL.net
- ターミナルの設定はこんな感じです
[centos@localhost Reudy19]$ stty -a
speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -cdtrdsr
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
- 549 :デフォルトの名無しさん:2016/07/14(木) 06:23:56.25 ID:5Jg64+hU.net
- 端末は、単なるアプリだから、日本語に対応させるかどうかは、アプリの作者次第
日本語が使える、エディタとは違う。
英語でコマンドを書く、アプリ
作者も外人だから、日本語のことは知らない
- 550 :デフォルトの名無しさん:2016/07/14(木) 06:52:30.33 ID:5Jg64+hU.net
- 文字コードを、UTF-8 に設定できないの?
- 551 :デフォルトの名無しさん:2016/07/14(木) 07:10:22.27 ID:xuDKBge/.net
- 全員ハズレ
居残り学習な
>>545
普通にターミナル上で日本語入力したときにBackSpace押してもきちんと全角1文字消えるのに
STDINを直接開いたときにはBackSpaceで半角1文字しか戻らないのはなんでか
bash$ cat
にゃんこ■ ← BS1回
にゃんニ■
日本語環境ではシェル、普通はbash、が「日本語だと思われる文字があったら1文字ぶんだと思われるバイト数だけ戻る」というように特別に数えて処理してるからだ
ncursesとか介してないプレーンな環境では半角1文字戻るのが「素直な正しい」挙動
だからコマンドラインスクリプトで端末から直接日本語を入力してもらう可能性がある場合はRubyならcursesライブラリを使うと親切
これならbash上や他のターミナルアプリで日本語入力したときと同様にきちんと全角1文字ぶん消える
- 552 :デフォルトの名無しさん:2016/07/14(木) 20:43:36.00 ID:tcxRZQBL.net
- Readlineつかって入力してみた結果、backspace1回でしっかり全角文字一文字消せました
てっきり環境設定のLANGをja-JP.UTF-8にする他に、ロケール関連の設定でなんとかなるものだと思ってました
なるほど、そういう事だったのか
ありがとうございます
それと、readlineで意図的に\n等のエスケープシーケンス文字を入力すると、\\nのようにエスケープされます
入力終えた文字列をgsub使ってちまちま置換する以外に、dequoteとかunescapeとかそんな感じのいい手はありませんか?
- 553 :デフォルトの名無しさん:2016/07/15(金) 07:48:04.68 ID:0wyvmUyV.net
- 各OSで使えるmruby用の基本的なI/Oのライブラリとか無いんか?
Lua的に使いたいけど素のままではファイルの読み書きすら出来ない
- 554 :デフォルトの名無しさん:2016/07/17(日) 11:51:33.23 ID:5n5jkqHt.net
- 各OSそれぞれにCで書いた低級IO操作用バッチファイル用意してrubyのバッククォート文で呼び出して扱うとか
OSの差異をバッチファイルで吸収すれば良いからなんとかなると思う
思いつくのはこんぐらい
- 555 :デフォルトの名無しさん:2016/07/17(日) 12:14:33.52 ID:EX8s0wCA.net
- >>554
わざわざシェルを介する意味が無いだろ
それなら普通にCでAPI書けばいい
- 556 :デフォルトの名無しさん:2016/07/17(日) 16:00:16.75 ID:tztufySG.net
- >>553
mruby-ioで取り敢えずファイル操作出来るけど、
低レベルは殆ど無いな。
mrbgemを自分で作るのが基本スタンスだし
- 557 :デフォルトの名無しさん:2016/07/17(日) 16:04:26.02 ID:tztufySG.net
- そもそもmrubyはOSもない環境でも動かせるように
色々外してあるから標準Rubyと同じ様に考えちゃ駄目
- 558 :549:2016/07/18(月) 01:50:25.67 ID:IKQ2dxNQ.net
- タイミングが良いんだか悪いんだか判らんけどレスthx
mruby-ioを見つけて試すも大きなファイルを操作できない
Fixnumの壁が原因とわかりCコードとにらめっこすること数日
sysseekをFloatも受け付けるように改造してようやく目的を達成
Bignumが無い影響がもろに出てしまっていますな
- 559 :デフォルトの名無しさん:2016/07/20(水) 03:31:47.01 ID:GlTBqNkC.net
- Ruby1.9以降は、rubyコードをJITコンパイルで変換してから実行してるんだよね?
Rubyのソースコード読んでるんだけど、Ruby1.8までならWebにころがってる情報で構造をなんとなくレベルまで理解できる
でもRuby1.9からはさっぱり理解不能で、何処がVMの部分なのかさえ読めない
どこかにRuby1.9以降のソースを解説しているサイトない?
なければソース全部じゃなくて、おおまかに構造を解説しているサイトでも構わない
- 560 :デフォルトの名無しさん:2016/07/20(水) 11:13:49.96 ID:WyhLRx8l.net
- ruby/doc/extension.ja.rdoc じゃダメなん?
Appendix A. Rubyのソースコードの分類
https://github.com/ruby/ruby/blob/trunk/doc/extension.ja.rdoc#appendix-a-ruby%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%88%86%E9%A1%9E
- 561 :デフォルトの名無しさん:2016/07/20(水) 18:43:26.64 ID:KOGDxcQR.net
- >>559
>Ruby1.9以降は、rubyコードをJITコンパイルで変換してから実行してるんだよね?
どこのソースから、そんな嘘情報を仕入れてきたの?
1.8迄はAST(抽象構文木)を直接的に評価していたのが、
1.9以降ではVM(正確にはYARV)へコンパイルするよう改善されただけの話だよ
いわゆるJavaScriptのV8エンジンみたいな本格的なJIT(Just In Time)コンパイル技術は、
今のところRubyには導入されちゃいない
>Rubyのソースコード読んでるんだけど、Ruby1.8までならWebにころがってる情報で構造をなんとなくレベルまで理解できる
1.8までならWeb公開されてるRHGが(言語処理系に興味がある人にとっては)バイブルだったね
http://i.loveruby.net/ja/rhg/book/
1.9以降なら、以下の書籍が必読本になった(RubyのVMであるYARVの解説書でもある)
Rubyのしくみ -Ruby Under a Microscope-
https://www.amazon.co.jp/dp/4274050653/
Ruby処理系高速化の未来に関しては、"HPC(Hight Performance Computing) Ruby"が鍵になると予測する
・HPC Ruby Compiler(プレゼン)
https://www.cps-jp.org/~mosir/pub/2012/2012-03-05/03_nakamura/pub-web/HPC_Ruby_Compiler.pdf
・HPC Ruby: 静的解析に基づく Ruby の高度最適化コンパイラ
http://ci.nii.ac.jp/naid/110008583419
さらに、その基礎となる "Soft Typing"(動的型付け言語における型推論) をキーワードで調べるのがいいと思う
もし英語が読めるなら、たとえば以下の論文を:
・SOFT TYPING 1991
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.9333&rep=rep1&type=pdf
・A Scheme-to-Java Translator with Soft Typing 2002
www.kb.ecei.tohoku.ac.jp/~sumii/pub/scm2java.ps.gz
- 562 :デフォルトの名無しさん:2016/07/21(木) 03:34:57.24 ID:jgTQj/gW.net
- JITを使うのは、JavaVMを使う、JRubyだろ。
10万回以上ループすると、もう一段階、最適化する
500万回(0.5秒)以上では、CRuby(MRI)よりも速くなる
「Rubyのしくみ」2014、に書いてある。
コンパイラ・インタープリターを作るなら、読んだ方がいい
- 563 :デフォルトの名無しさん:2016/07/21(木) 04:24:33.02 ID:WJGproPC.net
- YARVちょっとググってみたけど、
バイトコードインタプリタって書かれとる
逐次変換して処理してるわけか
1.9以降はバイトコードに変換して処理してるって聞いてたから
てっきりJIT技術使ってるんだと思ってた
さんくす
- 564 :デフォルトの名無しさん:2016/07/21(木) 19:25:21.64 ID:9nmG0K7V.net
- 実行時に変換してるんだからJITでOK
- 565 :デフォルトの名無しさん:2016/07/21(木) 22:00:48.00 ID:MOZT2+1A.net
- RangeってRubyの組み込みクラスにしては貧弱というか
ある数値が範囲より大きいか小さいかカバーされてるかを調べるUFO演算子とか
2つのRangeオブジェクトが被ってる部分があるかどうかを判定する機能とか
あれば便利な気がするんだがなぁ
- 566 :デフォルトの名無しさん:2016/07/22(金) 05:24:42.73 ID:8LVOaO/m.net
- Range#===, Range#include?, Range#member?, Range#cover?
Enumerable#grep
じゃダメなの?
- 567 :デフォルトの名無しさん:2016/07/22(金) 07:27:36.63 ID:y4ZiHYE1.net
- 前者についてはそれじゃ機能が足りないんだ
範囲内最小の値よりなお小さいか
最大の値よりなお大きいかまで判定してほしい
後者については機能的にはそれでいいんだけど
Rangeのサイズが1000万までありうるので速度的に(´・ω・`)
自分で実装してみると
class Range
def <=> obj
(((min <=> obj) + (max <=> obj)) / 2.0).truncate
end
def & other
[min, other.min].max..[max,other.max].min
end
end
- 568 :デフォルトの名無しさん:2016/07/22(金) 07:39:58.12 ID:y4ZiHYE1.net
- セルフツッコミしとくと
前者はobjが<=>演算子非対応でnil返した場合を考慮してない
後者はotherがRange以外の場合を考慮してない上に範囲外の場合変なRangeを返すので気持ち悪い
- 569 :デフォルトの名無しさん:2016/07/22(金) 07:53:03.72 ID:ot11jjQx.net
- UnityのMathf.Clampみたいに、
Clamp(value, min, max)
最大値と最小値の間で、収めるような関数もあればいいね
10 = Clamp(20, 1, 10)
- 570 :デフォルトの名無しさん:2016/07/22(金) 07:55:55.89 ID:8LVOaO/m.net
- どうせIntegerなんだから
(min <=> obj) + (max <=> obj) >> 1
でよくね?
あと
(1..2) & (3..4) # => (3..2)
だから
(3..2).max # => nil
になって気持ち悪い
- 571 :デフォルトの名無しさん:2016/07/22(金) 07:58:36.16 ID:8LVOaO/m.net
- ごめん、リロってなかったorz
- 572 :デフォルトの名無しさん:2016/07/22(金) 08:06:48.82 ID:y4ZiHYE1.net
- >>570
Rubyでは負数の除算がアレなんだ
-1 >> 1 = -1
- 573 :デフォルトの名無しさん:2016/07/22(金) 08:19:38.53 ID:8LVOaO/m.net
- -1 >> 1 = -1
って普通じゃないの?
rangeのfirstもlastもIntegerならこれでいいか
class Range
def &(other)
[first, other.first].max..[exclude_end? ? last - 1 : last, other.exclude_end? ? other.last - 1: other.last].min
end
end
- 574 :デフォルトの名無しさん:2016/07/22(金) 08:39:44.79 ID:DR9XI0EI.net
- >>567
<=> はそういうものじゃない。お前さんの言うような機能はあっても良いが、それが <=> と名付けられることは未来永劫ない。
- 575 :デフォルトの名無しさん:2016/07/22(金) 08:49:54.31 ID:cUWclNnj.net
- Array#<=>なんてものもあるし未来永劫無いとは言い切れなくもなくない
- 576 :デフォルトの名無しさん:2016/07/22(金) 21:13:35.89 ID:DR9XI0EI.net
- >>575
Range#<=> が追加されないなんて一言も言ってないよ。
>>567 の期待するものにはならないってだけ。
- 577 :デフォルトの名無しさん:2016/07/22(金) 21:16:28.21 ID:cUWclNnj.net
- >>576
ああ、本当だ。早とちりすまん
- 578 :デフォルトの名無しさん:2016/07/23(土) 23:49:44.32 ID:l6bIVOK+.net
- ruby初心者です。
変数の中に入った文字列の置換ができません。
例えばhtmlという変数の中に入った(http://○○-1.jpg)の中の-1を無くしたい場合
subかgsubを使うかと思います。
試しにp html.gsub(/-1.jpg/,
- 579 :デフォルトの名無しさん:2016/07/23(土) 23:52:24.68 ID:l6bIVOK+.net
- ruby初心者です。
途中で書き込みが消えてしましました(汗)
変数の中に入った置換の方法を教えていただけますでしょうか。
よろしくお願いします。
- 580 :デフォルトの名無しさん:2016/07/23(土) 23:55:26.99 ID:3089LaeD.net
- >>578-579
html.gsub!(
か
html = html.gsub(
- 581 :デフォルトの名無しさん:2016/07/24(日) 00:37:14.40 ID:9mJaMPLw.net
- >>578
確認画面が出たとき、ダブルクォーテーションがあると、文が切れる。
2chのバグだろう。たぶん、エスケープしていない
str = 'ttp://abc/xxx-1.jpg'
str = str.gsub(/-1.jpg/, '.jpg')
puts str
結果、ttp://abc/xxx.jpg
正規表現の先読みを使っても、できる
- 582 :デフォルトの名無しさん:2016/07/24(日) 00:56:13.49 ID:VgaTJS92.net
- >>580>>581
ご丁寧にありがとうございます。
今やってる作業がanemoneで拾ってきたhref要素を変数に入れてその一部-1を置換しようとしています。
教えていただいた通り、
str= node.css('a').attribute('href').value
str = str.gsub(/-1.jpg/, '.jpg')
puts str
と書き換えたのですが-1は消えませんでしたので、何か別の原因で引っかかってるみたいです。
- 583 :デフォルトの名無しさん:2016/07/24(日) 07:06:47.90 ID:uCHUDa0e.net
- 細かい事だが /-1\.jpg$/ の方が変な誤爆しないですむ
実は-1じゃなくて-l(小文字のL largeサイズ指定)だったというオチが思い浮かんだが…
- 584 :デフォルトの名無しさん:2016/07/24(日) 07:36:38.76 ID:ix/R/9ty.net
- gsub(/http:\/\/○○\K-1(?=\.jpg)/, '')
- 585 :デフォルトの名無しさん:2016/07/24(日) 11:12:26.70 ID:wdZTIji9.net
- >>581
切れ"ない"よ
ブラウザのバグだろ
- 586 :デフォルトの名無しさん:2016/07/24(日) 14:16:46.18 ID:VgaTJS92.net
- 574です。
置換する変数を間違っていただけのうっかりミスでした・・・orz
sub,gsubを使って上記の教えていただいた方法で変数の中身を無事置換できました。
ありがとうございますm(_ _)m
- 587 :デフォルトの名無しさん:2016/07/26(火) 21:17:51.50 ID:uTRCF1br.net
- >>440
> 個人的にはアスタリスク2回でハッシュを受け取る
> とかの方がよっぽど見かけたことないです。
> どなたか使ったことある方いらっしゃいますか?
カメだけど、超使う。
キーワード引数と組み合わせたり。
- 588 :デフォルトの名無しさん:2016/07/27(水) 15:07:46.63 ID:nl1cCFz0.net
- pythonだとさらによく使う
- 589 :デフォルトの名無しさん:2016/07/29(金) 08:11:29.53 ID:1qYsbBpR.net
- gtk3 でGUIを作ろうとしてるんだけど
stdinを監視したい
普通ならSTDIN.each_lineとかでSTDINを監視したら良いと思うけど
gtk3とか使うとイベントループさせないといけなくなるので
イベントループするメインルーチンでこれやりたいんだけど
やり方わかんない
標準入力を監視しながらのプログラムの場合どうやってる?
別スレッドにするのが普通なのかね?
- 590 :デフォルトの名無しさん:2016/07/29(金) 09:19:20.82 ID:AO+a9SAV.net
- >>589
・GUI の main loop で fd を監視
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=GUI+%A4%CE+main+loop+%A4%C7+fd+%A4%F2%B4%C6%BB%EB
・Gdk::Input - Ruby-GNOME2 Project Website
https://ruby-gnome2.osdn.jp/hiki.cgi?Gdk%3A%3AInput
・stdinから一行ずつ読んでそれっぽく表示 on ruby-gnome2
http://shyouhei.tumblr.com/post/119202369/stdinから一行ずつ読んでそれっぽく表示-on-ruby-gnome2
- 591 :デフォルトの名無しさん:2016/07/29(金) 09:45:02.59 ID:1qYsbBpR.net
- >>590
ありがとう!!!
gtk2ではその方法で上手くいきました
gtk3を使おうとするとGdk.InputのかわりにGLib::IOChannelを使うようにメッセージがでて
Gdk::Input::READのところでエラーになるんだけど
ちょっと検索かけただけじゃやり方わかりませんでした
御存じなら教えてください
よろしくお願い致します
- 592 :デフォルトの名無しさん:2016/07/29(金) 10:54:00.67 ID:AO+a9SAV.net
- >>591
GTK3は触っていなかったんだけど、GDKより低レイヤーなGLibで
外部イベントを扱うように変わったのですかね
・GLib::IOChannel - Ruby-GNOME2 Project Website
https://ruby-gnome2.osdn.jp/hiki.cgi?GLib%3A%3AIOChannel
・ruby-gnome2/iochannel.rb at master · taf2/ruby-gnome2 · GitHub
https://github.com/taf2/ruby-gnome2/blob/master/glib/sample/iochannel.rb
GTK2はGTK3へ更新されましたが、Glib2は(Glib3へ更新されず)そのままGTK3で使われているので、
そのまま動くのではないかと思われます(手元ではGTK3をインストしてないので動作未確認)
- 593 :デフォルトの名無しさん:2016/07/29(金) 10:58:51.55 ID:1qYsbBpR.net
- >>592
ありがとう助かったよ
検索上手いね!!
- 594 :デフォルトの名無しさん:2016/07/29(金) 15:09:47.59 ID:DEZEXrtC.net
- 配列の中から偶数の要素だけ配列の中に残したいです。テキストにはselect!を使うとあるのですが、まだ、Rubyを勉強して日が浅いので、今までに勉強したやり方で
表記することにしました。自分の考えとしては、配列の要素のvalueを2で割った剰余が0であるもののみ、配列の中に入れなおすという方法しか思いつきませんでした。
そこで以下のプログラムにしてみたのですが、うまく動きません。どこがおかしいのか指摘していただけるでしょうか。よろしくお願いします。
nums = {a: 1, b: 2, c: 3, d: 4, e: 5}
nums.each do |key, value|
if value%2 == 0
nums[:key] = value
end
p nums
- 595 :デフォルトの名無しさん:2016/07/29(金) 15:11:49.29 ID:DEZEXrtC.net
- 配列じゃなくてハッシュでした
- 596 :デフォルトの名無しさん:2016/07/29(金) 15:28:57.91 ID:1qYsbBpR.net
- 先程Gtk::Inputを使った方で
windowの生成も行なうと
上手く期待の動作しなかった
GLib::IOChannelを使ってSTDINをオープンしてadd_watchをそれに使うと
期待の動作になりました
ありがとう
まだGUIの方は作れてないけど作れそうな感じ
- 597 :デフォルトの名無しさん:2016/07/29(金) 15:35:49.37 ID:flV7hOuN.net
- >>594
これだと偶数の要素だった場合、その要素を再代入してることになる
新しく別の配列に代入するとかならその書き方で問題ないと思うよ
ちなみに nums.select! { |k, v| v % 2 == 0 } が一番良さそう
- 598 :デフォルトの名無しさん:2016/07/29(金) 16:15:45.30 ID:WGKZmyFx.net
- もっと別な書き方も紹介して混乱させよう
nums.each_with_object({}){|(k,v),o| o[k] = v if v.even?}
- 599 :デフォルトの名無しさん:2016/07/29(金) 16:55:05.51 ID:Ogz/SEhr.net
- 特に面白いものは書けず
nums.reject{|_,v|v.odd?}
nums.grep(proc{|_,v|v&1==0}).to_h
nums.each{|k,v|v.odd?&&nums.delete(k)}
- 600 :デフォルトの名無しさん:2016/07/29(金) 17:11:04.04 ID:1UayH1GQ.net
- >>599の1つ目が今回に限っては一番妥当
「numsからodd?なものを取り除く」と読み下そう
思いつかなかった>>597-598もぜひ覚えて帰ってね!
- 601 :デフォルトの名無しさん:2016/07/29(金) 19:32:20.85 ID:jkc14IDK.net
- nums.each do |key, value|
if value%2 == 0
nums[:key] = value
end
まずこれはeach doに対してendが無いからエラーになる
そして:keyはkeyではなく:keyというSymbolなのでこれも間違い
nums = {:a=>1, :b=>2, :c=>3, :d=>4, :e=>5, :key=>1}
nums[:b] = 2
p nums #=> {:a=>1, :b=>2, :c=>3, :d=>4, :e=>5, :key=>1}
飽くまで:bに対して2を再び関連付けているだけなので間違い
どうしても上のような書き方がしたいなら
h = Hash.new
nums.each do |key, value|
if value%2 == 0
h[key] = value
end
end
p h #=> {:b=>2, :d=>4} 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
- 602 :デフォルトの名無しさん:2016/07/29(金) 20:01:51.49 ID:mtfgcrou.net
- >>601
やはりあなたはリンクしすぎです
ばいばいおさるさん
- 603 :デフォルトの名無しさん:2016/07/29(金) 23:54:22.01 ID:AO+a9SAV.net
- 某テキスト(?)のメソッド Enumerable#select! を使うなら、
>>597 と >>599 の先頭を参考にして;
nums.select! { |_, val| val.even? }
https://ideone.com/Z84zqk
もしも同メソッドを使用せずに自前で各要素を列挙するなら:
nums.each do |key, val|
nums.delete key unless val.even?
end
https://ideone.com/UqpHHq
なお >>601 のように、元の変数 nums の値を(破壊的代入)で更新せず、
結果としての値を求めることを優先するというお題の改変が許されるなら:
nums.select { |_, val| val.even? }
https://ideone.com/JlEy6w
このコードを推奨する
- 604 :デフォルトの名無しさん:2016/07/30(土) 12:15:20.35 ID:Fe6CTZY3.net
- みなさんありがとうございます。細かい説明が助かります。自分は本当に基本的なことからわかっていなくてどこがわからないのかわからない、という
ていたらくでして。たぶん、いやきっと、593さんのようにメソッドをそれぞれ覚えていけばいいのでしょうが、もう結構記憶容量がパンパンで、とりあえず
知っているメソッドで何とかしようと思いました。しかし、みなさんすごいですね。?皆さん全員プロのプログラマなのですか?
もうちょっと勉強してみたいと思います。ありがとうございました。説明がわかりやすかったです。
- 605 :デフォルトの名無しさん:2016/07/30(土) 12:49:12.22 ID:UN9LAiBT.net
- よく使うメソッドなんて大した数ないから覚えるかその都度マニュアル読めばいいんじゃね
http://docs.ruby-lang.org/ja/2.3.0/class/Hash.html
まあメソッド覚える前に代入とか制御構造とかもっと基礎的なことを最低限理解してからにしろよとは思うが
- 606 :デフォルトの名無しさん:2016/08/02(火) 10:24:25.49 ID:7rZajpxG.net
- エクセルの列の文字列(AとかZZZとか)が何番目の列なのか計算するにはどうしたら良いでしょうか?
- 607 :デフォルトの名無しさん:2016/08/02(火) 10:34:33.19 ID:R1uEEgNe.net
- もっとうまい方法があるかもしれんが
# n番目の列
(n+2+624*26**log(25*n/26+1,26).to_i/25).to_s(26).tr('0-9a-p','A-Z')[1..-1]
# 列sの数
s.tr('A-Z','0-9a-p').to_i(26)+(26**s.length-26)/25
- 608 :デフォルトの名無しさん:2016/08/02(火) 19:33:06.09 ID:G8b1Dkiv.net
- Rubyに最近興味を持った者です
DXRubyを使用しており、Rubyのバージョンは2.0 32bit
OSはwindows7 64bitです
カレントディレクトリにあるフォルダを開き、中にあるtxt形式のファイルを取得し
その一行目に書かれていたことにたいしてifを使うにはどうすればいいでしょうか?
- 609 :デフォルトの名無しさん:2016/08/02(火) 19:49:44.99 ID:GrXRtLCP.net
- >>608
いっぺんに全部やろうとするからわからなくなる
↓のように問題を分割して、ひとつずつ調べていけばいいよ
・カレントディレクトリにあるフォルダを開き
・中にあるtxt形式のファイルを取得し
・その一行目に書かれていたこと
・にたいしてifを使う
- 610 :デフォルトの名無しさん:2016/08/02(火) 20:07:22.42 ID:R1uEEgNe.net
- str = open("フォルダ名/ファイル名.txt").readline # txtファイルの一行目
if (strの条件式)
# やりたいこと
end
- 611 :デフォルトの名無しさん:2016/08/02(火) 21:15:40.05 ID:G8b1Dkiv.net
- >>610
では、二行目を単体で読み込む方法はどうするんでしょうか?
あと一行目と二行目を両方読み込む場合はどうするんでしょうか?
- 612 :デフォルトの名無しさん:2016/08/02(火) 21:20:03.60 ID:bMxB9+Te.net
- >>608
カレントディレクトリ中にある全てのtxt形式のファイルを開く場合
Dir.glob('./*.txt') do |fn|
File.open(fn, 'r:utf-8') do |f|
line = f.readline
if /条件/ =~ line
end
end
end
- 613 :デフォルトの名無しさん:2016/08/02(火) 22:04:55.90 ID:R1uEEgNe.net
- >>611
foo = open("フォルダ名/ファイル名.txt").
line1 = foo.readline # 一行目
line2 = foo.readline # 二行目
大した量じゃないんだからマニュアルを読もう
http://docs.ruby-lang.org/ja/2.3.0/class/IO.html
- 614 :デフォルトの名無しさん:2016/08/03(水) 00:10:59.84 ID:qya5GR80.net
- vipでプログラムの話題で盛り上がってるぞ
http://vipper.2ch.net/test/read.cgi/news4vip/1470062380/
これはrubyのステマするチャンス
- 615 :デフォルトの名無しさん:2016/08/03(水) 00:39:14.55 ID:3mARGs2B.net
- >>606
効率は良くないけど、EXCELで使う程度の数かつ、何十万回も計算を繰り返したりしないなら。
s=“A”; 0.upto(n){s.succ!}; p s
s=“ZZ”; p (“A”..s).to_s.size
- 616 :デフォルトの名無しさん:2016/08/03(水) 02:00:46.62 ID:W0lh95XI.net
- >>606
inject厨が書いてみた:
https://ideone.com/PSRQnw
- 617 :デフォルトの名無しさん:2016/08/03(水) 13:48:51.38 ID:zdWIlhYU.net
- >>606
rubyだと“Z”.nextで”AA”になるから、”A”をスタートとして”ZZZ”までnextをループさせた回数=列の番号になるよ
- 618 :デフォルトの名無しさん:2016/08/03(水) 15:07:33.08 ID:mbys/AN5.net
- A -> 1
Z -> 26
の 26進数なんだよ
だから
ZZZ -> 26*26*25 + 26*25 + 25 + 1
と瞬時に判る
- 619 :デフォルトの名無しさん:2016/08/03(水) 15:10:29.88 ID:mbys/AN5.net
- ごめん間違った
桁の0に相当するものがないから
実際の値は違う
もうちょっと工夫が要るけど
考え方は 26進数
- 620 :デフォルトの名無しさん:2016/08/03(水) 15:17:25.06 ID:B5cRJMaS.net
- sを列の文字列とする
A-Zを A=0, Z=25 の26進数とみなして
s + B..B(Bがsの桁数個) - B が列の番号
だから>>607の下の式のようになる
これの逆変換が求めるものだけど素直にやると桁の左にあるAがなくなってしまうので
一旦 BA..A(Aはsの桁数個)を足しておいて最後にBを削れば良い
それが>>607の上の式
- 621 :デフォルトの名無しさん:2016/08/03(水) 15:26:35.51 ID:mbys/AN5.net
- logを使うのは筋が悪い希ガス
- 622 :デフォルトの名無しさん:2016/08/03(水) 15:31:21.63 ID:B5cRJMaS.net
- じゃあFixnum#bit_lengthでも使おう
- 623 :デフォルトの名無しさん:2016/08/03(水) 15:43:49.69 ID:B5cRJMaS.net
- つまりこういうことね
(n + 2 + 24*26**((25*n + 26).bit_length/4.7).to_i/25).to_s(26).tr('0-9a-p', 'A-Z')[1..-1]
- 624 :デフォルトの名無しさん:2016/08/03(水) 15:51:40.29 ID:kO+977FM.net
- xl = WIN32OLE.new('Excel.Application')
bk = xl.Workbooks.Add
ws = bk.Worksheets(1)
ws.Cells(1,1).Formula='=column($ZZZ$1)'
puts ws.Cells(1,1).Value
bk.Close
xl.Quit
- 625 :デフォルトの名無しさん:2016/08/03(水) 16:03:32.72 ID:W0lh95XI.net
- >>616を一般的な手続き型プログラミングへ書き直してみた:
https://ideone.com/gO9N9x
これならPerlやPythonのような普通の手続き型言語を知っていれば
容易く読めるし、普通のプログラマが引き継いでも問題無く
保守できるのではないかと思われ
- 626 :デフォルトの名無しさん:2016/08/03(水) 16:46:12.54 ID:/NIG+3Tl.net
- n.to_s(26).tr('0-9a-p','@A-Y').sub(/(.)@/){$1.tr('A-Z','@-Y')+'Z'}.sub('@','')
もうちょい短くできそうでできない
- 627 :デフォルトの名無しさん:2016/08/03(水) 16:53:46.46 ID:/NIG+3Tl.net
- n.to_s(26).tr('0-9a-p','@A-Y').sub(/(.)@/){$1.tr('A-Z','@-Y')+'Z'}.sub('@','')
もうちょい短くできそうでできない
- 628 :デフォルトの名無しさん:2016/08/03(水) 16:56:15.69 ID:/NIG+3Tl.net
- 連投すまんこ
あと'@A-Y'じゃなくて'@-Y'やな。動くけど
- 629 :デフォルトの名無しさん:2016/08/03(水) 17:02:40.83 ID:B5cRJMaS.net
- まだ行けるのかな
n.to_s(26).tr('0-9a-p',r='@-Y').sub(/(.)@/){$1.tr('A-Z',r)+'Z'}.delete('@') # 75 B
(n+2+24*26**Math.log(25*n+26,26).to_i/25).to_s(26).tr('0-9a-p','A-Z')[1..-1] # 77 B
- 630 :デフォルトの名無しさん:2016/08/03(水) 17:17:54.18 ID:/NIG+3Tl.net
- ごめんn=26*26とかの時におかしくなるわ
- 631 :デフォルトの名無しさん:2016/08/03(水) 18:04:32.66 ID:/NIG+3Tl.net
- p n.to_s(26).tr('0-9a-p',r='@-Y').tap{|s|s.chars{s.sub!(/(.)@/){$1.tr('A-Z',r)+'Z'}}}.delete('@')
#97B
rubyらしさを捨ててtap使わなければ4B減る
- 632 :デフォルトの名無しさん:2016/08/03(水) 18:06:33.96 ID:mbys/AN5.net
- logなんて使うから可笑しくなる
- 633 :デフォルトの名無しさん:2016/08/03(水) 18:09:55.37 ID:B5cRJMaS.net
- >>632
Math.logを使うのはいつでも正しいよ
>>630が言ってるのは>>627のこと
bit_lengthを使う方も10**20000くらいまでは正しい
- 634 :デフォルトの名無しさん:2016/08/03(水) 18:17:06.18 ID:B5cRJMaS.net
- 「いつでも」は言いすぎだった
logも9.603431447*10**18989までは正しく動作するよ
- 635 :デフォルトの名無しさん:2016/08/03(水) 18:25:45.78 ID:mbys/AN5.net
- いつでも正しいコードを書けよ
- 636 :デフォルトの名無しさん:2016/08/03(水) 18:28:03.24 ID:l8cxGlGj.net
- 諄い
- 637 :デフォルトの名無しさん:2016/08/03(水) 18:34:18.83 ID:mbys/AN5.net
- ついでに言ってやろう
余計な制限のあるコードにはコメントが必須
#logも9.603431447*10**18989までは正しい
+46Bだな
- 638 :デフォルトの名無しさん:2016/08/03(水) 18:39:46.41 ID:B5cRJMaS.net
- >>637
なんかキレてんの? システムに依存しない、アホみたいにでかい数値に対してすらいつでも正しいコードなんて存在するわけないだろ
- 639 :デフォルトの名無しさん:2016/08/03(水) 19:05:26.45 ID:mbys/AN5.net
- いや
切れてないよ
- 640 :デフォルトの名無しさん:2016/08/03(水) 19:14:20.38 ID:B5cRJMaS.net
- そうか、なんかすまんかった
いい加減黙ります ゴルフスレとかあったら面白いかもね
- 641 :デフォルトの名無しさん:2016/08/03(水) 23:34:22.20 ID:W0lh95XI.net
- String#ord を使うと更に短くなった(ついでにエラー検査も削除):
・関数型 :(旧) >>616 --> (新) https://ideone.com/OQLdlR
・手続き型:(旧) >>625 --> (新) https://ideone.com/Ja6tP9
String#succ の存在も初めて知ったし、勉強になったわ
- 642 :デフォルトの名無しさん:2016/08/04(木) 01:32:56.67 ID:feZwYdLF.net
- p s.chars.reverse.map.with_index{|c,i|(c.tr('A-Z','0-9a-p').to_i(26)+1)*(26**i)}.inject(:+)
Enumerator#with_indexはもっと流行っていいと思うんだ
使ってもそんなに短くはならないんだけどさ
- 643 :sage:2016/08/04(木) 01:37:51.37 ID:2HyRwUYq.net
- def cel_No( str )
str.strip.upcase.unpack('C*').inject(0){|result, item| result * 26 + item - 0100 }
end
def cel_str( n )
str = ""
while n > 0
n, r = (n - 1).divmod( 26 )
str << (r + 0101).chr
end
str
end
- 644 :デフォルトの名無しさん:2016/08/04(木) 14:01:54.35 ID:2HyRwUYq.net
- >>643
最後は
str.reverse
でした。
- 645 :デフォルトの名無しさん:2016/08/04(木) 23:00:36.83 ID:c9zwl1qO.net
- SQLの使用に関して質問です。
どのようにすれば、回避できるでしょうか?
■症状:インサートした日本語文字が文字化けする。
title =
- 646 :デフォルトの名無しさん:2016/08/04(木) 23:04:28.59 ID:c9zwl1qO.net
- うまく書き込めなかったので、もう一度
SQLの使用に関して質問です。
どのようにすれば、回避できるでしょうか?
■症状:インサートした日本語文字が文字化けする。
title="あいうえお123"
DB = Mysql.new('host','name','pass','test01')
sql = "UPDATE `test01`.`table01` SET `title` = '#{title}'WHERE `table01`.`id` = '4';"
DB.query(sql)
- 647 :デフォルトの名無しさん:2016/08/04(木) 23:36:28.77 ID:QKnNcils.net
- とりあえずSQLインジェクション丸出しの書き方はやめよう
- 648 :デフォルトの名無しさん:2016/08/05(金) 06:51:27.16 ID:tltzsolz.net
- [nil, *'A'..'Z', *'AA'..'ZZ', *'AAA'..'ZZZ'].find_index('ZZZ')
ひどいけどこれで十分
- 649 :デフォルトの名無しさん:2016/08/05(金) 07:12:44.43 ID:x8TUq60L.net
- Ruby, DBなど、すべてのアプリの文字コードを、UTF-8 に統一すれば?
- 650 :デフォルトの名無しさん:2016/08/05(金) 13:38:20.94 ID:LJe/qM3f.net
- その辺はrubyよりpythonの方が堅牢
perlは論外
- 651 :デフォルトの名無しさん:2016/08/05(金) 15:48:28.22 ID:UhWsfPtN.net
- 横槍失礼します
>>608 です
唐突に質問なのですが
そもそもDXRubyでユーザーに文字を入力させ、それを扱うにはどうすれば良いのでしょうか
- 652 :デフォルトの名無しさん:2016/08/05(金) 15:49:58.62 ID:UhWsfPtN.net
- >>651
連投すみません
RPGの名前入力のようなものです
あと、一旦画面を消すのはどのようにするのでしょうか?
タイトルから本編へとかそういう感じです
結構しらべたのですが.....
- 653 :デフォルトの名無しさん:2016/08/05(金) 16:21:49.83 ID:teNswV+z.net
- DirectXプログラミングかWindowsプログラミングの経験はある?
このへんの基礎知識がないとAPI探せないし何渡していいのかもわからないよ
- 654 :デフォルトの名無しさん:2016/08/05(金) 18:50:19.50 ID:UhWsfPtN.net
- >>653
正直ありません
Rubyが一番最初にやりました
VBSやBASICはやったことがありますが.....
DXRubyを入れて調べながらやっているところです
- 655 :デフォルトの名無しさん:2016/08/06(土) 01:12:59.09 ID:8Rl0Ybxy.net
- DXRubyは知らないけど、そういう基本的な関数は、
チュートリアルでもやれば、わかるのでは?
- 656 :デフォルトの名無しさん:2016/08/06(土) 04:20:54.79 ID:w5zQ+Fii.net
- DXRubyのドキュメント読めばいんじゃねーの
- 657 :デフォルトの名無しさん:2016/08/06(土) 05:53:35.02 ID:2mFu6MHm.net
- >>648
https://support.office.com/ja-jp/article/Excel-の仕様と制限-ca36e2dc-1f09-4620-b726-67c00b05040f
- 658 :デフォルトの名無しさん:2016/08/06(土) 07:35:29.07 ID:aQkr0mnl.net
- >>655
チュートリアルには、文字の描画、キーの判定は書いてありますが
全てのキー入力の監視はどうやってやるのかなと.....
- 659 :uy ◆e6.oHu1j.o :2016/08/06(土) 07:40:48.99 ID:TO2ybUlL.net
- >>652
DXRubyにそういうのをやってくれる関数はないよ
ていうか名前をアルファベットに限定するなら、そこまで長いコードにならないから
ユーザー入力部分を自分で書いてみれば良い
DXRubyは綺麗に小さくまとまっている良いライブラリではあるものの
このくらいはさっと書けないと、機能は結構少ないライブラリだから今後も苦労する事になるでしょう
- 660 :uy ◆e6.oHu1j.o :2016/08/06(土) 07:45:28.31 ID:TO2ybUlL.net
- >>658
こんな感じで取得できる
Window.loop do
x = Input.keys
next if x.empty?
p x
end
- 661 :uy ◆e6.oHu1j.o :2016/08/06(土) 07:51:12.27 ID:TO2ybUlL.net
- >>653
いや、DXRuby扱うのにそういう知識は全然いらない
そもそもゲームのライブラリってのは
DirectXやOpenGLの勉強をすっ飛ばして使えるようにライブラリ作者が上手くまとめてくれているもの
- 662 :デフォルトの名無しさん:2016/08/06(土) 08:14:46.43 ID:aQkr0mnl.net
- >>660
ありがとうございます!
keysで取得できるんですね!
ありがとうございます!
- 663 :デフォルトの名無しさん:2016/08/06(土) 08:28:12.52 ID:aQkr0mnl.net
- >>660
アルファベット限定でいいのでRPGの名前入力をしたいんですが
ユーザーが文字入力したのをnameという変数に記録し
それを画面に表示っていうのはできますでしょうか?
何度も質問本当にすみません
- 664 :デフォルトの名無しさん:2016/08/06(土) 09:21:45.32 ID:xpLjq4a+.net
- >>661
大抵C++のソース眺めるはめになるんだけどね
- 665 :uy ◆e6.oHu1j.o :2016/08/06(土) 10:26:06.77 ID:TO2ybUlL.net
- >>663
ちょっと半端な出来だけど暇だったから書いた
https://ideone.com/r48pB5
文字を打ってエンター押したら
case , when の1のほういくから、そこで文字が青色になるサンプルコード
あと使ってるdxrubyのAPIのInput.set_repeatはこれね
http://mirichi.github.io/dxruby-doc/api/Input_23set_repeat.html
- 666 :uy ◆e6.oHu1j.o :2016/08/06(土) 10:55:37.26 ID:TO2ybUlL.net
- あとは、>>652ここでいってるタイトルから本編とか
その辺りのコードは、ゲームでいうと「シーン管理」という
簡単な方法としては
phaseって変数に値を入れて
https://ideone.com/jJPN3k
こんな風に書くのが初歩的なやり方かな
工夫していくと、この辺も奥が深いロジックになるから、
自分なりにクラス化(シーン管理クラス)とか考えてみると良い
ついでに俺に遜った敬語いらんから
2chで身を低くしても得るもの無いぞ
- 667 :デフォルトの名無しさん:2016/08/06(土) 14:50:23.69 ID:aQkr0mnl.net
- >>666
ありがとうございます!
whenが9なのはなにか意味があるんでしょうか?
- 668 :uy ◆e6.oHu1j.o :2016/08/06(土) 18:32:46.50 ID:TO2ybUlL.net
- >>667
たいして意味はない
- 669 :デフォルトの名無しさん:2016/08/06(土) 19:22:34.03 ID:P6FYCdC3.net
- シーン数はほとんど増えず1桁に収まるという前提で
最大値っぽい値にしてる ってとこだろう
- 670 :uy ◆e6.oHu1j.o :2016/08/06(土) 20:43:13.60 ID:TO2ybUlL.net
- >>669
そんなところ
だけど、別にそこまで真似る必要ないからね
自分のコードの癖に突っ込むという、鋭い突っ込み
- 671 :デフォルトの名無しさん:2016/08/06(土) 23:11:34.04 ID:aQkr0mnl.net
- すみません再び質問です
例えば
test1.rbとtest2.rbいう2つのプログラムファイルがあるとして
test1.rbにはtest2.rbの内容をを実行させるというのはどうやってやるのでしょうか?
自分で、クラスを定義するのでしょうか?
test2.rbの内容はWindow.draw_fontを使いたいです
- 672 :デフォルトの名無しさん:2016/08/06(土) 23:38:13.30 ID:FykwWLua.net
- >>671
Kernel#system
- 673 :uy ◆e6.oHu1j.o :2016/08/07(日) 02:19:16.41 ID:ARnnbWqn.net
- >>671
test2.rbにクラス定義して
test1.rbで
require"./test2.rb"
やれば良いんじゃね
>>672
test1.rb側でウィンドウ生成してるって前提あるだろうからそれ無理
- 674 :デフォルトの名無しさん:2016/08/07(日) 07:23:31.37 ID:bL6v3Ot9.net
- >>673
test2.rbの一行目にClass test2
と、書いて
test1.rbにrequireで読み込みます
そこから例えばAキーが押されたらtest2.rbを実行って
どうやるんでしょうか....
- 675 :uy ◆e6.oHu1j.o :2016/08/07(日) 08:44:57.55 ID:PWyfS198.net
- >>674
その辺がまだわかんない段階なら無理にファイルわけしなくていいと思うぞ
rubyで普通にコード書けば小さめのゲームなんて1ファイルで書ききれるから
test1.rb
https://ideone.com/XyyEb2
test2.rb
https://ideone.com/cAxzVK
一応サンプルとしてはこうなるけど、
- 676 :デフォルトの名無しさん:2016/08/07(日) 08:49:56.24 ID:bL6v3Ot9.net
- >>675
本当に有難うございます
自分でも、もう少しリファレンスとか見てみます!
- 677 :uy ◆e6.oHu1j.o :2016/08/07(日) 08:58:26.20 ID:PWyfS198.net
- >>676
暇なだけだからいいよ
ついでにいっとくと、dxrubyにはSpriteクラスってのがあって
このクラスで描画・移動・当たり判定が全部出来る
rubyの基礎を抑えたら>>675こういうコードじゃなくて
http://mirichi.github.io/dxruby-doc/tutorial/sprite.html
↑ここのサンプルみたいな感じで書いていったほうが良い
速度が10倍以上は違ってくるからね
俺不定期でしかこのスレ見ないけど、まぁがんばって
- 678 :デフォルトの名無しさん:2016/08/07(日) 17:34:52.83 ID:bL6v3Ot9.net
- >>677
速度についてですが
例えばifとcaseで同じ処理するとcaseのほうが早いと思うのですが
同じことをするプログラムでも、コードが短いほうが早いとかありますか?
- 679 :デフォルトの名無しさん:2016/08/07(日) 17:58:57.41 ID:T8DF/r+j.net
- >>678
そんなのあったとしても微差。考えるだけ無駄
それよりアルゴリズムのお勉強した方が早い
- 680 :デフォルトの名無しさん:2016/08/07(日) 18:05:45.89 ID:gluNCp1x.net
- >>678
まずは「Rubyはクソ遅い言語である」という事実を受け入れよう。
じゃあなんでそんなに遅い言語が使われているのかというと、
(1)多くのアプリケーションのボトルネックは言語ではなくDBアクセスやネットワークなどの外部要因だから
(2)速度が重要でないケースは結構多いから
ゲームの例で説明すると、
描画はRubyから直接手を出せないので(1)、更新処理は次の更新までに間に合いさえすればいいので(2)に該当するね
もちろん高度なゲームになると(1)や(2)の前提は成り立たなくなるけど、そのときは残念ながらRubyを捨てる時だ。
- 681 :デフォルトの名無しさん:2016/08/07(日) 19:42:22.24 ID:bL6v3Ot9.net
- >>680
なるほど.....遅い言語なのですね.....
逆に、ライブラリなどを使わず
純粋なRubyが得意とするのはどんなものなのでしょうか?
- 682 :デフォルトの名無しさん:2016/08/07(日) 19:49:02.03 ID:6muXneSj.net
- 文字列の操作
- 683 :デフォルトの名無しさん:2016/08/07(日) 19:50:02.91 ID:bL6v3Ot9.net
- >>682
そうなのですか.....
ありがとうございます!
- 684 :デフォルトの名無しさん:2016/08/07(日) 20:27:25.95 ID:T8DF/r+j.net
- >>681
遅いけれども書きやすいのがメリット
速度を求めてDirectX使いたいならふつーにC#使うのがよろし
- 685 :デフォルトの名無しさん:2016/08/07(日) 21:07:14.31 ID:bL6v3Ot9.net
- https://ideone.com/KDa48P
上記のコードで@@imageというのがありますよね
時々@@とか@から始まる奴があると思うのですが
あれは、何の意味があるのでしょうか?
- 686 :デフォルトの名無しさん:2016/08/07(日) 21:08:49.00 ID:6muXneSj.net
- >>685
これよめ
http://qiita.com/mogulla3/items/cd4d6e188c34c6819709
- 687 :デフォルトの名無しさん:2016/08/07(日) 21:12:57.96 ID:bL6v3Ot9.net
- >>686
あ、すみません!
ありがとうございます!
- 688 :デフォルトの名無しさん:2016/08/08(月) 11:25:24.34 ID:WWplGsDY.net
- とりあえずrubyのリファレンス眺めてこいと言いたくなるな
- 689 :デフォルトの名無しさん:2016/08/08(月) 11:49:51.61 ID:qKDY79To.net
- 四則演算を勉強せずにいきなり微積から勉強しているような感じ
- 690 :デフォルトの名無しさん:2016/08/08(月) 13:22:45.98 ID:ldi7UiFI.net
- 質問ですが
rbenv exec って使ってないんですか?
プロジェクト毎にrubyのバージョン指定するときは
rbebv exec bundle exec rails s
みたいに記述するのかと思うのですが、
ネットだと
bundle exec rails sみたいなのばかりなので、
使わないのか、省略できるのか仕組みがわからないです
- 691 :デフォルトの名無しさん:2016/08/08(月) 15:04:46.88 ID:KcW4wK3e.net
- >>690
rbenv のソース嫁!
- 692 :デフォルトの名無しさん:2016/08/08(月) 18:14:11.09 ID:1QM6yHGZ.net
- >>689
掛け算には順序があります
- 693 :デフォルトの名無しさん:2016/08/08(月) 20:31:33.35 ID:+4ewFkZd.net
- http://mirichi.github.io/dxruby-doc/tutorial/sprite.html
これのライフサイクルを管理するのところなんですが
self.vanish if self.x > 300
ここなのですが
これはx座標300以降のオブジェクト?は描画しないということでいいんでしょうか?
もしも合っているなら例えば250から300の間のような
座標の範囲指定はどのようにやるのでしょうか?
- 694 :デフォルトの名無しさん:2016/08/08(月) 20:46:46.11 ID:7oYgKi44.net
- if self.x > 250 && self.x < 300
じゃないかな。
てかRubyの基本的な制御構文を勉強した方が良さそう
- 695 :デフォルトの名無しさん:2016/08/08(月) 20:49:48.09 ID:qKDY79To.net
- if (250..300).include?(self.x)
とかもいいかな
>>694の言うようにまずは基本的なことを勉強する必要があると思う
この程度すらわからない かつ その都度人に聞いていたんじゃ全然捗らないと思うよ
- 696 :デフォルトの名無しさん:2016/08/08(月) 21:21:44.11 ID:YQYjy21g/
- ありがとうございます
やはり、まずはチュートリアルを完全に理解できるところまで
純粋なRubyを勉強してみます
本当にありがとうございました!
- 697 :デフォルトの名無しさん:2016/08/08(月) 22:48:37.77 ID:+4ewFkZd.net
- なるほど.....
チュートリアルが完全に理解できるように
DXRubyじゃなくて普通のRubyをまずは勉強してみます
ほんとうにありがとうございました!
- 698 :デフォルトの名無しさん:2016/08/09(火) 15:01:07.73 ID:/QwUjUla.net
- 君たちをRubyに導いたnaoyaはc# asp.netの会社に転職した
- 699 :デフォルトの名無しさん:2016/08/10(水) 22:31:03.23 ID:uPyxj/T5.net
- 株式会社TOUAが2016年7月に破産
http://www.tdb.co.jp/tosan/syosai/4191.html
- 700 :デフォルトの名無しさん:2016/08/11(木) 12:06:30.15 ID:v2n9djjr.net
- 女性金詐欺で告発汁
- 701 :デフォルトの名無しさん:2016/08/12(金) 00:04:15.74 ID:YUzYFiQu.net
- 質問です。
cronでシェルからrubyを起動した際、requireしてるgemの一つが読み込みエラーしており困っております。
実行パスが違うからなのでしょうが、こういった場合どう解決すればよいでしょうか?
- 702 :デフォルトの名無しさん:2016/08/12(金) 00:30:51.28 ID:3GviCvck.net
- cronの環境変数は、一般ユーザーの環境変数よりも少ないから、よくトラブルが起こる。
環境変数PATHも見てみ
Rubyの起動オプションなら、-Idirectory かな?
- 703 :デフォルトの名無しさん:2016/08/14(日) 16:05:38.95 ID:qlcn2KoZ.net
- tmp = ["a","b"]
printf "%s %s\n", tmp
とやると`printf': too few arguments (ArgumentError)
というエラーになるのですがPrintfに配列は渡せないのでしょうか
- 704 :デフォルトの名無しさん:2016/08/14(日) 16:53:42.36 ID:MHXGGTGk.net
- printf "%s %s\n"%tmp
printf "%s %s\n", *tmp
好きな方をどうぞ
- 705 :デフォルトの名無しさん:2016/08/14(日) 18:00:18.07 ID:qlcn2KoZ.net
- ああ・・・なんとなくわかりました
ありがとうございます
配列としてのObjectじゃなくって配列のポインタを渡すかしないといけないんですね
全てがObjectだからあかんと・・・ありがとうございました
- 706 :デフォルトの名無しさん:2016/08/14(日) 18:03:55.65 ID:MHXGGTGk.net
- rubyでポインタって何言ってんの?
printf "%s", tmp # => ["a", "b"]
単純に%sが2つあるのにそれに対する引数が1つしかないからtoo few argumentsってなってるんだよ
- 707 :デフォルトの名無しさん:2016/08/14(日) 18:12:25.22 ID:qlcn2KoZ.net
- いや、ようするに引数の展開をObjectそのままだとしてくれなくって
展開する用の指示が*なわけですよね、だから参照を渡してやればいいって話ですよね?
基本的にLLにしろなんにしろポインタは意識させない作りになっているだけでないわけじゃないですよね。
- 708 :デフォルトの名無しさん:2016/08/14(日) 18:13:36.98 ID:DMp4bkRP.net
- Twitterアナリティクスの右上にある「データをエクスポート」からcsvをダウンロードするスクリプトを書きたいと思っています。
https://analytics.twitter.com/
Mechanizeを使ってログインするところまでは出来たのですが、
そこから「データをエクスポート」をクリックし、csvのダウンロードまで実行する手順がわからず行き詰まってしまいました。
これはどのように対処すればよいのでしょうか?
- 709 :デフォルトの名無しさん:2016/08/14(日) 21:12:38.18 ID:Mh5ntfj4.net
- >>708
何が困ってるのか全然分からん
もっと困ってるところを具体的に書いてくれ
- 710 :デフォルトの名無しさん:2016/08/14(日) 21:21:33.21 ID:DMp4bkRP.net
- >>709
↓のコードで、とりあえずログイン後のページまではいけていることを確認できたんですが
require 'mechanize'
agent = Mechanize.new
agent.user_agent_alias = 'Windows Mozilla'
url = "https://analytics.twitter.com/user/【ID】/tweets"
agent.get(url) do |page|
form = page.form_with(action: 'https://twitter.com/sessions')
form.fields[0].value = '【ID】'
form.fields[1].value = '【パスワード】'
p form.submit
end
ここから
・「データをエクスポート」ボタンを押す
・csvファイルをダウンロードする
まですすめる手順がわからない状況です。
jsがきかないとダメなようにも見えて、その場合Mechanize以外の手段を組み合わせる必要がありそうな感じですが・・・
- 711 :デフォルトの名無しさん:2016/08/14(日) 22:52:24.64 ID:SaGN03aV.net
- >>707
参照じゃないよ…
Rubyにはポインタの概念がそもそもないから…
- 712 :デフォルトの名無しさん:2016/08/15(月) 17:05:00.37 ID:g49T5w75.net
- 2016-5-27, JRuby 9.1.2.0 リリース
一方、IronRubyは、2011年が最終リリース
- 713 :デフォルトの名無しさん:2016/08/15(月) 17:13:52.08 ID:g49T5w75.net
- >>707
tmp = ["a","b"]
配列という外側のオブジェクトが1つと、
a, b は文字列という内側のオブジェクトが2つ
コンテナには、コンテナを展開する演算子がある
- 714 :デフォルトの名無しさん:2016/08/15(月) 17:16:50.45 ID:g49T5w75.net
- >>710
Seleniumデザインパターン&ベストプラクティス、2015
OSSのブラウザ自動テストツール、Selenium WebDriver を使って、
Rubyでテストを書いた本
- 715 :デフォルトの名無しさん:2016/08/15(月) 18:00:37.84 ID:GUZ7DBqH.net
- Julia の J かと思ってしまう
- 716 :デフォルトの名無しさん:2016/08/16(火) 12:24:35.22 ID:Bu7T/V8i.net
- Kindle UnlimitedにRuby本もっと増やしてくれ
9/3までに頼む
- 717 :デフォルトの名無しさん:2016/08/16(火) 14:36:31.71 ID:laX+qstW.net
- xmlしたいのですが、エラーがでてよくわかりません。
環境はWindows7
Rubyは2.177P400
を使っています。
- 718 :デフォルトの名無しさん:2016/08/16(火) 14:57:25.67 ID:uRC9VBAF.net
- >>717
その質問で解決法がわかる人間がいたらスーパーエスパーだわw
・なにをしたいのかを具体的に
・どういうコードを書いたのか
・なんというエラーが出たのか
これぐらいは書こうなw
- 719 :デフォルトの名無しさん:2016/08/16(火) 19:28:20.15 ID:laX+qstW.net
- ネットの情報を一つにまとめたい。
コードはまだ書けていない
たぶん、rubyのXMLでエラーじゃないかと思ってます。
一番最新のバージョンでもエラーが出る。
感じです
バージョンがあれば、それに越してみたいです。
- 720 :デフォルトの名無しさん:2016/08/16(火) 19:32:20.09 ID:mJ7ra1LV.net
- 外国の方ですか?
require "open-uri"
xml = open("hoge.xml")
- 721 :デフォルトの名無しさん:2016/08/16(火) 20:32:56.86 ID:h6WvQyhw.net
- 行ってる行動とエラーメッセージの詳細を載せないと推測の仕様もないです
require 'rexml/document'
require 'open-uri'
doc = REXML::Document.new open('http://example.com/example.xml')
- 722 :デフォルトの名無しさん:2016/08/16(火) 22:35:47.88 ID:uRC9VBAF.net
- >>719
コード書けてないならエラーなんて出ないと思うんですが…w
- 723 :デフォルトの名無しさん:2016/08/20(土) 02:58:26.06 ID:5fdRiIgV.net
- コードなど書かずともエラーは出せる
常識じゃないか
- 724 :デフォルトの名無しさん:2016/08/20(土) 08:12:29.76 ID:3vDaga3A.net
- みんなエスパーだよ。
- 725 :デフォルトの名無しさん:2016/08/20(土) 18:27:12.48 ID:UXRRqxP7.net
- バグよと言い出せないうちに
貴方のデバッカー 奪ったLove-letter(Virus)
- 726 :片山博文MZ ◆T6xkBnTXz7B0 :2016/08/20(土) 18:50:44.26 ID:ea4xV4wU.net
- *デバッガー
- 727 :デフォルトの名無しさん:2016/08/24(水) 01:28:41.63 ID:u8a4LAYj.net
- nokogiriとanemoneを使ってあるサイトをスクレイピングしようとしているのですが、
タイトルテキストを抽出しようとしても空白の出力しか表示されません。
環境はWIN7でコマンドプロンプトで入力してます。
単純に記述ミスなら、「syntaxerror」という警告が出てくるのですが今回はそれもないです。
それかjavascriptが邪魔をしているのか・・・
ちなみにサイトは「pornhub」ですw
- 728 :デフォルトの名無しさん:2016/08/24(水) 07:58:12.59 ID:TVgqKey2.net
- で、質問は何なんだよ
- 729 :デフォルトの名無しさん:2016/08/24(水) 09:54:36.61 ID:fznfg9zu.net
- rbenvでcommand毎にバージョンが切り替える方法ってないんですかね?
ディレクトリにlocalで指定するとそのディレクトリに移動しないとならないし
イメージ
/usr/local/aaa -v1.9
/usr/lical/bbb -v2.0
これをワーキングディレクトリがどこであろうと
aaaは1.9で bbbは2.0としたいのですが
- 730 :デフォルトの名無しさん:2016/08/24(水) 10:00:03.83 ID:lMhQNpu5.net
- pornhubざっと調べたが
おそらくクローラ対策に一定時間内に一定回数以上アクセスすると(?
jsでクッキーに何かを設定させて認証してるみたいね
- 731 :デフォルトの名無しさん:2016/08/24(水) 10:10:08.13 ID:lMhQNpu5.net
- >>729
環境変数 RBENV_VERSION を用いる
RBENV_VERSION = 1.9 /usr/local/aaa
これで1.9環境でaaaを実行するはず
- 732 :デフォルトの名無しさん:2016/08/24(水) 10:12:13.68 ID:fznfg9zu.net
- それだと1.9と2.0が混在できないんですよね
- 733 :デフォルトの名無しさん:2016/08/24(水) 11:47:26.61 ID:wj/dhjvF.net
- >>732
どういうこと?
- 734 :デフォルトの名無しさん:2016/08/24(水) 13:57:51.07 ID:zACxNHAZ.net
- >>729
shebangに実行したいバージョンのrubyのパス書いときゃいいんじゃないの
- 735 :デフォルトの名無しさん:2016/08/24(水) 14:45:07.43 ID:9+kSfiVX.net
- >>729
こんなんじゃあかんの?
ルビーのパス/ruby コマンド
- 736 :uy ◆e6.oHu1j.o :2016/08/25(木) 07:13:14.50 ID:AFb0RLFl.net
- require 'mechanize'
url =
- 737 :uy ◆e6.oHu1j.o :2016/08/25(木) 07:15:35.87 ID:AFb0RLFl.net
- え・・・っ
なんかソースコードの書き込みが失敗してる
もうやだ
- 738 :デフォルトの名無しさん:2016/08/25(木) 12:11:25.26 ID:i3bEIs7l.net
- 2chのバグだろ
確認画面が出る際、" を使うと、
サーバーで受け取った文字列の " を、エスケープしていないから、
そこで文字列の終了とみなされる
投稿する際、こちらでわざわざ、\" とエスケープしてから投稿してやれ
- 739 :デフォルトの名無しさん:2016/08/25(木) 15:17:07.10 ID:b4YfCPkD.net
- >>738
すごい、明解
頭いい
- 740 :デフォルトの名無しさん:2016/08/25(木) 18:11:50.12 ID:fNn06GGZ.net
- あるていど長いのは
ideoneみたいなコードサービスで書けば?
- 741 :デフォルトの名無しさん:2016/08/25(木) 19:32:47.82 ID:7trdSkIV.net
- "をエスケープしてなかったらいろいろ悪用されたりしないんかね詳しくは知らんが
- 742 :デフォルトの名無しさん:2016/08/25(木) 21:35:41.81 ID:/4caYD7N.net
- ふつうにideone でいいと思うよ実行結果までついてくるよ
- 743 :デフォルトの名無しさん:2016/08/25(木) 21:43:19.34 ID:KJBRfXOD.net
- ideone はバージョンが指定できればいいのになー
- 744 :デフォルトの名無しさん:2016/08/26(金) 10:21:27.00 ID:QNADLP5T.net
- railsのActiveRecord とか .ancestors # => できないのなんで?
メソッドの継承チェーンが分からないのにどうしてメソッドを持ってこれる
の?
- 745 :デフォルトの名無しさん:2016/08/26(金) 11:08:39.63 ID:3gDvt2/N.net
- > ActiveRecord.methods - Object.methods
でわかるけどトップレベルのActiveRecordは中身がないよ。
> ActiveRecord::Relation.ancestors
だとズラズラでるずら。
- 746 :デフォルトの名無しさん:2016/08/26(金) 12:05:29.40 ID:WnsDsp7+.net
- codepad.org
- 747 :デフォルトの名無しさん:2016/08/29(月) 18:18:22.91 ID:UFqwTsI3.net
- すでに定義されているクラスに対して継承関係を追加することって可能?
- 748 :デフォルトの名無しさん:2016/08/29(月) 18:52:16.97 ID:bxq98iQ5.net
- includeでいけたはず
- 749 :デフォルトの名無しさん:2016/08/29(月) 20:29:24.48 ID:MIStvaWn.net
- extendも忘れるんじゃないぞ
- 750 :デフォルトの名無しさん:2016/08/29(月) 21:20:24.86 ID:EgxA66z3.net
- prependもお忘れなく
- 751 :デフォルトの名無しさん:2016/08/29(月) 21:44:35.95 ID:5rjuE4vI.net
- 全部ちょっとずつ違うんだから出してくるなよ紛らわしいんだよ!
- 752 :デフォルトの名無しさん:2016/08/30(火) 02:57:33.40 ID:CJ2Efr2d.net
- http://blog.supermomonga.com/articles/jruby/javafx-rawr.html
このサイトを参考にして頑張っているんですが
jruby -S rake rawr:jarを実行すると
SyntaxError: /Users/kuni/.rbenv/shims/rake:3: syntax error, unexpected tSTRING_BEG
[ -n \"$RBENV_DEBUG\" ] && set -x
と出てしまい実行できないでいます。
rubyプログラムを.app化したいんです。
何が原因なのでしょうか、
他に何かいい方法があるでしょうか
- 753 :デフォルトの名無しさん:2016/08/30(火) 03:38:25.10 ID:KipFr26h.net
- 3行目に予期しない"か'があるから構文エラーになってる
- 754 :デフォルトの名無しさん:2016/08/30(火) 04:44:33.60 ID:CJ2Efr2d.net
- >>753 このサイトの順にやっていったのですが
~/.rbenv/shims/rake の3行目[ -n "$RBENV_DEBUG" ] && set -x
の何が問題なのかわかりません。
インストールされたファイルで、""を消してみたけどダメでした。
- 755 :デフォルトの名無しさん:2016/08/30(火) 08:47:39.64 ID:KipFr26h.net
- シェルスクリプトなのにRubyのスクリプトとして扱われてるのかな?
取りあえず対処法はあるみたい
ttp://github.com/rbenv/rbenv/issues/467
- 756 :デフォルトの名無しさん:2016/08/30(火) 08:58:41.19 ID:TaoYiOtt.net
- 「ruby unexpected tSTRING_BEG」で検索!
エラーメッセージは、unexpected tSTRING_BEG で終わりかい?
その後に、expecting 解答、と続かないのか?
検索するため一言一句、正確なエラーメッセージがいる
>752では、[ -n \"$RBENV_DEBUG\" ]
>754では、[ -n "$RBENV_DEBUG" ]
これは、シェルスクリプトのtest コマンドだろ。
だったら、\ は付かないから、749が正しい。[ -n "文字列" ]
だから、変数RBENV_DEBUG内に、" ' ! \ や全角文字など、
文字列ではない、よほど変なものが入っているのかも
それか、3行目より前にバグがある。
カッコの対応が取れていないか、全角空白・全角文字(日本語)を使っているとか
それか、ファイルの最後に、制御文字が入っているとか
- 757 :デフォルトの名無しさん:2016/08/30(火) 12:59:38.73 ID:CJ2Efr2d.net
- >>756
>754 の形であってます。
エラーメッセージもunexpected tSTRING_BEGで終わりです。
%% jruby -S rake rawr:bundle:app
SyntaxError: /Users/kuni/.rbenv/shims/rake:3: syntax error, unexpected tSTRING_BEG
[ -n "$RBENV_DEBUG" ] && set -x
- 758 :デフォルトの名無しさん:2016/08/30(火) 20:31:13.62 ID:yZN34uL0.net
- Rubyの「メソッド」って色々あってもっと細かく分類できないかな
インスタンスメソとかクラスメソの違いだけじゃなくて、
例えば .xxx? みたいにハテナがつくメソッドは「ハテナメソッド」とか
自然言語の動詞や形容詞助詞みたいに使い方でもっと細かく
分類してほしい。分類が分かれば、記法がある程度特定されて
メソッド名から推測してぶっつけ本番で使ってもシンタックスエラー
なく使える命名規則があれば便利じゃないかな?
- 759 :デフォルトの名無しさん:2016/08/30(火) 20:40:18.59 ID:KipFr26h.net
- ぶっつけ本番で使うことがないので現状維持でいいです
- 760 :デフォルトの名無しさん:2016/08/30(火) 21:16:54.15 ID:sNUA7e93.net
- これ以上分割する理由なくない?
はてなメソッドってただ返り値がBool型なメソッドってだけなのに他と区別する意味が見いだせん
- 761 :デフォルトの名無しさん:2016/08/30(火) 22:17:09.84 ID:JoG6iYvQ.net
- >>758
ハテナメソッドと、そうでないメソッドに
違いがないので分ける必要ありません。
- 762 :デフォルトの名無しさん:2016/08/31(水) 00:29:51.70 ID:BLd6Di5/.net
- >>752-757
$RBENV_DEBUG には、何が入っている?
他には、ホスト名・ユーザー名・パスに、日本語を使っているので誤動作しているとか
- 763 :デフォルトの名無しさん:2016/08/31(水) 00:35:55.12 ID:ezWZD1bG.net
- >>758
メソッド名を列挙する操作と正規表現組み合わせればいくらでも出来る気がする
- 764 :デフォルトの名無しさん:2016/08/31(水) 02:49:08.99 ID:BLd6Di5/.net
- 特別に扱う関数は、
戻り値がBool型
非破壊的関数は、const
マルチスレッドに対応する関数は、multi_thread
- 765 :デフォルトの名無しさん:2016/08/31(水) 08:39:59.91 ID:mqymnS7Z.net
- 必要なのは新しい文法ではなく英語の語彙力と命名センス
- 766 :デフォルトの名無しさん:2016/08/31(水) 10:30:15.54 ID:aGvvWmav.net
- >>758
逆フィンランド記法で
int i を int ii みたいに定義する馬鹿さ加減
- 767 :デフォルトの名無しさん:2016/08/31(水) 10:37:12.32 ID:LUuLSP6C.net
- "逆フィンランド記法"との一致はありません。
- 768 :デフォルトの名無しさん:2016/08/31(水) 11:37:17.00 ID:mqymnS7Z.net
- 逆ポーランド記法なら聞いたことある
- 769 :デフォルトの名無しさん:2016/08/31(水) 14:04:42.57 ID:hktlAWEt.net
- 逆アイルランド記法とか逆イングランド記法もありそう
- 770 :デフォルトの名無しさん:2016/08/31(水) 14:06:39.13 ID:LUuLSP6C.net
- 逆ポーランド記法は文脈的に全くの別のものじゃん
- 771 :デフォルトの名無しさん:2016/08/31(水) 14:31:38.27 ID:PJmqkaeb.net
- 多分言いたいのはシステムハンガリアンなんだろうな
- 772 :デフォルトの名無しさん:2016/08/31(水) 23:21:21.50 ID:VrI1x3gR.net
- ジャンガリアンじゃね?
- 773 :デフォルトの名無しさん:2016/09/01(木) 00:42:21.07 ID:4EaPp0tJ.net
- いただきが名前をいただきした
- 774 :デフォルトの名無しさん:2016/09/01(木) 02:23:39.56 ID:u/ZMrN1Z.net
- ruby始めて4日目くらいなんだが、リファレンス見るとメソッドの引数名が*pathとかあるんだが、*になんか意味あるんですか?
- 775 :デフォルトの名無しさん:2016/09/01(木) 03:11:44.86 ID:Bl3p1IFz.net
- >>774
可能ならリファレンスの文法の項目は全部読んだ方が良いよ
>仮引数の直前に * がある場合には残りの実引数 (後述の post 引数を除く) はみな配列とし てこの引数に格納されます。 可変長引数、rest 引数などと呼ばれる機能です。 このような引数は 1 つしか作れません。
ttp://docs.ruby-lang.org/ja/2.3.0/doc/spec=2fdef.html
- 776 :デフォルトの名無しさん:2016/09/01(木) 15:14:09.12 ID:GAgoRnb9.net
- Windows + ruby2.3 で使えるサーバ不要のデータベースgemってどんなのがあるんでしょうか
- 777 :デフォルトの名無しさん:2016/09/01(木) 16:41:53.55 ID:lxKZC7pd.net
- >>776
gem install sqlite3-ruby
- 778 :771:2016/09/01(木) 17:23:18.43 ID:dI9CGFDX.net
- >>777
windowsの2.3対応はまだじゃないですか?
githubの最新版だと対応してるっぽいんですが、導入の仕方がよくわかんないです
- 779 :デフォルトの名無しさん:2016/09/01(木) 17:30:15.13 ID:u2weFoMG.net
- >>776
単にデータを保存したいだけならPStoreやMarshalでgem使う必要が無い
- 780 :デフォルトの名無しさん:2016/09/01(木) 17:35:10.99 ID:lxKZC7pd.net
- >>778
ごめん、使えるんじゃないかなーレベルで書いてしまった
- 781 :デフォルトの名無しさん:2016/09/01(木) 19:34:04.12 ID:UWb4BubA.net
- つか自分が「こうしたいな」という要件があって、
それを元にメソッドを調べるときってまず何を見る訳?
- 782 :デフォルトの名無しさん:2016/09/01(木) 20:19:22.98 ID:Xz8sejsg.net
- 上のSQLiteみたいな要素技術の名前とだいたいそれがどんなものかくらいはある程度知ってて当然
ローカルのDBが欲しいな→SQLiteがあったな→ruby sqliteでググろう
となる
- 783 :デフォルトの名無しさん:2016/09/01(木) 20:48:24.77 ID:4EaPp0tJ.net
- >>781
逆引き
- 784 :デフォルトの名無しさん:2016/09/01(木) 20:50:54.60 ID:Uog0CqGC.net
- >>781
どんなメソッドがあるかぐらいは一通りさらっと見て脳内でインデックスを作っておく
細かい使い方まで覚える必要はない。そんなのは後で調べればいい
- 785 :デフォルトの名無しさん:2016/09/01(木) 23:24:31.38 ID:u2weFoMG.net
- とりあえず
ttp://docs.ruby-lang.org/ja/2.3.0/library/_builtin.html
ttp://docs.ruby-lang.org/ja/2.3.0/library/index.html
の一覧を見て、大体何があるかを把握しておく
Array Hash String Enumerable あたりはメソッドも一応目を通しておく
- 786 :デフォルトの名無しさん:2016/09/03(土) 02:48:37.27 ID:uJ1wm+Vm.net
- >>775
ありがとうございます読み込んでおきます
- 787 :デフォルトの名無しさん:2016/09/03(土) 08:05:24.94 ID:wEDYvGbd.net
- splitが末尾の空白業とかを勝手に削っちゃうんですがどうすればいいですか
p "aaa
bbb
ccc
".split("\n")
["aaa", "bbb", "ccc"]
# 望む結果: ["aaa", "bbb", "ccc", "", ""]
"...".scan(/(.*(?:\n|$))/).flatten.map{|i| if i == "" then i else i.chomp end}
だと一応出来たんですが無様すぎる…
- 788 :デフォルトの名無しさん:2016/09/03(土) 08:15:03.42 ID:yBtBzV43.net
- Rubyをこれから学ぼうと考えているものです。
最近、GitやVagrant、ChefなどWeb関係で
必須ともいえるアプリケーションがありますが、
それらはRubyで書かれております。
何故、Rubyがこれらに採用されているのでしょうか。
以前、言語間の性能比較したもので、
処理速度に関しては、PHPの方が処理速度が速いとありました。
にもかかわらず、Rubyが採用されているのか気になったのですが、
どうしてでしょうか?
- 789 :デフォルトの名無しさん:2016/09/03(土) 08:36:23.97 ID:Hj3S1o7Z.net
- >>787
str.split($/,-1)
長くもないんだからString#splitのマニュアルくらい読むと良いよ
ttp://docs.ruby-lang.org/ja/2.3.0/method/String/i/split.html
- 790 :デフォルトの名無しさん:2016/09/03(土) 09:54:12.22 ID:AtgdG5E3.net
- >>788
探したけど、ちゃんと理由を話してくれる記事見つからないな。
個人的な回答だけど参考に
Ruby DSL でぐぐるとわかると思うが、
Rubyの文法で設定ファイルを作ってもプログラムコードっぽく無いようにかけるんだよね。
だからユーザはコード詳しくなくても内容読める。アプリの開発者はRubyだから設定ファイルの解析の必要もない。
あと、VagrantfileもChefの設定ファイルもあれ、素のRubyの文法にしたがってるから
拡張がしやすいとかRubyが採用された理由なのかも
こんな風にかけたりね。
Ruby初学者はちんぷんかんぷんだけどw
%w{vim unzip git mlocate lsof wget}.each do |pkg|
package pkg do
action :install
end
end
- 791 :デフォルトの名無しさん:2016/09/03(土) 13:18:38.92 ID:G3gUtM0z.net
- >>788
処理速度だけが選択基準ならみんなCを選ぶよ
選択基準は開発者のそれぞれだからね
開発速度とかメンテのしやすさとか好き嫌いとか
- 792 :デフォルトの名無しさん:2016/09/03(土) 13:49:20.66 ID:RiDSsLxh.net
- ツール・DSLの作りやすさでは、Ruby, Groovy。
設定ファイルを書く際、プログラミング言語っぽくなくて読みやすい。
さらに手続きも書ける
SASS もRubyだろ。
Gradle は、Groovy
- 793 :デフォルトの名無しさん:2016/09/03(土) 16:56:47.72 ID:w8mOGCX1.net
- perlがいやでrubyに手を出してみたらperlそっくりだったでござる
- 794 :デフォルトの名無しさん:2016/09/03(土) 17:03:34.98 ID:vCC0oq7q.net
- >>788
一言でいうと、Rubyは遅いけど書きやすいから
- 795 :デフォルトの名無しさん:2016/09/03(土) 17:04:16.68 ID:vCC0oq7q.net
- >>793
後継だから似てるだろうけど
PerlよりかはRubyの方が
読み書きしやすいと思う
- 796 :デフォルトの名無しさん:2016/09/03(土) 18:05:32.81 ID:0ZHQPGtd.net
- でもperlっぽい書き方してる人いまだにいるよな
- 797 :デフォルトの名無しさん:2016/09/04(日) 09:39:54.24 ID:pVjNdAS+.net
- >>788
スクリプト言語の速度なんか目糞鼻糞。
(JavaScriptやLuaあたりだけは別格だけど)
多くのスクリプト言語の用途においてボトルネックになるのは言語の処理速度ではなくIO(ネットワーク、DB、ファイル)。
IOはとんでもなく重い処理なので、
スクリプト言語の実行速度の差なんか誤差レベルで全く無視できる。
あとはちょっとしたツールやバッチだと仮に0.01秒が0.1秒に伸びたところで問題にならないケースも多い。
- 798 :デフォルトの名無しさん:2016/09/04(日) 12:31:44.31 ID:C66L8/dk.net
- ツール・DSLの作りやすさでは、Ruby, Groovy だから、最初はこれらでCUIアプリが作られる。
その後、GUIが作られる
次にPythonなどで、類似のフレームワークが作られる。
大規模なサイトでは、速度向上するため、Goなどで作られる
だから、Ruby, Groovy には、文系のアイデアマンが多い。
試行錯誤する実験的な人達が集まる
一方、Pythonでは、理系の数学領域の人が多い
- 799 :デフォルトの名無しさん:2016/09/05(月) 02:22:06.60 ID:SdDvLzP6.net
- ファイル操作をしていて、ファイル名によって(?)期待していない挙動になったので質問させてください。
Windows 10
ruby 2.3.1p112 (2016-04-26 revision 54768) [i386-mingw32]
http://fast-uploader.com/file/7028564377998/
Rubyで書いたのは、引数で渡されたファイル名の末尾に
- 800 :デフォルトの名無しさん:2016/09/05(月) 02:24:10.75 ID:SdDvLzP6.net
- "_"を足して別ファイル作成する、というもの。
これをテストするために"test.bat"を作って、
> test.bat *.txt
という感じでテストしました。
foo(bar).txt
foo(bar)[hoge-huga_fizz].txt
というファイルに対しては、
foo(bar)_.txt
foo(bar)[hoge-huga_fizz]_.txt
となることを期待しましたが
foo(bar)_.txt
foo(bar)__.txt
となります。
色々試したところ、"_"を"a"に変えたり、ファイル名を変更すると期待した挙動になります。
アンダースコアはファイル名的に特別だったりしますか。
ハマりまくっているので助けてください…
- 801 :デフォルトの名無しさん:2016/09/05(月) 02:31:07.88 ID:B0VMf5p9.net
- 詳細不明なzipファイルなんてみる人少ないと思うよ
codepadなんかで投稿しなおしてみては
- 802 :794:2016/09/05(月) 02:42:18.42 ID:SdDvLzP6.net
- 投稿しました。試験用のファイル含めて計4つ分です。
http://codepad.org/phgMbtNs
- 803 :デフォルトの名無しさん:2016/09/05(月) 03:00:37.69 ID:vxYcnkVP.net
- これオリジナルのスクリプトなんだろうか
投稿のために短く切り詰めたとかじゃなく
そりゃ大変だ
教科書投げ捨てる案件だなコレ
- 804 :デフォルトの名無しさん:2016/09/05(月) 03:17:25.42 ID:B0VMf5p9.net
- 新しく作ったファイルは空だけどいいのか?
まあともかくdst_filenameには想定通りの文字列が来てるみたいだから、batファイルの問題なんじゃないか
windowsのことはわからん
- 805 :デフォルトの名無しさん:2016/09/05(月) 04:09:04.01 ID:DasxJQQ9.net
- for %%f in ("%*") do (
echo %%f
ruby test.rb %%f
)
こうじゃない?
bat 使わずに ruby だけでやった方が楽だと思うけど。
- 806 :デフォルトの名無しさん:2016/09/06(火) 00:57:19.17 ID:JK1a3Uc+.net
- bat はバグるからアカン
せめて、PowerShell_ISE だろ
- 807 :デフォルトの名無しさん:2016/09/06(火) 17:01:21.99 ID:XKZPS+fP.net
- batを使うのはbadだぜ
- 808 :794:2016/09/06(火) 22:28:35.50 ID:yRSBEbJd.net
- ファイル名を受け取っているだけのRuby側は問題無さそうということで
ありがとうございました。
- 809 :デフォルトの名無しさん:2016/09/07(水) 06:36:39.93 ID:apKIFhKK.net
- TAIL = '_'
exit if ARGV.empty? || !File.exist?(ARGV[0])
src_filename = ARGV[0]
begin
dst_filename = src.filename.sub(/.\K(\.)(?=[^.]+$)|$/,TAIL+'\1')
end while File.exist?(dst_filename)
p dst_filename
- 810 :デフォルトの名無しさん:2016/09/07(水) 10:51:39.61 ID:dMgwZegp.net
- ruby 2.3.1
rubyをconfigureかmakeまでしたら
make distcleanやっても消えないファイルがあるんですが仕様ですか?
この状態でconfigure && makeすると
executable host ruby is required. use --with-baseruby option.
なって途中で止まっちゃうんです。何でですか?
- 811 :デフォルトの名無しさん:2016/09/07(水) 11:43:57.58 ID:mGf42UhL.net
- >executable host ruby is required. use --with-baseruby option.
をそのまま訳すなら「動かせるrubyが必要だから--with-baserubyオプション使えよ」って事になる
ぐぐったら色々出てくるけど、ソースからコンパイルしてインストールしようとしてるの?
情報不足だからこれ以上はわからない
インスコするならrbenvとかRPM使ったほうが楽に入れられると思う
- 812 :デフォルトの名無しさん:2016/09/07(水) 12:03:10.18 ID:YSZpbVen.net
- >>799-800 >>802 >>808
おまいが悪い
ruby 側の問題
ループ中でファイルが増えてるので
同じファイルにアクセスし続けてる
ファイル一覧を一旦リストに入れてから処理すれば成功するだろう
- 813 :デフォルトの名無しさん:2016/09/07(水) 12:05:38.78 ID:YSZpbVen.net
- windowsの場合だけ問題が起こるなら
原因はディレクトリのソート順かもしれんな
いずれにしてもループの要素をループ中で増減するのは危険
- 814 :デフォルトの名無しさん:2016/09/07(水) 21:57:51.62 ID:tAhMeQ6s.net
- rubyはじめるわ!
- 815 :デフォルトの名無しさん:2016/09/08(木) 00:34:49.37 ID:zamWLbBn.net
- >>799-813
a_.txt ファイルが作られた後、それがbatのループに拾われて、
a__.txt ファイルが作られるとか?
別のディレクトリに、ファイルを作るとか、
ループ終了後に、まとめてファイルを作るなど、排他的に処理すべき
>>810
>make distcleanやっても、消えないファイルがあるんですが、仕様ですか?
makefileの、distcleanの所を見れば?
- 816 :デフォルトの名無しさん:2016/09/08(木) 09:23:30.37 ID:gPBbc6Mn.net
- batファイルの引数以外のファイルは拾われないでしょ
別に問題ない
- 817 :デフォルトの名無しさん:2016/09/08(木) 17:03:47.71 ID:vq3pb7wp.net
- 質問させてください
以下のようなJSONファイルをJSON.parseしてhogeに格納しました
[ { "id":"1","kana":"あ","boin":"a" } ]
この状態で「p hoge.class」するとArryを返されます
JSONファイルをこうすると
{ "id":"1","kana":"あ","boin":"a" }
Hashを返されます
[{…},{…},{…}]のJSONファイルをHashに格納したいのですが
なにか良い方法はありませんでしょうか
よろしくお願いします!
- 818 :デフォルトの名無しさん:2016/09/08(木) 18:11:48.06 ID:uHWEQ8CC.net
- >>817
[ { "id":"1","kana":"あ" }, { "id":"2","kana":"い" }, { "id":"3","kana":"う" } ]
がどう変換されたいのか書いてみて。
- 819 :デフォルトの名無しさん:2016/09/08(木) 20:24:23.21 ID:gPBbc6Mn.net
- hash1, hash2, hash3 = [{・・・}, {・・・}, {・・・}]
- 820 :デフォルトの名無しさん:2016/09/08(木) 21:19:39.88 ID:5PY6byd9.net
- ひとつのdictには一組しかないケースじゃないん?たぶん
hoge.inject({}) {|result, item| result.merge(item) }
hoge.inject({}, &:merge) # 省略形
- 821 :デフォルトの名無しさん:2016/09/08(木) 21:29:09.66 ID:s09Hu+LE.net
- injectにProc渡せるようになったの?
- 822 :デフォルトの名無しさん:2016/09/08(木) 22:09:36.89 ID:gPBbc6Mn.net
- [*1..9].reduce(&proc{|a,b|a+b}) #=> 45
[*1..9].reduce(&lambda{|a,b|a+b}) #=> 45
少なくとも1.8.7の頃からできるよ
- 823 :デフォルトの名無しさん:2016/09/08(木) 22:21:38.10 ID:s09Hu+LE.net
- Symbolじゃないとダメだと思い込んでた
inject/reduceは意図的に両方OKな設計にされてるのね
- 824 :デフォルトの名無しさん:2016/09/09(金) 04:17:17.09 ID:LpeB3e0i.net
- 複数のハッシュ群を、Arrayにいれておいて、取り出して使えば、いいだけ
ary = [ { "id":"1","kana":"あ" }, { "id":"2","kana":"い" }, { "id":"3","kana":"う" } ]
h = ary[1]
p h
{:id=>"2", :kana=>"い"}
- 825 :デフォルトの名無しさん:2016/09/09(金) 07:40:28.22 ID:Lk44lMhw.net
- >>799
bat でやりたいことは、コマンドライン引数のワイルドカード展開なんだろうけど、
# test.rb
p ARGV
---
test.rb *.txt
って、やってごらん。
マニュアルに書かれているようにワイルドカード展開に `*', `?', `[]', `**/' が使える。
Windows環境で []等を含めたければ ''括る、とも書いてあるね。
- 826 :デフォルトの名無しさん:2016/09/09(金) 13:22:13.98 ID:nAt2a2k9.net
- >>819
そのままやればいいんじゃないの?
hash1, hash2, hash3 = JSON.parse(json_string)
- 827 :デフォルトの名無しさん:2016/09/10(土) 11:26:54.07 ID:0WfpQ0VB.net
- >ruby -e " p false && echo;p :end"
false
:end
>ruby -e ' p false && echo;p :end'
false
p :end'
Windowsで'-e'に対してシングルクォート(')でスクリプトを書くと
'|' や '&' や '&&' がコマンドプロンプトのコマンドとして認識されてしまうんですがおま環ですかね?
ruby 2.3.1p112 (2016-04-26 revision 54768) [x64-mingw32]
Windows8.1(x64)
- 828 :デフォルトの名無しさん:2016/09/10(土) 11:36:17.02 ID:0WfpQ0VB.net
- あ、なんかすごくアホな質問してました
無視してくださいorz
- 829 :デフォルトの名無しさん:2016/09/10(土) 13:37:43.64 ID:QUVRyXDh.net
- なんかムラムラするなお前
- 830 :デフォルトの名無しさん:2016/09/11(日) 16:04:49.34 ID:4fbcKkyu.net
- 変数strにはさまざまな文字列が入る可能性があり"apple"か"banana"のどちらかが入っていたときのみtrueを返すようにしたいのですが、
どのように書けばよいのでしょうか
str == (("apple") || ("banana"))
のようにかけるかと思ったのですがうまくいきませんでした
これは論理演算子の左辺がfalseだった場合、右辺は実行されないというrubyの仕様によるものだということはわかったのですが、
ではどうしたらいいのかということがわかりません
- 831 :デフォルトの名無しさん:2016/09/11(日) 16:06:07.87 ID:qOBSijlm.net
- ((str == "apple") || (str == "banana"))
- 832 :デフォルトの名無しさん:2016/09/11(日) 16:16:38.56 ID:4fbcKkyu.net
- >>831
教えていただきありがとうございます
助かりました
- 833 :デフォルトの名無しさん:2016/09/11(日) 16:32:54.36 ID:UPswGxCa.net
- %w[apple banana].any?{|s| s == str}
!!(str =~ /\A(apple|banana)\z/)
やり方はいろいろ
- 834 :デフォルトの名無しさん:2016/09/11(日) 18:08:52.74 ID:7mVeUw5e.net
- ['banana','apple'].include?(str)
- 835 :デフォルトの名無しさん:2016/09/13(火) 08:22:10.35 ID:LgDBG7c/.net
- > これは論理演算子の左辺がfalseだった場合、右辺は実行されない
0点
論理和
論理積
コード(演算子)の処理順序
などを少し整理する事をすすめる
- 836 :デフォルトの名無しさん:2016/09/13(火) 16:29:06.06 ID:aXWSAFy4.net
- あるサイトページをnokogiriで拾うと、正規のURLと文字化けしたURL(%などが含まれる)の2種類のURLで同一の情報を拾ってしまいます。
正規のURLだけの情報えお拾いたいのですがどのような方法がありますでしょうか?
- 837 :デフォルトの名無しさん:2016/09/13(火) 16:35:24.92 ID:aXWSAFy4.net
- ちなみに、
anemone.skip_links_like /除外対象のURLパターン/
で文字化け部分を指定しても改善にはいたりませんでした。
- 838 :デフォルトの名無しさん:2016/09/13(火) 16:36:46.35 ID:80RPfzdF.net
- 文字化けというのはURLエンコードのこと?
- 839 :デフォルトの名無しさん:2016/09/13(火) 16:45:49.24 ID:aXWSAFy4.net
- >>838
URLエンコードです。
デコードすると正規のURLに変換できます。
- 840 :デフォルトの名無しさん:2016/09/13(火) 16:46:32.94 ID:Z1s//V7/.net
- 取得したURLをすべて%付きに変換(正規化)するだけじゃないの?
%なしを正規として扱うのはわかってやらないのならオススメしない。
- 841 :デフォルトの名無しさん:2016/09/13(火) 16:51:13.41 ID:80RPfzdF.net
- デコードしていく方法で考えたらいいんじゃないかな
一応検索したら出てきたもの
http://qiita.com/foloinfo/items/435f0409a6e33929ef3c
- 842 :デフォルトの名無しさん:2016/09/13(火) 17:04:47.99 ID:mdhMcfhG.net
- nokogiriじゃなくてanemoneの問題だろ
focus_crawl で、いらないとお前が思うリンクを弾いたら?
- 843 :デフォルトの名無しさん:2016/09/13(火) 17:19:43.00 ID:aXWSAFy4.net
- >>841
参考リンクの情報ありがとうございます。
一通り試してみますm(_ _)m
>>842
ご返信ありがとうございます。
具体的に申しますと、
[ → %5B
] → %5D
のように、カッコ部分がエンコード/デコードで重複して出力されます。
link.to_s.matchで[●●]や%5B●●%5Dといった条件付けで巡回ページを指定しても、
両方のパラメータが出力されてしまうようです。
- 844 :デフォルトの名無しさん:2016/09/13(火) 19:00:51.61 ID:sMHYkxL7.net
- 正規化して重複したら弾くだけじゃないの?
- 845 :デフォルトの名無しさん:2016/09/15(木) 01:10:39.64 ID:EGe9UG5c.net
- moduleの中でプライベートなインスタンスメソッドを定義するのって変?
クラスにincludeした際にmoduleの別のインスタンスメソッドから呼び出すために用意してみたんだけど…
ちなみにクラスメソッドのような使い方は想定してないのでmodule_functionとかは利用しなかった
- 846 :デフォルトの名無しさん:2016/09/15(木) 19:46:09.23 ID:8swlNZts.net
- data = [ { :name => "foo", :address => "fugafuga"},
{ :name => "bar", :address => "piyopiyo"} ]
↓で「data」の中のハッシュを取り出せました
data.each do |list|
puts list[:name]
puts list[:address]
end
「data」から「:address」に"fuga"を含むハッシュだけを取り出したいんですがうまくいきません
どうかアドバイスをお願いしますm(_ _)m
- 847 :デフォルトの名無しさん:2016/09/15(木) 20:05:06.44 ID:2bVUIpAa.net
- data.select{|it| it[:address] == "fugafuga" }
- 848 :デフォルトの名無しさん:2016/09/15(木) 21:56:41.38 ID:4Lbf8yku.net
- >>847
ありがとうございます
試して見ます!
- 849 :デフォルトの名無しさん:2016/09/15(木) 23:26:56.53 ID:UCCDVfNQ.net
- 横レスだけど、>>847を試してみた
https://ideone.com/xp2IB6
- 850 :デフォルトの名無しさん:2016/09/16(金) 01:04:31.60 ID:egLfcP1P.net
- たびたびすいません
fugafgaではなくgafで抽出したい場合は正規表現使う感じでしょうか
- 851 :デフォルトの名無しさん:2016/09/16(金) 06:12:33.38 ID:DLAZUyzS.net
- リファレンス読もうselectはブロック内で真を返すもののみ残すので正規表現でいけるよ
- 852 :デフォルトの名無しさん:2016/09/16(金) 07:56:10.76 ID:6a7QMzs2.net
- Effective Ruby の項目10に書いてあるけど、
構造化データを扱う際、Hashの配列よりも、
クラスまたは、Struct(簡易クラス、クラスジェネレータ)のような専用の型を、使った方がいい
data[:name]
キー名のような実装の詳細が、隠蔽されず表に出てくる。
また、存在しないキーは、nilとなる
Person = Struct.new(:name, :address) #定数に代入
data = Person.new("foo", "fugafuga")
data.name
Structでは属性になるから、getter, setter も付いているし、
存在しない属性名でアクセスすると、NoMethodErrorになる
- 853 :デフォルトの名無しさん:2016/09/16(金) 09:30:54.73 ID:DLAZUyzS.net
- >>852
複雑にネストしたJSONとかでもそっちのが良いの?
うまく使いこなせる気がしない
- 854 :デフォルトの名無しさん:2016/09/16(金) 09:37:52.73 ID:6a7QMzs2.net
- >>850
data.select{|it| it[:address].match(/gaf/) }
- 855 :デフォルトの名無しさん:2016/09/16(金) 09:44:38.44 ID:6a7QMzs2.net
- 型として固定されている場合は、クラス・Structの方がいい
一方、項目がコロコロ変わるような場合、
何の項目が来るのか、わからない場合は、Hashがいい
- 856 :デフォルトの名無しさん:2016/09/16(金) 10:32:56.00 ID:S3qmK1Rf.net
- >>855
EffectiveRubyの項目10を読んでみました
プログラミング初心者なので書いてあることの半分も理解できませんが
クラス化して汎用性のあるものを作れるように最初から読み込んでみます!
なんとなくやってみたいことが動くというところまでは行きたいので
文字のマッチングから>>846の「data[0]」を出力できるところまでやってみたいと思います
ありがとうございます!
- 857 :デフォルトの名無しさん:2016/09/16(金) 23:44:30.69 ID:6a7QMzs2.net
- 初心者には、EffectiveRuby は難しい。
まず「たのしいRuby 第5版、2016」で文法を勉強すべし
クラス・Structは、DBのレコードのように、項目が固定されている場合に使う
一方、Hashは、事前に項目(キー)がわからない場合。
例えば、文章に出てくる英単語を、使用回数が多い順に並べるとか
- 858 :デフォルトの名無しさん:2016/09/17(土) 00:12:19.00 ID:PduQX1gX.net
- 言語リファレンス読めて習作いくつか書けたら
そのレベルの本はいらんやろ。
- 859 :デフォルトの名無しさん:2016/09/17(土) 15:43:11.73 ID:3YKrhMdt.net
- obj = Foo(x)
みないた、newを使わないインスタンスの生成方法って可能ですか?
以前どこかでこの形を見たような記憶があるのですがとてもあやふやで、
確認しようと色々さがしてみたら見当たりませんでした
やはり記憶違いでしょうか?
- 860 :デフォルトの名無しさん:2016/09/17(土) 15:43:54.52 ID:VbfmfVd0.net
- >>859
Foo というメソッドを定義すればいい
- 861 :デフォルトの名無しさん:2016/09/17(土) 18:42:02.15 ID:9X+eFsUZ.net
- 任意の枚数のトランプを仕分けするプログラムで悩んでいます。
最初にカードの枚数が与えられ、次にカードのシンボルと数字がスペース区切りのセットで与えられます。
例えば、スペードの5なら「S 5」と言った感じです。自分はまだ初心者なので効率的なやり方がわからず、
とりあえず、case文で場合分けして配列に入れるやり方を考えてみました。以下が組んだコードです。
num=gets.to_i
s=[]
h=[]
c=[]
d=[]
i=1
while i<=num
symbol, numeric = gets.chomp.split
case symbol
when symbol=="S"
s<<numeric
when symbol=="H"
h<<numeric
when symbol=="c"
c<<numeric
when symbol=="d"
d<<numeric
end
i+=1
end
print s
とりあえず確認がてらスペードの配列を表示させようとしたら、空配列しか返ってきません。どの部分がおかしいのか
ご指摘いただけませんでしょうか。
- 862 :片山博文MZ ◆T6xkBnTXz7B0 :2016/09/17(土) 19:13:41.02 ID:VM86FVmf.net
- >>861
大文字と小文字が混じってるね。
- 863 :デフォルトの名無しさん:2016/09/17(土) 19:21:36.45 ID:Bzzyu0/Q.net
- >>861
case when構文がおかしいので再確認を
caseで場合分けせんでも
cards = Hash.new{|h,k| h[k] = [] }
while i <= num
symbol, numeric = gets.chomp.split
cards[symbol] << numeric
i += 1
end
でいいんじゃないかなと思うんだが
- 864 :デフォルトの名無しさん:2016/09/17(土) 19:39:53.49 ID:9X+eFsUZ.net
- >>862
うぬ・・・いつのまに・・・めんぼくない
>>863
おお、動きました。すごいな。あまりよくわからないけど、なんとなくわかりました。ありがとうございました。
とにかく、「動いた」のが素晴らしい。あと、できれば、前述のコードが意図したとおりにならない理由を
教えていただけるとありがたいです。
- 865 :デフォルトの名無しさん:2016/09/17(土) 21:27:40.73 ID:owPS/qUi.net
- だからcaseの構文がおかしいっていわれてるじゃん!
case symbol
when 'S'
s << numeric
......
まあこの場合は when 'S' then s << numeric と1行で書くのもアリ
- 866 :デフォルトの名無しさん:2016/09/17(土) 22:34:10.05 ID:/l22qB3W.net
- >>859
RubyやめてPythonへ行けばいい
- 867 :デフォルトの名無しさん:2016/09/17(土) 23:58:36.86 ID:owPS/qUi.net
- >>859
class Foo
def self.[](a)
new(a)
end
end
foo = Foo[0]
p foo.class #=> Foo
- 868 :デフォルトの名無しさん:2016/09/18(日) 09:35:45.27 ID:MJhMf8Pu.net
- >>865
なるほど!書かれるまで全く気付かなかった・・・確かに書き方がおかしい
ありがとうございます。
- 869 :デフォルトの名無しさん:2016/09/18(日) 17:41:19.27 ID:aAaRWXxI.net
- シンタックスエラーごときを自分で直せないならプログラマの素質なし
- 870 :デフォルトの名無しさん:2016/09/18(日) 17:53:33.43 ID:hCSpHgBW.net
- エラーとバグは違う
- 871 :デフォルトの名無しさん:2016/09/18(日) 20:19:58.81 ID:arvHcK2+.net
- symbol === true が falseってだけでエラーではない
- 872 :デフォルトの名無しさん:2016/09/18(日) 21:46:51.64 ID:zoqzORWf.net
- この場合はおすすめしないけど、
case symbol を
case だけにすれば、if 〜 elsif 〜 elsif 〜 相当のことが出来る。
条件式の位置が揃うので、if,elsif より良い感じ。
- 873 :デフォルトの名無しさん:2016/09/18(日) 23:03:18.09 ID:7E6Tur9d.net
- >>867
ありがとうございました
やはり記憶違いのようでした
ですが、ググッている時に[]=のオーバーロード(?)に関する話を見つけられました
下の感じのコードです
class Foo
def []=(a,b,c,d)
p a,b,c,d
end
end
Foo.new()[1,2,3]=4
- 874 :デフォルトの名無しさん:2016/09/18(日) 23:41:47.34 ID:oCekGsiM.net
- Aサイトを巡回するクラスを作ったとします
- 875 :デフォルトの名無しさん:2016/09/19(月) 12:13:31.03 ID:iIvzjj/t.net
- >>861
トランプのカードでは、カード[マーク][数字]のように、
2次元配列で管理すると、うっとおしいから、1次元配列にした方がいい
それで幾つか、変換関数を作っておく
- 876 :デフォルトの名無しさん:2016/09/19(月) 13:04:45.74 ID:GqLEG2EI.net
- >>872
いろいろな表現の仕方があるんですねー
>>875
なるほど…自分はまで全然経験値が足りないので、とにかく動きさえすればいいやと思って
コードを組んでるのですが、これがまた見事に動かないという…
とにかく数をこなそうと思います。ありがとうございました。
- 877 :デフォルトの名無しさん:2016/09/19(月) 16:36:48.51 ID:H3IN7nVe.net
- なんであらゆる面でPythonに劣っていると言われるRuby使ってるの?
Pythonじゃあ駄目なの?
利点と差別化を教えて
- 878 :デフォルトの名無しさん:2016/09/19(月) 16:40:16.95 ID:fIqWe4kn.net
- Pythonは行数が増える。
特に無名関数、クロージャーがすごく書きづらい。
あとデバッグ用にわざと目立つように行頭にprintくのが出来なかったり
行を入れ替えたりするだけでインデントを揃えさせられるのが面倒。
- 879 :デフォルトの名無しさん:2016/09/19(月) 18:19:57.44 ID:jZTV89ee.net
- >>877
使ってるのはRubyじゃなくてRails
単体でバッチ処理書いたりするときはPython使うわ
RoRと同等の使い勝手のPython on Railsがあれば迷わず乗り換えるけど、
やっぱりRubyはフレームワークのDSLとして使うには最適な言語なんだと思うよ
- 880 :デフォルトの名無しさん:2016/09/19(月) 18:22:24.29 ID:EdcTl4fm.net
- >>877
> なんであらゆる面でPythonに劣っていると言われる
どこでその情報を手に入れたのか知らんが、「あらゆる面で」とかいうdisり
ワードをぶっこんでるような記事に論理性はほぼないから質の低さを笑うぐらいしか
読む価値ないよそれ
- 881 :デフォルトの名無しさん:2016/09/19(月) 19:49:24.51 ID:FmjNH1Zy.net
- Ruby on Railsは神
- 882 :デフォルトの名無しさん:2016/09/20(火) 00:19:19.79 ID:w6mPkDpe.net
- 滅びろ
時代遅れの言語よ
- 883 :デフォルトの名無しさん:2016/09/20(火) 01:37:58.83 ID:fS5Ni7aU.net
- 時代遅れのC言語には効かなかった
- 884 :デフォルトの名無しさん:2016/09/20(火) 08:18:08.16 ID:9l0NUqqb.net
- 滅びろ
キッシュイーターよ
- 885 :デフォルトの名無しさん:2016/09/20(火) 09:49:01.89 ID:Xg0W+RA8.net
- ミニツクも消えてるしRuby学習用のサイトが少なくて幻滅しました、
Pythonに乗り換えます
- 886 :デフォルトの名無しさん:2016/09/21(水) 16:10:02.25 ID:zFZPh8Mh.net
- Matrixライブラリをつかって行列の計算を試しているんだけど、
頂点(xyzの3要素)を列ベクトルとして、4x4の変換マトリクスに掛け合わせると
:in `*': Matrix dimension mismatch (ExceptionForMatrix::ErrDimensionMismatch)
というエラーがでちゃう
これ、頂点側にもw要素必要ってことなの?
- 887 :デフォルトの名無しさん:2016/09/21(水) 16:18:10.30 ID:23vZJdQL.net
- そりゃ4次の正方行列と3次元の列ベクトルとじゃ積が定義できんわな
- 888 :デフォルトの名無しさん:2016/09/21(水) 16:30:40.93 ID:zFZPh8Mh.net
- w要素追加してもエラー出るからおかしいなと思ってたんだけど、
列ベクトルじゃなくて行ベクトルかけてた
ほんとごめんなさい
- 889 :デフォルトの名無しさん:2016/09/21(水) 17:18:28.43 ID:23vZJdQL.net
- Rubyより先にすこし線形代数やったほうが良い気がする
- 890 :デフォルトの名無しさん:2016/09/21(水) 17:23:40.85 ID:ib8am8Zc.net
- >>886
馬鹿には無理
- 891 :デフォルトの名無しさん:2016/09/21(水) 21:50:37.29 ID:PZB1d7j5.net
- 問題集のオススメサイト、あったら教えて欲しい
http://vipprog.net/とpaiza見てるんだけど、前者はちょっと問題が難しくて、paizaはBまでやったけど結果が出ないのでわかりにくい
便利なサイト、分かりやすいのがあれば嬉しい
- 892 :デフォルトの名無しさん:2016/09/21(水) 21:55:25.11 ID:23vZJdQL.net
- anarchy golf
- 893 :デフォルトの名無しさん:2016/09/21(水) 22:36:45.56 ID:lN+U+lYo.net
- >>891
yukicoder がいいと思うよ
- 894 :デフォルトの名無しさん:2016/09/21(水) 23:23:10.02 ID:lMM9KPqs.net
- 時代遅れすぎRuby
- 895 :デフォルトの名無しさん:2016/09/21(水) 23:27:54.15 ID:lN+U+lYo.net
- >>894
そう思う人はわざわざ書き込まないよ
なぜなら時代遅れなものに興味は持たないからねw
- 896 :デフォルトの名無しさん:2016/09/22(木) 00:55:23.81 ID:gXd2kX85.net
- あなごるは英語でムリポ……プログラマは英語も出来て格好いいなぁ
ユキコーダーを下からぽちぽちやっていきます
ありがとう
- 897 :デフォルトの名無しさん:2016/09/22(木) 01:31:58.64 ID:XjtOZmEL.net
- >>896
そのまま競技プログラミングの世界においでw
この世界で使う英語はパターンも対して多くないから、yukicoder で問題パターンをある程度把握できたら
海外の問題文もそれほど苦もなく読めるようになるよ
- 898 :デフォルトの名無しさん:2016/09/23(金) 00:04:42.79 ID:sc2fhvDP.net
- PythonとRubyで迷ってる
進めるべき参考書を入門書からフローチャートで教えてくれたら入信しようと思ってるんだが教えてくれない?
- 899 :デフォルトの名無しさん:2016/09/23(金) 00:07:59.29 ID:jTBVehdT.net
- >>898
入信とか考えてたらロクなことないよ
どっちも使えるようになるぐらいの気概を持たなきゃ
- 900 :デフォルトの名無しさん:2016/09/23(金) 01:22:30.21 ID:FvMngb//.net
- Webサイト制作ならRuby
機械学習ならPython
- 901 :スッキリ厨:2016/09/23(金) 01:25:28.31 ID:Krl8LY6k.net
- まずこの本で、オブジェクト指向を学ぶ
スッキリわかる Java入門 第2版、2014
その後、この2冊をこの順に読む
たのしいRuby 第5版、2016
みんなのPython 第3版
クラスを使わないのなら、スッキリを飛ばしてもよい。
ただし、オブジェクト指向の概念がわからない
たのしいだけ読んで、プログラミングするのもいい。
ただし、たのしい・みんなは表裏一体だから、一緒に読むと効率的
- 902 :デフォルトの名無しさん:2016/09/23(金) 12:33:08.19 ID:rjSPjZ1K.net
- >>898
>>901 のはどれも読んでないけど
使えるようになったよ
- 903 :デフォルトの名無しさん:2016/09/23(金) 12:38:44.06 ID:cbvburLV.net
- Ruby1.9.2なんだけど
rbファイルをrequireするときファイル名に日本語(マルチバイト文字)が混ざってるとno such file to loadになってしまうのはどうすれば…
1.8系では普通に日本語名のファイルも読み込めてたんだが
- 904 :デフォルトの名無しさん:2016/09/23(金) 12:39:54.36 ID:rjSPjZ1K.net
- エンコード確認汁
- 905 :デフォルトの名無しさん:2016/09/23(金) 12:57:09.05 ID:jTBVehdT.net
- >>903
1.9.2って…相当化石だぞ
2.3 以降使おうぜ
- 906 :デフォルトの名無しさん:2016/09/23(金) 14:01:02.74 ID:SuD2ulXn.net
- Ruby初歩学の書を読んだら、ネットのリファレンス見ながらの「リファクタリング:Rubyエディション」がおすすめ
rubyだけじゃなくどんな言語にも適用できるめっちゃ便利なコードの書き方や考え方が書いてある
しかも抽象的じゃなく、具体的で簡潔なコード中心だから面倒くさくなくて中高生でも理解できる
個人的には、テストの章とテクニックカタログの章だけは軽く流すか必要になってから読めば良いと思ってる
- 907 :デフォルトの名無しさん:2016/09/23(金) 14:19:37.45 ID:AqTRNsCZ.net
- 悩んでる暇があったらファイル名修正しる
ってわけにはいかんのかの
- 908 :デフォルトの名無しさん:2016/09/23(金) 16:07:06.95 ID:FvMngb//.net
- 納期があるならファイル名修正するで正しいが
そうでないならエラーの原因を徹底的に探すのも正しい
- 909 :デフォルトの名無しさん:2016/09/23(金) 16:08:52.20 ID:FvMngb//.net
- >>906
良書だけど初心者には意味が分からないと思う
あるていどオブジェクト指向に慣れてないと
- 910 :デフォルトの名無しさん:2016/09/23(金) 16:15:35.95 ID:C/wzQI6i.net
- たのしいRubyを一通り読み終えたけど、こっからが難しいな
先日教えてもらったyukicodeをたまにやりつつ、実際何かを作ってみたい
環境構築しようとNetbeans入れたりなんやらしてるけどエラーが出てきてその度にくじけそうになるぜ
- 911 :デフォルトの名無しさん:2016/09/23(金) 19:36:41.06 ID:ytBluy/j.net
- RubyはUNIXで使う言語です
環境構築の最初の一歩はまずWindowsを投げ捨てるところから
- 912 :デフォルトの名無しさん:2016/09/23(金) 21:49:29.32 ID:SuD2ulXn.net
- winで非インストール版のバイナリ(ソースコードじゃないやつ)なら、落としてきてC:\直下にrubyフォルダー作ってその中で解凍して、
すでにある環境変数のPathの値に「;C:\ほにゃらほにゃら\ruby\bin」のパスを一番後ろに追加して書き加えればいいんじゃないの?
公式に挙げられている、ActiveScript版のrubyをダウンロードするなら、
OSがwin32ならRuby-x.x.x (x86-mswin32)の好きなヴァージョン、win64ならRuby-x.x.x (x64-mswin64)の好きなヴァージョンを選べばいい
インストール版はPathを処理してくれるかどうか知らないので、インストール後に自分でPathの値が更新されているか確認して
後はコマンドプロンプト(ランチャーもしくは「ファイル名を指定して実行」でcmdを入れて)起動させて、
「ruby foo.rb」でも「ruby bar.rb」でも「ruby test.rb」でも好きなように
rubyのコード書いていくなら「メモ帳」か「さくらスクリプト」で、保存時に文字コードをUTF-8やSJIS等に自由に変えられる奴が一番楽かつ安全に始められると思う
OSのヴァージョンによってコマンドプロンプト等のコンソールの入力がSJISだけかUTF-8可なのか変わって、最新のならUTF-8で扱われる、て聞いた
Rubyも1.8、1.9、2.0〜の、三つの系統で文字列コードの扱いが異なる
とりあえずは、「p "halloween"」と書いて、文字列の出力を成功させるといい
- 913 :デフォルトの名無しさん:2016/09/23(金) 23:17:21.60 ID:41Vs6wmq.net
- 俺も楽しいRuby片手に勉強してる
win7だからAptanaStudio3を入れてやってけど、結構色々できて楽しいわ
ただ実行はできるけどデバッグしようとすると長々とエラーを吐くから今後が心配
byebugとかpry-byebug入れておいたから最終的にこれで良いのかな
- 914 :デフォルトの名無しさん:2016/09/23(金) 23:48:28.26 ID:SuD2ulXn.net
- ptintfデバッグならぬpデバッグだったから、
rubyのデバッガ関係の話は全然知らない
どうなってるんだろ?
- 915 :デフォルトの名無しさん:2016/09/24(土) 00:31:31.06 ID:2/Geubwu.net
- クラス設計というかモジュール分割というか
そういうのが良くわからん
似たような処理が増えてしまう
- 916 :デフォルトの名無しさん:2016/09/24(土) 00:57:19.72 ID:ODF3DSxf.net
- >>915
文系だな
数学の素養がない
因数分解からやり直せ
- 917 :デフォルトの名無しさん:2016/09/24(土) 01:41:30.89 ID:Bym2Ra4c.net
- どのようにクラスや機能、モジュールにわけるかの方法を知ることより、
なぜ分けなければならないかの理由を知る事こそが一番必要なんだ
これがわかっていないとクラス、モジュール等に分けて使う意味が希薄化して、
最終的に使わなくても良いじゃないかとなってしまう
で、上の方で出たリファクタリング:Rubyエディションなんだけど、
それがずばり書かれてある
どう分けるかという方法より、なぜ分けなければならないのか理由が書かれてある
なぜ分けなければならないのか、を理解するとどのように分けるのか自ずと判明し、
頭空っぽでコードを即、書けるようになる
実はこれは、リファクタリングを行うまでにやっておくべき事で、
リファクタリングはこの上に成り立っている
まぁ、本にも書いてある事だけど、最初から見通しの良いコードを悩んで生み出そうとして時間を浪費するより、
リファクタリングしやすいコードを頭空っぽで躊躇なく書いていって、
汚くなったらリファクタリングして見通しをよくしていくってスタイルが、最終的に一番良いんじゃないかな
(何故なら、絶対に当たる将来の予言なんかできないから、未来を想定して絶対に変更しないコードなんて人間には書けない。
だからこそクラスやモジュールをつかってコードを再利用し、かつ書き直し安いコードを頭空っぽで書いて行きましょうって事)
当の本も抽象的な事より、具体的で簡潔なコード中心だからRubyさえ出来れば誰でも簡単に理解できる
- 918 :デフォルトの名無しさん:2016/09/24(土) 03:29:05.33 ID:ts45zeFc.net
- >>916
お前一年位前にも同じレスしてなかったか
- 919 :デフォルトの名無しさん:2016/09/24(土) 06:45:49.04 ID:jSgJTuJa.net
- >>912-913みたいに突っ張ってる奴も結局みんなMacに乗り換えちゃうんだよな
気持ちはすごくよく分かるが、くだらない落とし穴で時間を無駄にしてるのがだんだんアホらしくなってくる
後々経験として役に立つ苦労ならともかく、そんな暇があったらUNIX触ってた方がよほど役に立つというね
ソースは俺
- 920 :デフォルトの名無しさん:2016/09/24(土) 09:27:40.42 ID:ctlnAmJS.net
- え、「くだらない落とし穴」ならMacも相当なモンがあると思うがw
- 921 :デフォルトの名無しさん:2016/09/24(土) 10:18:30.88 ID:2/Geubwu.net
- >>917
ありがとう
- 922 :デフォルトの名無しさん:2016/09/24(土) 10:44:48.13 ID:fvqTVwn4.net
- >>920
UnixなMacならRuby使うにあたってはWindowsより落とし穴は確実に少ないと思うぞ
Windowsもbash on Windowsがもうちょっとまともに使えるようになれば状況は変わるかも
しれないけどね
- 923 :デフォルトの名無しさん:2016/09/24(土) 13:11:53.19 ID:Bym2Ra4c.net
- そこは普通にお気にのディストリをVMWareに入れてやればいい
winかlinuxならどちらかにこだわる人がいて、
その理由も双方納得出きるほど合理性がある
でもmacはこだわる必要性はまったく無いだろ
何かあんの?
- 924 :デフォルトの名無しさん:2016/09/24(土) 15:22:41.06 ID:fvqTVwn4.net
- >>923
MacOSはなんちゃってUn*xではない、正統なUnixだからね
- 925 :デフォルトの名無しさん:2016/09/25(日) 10:00:28.63 ID:WGcjTmiY.net
- Railsをやりたくて半日インストール作業をやってみたんだけどnio4rのエラーが出て先へ進めない
extconf failed, exit code 1が出てBundleUpadateやDevkitの再インスコやってみたけど変わらず
何か解決方法を知っている人いたら教えてください
- 926 :デフォルトの名無しさん:2016/09/25(日) 10:11:48.07 ID:Yid/aIUh.net
- それだけで分かる人がいると本気で思っているならプログラミングはやめておいた方が良い
- 927 :デフォルトの名無しさん:2016/09/25(日) 10:22:55.56 ID:WGcjTmiY.net
- >>926
エスパーじゃないんだから分かる訳無いだろ
質問の仕方も分からない初心者なんだからそういうツッコミはもうちょっと長めに頼む
- 928 :デフォルトの名無しさん:2016/09/25(日) 11:55:30.67 ID:dZs079/I.net
- >>927
・使ってるOSとビット数
・Railsのインストールに使ったものとそのバージョン
・何をやろうとしてそのエラーが出たのか
・多分コマンドラインにエラーが表示されてるからそれをまるごとコピー
これぐらいは最低限欲しい
- 929 :デフォルトの名無しさん:2016/09/25(日) 12:00:53.76 ID:ISX7o04+.net
- >>927
そのレベルならまずは本買ってきて一字一句違えずにその通りやれ
- 930 :デフォルトの名無しさん:2016/09/25(日) 13:23:10.46 ID:6V8k6iac.net
- railsはバージョン関係でトラブルこともあるのでrailsinstaller使うのもありではないかと
- 931 :デフォルトの名無しさん:2016/09/25(日) 13:45:50.88 ID:hrPU7kVw.net
- 「RoR インストール エラー」で検索!
- 932 :デフォルトの名無しさん:2016/09/25(日) 14:26:19.46 ID:xgjFkYJ1.net
- ArrayでFIFOバッファを作ったとしてスレッドAからArray#concatで追加
スレッドBからArray#eachで読み出したいと考えています
eachで読み出している最中に要素が追加されても問題ないでしょうか?
whileで条件を確認しながらArray#shiftで読むと遅いので出来ればArray#eachを
使いたいのですが・・・
- 933 :デフォルトの名無しさん:2016/09/25(日) 14:29:48.97 ID:oyerjsz0.net
- >>932
素直に Thread::Queue 使えばええんとちゃうのん?
- 934 :デフォルトの名無しさん:2016/09/25(日) 14:39:24.97 ID:hrPU7kVw.net
- 読み出している配列を更新してはいけない。
別の配列に、書き込めばいい
そうしないと、バグる
- 935 :929:2016/09/25(日) 14:41:30.46 ID:hrPU7kVw.net
- >読み出している配列を更新してはいけない
スマン。更新じゃなくて、追加だな
- 936 :デフォルトの名無しさん:2016/09/25(日) 19:32:28.37 ID:YdU0dJzE.net
- >>925
libev-dev が入ってない気がする。
- 937 :デフォルトの名無しさん:2016/09/25(日) 21:15:17.31 ID:xgjFkYJ1.net
- >>933
そんなのあったっけ・・・っと思ったら2.3から追加された物ですか
今すぐに動かせるのは2.1なので試せていませんが
リファレンスマニュアルを読むとpushで追加しpopで読み出していくようですね
これだと結局whileで条件を見ながらループを回すようですが速くなるのでしょうか?
>>934
バッファを2つ用意して交互に使用しeachで読み出すようにしたらwhile&Array#shiftの
1/3くらいで処理が終わるようになりました。コードの可読性が低下しましたけど
- 938 :デフォルトの名無しさん:2016/09/25(日) 21:18:44.25 ID:oyerjsz0.net
- >>937
1.9 にも Queue クラスあるよ
- 939 :デフォルトの名無しさん:2016/09/25(日) 22:03:00.52 ID:xgjFkYJ1.net
- >>938
えっ?リファレンスマニュアルを見てもそれっぽいのはないような・・・
- 940 :デフォルトの名無しさん:2016/09/25(日) 22:07:55.11 ID:oyerjsz0.net
- >>939
https://docs.ruby-lang.org/ja/1.9.3/class/Queue.html
- 941 :デフォルトの名無しさん:2016/09/25(日) 22:29:32.99 ID:w3+kVjO9.net
- ID変わっています
>>940
ビルトインじゃなくてそっちかよw
2.1にもあるようなので試してみます
- 942 :デフォルトの名無しさん:2016/09/26(月) 14:34:41.04 ID:ymOrEJcI.net
- >>937
>コードの可読性
君の経験が足りないだけだよ
- 943 :922:2016/09/27(火) 07:33:34.37 ID:NSert0FA.net
- 自分で頑張ってみようと思ったけどギブ。
教えてください。
・Win10 64bit Ruby2.3.1p112 Bundler1.13.1
gem rails installすると
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
current directory: C:/Ruby23/lib/ruby/gems/2.3.0/gems/nio4r-1.2.1/ext/nio4r
C:/Ruby23/bin/ruby.exe -r ./siteconf20160927-10924-161qu8n.rb extconf.rb
checking for unistd.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
中略
extconf failed, exit code 1
と出てRailsをインスコできないので、対処法ご存じの方教えてください。
よろしくお願いします。
- 944 :デフォルトの名無しさん:2016/09/27(火) 08:46:30.98 ID:iZeFgu2i.net
- DevKitの設定してないんじゃないかな
DevKitのインストール先で ruby dk.rb init、ruby dk.rb install
- 945 :デフォルトの名無しさん:2016/09/27(火) 08:51:36.06 ID:NSert0FA.net
- >>944
DEVKITは導入済み
一応再度やってみたら
[INFO] Skipping existing gem override for 'C:/Ruby'
[WARN] Skipping existing DevKit helper library for 'C:/Ruby'
と出てきたのだけど、これは既にあるからスキップしたよってことでいいのかな
- 946 :デフォルトの名無しさん:2016/09/27(火) 09:37:14.96 ID:iZeFgu2i.net
- C:/Ruby23じゃないのか
- 947 :デフォルトの名無しさん:2016/09/27(火) 09:40:30.89 ID:fC9vfSe2.net
- gem env
RUBY VERSIONが2.3.1である事
RUBY EXECUTABLEが変なのになってないか
ruby -rdevkit -e"puts ENV['RI_DEVKIT']"
Devkitのパスが表示される事
それぞれ確認
- 948 :デフォルトの名無しさん:2016/09/27(火) 12:34:25.41 ID:l7d7Fmom.net
- >>943
諦めてMac買うかVirtualboxにLinux入れようぜ
Railsならどうせ運用はLinuxなんだからWinで苦労するだけ時間の無駄
- 949 :デフォルトの名無しさん:2016/09/27(火) 12:50:04.66 ID:H3ALlq6Q.net
- Winで動いたところで運用環境ですんなり動くかというと極めて怪しいしなあ
Ruby on Win自体を否定するわけじゃないがRailsとなるとさすがにやめといた方がいい
Vagrant使えばネイティブと遜色ない使い勝手でVirtualBox上のLinuxのRubyが使えるよ
- 950 :デフォルトの名無しさん:2016/09/27(火) 12:52:25.17 ID:xpAbcIxp.net
- railsなんて初めてインストールしたけど、sqlite3に罠がある以外は簡単だったよ
- 951 :デフォルトの名無しさん:2016/09/27(火) 19:19:06.74 ID:X5TalmgP.net
- >>950
あれは酷いよな
結局Ruby2.3だと無理だったからRailsInstalleで入れたからRubyだけ2.2.5だわ
いまだによく分からん
- 952 :デフォルトの名無しさん:2016/09/27(火) 20:49:35.70 ID:FT4BHNA6.net
- ↓mingw版rubyのsqlite3はこのページのやり方で出来る。
http://masamitsu-murase.blogspot.jp/2013_05_01_archive.html
gem uninstall sqlite3でダメなやつを消しておくのを忘れずに
- 953 :デフォルトの名無しさん:2016/09/27(火) 23:56:19.00 ID:NSert0FA.net
- sqlite3が原因だったようです。
教えてくれた人ありがとう、あなた達はエスパーだ。
- 954 :デフォルトの名無しさん:2016/09/28(水) 13:58:43.24 ID:5Dppgsl7.net
- 何か色々気になっちゃったから改めて色々試したらおかしな事になってたわ……
・環境
win7-64bit
Ruby2.2.5-x64
Rails-5.0.0.1
Apatasudio3
・症状
apatasudio3で新規でrailsプロジェクトを立ち上げると以下の文章が表示されて必要なファイル群が作成されない
$ rails .
sh.exe": rails: command not found
が出てファイル群やgemfileが生成されない
ターミナル上でrails new my-rails-appなどを打ち込んだ場合にはファイル群が生成される
なんでこんなに環境構築するのが面倒なんや……
- 955 :デフォルトの名無しさん:2016/09/28(水) 14:04:25.71 ID:LrnfCbIH.net
- パスが通ってないのか
- 956 :デフォルトの名無しさん:2016/09/28(水) 15:16:47.47 ID:5Dppgsl7.net
- >>955
パスを通すっていうのは分かるんだけど、どこのパスを通せば良いのか分からん……
gitのsh.exeがあるフォルダのパスを環境変数のPathに入れてみたけどダメだし
- 957 :デフォルトの名無しさん:2016/09/28(水) 15:24:18.75 ID:LrnfCbIH.net
- command not found はsh.exeが出してるんだから、rails に通さないと
- 958 :デフォルトの名無しさん:2016/09/28(水) 15:31:37.09 ID:LrnfCbIH.net
- Windowsだといろいろめんどくさそうね
ちょっとやってみるかなあ
Windows7にRailsInstaller、AptanaStudio3をインストールして、Herokuにデプロイ
http://twosquirrel.mints.ne.jp/?p=4449
- 959 :デフォルトの名無しさん:2016/09/28(水) 16:01:25.93 ID:5Dppgsl7.net
- >>957
ありがとうー、やっと出来た
C:\Users\(ユーザー名)\.rbenv-win\versions\2.2.5-x64\bin;
を環境変数Pathに入れたらやっと認識してくれた
これでかなり便利になった
- 960 :デフォルトの名無しさん:2016/09/28(水) 17:05:40.29 ID:5Dppgsl7.net
- ついでにやっとこさruby-debug-ideがインストールできた!
ずっとインストールしようとするとエラー出てたけど、やっと原因が分かったわ
俺みたいにやらかした人が居るかもしれんし、書いておくわ
・原因
インストールしたRubyフォルダを別の場所に移動させる
・起きる現状
Debkitのパスが通らなくなり、一部のgem画インストールできなくなる
・解決作
Devkitのconfig.yml(これは調べるとすぐ出てくる)
C:\〜\2.2.4-x86\lib\ruby\site_rubyにある
devkit.rbを開いて、ここに書いてあるPATHも直す
この両方をやるとインストールできたわ
前者は色々書いてあったけど、後ろのやつはどこにも書いてなかったわ
- 961 :デフォルトの名無しさん:2016/09/28(水) 17:35:29.75 ID:0twLS1po.net
- Devkitのwikiページに書いてあるんだよなぁ
Devkitを再インストールする時は--forceオプション使って
ruby dk.rb install --force
にしろって
- 962 :デフォルトの名無しさん:2016/09/28(水) 19:45:58.68 ID:gV6SXq7T.net
- なんでみんなWindowsは鬼門だと分かってて手をだすのだろうか
VM 立てる手間の方がはるかに小さいというのに
- 963 :デフォルトの名無しさん:2016/09/28(水) 20:56:56.38 ID:xWtP4xm9.net
- 構築済みのVMイメージどこかにないかな
- 964 :デフォルトの名無しさん:2016/09/28(水) 21:04:25.58 ID:uPu5A795.net
- Linuxなら構築クソ簡単だからそんなもん要らんよ
いかにWinが時間の無駄だったか痛感することになる
- 965 :デフォルトの名無しさん:2016/09/28(水) 21:14:26.77 ID:YWcJ1Auf.net
- Queue#popでNo live threads left. Deadlock? (fatal)
が頻発するんですがググっても原因が良く判りません
何がどうなるとこれが出るんでしょうか?
- 966 :デフォルトの名無しさん:2016/09/28(水) 21:25:09.93 ID:0twLS1po.net
- >キューが空の時、呼出元のスレッドは停止します。
スレッドまだ作ってないor他のスレッド動いてないのにpop呼ぶと死ぬ
- 967 :デフォルトの名無しさん:2016/09/28(水) 21:34:14.07 ID:gV6SXq7T.net
- >>964
マジアホらしいほど簡単だもんな
rbenv 入れて使いたいバージョンの Ruby をインストールして、あとは Gemfile 作って
bundle install で終了
何か足りなかったとしても apt-get なり yum なりでパッケージ追加するだけでほとんどは
解決という
- 968 :デフォルトの名無しさん:2016/09/28(水) 22:21:57.22 ID:YWcJ1Auf.net
- >>966
ありがとう。えぇぇ・・・なんつう仕様なんだ。使いにくいだろ
書き込み側のスレッドは読み出し側のスレッドの仕事が終わるまで
生きていなきゃいけないってことじゃないか。めんどくせぇ・・・
- 969 :デフォルトの名無しさん:2016/09/28(水) 22:32:46.99 ID:gV6SXq7T.net
- >>968
> 書き込み側のスレッドは読み出し側のスレッドの仕事が終わるまで
> 生きていなきゃいけないってことじゃないか。めんどくせぇ・・・
めんどくせえって当たり前の仕様じゃん
書き込み側のスレッドがなくなってしまったら、読み出し側のスレッドがブロックしたときに
もうそこから復帰する手段がなくなるんだから
- 970 :デフォルトの名無しさん:2016/09/28(水) 22:53:24.25 ID:YWcJ1Auf.net
- 個人的には便利そうで使えない・・・
ダブルバッファのほうが速いし制約も少ない。書き込み側スレッドは仕事が終われば終了しちゃっても問題ないし
- 971 :デフォルトの名無しさん:2016/09/29(木) 01:23:02.71 ID:sOqcQCOx.net
- linux って真っ黒の画面でよくわからないイメージあるんじゃ
- 972 :デフォルトの名無しさん:2016/09/29(木) 06:05:14.02 ID:Xh0zax2W.net
- Windowsであっても黒い画面が出す英語のエラーメッセージに悪戦苦闘するんだからたいして変わらん
えっWindowsではIDE使う?あらそう
プログラミングに興味ある人の統計的にはLinuxも「できる」→「面白い」「便利」になる割合が高いので試す価値はあるとは思う
WindowsでRubyするのが無駄遠回りとわかるためには知識経験が別途要るのも事実なので最初から無理強いはせんがね
- 973 :デフォルトの名無しさん:2016/09/29(木) 06:58:53.52 ID:1Mz/tgYS.net
- いったんLinuxでのやり方を覚えたら以後はローカルでの開発ですら間違いなく二度とWinなんか使わなくなる
少なくともRailsやるんなら絶対にLinuxは避けて通れないんだから、どう考えても時間の無駄だな
- 974 :デフォルトの名無しさん:2016/09/29(木) 07:23:11.12 ID:ZpUMfWKu.net
- 脳内で喚いて窓叩きに使ってるだけの一部の精神障害の人を除いて
みんな実際に数ヶ月くらいWindowsで環境整えようとして四苦八苦した結果「やっぱ無駄だわ」という結論になってるので
できればそのへん考慮して立ち止まってくれると幸いではある
あなたより技術があったり経験があったり時間だけはたっぷりあったりする人たちが常用挫折してるのでそのへんを汲んでもらうとw
- 975 :デフォルトの名無しさん:2016/09/29(木) 07:55:18.21 ID:PwoKthPB.net
- しかしLinuxしかできない奴が有能かというと・・・
- 976 :デフォルトの名無しさん:2016/09/29(木) 08:02:22.78 ID:1Mz/tgYS.net
- 残念だがMatzはWindowsを全然使ってないことで知られている
- 977 :デフォルトの名無しさん:2016/09/29(木) 22:28:04.17 ID:4TiY9tFk.net
- >>975
んな奴いねーよ
Windowsしか使えない奴やVisualStudioしか使えない奴ならいるがな
- 978 :デフォルトの名無しさん:2016/09/30(金) 00:15:46.69 ID:88GOzilz.net
- Linux API を、Windows API に変換するので、Ubuntu64 のバイナリがそのまま動く、
Windows Subsystem for Linux (WSL) で、Ruby, Rails をやっている人いる? 調子はどう?
apt-get で、パッケージもインストールできる
日本語も使える端末、ConEmu。
GUI表示用のXサーバー、Xming X Server for Windows
- 979 :デフォルトの名無しさん:2016/09/30(金) 17:02:44.30 ID:8cA8SzFR.net
- >>977
Linuxしか使えない香具師はいる
コマンドプロンプトで cp hoge fuga とかやって
???になってるひとを見たことがある
- 980 :デフォルトの名無しさん:2016/09/30(金) 20:23:55.60 ID:dFgkaxUg.net
- >>979
さすがにこれだけWindows機がはびこってる状況でそれはちょっと考えにくいなぁ
と言いたいところだけど、最近はMacもそれなりにユーザがいるので、そっちかもしれない
macOSはLinuxにかなり似てるからね(別物といえば別物なんだけど)
- 981 :デフォルトの名無しさん:2016/09/30(金) 21:02:39.15 ID:4hxo3I+i.net
- 俺もWinはさっぱりだなあ
さすがに世間一般の基準でいえば相当詳しい部類に入るだろうけど、
ADやれとかサーバー作れとかバッチファイル書けとか言われたら全くわからん
- 982 :デフォルトの名無しさん:2016/10/01(土) 01:46:14.99 ID:mk3uechM.net
- windowsでrubyは良いぞ
何が良いのかって?
それは、windowsでrubyを動かすのが良いんだろ
というかwindowsでのrubyのHowto本、もしくは解説本がでればこの楽しさをわかる人がもっと増えると思うんだけどな
技術評論社やオーム社といった、技術系出版社あたりが出してくれれば
- 983 :デフォルトの名無しさん:2016/10/01(土) 01:47:56.65 ID:HPdYXbOV.net
- その楽しさを書けよ
意味わからん
- 984 :デフォルトの名無しさん:2016/10/01(土) 02:15:08.76 ID:bGyuSNJm.net
- エクセルが操作できる
業務が捗る
- 985 :デフォルトの名無しさん:2016/10/01(土) 02:18:33.94 ID:zpy+n7k9.net
- IronRubyが生きてたらまだしも
- 986 :デフォルトの名無しさん:2016/10/01(土) 03:22:58.95 ID:KyDhnGoE.net
- 現在のOSシェアトップはLinuxじゃないのか?情弱ばかりだけど
- 987 :デフォルトの名無しさん:2016/10/01(土) 05:11:52.16 ID:WpTrCWkX.net
- Linuxがトップはありえない
- 988 :デフォルトの名無しさん:2016/10/01(土) 10:42:36.04 ID:rAdXsmVI.net
- Rubyの動作環境としては開発者の数も生み出す金も圧倒的にLinuxがシェアトップでしょ
- 989 :デフォルトの名無しさん:2016/10/01(土) 14:31:24.74 ID:HPdYXbOV.net
- シェアのグラフなかったっけ?
- 990 :デフォルトの名無しさん:2016/10/01(土) 15:04:25.52 ID:AS9zp3Ka.net
- Linuxがぶっちぎりでトップだろ
- 991 :デフォルトの名無しさん:2016/10/01(土) 15:46:42.68 ID:O8RQcCl8.net
- クライアントOSのシェアとしてはLinuxは底辺だけど、開発者用としてはそこそこ行ってる印象
- 992 :デフォルトの名無しさん:2016/10/01(土) 16:50:18.79 ID:mk3uechM.net
- windows上のrubyのハック本をどこか出してくれないかな
- 993 :デフォルトの名無しさん:2016/10/01(土) 16:51:45.55 ID:WpTrCWkX.net
- 982は開発者以外も含んだユーザー全体のことかと思ってた
- 994 :デフォルトの名無しさん:2016/10/01(土) 17:10:34.16 ID:rAdXsmVI.net
- >>992
能力のある人は結局UNIXに行っちゃうから難しいだろうね
もちろん987自身も例外ではなく、このままRubyを続けていればいずれ確実にその日が来る
今は信じられないかもしれないが、Rubyはそういうもんだ
- 995 :デフォルトの名無しさん:2016/10/01(土) 19:04:58.42 ID:cITK0T7f.net
- rubyスレってwindowsがどうのこうの言い続けてるアホが住み着いてるけど
ずーと何の役にも立たねえな
- 996 :デフォルトの名無しさん:2016/10/01(土) 20:55:59.75 ID:2D+fRjVU.net
- ずーり T T
ずーり ,/´ ̄``:ヽ, ,/´ ̄``:ヽ,
/××× :::::::/××× ::::ヽ
|∀・ ×× :::::||∀・ ×× :::::| サァ アキラメロン!
T ヽ××× ::::/ ヽ××× ::::/ T o
,/´ ̄``:ヽ, '''''''''''''´´ `'''''''''''''´´ /´ ̄``:ヽ,
/××× ::::ヽ ヒ、ヒィー / ::::ヽ
|×・∀・ × :::| ('A`≡'A`) | ::::|
ヽ××× ::::/ T 人ヘ )ヘ T ヽ ::::::/
`'''''''''''´´'/´´ ̄`:ヽ, ./´´ ̄`:ヽ,`'''''''''''''´´
/ ××ゝ::ヽ./ ××ゝ::ヽ
ずーり | ×× ・∀|| ×× ・∀|
ヽ ××ゝ::/ヽ ××ゝ::/ ずーり
- 997 :デフォルトの名無しさん:2016/10/02(日) 05:55:02.87 ID:kFeo4TbM.net
- なんか変なのが沸いてるなと思ったらlinux以外認めない自演厨か
ID変えて書き込んでも構わないが火病だけはやめとけ
それと、rubyのホビー的な楽しさを否定する意図は何なんだろうな?
- 998 :デフォルトの名無しさん:2016/10/02(日) 07:07:11.59 ID:JfqyOTuc.net
- すまん
本当はLinux以外のRubyを知らなかっただけなんだ
別にRubyの楽しさを否定したいわけじゃない
あらためて考えるとCで書かれているわけだからLinux以外でもRubyを楽しめるんだよな
Win32OLEライブラリだってわざわざ用意されているわけだし
- 999 :デフォルトの名無しさん:2016/10/02(日) 07:50:59.20 ID:+f7TOXbf.net
- 導入で苦労するのは一部の特殊な性嗜好の人を除けば楽しさ以前の問題だろう
WindowsでUbuntuが動くようになったからだいぶ希望が出てきたけど、
そっちが主流になれば昔ながらのネイティブなWindows版Rubyはとうとう完全終了でUNIXに統一されちゃうわけだし
- 1000 :デフォルトの名無しさん:2016/10/02(日) 08:29:55.68 ID:kFeo4TbM.net
- >>998
そうだったのか
俺はてっきりrubyが気に喰わなくて荒らしてるんだと思った
スレ住人を装って扇動したり荒らしたりする手口とか、またいつものpython野郎かと勘違いしたよ
あいつはwindows用rubyを絶対認めたがらない癖があるから
- 1001 :デフォルトの名無しさん:2016/10/02(日) 09:00:52.33 ID:UOjgrslt.net
- WindowsでRubyは認めるがWindowsでRailsはやめとけと言わざるをえない
トラップが多すぎる
- 1002 :デフォルトの名無しさん:2016/10/02(日) 10:05:31.62 ID:k1HK9CGy.net
- >>1001
vagrantが楽。
- 1003 :デフォルトの名無しさん:2016/10/02(日) 10:14:32.30 ID:UOjgrslt.net
- >>1002
Windows で vagrant 自体がトラップという…
シンボリックリンクの扱いや改行コードの違いなど、そこかしこに罠があるぞw
- 1004 :デフォルトの名無しさん:2016/10/02(日) 15:21:32.45 ID:GX41vvMR.net
- >>982 >>984
そういう用途なら
pythonの方がいいよ
割とマジで
- 1005 :デフォルトの名無しさん:2016/10/02(日) 15:22:16.56 ID:GX41vvMR.net
- 次
http://echo.2ch.net/test/read.cgi/tech/1249737531/
総レス数 1005
291 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★