Ruby 初心者スレッド Part 54
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2014/02/17(月) 09:50:07.32質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ
前スレ
Ruby 初心者スレッド Part 53
http://toro.2ch.net/test/read.cgi/tech/1383742375/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0002デフォルトの名無しさん
2014/02/17(月) 09:54:06.36乙、待ってたよん!!
0003デフォルトの名無しさん
2014/02/17(月) 10:13:17.70や
[1 , 2 , 3].sum #=>6
とかのメソッドが無い理由ってどんなことが考えられますか?
一見便利そうなのに。
[1 , 2 , 3].inject(:+)
で解決できるのはわかるのですが
0004デフォルトの名無しさん
2014/02/17(月) 10:22:07.37Objectクラスにaddやsumに反応するメソッドを実装できたら考えてあげてもいいよ
0005デフォルトの名無しさん
2014/02/17(月) 11:00:27.060006デフォルトの名無しさん
2014/02/17(月) 11:14:55.45まあそういうことだよね
要素に数値や文字列が入ってないと例外で落ちるようなメソッドをArrayに作るわけにはいかん
だからこそ使用メソッドをユーザーが指定できる畳み込みがあるわけだし
0007デフォルトの名無しさん
2014/02/17(月) 12:35:26.23l|!・ω・ :l. __ ̄ ̄ ̄ / ・ω・≡
!i ;li  ̄ ̄ ̄ キ 三
i!| |i  ̄ ̄  ̄ =`'ー-三‐ ―
/ ; / ; ;
; _,/.,,,// / ヒュンッ
/・ω・ /
| / i/
//ー--/´
: /
/ /;
ニ_,,..,,,,,_
/ ・ω・`ヽ ニ≡ ; .: ダッ
キ 三 三 人/! , ;
=`'ー-三‐ ―_____从ノ レ, 、
0008デフォルトの名無しさん
2014/02/17(月) 12:36:50.29言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0009デフォルトの名無しさん
2014/02/17(月) 12:37:37.92,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. :::
0010デフォルトの名無しさん
2014/02/17(月) 12:38:52.51http://www.youtube.com/watch?v=IpiU-iyWrsA
0011デフォルトの名無しさん
2014/02/17(月) 12:47:21.44ボタンクリックイベント後に呼び出される、メソッド内の処理をしている間、
本体がフリーズ状態となってしまいます。(半透明で反応しない)
メソッド内の処理の先頭に、
Thread.newブロックなどをおいても同様にフリーズしてしまいます。
どなたか、良い策をおねがいします!
0012デフォルトの名無しさん
2014/02/17(月) 12:47:26.65その質問が面倒くさい。
0013デフォルトの名無しさん
2014/02/17(月) 13:34:27.270014デフォルトの名無しさん
2014/02/17(月) 19:20:11.470015デフォルトの名無しさん
2014/02/18(火) 13:43:35.09Ruby on Railsは必要ですか?
またおすすめの開発環境ありましたらお願いします。
0016デフォルトの名無しさん
2014/02/18(火) 15:15:27.04今日あと9時間くらいあるのでCGIそのものについて学べ
0017デフォルトの名無しさん
2014/02/18(火) 15:16:36.880018デフォルトの名無しさん
2014/02/18(火) 15:17:38.22不要。
viかemacs。
0019デフォルトの名無しさん
2014/02/18(火) 15:19:54.44Yiとxmonado
0020デフォルトの名無しさん
2014/02/18(火) 16:09:09.090021デフォルトの名無しさん
2014/02/18(火) 16:12:46.17日本のド田舎でリーゼントしているのとは別物。
0022デフォルトの名無しさん
2014/02/18(火) 16:15:13.600023デフォルトの名無しさん
2014/02/21(金) 06:29:16.35オレもそれやってみたい
仲間になろうよ
と言ってももう見てないかな
0024デフォルトの名無しさん
2014/02/21(金) 22:15:17.64まともな人間なら標準出力に出力できる言語(言語に限らないが)なら可能だということは明白
0025デフォルトの名無しさん
2014/02/21(金) 22:20:42.360026デフォルトの名無しさん
2014/02/21(金) 22:25:59.68Cとかでも書いていた人いたでしょ
0027デフォルトの名無しさん
2014/02/21(金) 22:27:07.230028デフォルトの名無しさん
2014/02/21(金) 22:30:57.93コーディングから動作確認まで不思議そうな顔してるからマジうけるwww
0029デフォルトの名無しさん
2014/02/21(金) 22:32:49.700030デフォルトの名無しさん
2014/02/21(金) 23:01:08.510031デフォルトの名無しさん
2014/02/21(金) 23:18:22.730032デフォルトの名無しさん
2014/02/21(金) 23:48:25.890033デフォルトの名無しさん
2014/02/21(金) 23:53:53.510034デフォルトの名無しさん
2014/02/22(土) 01:46:20.620035デフォルトの名無しさん
2014/02/22(土) 03:11:47.15G ゴミゴミwwwwww
I イクゥゥゥゥゥドピュドピュドピュ
0036デフォルトの名無しさん
2014/02/22(土) 06:45:28.470037デフォルトの名無しさん
2014/02/23(日) 11:50:54.530038デフォルトの名無しさん
2014/02/23(日) 17:36:13.19rubyとcgiが動けば、何とかできるんじゃないの。遅いだろうけど。
aws ec2の1年ほぼ無料じゃダメかな。
0039デフォルトの名無しさん
2014/02/24(月) 08:25:58.36しらなかった。
ttp://takuya-1st.hatenablog.jp/entry/20120108/1326043011
0040デフォルトの名無しさん
2014/02/24(月) 08:43:16.88そもそもRailsとそのアプリケーション自体、そういう極めて限定された共用リソースでの使用を考慮していない
0041デフォルトの名無しさん
2014/02/24(月) 16:54:59.85https://www.ruby-lang.org/ja/news/2014/02/24/ruby-1-9-3-p545-is-released/
1.9シリーズ最後のRuby
0042デフォルトの名無しさん
2014/02/24(月) 22:38:12.68アクセストークンが必要でそれは手に入れました
ですがここからどうやってこのアクセストークンをヘッダーにつけて発行するのでしょうか。
url = URI.parse('https://hoge.com/api/foo.json?param=fuga')
http = Net:HTTP.new(url.host, url.port)
http.use_ssl = true
0043デフォルトの名無しさん
2014/02/24(月) 22:44:31.46Net::HTTP#get の2番目の引数にヘッダを Hash で渡す
0044デフォルトの名無しさん
2014/02/24(月) 23:58:18.05module Hoge
_def fuga()
__なんたらかんたら
_end
_def self.piyo()
略
でself.piyoの中からfuga()を呼びたいんですがどうやればいいんでしょうか?
fuga()はモジュール内の関数からのみ利用するものです
0045デフォルトの名無しさん
2014/02/25(火) 00:07:53.18Hoge厨はさっさと消えろ
精神異常かお前
0046デフォルトの名無しさん
2014/02/25(火) 00:13:56.03こういうどうでも日記を本題よりも最初に持ってくる精神構造をしてるのがhoge厨
日記と質問の切り分けもできないゴミクズ
0047デフォルトの名無しさん
2014/02/25(火) 00:22:37.19ありがとうございました。
できませんでした
すいません
0048デフォルトの名無しさん
2014/02/25(火) 00:23:20.83違うよ。
始めたばかりだからそれを察して
懇切丁寧に教えろって自己中なんだよ。
根性が腐りきってるだけ。
0049デフォルトの名無しさん
2014/02/25(火) 00:48:19.83ええと、俺も初心者なのでわからないんですが、そのモジュールはどこにincludeする予定ですか?
0050デフォルトの名無しさん
2014/02/25(火) 01:25:23.170051デフォルトの名無しさん
2014/02/25(火) 01:50:14.21モジュール内の関数?からのみ利用、って書いてあるけど、モジュールの特異メソッドから利用してるわけで。
0052デフォルトの名無しさん
2014/02/25(火) 01:53:55.970053デフォルトの名無しさん
2014/02/25(火) 02:01:32.530054デフォルトの名無しさん
2014/02/25(火) 02:04:49.17そういうすんなりできないことがでてくるのは大抵設計が腐っているせい。
def self.fuga
...
end
private_class_method :fuga
にすればモジュール特異関数でfuga()を呼び出せるし
Hoge.fugaも禁止できる。
0055デフォルトの名無しさん
2014/02/25(火) 02:20:20.84モジュール Hoge をインクルードすれば、
普通にインスタンスメソッドとして fuga を呼べるようになるよ
irb(main):001:0> module Hoge; def fuga; p 'FUGA!!'; end; def self.piyo; fuga; end; end
=> nil
irb(main):002:0> Hoge.piyo
NameError: undefined local variable or method `fuga' for Hoge:Module
from (irb):1:in `piyo'
from (irb):2
from /opt/local/bin/irb2.0:12:in `<main>'
irb(main):003:0> include Hoge
=> Object
irb(main):004:0> Hoge.piyo
"FUGA!!"
=> "FUGA!!"
irb(main):005:0>
0056デフォルトの名無しさん
2014/02/25(火) 02:31:47.320057デフォルトの名無しさん
2014/02/25(火) 02:38:30.80005855
2014/02/25(火) 02:44:32.20モジュールの用途は2つある
・Mix-in の実現(クラス継承とは別の機能の共有、例としては Enumerable)
・名前空間の提供(大きなプログラムを小さな機能要素であるモジュールに分割)
>>55 で示したのは前者の Mix-in のほう
で、もしも>>44の「fuga を呼ぶ」という意図が後者の名前空間であるなら、
そのままでは呼べないから、fuga をクラス定義で包む必要がある
例を示す
module Factory # 工場
class Fuga # 部品
def fuga; .... ; end
end
def self.piyo # 部品 Fuga を製造する
Fuga.new
end
end
ここで、Fugaオブジェクトの生成は一般には Factory::Fuga.new と書くけど、
より簡潔に Factory.piyo でも生成できる
0059デフォルトの名無しさん
2014/02/25(火) 03:03:55.310060デフォルトの名無しさん
2014/02/25(火) 03:13:14.01駄目な奴は何をやっても駄目だな。
0061デフォルトの名無しさん
2014/02/25(火) 03:18:26.560062デフォルトの名無しさん
2014/02/25(火) 08:19:59.970063デフォルトの名無しさん
2014/02/25(火) 18:47:03.76そのまま登録すると文字コードがUTF8ではないのでRailsで文字列連結のときにエラーが出てきます。
ここを参考にして実装してみたら・・・
http://route477.net/d/?date=20110119
rss = SimpleRSS.parse open(self.url)
self.site_name = rss.title.encode("utf-8", :invalid => :replace, :undef => :replace)
http://feed.nikkeibp.co.jp/rss/nikkeibp/business.rdf
ここの<title>nikkei BPnet 「企業・経営」最新記事一覧</title>が
nikkei BPnet ???????????????????????????????????????
とかに文字化けしてしまいました・・・
エンコードのことはよく知らないんですが、エンコーディング特有の文字があるとしても
ASCII-8BITからUTF-8に変換ってできないんですかね・・・
006463
2014/02/25(火) 18:51:21.71self.site_name = rss.title.encode("utf-8", :invalid => :replace, :undef => :replace)
これを
rss = SimpleRSS.parse open(self.url)
self.site_name = rss.title.force_encoding("utf-8")
にしたら一応できましたが・・・
0065デフォルトの名無しさん
2014/02/25(火) 19:02:10.96何が問題で何をしたいのかがよく分からんよ
リンク先のRDFファイルの先頭行には
<?xml version="1.0" encoding="utf-8"?>
と書かれているから、文字エンコーディングはUTF-8で決まりだし、
実際に保存したファイルを(UTF-8に対応した)普通のエディタで開けば、
文字化けすることなく表示される
0066デフォルトの名無しさん
2014/02/25(火) 20:18:36.79double型やfloat型の引数がある関数を使いたい場合、どのように記述すればよいのでしょうか
もし解説されているHPとかあったら教えてください…
0067デフォルトの名無しさん
2014/02/25(火) 21:05:01.21その問いに答えられないけど
したいことがワシのやりたい事と似てるような気がする
同じ初心者同士で解決してみないか?
よかったら↓に来てくれ
kohada.open2ch.net/test/read.cgi/php/1393329234/
0068デフォルトの名無しさん
2014/02/25(火) 21:51:34.68dl を使えということかもしれない
006966
2014/02/25(火) 22:25:17.03質問した途端にこれだよ スレ汚しすみませんでした
0070デフォルトの名無しさん
2014/02/26(水) 01:11:30.150071デフォルトの名無しさん
2014/02/26(水) 07:14:43.45質問して投稿して記事になったのを客観的に眺めた瞬間わかるパターンとあるな
0072デフォルトの名無しさん
2014/02/26(水) 09:56:52.87一行目読んでる途中で判る場合と
三行目まで読んでもさっぱり判らない場合があるね
0074デフォルトの名無しさん
2014/02/28(金) 01:23:07.400075デフォルトの名無しさん
2014/02/28(金) 08:23:43.92複数のブログのテキストと画像(1記事辺り30枚程度)をマルチスレッドでスクレイピングしているのですが、
どこかでGCが詰まってるのかメモリを開放してくれず一定のところでスワップが発生してしまいます
・rails経由でrunnerコマンドを用いて上記スクリプトを走らせている
・DBへの保存はActiveRecordを使用
・画像の保存、DBへの保存にActiveRecordのトランザクションを使用
・画像のリサイズにRMmagickを使用
・マルチスレッドにParallelを使用
考えられる原因がどの辺にありそうか思い当たるところがあればご意見を聞かせていただけないでしょうか?
またこういうGC周りに原因がありそうなケースでのデバッグのやり方を教えていただきたいです
0076デフォルトの名無しさん
2014/02/28(金) 08:27:36.61本当に知りたいならもっとよく調べてからにしろ
0077デフォルトの名無しさん
2014/02/28(金) 08:34:29.530078デフォルトの名無しさん
2014/02/28(金) 08:44:28.69解決した
program filesの下にあった
パス通さないと無理っぽい
0079デフォルトの名無しさん
2014/02/28(金) 08:48:48.510080デフォルトの名無しさん
2014/02/28(金) 08:57:49.90RMagick と GC って有名だったような。検索するといろいろでてくる
0081デフォルトの名無しさん
2014/02/28(金) 14:26:20.5310かい hello world と ひょうじ したいです。 どうしたら いいですか?
0082デフォルトの名無しさん
2014/02/28(金) 15:54:54.770083デフォルトの名無しさん
2014/02/28(金) 15:56:19.290084デフォルトの名無しさん
2014/02/28(金) 17:02:29.68池沼ぶるのは構わんがあんまりやり過ぎると誰も相手しなくなるぞ
0085デフォルトの名無しさん
2014/02/28(金) 19:51:36.440086デフォルトの名無しさん
2014/02/28(金) 20:05:51.32TEN = 10
TEN.times do
puts "Hello, world!"
end
0087デフォルトの名無しさん
2014/03/01(土) 02:45:26.170088デフォルトの名無しさん
2014/03/01(土) 02:57:07.330089デフォルトの名無しさん
2014/03/01(土) 21:42:02.11やっぱり開発環境はlinuxとかがお勧めですか?
0090デフォルトの名無しさん
2014/03/01(土) 22:35:47.50もしあなたがRubyを勉強しようと思っているのなら、RubyではなくC#にするといい
C#ならあなたがやりたいと思っていることをすべてやることができる
もしあなたがC#を学んでなおRubyを勉強したいと思ったのなら、おそらくこのスレに聞きに来ることはないだろう
0091デフォルトの名無しさん
2014/03/01(土) 22:42:31.61普段Windowsだけ使ってるのならWindows上でよく動くプログラム(を楽に作れ/学べる)言語が無難
それは少なくともRubyではないはず
0092デフォルトの名無しさん
2014/03/01(土) 23:04:32.18マックでもわりと便利につかえるよ
0093デフォルトの名無しさん
2014/03/01(土) 23:06:16.53わざわざ立ち上げるバーチャルマシンの痒いとこに手が届かないファイルシステムの中だとか
どこか遠くの激遅の小煩いレンタルサーバのコンソールの中だとか
そんなとこでしか動かせないんじゃどうにもならないよね
自分が使ってるマシンでぐりぐり動いてなんぼ
0094デフォルトの名無しさん
2014/03/01(土) 23:06:32.26俺はVisualBasicからプログラミングはじめたクチだけど、
結局GUIプログラムは面倒だから続かないね。
Rubyでも同じことだけど、CUIのプログラムを作るならrubyがずっと楽。
0095デフォルトの名無しさん
2014/03/01(土) 23:07:06.22つまりLinuxをインストールしろということか。正解だな
0096デフォルトの名無しさん
2014/03/01(土) 23:10:23.850097デフォルトの名無しさん
2014/03/01(土) 23:16:03.540098デフォルトの名無しさん
2014/03/01(土) 23:16:58.66普段からLinuxを使っているならRubyはあり
Rubyを学ぶためにLinuxインストールするとか愚の骨頂
Rubyを使うためにLinuxインストールするのは馬鹿
馬鹿と愚の骨頂ってどっちがどうなんだとか考えると眠たくなるが
Linuxの別途インストールが唯一妥当なのは
「レンタルサーバ等で動かすことが既に決定しており、その環境とほぼ同じものをローカルにも作りたいと思った」
ときのみ
0099デフォルトの名無しさん
2014/03/01(土) 23:17:54.980100デフォルトの名無しさん
2014/03/01(土) 23:24:05.74今まではExcel Accessなどをvbaでいろいろいぢって仕事で使うような在庫管理やら何やらをやってましたがWebでも同じようなことがしたいなー どうせやるなら新しいことやりたいなーとおもっていろいろと探しているうちにこのスレにたどりついたというわけでして。。。。
0101デフォルトの名無しさん
2014/03/02(日) 03:10:02.83class Hash
def hoge!(key, other_keys=[])
value = self.delete(key)
other_keys.each{ |other_key|
self[other_key] = value
}
end
end
0102デフォルトの名無しさん
2014/03/02(日) 03:14:45.560103デフォルトの名無しさん
2014/03/02(日) 03:36:00.950104デフォルトの名無しさん
2014/03/02(日) 10:38:47.95rekey
0105デフォルトの名無しさん
2014/03/02(日) 13:47:14.30普通のメソッドはオブジェクトじゃないってこと?
.classはObjectクラスのインスタンスかどうかを調べてるの?
0106デフォルトの名無しさん
2014/03/02(日) 14:05:31.35printの 返す値 がnil
0107デフォルトの名無しさん
2014/03/02(日) 15:38:40.51クラスやインスタンスとか難しい事を考える以前に、
メソッドチェーンの基本が理解できていないな
irb(main):001:0> print
=> nil
irb(main):002:0> print.class
=> NilClass
irb(main):003:0> print.class.class
=> Class
0108デフォルトの名無しさん
2014/03/02(日) 16:15:15.25>>107
なるほど
printの戻り値がnilなのか
それにしてもArray=>Arrayになるのは
クラスの戻り値がクラスってことなのか
ややこしいなあ
0109デフォルトの名無しさん
2014/03/02(日) 17:34:21.93誰かと一緒に開発をするのか、プログラマとして他人に雇用される必要があるのか
に対する答えがNOなら、
自分の好きなようにやればいいと思う
アドバイスなんて参考にならん
0110デフォルトの名無しさん
2014/03/02(日) 17:45:53.93irb という対話環境は、以下のように振る舞う
(1) テキストを入力(read)し、
(2) それを式として評価(evaluate)して、
(3) その結果を印刷(print)する
(4) この手順を繰り返す(loop)
だから、read/evaluate/print/loopの頭文字(かしらもじ)をとって REPL とも呼ばれる
ここで、評価とは一般的に言うところの計算だと考えていい
たとえば 1 + 2 という入力を評価(=計算)すると 3 という結果を印刷するし、
1 だけを入力すると 1 という値を印刷する
同様に Array と入力すれば、その評価結果である Array を印刷するし、
Array.new と入力すれば、評価によって Arrayクラスのインスタンスを生成してそれを印刷する
0111デフォルトの名無しさん
2014/03/02(日) 17:57:37.95恐らく自分のやりたいようにやっていいと思います。
但し結果さえでればというかんじです。
まずは自分のpcの仮想環境でトライしてみて将来的にはクラウドとか社内にインフラを持たなくても良いようにしたいなーとかおもってます。
0112デフォルトの名無しさん
2014/03/02(日) 18:05:26.53Array は単なる定数(再代入すると怒られる変数)
Array って変数の中にクラスが入ってる
0113デフォルトの名無しさん
2014/03/02(日) 19:14:44.66それはArray==Arrayってことでは。
0114デフォルトの名無しさん
2014/03/02(日) 19:29:53.55> クラスの戻り値
これからして何も理解してないからな。
「Rubyには関数がない、全てメソッドだ」
というのをどっかで聞いた上に誤解して、
変数も定数も全てメソッドだと思い込んだのかな
0115デフォルトの名無しさん
2014/03/02(日) 19:42:38.86初心者スレだし知らなかったり察しがつかなくても仕方ないのでは
0116108じゃないけど
2014/03/02(日) 20:04:02.63そうなんですか
irb(main):001:0> FOO = Array
=> Array
irb(main):002:0> FOO.new(3){1}
=> [1,1,1]
なるほど、勉強になります。
0117デフォルトの名無しさん
2014/03/02(日) 20:08:28.720118デフォルトの名無しさん
2014/03/02(日) 21:14:58.520119デフォルトの名無しさん
2014/03/02(日) 21:16:46.550120デフォルトの名無しさん
2014/03/02(日) 21:22:21.09,.-、
っ(,,■) �d
0121デフォルトの名無しさん
2014/03/02(日) 21:30:35.32あなたがイケメンでかつMacbookAirを使いこなしていればできます。
0122デフォルトの名無しさん
2014/03/02(日) 23:01:41.49なるほどわかりやすい
irbでprintが評価されたらnilになるのが不思議なんだよなあ
>>113 再代入か、ありがとうググってみる
ruby歴4日なもんでググり方すらわからなかったんだ
英語のページの方が充実してるのが何だかなあ
0123デフォルトの名無しさん
2014/03/02(日) 23:07:52.45Array == Arrayのことを再代入って言ってるの?
== は比較演算子だよ。
0124デフォルトの名無しさん
2014/03/02(日) 23:10:45.89>irbでprintが評価されたらnilになるのが不思議なんだよなあ
irb に限らず、「Rubyではあらゆるすべてが式」になる
式だから、irb が評価することで必ず何らかの値が返ってくる
そして、あるメソッドが何も返すべき値が無い場合には、
慣例で nil という値を返すことが多く、print もこれに該当する
(C や Java を知っていれば、void型に相当するのが Ruby の nil になる)
0125デフォルトの名無しさん
2014/03/02(日) 23:13:22.95print を評価するというのは、print というメソッドを呼ぶということ
print メソッドの返り値は常に nil なので nil が出力されているというだけ
print というメソッドオブジェクトが出力するわけではない
0126デフォルトの名無しさん
2014/03/02(日) 23:15:38.52=> #<Method: Object(Kernel)#print>
こういうのと混同してんじゃないの
0127デフォルトの名無しさん
2014/03/02(日) 23:16:55.24ruby歴4日(>>122)で、さすがにそれはないかと....
0128デフォルトの名無しさん
2014/03/02(日) 23:42:24.430129デフォルトの名無しさん
2014/03/02(日) 23:47:11.68JavaScriptとかから入ると混同してしまうかも
逆にJavaScriptを使うときにカッコなしで書いてしまって変なオブジェクトが代入されてる〜と悩むこともたまにあるけど
0130デフォルトの名無しさん
2014/03/02(日) 23:50:57.26ごめん安価間違えた >>112に対して言いたかった
>>124
>そして、あるメソッドが何も返すべき値が無い場合には、
>慣例で nil という値を返すことが多く、print もこれに該当する
なるほど。よくわかった
すごく的外れかもしれないけどこれって
printが何に対する参照も持ってないって見かたでok?
0131デフォルトの名無しさん
2014/03/02(日) 23:52:52.57print と書いただけだとそれはメソッド呼び出しであり、その結果は print の返り値である
print メソッドというオブジェクトが結果として返るわけではない
0132デフォルトの名無しさん
2014/03/02(日) 23:55:07.54> printが何に対する参照も持ってない
どういう意味だ?
0133デフォルトの名無しさん
2014/03/03(月) 00:00:08.06Arrayという変数名がArrayクラスの実態への参照を持ってて
printという変数名は何も持ってないのかと思ったんだ
0134124
2014/03/03(月) 00:02:36.22>printが何に対する参照も持ってないって見かたでok?
たぶん勘違いしてると思う
>>125,131の解説を読もう!!
0135デフォルトの名無しさん
2014/03/03(月) 00:02:45.30printは変数名じゃない。メソッド。
変数とメソッドの違いについて勉強するといいよ
0136デフォルトの名無しさん
2014/03/03(月) 00:07:05.67>>135
ありがとう
後から間違いに気づいたよ
0137デフォルトの名無しさん
2014/03/03(月) 00:13:45.84クラスは自分は自分だって言ってるだけか
やっと理解した
バカに付き合ってくれてありがとう
0138124
2014/03/03(月) 00:21:27.58たしかに英小文字で始まる名前が、一見しただけでは
ローカル変数なのかメソッドなのか区別がつかないってのは、
誰でも最初はとまどうのだろうなぁ....と思う
0139デフォルトの名無しさん
2014/03/03(月) 00:26:53.72Rubyってだいたい式だよね、意外なくらい
0140デフォルトの名無しさん
2014/03/03(月) 00:34:17.74だいたいっていうか全部では?例外ある?
0141デフォルトの名無しさん
2014/03/03(月) 00:34:53.47def aaa
32
end
aaaメソッドの返値は32
def aaa
nil
end
aaaメソッドの返値はnil
これだけの理屈でしかない
メソッドを作った人が最後の評価値としてnil(に常になるもの)を指定したからメソッドの返値がnilになる
0142デフォルトの名無しさん
2014/03/03(月) 00:35:29.970143デフォルトの名無しさん
2014/03/03(月) 00:39:07.69Perl は変数に $ をつけるし、Python は self. 必須だし、JavaScript はカッコがいるし、
区別が付かないのは Scala と C# のプロパティぐらいかな…?
0144デフォルトの名無しさん
2014/03/03(月) 00:40:21.83流れそのものを変える文は、値を返せないもんねえ
その親ブロックが返す値を変えるものならあるが
0145デフォルトの名無しさん
2014/03/03(月) 00:40:48.61つ C
0146デフォルトの名無しさん
2014/03/03(月) 00:41:25.63そういえばbreakとかもbreak自体の返り値はないのか。
0147デフォルトの名無しさん
2014/03/03(月) 00:41:46.45Cはカッコ必須でしょ
0148デフォルトの名無しさん
2014/03/03(月) 08:39:48.460149デフォルトの名無しさん
2014/03/03(月) 10:12:17.890150デフォルトの名無しさん
2014/03/05(水) 10:46:24.09if c =~ /^[0-9]$/
return true
end
return false
end
exp = '1+2-3*4/5'
exp.each do |e|
if isdigit(e)
print e
end
end
このプログラムが意図したとおり(12345)に動かないのはなぜでしょうか
0151デフォルトの名無しさん
2014/03/05(水) 11:17:55.03Rubyでは「最後のreturn」はあんまり書かない
メソッド処理途中で脱出するときだけ書く
というか、returnがあったらその用途だとみんな思い込んでるので、そうじゃないとちょっとアレ
その2
正規表現の^は改行がある文章の文頭を、$は改行のある文章の末尾を表す(大雑把)
改行が含まれていない文字列ではうまくマッチしないので、改行区切りが重要でないのなら絶対に使ってはいけない
その3
文字列のeachはRuby1.9で廃止された。一文字ずつ取り出すにはeach_charを使う
その4
Regexp#=~ はマッチしないときnilを返すので、ifの条件にするならそのまま使える
def digit?(s)
/\d/ =~ s
end
exp = '1+2-3*4/5'
exp.each_char do |chr|
print chr if digit?(chr)
end
0152デフォルトの名無しさん
2014/03/05(水) 11:59:32.03ありがとうございます
おかげさまで中置記法を逆ポーランド記法に変換するプログラムが書けました
https://ideone.com/xovDW1
あとで指摘していただいた箇所を直す予定です
0153デフォルトの名無しさん
2014/03/06(木) 09:40:35.330154デフォルトの名無しさん
2014/03/06(木) 18:01:14.62next使わずに書けました
今闘病中ですが、プログラミングがすごく楽しく感じます
皆様ありがとうございました
0155デフォルトの名無しさん
2014/03/06(木) 19:42:49.970156デフォルトの名無しさん
2014/03/06(木) 19:52:43.770157デフォルトの名無しさん
2014/03/06(木) 20:32:53.14rubyでは優先順位が&& > ||となっていますが、
a = "abcd"
true || a.reverse! && nil
a #=> "abcd" (予想ではa.reverse!が効いて"dcba"となるはずだった。)
となって、||の右辺が評価されていないように思います。
基本的なことかもしれませんが、何故なのでしょうか?
(1.9.3p545/centos)
0158デフォルトの名無しさん
2014/03/06(木) 20:50:20.47trueってわかってんだから評価する必要ないだろ。
0159デフォルトの名無しさん
2014/03/06(木) 21:06:07.55irb> (p 1) || (p 2)
1
説明おわり
0160デフォルトの名無しさん
2014/03/06(木) 21:15:14.17わかりにくいわ
Ruby は (A or B) という式を見たとき、とりあえず A を先に評価し、A が真だった場合 B の評価を行わない
A と B の両方をとにかく1行で評価して欲しい場合は、…まあ、any? とか使うしかないのかね
a = "abcd"
[true, [a.reverse!, nil].all? ].any?
p a
#=> "dcba"
0161デフォルトの名無しさん
2014/03/06(木) 21:19:04.10&& と || は演算子として分類されているけど、厳密には他の演算子とは意味が異なり、
(制御構造としての)条件分岐式の短縮構文、いわゆる構文糖(syntactic sugar)になっている
具体的には:
・式 X && Y は if X then Y else false end と同じ意味
・式 X || Y は if X then true else Y end と同じ意味
だから || の左辺 X が真であれば、右辺 Y は評価されない
なお論理学や形式的意味論の世界だと、
&& は cand (conditional and)と呼ばれ、|| は cor と呼ばれることがある
0162デフォルトの名無しさん
2014/03/06(木) 22:43:21.71真理値が確定した段階で計算が打ち切られる。
覚え方: C言語と同じ
0163デフォルトの名無しさん
2014/03/06(木) 23:52:08.28ありがとうございます。
だとするとこのベンチマークは2.0より前のバージョンを使っているのでしのうか?
http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=query
0164157
2014/03/07(金) 00:17:02.46ありがとうございます。
考え方が根本的に間違ってた気がします。
例えば、
3 + 4 * 5 → 3 + 20 → 23
と、まず初めに、+より優先順位の高い演算子*が先に評価されて計算が行われると思っていたので、
true || a.reverse! && nilの場合、(a.reverse! && nil)が先に演算されるのではないか?と考えていました。
>>161さんの言う通り、if-thenと同じだと考えると納得出来ました。
0165デフォルトの名無しさん
2014/03/07(金) 03:16:37.32いやいやいやいや
0166デフォルトの名無しさん
2014/03/07(金) 07:22:54.73そのページの作成者に聞けよ
0167デフォルトの名無しさん
2014/03/07(金) 12:19:43.56評価順序と、論理演算の優先順位は別の話ということだな。
当たり前のように使っていたが、言われてみれば、そういう考え方も有るか。実装的には、その考え方だと余計にコストかかるけど。
0168デフォルトの名無しさん
2014/03/07(金) 12:31:55.740169デフォルトの名無しさん
2014/03/07(金) 13:00:51.07プログラミング言語一般の基本だが?
0170デフォルトの名無しさん
2014/03/07(金) 13:25:50.31プログラミングの常識がないプログラミング初心者なんておかしい!
0171157
2014/03/07(金) 17:52:00.94=演算子でしたら右結合なので、a=b=c=0の場合、
a=(b=(c=0))と同等になり、c=0から演算されます。
それと同様に、優先順位により
true || (a.reverse! && nil)となり、||右辺から実行されるのでは?と思ったのです。(もちろん、true || aにおいてaが評価されないことは理解しています。)
0172デフォルトの名無しさん
2014/03/07(金) 18:02:57.31・優先順位
・結合性
・評価順
を、なんとなくぼんやりと混同してるんだと思うんだけど
0173157
2014/03/07(金) 18:21:10.70「プログラミング言語Ruby(p105)」には、
優先順位…式がどのような順序で評価するかに影響を与える
結合性…同じ(優先順位の)結合子が1つの式の中に並んでいる時に、どのような順序で評価をするか
と定義されていました。
true || (a.reverse! && nil)では、||と&&は優先順位が異なるため結合性は無視できます。
優先順位は定義より式の評価の順序に影響を与える、とあったので評価順を左右するものであると考えたのですが、この認識が間違っているのでしょうか?
0174デフォルトの名無しさん
2014/03/07(金) 18:22:59.22それに短絡(ショート)は、最初の式の真偽値によって、
右の式が実行されるかされないか、が決まるため、
わかりにくいし、勘違いしやすい
Cでも一般的に、使わない方がよいとされている
0175デフォルトの名無しさん
2014/03/07(金) 18:38:30.50代入演算子が左結合なら a = b = 1 したら b が未定義でエラーになるのでは
0176デフォルトの名無しさん
2014/03/07(金) 18:51:15.83んなこたねーよ。
ていうかCではともかく、Rubyでは多用するし。
0177デフォルトの名無しさん
2014/03/07(金) 22:48:42.44irb> (raise 'lhs').a = b = (raise 'rhs')
RuntimeError: lhs
となるのを見たらわかるように、右結合だからといって右から評価されるわけではないよ。
0178デフォルトの名無しさん
2014/03/07(金) 23:03:19.93即値以外は計算上の優先順位のとおり評価しようとしたらプログラム動かんでしょ
0179デフォルトの名無しさん
2014/03/07(金) 23:08:19.190180デフォルトの名無しさん
2014/03/07(金) 23:40:01.48評価順序の問題と結合度の問題がごっちゃになってないか
評価順は左から右、= の結合度(多重代入が典型例)は右結合
0181デフォルトの名無しさん
2014/03/07(金) 23:52:08.78if (!b = a()); p b end
こういうのも優先順位に反して!より=が先に評価される
0182デフォルトの名無しさん
2014/03/08(土) 00:12:18.97% irb
irb(main):001:0> !a = false
(irb):1: warning: found = in conditional, should be ==
=> true
どういうことだってばよ
0183デフォルトの名無しさん
2014/03/08(土) 01:11:33.64!a=false
は
!(a=false)
と同様に評価される。
ただし、!のオペランドは条件式だから、
=じゃなくて==じゃねえのか?って言われてる。
0184デフォルトの名無しさん
2014/03/08(土) 02:17:30.98>優先順位…式がどのような順序で評価するかに影響を与える
>結合性…同じ(優先順位の)結合子が1つの式の中に並んでいる時に、
どのような順序で評価をするか
結局、上記は間違い?
a = b = 1
これは、左から評価される? どうなるの?
0185デフォルトの名無しさん
2014/03/08(土) 02:18:35.44おまえ左から評価されるとしたらどういう動作になるのか言ってみろ。右に決まってるだろ。
0186デフォルトの名無しさん
2014/03/08(土) 02:43:41.710187デフォルトの名無しさん
2014/03/08(土) 07:45:27.960188デフォルトの名無しさん
2014/03/08(土) 10:18:31.59Pythonやってみたら理解出来るようになる?
0189デフォルトの名無しさん
2014/03/08(土) 10:24:41.31lispやると勉強になる。
0190デフォルトの名無しさん
2014/03/08(土) 14:24:22.18演算子の優先順位は構文解析時に効く
0191デフォルトの名無しさん
2014/03/08(土) 15:06:18.19ループで回して取得する以外に方法は無いのでしょうか?
左上座標:右下座標を指定すると取れるとかないですか?
マスごとなので座標が飛び飛びになる。
0192デフォルトの名無しさん
2014/03/08(土) 16:05:02.420193デフォルトの名無しさん
2014/03/08(土) 16:34:08.36例えばですが、`type "优华.txt"`ですとかIO.popen('notepad "优华.txt"', 'r') {}
のようなコマンドね
コマンドライン上ではコピーアンドペーストで(文字の化けありますが)実行できます
上記の場合は、CP932の変換された化けの物渡されるために、ENOENTなるようです
このままではエロ動画整理されないが?
0194デフォルトの名無しさん
2014/03/08(土) 17:03:52.720195デフォルトの名無しさん
2014/03/08(土) 17:14:27.270196デフォルトの名無しさん
2014/03/08(土) 17:58:33.75出来たと思ったらフォントが固定ピッチにならなかったり部分的に文字化けしたりであきらめた
0197デフォルトの名無しさん
2014/03/08(土) 18:16:58.99こんなの?
0198デフォルトの名無しさん
2014/03/08(土) 19:34:27.76計算機科学の初級をぺらりと舐めるだけで全然違う
ただし、計算機科学の初級を理解できるかどうかは保証はしない
0199デフォルトの名無しさん
2014/03/08(土) 21:22:12.080200デフォルトの名無しさん
2014/03/09(日) 01:19:42.490201デフォルトの名無しさん
2014/03/09(日) 03:05:13.95よろしくお願いします
プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/
0202デフォルトの名無しさん
2014/03/09(日) 09:30:21.52RubyをインストールしたときにRails4.0とかいろいろgemをインストールしたので
Redmine専用にgemを用意したいので
bundle install path=vendor/mygem --local
ってコマンドを打ってredmineのディレクトリの中にgemをインストールしました
そのあとに
rake generate_secret_token
ってやったんですが
Could not find gem 'rails (= 3.2.17) x86-mingw32' in the gems available on this
machine.
Run `bundle install` to install missing gems.
って出てしまい失敗します。bundlerでたしかにredmineの下にrails3.2.17は入っています。
どうやってredmineの下のgemを使えるようにできるのでしょうか?
0203デフォルトの名無しさん
2014/03/09(日) 12:31:49.280204デフォルトの名無しさん
2014/03/09(日) 16:20:25.60初歩的なことから小難しい事まで説明してる日本語のHPってないですか?
高速化した中学生が忙しいって話しか出てこない・・・。
0205デフォルトの名無しさん
2014/03/09(日) 17:20:59.94Could not find gem 'rails (= 3.2.17) x86-mingw32' in the gems available on this
machine.
Run `bundle install` to install missing gems.
って出ます。
0206デフォルトの名無しさん
2014/03/09(日) 17:22:23.94ローカル変数の正規表現のインスタンス化と代入が行われて無駄だと思うんですけど、これのベストプラクティスを教えて下さい。
定数として正規表現は宣言できないし、クラス変数として宣言するのは本来の目的と違うと思うんですが
具体的には以下のように複数のポストに含まれるURLをチェックして何かしたいという状況です。
posts.each{
checklink(post)
}
def checklink
url_regexp=/http:.*?\.com/
post=~url_regexp
#なんかの処理
end
0207デフォルトの名無しさん
2014/03/09(日) 17:29:34.54> 定数として正規表現は宣言できないし
え?普通にできるよ
0208206
2014/03/09(日) 17:33:57.62マジで!?
とんでもない勘違いしてました…
0209デフォルトの名無しさん
2014/03/09(日) 20:50:25.14$ ruby -e "10.times{ e= /re*?/; p e.object_id }"
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
-597111458
ということで変数埋め込みのない「固定の」正規表現リテラルはRubyが特別扱いして固定のオブジェクトになっている
複雑なオブジェクトの生成が無駄だとか余計なこと考えずに安心して使え
極めて稀に同一オブジェクトであることが問題になることがあるが、そのときはRegexp.new(/re*?/)とでもしろ
0211デフォルトの名無しさん
2014/03/10(月) 04:58:58.580212デフォルトの名無しさん
2014/03/10(月) 05:48:24.18って書くのなんかダサいから
hoge_call(cond, R)
みたいな述語はないの?
0213デフォルトの名無しさん
2014/03/10(月) 08:26:12.550214デフォルトの名無しさん
2014/03/10(月) 10:51:06.62ruby win32oleとかで検索してもゴミばかりで見つかりません
urlまたは開発者の名前を教えてちょ
0215デフォルトの名無しさん
2014/03/10(月) 11:10:16.70ruby win32 ole で検索すると真っ先に見つかるのが
以下の「るびま」連載記事なわけだけど、
・Win32OLE 活用法 【第 1 回】 Win32OLE ことはじめ
http://magazine.rubyist.net/?0003-Win32OLE
これで何が足りないのか、>>214はどんな情報が欲しいのか、
そして何を実現したいのか、具体的に質問したほうがいいと思われ
0216デフォルトの名無しさん
2014/03/10(月) 12:33:40.33.select(:n___an, :i, Sequel.as(sum((Sequel.case([[{k: 's'}, :c], [{k: 'u'}, Sequel.expr(0) - :c]], 0 ))), :tc))
これがsum未定義になって
.select(:n___an, :i, Sequel.as(Sequel.function(:sum, (Sequel.case([[{k: 's'}, :c], [{k: 'u'}, Sequel.expr(0) - :c]], 0 ))), :tc))
これが通るのは何故でしょうか?
色々検索してみたんですがよくわかりません。両方とも同じ意味だと思ったのですが。
0217デフォルトの名無しさん
2014/03/10(月) 12:52:33.53スマソw
0218デフォルトの名無しさん
2014/03/10(月) 16:37:20.29> (アドバイザー:arton、助田 雅紀)
欲しかった情報はこれだけ
「助田」が判明してやっと
http://homepage1.nifty.com/markey/ruby/win32ole/index.html
に辿り着けた。
こういう重要な情報がうんこ見たいなページに埋もれるの何とかしてくれ
0219デフォルトの名無しさん
2014/03/10(月) 16:45:05.070220デフォルトの名無しさん
2014/03/10(月) 18:03:25.780221デフォルトの名無しさん
2014/03/10(月) 19:18:16.22しかし、一つのレスに対して複数のリプライが付く場合がありますが、Rubyのオブジェクトは可変長の要素を収納できるのでしょうか。
できない場合、インスタンス1つあたり、余裕を持って(例えば20reply分)あらかじめ余計にメモリを確保するしか方法はないのでしょうか
0222デフォルトの名無しさん
2014/03/10(月) 19:57:35.860223デフォルトの名無しさん
2014/03/10(月) 20:06:34.83パッケージからはできない。たぶん普通に入れると1.9じゃないかな。
ruby2.0-devってのがあるから2.0はいけるかもだけど。
でも「rbenv」と「ruby-build」を入れれば簡単に2.1を入れられる。
0224デフォルトの名無しさん
2014/03/10(月) 20:16:44.55ありがとうございます
0225デフォルトの名無しさん
2014/03/10(月) 21:29:24.74>2chのレスのアンカーの相互関係をオブジェクトで表すには、
>クラスを定義してtree構造にすればいいのだとおもいました。
データ構造としては、「一つのレスに対して複数のリプライが付く」のだから
ツリーではなくてグラフになると思う
更に、未来へのアンカーを除外すれば、言い換えると、すべてのアンカーが過去のレスを
指しているのであれば、「閉路の無い有向グラフ(directed acycled graph, DAG)」と
呼ばれるデータ構造になる
グラフはノード(node, 接点)の集合とエッジ(edge, 辺)の集合で表現され、
今回のケースでは。レスが節を表し辺がアンカーを表す
グラフやDAGは良く知られたデータ構造だから、Wikipedia等で調べれば詳しい解説が見つかる
またDAGの各ノードを方向が揃うように列挙するアルゴリズムは「トポロジカルソート」と呼ばれるので、
これも検索する際のキーワードになると思う
>Rubyのオブジェクトは可変長の要素を収納できるのでしょうか。
複数の要素を表す(数学上の)集合はプログラミングの用語だとコレクションと呼ばれ、
Rubyでは組込みライブラリの配列(Arrayクラス)やハッシュ(Hashクラス)がコレクションの一種になる
また、Rubyは(C言語等とは違って)メモリを動的に管理するから、
基本的にどのコレクションも可変個要素(=インスタンス)を収納できる
0226デフォルトの名無しさん
2014/03/10(月) 21:31:39.48X: 今回のケースでは。レスが節を表し辺がアンカーを表す
O: 今回のケースでは、レスがノードを表しエッジがアンカーを表す
0227デフォルトの名無しさん
2014/03/10(月) 21:48:07.64要領が悪いだけかもしれんが、説明ばかりで身に付いてるのかどうかよくわからない…
0228デフォルトの名無しさん
2014/03/10(月) 21:53:00.98なんかやってみれば、足りない物が見えてくるよ。
0229デフォルトの名無しさん
2014/03/10(月) 22:10:54.27irb 使ってる?手を動かさないと頭に入らないよ
0230デフォルトの名無しさん
2014/03/10(月) 22:29:39.16なるほどいろいろデータ構造にも名前があるのですね
DAGの各ノードの列挙は、今回の場合は会話を会話ごとに順番に並べるのが目的なので
replyの元(root)のノードから、再帰的にメソッドを定義すれば簡単に実装できそうですね
本来のDAGでは、すべてのノードかつながっていて、かつ閉路を持たないという条件から、
「ノードの深さ」を一義的に定義できるという事実が、ソートをする際の鍵になっているように思われますね
0231デフォルトの名無しさん
2014/03/10(月) 22:57:33.53irbのところはirb使って同じようにやってみる方がいいんだね
ってかC言語から入ったせいでいまいちirbの対話な感じがつかめないわ
0232デフォルトの名無しさん
2014/03/10(月) 23:14:09.63ツリーの各ノードを列挙する深さ優先探索/幅優先探索の手法と考え方は、
(DAGを含む)グラフの探索にも応用できるし、違いは重複ノードの検出と対処方法だけ
いくつかの効率的な手法が開発されているけど、いきなり理解は難しいと思うから、
まずは自分で格闘してみて、一通り動くモノができてから解説を読み直すといいと思われ
0233デフォルトの名無しさん
2014/03/10(月) 23:15:20.76たとえばリファレンスを読む場合なんかでも irb を起動させといて
http://docs.ruby-lang.org/ja/2.0.0/method/String/i/=25.html
% irb
irb(main):001:0> "i = %d" % 10
=> "i = 10"
irb(main):002:0> "%d,%o" % [10, 10]
=> "10,12"
irb(main):003:0> "i = %d" % "apple"
ArgumentError: invalid value for Integer(): "apple"
こんな感じに挙動を確かめながら読んだりする
あとは irb のここがよくわかんないって具体的に挙げれば誰か答えてくれるかも
0234デフォルトの名無しさん
2014/03/11(火) 10:01:38.560235デフォルトの名無しさん
2014/03/11(火) 11:52:53.22例えばRuby1.8でしか動かないソフトなら1.8を入れて使う(か諦める)
0236デフォルトの名無しさん
2014/03/11(火) 20:44:32.02それは1.8->1.9だけだよ
他のバージョンアップでは大体保たれてる
0237デフォルトの名無しさん
2014/03/11(火) 22:54:08.18以降はあまり困ることなく2.0, 2.1と上げていける感じ。
1.8未満はかなりひどかった思い出。
0238デフォルトの名無しさん
2014/03/11(火) 22:54:49.120239デフォルトの名無しさん
2014/03/11(火) 23:00:26.410240デフォルトの名無しさん
2014/03/11(火) 23:02:04.661.8.7用のスクリプトを1.8.5で動かそうとしてみればわかる
0241デフォルトの名無しさん
2014/03/11(火) 23:06:38.611.8.7->1.8.5が動かないのは別にいいじゃん
1.8.5->1.8.7が動かないのは問題だけど
0242デフォルトの名無しさん
2014/03/11(火) 23:24:38.50ID:PFwM+jH70243デフォルトの名無しさん
2014/03/11(火) 23:48:40.93ID:tN6zSUSI* システムに入っているgemを使わなくなる
* 実行に Gemfile.lock 必須
0244デフォルトの名無しさん
2014/03/11(火) 23:50:10.20ID:fXwBZvGtgem updateなんかしちゃったりしても大丈夫になる
0245デフォルトの名無しさん
2014/03/12(水) 02:36:01.49ID:VodWyXE40246デフォルトの名無しさん
2014/03/12(水) 04:09:26.60ID:pW1S2pi4かわいいから「そうだね、げむだね」って言っといた
0247デフォルトの名無しさん
2014/03/12(水) 06:16:27.25ID:Iz6J8eToこの写真袋というのを起動させたいのですが、Readmeの使い方3で起動したらすぐ落ちてしまいます。
なぜでしょうか?
インストールしたのはRuby2.0.0-p451
PCはwindows 7 Home
プロセッサ→Intel(R)Core(TM)i3 CPU M 380 @2.53GHz 2.53GHz 実装メモリ 4.00GB システム種類64ビット
ノート型PCです。
0248デフォルトの名無しさん
2014/03/12(水) 13:57:06.88ID:vsuy5gDKjavaの後、何か他の言語触りたいんですが、やはりrubyでしょうか?
0249デフォルトの名無しさん
2014/03/12(水) 15:27:15.42ID:iuIDUWkrJavaのメリットを理解できてないと、仕事が嫌になるかもだけどな。
勉強のためならlispとか全然違う言語もオヌヌメ。
0250デフォルトの名無しさん
2014/03/12(水) 17:57:18.54ID:VodWyXE4また、その逆はどうですか?
0251デフォルトの名無しさん
2014/03/12(水) 20:03:34.80ID:g2De+G22ありがとうございます!
0252デフォルトの名無しさん
2014/03/12(水) 21:33:28.41ID:VlIlu3/B超簡単。逆は超大変。
0253デフォルトの名無しさん
2014/03/12(水) 22:30:26.67ID:fYkDeXHT他の言語も触ってみたくなりました。
他に並行して学ぶとしたらおすすめの言語はありますか?
(Perl, Python, PHP以外で)
0254デフォルトの名無しさん
2014/03/12(水) 22:31:45.23ID:wJJF1Qm2ScalaはJavaくささが存分に残ってるからHaskellの方がいいかな
0255デフォルトの名無しさん
2014/03/12(水) 23:07:22.37ID:gSPEem5Tもしも経験した言語がRubyだけなら、Rubyのようなスクリプト言語ではなく、
コンパイラを前提とする言語、たとえば C/Java/C# のどれかを学ぶ価値はあると思う
特にC言語の知識はRubyで拡張ライブラリを書く時には必須になるし、
C++やObjective-Cを習得する時の前提にもなるから、個人的にはCを薦めたい
また関数型言語に手を出すのも悪くはないと思う
ただし、純粋関数型に分類されるHaskellは、プログラミングに対する思考/認識を
最初から再構築するつもりで取り組まないと習得するのが難しい
言い換えると、周囲に良い指導者がいれば別だけど、
初心者が興味本位で独習を試みても失敗する可能性が高い
だから、個人的にはHaskellよりも、MLと呼ばれる関数型言語族を薦めたい
具体的には Standard ML または OCaml と呼ばれる言語になる
他にも F# というML族言語もあるけど、これはC#プログラマ向け
またScalaという関数型言語はJavaプログラマ向けの関数型言語になる
最後に、まとめてみる:
・UNIX の道に進みたい --> C言語 の後、 Standard ML または OCaml を学ぶ
・Windows の道に進みたい --> C# の後、F# を学ぶ
・Java の道に進みたい --> Java の後、Scala を学ぶ
0256デフォルトの名無しさん
2014/03/12(水) 23:36:37.76ID:gSPEem5T仕事でJavaを使っているのなら、JRubyがいいんではないのかな?
もし仕事がWeb系であるなら、JRuby+Railsを勉強するのがいいと思うし、
たとえそうでなくともJRubyの習得は業務改善にきっと役立つはず
たとえばもし英語が読めるなら、JRubyでSwingを使ったGUIアプリを作ってみるとか?
・JRuby Swing tutorial
http://zetcode.com/gui/jrubyswing/
で、Javaによる比較的単純なゲーム(テトリスやパックマンなど)をJRubyへ移植してみるとか
・Java 2D games tutorial
http://zetcode.com/tutorials/javagamestutorial/
0257デフォルトの名無しさん
2014/03/13(木) 00:25:59.37ID:d/qHbQav0258デフォルトの名無しさん
2014/03/13(木) 14:21:58.16ID:wZ/Mekf7たのしいRuby 第4版
やっと3回読んだ
漏れは、10ほどの言語を知っているが、
関数型言語は苦手なせいか、なかなか苦戦した
今はRで苦戦している
Rubyは環境がないのな?
Javaの環境を使って、JRubyって手もあるか
でもRailsまでは、やるのが面倒
でもなぜSwingなんだ?SWTじゃないの?
Rubyには万能感、解放感、充実感があるね
ちょこちょこ、小回りがきくからかな?
配列2つを足すと、重複した要素を除いて、
1つの集合にするなど、便利な機能もある
漏れはWin8ノートだから、環境を探すのが一苦労する
Win7を買うべきだった
まずEclipseかな?もう少し、環境について調査してみる
0259デフォルトの名無しさん
2014/03/13(木) 17:22:05.97ID:qaG+7LaQ読めないなら、配管工でもした方が良いレベル
0260デフォルトの名無しさん
2014/03/13(木) 18:16:52.60ID:+lIKaSU4IDEに頼るやつは何をやってもダメ
0261デフォルトの名無しさん
2014/03/13(木) 18:22:43.02ID:wuhQ2BN5もっと簡潔に書けるよ、とか
こうすれば速くなる、とか教えてほしい。
input = gets.to_i
count = 2
while (input % count) != 0 && input > 1
count += 1
end
puts"素数です" if count == input
puts"素数ではありません" if count != input
やり方としては、
入力した数を2から順に割っていって、
割り切れたときの数が入力と一致していたら素数、
一致してなかったら素数ではない、
と考えた。
0262デフォルトの名無しさん
2014/03/13(木) 18:34:41.96ID:4Ls5eGnC素数判定に関しては「○○を実装してみた」という言い方をして欲しい
エラトステネスの篩とか試し割りとか、そういうの
もしそういう言い方ができないのであれば、
対象についての研究が足りない、またはそれを題材として練習するのはヤバい
0263デフォルトの名無しさん
2014/03/13(木) 18:34:52.63ID:k4ocBl+v0264デフォルトの名無しさん
2014/03/13(木) 18:54:45.94ID:qaG+7LaQ仮想マシンが強力になったせいで、Awt/Swingでも変わらないだけの速度が出る
そんな懐かしいものより、Android SDKでも触っとけよ
TomcatやStruts/SpringMVCの存在価値は、もはやPHPにも劣る
0265デフォルトの名無しさん
2014/03/13(木) 18:57:29.17ID:bTIwkzX1SICP本にあるScheme実装コードをRubyへ移植してみた
できるだけオリジナルのコード構造を再現できるようにしてみたけど、
Rubyらしく書き直せば、もっと短く簡潔になるはず
http://play.island.ac/codepaste/code?id=1578
0266デフォルトの名無しさん
2014/03/13(木) 19:03:51.89ID:qaG+7LaQ蟻本に書かれているアルゴリズムの英語資料を探してきてノートに書き下だせ
データベースの民間資格取るほうがはるかにマシ
0268デフォルトの名無しさん
2014/03/13(木) 23:15:54.60ID:1rtAXIVl#<Nokogiri::XML::Text:0x3fde62528138 "¥r¥n ">
みたいな改行と空白みたいなのまでひっぱって来ちゃうんだけど
これ出てこない様にはできんかの?
0269デフォルトの名無しさん
2014/03/13(木) 23:20:58.52ID:Se024/KpNokogiri::HTML.parse.to_s.split
0270デフォルトの名無しさん
2014/03/13(木) 23:25:40.29ID:yAPkVqSP0271デフォルトの名無しさん
2014/03/14(金) 01:10:26.86ID:AQKbVC0Q確か素数は、平方根までで割り切れるか、
を確かめるだけで良かったんじゃ?
25=5*5 だから、素数ではない
23は2,3,5で割り切れないから、素数?
0272デフォルトの名無しさん
2014/03/14(金) 01:18:15.95ID:CN82R/hG>>261
SICP本にあるScheme実装コードをRubyへ移植してみた
できるだけオリジナルのコード構造を再現できるようにしてみたけど、
Rubyらしく書き直せば、もっと短く簡潔になるはず
http://play.island.ac/codepaste/code?id=1578
↑は自治スレに入り浸るキチガイでした
http://toro.2ch.net/test/read.cgi/tech/1393852194/
0273デフォルトの名無しさん
2014/03/14(金) 08:20:51.47ID:UX8YYIlf=> ["a", "b", "c", "d", "e", ... "6", "7", "8", "9"]
> 16.times{print a.sample}
aHdQvYW75ssv4tyK
Rubyの乱数ってパスワード生成に使って安全ですか?
0274デフォルトの名無しさん
2014/03/14(金) 11:25:44.74ID:LTNvKxS/天才ktkr
0275デフォルトの名無しさん
2014/03/14(金) 13:37:08.15ID:N8AgJwv95x5は見なくていい
4まで割って見れば良い
つまり
x 23は2,3,5で割り切れないから、素数?
o 23は2,3で割り切れないから、素数!
0276デフォルトの名無しさん
2014/03/14(金) 21:51:35.47ID:4Kl0wdn2あらかじめ素数の表を持っておくのはずるいやり方かな?w
表の範囲内なら即答。表以上なら表から計算。
0277デフォルトの名無しさん
2014/03/14(金) 22:21:55.06ID:eyP/oOvO0278デフォルトの名無しさん
2014/03/14(金) 23:23:37.02ID:sBD7EyTw0279デフォルトの名無しさん
2014/03/15(土) 01:08:37.47ID:AJr6U08JRandom.new(1) など、同じ種を与えれば、
同じ乱数列が出てくる
引数を与えなければ、別の乱数によって、
作られた種によって、乱数列が作られる
でも、たまたま同じ種になると、
同じ乱数列が作られるかも?
0280デフォルトの名無しさん
2014/03/15(土) 02:45:52.46ID:eFxi4ctV厳密にはダメ。Rubyのrandはいわゆる暗号学的に安全な擬似乱数を生成しない
SecureRandomがある。ただし環境によっては使えない可能性がある
0281デフォルトの名無しさん
2014/03/15(土) 11:12:42.94ID:LE9xw32lたとえばセッションID等に使って、過去n回のIDから次のIDが予測できる、といったような性質が
ある場合に、「暗号学的に安全でない」と言う。
0282デフォルトの名無しさん
2014/03/15(土) 13:49:41.36ID:7MQyb7Y3ってのを簡潔に書けないかな?
!(array - (array - [:a, :b, :c])).empty?
とかやってるけど、ぱっと見、意味不明だぬ
0283デフォルトの名無しさん
2014/03/15(土) 13:52:42.43ID:Fwz6hkt80284デフォルトの名無しさん
2014/03/15(土) 13:56:49.66ID:7MQyb7Y3array.any?{ |e| [:a, :b, :c].include?(e) }
こっちの方がましかなぁ
0285デフォルトの名無しさん
2014/03/15(土) 14:06:01.75ID:Fwz6hkt8あんまし変わらないか
0286デフォルトの名無しさん
2014/03/15(土) 20:43:53.16ID:2XdUyWz9(t-array).size != t.size
いまいち
0287デフォルトの名無しさん
2014/03/15(土) 21:00:43.12ID:4oHlMdiA0288デフォルトの名無しさん
2014/03/15(土) 22:03:33.21ID:2XdUyWz9分かりやすいので俺も一票
0289デフォルトの名無しさん
2014/03/15(土) 22:13:56.50ID:Cg/cJL3k0290デフォルトの名無しさん
2014/03/16(日) 01:55:27.08ID:kwxpV1Db速い上に(高校で習う集合論を覚えていれば)直感的でわかりやすい
0291デフォルトの名無しさん
2014/03/16(日) 03:08:07.17ID:nvhpKgyR,.-、
(,,■)
0292デフォルトの名無しさん
2014/03/16(日) 07:38:46.95ID:35wQAmZk集合演算と二重否定(しかも遠い)のコンボは別に直感的でもわかりやすくもない
0293デフォルトの名無しさん
2014/03/16(日) 10:47:05.66ID:LO99WT+e>>284はタイプ量を減らそうとして直感的じゃなくなってるケース。
0294デフォルトの名無しさん
2014/03/16(日) 11:17:08.87ID:BR331utCその次に空(から)でないことを判定している
これは集合の要素数が小さければ最適解かもしれないけど、
要素数が極めて大きければ交わり計算に要する時間が無駄になる
今回の「お題」は完全な積集合を求めることではなく、
ただ単に交わりが存在するか否かを判定するだけなのだから、
>>284のほうが「お題」を素直に表現していると考える
>>290のいう「>>285は集合論として直感的だ」という意見は
決して間違いではないが、数学的な定義を直接的にコード化すると
(数学として直感的であっても)効率的ではなくなることがある
という例だと思われ
0295デフォルトの名無しさん
2014/03/16(日) 16:54:45.92ID:Lir+QJFsと、Rubyのソース見たら作ってた
require 'benchmark'
array=10_000_000.times.to_a.shuffle + [:a,:b,:c]
Benchmark.bm do |bm|
a = array.dup;bm.report{a.any?{|e|[:a,:b,:c].include?(e)}}
a = array.dup;bm.report{!(array & [:a, :b, :c]).empty?}
a = array.dup;bm.report{(a - [:a,:b,:c] == a)}
end
の実行結果 ruby 2.1.1p76 (2014-02-24 revision 45161) [i386-mingw32]
user system total real
14.969000 0.016000 14.985000 ( 15.000000)
0.344000 0.000000 0.344000 ( 0.343750)
0.578000 0.078000 0.656000 ( 0.703125)
試しに ruby 2.1.0p0 (2013-12-25 revision 44422) [i386-mingw32]
user system total real
23.781000 0.000000 23.781000 ( 23.781250)
0.344000 0.000000 0.344000 ( 0.343750)
0.609000 0.047000 0.656000 ( 0.687500)
集合演算はほぼCの関数だから変わってないけど
Array#any? は何気に速くなってるぅ
要素数が数千程度までなら実行時間に大して差はないので好きに書けばいいと思う
0296デフォルトの名無しさん
2014/03/16(日) 17:13:23.65ID:tehq2gt8>>292
n.&(m).empty?.! # ?!?!!? wwwwww
n.&(m).any? # nil を含まない保証がある場合
うん伝わり辛いな!
>>295
ハッシュ作ってるから爆発はしなさそうだよね
計算量はどう書くんだろ?教えて下さいエロい人
n.&(m).empty?.! # O(n+m) ← あってる?
n.any? {|v| m.include? v} # O(n*m) ← あってる?
0297デフォルトの名無しさん
2014/03/16(日) 17:37:42.28ID:X1gct15n>>296
うん、あってるね
0298デフォルトの名無しさん
2014/03/16(日) 19:59:48.28ID:+0w7Q/Uu0299デフォルトの名無しさん
2014/03/16(日) 20:08:04.34ID:X1gct15n0300デフォルトの名無しさん
2014/03/16(日) 20:09:29.32ID:+0w7Q/Uu0301デフォルトの名無しさん
2014/03/16(日) 20:27:14.55ID:nvhpKgyRhttp://docs.ruby-lang.org/
ふぇぇ
0302デフォルトの名無しさん
2014/03/16(日) 20:30:32.71ID:+0w7Q/Uuいまだ初心者スレがあるってことが信じられない
0303デフォルトの名無しさん
2014/03/16(日) 20:31:27.76ID:tehq2gt8あざす!
0304デフォルトの名無しさん
2014/03/16(日) 20:31:44.91ID:/mgBA8rW0305デフォルトの名無しさん
2014/03/16(日) 20:38:14.91ID:+0w7Q/Uupythonにみんな移り始めてるし、流れにのらないと待遇は悪くなるばかりだよぉ
0306デフォルトの名無しさん
2014/03/16(日) 20:39:30.35ID:nvhpKgyR0307デフォルトの名無しさん
2014/03/16(日) 20:41:40.69ID:/mgBA8rW0308デフォルトの名無しさん
2014/03/16(日) 20:44:36.70ID:+0w7Q/UuでもRubyかじったドカタさんレベルだと敷居が高いかもしれないね
0309デフォルトの名無しさん
2014/03/16(日) 20:45:04.33ID:pXWrRWdVRubyの方で隔離してくれてるとありがたい
0310デフォルトの名無しさん
2014/03/16(日) 20:51:37.19ID:BR331utCPythonやってると、+0w7Q/Uu みたいになるっていう例だね
0311デフォルトの名無しさん
2014/03/16(日) 20:55:34.15ID:/mgBA8rW0312デフォルトの名無しさん
2014/03/16(日) 20:58:04.50ID:+0w7Q/Uu0313デフォルトの名無しさん
2014/03/16(日) 21:02:03.69ID:/mgBA8rW0314デフォルトの名無しさん
2014/03/16(日) 21:03:29.62ID:BR331utC荒らしにかまうのも、荒らし行為だよ
0315デフォルトの名無しさん
2014/03/16(日) 21:39:25.11ID:+0w7Q/Uu他の言語にも手を出しつつRuby続けるならまだいいかもだけど
0316デフォルトの名無しさん
2014/03/16(日) 22:55:54.45ID:KyVGNp8Mたとえば、ARGVはargument valueみたいな
0317デフォルトの名無しさん
2014/03/16(日) 23:01:55.67ID:nMAWd7ojA.is_a B
A is a B
AはBである
0318デフォルトの名無しさん
2014/03/16(日) 23:04:00.20ID:+0w7Q/Uu0319デフォルトの名無しさん
2014/03/16(日) 23:19:24.42ID:nvhpKgyR標準ライブラリとかはTypeErrorとかArgumentErrorとかちゃんとスローするよね。
標準ライブラリとそれ以外のライブラリでは引数チェックに関するポリシーとかスタイルが違ったりするの?
0320デフォルトの名無しさん
2014/03/16(日) 23:22:06.68ID:+0w7Q/Uu早くpythonに移れば?
0321デフォルトの名無しさん
2014/03/16(日) 23:32:17.51ID:nvhpKgyR真面目な疑問なんだけど。
0322デフォルトの名無しさん
2014/03/16(日) 23:55:29.54ID:+0w7Q/Uu0323デフォルトの名無しさん
2014/03/17(月) 00:00:23.55ID:1c9ssCVbなるほど
C言語のさわりしかやってないんでクラスの理解に手間取ってる次第です
ありがとうございます
0324デフォルトの名無しさん
2014/03/17(月) 00:06:03.25ID:qNLDgXjvそりゃウンコプログラマにしかなれないんだなぁ〜
0325デフォルトの名無しさん
2014/03/17(月) 00:16:32.32ID:PrlWoGXZ自分は引数検査に関する公式なポリシーやスタイルというものを知らないから、
以下に書く内容は推測にすぎない事をあらかじめ断っておく
基本的にRubyは引数検査は緩やかなポリシーであり、
それ以上処理を続行できない or 明らかに続行すべきではない場合に限って
例外を発行するよう設計されていると(個人的には)見ている
ただし、標準ライブラリの中でも(C言語で書かれた)組込みライブラリは、
エラーがRubyインタプリタ自身のクラッシュに直結する(という理由がある)ので
厳密な引数検査が行われているように見えるのだと思う
実際、標準ライブラリの中でも(Rubyで書かれた)添付ライブラリは、
きちんと引数検査していないものが多い
もしも、>>319がより正確な答えを求めるのなら、
公式メーリングリストで問い合わせたほうがいいと思う
>>321
+0w7Q/Uu は多くの板で煽りカキコしている典型的なを荒らしだから、無視すべきだよ
http://hissi.org/read.php/tech/20140316/KzB3N1EvVXU.html
0326デフォルトの名無しさん
2014/03/17(月) 00:30:27.48ID:qNLDgXjvこれがRuby信者の実力
0327デフォルトの名無しさん
2014/03/17(月) 00:36:00.83ID:7WFHPef3気になったら報告すれば、さっくり対応してくれるよ。
礼儀としてRubyGemsのバージョンは古いから
mainなリヴィジョンで要確認
0328デフォルトの名無しさん
2014/03/17(月) 00:38:43.32ID:qNLDgXjv0329デフォルトの名無しさん
2014/03/17(月) 10:21:19.07ID:QW4CmNA10330デフォルトの名無しさん
2014/03/17(月) 11:08:05.99ID:CjINzA9/v==3 # ==> true
v=="3" # ==> true
的に使えるvariant型みたいのないですか
0331デフォルトの名無しさん
2014/03/17(月) 11:16:46.54ID:QW4CmNA1v が Fixnum になることが不可避。
0332デフォルトの名無しさん
2014/03/17(月) 11:23:19.39ID:aK3DvjMV== という記号がなにか判断をしているわけではない
http://docs.ruby-lang.org/ja/1.9.3/class/Object.html#I_--3D--3D
で、一般的には既存の(自作でない、==をオーバーライドするのは下品な)基本的オブジェクトに対しては
v.to_s == '3' とかして比較する
もちろん v に to_s というメソッドがないと例外吐いて落ちるが、それはそういうもん
0333デフォルトの名無しさん
2014/03/17(月) 11:25:42.04ID:qNLDgXjvRuby厨の実力はこの程度
このスレには馬鹿しか残ってないよ
0334デフォルトの名無しさん
2014/03/19(水) 07:53:04.37ID:gvuKo8uV0335デフォルトの名無しさん
2014/03/19(水) 08:14:49.29ID:pgTJKr0lPythonを理解できない脳だからしかたないか
0336デフォルトの名無しさん
2014/03/19(水) 08:56:05.04ID:vKjFIPAUGJ
0337デフォルトの名無しさん
2014/03/19(水) 09:35:52.73ID:pgTJKr0lRuby厨の日常はノーグッド
0338デフォルトの名無しさん
2014/03/19(水) 11:17:06.28ID:SQrMQ7kj0339デフォルトの名無しさん
2014/03/19(水) 11:24:53.34ID:pgTJKr0l0340デフォルトの名無しさん
2014/03/20(木) 03:38:53.80ID:tNptK3aXn = 50000
Benchmark.bm do |x|
x.report { for i in 1..n; a = "1"; end }
x.report { n.times do ; a = "1"; end }
x.report { 1.upto(n) do ; a = "1"; end }
end
こんな感じで実行時間をベンチマークするのは出来るのですが、
メモリ使用量を調べるにはどうすればいいでしょうか?
0341デフォルトの名無しさん
2014/03/20(木) 03:52:55.04ID:jQYIhnNXそういうことは基本的にできない。
unix系なら
/usr/bin/time -f %M ruby -e 'for i in 1..n; a = "1"; end'
とかやったら?
0342デフォルトの名無しさん
2014/03/20(木) 09:09:44.31ID:noBkfRX0仕事がないんですねわかります
0343デフォルトの名無しさん
2014/03/20(木) 10:00:24.17ID:noBkfRX0できないのはお前の頭のほうだろ
適当なことを吐くんじゃねえよ
ここはお前の便所じゃねえんだよ
0344デフォルトの名無しさん
2014/03/20(木) 13:15:37.29ID:t+S/cpioってしたら
module Foo; end
ってモジュールが自動生成されるけど、
モジュールじゃなくてクラスじゃダメなの?
名前空間が衝突しないようにgem名に基づいたmoduleを作らんと行かんってこと?
0345デフォルトの名無しさん
2014/03/20(木) 13:18:00.99ID:noBkfRX0だめなのはクラスじゃなくてお前の人生
Rubyの勉強の仕方が根本から間違ってるようだね
このスレに質問するまでは1年は早い
0346デフォルトの名無しさん
2014/03/20(木) 17:43:03.48ID:1pyMxfb0別にいかんわけじゃないが、そうした方が無難
0347デフォルトの名無しさん
2014/03/20(木) 21:11:50.95ID:noBkfRX0いかんのはお前のコーディングスタイル
お前職場でも空気読めない迷惑な存在だろ、自覚してんのか知らんけど
そういう人格がこういうとろこで表れるんだよ
だれもお前の意見なんて求めてないから消えろゴミクズ糞蛆虫
0348デフォルトの名無しさん
2014/03/21(金) 01:16:13.41ID:6IJg/I04"一番外側"はモジュールなのが一般的
もちろんクラスでもいいのだけど、どっちか決め打ちしろと言われたらモジュールにする
そんな程度
使わんかったら書き換えてもいいよ
0349デフォルトの名無しさん
2014/03/21(金) 01:23:23.23ID:Z82+z0lXはそんな程度の頭
終始曖昧な答えで終わってる
0350デフォルトの名無しさん
2014/03/21(金) 01:37:07.62ID:q4G07wC8def foo; return :foo; end
end
Foo.new.get_uwagaki_method(:@foo)
# => nil
class Foo
def foo; return :oreore_foo; end
end
Foo.new.get_uwagaki_method(:@foo)
# => :redefine
class Bar < Foo
def foo; return :bar_foo; end
end
Foo.new.get_uwagaki_method(:@foo)
# => :overwride
みたいに、
的な事をしたいんだけど無理かな?
0351デフォルトの名無しさん
2014/03/21(金) 01:41:14.04ID:Z82+z0lX動かないコードを書いてばっかじゃねーの
0352デフォルトの名無しさん
2014/03/21(金) 08:56:29.68ID:dbzhsf0s日本語でおk
最終的にやりたいことを説明するといいよ
0353デフォルトの名無しさん
2014/03/21(金) 12:11:42.86ID:o/AML2E/def fooするまえに defined? foo 確認すりゃええだけちゃうのん
0354デフォルトの名無しさん
2014/03/21(金) 12:44:28.14ID:Z82+z0lX呼ばれてないのにくる初心者乙
0355デフォルトの名無しさん
2014/03/21(金) 13:38:18.66ID:DlG+OImv0356デフォルトの名無しさん
2014/03/21(金) 14:22:40.78ID:Z82+z0lX0357デフォルトの名無しさん
2014/03/21(金) 15:02:22.06ID:3n01pDgG0358デフォルトの名無しさん
2014/03/21(金) 15:44:37.03ID:Z82+z0lX0359デフォルトの名無しさん
2014/03/22(土) 01:45:28.34ID:jZh4qhvH入力として1つの整数 x が与えられます。
0360デフォルトの名無しさん
2014/03/22(土) 01:49:32.78ID:aBNmXC5dx = gets.to_i
p x*x*x
0361デフォルトの名無しさん
2014/03/22(土) 01:49:38.53ID:+2B6OEdXこういう場違いな低学歴が平気でスレに出入りするからみんな去ってくんだよ
0362デフォルトの名無しさん
2014/03/22(土) 01:54:29.37ID:aBNmXC5dうるせーこの野郎、こちらは初心者スレだぜぇ、一昨日来やがれ
0363デフォルトの名無しさん
2014/03/22(土) 02:02:36.90ID:veNOxdve・aBNmXC5d
http://hissi.org/read.php/tech/20140322/YUJObVhDNWQ.html
・+2B6OEdX
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html
0364デフォルトの名無しさん
2014/03/22(土) 02:03:59.93ID:+2B6OEdXそんなんじゃ仕事にならんぞ
0365デフォルトの名無しさん
2014/03/22(土) 02:09:02.62ID:jZh4qhvHたて a cm よこ b cm の長方形の面積と周の長さを求めるプログラムを作成して下さい。
a と b が1つの空白で区切られて与えられます。
面積と周の長さを1つの空白で区切って1行に出力して下さい。
Sample Input
3 5
Sample Output
15 16
0366デフォルトの名無しさん
2014/03/22(土) 02:11:04.05ID:+2B6OEdXこのスレは本格的に終了
0367デフォルトの名無しさん
2014/03/22(土) 02:16:03.70ID:jZh4qhvH耳は聞こえるのかな
0368デフォルトの名無しさん
2014/03/22(土) 02:26:10.68ID:+2B6OEdX0369デフォルトの名無しさん
2014/03/22(土) 09:10:48.40ID:1kwxfvu4連休二日目もRubyスレに張り付いて荒らしをして過ごします
0370デフォルトの名無しさん
2014/03/22(土) 09:15:45.23ID:uxrrfUq4a,b = gets.split(/\s+/).map(&:to_i)
puts [a*b,2*a+2*b].join(' ')
0371デフォルトの名無しさん
2014/03/22(土) 10:05:34.86ID:ahejxoWbたとえば、>>370を「授業で教える」ことはおそらくないから、これを提出するとチェック対象になるはず
>>369
Ruby関係ないよ
ム板にずっと前からいる
0372デフォルトの名無しさん
2014/03/22(土) 10:14:45.52ID:uxrrfUq4言うなよ、提出させてバレるのがいいんじゃないか
0373デフォルトの名無しさん
2014/03/22(土) 10:18:53.60ID:n17bsJOwrailsがあるだけでpythonより価値あるけど
0374デフォルトの名無しさん
2014/03/22(土) 11:17:24.86ID:HSsuroe3「たったの…」が本当に2日で終わるとは思ってなかったので…。
勉強の目的はweb制作です。
0375デフォルトの名無しさん
2014/03/22(土) 11:43:57.96ID:h4m0yMGm自分に不足してる知識が見えてきたら次の本を買うぐらいでいいと思う
0376デフォルトの名無しさん
2014/03/22(土) 12:25:32.39ID:/Wci2X+J加えて実践的なもの(各種ツール、gemの作り方)、Rubyの黒い部分(メタプログラミング)
も扱っているようだな。
徐々に進みたいならたのしいRuby、網羅的な1冊ならパーフェクトRuby、という感じ。
0377デフォルトの名無しさん
2014/03/22(土) 12:49:21.46ID:HSsuroe3「たったの…」ではそこまでの力がつかない気がします。本当に基礎の基礎だけっぽいので…。
>>376
では「パーフェクト…」をやりながら理解しにくいところだけ「楽しい…」をリファレンス代わりにというのが良さそうですね。
ありがとうございました。
0378デフォルトの名無しさん
2014/03/22(土) 13:00:05.43ID:1DTI3LRJ0379デフォルトの名無しさん
2014/03/22(土) 13:20:40.56ID:+2B6OEdX0380デフォルトの名無しさん
2014/03/22(土) 13:22:47.11ID:n17bsJOwシリーズ物だから売れてるけど。
勉強のために最初から読むって本でもない。
0381デフォルトの名無しさん
2014/03/22(土) 15:58:52.64ID:+2B6OEdXではなに読んでも糞本になる
0382デフォルトの名無しさん
2014/03/22(土) 16:09:26.52ID:n17bsJOwテストを扱ってないのも致命的だと思った
さらに言うと著者紹介を見れば分かるけど著者の技術レベルがかなり疑わしい
0383デフォルトの名無しさん
2014/03/22(土) 18:54:37.75ID:h4m0yMGmあれを手を動かしながら読んで同種のコードをサラサラ書けるようになれば初歩としては十分だと思った
でも 200 ページ足らずで \2,310 はちょっと高いかな
その隣りに置いてあった『たのしいプログラミング Python ではじめよう!』をついでにめくってみたら
フルカラーで素敵な挿絵(すごい Haskell の人が描いてる)が一杯で危うく買いそうになった
0384デフォルトの名無しさん
2014/03/22(土) 21:15:28.26ID:7m4m/Mijhttp://www.amazon.co.jp/dp/4873113946/
オライリーが 1.X の記述を捨て去った完全 2.X 版を出せば
『パーフェクトRuby』は売れなくなるよ
0385デフォルトの名無しさん
2014/03/22(土) 22:03:09.18ID:uxrrfUq40386デフォルトの名無しさん
2014/03/22(土) 23:37:47.29ID:7m4m/Mij2000年ごろ原先生のウサギ本を書店で見かけてすぐに購入。
あとはWebにあったトーマスとハントのネタ元が役に立った。
今はドキュメントが豊富で何を読んでいいのか分からないとか。w
0387デフォルトの名無しさん
2014/03/22(土) 23:58:27.13ID:e4K+RqPN0388デフォルトの名無しさん
2014/03/23(日) 00:05:45.79ID:AY0ttai1http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
3/20 ID:noBkfRX0 69レス1位
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
3/21 ID:Z82+z0lX 55レス1位
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
3/22 ID:+2B6OEdX 39レス1位
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html
完 全 に 病 気
0389デフォルトの名無しさん
2014/03/23(日) 00:12:26.12ID:LwVxNWuC国粋主義者?
0390デフォルトの名無しさん
2014/03/23(日) 00:27:29.79ID:YG72v+Wj「バレた」としても、それが学生/生徒側にわざわざ知らされるようなことはまずないとみていい
(他の(普段の)回答と比べれば差が歴然で剽窃が明白だから)
>>365が「あの回答をコピペしたせいで成績下がった」と認識することも、スレに報告しに来ることも絶対にない
つまり、傍目には単に宿題に親切に回答しただけだ
そんなん、宿題やっての書き込みが増えるだけでなんもいいことがないし面白くもない
>>371がきちんとできる人は結果的に宿題を自力でできる人だから、虫避けになる
0391デフォルトの名無しさん
2014/03/23(日) 00:33:08.84ID:pTyhCbBFarray.each do |i|
if Numeric
puts '数字だな'
elsif i == "一番目"
puts "日本語だな知ってる"
else
puts "それいがいのなにか、うんわかってる"
end
end
これなんでうまくいかないのか教えて
caseだとうまくいくのに
0392デフォルトの名無しさん
2014/03/23(日) 00:41:43.90ID:N5RuRaJBbegin-endなので書きなぐれるし
OOPなメソッドチェーンなので補完がバリバリ効く
万能な言語は存在しないので
何か一つでも用途にあえばそれはそれで本人満足なんだから
他人があれこれ言う話じゃない
0393デフォルトの名無しさん
2014/03/23(日) 00:43:10.35ID:LwVxNWuC0394デフォルトの名無しさん
2014/03/23(日) 00:48:38.91ID:YG72v+Wj>これなんでうまくいかないのか教えて
それは、なんとなく書いてるから
>caseだとうまくいくのに
それも、なんとなく書いてるから
プログラム言語は融通の利かないロジックの塊
使い方とルールはきちんと覚えよう
0395デフォルトの名無しさん
2014/03/23(日) 00:50:12.90ID:qvzVCOslcase は === で比較してるからうまくいくだけ
0396デフォルトの名無しさん
2014/03/23(日) 01:11:27.28ID:SSYwKPLD俺が教官だったら晒し上げるけどなあ。
0397デフォルトの名無しさん
2014/03/23(日) 01:23:09.83ID:pTyhCbBF===でもうまくいかない
0398デフォルトの名無しさん
2014/03/23(日) 01:33:19.21ID:LwVxNWuC0399デフォルトの名無しさん
2014/03/23(日) 02:23:34.79ID:SSYwKPLDちゃんと if Numeric === i にした?
0400デフォルトの名無しさん
2014/03/23(日) 02:29:55.51ID:LwVxNWuC回答者が馬鹿な回答をする
質問者の問題が解決しない
質問者が再質問
こんなかんじの繰り返し
0401デフォルトの名無しさん
2014/03/23(日) 02:35:31.14ID:XqmsbHivそりゃ著者が、日本Rubyの会の設立者/代表だからね
2002年の初版から11年で、第4版まで出したんだし、
情熱はあるだろう
漏れはソフ開もちで、10ぐらい言語を知っているが、
関数型が苦手なせいか、3回読んでようやくマスターした
結局はライブラリが、調べやすいかどうかで、
日本人には、Rubyが有利
Ruby, Jenkinsをもっと極めて、日本独自の進化をとげて、
CoolJapanとして世界へ広めてほしい
今は、「はじめてのJavaScript」という本で、苦戦している
動的言語は型チェックがないから、
CoffeeScriptの方が良さそう
0402デフォルトの名無しさん
2014/03/23(日) 02:38:59.95ID:LwVxNWuC気持ち悪すぎる
自分はこんなにたくさん本を読んで知識がありますよー
0403デフォルトの名無しさん
2014/03/23(日) 02:41:57.88ID:N5RuRaJBで?
0404デフォルトの名無しさん
2014/03/23(日) 02:47:24.66ID:LwVxNWuC戦前の日本みたいに軍国主義ごっこしてろや、馬鹿エセ国粋主義者が
0405デフォルトの名無しさん
2014/03/23(日) 02:51:44.33ID:pTyhCbBFif i === Numericではだめなんですね
難しい
0406デフォルトの名無しさん
2014/03/23(日) 02:54:39.85ID:LwVxNWuCこんなのがRubyやってるんだぞ?>>401よ
0407デフォルトの名無しさん
2014/03/23(日) 03:05:06.46ID:pTyhCbBFcaseと同じ用に書いていると思い込んでいたけど
違いました。気づかせて頂きありがとう御座います。
0408デフォルトの名無しさん
2014/03/23(日) 03:06:43.14ID:LwVxNWuC少なくとも謝罪しろ、そして二度とこのスレに来るな
0409デフォルトの名無しさん
2014/03/23(日) 03:09:33.99ID:pTyhCbBFなぜなら初心者スレだから
お前のことは無視するwww
0410デフォルトの名無しさん
2014/03/23(日) 03:18:38.19ID:yrm7150G連休二日目もRubyスレに張り付いて荒らしをして過ごしました
3連休は全てRubyスレに張り付いて荒らしをすることに費やしました
0411デフォルトの名無しさん
2014/03/23(日) 03:48:17.03ID:SSYwKPLDあまりキチガイにレスしないほうがいいよ。
0412デフォルトの名無しさん
2014/03/23(日) 04:19:16.64ID:Xi/E3NRQ0413デフォルトの名無しさん
2014/03/23(日) 06:54:19.68ID:3+gMdqxKえらい
頑張れ
0414デフォルトの名無しさん
2014/03/23(日) 06:55:52.65ID:N9+xBsr1wearable deviceが出来た際に、最初に移植されるのは多分、cコンパイラ。
市場でイニシアチブを取るためには競合に先行する必要があるとすると、
全ての言語のなかで優れた選択肢がmrubyやluaの類。
今手元のマシンで動くcのコードは移植先のマシンでも動くと限らない。
誰かがc++をコンパイラを移植して、それからjvmモドキが移植されるのを待つと競合に遅れをとる。
Google v8は高品質かつ規格のために移植が遅れる。つまり、競合に遅れをとる。
ここで、mrubyという選択肢には厳密な規格や企業が持つライセンス問題から離れて他社に先行でき、
低レイヤの問題を抽象化できるというアドバンテージが生まれる。
市場に競合さえ居なければ、テトリスやインベーダーでもビルが建つぐらい稼げる。これがmrubyの魔力。
0415デフォルトの名無しさん
2014/03/23(日) 07:40:22.15ID:N9+xBsr1・国内企業からのバックアップ
・開発者同士のコネクション
・勝手に弄れる
誰にでも出来るweb開発だけでは替えなんて幾らでも居る。コネがあると当然ながら就職/転職活動が上手くいく。
luaを使えば、地球裏側の産業に貢献するかもしれないが国内産業は潤わない。
Rubyなら、国内産業から出版業、教育界まで、経済的な活性化が見込めるアベノミクス言語。地方自治体から感謝される。
lua自体は大学のプロジェクト。オタクが何もかも自由に遊べるものではないはず。
そして、言葉の壁ができる。日本語とポルトガル語。どちらも英語が第二言語習得者。
luaやjavascript,pythonよりも迅速に移植される可能性を持ち、一般的なオブジェクト指向言語として使えるのはRubyだけ。
0416デフォルトの名無しさん
2014/03/23(日) 07:43:32.33ID:l8Gj6RjRルビー使いが喜来
好きになってもらいたいなら
俺のチンチンしゃぷれ
0417デフォルトの名無しさん
2014/03/23(日) 07:44:28.39ID:N9+xBsr10418デフォルトの名無しさん
2014/03/23(日) 07:46:35.43ID:N9+xBsr1いろんな人が、HaskellやLispの宣伝をするけれど、
実際に東大女とやれる可能性が高いのはRubyじゃないかな
0419デフォルトの名無しさん
2014/03/23(日) 07:54:49.56ID:QZth2AWpぎく!
どうして俺が
Lisp使いになると東大女とやれるよって
書いてるとわかったか?
きみ、すごいな。
じゃ書くか
rubyは早稲田女だとおもうよ
東大女とやるにはLispだね
0420デフォルトの名無しさん
2014/03/23(日) 15:33:33.77ID:N9+xBsr1とても素敵な語感だから、ネットで流行ればいいなと思って使わせて貰っただけだよ
むしろ、すごいのは「東大女とやれる」なんて素敵なフレーズを思い付く貴方のほう
嗚呼ァ、貴方を宿した胎は何と恵まれているんだろうか
...。互いに口先だけでもギーク市場の頂点を目指して、市場と初心者たちを撹乱させようね!
0421デフォルトの名無しさん
2014/03/23(日) 15:35:40.44ID:Xi/E3NRQ0422デフォルトの名無しさん
2014/03/23(日) 18:45:00.43ID:yuPZb1TIオブジェクト指向をたいやきの型とたいやきで説明してお茶を濁そうとするのは全て駄本の証し
0423デフォルトの名無しさん
2014/03/24(月) 01:00:43.29ID:B2kC2TB8require 'data'ってやってもエラーがでます
どうしたら利用できるでしょうか?
0424デフォルトの名無しさん
2014/03/24(月) 01:06:33.18ID:PVohiAF8おまえ自分のレス100回音読しろ
0425デフォルトの名無しさん
2014/03/24(月) 01:07:50.66ID:iN+OyuMJまず頭をかち割ります
中に寄生虫がいるので素手でもいいんで取り出します
あとは消毒液をかけて頭を元通りにすればOK
これをやれば1時間後くらいに頭がさえて問題が解決
0426デフォルトの名無しさん
2014/03/24(月) 01:44:19.46ID:YM9VgzDThttp://hissi.org/read.php/tech/20140317/cU5MRGdYanY.html
http://hissi.org/read.php/tech/20140318/RzEydTlDQ2U.html
http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.html
http://hissi.org/read.php/tech/20140323/THdWeE5XdUM.html
http://hissi.org/read.php/tech/20140324/aU4rT3l1TUo.html
今日も一日頑張ってください
0427デフォルトの名無しさん
2014/03/24(月) 04:48:19.29ID:Tnk79sXsネットの方は、def def def ばっかりw
あれが本来のRubyなんでしょうね。
0428デフォルトの名無しさん
2014/03/24(月) 06:41:10.13ID:1KCVJWex{{{
か
(((
或いは
def foo
def bar
def baz
としか成らない
0429デフォルトの名無しさん
2014/03/24(月) 07:00:27.11ID:1KCVJWex自分で使う分にはPHP,jsが最良の選択肢だとしても、他人にはRubyを勧めた方が合理的だからね
0430デフォルトの名無しさん
2014/03/24(月) 07:48:37.12ID:30azwQW6http://hissi.org/read.php/tech/20140319/cGdUSktyMGw.html
3/20 ID:noBkfRX0 69レス1位
http://hissi.org/read.php/tech/20140320/bm9Ca2ZSWDA.html
3/21 ID:Z82+z0lX 55レス1位
http://hissi.org/read.php/tech/20140321/WjgyK3owbFg.html
3/22 ID:+2B6OEdX 39レス1位
http://hissi.org/read.php/tech/20140322/KzJCNk9FZFg.htm
3/23 ID:LwVxNWuC 51レス1位
http://hissi.org/read.php/tech/20140323/THdWeE5XdUM.html
完 全 に 病 気
3/24: ID:iN+OyuMJ
http://hissi.org/read.php/tech/20140324/aU4rT3l1TUo.html
0431デフォルトの名無しさん
2014/03/24(月) 08:07:09.61ID:0UbPKOhmきみ、精神病だね?
延々と作業してたのか?
倦むことを知らない精神病のコツコツさ
0432デフォルトの名無しさん
2014/03/24(月) 08:07:52.63ID:0UbPKOhm調べた君は、お馬鹿というより
精神病だな
そうなんだろ?
0433デフォルトの名無しさん
2014/03/24(月) 09:22:24.36ID:Tnk79sXsをRubyのコードで表現すると↓
0434デフォルトの名無しさん
2014/03/24(月) 09:34:21.43ID:d/Rvi+Ke0435デフォルトの名無しさん
2014/03/24(月) 10:20:23.38ID:iN+OyuMJRubyいらね
0436デフォルトの名無しさん
2014/03/24(月) 10:43:27.04ID:OJ3JLSil0437デフォルトの名無しさん
2014/03/24(月) 10:52:30.61ID:qe8lM9lCたとえば、なんかのインスタンスをjsonにシリアライズしようとしたら、
to_hやto_a以外にHashとArrayが混在したオブジェクトにならざるを得ないやつとかあるよね。
そんときにインスタンスの参照先をto_oしていけば、ぜんぶ良い感じに変換されて、
to_jsonしやすくなるっっていうか、そんなの。
0438デフォルトの名無しさん
2014/03/24(月) 13:26:05.01ID:iN+OyuMJマジで消えろ
0439デフォルトの名無しさん
2014/03/24(月) 16:03:05.03ID:WPkFwPNy主な症状 :多弁で話が飛ぶ
活動的だがまとまりがなく、落ち着きがない
話は自己陶酔的で、大風呂敷で、攻撃的
あまり眠らない
0440デフォルトの名無しさん
2014/03/24(月) 16:15:14.30ID:iN+OyuMJ0441デフォルトの名無しさん
2014/03/24(月) 16:37:17.74ID:B2kC2TB8すまん、なにがおかしいの?
初心者だからわからんわ
0442デフォルトの名無しさん
2014/03/24(月) 16:56:50.79ID:KlVmlKLXrequire 'data' じゃなくて require 'date'
http://docs.ruby-lang.org/ja/2.1.0/class/Date.html
0443デフォルトの名無しさん
2014/03/24(月) 17:33:31.82ID:Tnk79sXsそういう話かも
0444デフォルトの名無しさん
2014/03/24(月) 18:34:42.15ID:iN+OyuMJ0445デフォルトの名無しさん
2014/03/24(月) 20:49:48.95ID:25y3o3Jt0446デフォルトの名無しさん
2014/03/24(月) 22:42:39.18ID:B2kC2TB8ごめんなさい書き間違えました
もとの方はdateでしたが、それでもダメでした
0447デフォルトの名無しさん
2014/03/24(月) 22:49:23.82ID:KlVmlKLXどんなふうにダメ?
やったこととエラーメッセージを貼って
0448デフォルトの名無しさん
2014/03/24(月) 22:50:45.38ID:iN+OyuMJに何を聴いても質問しか返ってこない
なぜなら>>447ではわからないから
0449デフォルトの名無しさん
2014/03/24(月) 23:05:26.07ID:Tnk79sXs0450デフォルトの名無しさん
2014/03/25(火) 01:42:32.11ID:bvFcvrs8ほんとゴミ脳でRubyを語ることがよくできるな
0451デフォルトの名無しさん
2014/03/25(火) 08:06:55.97ID:MUsruA2vクリトリスを舌でチロチロやでぇ
0452デフォルトの名無しさん
2014/03/25(火) 08:21:05.04ID:zUh15pRTsql文自体をwindows-31jで投げないとクエリ自体がエラーになるという…思わず初心者憤死
たった一行付けるだけでutf-8でやり取りできるように出来るという情報を見つけるまでに丸三日
…日本発なのに英語できないとダメなのねorz
0453デフォルトの名無しさん
2014/03/25(火) 08:49:00.37ID:+foOGTJU0454デフォルトの名無しさん
2014/03/25(火) 10:43:26.21ID:K3vJXUKKRubyは日本人がコア開発者だが、外国人の作った英語説明つきライブラリを日本語に訳す機能はないし
外国人の作った英語説明サイトを日本語に訳す機能もない
0455デフォルトの名無しさん
2014/03/25(火) 12:07:08.90ID:slP3N4Xw0456デフォルトの名無しさん
2014/03/25(火) 12:50:35.26ID:bvFcvrs8これ真理な
0457デフォルトの名無しさん
2014/03/25(火) 22:51:02.36ID:i+zmUVEy0458デフォルトの名無しさん
2014/03/26(水) 00:25:37.73ID:GkcGuB2r0459デフォルトの名無しさん
2014/03/26(水) 01:38:19.33ID:vUs5dc2phttp://c.cocacola.co.jp/ に自動ログインするスクリプトを書いたのですが、サイトのリニューアルでログインできなくなりました。
以前は単純なログインフォームだったのですが、今は、agent.page.formsで該当のログインフォームが見つかりません。
ブラウザで見るとログインフォームはあるのですが、どのように調べればよいでしょうか?
0460デフォルトの名無しさん
2014/03/26(水) 02:05:53.37ID:ybtB2GShgoogle翻訳を使うべし
英単語と日本語が、1対1で表示されるし、
訳が出たあとで、単語の対応を変えられる
それで片端から、公表すればよい
Eclipse MergeDoc もそう
単語のデータベースがあって、みんなで用語を統一している
0461デフォルトの名無しさん
2014/03/26(水) 02:18:21.01ID:XnxEs4mFHTMLを自力で理解して読めないとMechanizeは使えない
>ブラウザで見るとログインフォームはあるのですが
なんて言ってる人には無理
0462デフォルトの名無しさん
2014/03/26(水) 02:49:32.17ID:ybtB2GShHTMLのソースコードを開いて、その中を、form で検索してみ
<form> </form>で囲まれた中が、フォーム関連
その中に、様々なフォームの部品
(コントロール、ウィジェット)がある
<input>は、入力欄
<textarea>は、複数行テキスト入力欄
<select>は、選択リスト
<button>は、ボタン
HTMLを解析するには、HTMLのタグの意味を知らないと
0463デフォルトの名無しさん
2014/03/26(水) 05:17:25.21ID:Pcq/Kh4O0464459
2014/03/26(水) 07:55:05.03ID:vUs5dc2pすみません。上手く説明できていませんでした。ブラウザでソースを確認すると<form></form>はあるのですが、Mechanizeでアクセスするとそのformがsearchできないのです。
で、今思ったのは、javascriptで生成されたフォームなのかな?ということで、Mechanize以外の方法を考えてみます。
0465デフォルトの名無しさん
2014/03/26(水) 13:55:24.86ID:2SW0uc9D0466デフォルトの名無しさん
2014/03/26(水) 16:11:04.49ID:Ti6QfqQB0467デフォルトの名無しさん
2014/03/26(水) 22:37:26.74ID:N6ppR8YnHTMLのテキストエリアに記載された文字をregist.cgiで表示させるサンプルを作ってみました。
半角英数字は正しく表示される事を確認しました。しかし全角文字が全く表示されません。
色々試しましたがまったく変わりません。上手く表示する方法を教えてください。
OS:windows 7 64bit
ruby:ruby 1.9.3p194 (2012-04-20) [i386-mingw32]
ブラウザ:FireFox 22.0
webサーバ:http://magazine.rubyist.net/?0011-CGIProgrammingForRubyBeginnersにあるrubima011-cgi.zipのserver.rbを使用
[index.html]
<!DOCTYPE html>
<html lang="ja">
<head><meta charset="Shift-JIS"><title>Sample System</title></head>
<body>
<form action="regist.cgi" method="get">
<textarea name="t" cols="20" rows="4">コードを記載して下さい</textarea><br>
<input type="submit" value="OK">
</form>
</body>
</html>
[rigist.cgi]
#!/usr/local/bin/ruby
print "Content-Type: text/html\n\n"
print "<html><head></head><body>"
require "cgi"
c = CGI.new
text = c["t"]
print text
print "<br>"
print "</body></html>"
0468デフォルトの名無しさん
2014/03/26(水) 22:52:47.35ID:Sd7Ek0FC0469デフォルトの名無しさん
2014/03/26(水) 22:56:58.83ID:j+UsaIor出力でcharset教えてないから、ブラウザがデフォルトのcharsetだと思って表示してんじゃないの。
0470デフォルトの名無しさん
2014/03/26(水) 22:58:28.92ID:qHAM3H0L[2014-03-26 22:55:46] ERROR CGIHandler: /home/.../rubima011-cgi/regist.cgi:
/usr/lib/ruby/2.1.0/cgi/core.rb:676:in `block (2 levels) in initialize_query': Accept-Charset encoding error (CGI::InvalidEncoding)
ドンピシャの記事
http://tmtms.hatenablog.com/entry/20120902/ruby_encoding
0471デフォルトの名無しさん
2014/03/26(水) 23:05:05.45ID:nh+csio50472デフォルトの名無しさん
2014/03/26(水) 23:13:27.28ID:qHAM3H0Lなぜ?
0473デフォルトの名無しさん
2014/03/27(木) 00:30:54.69ID:6dxUJoHd0474デフォルトの名無しさん
2014/03/27(木) 01:33:40.29ID:kgS7s8CDcharset="Shift-JIS"
普通は、"UTF-8" じゃないの?
0475デフォルトの名無しさん
2014/03/27(木) 05:04:24.68ID:YolnPXC80476バカ
2014/03/27(木) 07:58:42.50ID:P78HiJTLregister 【名詞】 登録器 レジ
0477デフォルトの名無しさん
2014/03/27(木) 08:30:17.37ID:9EZiObQuなるほど。どうもありがとー
0478デフォルトの名無しさん
2014/03/27(木) 20:51:57.34ID:BPFmA3wn回答ありがとうございます。
エンコードに問題有りとの事だったので以下の様に修正した所、正しく表示されるようになりました。
・HTMLファイルのcharsetを変更
<meta charset="Shit-JIS"> → <meta charset="UTF-8">
・HTMLファイル保存時に「エンコードの種類」を変更
Shift-JIS → Unicode(UTF-8)
# $KCODE = "SJIS"とかにしても何も変わらなかったので・・・。
0479デフォルトの名無しさん
2014/03/27(木) 22:48:27.08ID:1Iv5wAAz0480デフォルトの名無しさん
2014/03/28(金) 22:52:04.74ID:JN3aOKjp色々調べたんですが、HTMLの機能として付いているベーシック認証はダサいので使いたくないですし
たいていはruby on railsばっかりなので困っています(レンタルサーバだとrailsは使えないんですよね・・)
もし何か良いサンプルがありましたら是非教えて下さい。
0481デフォルトの名無しさん
2014/03/28(金) 23:31:36.36ID:EdD5olOyレンタルサーバでもherokuみたいなのもあるし、AWSやさくらを使う手もある
そういうのも選択肢に入れてみてはいかが?
0482デフォルトの名無しさん
2014/03/28(金) 23:35:47.53ID:0Llxlo7P0483デフォルトの名無しさん
2014/03/29(土) 01:01:48.56ID:H58olU+6HTTP認証がダサいかどうかは、ブラウザの問題では?
0484デフォルトの名無しさん
2014/03/29(土) 01:43:17.54ID:yxjl4cT50485デフォルトの名無しさん
2014/03/29(土) 02:21:07.37ID:UFvyasfI0486デフォルトの名無しさん
2014/03/29(土) 05:21:40.84ID:oh5tVCzV0487デフォルトの名無しさん
2014/03/29(土) 10:07:19.57ID:KQZTo8Ge0488デフォルトの名無しさん
2014/03/30(日) 13:14:08.87ID:Tfqgik4v0489デフォルトの名無しさん
2014/03/30(日) 19:20:19.83ID:ctBuohCTやつらはダメリカの利益団体だから、Microsoft なサーバーに ASP の一択だろう、 LAMP すら拒絶するのでは?
ホスティング業者なぞどこでもいい
0490デフォルトの名無しさん
2014/03/30(日) 23:56:17.50ID:vrktFi0kそういう時は、混同のないようウヨという言葉を使いなさい
0491デフォルトの名無しさん
2014/03/31(月) 00:11:09.54ID:YuwcCGeeいても街宣朝鮮右翼しかいない
戦前の日本に戻ってくれや
0492デフォルトの名無しさん
2014/03/31(月) 02:39:18.54ID:Gc3u5wUcおいおい、お前、右翼を勘違いしているぞ
右翼が愛国者なら原爆投下による非武装市民の無差別殺戮を非難するはずだが
そんな右翼をみたことあるのか?
軍歌を放唱し国を愛でる、といいながら顔はダメリカを向いていることに今まで気づいていないのか、恥ずかしいやつだ
>>491
チンタロウは文人あがりなんでちょっと特殊だ
0493デフォルトの名無しさん
2014/03/31(月) 07:21:01.72ID:8z/Wyvf8スレ違いもはなはだしい
0494デフォルトの名無しさん
2014/03/31(月) 07:40:31.67ID:snXHFGZ8日本産のプログラミング言語がねたましいと言っているんだ
0495デフォルトの名無しさん
2014/03/31(月) 11:39:37.35ID:i1qC9/3k0496デフォルトの名無しさん
2014/03/31(月) 15:01:46.40ID:AilFR+xR0497デフォルトの名無しさん
2014/04/04(金) 06:12:52.67ID:UIgW7/7Pあんまり空気伝わってこないだけでかなりあっちは既に反日化してるだろ
4月6日に新2ch誕生するから反米右翼マは移動しろや
0498デフォルトの名無しさん
2014/04/04(金) 06:18:13.91ID:UIgW7/7P政治やニュースなんてほんと終了だからな
日本人以外の管理するサイトでネット世論の操作なんて、どんな事になっていくか
今後は謎のアメポチ大量発生が予想される
0499デフォルトの名無しさん
2014/04/04(金) 12:02:20.00ID:eePHkA+iアフィカス天国を放置したひろゆきを支持する2ちゃんねらーなんていねーよ
0500デフォルトの名無しさん
2014/04/04(金) 18:33:32.71ID:do491lEW最後の章でRailsのコードについての解説がありましたが、ここまで動的で、メタなプログラミングは「やり過ぎ」なのではないかという印象を受けました
こんなにわかりづらくメタにプログラミングをするくらいなら重複表現をしてでも愚直に書いていったほうが、保守性も可読性も高まるのではないかと感じます
このように考えてしまうのは、私がコードをまともに書いたことがない初心者だからなのでしょうか?それとも自分のように考える人も一定数いるのでしょうか
0501デフォルトの名無しさん
2014/04/04(金) 21:43:01.24ID:EPWSnKIoRailsのスクリプトは素のRubyとは比べ物にならないくらい普及してるから問題なし
要は共通の理解があるかどうかだ
お前がチーム内で勝手に「ぼくのかんがえたさいきょうのRuby」で書いたら
そりゃレビューでボコボコに叩かれてクビが飛ぶだろうね
0502デフォルトの名無しさん
2014/04/05(土) 23:19:19.43ID:j2Ymk93Lcmd上で一瞬こんにちは世界が表示されすぐにcmdが閉じてしまいます
cmdを閉じないような設定はできないでしょうか?
0503デフォルトの名無しさん
2014/04/06(日) 00:45:30.08ID:jGn/ohiMその場合、どういうライブラリ使うのが王道なのでしょうか
hpricotは開発終了したとのことなのでnokogiri?
とはいえ、これはスクレイピングのライブラリっぽくてhtml生成とは違うっぽいのですが
できれば標準ライブラリにあれば助かります
0504デフォルトの名無しさん
2014/04/06(日) 01:33:51.17ID:lcQBK2Mzまずcmd.exeを起動して、そこでocraで作ったexeを実行すればいいのでは
explorerから実行したいのなら、「こんにちは世界」を表示したあとに
1行入力するなど待ち処理を入れてみては
0505503
2014/04/06(日) 02:58:52.24ID:jGn/ohiM0506デフォルトの名無しさん
2014/04/06(日) 09:39:57.23ID:uTfGcidaJavaScriptだとargumentsで渡せるんだけど。
0507デフォルトの名無しさん
2014/04/06(日) 09:58:01.98ID:Ben6iKqNhttp://docs.ruby-lang.org/ja/2.1.0/method/Proc/i/parameters.html
0508デフォルトの名無しさん
2014/04/06(日) 10:45:31.03ID:uTfGcidaなんかちがうくね?
0509デフォルトの名無しさん
2014/04/06(日) 10:52:46.32ID:AUPUS+0Idef hoge *args
fuga * args
end
0510デフォルトの名無しさん
2014/04/06(日) 10:54:46.17ID:uTfGcidaそうせずにやる方法なんだけど。
えと、JavaScriptのargumentsって知ってる?
0511デフォルトの名無しさん
2014/04/06(日) 11:21:16.16ID:CO3q3128JavaScriptでもapply使わなきゃいけないだろ
0512デフォルトの名無しさん
2014/04/06(日) 11:26:42.20ID:Pke5Ijp8○ カッコイイ
0513デフォルトの名無しさん
2014/04/06(日) 11:34:07.29ID:AUPUS+0I0514デフォルトの名無しさん
2014/04/06(日) 11:54:39.37ID:uTfGcidadef foo(a:1, b:2)
bar(arguments)
end
みたいにしいてfooに与えられた引数をそのままbarに投げ込みたいんだけど
0515デフォルトの名無しさん
2014/04/06(日) 11:58:34.99ID:AUPUS+0Idef hoge a, b, c
fuga(*self.method(__callee__).reject{|a|a.first==:block}.map(&:last).map{|s|eval(s.to_s)})
end
0516デフォルトの名無しさん
2014/04/06(日) 12:27:36.56ID:uTfGcida(#^ω^)ピキピキ
0517デフォルトの名無しさん
2014/04/06(日) 12:40:15.03ID:AUPUS+0Iおっとすまない、aがカブってたな。
0518デフォルトの名無しさん
2014/04/07(月) 20:14:47.93ID:0DYJf23T0519デフォルトの名無しさん
2014/04/07(月) 20:33:11.26ID:KFUO0v2uやるべきことがないなら、何もしなくていいよ。
0520デフォルトの名無しさん
2014/04/07(月) 20:34:00.34ID:cPHU7Y9F0521デフォルトの名無しさん
2014/04/07(月) 20:37:18.44ID:NmZfms6aむせかえるような知ったか臭。
0522デフォルトの名無しさん
2014/04/07(月) 20:47:28.66ID:0DYJf23T0523デフォルトの名無しさん
2014/04/07(月) 20:48:31.51ID:lQVPGrC1だとすればフレームワークのチュートリアルでもやればいいのにと思った。
0524デフォルトの名無しさん
2014/04/07(月) 20:50:40.72ID:0DYJf23Tやさしいのな
ありがとう
調べてみる
言葉足らずな俺も悪いがなwwww
0525デフォルトの名無しさん
2014/04/07(月) 20:56:41.61ID:NmZfms6a0526デフォルトの名無しさん
2014/04/07(月) 21:33:06.86ID:rs5mnGWMしかし、何に向いていて、何に向かないものなのかイマイチ判らない。
教えてくださいエロい人。
0527デフォルトの名無しさん
2014/04/07(月) 22:29:54.45ID:si1QDK3r無理して使わなくてもよい
Rubyにおける日常なダックタイピングは、せいぜい
「引数オブジェクトのクラスチェックはせず、エラーが出るに任せる」程度
もちろんそれだと致命的な場合は引数オブジェクトのクラスのチェックをする
もちろんそのときはダックタイピングの恩恵は受けてはいないことになる
その程度
0528デフォルトの名無しさん
2014/04/07(月) 22:31:29.65ID:aChPVlpJダックタイピングが目的ではないよ
ダックタイピングを活用したコードは一般的には糞コードと呼ばれる
0529デフォルトの名無しさん
2014/04/07(月) 23:34:12.45ID:rs5mnGWM参考になった。
やっぱなるべく使わない方がいいんだね。
借金職人の娘を質に取った越後屋さんが、
「なぁ、お前、toString くらいは持っとるんやろ?なぁ?それくらい持っとらんとあかんわなぁ?」(ゲス顔)
「toString 発動したるわー!」
と迫って実際発動する様子が思い浮かんだ。
イメージは合ってると思う。
0530デフォルトの名無しさん
2014/04/07(月) 23:36:52.23ID:2mFu56Lz0531デフォルトの名無しさん
2014/04/07(月) 23:46:26.41ID:rs5mnGWMJava嫌いでちょっとムカッと来たから言うけど、ごめん、全然違う。
文字列化は大抵の言語が持ってるから、適当に書いただけ。
0532デフォルトの名無しさん
2014/04/07(月) 23:56:40.04ID:/ZasYlq50533デフォルトの名無しさん
2014/04/08(火) 00:02:32.77ID:earNJzDQarray. ???(4) #=> [ [1,2,3,4], [5,6,7,8], [9] ]
こんなメソッドありませんでしたっけ?
0534デフォルトの名無しさん
2014/04/08(火) 00:05:03.48ID:rmissEKo0535デフォルトの名無しさん
2014/04/08(火) 00:09:26.62ID:rmissEKo0536533
2014/04/08(火) 00:20:53.76ID:earNJzDQ多分railsのin_group_ofを想起していたのかもしれません
0537デフォルトの名無しさん
2014/04/08(火) 11:04:29.17ID:xXmrjQaua=[*1..9]
b=[]
b << a.shift(4) while a[0] #あるいは until a.empty?
p b
で解決できるところまではわかりましたが
while a . method? という形ではできませんか?
a.present? や a.exist? は無理でした
0538デフォルトの名無しさん
2014/04/08(火) 11:06:20.20ID:xXmrjQauメソッドに ? は付いてなくてもOKです
0539デフォルトの名無しさん
2014/04/08(火) 11:10:14.50ID:iDOzvnzB現状、そんなことがあるとは思えないんだが
内部イテレータ使えないコレクションとかだろうか
0540デフォルトの名無しさん
2014/04/08(火) 11:30:04.57ID:xXmrjQau普通は(基本に忠実にするなら)どうやるのかな?と。
一通りArrayのメソッド調べた方がいいという意見があるのもごもっともですが。。
0541デフォルトの名無しさん
2014/04/08(火) 19:39:27.13ID:MyudluU20542デフォルトの名無しさん
2014/04/08(火) 19:48:10.04ID:UFpotgBw0543デフォルトの名無しさん
2014/04/08(火) 19:49:06.78ID:9wIzdaazつ while a.first
0544デフォルトの名無しさん
2014/04/08(火) 20:57:37.16ID:F72OSz/O要素にfalseやnilが入っていると誤動作するので
素直に
while !a.empty?
の方がいいような
0545デフォルトの名無しさん
2014/04/08(火) 21:02:03.14ID:9wIzdaaz0546デフォルトの名無しさん
2014/04/08(火) 22:53:39.51ID:wRN5ly4tpauseって最期の行に入れておけばいいよw
0547デフォルトの名無しさん
2014/04/09(水) 00:39:04.55ID:xEgtzZvGどうにかならんのか?
0548デフォルトの名無しさん
2014/04/09(水) 00:44:55.22ID:YKddGIT0おまえ向いてねえわwwwwwwwwwwwwwwww
0549デフォルトの名無しさん
2014/04/09(水) 00:46:30.65ID:BYGGYeeLbundle install
rake db:migrate
じゃだめなんだろうか
0550デフォルトの名無しさん
2014/04/09(水) 01:00:48.66ID:xEgtzZvG0551デフォルトの名無しさん
2014/04/09(水) 01:01:09.26ID:BYGGYeeLwindowsでも同じことじゃん
0552デフォルトの名無しさん
2014/04/09(水) 01:10:27.88ID:xEgtzZvGエラーでてめんどかった
0553デフォルトの名無しさん
2014/04/09(水) 01:11:42.94ID:BYGGYeeL0554デフォルトの名無しさん
2014/04/09(水) 02:05:25.16ID:OJT2GfjErailsの入ったテキトーなvagrant boxでも作って配れば万事解決しそうな気がする。
0555デフォルトの名無しさん
2014/04/09(水) 08:21:07.47ID:obmDYRnv0556デフォルトの名無しさん
2014/04/09(水) 09:31:40.49ID:k/5jkwC/今時のまともな言語ならeach_sliceくらいある
ないのに使わざるを得ないのがC言語
古いC言語のソース漁ってればいくらでもそういう無駄なアルゴリズム出てくるよ
0557デフォルトの名無しさん
2014/04/09(水) 18:13:22.90ID:Cj9cJjUi0558デフォルトの名無しさん
2014/04/09(水) 22:23:32.13ID:Il0l8m2Amarkdownでメモができるのでgollumが使いたいのですが
bundle initしてGemlocalにgem "gollum"を追記したのですが、ここでbundle installでOKですか?
0559デフォルトの名無しさん
2014/04/09(水) 22:47:54.10ID:yWBpF3Rt0560558
2014/04/09(水) 22:51:21.40ID:Il0l8m2Aインストールしたコマンドが使えません
どうやらグローバルのgemをみにいっているようです
ローカルにインストールしたgemはどうつかうのでしょうか?
0561558
2014/04/09(水) 22:52:41.36ID:Il0l8m2A0562デフォルトの名無しさん
2014/04/10(木) 00:37:30.37ID:iELl6sqRgollumをインストールしたところのtemplatesディレクトリを汚したくないのです
0563デフォルトの名無しさん
2014/04/10(木) 07:50:33.02ID:+jOFl0o7パーフェクトRubyで良いと思う
0564デフォルトの名無しさん
2014/04/10(木) 20:40:36.99ID:s0fbxtsyA列とB列があり
A列とB列の組み合わせがユニークであればB列を配列にいれていきたいんですが・・・
A列とB列でユニークってどうやるんでしょうか
uniq do |x| { x.A + x.B } ではうまくいきませんでした
0565デフォルトの名無しさん
2014/04/10(木) 22:06:53.38ID:dRecdSBU0566デフォルトの名無しさん
2014/04/10(木) 23:40:36.36ID:PtHPMyvc0567デフォルトの名無しさん
2014/04/11(金) 07:08:17.55ID:pa/L3E3d0568デフォルトの名無しさん
2014/04/11(金) 07:24:45.49ID:vQUcF6zBgroup_byではダメでした・・・
p [
{name:"Tanaka", city:"X"},
{name:"Tanaka", city:"Y"},
{name:"Tanaka", city:"Y"},
{name:"Suzuki", city:"X"},
{name:"Sato", city:"Z"}
].group_by {|item| item[:name] + item[:city] }
期待している戻り値は↓こんな感じなんです・・・
[
{name:"Tanaka", city:"X"},
{name:"Tanaka", city:"Y"},
{name:"Suzuki", city:"X"},
{name:"Sato", city:"Z"}
]
って普通にuniqでブロックなしでできるようですね・・・
0569デフォルトの名無しさん
2014/04/11(金) 08:22:18.07ID:FCtgIT4mirb(main):001:0> require 'pp'
=> true
irb(main):002:0> pp [
irb(main):003:1* {name:"Tanaka", city:"X"},
irb(main):004:1* {name:"Tanaka", city:"Y"},
irb(main):005:1* {name:"Tanaka", city:"Y"},
irb(main):006:1* {name:"Suzuki", city:"X"},
irb(main):007:1* {name:"Sato", city:"Z"}
irb(main):008:1> ].each_with_object({}){|l,h|h[l]=h.size unless h[l]}.sort{|a,b|a[1]<=>b[1]}.map{|x|x[0]}
[{:name=>"Tanaka", :city=>"X"},
{:name=>"Tanaka", :city=>"Y"},
{:name=>"Suzuki", :city=>"X"},
{:name=>"Sato", :city=>"Z"}]
=> [{:name=>"Tanaka", :city=>"X"}, {:name=>"Tanaka", :city=>"Y"}, {:name=>"Suzuki", :city=>"X"}, {:name=>"Sato", :city=>"Z"}]
0570デフォルトの名無しさん
2014/04/11(金) 08:25:04.85ID:FCtgIT4m0571デフォルトの名無しさん
2014/04/11(金) 11:07:08.18ID:057GiJd2たしか海外だったかメーリングリストだったか忘れましたが英語で読んだ気がしました
0572デフォルトの名無しさん
2014/04/11(金) 11:29:51.90ID:rxw795VW前にもあったけど、Rubyにおけるreturnは「メソッド途中で処理を打ち切って脱出する」効果を期待されている
そうじゃないふつーの処理終端にreturnがあっても戸惑うだけなので、ふつーは書かないほうが好ましい
0573デフォルトの名無しさん
2014/04/11(金) 12:09:22.34ID:2p2lfK5Uhttp://shugo.net/ruby-codeconv/codeconv.html
0574デフォルトの名無しさん
2014/04/11(金) 12:10:13.60ID:2p2lfK5U0575デフォルトの名無しさん
2014/04/11(金) 12:12:22.62ID:p73oIqgQ0576デフォルトの名無しさん
2014/04/11(金) 12:19:58.33ID:2p2lfK5U0577デフォルトの名無しさん
2014/04/14(月) 20:39:07.82ID:iR5K0mS2GitHubのリポジトリ見てもそのままのファイル名じゃ見つからないのですが
0578デフォルトの名無しさん
2014/04/14(月) 23:23:05.10ID:LkM4dasY様々なクラスのファイルでそのクラスに関連する
Kernel module メソッドが定義されているようです
io.cでは入出力関連のメソッド等が
rb_define_global_function("puts", rb_f_puts, -1);
のように定義されてます
0579デフォルトの名無しさん
2014/04/14(月) 23:56:24.88ID:kWDr4VVUfunc(hash) def
func.sort_by{ |key| key[;hoge]}
end
のような関数があったときに、それのspecはどう書いたらいいのでしょうか
sort_byが無いといわれ
@hash.stub(:sort_by)を作ってexpectしてもねぇよといわれ
助けてください
0580デフォルトの名無しさん
2014/04/15(火) 00:09:24.79ID:SLO7aDPh> func.sort_by{ |key| key[;hoge]}
func.sort_byはhash.sort_byかと思ったが key[;hoge]ってなんやねん。
さっぱりわからん。
0581デフォルトの名無しさん
2014/04/15(火) 00:28:01.21ID:7Uo+TE2shttp://gihyo.jp/dev/serial/01/ruby/0007
[2014-04-15 00:21:46] INFO WEBrick::HTTPServer#start: pid=4124 port=4567
と表示されたまま、$マークが出ないんですけどターミナル窓を閉じないで戻すにはどうしたらいいでしょうか?
(ターミナル窓を閉じてまた開いたら初期状態で$マーク表示されます。)
0582デフォルトの名無しさん
2014/04/15(火) 00:34:28.10ID:SLO7aDPhWEBrickは何も設定しなければSIGINTじゃ死なないから、
Ctrl+Zでsuspendしてkill %1すれば?bashだよね?
0583デフォルトの名無しさん
2014/04/15(火) 00:37:28.68ID:SLO7aDPhkill -KILL %1で。
0584デフォルトの名無しさん
2014/04/15(火) 00:51:15.84ID:7Uo+TE2sレスありがとうございます。
「kill -KILL %1」と入力したのですが反応なしです。
ちなみに矢印キーを上下右左と入力すると
^[[A^[[B^[[C^[[D
のような文字が表示されます。
意味はないかもしれないですけど一応。
bashですね。
mac osx 10.8.5のターミナルです。
0585デフォルトの名無しさん
2014/04/15(火) 00:57:39.33ID:SLO7aDPhCtrl-Zして、$が出てからやった?
0586デフォルトの名無しさん
2014/04/15(火) 00:58:21.67ID:SLO7aDPhMacだともしかすると勘違いしてるかもしれないけど、Cmd-Zじゃだめだよ
0587デフォルトの名無しさん
2014/04/15(火) 01:07:16.17ID:7Uo+TE2sCtrl−Z→kill -KILL %1
おお〜出来ました!!
ありがとうございました(ツ)
0588デフォルトの名無しさん
2014/04/15(火) 01:13:51.49ID:uo5u1Anqthx
0589デフォルトの名無しさん
2014/04/15(火) 02:07:49.26ID:+Ewz/KaGまつもとさんやってくれよ
個人のガラパゴス規約なんて使い物にならねえんだよ
0590デフォルトの名無しさん
2014/04/15(火) 03:15:57.48ID:NBmnLC74最高に中二病なコードを書けば良いのだYO
0591デフォルトの名無しさん
2014/04/17(木) 17:29:05.96ID:shok1Heb0592デフォルトの名無しさん
2014/04/17(木) 18:31:08.04ID:240PSJ19a = [1 , 2 , [3 , [4 , 5] ,6] , 7]
だとMax3階層、みたいな
0593デフォルトの名無しさん
2014/04/17(木) 19:00:23.01ID:MnJ2M0/Jpretty_printでざっくりといけるだろうけど
速度が必要なら自前で書くのが無難かな
数行レベルだろうし
0594デフォルトの名無しさん
2014/04/17(木) 19:06:30.93ID:dT2SU6Q40595デフォルトの名無しさん
2014/04/17(木) 19:08:34.31ID:7RVMQXR0なにするのに使うん?
0596デフォルトの名無しさん
2014/04/17(木) 19:18:18.23ID:dT2SU6Q4ary.to_s.gsub(/[^¥[¥]]/, "").scan(/¥[+/).sort.last.size
0597デフォルトの名無しさん
2014/04/17(木) 19:20:23.28ID:dT2SU6Q4もうちょい待って
0598592
2014/04/17(木) 19:24:14.52ID:240PSJ19ただのRubyのお勉強中で
これってどうやるんだろう?と思った次第なだけで
用途とかは全然ないです
0599デフォルトの名無しさん
2014/04/17(木) 19:30:47.08ID:dT2SU6Q4def max_hierarchy(array)
max = 0
now = 0
array.to_s.gsub(/[^¥[¥]]/, "").each_char do |bracket|
now += bracket == '[' ? 1 : -1
max = now if max < now
end
max
end
ary = [[[1]],[2], [[[2]],2]]
puts max_hierarchy(ary)
0600デフォルトの名無しさん
2014/04/17(木) 19:30:56.97ID:1EFla3P0リンクは忍者修行中とかで貼れなかった
ideone.com/2AW1E6
0601デフォルトの名無しさん
2014/04/17(木) 19:32:53.52ID:dT2SU6Q4頭こんがらがるからニガテ
0602デフォルトの名無しさん
2014/04/17(木) 19:36:29.64ID:nVSRpDlcほい。
a = [1 , 2 , [3 , [4 , 5] ,6] , 7]
level = 0
level += 1 until a.flatten.size == a.flatten(level).size
p level
ただし、max2階層っていう扱いになるのでお好きに+1してね。
0603デフォルトの名無しさん
2014/04/17(木) 19:38:05.98ID:dT2SU6Q4まだまだ初心者だな俺
でしゃばんのやーめよ
0604デフォルトの名無しさん
2014/04/17(木) 19:46:05.75ID:8CBaZq3zbyebug
0606デフォルトの名無しさん
2014/04/17(木) 19:48:50.15ID:240PSJ19色々な方法あるんですね
どれも額縁に飾っておきます。ありがとうございましたー
0607デフォルトの名無しさん
2014/04/17(木) 22:02:50.25ID:8L54DV8hやっぱりEclipse+RDT?RDEとか使ってる人はいる?
0608デフォルトの名無しさん
2014/04/17(木) 23:15:23.51ID:YGl2/sA9それ以外はどうやって拒否するんでしょうか?
apache||nginxがないとアクセス制限はできないですかね?
0609デフォルトの名無しさん
2014/04/17(木) 23:37:45.98ID:qltpsmYg0610デフォルトの名無しさん
2014/04/18(金) 00:02:28.66ID:EwFywfvr出来たら報告して
0611デフォルトの名無しさん
2014/04/18(金) 00:05:09.28ID:5ZSBe340Rubyはテキストエディタだろ
0612デフォルトの名無しさん
2014/04/18(金) 00:43:07.67ID:ruxS2fPzありがとう。
言葉足らずでごめん。
CUIじゃなくてeclipseで使いたいんだ。
だからデバッグエンジンが欲しいんです。
0613デフォルトの名無しさん
2014/04/18(金) 01:34:40.43ID:/cnIE1rp0614デフォルトの名無しさん
2014/04/18(金) 01:53:38.71ID:G95hrNw/vim
0615デフォルトの名無しさん
2014/04/18(金) 07:05:28.88ID:LRXTJMOG0616デフォルトの名無しさん
2014/04/18(金) 21:02:29.83ID:tsD9/Dp0LinuxはUTF-8でファイル名の長さが255byteまでの為、UTF-8で数えた時に
255byte以上のファイル名フォルダ名をrubyプログラムで検索し、フルパスを
リストに出力したいです。
Macで3byte扱う文字もある為、255byte/3byte=85文字以上のMacファイル名と
フォルダ名を出力したいです。byteでも文字数カウントでもどちらでも構いません。
いつもはシェル上のfindを使っているためrubyのfind術がわかりません。
データは1T以上あるので、実行速度は遅くても全く構いません。
ご教授よろしくお願い致します。
MacOSX 10.6.8
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]
0617デフォルトの名無しさん
2014/04/18(金) 22:00:04.42ID:G95hrNw/Dir.glob('/**/*')
0618デフォルトの名無しさん
2014/04/18(金) 22:10:53.96ID:En85Wqq5軽く調べたところ
UTF-8-MACかUTF-8かの違いぐらいだから
シェルに慣れてるならシェルでやればいいんじゃない?
find,awk,iconv,wc,mv あたりの基本コマンドでいける。
Rubyでやるなら、glob,encode,bytes.to_a,sizeぐらいかな…
ちなみに自分は
$ ? | ? | ?
とかで確認して
$ ? | ? | ? | sh
とする似非dryrunが好きです
0619デフォルトの名無しさん
2014/04/19(土) 00:04:51.83ID:pXx4aqQFWindowsしか持ってないけどこんなのか?
Dir.glob('/**/*') do |path|
basename = File.basename(path)
puts path if basename.encode('UTF-8').bytesize > 255
end
0620デフォルトの名無しさん
2014/04/19(土) 00:08:50.63ID:A1Y73b0i0621デフォルトの名無しさん
2014/04/19(土) 01:04:45.98ID:e0JtnAk10622デフォルトの名無しさん
2014/04/19(土) 14:06:37.31ID:9b14v82/convmv
というperlスクリプトを使うのが簡単らしい
$ convmv -t utf-8 --nfc -f utf-8 --nfd -r .
確認して
$ convmv -t utf-8 --nfc -f utf-8 --nfd -r . --notest
ファイル名の最大はどちらも255byteで同じだし
NFD->NFCの変換でサイズがでかくなることはない(と思う)ので
サイズチェックは不要かと
0623デフォルトの名無しさん
2014/04/19(土) 14:24:43.28ID:/ZpiftkqDir.glob('/**/*')は知りませんでした。早速勉強してみます。
>>618さん
ありがとうございます。
linuxにファイルパスと、ファイル名それぞれに1023byte、255byteの
制限があるので文字数カウントは避け、バイト数で組むことに変えようと思います。
>>619さん
ありがとうございます。
>>621さん
automatorは全く学んでないのですが、619さんのコードよりも簡単に
なるのでしょうか?
automatorは汎用性がないと勝手に思っているので、速度が倍違うとか
半分のコードとか、簡潔なコードで済むのでないかぎり避けたいと思います。
0624デフォルトの名無しさん
2014/04/19(土) 14:29:39.55ID:3ip4HVEJ0625デフォルトの名無しさん
2014/04/19(土) 14:53:54.28ID:/Zpiftkqありがとうございます。
perlは日本語処理がrubyに劣ると思っていましたが今は違うのでしょうか?
perlでも構いません。話しが続くのでしたらスレを移動します。
その前に619程度のperlコードは欲しいです。
>ファイル名の最大はどちらも255byteで同じ
問題はファイル名の長さの取り扱いがlinuxとmacで異なります。
linuxは255byteでmacはutf-16で255文字。
Macは濁音・半濁音をも一文字とカウントします。
例えば「ぱ」は「は」と「゜」で2文字らしいです。
0626デフォルトの名無しさん
2014/04/19(土) 14:55:40.28ID:/Zpiftkqすいません。同じ方かわかりませんが、具体的automatorコードはありますか?
なければ結構です。ありがとうございました。
0627デフォルトの名無しさん
2014/04/19(土) 15:05:56.16ID:7EPIcXRAifでいいじゃないですか
こんな余計なものを実装してるところが汚いですよね
PHPと同様Rubyも汚い言語だと思いますよ
0628デフォルトの名無しさん
2014/04/19(土) 15:06:56.89ID:3ip4HVEJ0629デフォルトの名無しさん
2014/04/19(土) 15:08:29.07ID:7EPIcXRA0630デフォルトの名無しさん
2014/04/19(土) 15:30:26.20ID:9b14v82/utf16だったのか
失礼
0631デフォルトの名無しさん
2014/04/19(土) 16:04:22.94ID:/yg2gOxj0632デフォルトの名無しさん
2014/04/19(土) 16:07:00.30ID:RzhKyGN6よろしくないので、メールで。
0633デフォルトの名無しさん
2014/04/19(土) 16:08:27.77ID:RzhKyGN6taintness の伝搬関連はセキュリティ問題になると思うよ。
0634デフォルトの名無しさん
2014/04/19(土) 16:15:14.52ID:/Zpiftkq文章のまま他意はない。それなら、次回から興味がなければ礼も言わず、全く返事せずにスルーするよ。
0635デフォルトの名無しさん
2014/04/19(土) 16:17:36.73ID:3ip4HVEJ勝手にしろ
0636デフォルトの名無しさん
2014/04/19(土) 16:25:22.72ID:3ip4HVEJお前から礼をもらったところで俺に何の得があるんだ
0637デフォルトの名無しさん
2014/04/19(土) 16:49:03.52ID:/yg2gOxjパッチつけて投げ込んでみます。
グーグル先生に英訳してもらうか・・・。
0638デフォルトの名無しさん
2014/04/19(土) 17:00:07.44ID:7EPIcXRA0639デフォルトの名無しさん
2014/04/19(土) 19:11:05.22ID:RzhKyGN6security@ の大半は日本人だから日本語でおkと思う
0640デフォルトの名無しさん
2014/04/19(土) 22:09:13.96ID:/ZpiftkqWinからMacやLinuxにファイルコピーするとそれぞれのコードUTF16やUTF8で扱われ
ファイル名の長さだけに制限があるようですね。
ひとりごと
Automatorやruby、perlなどの言語は今後も発展衰退する可能性があり性能や向き不向きがあります。
言語にユーザーの好き嫌いがあっても構いませんが、利用時には客観的に判断して利用すべきかと。
Automatorの既存コードがあれば、それを評価して良ければ使うのは全く構いません。
言語やくんだコードの使いやすさを知るために試すことは当然かと。
サンプルプログラムのアドバイスや質問は何の差支えもないでしょう。
私はコードの評価をしたいのに私への人格評価がなされる理由は全く意味不明。
スレチと長文失礼しました。
0641デフォルトの名無しさん
2014/04/19(土) 22:26:27.75ID:W9HYf8ZPconvmvで普通にいけるとおもうんだよなぁ
0642デフォルトの名無しさん
2014/04/20(日) 06:13:18.72ID:EVpAkAHDwin8.1 32bitだけど普通に使えてるよ。
activescriptrubyのirbでカーソル移動するとなんか表示がおかしくなるけど。
0643デフォルトの名無しさん
2014/04/20(日) 07:16:19.74ID:0Pm82NZH死ね
0644デフォルトの名無しさん
2014/04/20(日) 07:58:15.38ID:3WSN1LrSくらい読んで、彼等がお前の愚問を把握してないかどうかくらい、確認しろよ。
それすらやってないのに長々と書いてるのは詭弁にしか感じられん。
convmvを最初し紹介した奴に対しても失礼だ。
0645デフォルトの名無しさん
2014/04/20(日) 13:30:38.66ID:HWcNUSLH0646デフォルトの名無しさん
2014/04/20(日) 14:22:08.01ID:8JCpLZTMirb(main):001:0> require 'irb/completion'
=> true
irb(main):002:0> put
putc puts
irb(main):002:0> put
うちだと再現しないな
0647デフォルトの名無しさん
2014/04/20(日) 14:39:27.30ID:vv1MGqjg0648デフォルトの名無しさん
2014/04/20(日) 14:50:40.14ID:vv1MGqjg0649デフォルトの名無しさん
2014/04/20(日) 21:46:48.34ID:ynl6vhnw0650デフォルトの名無しさん
2014/04/20(日) 23:38:34.56ID:yNrVU/Oh0651デフォルトの名無しさん
2014/04/21(月) 00:46:45.01ID:P5oYv1syhttp://vim-users.jp/2011/09/hack229/
こういうことでつか
0652デフォルトの名無しさん
2014/04/21(月) 23:28:33.40ID:ZjnW70RAこれを
[
[:a, 0],
[:b, 1],
[:c, 2],
[:d, 3],
[:e, 4]
]
にする一番いい方法ってなんでしょうか?
each_with_indexでループするよりいい方法があるかなと思ったのですが
0653652
2014/04/21(月) 23:30:59.51ID:ZjnW70RAありがとうございました。
0654デフォルトの名無しさん
2014/04/21(月) 23:49:57.78ID:tJv6/UPRarr.map.with_index{|a,i|[a,i]}
単純に書くとこうだと思うけど、なんか違う方法あるのかな?
0655652
2014/04/22(火) 00:04:26.06ID:0LyUdVMz0656デフォルトの名無しさん
2014/04/22(火) 00:17:40.59ID:BSZVNMjVぱっと思いついたのは無限リストにzipなやつかな
Haskellでいう
zip arr [0..]
こういうの
今時のRubyなら有りそう
0657デフォルトの名無しさん
2014/04/22(火) 00:34:45.36ID:/QNFTYSS0658デフォルトの名無しさん
2014/04/22(火) 00:39:36.28ID:9I9vrr6h(一応0..Float::INFINITYで無限リストにはなる)
でも今回限定ならこれでいいのか、なるほど
arr.zip(0..4)
0659デフォルトの名無しさん
2014/04/22(火) 00:45:35.26ID:BSZVNMjV0660デフォルトの名無しさん
2014/04/22(火) 00:53:23.71ID:Ar304b6L=> [[:a, 0], [:b, 1], [:c, 2], [:d, 3], [:e, 4]]
でもこの場合なら普通に%i(a b c d e).each_with_index.to_aかな
0661デフォルトの名無しさん
2014/04/22(火) 00:57:11.44ID:yPgtsq3K結構必要なんだけどさ
0662デフォルトの名無しさん
2014/04/22(火) 23:42:03.50ID:Nv3mzqEqRubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、数年も使えばそのどうしようもない互換性のなさにウンザリする
しかも互換性が無くなることをマズいと思っていない集団がRubyを制作しているのでどうしようもない
1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、1.6→1.8ではそれが顕著になり、1.9など何のエラーも出さずに前のコードが動く方が珍しいほど
それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、そして始まるPlain RubyとREEの方言問題
例えばPassengerもREEの方がうまく動いたり、かと思えば特定のバージョンだとPlainじゃないとまともに動かなかったりと、とても面倒臭い
美しいコードを求める為の副作用、という名の互換性のなさはRuby界全体に蔓延していて
例えばあれだけもてはやされたRailsも、Rails2とRails3の互換性のなさに誰しも苦労したのは記憶に新しいところ
誰もが互換性のなさに辟易し、俺ライブラリを量産するため、gemで探すと似たような事をする終わったプロジェクトがわんさか引っかかる
諸処の小さなプロジェクトだけがそんな現状ならば許せるが、dbiアダプタでさえそんな現状なので
バージョンが変わるとデータベースにすら接続できなくなったとか、dbiのAPIバージョン変わったのにアダプタ側の更新ないな、
とか思ってるとアダプタ作者がRubyから足洗ってたとか余裕
身内同士でRubyはコードが美しいと四六時中自画自賛しているが、実はそれこそがRubyのガン
その美しいコードという名のオナニーの為に一体どれだけの互換性と人的リソースが失われていったことか
Rubyのコードは美しい、Railsスゲー、ベタボメする人は沢山いたがいつも一過性の人気しか得られないのはそこにあるし
ベタボメしていた人達もしばらくするとウンザリしてRuby界から消えてしまうのも原因は実はそこにある
達人プログラマーはRubyをベタボメしなくなったし、Mongrel作者はRailsどころかRubyに見切りをつけちゃったしね
ああいう熱狂的なRuby信者でもRubyから足を洗っているのを見ると、tDiaryがRubyに見切りつけてPythonで全部書き直したとか言われても驚かないだろう自分がいる
0663デフォルトの名無しさん
2014/04/23(水) 00:01:19.28ID:QODmQkgW0664デフォルトの名無しさん
2014/04/23(水) 00:04:18.60ID:Jwmg0nMcせっかく書いた自分なりに美しいコードがRubyのバージョン互換性とかライブラリの陳腐化とかでどんどん何もしなくてもゴミになってくんだよね
0665デフォルトの名無しさん
2014/04/23(水) 00:04:41.65ID:XMnhms3E0666デフォルトの名無しさん
2014/04/23(水) 00:11:12.37ID:IStIaXKD砂漠に捨てられていたところを駱駝に育てられたんだろうね
0667デフォルトの名無しさん
2014/04/23(水) 01:49:10.20ID:gMdUnhMT0668デフォルトの名無しさん
2014/04/23(水) 01:50:10.17ID:EKJ4E/PJせめて1.9のEncodingが
0669デフォルトの名無しさん
2014/04/23(水) 08:55:45.86ID:KGn2h8hJhttps://www.youtube.com/watch?v=wia_sFsAf6g
0670デフォルトの名無しさん
2014/04/23(水) 10:58:28.90ID:Zk8CkSwd0671デフォルトの名無しさん
2014/04/23(水) 11:08:55.43ID:EKJ4E/PJ日常なんも考えずに使うぶんにはあまり変わらないので、
2.1系でどうしても動かない基幹のライブラリが出たときだけ1.9.3にでも戻るといい
0672デフォルトの名無しさん
2014/04/23(水) 11:11:15.04ID:Zk8CkSwd0673デフォルトの名無しさん
2014/04/24(木) 01:07:32.47ID:29x10p2Y0674デフォルトの名無しさん
2014/04/24(木) 01:09:55.80ID:Brr5V4q82.1.xはしばらく使える
0675デフォルトの名無しさん
2014/04/24(木) 01:51:54.83ID:FRUphxxhOSのAPIも変わる
言語だっていいじゃん
0676デフォルトの名無しさん
2014/04/24(木) 02:15:00.21ID:29x10p2Y0677デフォルトの名無しさん
2014/04/24(木) 09:54:17.58ID:u/bmaKPm0678デフォルトの名無しさん
2014/04/24(木) 15:45:01.53ID:G2q8oQ1U○サービス残業が増える
0679デフォルトの名無しさん
2014/04/25(金) 08:48:01.45ID:4zex2q5sおよそ3万時間はかけてあれこれと習得した技術で
一銭も稼がずそのまま趣味にしちゃうとか
えげつない選択をした俺には社畜PGでさえ割と輝いて見える
0680デフォルトの名無しさん
2014/04/25(金) 08:56:55.55ID:+QDQRBZq0681デフォルトの名無しさん
2014/04/25(金) 11:12:07.03ID:D2Co1DWI0682デフォルトの名無しさん
2014/04/25(金) 15:16:49.71ID:D2Co1DWI0683デフォルトの名無しさん
2014/04/25(金) 16:22:14.40ID:IDbQXlGJプロトタイプの制作。
0684デフォルトの名無しさん
2014/04/25(金) 18:28:55.73ID:k5QgmFyd営業まで覚えろよ
0685デフォルトの名無しさん
2014/04/27(日) 15:09:27.35ID:VSXoRe4XRDE使ってるけど補完とかでエラーがぼこぼこ出る
RDTは起動が終わる頃にはプログラミングする気が無くなるし、
SublimeText3使ってみたけどイマイチ使いにくいから結局RDE
0686デフォルトの名無しさん
2014/04/27(日) 18:34:49.46ID:MXG/a/880687デフォルトの名無しさん
2014/04/27(日) 23:31:33.76ID:zjGXWtmW0688デフォルトの名無しさん
2014/04/27(日) 23:34:31.26ID:D03yOYH6真面目な話
朝鮮人にも使いやすいと思うよ
0689デフォルトの名無しさん
2014/04/29(火) 15:30:47.92ID:D9nXVjdyプロテインだぬ
0690デフォルトの名無しさん
2014/04/29(火) 19:56:17.13ID:rRRSFl+L0691デフォルトの名無しさん
2014/04/29(火) 21:15:47.98ID:DY1N0T2F開発環境はいらない。いるのは実行環境な。
0692デフォルトの名無しさん
2014/04/29(火) 21:18:10.34ID:l3FqGA+x実行環境があれば開発環境も揃っちゃう
0693デフォルトの名無しさん
2014/04/29(火) 21:32:45.43ID:xy5XDcDr0694デフォルトの名無しさん
2014/04/30(水) 07:51:04.88ID:v4DX5ashruviedit
0695デフォルトの名無しさん
2014/04/30(水) 12:51:55.01ID:ZT185+pOジャ・・・・・・w
ジャ・・・・・・・・w
ジャ・・・・・・・・・・w
ジャ・・・・・・・・・・・・・・w
ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアッピwwwwwwwwwww
0696デフォルトの名無しさん
2014/04/30(水) 23:30:35.93ID:R8tz7cxX0697デフォルトの名無しさん
2014/05/01(木) 12:33:29.63ID:V5UuKtrR0698デフォルトの名無しさん
2014/05/01(木) 12:57:41.57ID:mrXKLvki0699デフォルトの名無しさん
2014/05/01(木) 16:55:10.64ID:0JNTRAzuRubyのCGIを実行するには何を入れればいいのですか?
0700デフォルトの名無しさん
2014/05/01(木) 17:25:04.96ID:7C5boMZl0701デフォルトの名無しさん
2014/05/01(木) 18:18:20.02ID:OEnuwkU5CGI として動かすのに必要なのは mod_ruby ではなく mod_cgi のはず
mod_cgi はおそらく Apache2 をインスコしたときに入ってるので
とりあえず簡単な CGI スクリプトが動くかどうか試してみては
0702デフォルトの名無しさん
2014/05/01(木) 20:43:22.42ID:dTaRli9/{sort:1, foo:1, bar:1},
{sort:1, foo:1, bar:2},
{sort:2, foo:1, bar:1}
]
これを
{
1: [ {foo:1, bar:1}, {foo:1, bar:2 } ],
2: [ {foo:1, bar:1} ]
}
に置換するメソッドってないのでしょうか?
0703デフォルトの名無しさん
2014/05/01(木) 20:56:19.14ID:dpgYE2eVやりたい処理があるならとりあえず自力で逐次書いてみること
できそうにないならとりあえずいちばん基本的な処理からひとつずつ
0704デフォルトの名無しさん
2014/05/01(木) 21:01:02.11ID:zNLeyvzfちょっとやりたいことが見えない
0705デフォルトの名無しさん
2014/05/01(木) 21:17:38.41ID:sff33EKO>>702
L = [
{sort:1, foo:1, bar:1},
{sort:1, foo:1, bar:2},
{sort:2, foo:1, bar:1}
]
L.group_by { |e|
e[:sort]
}.inject({}) { |outer_hash, (outer_key, inner_hashs)|
outer_hash.update outer_key => (
inner_hashs.map { |inner_hash|
inner_hash.inject({}) { |hash, (key, val)|
if key == :sort
hash
else
hash.update key => val
end
}
}
)
}
# => {1=>[{:foo=>1, :bar=>1}, {:foo=>1, :bar=>2}], 2=>[{:foo=>1, :bar=>1}]}
0706デフォルトの名無しさん
2014/05/01(木) 21:27:57.39ID:f+pw1QDn{sort:1, foo:1, bar:1},
{sort:1, foo:1, bar:2},
{sort:2, foo:1, bar:1}
]
data.group_by{| hash |
hash[:sort].tap{
hash.delete(:sort)
}
}
dataの中身を破壊したくない時は事前にコピーしておく
0707デフォルトの名無しさん
2014/05/01(木) 21:28:10.04ID:57HvH9/j{sort:1, foo:1, bar:1},
{sort:1, foo:1, bar:2},
{sort:2, foo:1, bar:1}
]
h = {}
xs.each do |x|
h[x[:sort]] ||= []
h[x[:sort]] << x.reject {|k,v| k == :sort }
end
p h
0708706
2014/05/01(木) 21:41:47.80ID:f+pw1QDndata.group_by{| hash |
hash.delete(:sort)
}
で良かった
0709702
2014/05/01(木) 22:41:16.64ID:dTaRli9/ar = [
{id:1, type: :hoge, value: 'aaa'},
{id:2, type: :fuga, value: 'bbb'},
{id:3, type: :hoge, value: 'ccc'},
{id:4, type: :hoge, value: 'ddd'},
{id:5, type: :fuga, value: 'eee'},
{id:6, type: :hoge, value: 'fff'},
{id:7, type: :piyo, value: 'ggg'},
{id:8, type: :hoge, value: 'hhh'}
]
puts ar.group_by {|a| a[:type] }
ありがとうございました。
0710デフォルトの名無しさん
2014/05/01(木) 23:41:24.74ID:Ig5lcCo90711デフォルトの名無しさん
2014/05/01(木) 23:43:21.66ID:zNLeyvzfそれ以上の答えはないだろ…w
0712デフォルトの名無しさん
2014/05/02(金) 05:26:15.04ID:Aux2s5aq0713デフォルトの名無しさん
2014/05/02(金) 05:38:10.00ID:gjVtYYe60714デフォルトの名無しさん
2014/05/02(金) 11:55:46.50ID:Pyg52lyI0715デフォルトの名無しさん
2014/05/02(金) 19:05:42.78ID:Aux2s5aq0716デフォルトの名無しさん
2014/05/03(土) 01:08:23.79ID:zQAExoAhbundle install --path .
こんな感じでやれば確実に直下にインストールされますか?
以前グローバルのgemのところにredmineで使うgemをインストールしたらrailsが動かなくなったので
慣れないうちはgemは分けてインストールしたいのです
0717デフォルトの名無しさん
2014/05/03(土) 01:27:25.78ID:xxSHnc2z--deploymentじゃだめなの?
--path . だとredmineのソースと混ざって面倒でしょ。
--path使うなら--path tmpgemとか、
名前はどうでもいいけどサブディレクトリを指定したほうがいいと思うよ。
0718デフォルトの名無しさん
2014/05/03(土) 02:00:20.30ID:zQAExoAh--pathはvendor/bundleを指定しようと思います
0719デフォルトの名無しさん
2014/05/04(日) 11:41:12.81ID:ksC+5kIH0720デフォルトの名無しさん
2014/05/04(日) 16:49:05.62ID:FXufV3r7と書いて、
helloruby.rb
という名前で保存して、
コマンドプロンプトで実行してみたのですが、
('ruby'は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。)
こんな表示が出てしまったんですが、
もしかしてプログラムを実行するには、
Rubyというものをインストールしないといけないでしょうか?
0721デフォルトの名無しさん
2014/05/04(日) 16:56:30.87ID:5zOv7lJSrubyに限らずあらゆるスクリプト言語は、
ソースを実行する環境が必要だよ。
0722デフォルトの名無しさん
2014/05/04(日) 17:04:39.33ID:FXufV3r7そうでしたか、
ありがとおございます、
rubyを使えるようになれるように勉強します...orz
0723デフォルトの名無しさん
2014/05/04(日) 17:52:47.03ID:FXufV3r7あとはプログラム書いていくには、
メモ帳よりもエディターというのがあったほうがいいのかな?
0724デフォルトの名無しさん
2014/05/04(日) 17:59:39.98ID:EAI4gb7/メモ帳もエディタだよ
ただメモ帳はプログラミングには向いてないからプログラミング用のエディタがあったほうがいいね
それと、自分で考えたり調べたりするのもプログラミングする上では大事よ
0725デフォルトの名無しさん
2014/05/04(日) 18:13:57.43ID:FXufV3r7メモ帳もエディタだったのですね。。。
そうですね、
自分で考えないとプログラミングなんてできないですね・・
ありがとおございます、
プログラム言語覚えようと思って、
初心者で何がいいのかわからなくて、
古本でRubyの入門書が一番安かったから買ってしまったけど、
この選択でよかったのかちょっと不安でして・・
本読みながら頑張って勉強します!
0726デフォルトの名無しさん
2014/05/04(日) 19:24:12.03ID:Sqbn+IJt図書館行けばただで借りられたかもしれないのに。
0727デフォルトの名無しさん
2014/05/04(日) 19:30:04.33ID:yfReFpk7いやいや、>>721 の情報ぐらいでちゃんと動かせるところまでたどり着けるんだから、
十分プログラミングができる素養はありますよ。がんばってください
エディタは…私はLinux上でEmacs使ってますが、最近だと何がいいんでしょうね
Notepad++あたりがスジは良さ気かなー
0728デフォルトの名無しさん
2014/05/04(日) 21:25:42.60ID:rJLJvrVe0729デフォルトの名無しさん
2014/05/05(月) 02:33:36.94ID:7lNQc/V+0730デフォルトの名無しさん
2014/05/05(月) 02:35:59.43ID:STNDLWYp0731デフォルトの名無しさん
2014/05/05(月) 02:38:45.35ID:7lNQc/V+最初からRubyのシンタックスハイライトしてくれるし
0732デフォルトの名無しさん
2014/05/05(月) 10:12:54.51ID:8D+UV0JXhttp://s1.gazo.cc/up/83907.jpg
0733デフォルトの名無しさん
2014/05/05(月) 10:28:52.17ID:SGaFRyg3WindowsならVirtualBoxかなんかの上でLinux動かしたほうがマシ
0734デフォルトの名無しさん
2014/05/05(月) 13:20:36.62ID:8D+UV0JXWindows上でプログラミング以外の事を色々とやっている中でプログラミングもそこそこ行いたい
0735デフォルトの名無しさん
2014/05/05(月) 13:44:22.42ID:Vmp3/TtsLinux にある程度慣れてる人じゃないと導入からしてきついだろうけど
0736デフォルトの名無しさん
2014/05/05(月) 13:58:33.03ID:HNW3XBXV0737デフォルトの名無しさん
2014/05/05(月) 14:09:47.46ID:1M+NrYC6ttp://ideone.com
ttp://codepad.org
ここで打ち込めばよい
これらは、数十のプログラミング言語に対応している
0738デフォルトの名無しさん
2014/05/05(月) 14:39:20.97ID:w8FDA2moとりあえず、
Notepad++、サクラエディタ、TeraPad、RuviEdit
の4種類インストールとダウンロードしてみました!
これから使いやすいの選んでやってみようと思います、
>>737
ネット上でも実行できるのあるんですね、
便利そうですありがとうございます。
0739デフォルトの名無しさん
2014/05/05(月) 15:41:05.47ID:iIm/Jmpkもうメンテされてないみたいだし
あとの3つは有名ドコロだし、気に入ったのを使えばいいと思うけど
0740デフォルトの名無しさん
2014/05/05(月) 16:29:31.91ID:7lNQc/V+https://c9.io/
ただ、最初の開発環境はやっぱりローカルに用意したほうがいいと思う
0741デフォルトの名無しさん
2014/05/05(月) 16:40:11.79ID:wgCLsPWHpryでデバッグするときって、
いちいち、binding.pry をソースコードを編集して付け加えるの?
0742デフォルトの名無しさん
2014/05/05(月) 17:03:33.32ID:4sn/7U2g0743デフォルトの名無しさん
2014/05/05(月) 17:07:52.83ID:7lNQc/V+Windowsといわず、MacでもLinuxでも動くし
0744デフォルトの名無しさん
2014/05/05(月) 18:25:02.87ID:yMM/B3tvセーフレベルだけでは危ないみたいな記事を読んだのですが本当ですか?
ちなみにその記事には対策は書かれていなかった。
0745デフォルトの名無しさん
2014/05/05(月) 19:59:08.73ID:zZf2r6l7ユーザエージェントから受けとったデータ(クッキーやらポストデータやら)を処理する場合は、気をつけることだな。
rubyに限ったことではないけど。
ユーザエージェントからのrubyコードをサーバー上で実行させる場合は、サーバーが転んでも泣かない。
特に(標準ライブラリは例外として)第三者による拡張ライブラリ(soファイルを含むやつ)は
セーフレベルや汚染について無頓着なものが多いので、そういうライブラリは絶対に使わないこと。マジで泣きを見るからな!!
0746デフォルトの名無しさん
2014/05/05(月) 21:03:59.74ID:z6Pp9a2Uありがとうございました。
0747デフォルトの名無しさん
2014/05/06(火) 01:34:39.86ID:+YksqMlBあんなのアテにする方が間違い
0748デフォルトの名無しさん
2014/05/06(火) 10:54:59.83ID:pWnyRhI4うまく回ればカッコイイものだったんだけど、一度もうまく回った印象がない
0749デフォルトの名無しさん
2014/05/06(火) 12:36:12.29ID:MM9vq2r+ruby 2.1.1p76 (2014-02-24 revision 45161) [i386-cygwin]
gem --version は2.2.2です
gem関連の質問をします
http://takemikami.com/archives/1316
ここにあるようにnokogiriを使おうとしたらエラーが出ました
ruby get_gresult.rb
/home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': No such process - /home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/extensions/x86-cygwin/2.1.0/nokogiri-1.6.1/nokogiri/nokogiri.so (LoadError)
gem which nokogiriの結果はこうです
/home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.1/lib/nokogiri.rb
gemで入れたnokogiriのインストール先をkernel_requireが探せていないようなのですが
どうすればよいのでしょうか
0750デフォルトの名無しさん
2014/05/06(火) 14:53:17.56ID:vwF5zeGs0751デフォルトの名無しさん
2014/05/06(火) 15:25:04.61ID:MM9vq2r+です。
すみません。ファイルはそこにありました。
[~/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/extensions/x86-cygwin/2.1.0/nokogiri-1.6.1/nokogiri] % ls -la
-rwxr-xr-x 1 user 4.5M 2014-04-30 16:55:56 nokogiri.so*
それとエラーメッセージは正しくはこうでした。
/home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': No such process - /home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/extensions/x86-cygwin/2.1.0/nokogiri-1.6.1/nokogiri/nokogiri.so (LoadError)
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/nokogiri-1.6.1/lib/nokogiri.rb:28:in `<top (required)>'
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `require'
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
from /home/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in `require'
from get_gresult.rb:4:in `<main>'
0752デフォルトの名無しさん
2014/05/06(火) 17:41:02.74ID:+YksqMlB0753デフォルトの名無しさん
2014/05/07(水) 08:12:24.98ID:MZ01fZnX0754デフォルトの名無しさん
2014/05/07(水) 10:48:05.15ID:VWoQm6fj0755デフォルトの名無しさん
2014/05/08(木) 21:34:14.53ID:c3/Phoxn0756デフォルトの名無しさん
2014/05/08(木) 23:29:13.85ID:e+dUzwlW_∧∧__ / ̄ ̄ ̄ ̄
|( ゚д゚)| < 私も初心者です!
|\⌒~\ \____
\ |⌒⌒|
0757デフォルトの名無しさん
2014/05/08(木) 23:55:23.33ID:tkIcXOihもう直らないと思ってたよ
0758デフォルトの名無しさん
2014/05/09(金) 16:03:47.06ID:RTJJnIz30759デフォルトの名無しさん
2014/05/09(金) 16:34:14.36ID:jmPoJJfu0760デフォルトの名無しさん
2014/05/09(金) 19:18:08.97ID:hUKEzlG4バックアップ目的でgithubにpushしたいんですが
gollumが自動的に作成したリポジトリの内容そのままでpushしちゃていいんですか?
他にgit addしたりする必要はないですか?
0761758
2014/05/09(金) 19:20:40.79ID:RTJJnIz3ありがとうございます。
タブを閉じるにはjavascriptでwindow.close()してやれば良いのかと思って、execjsというgemを使おうとしたのですが、invalid byte sequence in UTF-8というエラーが出てしまって回避策を調べているところです。
watirとかseleniumなどのwebdriverを使うと、新しくブラウザを開く必要があるみたいなので、使用中のブラウザで開くためにsystem startでURLを開こうとしているのですが、その場合にタブを閉じる方法は他にあるでしょうか?
0762デフォルトの名無しさん
2014/05/09(金) 20:33:54.70ID:SjMyjWDGWinAPIとかでPostメッセージ Ctrl + W
タブのスレッドを特定して Kill
ハンドルを取得して、どうにかしてWatirとかSeleniumで操作するブラウザを既存のものにするように魔改造
他・・・良さそうなgemsを探す
0763デフォルトの名無しさん
2014/05/09(金) 20:51:40.58ID:SjMyjWDGスレッドKillでタブ閉じ無理
0764デフォルトの名無しさん
2014/05/09(金) 21:18:10.66ID:JCnUB0up試してはいないけどぐぐったらこんなのが
http://forums.mozillazine.org/viewtopic.php?f=23&t=2065115
> I figured out a very workable workaround. :)
> I have the TabMixPlus addon installed.
> Under Tools > Tab Mix Plus Options, I set "Open links from other applications in": to "Current Tab".
0765デフォルトの名無しさん
2014/05/09(金) 21:59:51.69ID:SjMyjWDGここみると
attach (FireWatir::Firefox)
ってattachなんとかってメソッドあるから多分firefoxでもやれるとは思うよ
IEでは、正しいやり方じゃないんだけど、とりあえずの動作確認出来た
Ruby\lib\ruby\gems\1.9.1\gems\watir-classic-3.7.0\lib\watir-classic\ie-class.rb
等の 645行目くらいを
#160; #160; def create_browser_window
#160; #160; #160; how = :title
#160; #160; #160; what = "Google"
#160; #160; #160; ieTemp = nil
#160; #160; #160; begin
#160; #160; #160; #160; Wait.until(IE.attach_timeout) do
#160; #160; #160; #160; #160; ieTemp = IE._find how, what
#160; #160; #160; #160; end
#160; #160; #160; rescue Wait::TimeoutError
#160; #160; #160; #160; raise NoMatchingWindowFoundException,
#160; #160; #160; #160; "Unable to locate a window with #{how} of #{what}"
#160; #160; #160; end
#160; #160; #160; @ie = ieTemp
##160; #160; #160; @ie = WIN32OLE.new('InternetExplorer.Application')
#160; #160; end
こんなんにするとブラウザ新規起動はしないでGoogleを開いてるIEのブラウザに対してフックするようになる
その他関連リンク・・・
http://rdoc.info/gems/watir/1.6.6/Watir/IE#attach-class_method
0766デフォルトの名無しさん
2014/05/09(金) 22:00:46.38ID:SjMyjWDGdef create_browser_window
how = :title
what = "Google"
ieTemp = nil
begin
Wait.until(IE.attach_timeout) do
ieTemp = IE._find how, what
end
rescue Wait::TimeoutError
raise NoMatchingWindowFoundException,
"Unable to locate a window with #{how} of #{what}"
end
@ie = ieTemp
# @ie = WIN32OLE.new('InternetExplorer.Application')
end
0767デフォルトの名無しさん
2014/05/09(金) 22:27:33.18ID:SjMyjWDGagent = Watir::Browser.attach(:title, "Google")
firefox版は・・・誰かがどうぞ
0768758
2014/05/09(金) 22:46:25.11ID:RTJJnIz3ありがとうございます!
watirのattachメソッドはwatirで開いたページへのattachなんだと思ってました。
ttp://stackoverflow.com/questions/18496262/finding-currently-open-browser-firefox-windows-with-watir
>>764
ありがとうございます!
いろいろアドバイスいただいたやり方で試してみます。ただ、そもそもrubyを使ってやる必要がなかったかもしれません。。。
0769デフォルトの名無しさん
2014/05/10(土) 13:24:26.09ID:oRE/NAyLホソバオキナゴケか、アラハシラガゴケ
あとスナゴケ買ってきたいんですけど
東京で売ってる店ありますか?
なるべく通販とかより現物みて買いたいのですが
トレーで買える大きなものが良いです
0770デフォルトの名無しさん
2014/05/10(土) 23:13:34.58ID:E1J0psG7ありがとうございます
0771デフォルトの名無しさん
2014/05/12(月) 00:48:59.09ID:pvK1PhqY0772デフォルトの名無しさん
2014/05/12(月) 14:01:07.49ID:ZYG+p79Techo 'export RBENV_ROOT=/usr/local/rbenv' >> /etc/profile.d/rbenv.sh
echo 'export PATH="$RBENV_ROOT/bin:$PATH"' >> /etc/profile.d/rbenv.sh
echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
exec $SHELL -l
とすると「exec $SHELL -l」でスクリプトが止まってしまって後の処理が実行されません。
止まらずに後の処理も実行するにはどのようなスクリプトを書けばよいでしょうか?
よろしくお願いいたします。
0773デフォルトの名無しさん
2014/05/12(月) 17:18:34.10ID:fmUG0CnVecho $SHELL して出てきたコマンドの -l オプションの効果を調べる
0774デフォルトの名無しさん
2014/05/12(月) 19:29:25.28ID:lYEeDc9x苔の質を気にしないならヤフオクとかオススメかなり安い
色が悪くてもちゃんと管理すれば色も戻るから、着生させた後ならさほど変わらんな
0775デフォルトの名無しさん
2014/05/13(火) 19:58:24.12ID:jn2b6mfUここで質問させてください。
Rubyで書いたコードをexe化するためにocraというgemを使っています。
関連するライブラリなどもexeの中に入るはずなのですが、
他のgemが入らないようで困っています。
具体的には
ruby 1.9.3 ocra 1.3.0 snmp 1.1.1
snmp を gem install したPCで require snmp を含むrubyコードを
ocraでexe化し、実行すると require snmp 実行時に強制終了します。
(require snmp の前後にログを入れて確認したので間違いないです)
ocra実行時(ocra --windows ファイル名)にはエラーは出ていません。
このプログラムをruby環境の無いPCで実行するためには
どうすればいいでしょうか?
ヒントだけでも頂けると助かります。
0776デフォルトの名無しさん
2014/05/13(火) 23:56:12.82ID:xjX0qK0bexport PATH
組み込み環境変数は、exportしたらダメかも?
0777デフォルトの名無しさん
2014/05/14(水) 00:01:08.64ID:H+eWXsjB>ocraでexe化し、実行すると require snmp 実行時に強制終了します。
強制終了時のエラーメッセージを書かないと、
アドバイスしようにも無理だと思われ
0778デフォルトの名無しさん
2014/05/14(水) 00:13:16.08ID:7P3aj1T+定義つーのは引き数とかです
0779デフォルトの名無しさん
2014/05/14(水) 00:34:26.06ID:H+eWXsjBRuby1.9以降であれば、ClassクラスやModuleクラスで定義されている
メソッド instance_method または public_instance_method を使うと
メソッドを表現するオブジェクト UnboundMethod が返される
次に、このオブジェクトで定義されているメソッド arity を呼べば、
対象となるクラス/モジュールで定義されているメソッド定義の引数の個数が得られる
$ irb2.0
irb(main):001:0> eval "class C; def f(x,y); end; end"
=> nil
irb(main):002:0> m = C.instance_method(:f)
=> #<UnboundMethod: C#f>
irb(main):003:0> m.arity
=> 2
irb(main):004:0>
0780デフォルトの名無しさん
2014/05/14(水) 08:13:42.89ID:7P3aj1T+個数しかムリなんですね
0781デフォルトの名無しさん
2014/05/14(水) 10:21:32.53ID:2naf+4Er0782デフォルトの名無しさん
2014/05/14(水) 14:19:31.11ID:zb6ijAM3UnboundMethodにはparametersメソッドもあるね。
こっちのほうがもう少し詳しいみたい。
0783uy
2014/05/15(木) 14:13:13.27ID:Py6ct1mSeval"
def nesi a , b
p a , b
end
"
ObjectSpace.each_object do |m|
puts m if m.to_s =~ /nesi/
end
出、出力〜wwwwww物体空間検索奴〜wwwwwwww
0784デフォルトの名無しさん
2014/05/18(日) 13:57:07.33ID:YH07EY0zVBA使ったときは、IntegerとかStringとかの、
変数を宣言してた記憶がるんだけど、
なんか入門書に説明書いてない・・
0785デフォルトの名無しさん
2014/05/18(日) 14:42:03.70ID:9l4Azo6V0786デフォルトの名無しさん
2014/05/18(日) 14:46:11.25ID:BExb4OPWRubyの変数は文字列、配列、数値などの「オブジェクト」を指すものだが、これに型はない。
ただし変数が指している各々のオブジェクトには明確な型がある。
0787デフォルトの名無しさん
2014/05/18(日) 14:52:26.23ID:YH07EY0zあとでコードみたとき分かりにくくないのかなぁ
宣言してないから変数名まちがえてもエラーもでないってことですよね?
デバッグするときめんどくさくないのかなぁ
数字の変数に文字列いれたらエラーになってくれるから、
ミス分かったりすると思うんだけど、
なんか不安になってきたなぁ
Rubyの選択は正しかったのだろうか・・
0788デフォルトの名無しさん
2014/05/18(日) 15:14:49.57ID:BSsm5aBJその代わりお気楽にコードが書けるというメリットもある
メリットとデメリットを比べて実際に決めるのはあなたなので、あとは好きにすればいい
0789デフォルトの名無しさん
2014/05/18(日) 15:17:00.29ID:vXasxGe8>あとでコードみたとき分かりにくくないのかなぁ
変数をハンガリアン記法にするといい
0790デフォルトの名無しさん
2014/05/18(日) 15:18:52.16ID:cV/sH5hf1 + "1"とか、1 + "5foo" が全くエラーにならない言語もある。
0791デフォルトの名無しさん
2014/05/18(日) 15:20:44.18ID:9l4Azo6V' VBA
Dim num as Integer
num = 123
# Ruby
num = 123
0792デフォルトの名無しさん
2014/05/18(日) 15:21:54.42ID:vXasxGe80793デフォルトの名無しさん
2014/05/18(日) 15:31:34.82ID:P2EXL/Ge変数自体に型はないけど、格納されてるデータは型があって
参照時に型チェックは行われる
自分の感覚では、気にしているような型チェックによるコーディングミスの検知は
Rubyでも十分機能している(整数と文字列を間違えるようなミスは
ちゃんと検知する)
0794デフォルトの名無しさん
2014/05/18(日) 15:39:41.98ID:vXasxGe80 が false であることを期待して
if hoge
fugafuga
みたいに書いてるとき
hoge が '0' だったら?
0795デフォルトの名無しさん
2014/05/18(日) 15:52:52.85ID:9l4Azo6V'0' も 0 も "false" もみんな真
0796デフォルトの名無しさん
2014/05/18(日) 15:59:38.17ID:S+9LD5PNあほか、期待しねーよw
perlは、0が偽ではあるけど、booleanがないから一貫している。
rubyは、booleanがある代わりに、0を偽としないことで一貫させている。
0797デフォルトの名無しさん
2014/05/18(日) 16:15:30.64ID:8Wfmiw8G外部のスクリプトのメソッド foo を利用したくて、
require, import, include で利用宣言して、
foo( arg )
んで、エラーが出る場合は、引数の型や個数が違う。
ruby には適切な引数なのか調べる方法がある。
def foo( arg )
unless arg.is_a?(Hash)
raise 'ハッシュよこせよ'
end
unless arg.respond_to?(:each)
raise 'eachメソッド使えるやつよこせよ'
end
end
型宣言って、+-*/で四則演算できる数値をクレとか、
hoge というメソッドがつかえるオブジェクトをクレ
とか、そういうことに必要な機構だとオモタ
0798デフォルトの名無しさん
2014/05/18(日) 19:03:44.52ID:WdyNhwqhJSに突進していく外人よりも、
Matzの方がスジが良いことは、明らか
0799デフォルトの名無しさん
2014/05/18(日) 20:35:28.29ID:BExb4OPW中身の無い変数に対してメソッド呼ぶとかしたら大概例外になる
initializeでインスタンス作るときに代入、あとはアクセサなどで弄るとかすると
基本的に参照しかしないことになるだろ?つまり例外がちゃんと起こるワケだ
0800デフォルトの名無しさん
2014/05/19(月) 00:52:15.69ID:OU6AZajW実際、普通のOOじゃなくてプロトタイプベースみたいにして書けって事だよ動的言語は
0801デフォルトの名無しさん
2014/05/19(月) 03:39:38.24ID:eoQt5griなんか自分で選んで ruby に触ろうとしているみたいだけど、動機は何よ? 何に使いたいの?
なんとなく触ろうと思ったとかでもいいけど、それで合いそうに無いならば他の言語を試してみるのもいいかもよ。
whitespace (http://ja.wikipedia.org/wiki/Whitespace) なんてどうよ?
0802787
2014/05/19(月) 19:42:29.92ID:KxacvMpXwhitespaceはネタですよね?w
先物を自動売買するシステムを作ろうと思ったんですが、
今まではVBAとIEでやってたけど、
他のプログラム言語も試してみたくて、
Rubyは日本人が作った言語だったので、
よく調べずにこれでいいかなと思って・・
0803デフォルトの名無しさん
2014/05/19(月) 20:17:15.76ID:6L2g2kAxガベコレ走らない言語を選ぶべき
0804デフォルトの名無しさん
2014/05/19(月) 21:10:56.65ID:lZyXm0tRGCによるストップザ・ワールドなんか全く無視できるわ
0805デフォルトの名無しさん
2014/05/19(月) 21:57:11.29ID:UOYI7LyN静的に変数の型を強制したいならコンパイル型の言語を選べばいい
0806デフォルトの名無しさん
2014/05/19(月) 22:09:04.30ID:faWRsHH6Contractsとかそんな名前だっけ?
0807デフォルトの名無しさん
2014/05/19(月) 22:16:40.28ID:csGSXT6Xせっかくmix-inやりやすくされているのだし
型を意識しなきゃいけないコード書く時点で動的言語つかうって選択肢がズレてる
0808デフォルトの名無しさん
2014/05/20(火) 15:28:39.99ID:9vxr48KWun_packというのをWEBで拾ってきたので、
それにバイナリモードで読んだ先頭3バイトのデータを渡して
やりたいのですが、以下のエラーになってしまいます。
in `sprintf': string contains null byte (ArgumentError)
バイナリの読み込み方が悪いのでしょうか。
def self.un_pack(pack)
sprintf("%X", pack).gsub(/^(.+)(.)$/) {|str|
case $2
when "F", "C"
""
when "D"
"-"
else
raise RuntimeError.new("illegal sign. sign = [#{$2}]")
end + $1
}.to_i
end
#16進数で渡せばOK
p self.un_pack(0x102D) #=> 102
p self.un_pack(0x102C) #=> -102
BinData = open("DATA30B.sf")
BinData.binmode
while(b = BinData.read(30))
p self.un_pack(b[0,3])
end
0809808
2014/05/20(火) 17:31:57.95ID:9vxr48KWdef self.un_pack(pack)
sprintf("%X", pack).gsub(/^(.+)(.)$/) {|str|
case $2
when "F", "C"
""
when "D"
"-"
else
raise RuntimeError.new("illegal sign. sign = [#{$2}]")
end + $1
}.to_i
end
BinData = open("DATA30B.sf")
BinData.binmode
while(b = BinData.read(30))
wk = "0x" + b[0,3].unpack("H*")[0] #先頭3バイト(パック10進数)を取り出す
p self.un_pack(wk) #パック10進数を数字変換
end
0810デフォルトの名無しさん
2014/05/21(水) 18:04:58.74ID:rwjAksQw金融関係のプログラミングには、
あまり向いてないか・・
F#とかのほうがいいのかな?
0811デフォルトの名無しさん
2014/05/21(水) 19:21:37.26ID:rZK4MUe2というような文字列を読み込んで点数を合計する場合、どんな配列にするべきか想像がつかんorz
とりあえすspritで分けたら1次元配列にはなったけど、合計がやりにくいんだよね
0812デフォルトの名無しさん
2014/05/21(水) 20:00:35.58ID:YgR7gj8h二次元配列(配列の配列)かハッシュにしてみては
s = '国語,50,算数,70,理科,80,社会,60'
s.split(',').each_slice(2).to_a
=> [["国語", "50"], ["算数", "70"], ["理科", "80"], ["社会", "60"]]
Hash[*s.split(',')]
=> {"国語"=>"50", "算数"=>"70", "理科"=>"80", "社会"=>"60"}
s.split(',').each_slice(2).inject(0){|total, (k, v)| total += v.to_i }
0813デフォルトの名無しさん
2014/05/21(水) 21:36:03.59ID:x7NyX0pH細かいけど、最後の inject のブロック内は代入文ではなく加算式だけにすべき
X: total += v.to_i
O: total + v.to_i
あとは、いいんじゃないかと
0815デフォルトの名無しさん
2014/05/21(水) 21:47:44.61ID:YgR7gj8hいや助かる。指摘ありがとう
0816デフォルトの名無しさん
2014/05/21(水) 23:06:26.99ID:00kr0Z9fなんでF#という変化球なのだ
0817デフォルトの名無しさん
2014/05/22(木) 00:41:16.90ID:1++y104Qいや、なんか関数型とかいうやつだったから、
計算とか強いかなと・・
F#てあまり使われてないの?
Rubyは日本人が作ったのだから、応援したい、
したいけど・・
相場のプログラミングするのに向いてる言語なんだろ?
0818デフォルトの名無しさん
2014/05/22(木) 00:47:51.13ID:+hsG2blX同的言語が嫌なら、C#かVB.NETあたりか
0819デフォルトの名無しさん
2014/05/22(木) 00:49:10.94ID:SelfAmtB0820デフォルトの名無しさん
2014/05/22(木) 01:08:45.22ID:1++y104Qいろいろありますね、
個人で使うだけだから何でもいいのかもしれないけど、
選択間違えると時間とお金を無駄にしそうでw
一応Rubyも選択肢に入れながらどれにするか決めます。
0821デフォルトの名無しさん
2014/05/22(木) 01:47:32.03ID:sJNcHEkt0822デフォルトの名無しさん
2014/05/22(木) 02:15:31.90ID:wCE9XBZds = "国語,50,算数,70,理科,80,社会,60"
p s.split(',').each_slice(2).inject(0){|total, (k, v)| total + v.to_i }
p s.split(',').each_slice(2).map{|k,v|v.to_i}.inject(:+)
p s.split(',').each_slice(2).to_a.transpose.last.map(&:to_i).inject(:+)
p Hash[*s.split(',')].each_value.map(&:to_i).inject(:+)
p s.scan(/\d+/).map(&:to_i).inject(:+)
p s.scan(/\d+/).inject(0){|a,m|a+m.to_i}
0823811
2014/05/22(木) 14:38:11.10ID:r8fE+JcD回答して下さった皆さんありがとうございました。
今度は、外部から並べ替え条件を指定した場合のソートについて教えてください。
外部からの指定は、開始位置、桁数、並び順で複数指定可能にしたいです。
外部からの指定が動的に変化するので、
sort条件の部分が動的に変更する必要があります。
そもそもこんな事が出来るのでしょうか?
indata = Array.new
indata.push("001YAMADA 080A") #番号,名前,点数,クラス
indata.push("015TANAKA 065B")
indata.push("010YAMAMOTO 090A")
indata.push("004UETA 070B")
puts indata
puts
s = "16,1,A,13,3,D" #外部からソートキー指定 =>クラス(昇順)、点数(降順)
sortkey_ary = s.split(',').each_slice(3).to_a #カンマで分割し2次元テーブル化
puts "class(A),tensu(D)"
puts indata.sort {|a, b|
(a[16,1] <=> b[16,1]).nonzero? ||
(b[13,3] <=> a[13,3])
}
puts
0824811
2014/05/22(木) 14:40:05.83ID:r8fE+JcDputs indata.sort {|a, b|
(b[16,1] <=> a[16,1]).nonzero? ||
(a[13,3] <=> b[13,3])
}
0825デフォルトの名無しさん
2014/05/22(木) 15:07:29.73ID:j+3vqhqP平均以下はjava。平均以上と中学生は関数型。
0826デフォルトの名無しさん
2014/05/22(木) 15:10:08.17ID:j+3vqhqPDDDが普及しないなら、一生、陽の目なんて浴びないだろ
けれど、c#やscalaよりは遥かにマシ
0827デフォルトの名無しさん
2014/05/22(木) 15:33:51.44ID:aluTz+nUhttp://ideone.com/7E46HV
0828811
2014/05/22(木) 17:36:16.90ID:r8fE+JcDまだ理解できてないけど、動きました。
ありがとうございました。
それにしても
こんな短いプログラムで書けるとは・・・
0829デフォルトの名無しさん
2014/05/23(金) 23:11:58.39ID:+jR4IStUhttp://localhost:4567/ホームページ
みたいに日本語のページ名が作れないんですがなんか設定しないとだめですか?
0830デフォルトの名無しさん
2014/05/24(土) 07:21:55.84ID:5JLWtyftはたから見てもイミフ
それってクラスCとか追加する時どうすんの?
830 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 05:21:05.98 ID:drSoFeIQ [1/2回]
>>829
マジレスするとASC(昇順)/DESC(降順)の頭文字かと
sortコマンドでいけるからお題としてはイマイチ
831 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 05:54:11.31 ID:VJ/4Ga7W [1/1回]
スマンあまりよく読んでなかったわ
こういうやり方のソート分からんのだけど
cの中に["16", "1", "A"]が入って
そのデータが使われる事もなく上書きしちゃってるけどそれは良いの?
s = "16,1,A,13,3,D" の後半しか使わないなら
each_sliceしてる意味がよくわからない
832 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 06:00:38.98 ID:drSoFeIQ [2/2回]
A/Dの意味を理解してないように思えたので指摘しただけ。
オレも質問物の意図も分からないし納得したポイントも分かってないよ。
でも本人がそれで満足してるんだからほっときゃいいかなと。
833 : デフォルトの名無しさん[sage] 投稿日:2014/05/23(金) 07:33:25.62 ID:6y/Uike0 [1/1回]
>>831
> cの中に["16", "1", "A"]が入って
そうならない。なぜなら each_slice のあとに inject があるから
0831デフォルトの名無しさん
2014/05/24(土) 07:24:10.88ID:5JLWtyftレス消えちゃったし833のバカはスルーでおk
0832デフォルトの名無しさん
2014/05/24(土) 08:19:59.34ID:DTqC/a46誰も騒がないところを見ると
本当にもう2ちゃんには人居ないんだな
0833デフォルトの名無しさん
2014/05/24(土) 09:41:32.95ID:6MS9Ym7bもうニコニコ関連、ツイッターのほうが巨大なコンテンツだしなぁ
0834デフォルトの名無しさん
2014/05/24(土) 13:50:19.90ID:35dvvibxライブコーディングなら文字が見えなきゃ意味ないしよ
自己満ですかい
0835デフォルトの名無しさん
2014/05/24(土) 14:10:17.53ID:7/7koijJ0836デフォルトの名無しさん
2014/05/25(日) 00:27:26.99ID:GqkgEupzアクセサを定義せずに直接アクセスして値を取得する方法を教えて下さい!
0837836
2014/05/25(日) 00:34:31.83ID:GqkgEupzinstance_variable_setを使ってオブジェクトに動的にインスタンス変数を追加していて、
そのテストケースで、追加したインスタンス変数が定義されていることと
値のチェックをしたいのです。
定義されていることはinstance_variablesを使って行いましたが、
値の取得ができていません。
0838デフォルトの名無しさん
2014/05/25(日) 00:38:54.50ID:AqTKLZGG0839デフォルトの名無しさん
2014/05/25(日) 00:43:47.62ID:GqkgEupzそれでOKでした・・・お恥ずかしい
0840デフォルトの名無しさん
2014/05/25(日) 00:47:01.30ID:G8SvOUrx0841デフォルトの名無しさん
2014/05/25(日) 00:47:30.70ID:tgiyqQXEn.times do |j|
# iとjを使った処理
end
end
のような2重ループを1重で書く方法はありますか?
Pythonを例に出して申し訳ないですがこういう↓
http://docs.python.jp/2/library/itertools.html#itertools.product
0842デフォルトの名無しさん
2014/05/25(日) 00:50:44.21ID:9u8Z5x23http://docs.ruby-lang.org/ja/search/class:Array/query:product/
0843デフォルトの名無しさん
2014/05/25(日) 01:04:36.54ID:tgiyqQXEありがとうございます
0844デフォルトの名無しさん
2014/05/25(日) 21:04:18.15ID:6jPp3Mu9end
というメソッドがあり、infoは通常ArrayかHashが来るのですが、
そこにネストされたHashが来る場合処理を変えたいのです。
つまり通常は[:a, :b, :c]とか{ a: :X, b: :Y }とかいう引き数が来るのですが、
{
p: [:a, :b, :c],
q: { a: :X, b: :Y }.
r: [:e, :f, :g]
}
という引き数も受け取れるようにしたいのです。
これをメソッド内で判定するにはどうすればいいのでしょうか?
質問をごくシンプルにすると、ただのハッシュか、ネストされたハッシュかを判定する方法を教えて下さいということかもしれません
0845デフォルトの名無しさん
2014/05/25(日) 22:22:50.56ID:AqTKLZGG0846デフォルトの名無しさん
2014/05/25(日) 23:38:06.15ID:6jPp3Mu90847811
2014/05/28(水) 17:00:05.79ID:SVdOuQRrs = "16,1,A,13,3,D"
ソート前
"001YAMADA 080A"
"010YAMAMOTO 090B"
"011YAMAMOTO 090A"
下の様になってほしいんですが、うまく行きませんでした。
"011YAMAMOTO 090A"
"001YAMADA 080A"
"010YAMAMOTO 090B"
16,1,Aが第1キーで、
13,3,Dが第2キーなので 優先順位は第1、第2の順で並んで欲しいです。
http://ideone.com/kii3eP
0848デフォルトの名無しさん
2014/05/28(水) 20:37:42.99ID:KYfVKk6vRubyの添字は0から
0849デフォルトの名無しさん
2014/05/28(水) 20:57:26.86ID:bxqc+Caeソート前とソート後のデータ数10件くらい出してくれたら何をどうしたいのか分かるかもしれない
0850811
2014/05/28(水) 21:49:11.97ID:sePIB49ps = "16,1,A,13,3,D"
意味 17バイト目から1バイトを昇順。14バイト目から3バイトを降順に並べかえたい
いわゆる、クラス毎(Aクラス、Bクラスの順)の成績降順に並べかえたい
ソート前
"001YAMADA 080A"
"010YAMAMOTO 090B"
"011YAMAMOTO 090A"
ソート後
"011YAMAMOTO 090A"
"001YAMADA 080A"
"010YAMAMOTO 090B"
http://ideone.com/kii3eP
0851デフォルトの名無しさん
2014/05/28(水) 22:02:50.69ID:KYfVKk6vRubyの添字は0から
> i, l, d = k[0].to_i, k[1].to_i, k[2] == 'A' ? 1 : -1
i, l, d = k[0].to_i-1, k[1].to_i-1, k[2] == 'A' ? 1 : -1
とするか
> c = (a[i, l] <=> b[i, l]) * d
c = (a[i-1, l] <=> b[i-1, l]) * d
とする
0852デフォルトの名無しさん
2014/05/28(水) 22:19:59.36ID:KYfVKk6v無視してださいな
0853デフォルトの名無しさん
2014/05/28(水) 23:36:51.88ID:mtzJ02blinject の引数に初期値を指定する
s.split(',').each_slice(3).inject(0){|c, k|
>>830 の 831 が指摘してるのはこのことか
> の中に["16", "1", "A"]が入って
> そのデータが使われる事もなく上書きしちゃってるけどそれは良いの?
> s = "16,1,A,13,3,D" の後半しか使わないなら
> each_sliceしてる意味がよくわからない
0854811
2014/05/29(木) 08:41:03.84ID:yOuey9AUとりあえず動きました
ありがとうございました。
でも、injectの意味と
i,lに何が入るのかいまいち理解出来てないorz
0855デフォルトの名無しさん
2014/05/29(木) 09:26:44.70ID:6inXlVG/&#160; i = i.to_i # 16 , 13
&#160; l = l.to_i # 1 , 3
&#160; c = (a[i, l] <=> b[i, l]) * ( d == 'A' ? 1 : -1 )
&#160; break c if c.nonzero?
}
injectの使い方がまず変だし
とりあえずその謎イテレータで0か0以外を返したいなら
each_with_object(0)でやったほうがまだ変数に無駄はないというか
途中で気づいたけど
その定数打ち込みみたいなのは
"001YAMADA 080A".split
が
["001YAMADA", "080A"]
になるのが分かってない奴のコードなんじゃない
0856デフォルトの名無しさん
2014/05/29(木) 09:28:47.00ID:6inXlVG/0857デフォルトの名無しさん
2014/05/29(木) 17:23:25.44ID:iB+Mol+9jruby 1.7.3
rubyで日本語文字を使うと invalid multibyte char (US-ASCII)エラーがでました
ぐぐって
1.netbeans.conf の netbeans_default_options の項目に"-J-Dfile.encoding=UTF-8"を追加
2.rubyファイルの先頭に"# encoding: utf-8"を追加
を行うとエラーは解消されたんですが、今度は文字化けするようになりました
p "あ" → "\u3042" みたいな状態です
どうやったら日本語が表示できるよになるかご存知のかたはいらっしゃいませんか?
よろしくお願いします
0858デフォルトの名無しさん
2014/05/29(木) 19:24:31.76ID:wRBMavnE0859デフォルトの名無しさん
2014/05/29(木) 20:06:33.50ID:NXI36I92Unicode文字列や
0860デフォルトの名無しさん
2014/05/29(木) 20:40:18.12ID:Of0DEwli・puts を使う
・jruby -Eutf-8 を与える
・おすすめしないけと Encoding.default_internal = "utf-8"を使う
好きなものを選ぶといい。
0861デフォルトの名無しさん
2014/05/29(木) 22:25:55.99ID:iB+Mol+9>>858-860さん
教えていただきありがとうございます
あれはUnicode文字列に直された「あ」であって、仕様ってことなんですね
ruby2.0.0でもターミナル上で試してみたけど同じ感じになりました
rubyは今朝から勉強しはじめたんですが、pとputsは同じものだと勘違いをしていました
>>860さんに教えてもらったputsやjrubyにオプションを使ってうまくできました
pとputsの仕様を理解して、どっちを使うか考えてみます
勉強になりました、ありがとうございます
0862デフォルトの名無しさん
2014/05/30(金) 02:01:23.26ID:zROOwId2puts は文字列を表示するためのメソッドで、通常であればこちらを使う。
p はオブジェクトを人間が確認出来るように文字列化して表示するメソッドで、どちらかというとデバッグ用途向け。
nil や "" (空文字) が p と puts でどのように表示されるか試すといい。
それと "\u3042" はもともとユニコード文字列であったものをエスケープ表記したものであって、
ユニコード文字列に直されたものではないよ。
0863デフォルトの名無しさん
2014/05/31(土) 01:35:32.52ID:E8YeOxISリファレンスには「%C: 世紀 (2009年であれば 20)」とあって
実際の世紀より1小さい数字かとも思いましたが
2001年が20になってしまいます。
実装者が間抜けなのでしょうか?
それともリファレンスの執筆者のほうでしょうか?
0864デフォルトの名無しさん
2014/05/31(土) 01:43:01.26ID:koubozEBこの点に関しては間抜けなのは実装者でもなくリファレンス執筆者でもなく、お前
ただ、2000年についても20が返る
これはstrftime(3)の説明では
Replaced by the year divided by 100 and truncated to an integer, as a decimal number
と書かれており、「100で割った切り捨て」なので、世紀ではない
この点ではリファレンス執筆者が間抜けということになる
0865デフォルトの名無しさん
2014/05/31(土) 01:49:55.75ID:DuPlv/A7それ %y じゃない?
%C は Century の C で man 3 strftime は
% man 3 strftime
...
%C
is replaced by the century number (the year divided by 100 and truncated to an integer) as a decimal number [00-99].
0866デフォルトの名無しさん
2014/05/31(土) 01:50:21.87ID:6uEqwFlN0867デフォルトの名無しさん
2014/05/31(土) 01:52:52.83ID:koubozEB%yは100で割った余りだろ
%Cは100で割って小数点以下切り捨てた値(the year divided by 100 and truncated to an integer)だ
これは世紀の(一般的な)定義とは一致しない
0868デフォルトの名無しさん
2014/05/31(土) 02:25:34.65ID:DuPlv/A7その通りだ。失礼した
0869デフォルトの名無しさん
2014/05/31(土) 03:37:22.16ID:StQGqszV0870デフォルトの名無しさん
2014/05/31(土) 19:55:38.67ID:pZcQQNRhfoo :bar
end
このfooはいつのタイミングで実行されるのでしょうか?
コンストラクタを通過する前ですか?
0871デフォルトの名無しさん
2014/05/31(土) 20:37:08.23ID:9VlbAaXBclass ... end も評価(実行)される式であって、その評価の最中に fooo が呼ばれる。
ちな、 そのときの self は定義されつつある Hoge(Class クラスのインスタンス)。
0872デフォルトの名無しさん
2014/05/31(土) 20:38:17.58ID:9VlbAaXB0873デフォルトの名無しさん
2014/06/02(月) 16:32:33.83ID:1Or10QXx例えば16進でx"303130c1"を数字の-101に変換したい
x"303130c1" #=> -101
x"31323334d5" #=> 12345
x"31d1" #=> 11
str.unpack("H*")[0]で文字列化は出来た
知識がたりなくて解決できんorz
0874873
2014/06/02(月) 16:51:41.26ID:1Or10QXxx"303130D1" #=> -101
x"31323334C5" #=> 12345
x"31F1" #=> 11
0875デフォルトの名無しさん
2014/06/02(月) 21:30:37.62ID:xvF/lCz4符号についてイマイチ要領がえられんがこういうことか?
def デコード(入力)
結果 = 0
符号 = 1
桁 = 1
while 入力 > 0
n = 入力 & 0x0f
if n == 0
符号 = -1
else
符号 = 1
結果 += n * 桁
end
桁 *= 10
入力 >>= 8
end
符号 * 結果
end
p デコード 0x303130D1 #=> -101
p デコード 0x31323334C5 #=> 12345
p デコード 0x31F1 #=> 11
0876デフォルトの名無しさん
2014/06/02(月) 22:28:57.90ID:oL0V5+7Qbar &block
end
def bar(a, &block)
define_method(a, &block)
end
foo { puts :test }
2つ先のメソッドにブロックを渡したいときは、その経由するメソッドが常に&で引数を定義しているしか方法はないのでしょうか?
0877デフォルトの名無しさん
2014/06/03(火) 00:00:17.22ID:21gnvLmHブロックを受け取る方法としては、他には引数なしで proc を呼べばできる。
0879873
2014/06/03(火) 04:47:03.82ID:uM/LkyJon = 入力 & 0x0f
試してないけど、符号が取得できない気がする
上位 = 入力 & 0xf0
if 上位 == 0xd0
符号 = -1
else
符号 = 1
end
とかで出来るんだろか?
0880デフォルトの名無しさん
2014/06/03(火) 09:36:07.26ID:cUWl3TqTyieldではダメなんですか?
0881デフォルトの名無しさん
2014/06/04(水) 21:36:03.20ID:RXK6c4Kp符号は最上位バイトが 0 を意味するかどうかで決まるんじゃないのか。
>>875 の方法は小さい桁から処理するようになっているから >>879 の方法をそのまま組み合わせてもうまくいかないよ。
もう少し追加する必要がある。
0882デフォルトの名無しさん
2014/06/04(水) 21:40:03.92ID:RXK6c4Kp>>876 は『2つ先のメソッドにブロックを渡したい』と言っている。
受け取ったブロックをそのままの形で渡したいという意味であれば yield は当てはまらない。
実行結果は大差ないのだろうけれど。
0883デフォルトの名無しさん
2014/06/05(木) 00:41:53.02ID:Q6SBWoxCタプルを使って、プロセス間の通信を行おうと思います。
で、どうなるのかな〜と、サーバ側で受信をしないまま、クライアント側で延々と送信するってことをやってみました。
サーバ側でデータがたまる?と送信側がだんだんと遅くなっていくように思えました。
この点について、
1. サーバ側で、バッファ?にたまったままのデータの総量を知ることは可能でしょうか。
2. サーバ側で、バッファ?に指定値以上のデータが溜まった場合に、
クライアント側で送信が失敗するようにすることは可能でしょうか。
いずれも可能であれば、その方法も教えていただければと思います。お願いします。
0884デフォルトの名無しさん
2014/06/05(木) 04:43:31.41ID:82BFuaye0886デフォルトの名無しさん
2014/06/05(木) 11:24:57.02ID:ETtr0yD7http://peace.2ch.net/test/read.cgi/newsplus/1401934609/
0887デフォルトの名無しさん
2014/06/05(木) 18:49:38.12ID:vH4xfyJGloop{
puts "hello"
sleep 2
}
}
とスレッドを作っておいて、t.stop t.runで止めたり走らせたりしよとしましたが、
失敗します。どうやればいいでしょうか?
0888デフォルトの名無しさん
2014/06/05(木) 21:13:02.23ID:TjofFVL8>1. サーバ側で、バッファ?にたまったままのデータの総量を知ることは可能でしょうか。
できない
>2. サーバ側で、バッファ?に指定値以上のデータが溜まった場合に、
クライアント側で送信が失敗するようにすることは可能でしょうか。
プロセス間通信サービス上で「フロー制御」と呼ばれる規約(プロトコル)を実現するのが真面目な解決策
フロー制御に関しては、まず最初にWikipediaを参照のこと
詳しくは「ネットワークプログラミング相談室」スレで質問を投げたほうがいい
ただし、普通はバッファが満杯で送信が一時的に不可になるとプロセス間通信サービスへの
呼び出しそのものがブロックされるので、それにまかせるのが一般的な実装
もしもブロックを避けたいのであれば、送信処理だけを独立したスレッドで実行するといった
根本的な方式設計の見直しを検討すべき
それすら難しい環境が前提であれば、はじめてフロー制御の実装も検討課題になる
0889デフォルトの名無しさん
2014/06/05(木) 21:24:32.37ID:KxqpnMQptumblrapi.rb:12:in `<main>': undefined method `gsub' for #<Hash:0xb8ece81c> (NoMethodError)
とエラーが出てうまくいきません。
コードの関連すると思われる部分はこんなかんじで、
tumblr = Tumblr.new.posts("hoge.tumblr.com", {:tag => "aaa"})
puts tumblr.gsub("=>",":")
Tumblr.new.posts("hoge.tumblr.com", {:tag => "aaa"})の中身は
{"blog"=>{"title"=>"題名未設定", "name"=>"hoge", "posts"=>1793, "url"=>"http://hoge.tumblr.com/",
"updated"=>1401719378, "description"=>"", "ask"=>false, "ask_page_title"
…
ってかんじです。
どうやったらうまく行くかわかる方がいたら教えてください。
OSはxubuntu14.04LTSでrubyのバージョンはruby 2.1.1p76です
0890デフォルトの名無しさん
2014/06/05(木) 21:45:51.67ID:andVixuiHashにはgsubなんてメソッドはない
0891デフォルトの名無しさん
2014/06/05(木) 21:54:17.56ID:TjofFVL8http://play.island.ac/codepaste/code?id=1579
0892883
2014/06/05(木) 23:28:39.57ID:Q6SBWoxC>>884
UDP で送れば、送信側では遅延が発生しないって解釈で正しいですか。
>>888
実現性について、はっきりしたので助かりました。
他人が書いたコードを引き継ぎまして。自分も ruby はあまり経験がなく。
どうも受信した側の処理速度が遅いらしく、気がつくとだいぶか前に受信したデータを処理しているなんてこともあるようでして。
この影響からか、送信側でもタイムアウトエラーが出ているようです。
それでこの対策として、「溜まってたらそれ以上送信できないようにする」という案があり、実現性と有効性を考えていました。
いくつか他にもネタがあるので、根本的な修正をそれとなく提案してはいるような状態です。
0893デフォルトの名無しさん
2014/06/06(金) 05:20:22.20ID:6xRK/1HTRubyの勉強をするに当たり、自分の書いているコードがどの程度メモリを消費するのかと思い、
ObjectSpace.count_objects()
にて確認しようと思っているのですが、各項目の意味がわかりません。
マニュアル等にもこの項目の説明がないのですが、それぞれの意味はどのようなものなのでしょうか?
最初のTOTALとFREEがメモリ消費量と空き容量と考えたのですが、FREEが空いているにも関わらずTOTALが増えるなど動作がよくりかいできません。
また、この数字の単位はなにになるのでしょうか?
私の環境ではインタプリタの起動だけであれば、20000程度になるのですか単位はKBなのでしょうか?
よろしくおねがいします。
0894873
2014/06/06(金) 12:47:39.81ID:MzEt5DgJありがとうございました。
0895873
2014/06/06(金) 15:49:01.01ID:MzEt5DgJ今度は渡されたパラメータによってデータを抽出したいのですが、
良いアイデアがあったらお願いします。
パラメタ説明
「位置,長さ,データ形式,演算子,比較値」を1セットとして
OR,AND,カッコ()などで条件式を自由に記述する事ができます。
データ形式「CH=文字,以外は数字」
演算子「EQ:(a == b),NE:(a != b),GT:(a > b),GE:(a >= b),LT:(a < b),LE=(a <= b)
たとえば
# (Aクラス かつ 80点以上)または(Bクラス かつ 50点以上)または(Cクラス)を抽出
#パラメタ= "(0,1,CH,EQ,"A",AND,14,3,ZD,GE,80),OR,(0,1,CH,EQ,"B",AND,14,3,ZD,GE,50),OR,(0,1,CH,EQ,"C")"
rubyで書くとこんな感じになります。
outdata = Array.new
indata.each{|s|
if (s[0,1] == "A" && s[14,3].to_i >= 80) ||
(s[0,1] == "B" && s[14,3].to_i >= 50) ||
(s[0,1] == "C")
outdata.push(s)
end
}
パラメタを解析して、上記のような抽出条件を生成したいです。
よろしくお願いします。
http://ideone.com/Mqr7Yv
0896デフォルトの名無しさん
2014/06/06(金) 18:20:55.25ID:P72D4ejY・パラメータは、1つのCSV文字列にする。
・パラメータ文字列内は、逆ポーランド記法にする。
0897デフォルトの名無しさん
2014/06/06(金) 23:39:47.35ID:XcM2C4Vm>>891を一晩置いて見直したら、より簡潔になった...かも
http://play.island.ac/codepaste/code?id=1580
[変更点]
・String#getbyte で最終バイトを取り出すようにした
・メソッドの命名が適切ではないように思えたので、訂正した
0898デフォルトの名無しさん
2014/06/07(土) 06:11:31.37ID:HlN+9CGyどこから勉強はじめていいかも教えてもらえるとありがたい。
0899デフォルトの名無しさん
2014/06/07(土) 06:18:37.46ID:9GBf0cSUいきなり言語から選ぶ時点で間違っている。設計による。
0900デフォルトの名無しさん
2014/06/07(土) 08:11:56.19ID:HlN+9CGyなるほど。あまりWebに関する知識も経験もないんだけど、設計とはどんな感じですればいいのだろう?
取っ掛かりが分からなくて困ってる。
0901デフォルトの名無しさん
2014/06/07(土) 09:07:48.71ID:/gMYq1Ml0902デフォルトの名無しさん
2014/06/07(土) 09:37:39.73ID:HlN+9CGyバカは喋らないでほしい
0903デフォルトの名無しさん
2014/06/07(土) 10:31:39.69ID:9GBf0cSUいつのまにwebという設計にしたが知らんが。
OMTとか既存の設計手法を使えばいいんじゃない。ただいきなりやっても失敗するだろうから、まともな設計ができる人の下について学ぶ方がいいと思う。
0904895
2014/06/07(土) 13:56:57.57ID:nytus6Pq逆ポーランド記法調べたけど、難しい(汗;
初心者の俺はカッコ悪いけどeval使った方が分かりやすかったorz
ご意見をお願いします。
http://ideone.com/TRracO
0905デフォルトの名無しさん
2014/06/07(土) 16:47:42.58ID:7QdOHJtSruby が管理しているオブジェクトの個数を表しており、バイト数ではない。
で、TOTAL は FREE も含めたオブジェクトの総数を示している。
残念ながら使用メモリ量を確認する手段は用意されていない。
OS が提供する機能を dl ライブラリを通して取得するか、gem ライブラリにあるかは不明だがそちらを探してみ。
ちなみに ObjectSpace.count_objects が返すそれぞれのキーは ruby の実装内部におけるデータ形式で、
それぞれのインスタンスだと考えていい。
例えば T_STRING は文字列 (派生を含む String クラスのインスタンス) を表している。
分かりづらいのは
* T_DATA が C 言語レベルでのデータを持つインスタンス
* T_ICLASS が特異オブジェクトのための特殊なクラス
* T_NODE が ruby スクリプトを解釈した構文木の要素
を表しているってところかな。
0906,,・´∀`・,,)っ-○○○
2014/06/07(土) 17:20:34.79ID:x3Apu0jy雛形改造レベルである程度のものが作れるのは確かだけど
バカには使わせちゃいけないのがRails
0907デフォルトの名無しさん
2014/06/07(土) 22:09:30.36ID:mg6Kw8610908デフォルトの名無しさん
2014/06/09(月) 00:23:25.94ID:6m+ifHBS仕事で使われる時に、何故rubyを使うのか、pythonを使うのかといった判断基準も気になります
0909デフォルトの名無しさん
2014/06/09(月) 01:01:27.54ID:xabr+HDU他言語との比較はスレ違いなので、以下のスレへ移動を:
・【PHP,JavaScript】スクリプト バトルロワイヤル43【pl,rb,py】
http://peace.2ch.net/test/read.cgi/tech/1396153182/
0910デフォルトの名無しさん
2014/06/09(月) 16:22:14.70ID:wV+5vPJSスーパークラスの同名メソッドならsuperで呼べるんですが。
0911910
2014/06/09(月) 16:28:05.18ID:wV+5vPJS0912デフォルトの名無しさん
2014/06/09(月) 16:57:11.45ID:uTgA5MBX0913デフォルトの名無しさん
2014/06/09(月) 17:44:39.21ID:aKPgDywMでクラスやモジュールのインスタンスメソッドをぶっこ抜いて
ttp://www.ruby-doc.org/core-2.1.2/UnboundMethod.html#method-i-bind
でサブクラスのインスタンスを指定し
ttp://www.ruby-doc.org/core-2.1.2/Method.html#method-i-call
でメソッドを呼ぶ
使い辛いって? 推奨されない方法だからな
親飛び越えて意見できるとは思わないほうがいいぞ
0914910
2014/06/09(月) 18:20:01.87ID:wV+5vPJS先生こうですか!
できました、ありがとうございます。
くだらないことでも、質問してよかったです。
ためになりました。
class A
def foo; "Super!"; end
end
class B < A
def foo; "Sub..."; end
def bar
um = A.instance_method(:foo)
um.bind(self).call
end
end
p B.new.bar
0915デフォルトの名無しさん
2014/06/09(月) 20:04:31.20ID:aKPgDywMというかそのクラス構成ならclass Bでdef fooをする前にaliasをして
barからそのメソッドを呼ぶようにするべきだな
0916,,・´∀`・,,)っ-○○○
2014/06/09(月) 20:15:13.69ID:zgyYB5Bh経験上単一継承で作るよりは極力必要なクラスでMix-inしたほうがいいかなと思う。
ActiveRecord::Base
|
HogeAppBase←ここにあらゆる共通メソッドを追加
|
Model複数
こんな継承関係やったらコードがえらく汚くなったことがある
0917910
2014/06/09(月) 20:16:44.97ID:wV+5vPJSなるほど、この方法も見事ですね。
こんなのを思いつくなんて、先生は相当な手足れですね。
class A
def foo; "Super!"; end
end
class B < A
alias baz foo
def foo; "Sub..."; end
def bar; baz; end
end
p B.new.bar
ありがとうございました。
0918910
2014/06/09(月) 20:18:19.39ID:wV+5vPJSRubyの試験受けようかと思って、いろいろ遊んでるだけです。
また教えてくださいね。
0919デフォルトの名無しさん
2014/06/09(月) 21:00:09.69ID:4OU1CSGO表示する場合、どのような実装が推奨されますか?
試してみたこと
1.1.8的に書く
→$>に出力すると文字化けで読めない
2.read後にforce_encoding("Windows-31J")で文字コードをセット
→scan(regexp)や[regexp, n]などでエラーが出る
3.適宜Windows-31JとASCII-8BITを切り替える
→トラブルの元
4.表示するたびにNKFやKCONVで変換
→そのためにNKFを使うのも・・・見た目もよくない
なにか、お手軽かつスマートな実装があれば・・・
よろしくお願いします
0920デフォルトの名無しさん
2014/06/09(月) 21:02:32.61ID:aJwnrUlY0921デフォルトの名無しさん
2014/06/09(月) 23:58:48.76ID:aKPgDywM俺が考えたんじゃなくて先達の知恵
オープンソースっつー鉱脈もあるんだから
この手のことは他人から盗むのが一番だ(コピペの意味じゃないからな、念のため)
0922デフォルトの名無しさん
2014/06/10(火) 08:04:05.73ID:oUviKcQyWEB系でDB を使うのは、PHP が多い
Web プログラミング板を参照
PHPのスレが数十ある
山田祥寛(よしひろ)
10日でおぼえる PHP 入門教室、第4版、2012
この本では、Apache Friendsが提供する、XAMPPを使っている
XAMPPとは、Apache ウェブサーバやMySQL, PHP
などがセットになったもの
Rubyは、シェルスクリプトやPerlを置き換えるもので、
サーバの構築などに使われる
プログラミングするというより、
条件分岐してコマンドを呼び出すのによい
0923デフォルトの名無しさん
2014/06/10(火) 08:08:39.73ID:KjUuulVTOSとは別個に入れて管理しなきゃいけないのと互換性の低さが致命的なんだよなあ
0924デフォルトの名無しさん
2014/06/10(火) 08:54:36.77ID:fSq5srf6PerlがOSインストールと同時に入るような環境なら、RubyもOSに合ったもの入れられるだろ。
Windowsとかの、パッケージ管理が無い環境なら論外だが。
0925デフォルトの名無しさん
2014/06/10(火) 09:09:49.09ID:DTzE393wPerlでもPythonでもそれは同じじゃないか
0926デフォルトの名無しさん
2014/06/10(火) 09:53:41.53ID:pVqiHj2nPHPはウェブデザイナが手を出しやすいから人が多いだけで、使いづらいと感じる。
0927デフォルトの名無しさん
2014/06/10(火) 17:48:49.11ID:+LdDk5l6対抗馬になりそうな言語への弾圧作戦が開始されるんだろうね
林檎箱から指令を受けたマカーによる工作が、
Pythonなど支援団体が強固なところは乗り切れるだろうが、Rubyはどうかな
マカーに祭り上げられてポヤポヤしてたときに潜入した工作員や団体が残ってるから
ダメも知らんね。すでにガタガタ言わされてるようですね。
Macサイコー!Windowsしねーみたいな感じだったでしょ、いまさらWIndowsを
拠点にするわけにも逝かないし、Linuxはやっぱり鯖用途が重視されるから
拠点を構築してても攻撃されたら一気に持っていかれそう。
JRubyみたいな感じで旧資産を吸収される流れを加速させて工作員ごと分離して
廃棄後に、国産言語枠で細々とやっていくというのが現実的なのかもね。
0928デフォルトの名無しさん
2014/06/10(火) 18:02:25.46ID:txlE9CX2Windowsにもパッケージ管理導入されるよ
0929デフォルトの名無しさん
2014/06/10(火) 20:46:09.64ID:5HgHF0GASwiftに踊らされる馬鹿がここにも一匹
Objctive-C にあった裸のC言語によるメモリ破壊という欠点を補い、
対抗相手のJava/C++と同レベルのメモリ保護に追いついたのがSwiftだ
それがAppleの言う安全性(safety)というSwiftの利点の意味するもの
静的型付け言語としてSwiftと比較、競合されるのはObjC/Java/C++であって、
PythonやRubyといったスクリプト言語に直接的な影響を与えることはない
ましてや現時点において、OSX/iOSといったAppleプラットフォーム上で
死にかけているスクリプト言語はRubyではなくPythonのほうだ
Rubyには、MacRuby(OSX)やRubyMotion/RubyMobi(iOS)があるから、
OSX/iOSネイティブ・アプリケーションを素早く開発するための
オープンソースなスクリプト言語として最も優位な位置を占めている
それに対して、Pythonといえば旧世代の実装であるPyObjCで開発が停滞している
・Python for iOS (like RubyMotion) - Stack Overflow
http://stackoverflow.com/questions/10456648/python-for-ios-like-rubymotion
> you can't really compare PyObjC and Macruby, PyObjC is a bridge like RubyCocoa
> as you already said MacRuby is Ruby on Top of ObjC runtime.
> By replacing the Garbage collector from PyObjC will not work since it's a Bridge.
> – Sean Mateus May 14 '12 at 13:32
0930デフォルトの名無しさん
2014/06/10(火) 21:07:15.47ID:KXd/m63nレン鯖は今だにサポートの終った1.8.7しか載っていないし。
0931デフォルトの名無しさん
2014/06/10(火) 21:18:40.37ID:g4Ir3b+j0932,,・´∀`・,,)っ-○○○
2014/06/11(水) 20:47:27.03ID:LAxb9MUTネイティブコード吐く言語とWebに強いインタプリタ言語じゃ全然守備範囲が違うだろ
0933デフォルトの名無しさん
2014/06/11(水) 21:01:27.46ID:+K6AGXZI世界的に見ればMacユーザーはPythonの圧勝だ
0934デフォルトの名無しさん
2014/06/11(水) 21:20:29.46ID:uvpFnhzCそれに比例してMac/iPhoneユーザのプログラマ数でも
おそらくはRubyプログラマよりPythonプログラマが多いのだろう
(Macには個人向けUNIXワークステーションとしての用途があるからね)
ただし>>929で書いたように、言語の処理系実装という技術的視点であれば、
ネイティブOSX/iOS開発向けスクリプト言語として「Pythonの敗北は決定的」だ
PyObjCは(RubyCocoaに相当する)ブリッジを前提とした世代遅れの実装でしかない
0935,,・´∀`・,,)っ-○○○
2014/06/11(水) 22:17:50.70ID:LAxb9MUT0936デフォルトの名無しさん
2014/06/12(木) 02:47:24.54ID:847Pam/Vどこかで見かけた階段の登り方の総数は。(一回に上れるのは1,2,3段)
という問題を解いていてトリボナッチ数列使えることに気づき上記のコードを書いたのですが、これ以上に最適化(高速化、より深い再帰など)ってできるんでしょうか。
0937デフォルトの名無しさん
2014/06/12(木) 10:06:43.99ID:LyErUNET2ch以外で聞いた方がいいです
0938デフォルトの名無しさん
2014/06/12(木) 11:05:49.98ID:VXukLz1Kほとんど変わらんけど
class TriBonacci
def initialize
@memo = [1,1,2]
end
def f(n)
@memo[n] || @memo[n] = f(n-1) + f(n-2) + f(n-3)
end
end
n = 6500
p TriBonacci.new.f(n)
0939デフォルトの名無しさん
2014/06/12(木) 15:04:11.34ID:csvGFFzvhttp://www.youtube.com/watch?v=Q4gTV4r0zRs
0940デフォルトの名無しさん
2014/06/12(木) 16:12:24.10ID:SK659vFthttp://www.atmarkit.co.jp/news/201004/19/twitter.html
RORのままアーキテクチャの変更で10000%高速化したとな。
ttp://b.hatena.ne.jp/entry/highscalability.com/scaling-twitter-making-twitter-10000-percent-faster
ミニブログの Twitterのstats(統計)データ。
http://kaworu.jpn.org/kaworu/2008-01-16-2.php
- 350,000を超えるユーザ。
- 秒間600リクエスト
- 平均毎秒200-300コネクション。最大時は秒間800コネクション
- MySQLは秒間2,400リクエストを処理する
- 180のRailsインスタンスがある。MongrelのWebサーバを使っている。
- 1つのMySQLサーバ(1つの大きな 8コアのサーバ)と1つのスレーブ。スレーブは、統計とレポートのための読み込み専用(リードオンリー)。
- 雑用処理をするための30+のプロセス
- 8台のSun X4100s
- Railsでのリクエストの処理時間は200 msec
- データベースにかかる時間の平均は、50-100 msec
- 16GBの memcached
0941デフォルトの名無しさん
2014/06/12(木) 17:32:57.78ID:847Pam/V成る程、短絡にすると読みやすいし無駄も減りますね。
>>939
ものすごい数の場合を計算させるときは素直に計算するのではなく、アルゴリズムを考えるのが正解なんでしょうか。
0942デフォルトの名無しさん
2014/06/12(木) 18:16:01.13ID:FSiTWKCJシェルに投げてもいいんじゃないの?
0943デフォルトの名無しさん
2014/06/13(金) 06:22:35.86ID:iDk9iIjvhttp://ideone.com/tG0ln6
O(log n) のアルゴリズムで書いてみた。
n = 1000000 でも1秒かからない(結果を出力しなければ)。
分からないことがあったら聞いてくれ。
0944デフォルトの名無しさん
2014/06/14(土) 03:24:05.95ID:2dTBHwj7このアルゴリズムの成立過程が気になります。
トリボナッチ数列に固有の性質として添え字が偶数奇数かにより効率よく計算できる式が導けるける。ということでしょうか。
require 'matrix'
def f(n)
(Matrix[[1,1,1],[1,0,0],[0,1,0]]**n)[0,0]
end
なんてのも試しましたが
n = 1000000
のとき>>953のコードの凡そ15倍でした。
0945デフォルトの名無しさん
2014/06/15(日) 02:27:52.26ID:bxBuaLtn書きかけでこれから書き直すと思うけど
http://d.hatena.ne.jp/haruya12/20140614/1402766602
0946デフォルトの名無しさん
2014/06/15(日) 06:29:10.87ID:/gWIMzTbスクリプトファイル内で、スクリプトファイルが置かれているディレクトリを
取得したいんですが、どうすればいいでしょうか。
File.basename($0) とすると、他のスクリプトファイルから呼ばれた時に、
「呼び出した側」のパスが $0 に入ってきてしまいます。
どこから呼ばれても「呼び出された側」のパスを取得できるようにしたいのです。
よろしくお願いします。
0947デフォルトの名無しさん
2014/06/15(日) 08:27:44.07ID:qa4IDQI3なるほど、一般項を出すのではなく別の表現を得るために特性多項式を用いることもできるのですね。
行列のn乗を2n乗にして比較するとかはフィボナッチ数列の場合ほどうまくいかなかったので諦めてしまったのですが、これは目から鱗でした。
0948デフォルトの名無しさん
2014/06/15(日) 09:18:25.58ID:RmAzQm82__FILE__
0949946
2014/06/15(日) 09:33:39.88ID:/gWIMzTb「Ruby __FILE__」でググったところ、File.expand_path(".") で
「呼び出される側」のディレクトリが取得できることがわかりました。
ありがとうございました。
これで、どこからスクリプトを呼んでも同じ挙動をするようにできます。
0950デフォルトの名無しさん
2014/06/15(日) 13:38:38.05ID:lefrVeu00952デフォルトの名無しさん
2014/06/15(日) 18:22:50.87ID:gpx89xWw0953デフォルトの名無しさん
2014/06/17(火) 23:56:38.23ID:TjnCE1Imgnuplot > hoge
とか対話式のコマンドラインツールを作りたいんだけど、
editlineとかreadlineみたいな仕組みも取り入れつつ、
簡単に書けるライブラリとかないでつかね
0954デフォルトの名無しさん
2014/06/18(水) 00:15:35.13ID:K2PaBBH0標準ライブラリに readline があるよ
まずは「るりま」で公式リファレンスの解説を読み、
次に "ruby readline" でググるといいと思う
最近のこのスレだと Part52#346 にサンプルがある
http://peace.2ch.net/test/read.cgi/tech/1370530209/346
0955デフォルトの名無しさん
2014/06/18(水) 13:06:01.32ID:PX29oX8atwitpicにアップロードされた画像のurlを取得したいのですが、
やり方がわかりません。
今作ってるプログラムとしてはリプライで送られてきた画像をローカルに保存するようなプログラムをつくっているのですが、
うまく取得できないです。
0956デフォルトの名無しさん
2014/06/18(水) 22:07:51.93ID:pUJDGfyb私も初心者なのできちゃないコーディングだけど、これでできてる
if tweet.uris?
tweet.uris.each do |value|
url=value.expanded_url.to_s
if url.include?('twitpic')
filename = url.split(/\//).last
url='http://twitpic.com/show/full/'+filename+'.jpg'
0957デフォルトの名無しさん
2014/06/19(木) 15:30:50.48ID:gduOxxnf0958デフォルトの名無しさん
2014/06/19(木) 22:36:13.93ID:+wVfn22N気をつけないといけないところはある?
0959デフォルトの名無しさん
2014/06/19(木) 22:51:51.99ID:E/8hp7e3プログラミング言語まったくの初心者だからぜんぜんわからないんだけど
if tweet.uris?
tweet.uris.each do |value|
この二行ってどういう意味ですか?
0960デフォルトの名無しさん
2014/06/19(木) 23:20:49.46ID:oi99l3rA最近、その2冊を購入して手元にある
どちらも 1.9 時代に書かれた書籍だから、
2.0 以降の追加/変更については書かれていない
たとえば:
・遅延評価を実現するために追加された Lazy
・廃止されたエンコーディング指定のためのマジックコメント強制(2.4.1章)
といったあたり
ただし、1.9 -> 2.0 ではインタプリタ内部の実装には多くの改善が
加わったけど、Rubyプログラマという利用者から見える言語仕様は
ほとんど変化していない
読んで誤解する部分よりも読んで得られる整理された知識という利点はずっと大きいから、
(上記のマジックコメントの箇所を除けば、)十分に役立つ書籍だと思う
Lazy等、2.x時代の新しい話題はネットで情報収集すればいい
ざっと目を通したレベルだけど、こんな印象を持った
たのしいRubyを読んで「よくわからなんけどすげえ」と感じたことが、
「おぉー、そういうことだったのか」と合点がいくようになる .... かもしれない(w
0961,,・´∀`・,,)っ-○○○
2014/06/19(木) 23:26:59.39ID:EoMFkE2m0962デフォルトの名無しさん
2014/06/19(木) 23:30:14.97ID:kbMSHpHu2,0ではデフォルトエンコーディングがUTF-8に変わっただけで、それ以外の
エンコーディングで書く場合には相変わらずマジックコメントは必須だよ
0963デフォルトの名無しさん
2014/06/19(木) 23:37:44.51ID:+wVfn22Nそうなんだ。
サンプルコードを試す時は2.xを使わず1.9を使えば取り敢えず学習には問題ないんだね。
エンコードとかのそこらへんの上級のことはまだ先だから、基本部分に大きな問題がなければ良いや。
注文して来よ。
2.xに対応した改訂版がでると良いのだけれど、そろそろ出さないのかな?
0964デフォルトの名無しさん
2014/06/20(金) 00:03:49.36ID:oi99l3rAいや、2.0でデフォルトエンコーディングが
(ASCIIから)UTF-8に変わったことが大きいんです
(EUCやSJISで書かれた)古いコードの保守を
仕事にしている人を除けば、今時のほとんどのプログラマは
UTF-8を前提にしてコーディングしているでしょ
世界レベルでもASCIIデフォで満足できるのは英語圏の人だけでしょ
どうして 1.9 ではデフォを ASCII なんかにする判断をしたの?
個人的には、ふつうのプログラマの自然さ/楽しさを追求するはずの
「Rubyプロジェクトらしからぬ間違った決定」だったと思います
そして結果的には、文字列リテラルやコメントに2バイト文字を使いたい
「ふつうのRubyプログラマ」にとって、1.9 のASCIIデフォ決定は
マジックコメント強制と同じ意味になってしまったんですよ
0965,,・´∀`・,,)っ-○○○
2014/06/20(金) 00:09:33.43ID:c2t2VBBN糞gemが勝手にASCIIエンコーディングに書き換えてストレスがマッハ
deviseてめーのことだ
0966デフォルトの名無しさん
2014/06/20(金) 07:35:23.24ID:+JwfTZEPwxRubyのほかに最近のRubyで動くネイティブ系のGUIツールキットってありませんか?
Tk/TclはWin標準の対応が不完全で微妙・・・
0967,,・´∀`・,,)っ-○○○
2014/06/20(金) 07:55:23.83ID:c2t2VBBN0968デフォルトの名無しさん
2014/06/20(金) 10:01:00.56ID:fiYVjyLmWindows向けGUIツールキットならば Ruby-IUP がある
IUP はよくあるマルチプラットフォーム対応なツールキットだけど、
プラットフォーム・ネイティブなウィジェットを使う点が特徴
Windows上であれば、外観からRubyアプリか否かは見分けがつかない
http://www.tecgraf.puc-rio.br/iup/en/gallery.html
問題は:
・最終gemリリースが2010年なので、おそらく最新の2.x系では動かない(実機未確認)
・Mac上ではCocoa未対応なので、Xウィンドウ(GTK2.0)が前提(GTK+-Cocoaは未確認)
・日本語情報が皆無
なこと
もしJavaに心理的な抵抗が無い人なら、>>967の勧める JRuby がいいと思う
新しいJavaFX以外にも、ネイティブウィジェットを使い豊富な機能を提供する SWT や
(GTK等と同じく)ネイティブウィジェットではないけどJava標準でシンプルな Swing もある
ここ数年、Ruby界隈は Web へ開発パワーが集中していたから、GUI周辺は寂しい感じがするね
0969966
2014/06/20(金) 22:55:41.58ID:/kxP5xgK>JRuby+JavaFX
これはPCにJavaが入っていないと動きませんよね?
exerbで固めて配布も考えているので何かを入れないと動かない物は
なるべくさけたいです
>IUP
0.1.0は1.8用のようです。しかも情報がwxRubyよりさらに少ない気が・・・
現状だと選択肢は
2.x+Ruby/tk ・・・ Win標準操作と互換性がイマイチ
1.8+wxruby2.0.1 ・・・ 高機能だがライブラリが特大(約18MB)
1.8+wxruby0.6.0 ・・・ かなり古いがライブラリが小さい(約2MB)
1.8+ruby-iup0.1.0 ・・・ ドキュメントがwxrubyよりさらに少ない
くらいしかないのかな・・・Ruby/Pythonも大昔に止まってしまっているしなぁ
しかし、今更1.8とかセキュリティもさることながらコードの互換性ががが・・・orz
0970デフォルトの名無しさん
2014/06/20(金) 23:05:59.36ID:M/JwZqVI例に漏れず開発死んでるけど
0971デフォルトの名無しさん
2014/06/20(金) 23:19:57.65ID:fiYVjyLmそういえば IronRuby はどうしてたんだろと調べてみたら、
最新版 1.1.3 のリリースが2011年で Ruby 1.9.2 互換の
Visual Studio 2010 統合可能だった
"ironruby wpf tutorial" でググると、
英語だけどGUIアプリ開発の入門記事がいくつか見つかる
また、exe化については、(exerbの代わりに) irpack というツールを使うと、
.Net Framework または mono さえあれば IronRuby インストール無しに
実行可能な .exe ファイルを作れるみたい(ツール作者は日本人)
https://github.com/kumaryu/irpack
自分は.Net開発環境は無知なんでこれ以上は分からんけど、参考まで
0972,,・´∀`・,,)っ-○○○
2014/06/20(金) 23:25:03.12ID:c2t2VBBN実効に必要なJavaランタイムをインストーラに同梱することが認められてる
0973966
2014/06/20(金) 23:56:31.35ID:/kxP5xgKもうちょっと詳しく書くべきですね
想定される実行環境はWin7以降。用途はちょっとしたGUIツールの開発で
インストーラー不要(配布アーカイブを解凍→.exeを実行)で動くこと
.NETとJavaは経験がないので変なことを言っていたらすみません
>IronRuby
新しい物は要Silverlightっぽい。JRubyと同じオチになりそうな気が・・・
Silverlightが無くても基本的な機能は動くとか、Silverlight関連(≠インストーラー)を
配布アーカイブに同梱して動かせるのであれば挑戦してみる価値はあるかも
>>972
インストールしなくても動く形でJavaRuntimeを同梱みたいなことって出来るんですかね?
できるのであれば試してみる価値があるかも
・・・どちらもファイル同梱だけで動いたとしてもライセンス的にアウトのような気も・・・
0974デフォルトの名無しさん
2014/06/20(金) 23:58:23.96ID:7hiN3zjJ0975デフォルトの名無しさん
2014/06/21(土) 06:51:52.21ID:2OQISpPsそんなあなたに VisualuRuby
0976デフォルトの名無しさん
2014/06/21(土) 06:53:21.20ID:2OQISpPshttp://peace.2ch.net/test/read.cgi/tech/1269609576/
0977デフォルトの名無しさん
2014/06/21(土) 07:22:24.24ID:yKtnF+AD0978,,・´∀`・,,)っ-○○○
2014/06/21(土) 07:29:57.32ID:J+qs8s+URubyじゃなくてHSPでも使っとけと
0979デフォルトの名無しさん
2014/06/21(土) 07:31:46.58ID:2OQISpPshttps://rubygems.org/gems/webkit-gtk
0980,,・´∀`・,,)っ-○○○
2014/06/21(土) 08:42:45.46ID:J+qs8s+U結局C++になったけどな俺は
そもそもエンドユーザーはランタイムのインストールを嫌うのか?
あんまり「愚者」だと思ってかかると何も作れなくなってしまうよ
0981デフォルトの名無しさん
2014/06/21(土) 09:08:56.62ID:2OQISpPsGUIのためだけにGTKやTkは入れたくないな
0982デフォルトの名無しさん
2014/06/21(土) 09:37:08.11ID:AC3FvT0xサーバー上や仮想環境上で作業するのを好む人は結構いるだろ
それが愚かだとは全く思わないけど?
0983,,・´∀`・,,)っ-○○○
2014/06/21(土) 09:42:20.23ID:J+qs8s+U0からC++やC#でWindowsアプリ作る方法覚えたほうが楽だと思うよ
0984デフォルトの名無しさん
2014/06/21(土) 09:43:04.85ID:2OQISpPsそこは同意してる
誰も否定していない
0985デフォルトの名無しさん
2014/06/21(土) 09:49:21.21ID:2OQISpPshttp://myruby.seesaa.net/tag/articles/ruby%82%CCGUI%94%E4%8Ar
0986,,・´∀`・,,)っ-○○○
2014/06/21(土) 10:00:09.00ID:J+qs8s+U出てきてもいいかなとは思うのだけどね。
昔やってて比較的楽だと思ったのはHTA+Rubyかな。
ActiveScriptRubyの中にもサンプルがあったはず。
WSHの知識が必要になるけど・・・
0987デフォルトの名無しさん
2014/06/21(土) 15:03:21.95ID:YxaWkchcなんか世の中からプログラミングへの興味がどんどん薄れてる気がする
0988,,・´∀`・,,)っ-○○○
2014/06/21(土) 15:07:21.11ID:J+qs8s+Uまともに2ch発で物作る気概のある人間はopen2chに逃げた
あるいはTwitter+GitHub
0989デフォルトの名無しさん
2014/06/21(土) 15:18:02.84ID:2OQISpPsなら
その通りだろうね
0990デフォルトの名無しさん
2014/06/21(土) 15:49:45.49ID:AC3FvT0xでもmrubyってISO Rubyとの間ですら互換性無いらしいね
0991デフォルトの名無しさん
2014/06/21(土) 15:50:33.56ID:YxaWkchcフリーのTwitter-BOTサービスまであるのを見てそう感じた
こっちはチマチマと自力で作ったのに。
何か悪戯とか珍しい事をする目的でさえ、ソースコード書かなくて良くなってきてる事が多い
0992966
2014/06/21(土) 16:37:40.55ID:sNSBg/lN>C#, IronRuby
Win7以降のWinで共通に使える.NET Frameworkのバージョンが
無いようなのでインストール作業が必須になりそうです
>jruby+javafx
パッケージングはJREを内包できるLaunch4jでいけそうと判ったので
JDK 8u5+jruby 1.7.12+jrubyfx 1.1.0でサンプルを実行してみるも
>NameError: cannot initialize Java class javafx.scene.control.Pagination
で動かない。require 'jrubyfx'が失敗しているし、未経験の環境なので
追跡調査が大変そう。JDKのバージョンが悪いのかな?
パッケージングしたときのサイズ次第ではありかなと思っています
>Shoes
ダウンロードしてみましたが・・・これを単体で使うにはどうしたら良いんだ
>WSH+HTA+ActiveScriptRuby
ActiveScriptRubyのインストール作業を許容できればかなり魅力的な
プラットフォームですね。昔仕事でこの組み合わせを使おうかと考えたことが
あります。使えるコントロールこそ限られますが、IE準拠のUIで操作できる
メリットは大きいです
ぐぬぬ・・・これは昔使っていた1.8+wxRubyが楽なのかな・・・
言語の変更までするならPython+wxpythonあたりを考えていますが
PythonはBlenderのプラグインの開発でだいぶ苦労した経験が・・・
>>980
それは自分がランタイム類のインストールに抵抗感がある事が大きいです
特にインストールが必須な規模のアプリケーションならともかく、ちょっとした
ツール類で.NET FrameworkやJREのインストールを要求されると、棚上げする
ことがしばしばあります。宗教といわれればそうだと思います
0993デフォルトの名無しさん
2014/06/21(土) 16:39:44.46ID:gpWyDe0T0994デフォルトの名無しさん
2014/06/21(土) 16:51:23.35ID:yKtnF+AD0995デフォルトの名無しさん
2014/06/21(土) 17:45:29.63ID:2OQISpPs0996,,・´∀`・,,)っ-○○○
2014/06/21(土) 18:14:02.30ID:uJ2JJWZP50KBくらいのコンパクトなEXEが作れるの。
STLを入れるととたんに大きくはなるがそれでもexe単体で200KBくらい。
俺ならちょっとしたツールの圧縮ファイルで何MB〜何十MBもあるほうが引くけどね
Rubyで開発しようっていうほうが間違ってると思う。
0997966
2014/06/21(土) 19:43:11.60ID:sNSBg/lNWin7は.NET Framework2.0/3.0/3.5が入っている
Win8は.NET Framework4.5が入っていて.NET Framework3.5は無効化されている
今回の件で調べていてRubyのGUIツールキットが死屍累々な状況が今後も
改善しない場合は、pypy+Topaz+wxpythonは有望かもしれないと思いました
現状ではTopazが実用に耐えるレベルになっていないようですが
>TideSDK
落としてみたら1.8ベースでした・・・
>>996
GUIだけならその通りかもしれませんが、最近はメモリ保護付きの言語にどっぷりなので
ポインタ周りでミスる→メモリを破壊のコンボを発生させて頭を抱える自信があります
あとRubyのArray、Stringあたりが便利すぎる
ちなみにその昔wxRuby0.6.0でGUIツールを作ったときの.exeのファイルサイズはupx併用で
約1.6MByteでした
0998デフォルトの名無しさん
2014/06/21(土) 21:01:17.29ID:tQVBpUxD0999デフォルトの名無しさん
2014/06/21(土) 21:04:26.71ID:gpWyDe0T1000デフォルトの名無しさん
2014/06/21(土) 21:05:47.63ID:nSPSSkcc>自分が調べた結果では
>Win7は.NET Framework2.0/3.0/3.5が入っている
>Win8は.NET Framework4.5が入っていて.NET Framework3.5は無効化されている
Win7向けにビルドしたC#アプリを素のWin8へインストールして実行しようとすると、
.NET Frameworkのバージョン不一致で起動すらできないってこと?
そうだとしたらWindowsは糞だけど、信じられんな
OSXならCocoaフレームワークが2つ前くらい迄なら、平気で実行できるのに
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。