Ruby 初心者スレッド Part 53
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/11/06(水) 21:52:55.22質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
RoRはスレ違いよ
前スレ
Ruby 初心者スレッド Part 52
http://toro.2ch.net/test/read.cgi/tech/1370530209/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0002デフォルトの名無しさん
2013/11/06(水) 23:19:23.870003デフォルトの名無しさん
2013/11/06(水) 23:21:12.730004デフォルトの名無しさん
2013/11/07(木) 07:50:07.680005デフォルトの名無しさん
2013/11/07(木) 21:03:53.94変更するにはどうすればいいのでしょうか?
具体的に言うと、「webrickのstartとtkのmainloopを同時に実行して、お互いに
同じデータを共有する1つのプログラムを組みたい」です
キーワードかヒントをお願いします
0006デフォルトの名無しさん
2013/11/07(木) 21:12:49.62Xxx/TkによるHTTPクライアントからアクセスしたいのか、それとも
(2) WeBrickでHTTPサーバを立て、その運用操作(起動/停止/設定など)の
UIをRuby/Tkで実現したいのか、
(3) その他
どれよ?
0007デフォルトの名無しさん
2013/11/07(木) 21:22:31.84コマンド入力画面が、ズレて表示されてます。
助けておくんなせえ。
0008デフォルトの名無しさん
2013/11/07(木) 21:27:07.87それじゃさっぱりわかんない
再現手順を書くかスクリーンショットでも撮って貼っておくれやす
0009デフォルトの名無しさん
2013/11/07(木) 21:57:52.06今のところ(2)の方で考えています
(1)でHTTPサーバ経由で運用操作できる機能を付けるって方法も
あるのか、普通はその方がリモート操作も含め応用利きそうですね
運用操作時はSSLにすれば安心だし
0010デフォルトの名無しさん
2013/11/07(木) 23:11:39.88案(2)の基本的な流れ
(a) 起動したメインスレッド様々な初期化(設定ファイル読み込み等)
(b) メインスレッドでWeBrick向けのマスタスレッドを1個生成
(c) Ruby/Tkのウィジェットを組み立て、ループに入る
(d) (b)で生成されたマスタスレッドでWeBrickを起動(start)しループに入る
この後、HTTPリクエストを受け付けるたびにスレーブスレッドが生成される
スレッド構成を以下にまとめる:
・メインスレッド(1個):Ruby/Tkのメインループ
・マスタスレッド(1個):WeBrickのメインループ
・ワーカスレッド(n個):HTTPリクエスト処理
課題はいくつかあるけど、最も重要なのが>>5にもある「共有データ」の排他制御
・間違っても、ワーカスレッドから直に(メインスレッドが管理する)Ruby/Tkの
ウィジェットに描画操作をしてはいけない
・ワーカスレッドで発生した描画イベントは、必ずスレッドセーフな共有オブジェクトに
書き込み、それをメインスレッドで読み取って描画するように設計する
・メインスレッドでは、Tkの提供するタイマ機能を利用して、定期的に
共有オブジェクトへの追記の有無を確認する(いわゆる「ポーリングをかける」)
0011デフォルトの名無しさん
2013/11/08(金) 21:19:44.31gem SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
って表示されるようになってアップデートもパッケージのインストールもなにもできません
昨日まではできてて設定とかなんもいじってないです
今日急につながらなくなりました
対策教えてください
0012デフォルトの名無しさん
2013/11/08(金) 21:21:54.81Updating rubygems-update
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certif
icate verify failed (https://rubygems.global.ssl.fastly.net/gems/rubygems-update
-2.1.10.gem)
WindowsのRubyInstaller2.0.3を使ってます
0013デフォルトの名無しさん
2013/11/08(金) 21:29:09.310014デフォルトの名無しさん
2013/11/09(土) 08:14:50.31Ruby/Tkのメインループスレッド外のスレッドからの処理依頼は
自動的にメインループスレッドに送ってシリアライズして実行するように裏で管理してるはず。
依頼した側のスレッドは、Ruby/Tkの処理完了まで待ちに入って結果を受け取る仕組み。
でなきゃ、irbでThread.new{Tk.mainloop}してインタラクティブにウィジェット操作なんてできない。
んなわけで、描画操作についてはスレッドセーフなはずなので、
ワーカスレッドから直に呼んでも問題ないし、ポーリングのような面倒な手間も不要じゃないかな?
共有データがどんなものでどんな処理が必要なのかは知らないけど、
処理時間がかからないものなら、TkVariable#traceの他、色々とあるコールバック処理を使って
Ruby/Tkのメインループスレッドに処理を任せるって手もあるかも。
排他制御を考える必要がなくなる分、少し楽ができるかもしれないけど、
時間がかかる処理だとGUIの反応が鈍くなるかもしれない点は要注意かな。
必要時以外はGUIを非表示にしておいて共有データ処理に専念させ、
GUI反応が鈍るのを隠すというのも一つの考えかもしれないね。
0015デフォルトの名無しさん
2013/11/10(日) 12:17:20.44require 'date'
d = DateTime.now
d2 = d.new_offset(2)
p d2.to_s
って書いてみたんですが、UTCの時刻が表示されてしまいます
どうやって書くと良いか教えてください
0016デフォルトの名無しさん
2013/11/10(日) 12:52:10.63配列にくっついてる*は何を意味してるんですか
名前を教えてください
0017デフォルトの名無しさん
2013/11/10(日) 14:10:45.86↓の「最後の引数の直前に〜」ってところを参照。
ttp://docs.ruby-lang.org/ja/2.0.0/doc/spec=2fcall.html
関連して、メソッド定義の方 (可変長引数、rest 引数) も見ておくと良いと思われ。
↓の「仮引数の直前に〜」ってところを参照。
ttp://docs.ruby-lang.org/ja/2.0.0/doc/spec=2fdef.html#method
0018デフォルトの名無しさん
2013/11/10(日) 14:15:02.06日本時間の DateTime なら offset で 3/8(=9/24) が返ってくるよね。
ドキュメントには明示されていなかったような気がするがRationalなのだ。
d2 = d.new_offset(Rational(2, 24))
>>16
リテラルで言うと、 1,2,3 と書いたのと同じ扱いになる。
メソッドに引数を渡すときや、多重代入で使う。
ymd = [2013, 11, 10]
Date.new(ymd) => # エラー
Date.new(*ymd) => Date:2007-01-01
正式名称はないが、よく splat 演算子と呼ばれている。
0019デフォルトの名無しさん
2013/11/10(日) 15:02:45.94File.rename('a.txt', 'a/b/a.txt')
ってやってもFile.renameは再帰的に動作しないから例外が発生します
FileUtils.mkdir_pはディレクトリを再帰的に作れますがファイルを移動するわけでもないので用途が違います
こういう場合はどうやるのですか?
0020デフォルトの名無しさん
2013/11/10(日) 15:42:13.44なんかよくわからんが文字列なら通った
d2 = d.new_offset("+2")
>>18
「こんなこともあろうかと、2.1では有理数リテラルを用意しておいた」
か、どうかは知らないが
d2 = d.new_offset(2/24r)
で通った(要Ruby 2.1以上)
offsetがなんでRationalで返ってくるんだろう
これは、ドキュメントが悪いよなぁ
と、ri DateTime#new_offset してみたら
使用例では引数が文字列なのであった
------------------------------------------------------------------------------
d.new_offset([offset=0]) -> date
------------------------------------------------------------------------------
Duplicates self and resets its offset.
d = DateTime.new(2001,2,3,4,5,6,'-02:00')
#=> #<DateTime: 2001-02-03T04:05:06-02:00 ...>
d.new_offset('+09:00') #=> #<DateTime: 2001-02-03T15:05:06+09:00 ...>
0021デフォルトの名無しさん
2013/11/10(日) 16:35:49.79Dir.globとかDir::globって二種類の書き方があるんですけど
.と::どちらに合わせて書けばいいのでしょうか?
0022デフォルトの名無しさん
2013/11/10(日) 16:56:18.66ディレクトリ掘ってから移動するしかないんじゃない?
FileUtils.mkdir_p File.dirname(dst)
File.rename(src, dst)
再帰的にやる機能があるmkdir_pのほうが特殊といえば特殊。
基本的に、 unixの同名シェルコマンドを越える機能は再現してないと思う。
>>21
:: は C++ プログラマなどに馴染みがある記法でも使えるように
配慮してあるだけで、通常は . を使う。
要するに Dir オブジェクト(Classクラスのインスタンス)に対する
メソッド呼び出しなのだから。
0023デフォルトの名無しさん
2013/11/10(日) 17:38:18.82なるほど、勉強になりました
0024デフォルトの名無しさん
2013/11/11(月) 19:54:41.70リファレンスもっかい読みなおそう
0025デフォルトの名無しさん
2013/11/13(水) 16:56:51.43バージョンってどれが良いんでしょう?
1.8xや1.9xが現役の環境も多いみたいなのですが…
0026デフォルトの名無しさん
2013/11/13(水) 17:01:59.111.8はもう切り捨てられてるから覚えるだけ無駄
1.9やるなら2.0でも同じだし2.0のほうがいいよ
それに覚えたところですぐそれを仕事にするってわけじゃないならなおさら2.0からはじめるべきですよ
2.1もでるしね
0027デフォルトの名無しさん
2013/11/13(水) 17:47:54.07じゃあ2.0をインスコしてくるか…
0028デフォルトの名無しさん
2013/11/14(木) 01:41:10.740029デフォルトの名無しさん
2013/11/14(木) 12:43:49.51Gemだけ手動で入れなおしたいんですが
Gemってどこにありますか?
0030デフォルトの名無しさん
2013/11/14(木) 13:22:48.56http://rubyforge.org/projects/rubygems/
0031デフォルトの名無しさん
2013/11/14(木) 15:45:40.34リンク先のバージョンは1.8.25って書いてありますがこれgemのことでしょうか?
とにかSSLエラーでupdateすらできない状態です
0032デフォルトの名無しさん
2013/11/14(木) 15:50:20.980033デフォルトの名無しさん
2013/11/14(木) 15:53:55.47これを入れたらupdateすることができました
これでようやくWindowsでもgemが使えました
0034デフォルトの名無しさん
2013/11/14(木) 15:55:44.51なのでrubygems.orgからgemをダウンロードしてruby setup.rbすると新しいgemが入るのでそれで直ります
0035デフォルトの名無しさん
2013/11/14(木) 16:43:43.820036デフォルトの名無しさん
2013/11/14(木) 17:18:49.18ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE'
↓
"C:/Users/Luis/Code/openknapsack/knap-build/var/knapsack/software/x86-windows/op
enssl/1.0.0k/ssl/cert.pem"
gemにこのパスが埋め込まれてるから
0037デフォルトの名無しさん
2013/11/14(木) 17:53:06.04死ねwwwwwwwwwwwwwwwwwwwwwwww
死ねwwwwwwwwwwwwwwwwwwwwwwww
死ねwwwwwwwwwwwwwwwwwwwwwwww
ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ゴミゴミゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwww
ゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwwwwwwwww
死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwコラwwwwwwwwwwww
死ねコラゴミwwwwwwwwwwwwwwwwww
0038デフォルトの名無しさん
2013/11/14(木) 23:31:43.47最初に配列に読み込むとするじゃないですか? で、
f=File.open(hoge.txt)
f.each |line| do
word[i] = line
i = i+1
end
とかしますよね。でもなんか配列で添字をいちいち1足したりするのって
なんかカッコ悪いですよね。
もっとRubyっぽいかっちょいいやり方で代入できないんですか?
やっぱりいちいち添字を増やして行く原始人みたいなやり方しなきゃダメですか?
0039デフォルトの名無しさん
2013/11/14(木) 23:34:21.830040デフォルトの名無しさん
2013/11/14(木) 23:47:27.240041デフォルトの名無しさん
2013/11/15(金) 00:14:45.300042デフォルトの名無しさん
2013/11/15(金) 00:25:30.140043デフォルトの名無しさん
2013/11/15(金) 00:36:01.530044デフォルトの名無しさん
2013/11/15(金) 00:36:33.45ありがとうございます
0045デフォルトの名無しさん
2013/11/15(金) 00:42:55.87openしっぱなしはやめて
0046デフォルトの名無しさん
2013/11/15(金) 00:55:27.68"foo\n\n\n\n" みたいなデータだと、後ろの改行達が全て無くなってしまうからキモい。
004746
2013/11/15(金) 00:56:48.11004846
2013/11/15(金) 00:58:44.050049デフォルトの名無しさん
2013/11/15(金) 01:10:06.18もっと精進せよ。
0050デフォルトの名無しさん
2013/11/15(金) 01:48:13.76それなら >>40でいいんじゃないの?
0052デフォルトの名無しさん
2013/11/15(金) 10:48:15.780053デフォルトの名無しさん
2013/11/15(金) 16:57:07.39.map(:chomp)
0054デフォルトの名無しさん
2013/11/15(金) 18:52:46.37io/consoleやio/console/sizeはうまくいきませんでした
0055デフォルトの名無しさん
2013/11/15(金) 20:31:18.810056デフォルトの名無しさん
2013/11/15(金) 21:36:35.36手元の辞書に /tʃɑmp|tʃɔmp/ とある。ちょんぷでいいんじゃね。
0057デフォルトの名無しさん
2013/11/16(土) 11:29:49.97ここの記事みてREXML使うべきか悩んでいるんですが
Ruby2.0になって改善されてませんかね?
0058デフォルトの名無しさん
2013/11/16(土) 12:14:53.91nokogiriもあるし
0059デフォルトの名無しさん
2013/11/16(土) 12:17:27.000060デフォルトの名無しさん
2013/11/16(土) 13:20:56.460061デフォルトの名無しさん
2013/11/16(土) 13:34:00.090062デフォルトの名無しさん
2013/11/16(土) 15:16:22.840063デフォルトの名無しさん
2013/11/16(土) 22:38:47.260064デフォルトの名無しさん
2013/11/16(土) 23:02:47.92このソースはもっと簡単になりますか?
a = []
open "hoge", "rb" do |f|
f.read(256).unpack "n128" do |i|
a.push i>>8
a.push i&0xff
end
end
p a
0065デフォルトの名無しさん
2013/11/16(土) 23:11:23.59buf.unpack("C*")
0066デフォルトの名無しさん
2013/11/16(土) 23:37:13.28p a
0067デフォルトの名無しさん
2013/11/17(日) 00:15:05.740068デフォルトの名無しさん
2013/11/17(日) 01:39:26.350069デフォルトの名無しさん
2013/11/17(日) 10:39:31.38byteで操作するメソッドがあったのですね。
もう少しがんばって探せばよかった。
>>67
2.0だとchars(とbytes)はobsoleteになってますね。
>>68
特異メソッドというのがよくわからないのでとりあえず保留してました。
勉強になりました。みなさんありがとう!
0070デフォルトの名無しさん
2013/11/17(日) 13:11:48.59ocraで作れる
0071デフォルトの名無しさん
2013/11/17(日) 13:19:23.290072デフォルトの名無しさん
2013/11/17(日) 14:30:47.430073デフォルトの名無しさん
2013/11/17(日) 22:13:39.75obsoleteはブロック指定時
0074デフォルトの名無しさん
2013/11/17(日) 23:45:21.680075デフォルトの名無しさん
2013/11/18(月) 00:51:52.15mode conとか呼び出してみるのはどうだろう
`mode con`.each_line.to_a[4][/\d+/].to_i
0076デフォルトの名無しさん
2013/11/18(月) 17:52:48.71できました!ありがとうございます
0077デフォルトの名無しさん
2013/11/19(火) 00:47:33.070078デフォルトの名無しさん
2013/11/19(火) 08:33:21.65死ねゴミw
0079デフォルトの名無しさん
2013/11/19(火) 10:27:43.14Rubyはコンパイル言語ではないのでCの様に最適化抑制は必要ないです
もう一つはCの様にプリミティブ型が無いので、全てのオブジェクトは内部的にはヒープ領域で確保した構造体がレシーバーとなり処理をしてると思います。そのため処理はアトミック(遅延代入などない)なことが保証される。
上記2点よりRubyではvolatileは仕様上必要ないのだと思います。
>>78
ちゃんとした説明もせず暴言を吐くのはやめましょうよ
0080デフォルトの名無しさん
2013/11/19(火) 10:54:42.09Fixnum とか FixedInt ってもうなくなったんだっけ
0081デフォルトの名無しさん
2013/11/19(火) 11:23:58.940082デフォルトの名無しさん
2013/11/19(火) 12:12:07.28Fixnum など小さいオブジェクト関しては参照に埋めこまれるのでヒープには置かれないと思うよ
0083デフォルトの名無しさん
2013/11/19(火) 17:39:11.24Floatの一部も埋め込まれる
0084デフォルトの名無しさん
2013/11/19(火) 22:07:33.28>> nil.object_id
=> 8
0085デフォルトの名無しさん
2013/11/19(火) 23:54:27.68なぜか?
0086デフォルトの名無しさん
2013/11/20(水) 02:52:48.15死ねwwwwwwwwwwwwwwwwwwwwwwww
死ねwwwwwwwwwwwwwwwwwwwwwwww
死ねwwwwwwwwwwwwwwwwwwwwwwww
ゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ゴミゴミゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwww
ゴミwwwwwwwwwwwwゴミゴミゴミwwwwwwwwwwwwwwwwww
死ねゴミwwwwwwwwwwwwwwwwwwwwwwwwコラwwwwwwwwwwww
死ねコラゴミwwwwwwwwwwwwwwwwww
0087デフォルトの名無しさん
2013/11/20(水) 03:06:36.71まずはCookieを消してみるとか。
0088デフォルトの名無しさん
2013/11/20(水) 10:06:48.540089デフォルトの名無しさん
2013/11/20(水) 16:56:30.00コマンドラインで設定したパラメータって配列に分解されてARGVに格納されますが、
文字列を、この仕組みで配列変数に変換する、何かうまいやり方ってありますでしょうか?
例えば、
str = "test1 test2 'test3 test4'"
これを、
strv = ["test1", "test2", "test3 test4"]
このようにしたいです( ' や " を考慮して配列に変換したいです)
0090デフォルトの名無しさん
2013/11/20(水) 16:59:14.11p ARGV
# ["1", "2 3"]
009189
2013/11/20(水) 17:23:02.18コマンドライン文字列がARGVに変換されるのと同じ仕組みを
rubyで実現したい、という意味です。
str.split(/\s+/) だと、' や " で囲まれた部分にスペースがあった際に、
期待する結果とならず、頭をひねっているところです…
0092デフォルトの名無しさん
2013/11/20(水) 17:41:52.88'a.rb 1 "2 3"'.shellsplit # => ["a.rb", "1", "2 3"]
クォートのバランスが取れてないと例外が出るので注意
'a "b'.shellsplit # => Unmatched double quote: "a \"b" (ArgumentError)
こんなライブラリあったのね
知らなかった
0094デフォルトの名無しさん
2013/11/20(水) 20:19:08.17CSVを読み込むのにも似てると思ったけど、それはそれであるんだね。
0095デフォルトの名無しさん
2013/11/20(水) 22:59:38.270096デフォルトの名無しさん
2013/11/22(金) 17:17:21.84わかってる人がわかってる人に向けて書いてる感じで
何であんなに尼の評価高いの?
0097デフォルトの名無しさん
2013/11/22(金) 17:18:32.250098デフォルトの名無しさん
2013/11/22(金) 17:53:18.95評価してるのが「判ってる人達」だからじゃね?
0099デフォルトの名無しさん
2013/11/22(金) 18:05:20.77それでいいんじゃないの?
いや読んだことないんだけどさ
ちょっと古いけど、今でも充分通じる?
0100デフォルトの名無しさん
2013/11/22(金) 18:11:08.470101デフォルトの名無しさん
2013/11/22(金) 18:25:03.500102デフォルトの名無しさん
2013/11/22(金) 19:27:05.790103デフォルトの名無しさん
2013/11/22(金) 21:18:18.83十分良本の部類に入ると思う
0104デフォルトの名無しさん
2013/11/22(金) 22:07:57.060105デフォルトの名無しさん
2013/11/22(金) 22:23:37.89"本書は、他言語でのプログラミング経験を持つ人を対象に、
Rubyの特徴、Rubyならではの方法や慣習について解説します。"
http://www.oreilly.co.jp/books/9784873113678/
0106デフォルトの名無しさん
2013/11/22(金) 22:25:46.85なんてつけるから紛らわしいんだよ
0107デフォルトの名無しさん
2013/11/22(金) 22:27:10.420108デフォルトの名無しさん
2013/11/22(金) 22:32:59.43チェックせずに自分に合わなくても文句は言えないだろう
0109デフォルトの名無しさん
2013/11/22(金) 22:55:53.760110デフォルトの名無しさん
2013/11/22(金) 23:04:00.02挫折したらもうRubyに関わろうとせんでしょ
011196
2013/11/22(金) 23:04:43.41それでもなお読み辛いってだけで
0112デフォルトの名無しさん
2013/11/23(土) 00:16:18.320113デフォルトの名無しさん
2013/11/23(土) 04:51:43.66たのしいRuby→パーフェクトRuby
の順に勉強するのがベストですか?
0114デフォルトの名無しさん
2013/11/23(土) 05:41:40.29たのしいRubyが一番初心者向けとは言われてるけど
結局Ruby熟練者が初心者目線で書こうとして
子供だましの説明に終始しててお茶を濁してる感じ
0115デフォルトの名無しさん
2013/11/23(土) 05:59:25.520116デフォルトの名無しさん
2013/11/23(土) 06:58:41.40http://www.amazon.co.jp/dp/4839917299
0117デフォルトの名無しさん
2013/11/23(土) 08:55:42.63本のタイトルは出版社が勝手に(売れそうなタイトルを)付ける、というのが出版業界のコレまでの常識。
0118デフォルトの名無しさん
2013/11/23(土) 12:32:02.830119デフォルトの名無しさん
2013/11/23(土) 12:32:06.52Ruby言語ミニマム→RubyAssociationのチュートリアルとか?
オブジェクト指向がわからないなら「オブジェクト指向でなぜつくるのか」
PythonとCommonLispの経験があればかなり楽そう
0120デフォルトの名無しさん
2013/11/23(土) 12:32:34.71業者の宣伝4ねよ
0121デフォルトの名無しさん
2013/11/23(土) 15:01:20.770122デフォルトの名無しさん
2013/11/23(土) 15:15:15.62たまげたぜ
0123デフォルトの名無しさん
2013/11/23(土) 16:16:17.04Javaでバリバリ設計してた人、
VBでペタペタ貼りつけてた人、
他言語経験者でひと括りにするのは無理があるんじゃないか。
0124デフォルトの名無しさん
2013/11/23(土) 16:37:56.42SinatraとPadrinoの違いがよくわからないのですが、どう違うのでしょうか?
0125デフォルトの名無しさん
2013/11/23(土) 16:45:09.10使ってもないのに質問するのはマナー悪いです
0126デフォルトの名無しさん
2013/11/23(土) 16:49:43.120127デフォルトの名無しさん
2013/11/23(土) 17:35:07.36ではSinatraを使い始めてから質問してみようと思います。
0128デフォルトの名無しさん
2013/11/23(土) 17:38:28.970129デフォルトの名無しさん
2013/11/23(土) 17:51:42.90ありがとうございます。
冷たくあしらわれて諦めていましたので助かりました。
そうすることによって何が便利になるのでしょうか?
SQLの接続が楽になるとかですか?
0130デフォルトの名無しさん
2013/11/23(土) 17:52:12.570131デフォルトの名無しさん
2013/11/23(土) 18:20:03.130132デフォルトの名無しさん
2013/11/24(日) 20:34:57.89Padrinoは構成の柔軟性がウリだが、逆に初心者にはどう構成するかを選ぶハードルがある
大人しくRails使っておいた方が無難
0133デフォルトの名無しさん
2013/11/28(木) 00:00:59.600134デフォルトの名無しさん
2013/11/28(木) 00:14:28.420135デフォルトの名無しさん
2013/11/28(木) 03:32:35.870136デフォルトの名無しさん
2013/11/28(木) 05:56:15.44WebProg 板の Rails スレなんてひどいもんだよ
0137デフォルトの名無しさん
2013/11/29(金) 00:45:07.420138デフォルトの名無しさん
2013/11/29(金) 01:08:30.09rand()で出た数字をif文で0.5以上、未満みたいに切り分けて1,0にするのが
良いのか、rand(3)にして1と0を取り出すのかどっちがより一様乱数に
近くなるんでしょうか?
0139デフォルトの名無しさん
2013/11/29(金) 01:14:14.450140デフォルトの名無しさん
2013/11/29(金) 01:14:22.45二つしか方法が選べないなら
前者の方がマシ
0141デフォルトの名無しさん
2013/11/29(金) 01:57:50.57Rubyは初めてか?
力抜けよ……
のほうが
0142デフォルトの名無しさん
2013/11/29(金) 02:09:31.10だめじゃないやり方よろ
0143デフォルトの名無しさん
2013/11/29(金) 02:15:35.370144デフォルトの名無しさん
2013/11/29(金) 04:15:24.540145デフォルトの名無しさん
2013/11/29(金) 08:51:52.290, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
これを0.5を境に大小にわけると6:5になる。つまり1/2とは程遠い。
一方rand(3)にした場合は、0から3未満の整数が出力されるので、1/2の
確率で1,0が得られる。
0146デフォルトの名無しさん
2013/11/29(金) 09:01:30.680147デフォルトの名無しさん
2013/11/29(金) 09:20:28.250-0.4999 : 0.5000-0.9999
0.4999 : 0.4999
1:1
と思うのだが何か間違ってるのだろうか?
c = {true=>0,false=>0}
10000000.times{c[rand<0.5] += 1}
a = c.values.reduce(:+)/c.values.size
puts ((c[true]-a)*100).abs.quo(a).to_f.to_s+'%'
0148デフォルトの名無しさん
2013/11/29(金) 09:22:05.69じゃ駄目なん?
0〜1未満が0
1〜2未満が1
だから一様だと思うけど
0149デフォルトの名無しさん
2013/11/29(金) 09:37:40.940150デフォルトの名無しさん
2013/11/29(金) 10:29:28.940.0 が出て来るのは見たことがない
0151デフォルトの名無しさん
2013/11/29(金) 15:53:11.390152デフォルトの名無しさん
2013/11/29(金) 17:17:46.380.5を正確に比較出来るのか?
0153デフォルトの名無しさん
2013/11/29(金) 17:37:59.90>>138 はそれよりも、もっと一様な乱数にする方法があるのか聞きたいのだろう
あまり数学はわからんのだけど
線形合同法とかの乱数だと特定のビットだけを抜き出すと周期が極端に短かったりする
らしいし
過去にコンシューマーゲームでタコな乱数の使い方してて、問題になったことがあったような
ま、Rubyはメルセンヌツイスタなので
ややこしく考えなくても
たいした問題は出ないのじゃないのかな
0154デフォルトの名無しさん
2013/11/29(金) 17:51:25.290155デフォルトの名無しさん
2013/11/29(金) 21:46:14.32カルドセプトの何作目かだったかな。
0156デフォルトの名無しさん
2013/11/29(金) 22:35:43.590157デフォルトの名無しさん
2013/11/29(金) 22:50:46.110158デフォルトの名無しさん
2013/11/30(土) 01:35:53.50こんな感じに入れてlist[ id1 ].eachで使えればいいんだけど
list = {
id1 => { instance1, instance2, instance3, … },
id2 => { instance1, instance2, instance3, … },
}
0159デフォルトの名無しさん
2013/11/30(土) 02:14:06.45id1 => [ instance1, instance2, instance3, … ],
id2 => [ instance1, instance2, instance3, … ],
}
でいいんじゃないの?
0160デフォルトの名無しさん
2013/11/30(土) 05:01:35.970161デフォルトの名無しさん
2013/11/30(土) 11:49:31.840162デフォルトの名無しさん
2013/12/01(日) 20:08:49.970163デフォルトの名無しさん
2013/12/03(火) 02:15:10.880164デフォルトの名無しさん
2013/12/03(火) 03:36:42.400165デフォルトの名無しさん
2013/12/03(火) 03:37:21.500166デフォルトの名無しさん
2013/12/03(火) 03:42:44.76argument 引き数
parameter パラメーター
variable 変数
0167デフォルトの名無しさん
2013/12/05(木) 20:50:55.920168デフォルトの名無しさん
2013/12/05(木) 22:24:00.14〜ここ〜
def method
end
〜ここ〜
end
Rubyのクラスでは、クラスのメソッド以外のところはいつ実行されるのでしょうか?
class Klass
@x = "Hello"
def method
p @x
end
end
このコードは@xがnilのままです
JavaとかC#だとクラスの外に書いたものはコンストラクタの前後で実行されるのですが・・・
0169デフォルトの名無しさん
2013/12/05(木) 22:31:52.80クラスがパースされたときに実行される
メソッドの外と中じゃselfが違うから@xは別のものを指す
class A
p self
def b
p self
end
end
A.new.b
=>
A
#<A:0x401bfb44>
0170デフォルトの名無しさん
2013/12/05(木) 23:43:15.61ありがとうございました
0171デフォルトの名無しさん
2013/12/05(木) 23:48:17.310172デフォルトの名無しさん
2013/12/06(金) 00:40:22.55class A
@x = 1
def self.b
p @x
end
end
A.b # => 1
もっとも、この例の場合ならクラス変数使った方がいいだろうけど
0173デフォルトの名無しさん
2013/12/06(金) 01:15:01.130174デフォルトの名無しさん
2013/12/06(金) 12:40:56.58一時間ごとのデータが入ったテキストファイル読み込んで、年、月、日、日平均値、日最大値をファイルに出力したいです
ファイルは年、月、日、時刻、人数でタブ区切りされていて、約50万行あります
1-12月、1-31日、1-24時のデータです
awkでかけたのですが、処理速度が遅くて困っております
0175デフォルトの名無しさん
2013/12/06(金) 13:26:15.55解決方法をレスする前に、2つ質問がある
Q1. データファイルは時系列の順にソートされているか?
=> もしソートされているなら、日付が変化した時点で集計できるから、
処理速度が遅いのは単なるCPU/IO処理能力不足であると判断できる
もしソートされていないのなら、
ファイルを最後まで読み込まなければ集計処理を開始できないから、
バッファ上に集計カウンタを設けなければならない
Q2. プログラム実行中にスワップは多発しているか?
=> もしQ1.のバッファをメモリ上に設け、かつデータの分布が大きいのなら、
実メモリの不足によるスワップの多発が性能劣化の原因となっている可能性が高い
0176デフォルトの名無しさん
2013/12/06(金) 14:57:12.46Q1 時系列順にソートしてあります
Q2 それほどおおくありません
0177デフォルトの名無しさん
2013/12/06(金) 16:21:36.11データが約50万件ということは約60年分のデータということ?
0178デフォルトの名無しさん
2013/12/06(金) 17:50:52.67いえ、約50年分です
0179175
2013/12/06(金) 22:27:21.51入力データがソートされていて、なおかつプログラムが(>>175で書いたように)
前回処理した行(レコード)日付との違いを契機に日毎の集計処理を実行しているのなら、
ただ単にCPUやI/Oの処理能力が不足しているのだと思う
しかも単なる集計であって複雑な計算をしているわけではないみたいだから、
性能ボトルネックはCPUよりもI/Oにある可能性が高いだろう
これは、awk を Ruby へと、あるいはたとえC言語へと書き換えたとしても、
その労力に見合った性能改善は期待できないことを意味する
I/Oの性能改善方法は、たとえばHDDをSSDへ置き換えるのが現実的かつ効果的だろう
0180デフォルトの名無しさん
2013/12/06(金) 22:52:03.35でも、そろそろ新しい言語を学んでみようかなと思ってたので、
もしよろしかったらどなたかプログラム書いていただけませんか
手順でもいいので
0181デフォルトの名無しさん
2013/12/06(金) 22:56:55.89まずは自分で書こう
それを添削してもらった方が身につく
0182デフォルトの名無しさん
2013/12/06(金) 23:21:17.40awk のコード貼ったらいいじゃない
0183デフォルトの名無しさん
2013/12/06(金) 23:46:09.490184デフォルトの名無しさん
2013/12/07(土) 00:37:26.73ただしきちんとawkスクリプトとして完結していることが条件
シェルスクリプトからawkをパイプで呼んでるとかだとアホみたいに遅い
これはawkが悪いんじゃないんだけども
とりあえず>>182に一票
0185デフォルトの名無しさん
2013/12/07(土) 01:18:47.00それが原因ですかね
プログラムはこれです
http://ideone.com/rKMwoE
これにうるう年などの日にちの考慮や、最大値と最低値がでた時刻も
だす予定なのですが、それ以前に処理が遅すぎるのでとまってます
人数のエラー値は99999で、もし一時間でもエラーがあったら平均値、最大値、最小値は99999を出すことにしてます
つたないプログラムですが、ご助言お願いします
0186デフォルトの名無しさん
2013/12/07(土) 01:29:54.240187デフォルトの名無しさん
2013/12/07(土) 02:56:12.29最初の4重のforは、シェルスクリプト?
だったら、forは遅い。確かforは、do-done間を、
すべて別のプロセスを立ち上げて、実行するんじゃない?
1行ずつのループ処理で、5千行までなら、whileを使う
(forは遅いので、ダメ)
2万行以上なら、sed、awk、perlを使う
10万行のループ処理にかかる時間は、whileは5秒、forは9分
それらを、awkとperlに書き直せば、0.1秒
なぜシェルスクリプト言語で大規模アプリが作れないのか
ttp://engawa.2ch.net/test/read.cgi/linux/1369567357/41
0188デフォルトの名無しさん
2013/12/07(土) 08:55:47.86なんのためにそのリンク貼ったのか理解に苦しむ
0189デフォルトの名無しさん
2013/12/07(土) 10:28:33.490190デフォルトの名無しさん
2013/12/07(土) 11:55:25.96>「UNIX シェルスクリプト・コマンドブック 第2版」 山下哲典、2012
>この本は良書です。この本によると、
の部分であって
あえてそっちをカットして
しかもリンク先見れば済むのに
本文をコピペして
色々ちぐはぐだぞ
0191デフォルトの名無しさん
2013/12/07(土) 15:34:11.86http://codepad.org/k3XIui1b
0192デフォルトの名無しさん
2013/12/07(土) 19:41:10.74ありがとうございます。
ところどころわからないとこあるんですが、独学してみます。
同様な処理を今後していくので、非常に助かります。
皆様、どうもありがとうございました。
0193デフォルトの名無しさん
2013/12/08(日) 02:21:18.35嫌いじゃない
0194デフォルトの名無しさん
2013/12/08(日) 05:17:28.34「否定の分岐はunlessだろ」などと枠に嵌めて考えるのではなく、判断のしやすさと読み下しやすさを優先するべき
0195デフォルトの名無しさん
2013/12/08(日) 11:12:24.37:&というシンボルのprocオブジェクトを渡してるってことですかね。。
:&が組み込みシンボルっぽいかなあと思ってるのですが、記号文字を検索しようとしても
なかなかヒットしませんね・・・
0196デフォルトの名無しさん
2013/12/08(日) 11:22:06.03Symbol#to_proc を参照
0197デフォルトの名無しさん
2013/12/08(日) 11:26:07.06シンボルに前置&をつけると、to_procが呼び出されるってやつですよね。
その使い方に慣れていないせいで、組み合わされた&に混乱していたのですが、
冷静に考えてみると二項演算子&を渡したい操作だったようです。
0198デフォルトの名無しさん
2013/12/08(日) 11:27:19.030199デフォルトの名無しさん
2013/12/08(日) 12:08:47.71個人的には ! を使うときは !foo ではなく ! foo と書くようにしている。
0200デフォルトの名無しさん
2013/12/08(日) 20:38:10.75http://engawa.2ch.net/test/read.cgi/poverty/1386476617/
0201デフォルトの名無しさん
2013/12/09(月) 17:08:45.34久々にCで書いた時、switch文のbreak;忘れに一時間くらい気づかず
ずっと悩んでしまった。
辛い。
0202デフォルトの名無しさん
2013/12/09(月) 17:19:15.230203デフォルトの名無しさん
2013/12/10(火) 01:21:29.51マイグレーションで詰まってしまいました
rake db:migrate を実行しようとすると'rake/rdoctask' is obsolete and no longer supported. Use 'rdoc/task' (available in RDoc 2.4.2+) instead.
となりrakeのバージョンが新しすぎるとのことなので一度アンインストールして0.8.7を再インストールしました
すると今度はCould not find rake-10.1.0 in any of the sources
となってダメでした
railsのバージョンは3.0.5です
0204デフォルトの名無しさん
2013/12/10(火) 01:46:39.69アドバイス頂けたら嬉しいです
よろしくお願いします
0205デフォルトの名無しさん
2013/12/10(火) 07:11:54.35Railsが古い
今どき3.0で勉強するのはおすすめしない
4.0か、最低でも3.2でやるべき
0206デフォルトの名無しさん
2013/12/10(火) 08:14:28.62いつまでも rake 10を使おうとするぞ。
0207デフォルトの名無しさん
2013/12/15(日) 00:21:57.99なもので、ビックリすることができるようになる。」って書いてあるけど
どんなビックリするようなことができるの?
0208デフォルトの名無しさん
2013/12/15(日) 00:22:47.97http://toro.2ch.net/test/read.cgi/tech/1382307475/153
153 名前:デフォルトの名無しさん[sage] 投稿日:2013/12/14(土) 12:19:00.50
メタプログラミングRubyの表紙に「メタプログラミングは魔術みたい
なもので、ビックリすることができるようになる。」って書いてあるけど
どんなビックリするようなことができるの?
0209デフォルトの名無しさん
2013/12/15(日) 00:59:09.08なもので、ビックリすることができるようになる。」って書いてあるけど
どんなビックリするようなことができるの?
0210デフォルトの名無しさん
2013/12/15(日) 01:29:35.16メタプログラミングRubyの表紙に「メタプログラミングは魔術みたい
なもので、ビックリすることができるようになる。」って書いてあるけど
どんなビックリするようなことができるの?
154 デフォルトの名無しさん [sage] 2013/12/14(土) 12:22:45.87 ID: Be:
乾電池がお尻の穴に入ります
155 デフォルトの名無しさん [sage] 2013/12/14(土) 12:25:58.56 ID: Be:
それは誰でもやっていることで、ビックリするようなものではない
156 デフォルトの名無しさん [sage] 2013/12/14(土) 12:26:57.60 ID: Be:
正規表現のメタ文字に * があるのはそういうことだったんですね(カンペ棒読み)
157 デフォルトの名無しさん [sage] 2013/12/14(土) 12:52:39.63 ID: Be:
プログラミングできなくても乾電池はお知りの中に入るだろ
っていうか液漏れしたら命に関わるからやるな
0211デフォルトの名無しさん
2013/12/15(日) 01:34:58.71Rubyでないとできんの?
0212デフォルトの名無しさん
2013/12/15(日) 01:38:32.270213デフォルトの名無しさん
2013/12/15(日) 02:34:48.750214デフォルトの名無しさん
2013/12/15(日) 12:56:22.15Lispやってこい
0215デフォルトの名無しさん
2013/12/15(日) 14:34:04.15簡単に言うとプログラムのコードを実行中に覗き見るような行為が可能になる。
ルービー以外の言語でもできるけど、昔の言語はできなかった。
0216デフォルトの名無しさん
2013/12/15(日) 18:26:54.660217デフォルトの名無しさん
2013/12/16(月) 00:46:23.60これでxに配列が普通に代入されるんですが、この場合*はパーサーにはどう解釈されるのでしょうか?
nilが*を実行してるわけではないですよね?
0218デフォルトの名無しさん
2013/12/16(月) 01:41:58.680219デフォルトの名無しさん
2013/12/16(月) 06:03:02.62splatだと思う
直後の配列を展開し順にメソッドの引数として扱う
irb> a = 1,2
irb> p a
[1, 2]
0220デフォルトの名無しさん
2013/12/16(月) 10:26:09.180221デフォルトの名無しさん
2013/12/16(月) 19:21:19.920222デフォルトの名無しさん
2013/12/16(月) 23:45:06.95ありがとうございました
0223デフォルトの名無しさん
2013/12/17(火) 01:02:27.941.9以降消えたリポジトリやソースもあります。rubyから手を引いた人も多いんでしょう。
コア部分は古いバージョンや互換性は大切しないといけないと思います。
新しいバージョンを追いすぎるのも疑問。経済の先行の見通しが不安であるのに、いつまでも
コミュニティベースのオープンソースな体制は維持できないかもしれませんが。
肥大化したLinuxカーネルだって高齢化と経済危機で終わるかもしれませんよ。
0224デフォルトの名無しさん
2013/12/17(火) 01:30:45.420225デフォルトの名無しさん
2013/12/17(火) 01:36:46.15あとはgithubとかgoogle codeとかと競合する部分はそちらへどうぞ的な
0226デフォルトの名無しさん
2013/12/17(火) 03:22:34.61http://status.rubygems.org/
gemコマンドの参照先もrubygems.orgに何年も前からなっている
もしrubyforgeを紹介しているサイトや書籍があるなら、その記述はおそろしく古い
rubygems.orgにはgemコマンド用の配布ファイルだけ置いて、バグトラッキングや開発版関係はgithubに置くのがトレンドではある
0227デフォルトの名無しさん
2013/12/17(火) 03:31:11.32他のレポジトリに比べて何か特にいいところがあるの?
0228デフォルトの名無しさん
2013/12/17(火) 03:41:36.24あなたが書き捨て以上のプログラムを作ったことがあるならたぶんわかります
そうじゃないならそもそも必要ないしわけわかんなくなるので、必要になるまで遠巻きに眺めておくのが賢明
0229デフォルトの名無しさん
2013/12/17(火) 04:13:27.09「なんか流行ってるから」で手を出してもなにが楽しいんだかさっぱりわからん損した、ということが多々
0230デフォルトの名無しさん
2013/12/17(火) 04:22:10.34ふぉーくとぷる
0231デフォルトの名無しさん
2013/12/17(火) 04:26:41.990232デフォルトの名無しさん
2013/12/17(火) 04:43:45.75どやぁ
0233デフォルトの名無しさん
2013/12/17(火) 08:24:24.72人が集まり出すと人が集まる。
0234デフォルトの名無しさん
2013/12/17(火) 09:05:06.90require_relative で取り込んだファイル内にあるクラス定義の
一覧を取得することはできますでしょうか?
例えば,
---- lib/c1.rb ----
class C1; end
-------------------
---- lib/c2.rb ----
class C2; end
-------------------
みたいになっていて,
Dir::glob("lib/*.rb") do |rs|
require_relative rs
何か魔法
end
みたいなことをすると [C1, C2] が得られる,みたいなことをしたいのです。
0235234
2013/12/17(火) 09:07:16.74クラスメソッドを順に自動的に呼んで行きたいのです。C1.test; C2.test; ...
みたいにです。
0236デフォルトの名無しさん
2013/12/17(火) 11:18:50.92gitとかまるで必要ない日曜プログラマだけど、githubで皆さんのソースコードを検索するためにアカウント登録してますん
0237デフォルトの名無しさん
2013/12/17(火) 13:00:39.70他のリポジトリって何?
多分、目的の違うものを比べようとしてるんだろ。
0238デフォルトの名無しさん
2013/12/17(火) 13:05:21.10A 目的です
初心者に対する質問は全部これでいいなw
0239デフォルトの名無しさん
2013/12/17(火) 13:15:54.080240デフォルトの名無しさん
2013/12/17(火) 15:33:11.47X.to_jsonだと更にエスケープ文字が増えてJsonとして読み取れませんでした。
MySQLからデータを取得し、取得したデータは現在hash型です。
これを個々に変数に入れて文字列にキャスト。
繋げて1つの文字列(Json)にしているところでJsonのKEYとVALUEはダブルクォーテーションで括る必要があるので
括るのですが、出力結果を見ると\で勝手にエスケープされます。
で、エスケープ文字を置換で消そうと思っているのですが、上手くいきません。ご教示願います。
http://ideone.com/ge5WXB
0241デフォルトの名無しさん
2013/12/17(火) 16:23:42.74puts json_data
0242デフォルトの名無しさん
2013/12/17(火) 18:31:25.24ファ!?
マジで上手く取れた…
putsって何だよコレ…最後に改行コード入れるって説明しかないのに、何でJsonで返すって分かったんですか?
そーゆーモノって事なんですかね?
0243デフォルトの名無しさん
2013/12/17(火) 19:57:46.25このぶんだと他の基本知識も危うそう
0244デフォルトの名無しさん
2013/12/17(火) 20:52:13.76inherited メソッドについて調べてみるといいかも。
0245デフォルトの名無しさん
2013/12/17(火) 21:02:51.770246234
2013/12/17(火) 21:12:56.07うおーできました! 素晴らしすぎる!! Ruby万歳!
inherited は Classクラスのメソッド...なるほど。
クラスに関係した悩みについては,Classクラスをあたってみれば
良かったのですね。勉強になりました。
0247デフォルトの名無しさん
2013/12/17(火) 21:16:58.95作ればある!
0248デフォルトの名無しさん
2013/12/17(火) 21:24:06.89Rubyでの仕事の作り方を教えてください。
0249デフォルトの名無しさん
2013/12/17(火) 21:45:34.86> putsは普通の出力でpはデバッグ用出力だからだよ
どこに書いてありますか?
> このぶんだと他の基本知識も危うそう
Ruby歴2日目です
0250デフォルトの名無しさん
2013/12/17(火) 21:53:24.44福祉大国の北欧にコミッタが居るので、流出は避けられない
0251デフォルトの名無しさん
2013/12/17(火) 22:47:53.58Ruby 1.9.3
文字列の値として日本語と簡体字が混じった
http://i.imgur.com/lxu8Vtu.png
https://docs.google.com/document/d/19DWxKuHLICyFS62wEYeVqro9l8h6Sx-EumqtdLnmyNs/edit?usp=sharing
このような文字列を使いたいのですが良い方法はないでしょうか
0252デフォルトの名無しさん
2013/12/17(火) 22:49:53.33Unicode 使えばいいんじゃないの?
0253デフォルトの名無しさん
2013/12/17(火) 22:59:14.20調べても文字コードの指定にUnicodeがなかったのですが
http://d.hatena.ne.jp/vividcode/20110120/1295542000
ここに書かれている方法を使うといった意味でしょうか
http://bitex-cn.com/search_result.php?keywords=%E6%88%91%E7%88%B1%E4%BD%A0
このようなサイトのソースを見てもcharset=utf-8となっていたので
文字セットをどうにかすれば使えるのかなとも思ったのですが
0254デフォルトの名無しさん
2013/12/17(火) 23:01:15.190255デフォルトの名無しさん
2013/12/17(火) 23:54:11.98Hoge.new
違いはなんですか?
定数の呼び出しは::だけですが、クラスメソッドはどうして両方で呼べるのでしょうか
0256デフォルトの名無しさん
2013/12/18(水) 00:00:50.25スコープ区切りが :: でメソッド呼び出しが .
クラスメソッド呼び出しに :: が使えるのは、C++がまだ活気があった頃の名残。
0257デフォルトの名無しさん
2013/12/18(水) 12:28:46.290258デフォルトの名無しさん
2013/12/18(水) 18:47:43.280259デフォルトの名無しさん
2013/12/18(水) 18:53:03.90あれで完全にC/C++の息の根が止まった
0260デフォルトの名無しさん
2013/12/18(水) 19:54:11.370261デフォルトの名無しさん
2013/12/18(水) 20:19:10.370262デフォルトの名無しさん
2013/12/18(水) 20:36:19.730263デフォルトの名無しさん
2013/12/18(水) 20:45:26.68それら全てにアクセスする繰返し文を書く方法が分かりません…。
for文を入れ子にすればいいのは何とか分かりますが、ハッシュのキーや値の取り方が分かりません。
ご教示願います。
0264デフォルトの名無しさん
2013/12/18(水) 21:35:10.24こういうこと?
0265デフォルトの名無しさん
2013/12/18(水) 23:13:09.36誰も使わないだろうけど!
0266デフォルトの名無しさん
2013/12/18(水) 23:16:14.970267デフォルトの名無しさん
2013/12/18(水) 23:27:16.740268デフォルトの名無しさん
2013/12/18(水) 23:52:36.690269デフォルトの名無しさん
2013/12/19(木) 00:05:04.250270デフォルトの名無しさん
2013/12/19(木) 00:15:42.81すみませんもう少しヒントをください
fastはocraのオプションですか?
それともRuby自体の?
0271デフォルトの名無しさん
2013/12/19(木) 09:58:52.91超絶技巧超多々謝謝!!
0272デフォルトの名無しさん
2013/12/19(木) 11:15:43.30mrubyで動いてたんだろうな
きっと
0273デフォルトの名無しさん
2013/12/19(木) 11:58:41.06ttps://www.ruby-lang.org/ja/news/2013/12/17/maintenance-of-1-8-7-and-1-9-2/
バイナリ配布はしないし"公式"サポートもしないが、
Ruby1.8.7と1.9.2のソースコードレベルでのセキュリティフィックスは協力者のおかげで半年間だけ継続される
使いたい人は自力でビルドして使ってくれ、でもなるべく早めに2.0以降に移行しに行こうねというお話
0274デフォルトの名無しさん
2013/12/19(木) 12:16:15.580275デフォルトの名無しさん
2013/12/19(木) 17:33:12.270276デフォルトの名無しさん
2013/12/19(木) 22:55:56.67rubyがインストールされていない環境で動作可能な実行ファイルを作成するものって
何かないでしょうか?
0277デフォルトの名無しさん
2013/12/19(木) 23:38:55.530278デフォルトの名無しさん
2013/12/19(木) 23:45:29.440279デフォルトの名無しさん
2013/12/19(木) 23:55:37.88作ってはどうでしょう。
0280デフォルトの名無しさん
2013/12/20(金) 01:02:10.82例:
a = [2 , 3 , 5 .... 99]
b = [1 , 4 , 6 ... 100]
0281デフォルトの名無しさん
2013/12/20(金) 01:04:36.190282デフォルトの名無しさん
2013/12/20(金) 01:06:20.58依存ライブラリ全部入れてパッケージ作ればいいだけだが
yumやhomebrewみたいなパッケージシステムが用意されてあるわけだからそれ使えばよくね
必要ないから存在しないわけでおまえの考えが根本的に間違ってる気がする
0284デフォルトの名無しさん
2013/12/20(金) 01:11:35.01(1..100).to_a.shuffle.take(50)
0285デフォルトの名無しさん
2013/12/20(金) 02:03:49.64b = a.sample(50)
a -= b
0286デフォルトの名無しさん
2013/12/20(金) 08:29:59.74http://docs.ruby-lang.org/ja/1.9.2/class/Array.html
[]
new
try_convert
正しくはクラスメソッドじゃないんですか?
0287デフォルトの名無しさん
2013/12/20(金) 08:59:56.210288デフォルトの名無しさん
2013/12/20(金) 12:27:58.100289デフォルトの名無しさん
2013/12/20(金) 12:48:07.28Rubyにはクラスの特異メソッドとインスタンスの特異メソッドがあって、前者が通称クラスメソッドなんですね
ありがとうございました
0290デフォルトの名無しさん
2013/12/20(金) 14:52:23.46a = [*1..100]
b = []
50.times {|i| b << a.delete_at( rand(100-i) ) }
b.sort!
0291デフォルトの名無しさん
2013/12/20(金) 15:58:50.360292デフォルトの名無しさん
2013/12/20(金) 21:04:28.96クラスの特異メソッドではなく、Classクラスのインスタンスの特異メソッド
0293デフォルトの名無しさん
2013/12/20(金) 22:08:42.78クラスってなんですか?
0294デフォルトの名無しさん
2013/12/20(金) 22:29:17.050295デフォルトの名無しさん
2013/12/20(金) 22:57:19.97過疎地でもなければ小学校でクラスに分けられたのではないか。
0296デフォルトの名無しさん
2013/12/21(土) 01:49:58.790297デフォルトの名無しさん
2013/12/21(土) 06:47:09.100298デフォルトの名無しさん
2013/12/21(土) 12:38:07.29仕事の内容毎に、部署を作るようなもの
ゲーム作るとして、味方キャラを制御するクラス、敵キャラ制御のクラス、画面表示やエフェクト制御のクラス…て感じで担当分けたりする
全部ごちゃ混ぜだと管理大変だから
0299デフォルトの名無しさん
2013/12/21(土) 12:43:05.170300デフォルトの名無しさん
2013/12/21(土) 12:46:16.620301デフォルトの名無しさん
2013/12/21(土) 16:58:51.31物じゃなくて仕事ごとに分けているんですか。
ruby使っててもオブジェクト指向使わない人もいるんですね。
0302デフォルトの名無しさん
2013/12/21(土) 17:05:12.600303デフォルトの名無しさん
2013/12/21(土) 19:30:25.170304デフォルトの名無しさん
2013/12/21(土) 19:53:02.17複数行ならdo end
10.times.countのようにdoの前に動詞がくるなら複数行でも{}
0305デフォルトの名無しさん
2013/12/21(土) 20:47:05.360306デフォルトの名無しさん
2013/12/21(土) 20:54:00.48"a+"
"w+"
は初期化してから書くかファイルの末尾から書くかの違いとして
"+r"
これはなんですか?
0307デフォルトの名無しさん
2013/12/21(土) 22:02:31.28アホだけど理解出来ました
0308デフォルトの名無しさん
2013/12/21(土) 22:20:02.700309デフォルトの名無しさん
2013/12/22(日) 02:00:52.30ファイルの内容を保持したまま読み書きとか上書きするのに使う。
irb(main):001:0> File.read "hoge"
=> "foobar\n"
irb(main):002:0> File.open("hoge", "r+") {|f| f.write "baz" }
=> 3
irb(main):003:0> File.read "hoge"
=> "bazbar\n"
irb(main):004:0> File.open("hoge", "r+") {|f| f.seek 3; f.write "qux" }
=> 3
irb(main):005:0> File.read "hoge"
=> "bazqux\n"
テキストファイルだとあまり御利益ないかもしれないけど、
固定長バイナリファイルの操作などでは使い出があると思う。
0310デフォルトの名無しさん
2013/12/22(日) 02:54:40.05foo arg {} の場合ブロックはargが取り、foo arg do ... end の場合ブロックはfooが取る
0311デフォルトの名無しさん
2013/12/22(日) 12:45:30.98ありがとうございます。
そもそもw+だと全て消えてしまうんですね
0312デフォルトの名無しさん
2013/12/22(日) 14:20:54.700313デフォルトの名無しさん
2013/12/22(日) 14:41:42.43OSに依頼してるだけだから、OS(ファイルシステム)がどう動作するかという話に
0314デフォルトの名無しさん
2013/12/22(日) 19:02:16.350315デフォルトの名無しさん
2013/12/23(月) 01:52:26.11class B < A
alias fuga hoge
end
def hoge
end
end
で undefined method 'hoge' となってしまいます。
def hoge を class B を定義する前に書けば問題ないのですが、
a.rb
a/b.rb
とファイルを分割していて a.rb の先頭で a/b.rb を require するとこうなってしまいます。
なにか上手い解決法はないでしょうか。
0316デフォルトの名無しさん
2013/12/23(月) 02:07:33.39とか
0317デフォルトの名無しさん
2013/12/23(月) 06:48:40.88エラーを消すことを目的に小細工すると早晩破綻が来そうだ
0318デフォルトの名無しさん
2013/12/23(月) 11:07:07.71問題は、以下に示す依存関係の矛盾にある
・クラス継承 A::B < A は、サブクラス A::B が存在するには
スーパークラス A が必要である、いいかえると
「A::B は A に依存する」ことを意味する
・ファイルrequireは、require元ファイル a.rb が存在するには
requre先ファイル a/b.rb が必要である、いいかえると
「a.rb は a/b.rb に依存する」ことを意味する
矛盾の解消には:
サブクラス A::B がスーパークラス A を必要とし、かつ
これらクラスが個別のファイルで定義されているならば、
A::B を定義する a/b.rb が A を定義する a.rb をrequireすべきである
という原則へ立ち返ることが出発点になる
0319デフォルトの名無しさん
2013/12/23(月) 11:26:08.62更に付け加える
(>>318が原則 MUST であったのに対し、これは推奨 SHOULD になる)
モジュール構成とクラス継承の違いを意識してコード設計すべき
・モジュール構成は名前空間を定義する
・クラス継承はデータ型の依存関係を定義する
>>315の例において、もしも名前空間が不要であれば、
そのコードは以下のように添削できる
class A
def hoge; end
end
class B < A
alias fuga hoge
end
もし名前空間が必要であるなら、以下のようになる
class A
def hoge; end
end
module M
class B < A
alias fuga hoge
end
end
0320デフォルトの名無しさん
2013/12/23(月) 14:25:02.521.0とする以外にもなにかありませんでしたっけ
fつけたり
0321デフォルトの名無しさん
2013/12/23(月) 14:49:59.62そんなものはない
Floatオブジェクトにしたいならto_fでいいんじゃなかろうか
例外出したかったらFloat()
0322デフォルトの名無しさん
2013/12/23(月) 16:45:56.06fをつけて宣言することはできないのでしょうか
0323デフォルトの名無しさん
2013/12/23(月) 17:05:43.39できません
0324315
2013/12/23(月) 17:36:08.12class B は名前空間が必要で、その名前が思いつかなかったため、
サブクラスだからという理由でAの中に定義したのが間違いだったのだと思います。
A を名前空間のためだけのモジュールにして、メソッドを別に切り出し、B からそれを require する事にしました。
0325デフォルトの名無しさん
2013/12/24(火) 09:52:39.17JavaとかJavaScriptとかPHPみたいな
for(i=0;i<MAX;i++){
//処理
}
ってRubyで、どう書けばいいのですか?
0326デフォルトの名無しさん
2013/12/24(火) 10:00:49.8510.times {
#処理
}
実行中に愛が欲しければ
10.times {|i|
#処理
}
0327デフォルトの名無しさん
2013/12/24(火) 11:26:44.63arr.each do |e|
# e をどうにかする
end
というeachによる繰り返しを【必ず】使う
極めて稀にこれでどうにもならないのがあるんだが、おそらくそれにぶち当たることは初心者ではないはず
要素が10個ある配列arrから要素を取り出して表示したいときに
10.times do |i|
puts arr[i]
end
と書いたらグーで殴られても文句言えない
普通はこうする
arr.each do |e|
puts e
end
0328デフォルトの名無しさん
2013/12/24(火) 12:41:18.27pets.each {|pet|
puts pet + 'が俺を見つめている!'
}
0329325
2013/12/24(火) 12:54:31.28おお!凄いありがとうございます!!!
N個の配列に全アクセスする場合必ず使うって部分でようやく理解、納得できました!
>>326-327さんがいなければ私はRubyを挫折していたかもしれないです。
本当にありがとうございました!
どのサイト見てもピンとこなかったので嬉しい限りです。
>>326-327はEvernoteにブチこんでおきます!
0330デフォルトの名無しさん
2013/12/24(火) 18:57:58.080331デフォルトの名無しさん
2013/12/24(火) 19:50:45.780332デフォルトの名無しさん
2013/12/24(火) 23:20:44.46id = 1
file.each_line do |line|
array = line.split("\t")
persons.push Person.new(id, array[0], array[1], array[2], array[3])
id = id+1
end
end
タブ区切りのファイルを読み込み、id、名前、職業、身長等のメンバ変数を持つPersonオブジェクトを作り
それをpersonsという配列にプッシュするメソッドなのですが
わざわざeachの外でカウンタ変数を宣言してカウントアップするという方法がかっこ悪い気がします
Rubyっぽくカッコイイ方法で書く方法を教えていただけないでしょうか
Rubyはさっき始めました
0333デフォルトの名無しさん
2013/12/24(火) 23:41:23.57オーケー、まずやるべきことはその参考書なり参考サイトなりを焼き捨てることだ
0334デフォルトの名無しさん
2013/12/24(火) 23:48:41.180335デフォルトの名無しさん
2013/12/24(火) 23:53:26.500337332
2013/12/24(火) 23:58:21.86>>335じゃなくて>>333でした
ついでに>>335を見て意味が分かりました
CとJavaしかやってないのでrubyっぽい命名が分かりませんでした
0338デフォルトの名無しさん
2013/12/25(水) 00:21:50.370339デフォルトの名無しさん
2013/12/25(水) 00:35:07.57http://play.island.ac/codepaste/code?id=1566
0340デフォルトの名無しさん
2013/12/25(水) 00:43:12.76それ繰り返し呼んだらid被るよな。
その時のarrayのlengthから算出すべきじゃ。できればロックもかけて。
0341デフォルトの名無しさん
2013/12/25(水) 01:02:17.33ありがとうございます
とても参考になります
>>400
今はこのようになっております
これだと大丈夫でしょうか
def import_data(file, persons)
id = 1
file.each_line.with_index do |line, index|
id = index + 1
array = line.split("\t")
persons.push Person.new(id, array[0], array[1], array[2], array[3])
end
end
0342デフォルトの名無しさん
2013/12/25(水) 01:03:03.46def import_data(file, persons)
file.each_line.with_index do |line, index|
id = index + 1
array = line.split("\t")
persons.push Person.new(id, array[0], array[1], array[2], array[3])
end
end
0343デフォルトの名無しさん
2013/12/25(水) 01:12:28.790344デフォルトの名無しさん
2013/12/25(水) 01:35:40.960345デフォルトの名無しさん
2013/12/25(水) 02:30:50.43質問者じゃないが知らなかった ありがとう
0346デフォルトの名無しさん
2013/12/25(水) 14:49:56.25括弧使わせろよ
0347デフォルトの名無しさん
2013/12/25(水) 15:34:15.15Rubyのbegin-endはEiffel由来だし
matz自身が{}を使った文法に変えようとしたことがある
0348デフォルトの名無しさん
2013/12/25(水) 15:35:05.470349デフォルトの名無しさん
2013/12/25(水) 17:56:05.610350デフォルトの名無しさん
2013/12/25(水) 17:56:46.02役に立つ情報をありがとうございます
0351デフォルトの名無しさん
2013/12/26(木) 02:29:03.32アクセスの仕方がわからず、どのようにそれを確認したらよいのかわかりません。
またアクセスできないのならば、それはどのような意味を持つのでしょうか。
何らかのセオリーに裏打ちされた仕様の帰結なのでしょうか?
obj = Object.new
class << obj
def self.f() ...
0352デフォルトの名無しさん
2013/12/26(木) 07:17:25.80ブラウザはPCもスマホもChrome
IMEもPC、スマホ共にGoogle日本語入力
メールはGmail
クラウドはGoogleDrive
スケジュール管理はGoogleカレンダー
撮った写真はPicasaに自動アップロード
の俺に死角は無かった
Googleがお漏らししたら完全に詰むわ
0353デフォルトの名無しさん
2013/12/26(木) 07:18:39.520354デフォルトの名無しさん
2013/12/26(木) 10:18:52.84>> 5.times.reduce("") {|o| o.singleton_class }
=> #<Class:#<Class:#<Class:#<Class:#<Class:#<String:0x007f9ae5016508>>>>>>
作ることはできるみたいだけど、使い道を思いつかない。
0355デフォルトの名無しさん
2013/12/26(木) 13:07:40.09Ruby開発者の多くが使っているLinuxのディストリはなんですか?
0356デフォルトの名無しさん
2013/12/26(木) 13:27:03.53相性ってのは特段ないと思うが、どうしてもと言うならDebianかUbuntuのどれかだと無難かもしれん
いわゆるRedHat系を使ってるコアユーザーはあんまり見ない
0357デフォルトの名無しさん
2013/12/26(木) 14:53:51.170358デフォルトの名無しさん
2013/12/26(木) 15:39:59.630359デフォルトの名無しさん
2013/12/26(木) 15:42:41.260360デフォルトの名無しさん
2013/12/26(木) 15:51:00.160361デフォルトの名無しさん
2013/12/26(木) 16:29:29.73https://twitter.com/luislavena/status/415932840744726528
0362デフォルトの名無しさん
2013/12/26(木) 20:10:51.64多重継承が出来ないからミックスインというのは分かるのですが、
だったら全部ミックスインじゃ駄目なんでしょうか。
0363デフォルトの名無しさん
2013/12/26(木) 21:25:52.450364デフォルトの名無しさん
2013/12/26(木) 21:31:07.13ファイル数が多くなると毎回コンパイル時間がかかるので不便です
0365デフォルトの名無しさん
2013/12/26(木) 21:35:32.96使ったことないけど、サイト見れば --watch で何とかなりそうな気配
0366デフォルトの名無しさん
2013/12/26(木) 23:26:29.93http://developers.slashdot.jp/story/13/12/26/0448251/
>私は最近node.jsで多くの仕事をこなしている。そして、同僚と
>node.jsはRubyの座を奪う物なのではないか」との議論を続けている。
0367デフォルトの名無しさん
2013/12/26(木) 23:29:28.240368デフォルトの名無しさん
2013/12/26(木) 23:43:08.87スクリプト言語の昔からの主戦場にまで来られるとやだなあ
0369デフォルトの名無しさん
2013/12/27(金) 00:14:04.02ミックスインと継承は、どちらも既存の部品を拡張して新しい部品を作るという意味で似ている
ただし拡張元の部品がミックスインではモジュールであるのに対し、
継承ではクラスであるという点で、両者は異なるもの
そしてRubyのクラス(=Classクラス)はモジュール(Moduleクラス)のサブクラスであり、
モジュールとクラスの違いがミックスインと継承との違いをもたらす
そんな(モジュールには無くて)クラスにある特徴の一つが、属性(=インスタンス変数)を持てる事
たとえば「箱(Box)」クラスを継承すれば:
・「色(color)」属性を持つサブクラス「色付き箱(ColoredBox)」や
・「角度(angle)」属性を持つ「回転可能な箱(RotatableBox)」を
定義できるけど、ミックスインでは
新しい部品に「振る舞い(=機能)」は追加できても、属性を付け加えることができない
0370デフォルトの名無しさん
2013/12/27(金) 01:12:47.30=> ["aaaa", "bbbb", "cccc"]
こんな感じのソースを見たのですが、$/の部分が理解できません。
正規表現でもないし文字列でも無いし何なんでしょうか。
"aaaa\nbbbb\ncccc".split("\n")
=> ["aaaa", "bbbb", "cccc"]
同じ結果になりますが、これなら分かります。
0371デフォルトの名無しさん
2013/12/27(金) 01:14:01.350372デフォルトの名無しさん
2013/12/27(金) 02:37:15.95>>363
なるほど。ミックスインだとミックスインする前の
クラスのインスタンスは作れないってことですね。
>>369
Class.new.methods - Module.new.methods
=> [:allocate, :new, :superclass]
これがモジュールとクラスの違いでしょうか。
モジュールはインスタンスを作成できない(属性をもてない)、継承できない。
でも属性をもてないモジュールでも、ミックスインではクラスに属性を追加できますよね。
最近それを知って、継承とどう違うのか、どう使い分ければよいのか疑問に思ったのでした。
0373デフォルトの名無しさん
2013/12/27(金) 02:41:26.690374デフォルトの名無しさん
2013/12/27(金) 02:53:58.210375デフォルトの名無しさん
2013/12/27(金) 02:58:26.340376デフォルトの名無しさん
2013/12/27(金) 03:10:02.11ルビーにセカンド・チャンスは訪れないんですか?
0377デフォルトの名無しさん
2013/12/27(金) 03:36:56.56今の流行りはどの言語ですか?
0378デフォルトの名無しさん
2013/12/27(金) 03:57:33.380379デフォルトの名無しさん
2013/12/27(金) 04:43:20.73Struts, Perl CGI -> PHP -> RoR, Django, Grails, Play, Lift, Wicket -> node.js -> PHP
0380デフォルトの名無しさん
2013/12/27(金) 04:46:59.98敢えて言えばjavascriptが流行っている気はするが、リスクしか感じない。
0381デフォルトの名無しさん
2013/12/27(金) 05:00:07.52node.jsが普及した頃合いにdart,golangが流行りだす。恐らく大人の事情
言語の学習コストなんて何かの負債が積もるだけなのでプレーンな言語しか触らないのが吉
突き詰めていくと、htmlだけでも詰め込むことは沢山ある
0382デフォルトの名無しさん
2013/12/27(金) 05:18:02.25rubyの課題としてはノンブロッキングとマルチコアの強化とそれを利用したフレームワークの整備ですかね
正規表現はjavaの方が強力なので、最近のrubyは複素数などちょっとした計算用途でしか使ってなくてあまり出番はないんですけど
0383デフォルトの名無しさん
2013/12/27(金) 06:42:38.13ありがとうございました
入れ子にしてもアクセスできました
o.singleton_class.superclass => String
あるインスタンスの特異クラスのスーパークラスは、そのインスタンスのクラスになっていて
クラスとインスタンスの間に割り込んでいるような印象でした
o.singleton_class.singleton_class.superclass => #<Class:Sstring>
o.singleton_class.singleton_class.superclass.superclass => #<Class:Object>
一方特異クラスの特異クラスは、スーパークラスの特異クラスと継承関係がありますね
祖先はいるけれども子は残せないというところに飲み込みがたいものを感じました
0384デフォルトの名無しさん
2013/12/27(金) 12:07:45.90なんか今日このネタどこかでみたなブログかTwitterで
もしかしてそういうのを鵜呑みにしちゃったバカなのかな
0385デフォルトの名無しさん
2013/12/27(金) 12:31:25.43127.0.0.1以外の接続を遮断したいです
0386デフォルトの名無しさん
2013/12/27(金) 12:58:29.06"メタプログラミングRuby" でオブジェクトの関係を図解しているあたりを
(立ち読みでも)チェックしてみるといいかも。
0387デフォルトの名無しさん
2013/12/27(金) 14:42:00.35Thin も Rack アプリだから、Rack レベルで遮断すればいい
0388デフォルトの名無しさん
2013/12/27(金) 17:44:06.900389デフォルトの名無しさん
2013/12/27(金) 18:39:52.98>でも属性をもてないモジュールでも、ミックスインではクラスに属性を追加できますよね。
いや、単純なミックスインでは、クラスに属性は追加できないよ
「属性を追加する振る舞い(=機能)」をクラスに追加することならば可能だけどね
>最近それを知って、継承とどう違うのか、どう使い分ければよいのか疑問に思ったのでした。
ミックスインだと、>>369の例はどう書けるのかな?
継承ならば、初歩的な以下のコードになる:
class Box; .... end
class ColoredBox < Box
attr_accessor :color
end
class RotatableBox < Box
attr_accessor :angle
end
0390デフォルトの名無しさん
2013/12/27(金) 19:09:47.21Pythonはそれがない
0391デフォルトの名無しさん
2013/12/27(金) 20:34:34.25Django
0392デフォルトの名無しさん
2013/12/27(金) 21:43:25.33Railsは最初に作られたときからもどんどん発展し続けてるし
最初に作る、というのがいかに技術的にすごいことか、という例だな
0393デフォルトの名無しさん
2013/12/27(金) 22:07:23.010394デフォルトの名無しさん
2013/12/27(金) 22:22:31.17目的によるだろう。
Djangoはユーザ管理が標準であるからログインシステムではRailsを超えてると思うぞ。
手数少なくって意味ならCMSの方がいい。
0395デフォルトの名無しさん
2013/12/27(金) 23:06:36.45だから最近では小学校でRubyから始めるプログラミング学習を導入してたりする。
わかりやすいのは勿論メリットだが、ゴミのようなコードや情報が溢れるのは問題である。
0396デフォルトの名無しさん
2013/12/27(金) 23:25:16.07高校大学で「ぱそこん」とほめぱげへようこそが蔓延したときもゴミのようなサイトや情報が溢れた
つまり気にする必要はまったくない
0397デフォルトの名無しさん
2013/12/27(金) 23:35:31.430398デフォルトの名無しさん
2013/12/28(土) 00:04:24.78そもそもRubyって本当にそんな簡単な言語か?
誰が書いても同じようなクソコードになるJavaより全然難しい印象があるんだけど
個人的にC#、Java、VB、JavaScriptより難しいとは思う
0399デフォルトの名無しさん
2013/12/28(土) 00:08:29.97よく考えるまでもなく当たり前の話ではある
0400デフォルトの名無しさん
2013/12/28(土) 00:15:47.92奥が深い・・
0401デフォルトの名無しさん
2013/12/28(土) 01:00:55.26とりあえず何か動くものを作る、という意味では
コンパイル必要なJavaなんかより遥かに簡単
正しいコードを書く、という意味ではJavascriptよりずっと簡単
言語仕様を踏み込んで理解しようと思っても(実装の汚さは別として)表向きはシンプルで分かりやすい
C全く分からんって人にも理解できるはず。
パーフェクトRubyあたりの本は小学生でも理解できる。Cの本は無理。
バランスよく簡単だとは思う。
0402デフォルトの名無しさん
2013/12/28(土) 02:53:40.35IDEなりで自動でビルトして起動だよ
0403デフォルトの名無しさん
2013/12/28(土) 02:55:46.98IDEは分かって使ってる人には便利だが、初心者には分かりにくくさせてしまう
コンパイルという動作が必要ということは理解する上でも避けて通れないからな
0404デフォルトの名無しさん
2013/12/28(土) 03:00:51.69自分でコンパイルすることにどれだけ意味があるのかわからんわ
0405デフォルトの名無しさん
2013/12/28(土) 03:05:35.50もちろん、分かってる人間にはらくらく超えられるハードルなんだが、初心者はつまづきやすい部分でもある
PHPみたいなクソ言語がもてはやされてるのもその辺に理由があるのだろう
0406デフォルトの名無しさん
2013/12/28(土) 03:38:50.27それって誘導的に反証のレスを期待してるの?
>>400
Rubyの難しさはJava,PHPの難しさとは別のところにあるよ
>>402
javac, antからやれ
0407デフォルトの名無しさん
2013/12/28(土) 03:41:18.51文法がc/c++にそっくりだしWeb上の情報量が多い
自己解決より誰かが解決してる情報量が圧倒的に多くて効率が良い
0408デフォルトの名無しさん
2013/12/28(土) 04:07:47.370409デフォルトの名無しさん
2013/12/28(土) 04:08:03.46pythonは書き方揃えるのが簡単。
Javaは読むのが簡単。
長所を活かせるかは使い手次第。
0410デフォルトの名無しさん
2013/12/28(土) 04:09:04.15バージョン変わる時が大変。
0411デフォルトの名無しさん
2013/12/28(土) 05:48:47.02これ全部「中高や大学教養の教育現場で導入がもて囃されたことが(瞬間最大風速的に)ある言語」だぞ
C89とF77は言語というかバージョン名だったりコンパイラ名だったりするがぬ
言語がなんであろうとライブラリがどうであろうと「ふつうのひと」が初心者時間内や授業時間内に作れるプログラムはクソである
0412デフォルトの名無しさん
2013/12/28(土) 05:50:34.940413デフォルトの名無しさん
2013/12/28(土) 06:07:29.490414デフォルトの名無しさん
2013/12/28(土) 07:13:14.43国語の作文ですらそうだから仕方なかろうて
0415デフォルトの名無しさん
2013/12/28(土) 11:30:22.26すっげー頭悪そうだし、流行に乗せられた馬鹿みたいだから。
Pytyon使いならカッコイイので堂々と言える。
0416デフォルトの名無しさん
2013/12/28(土) 12:12:55.32もっといえば、目的もなくプログラミングをやるのは最高に頭が悪いと思う
中高生がオレ、ギターやってるんだぜ!ぐらい、ちょっと遠くから見たい存在
0417デフォルトの名無しさん
2013/12/28(土) 12:20:05.920418デフォルトの名無しさん
2013/12/28(土) 12:20:49.58Softwareが作りたいのか、テキスト処理したいのか、データマイニングがしたいのおか
みんな、自分自身がわからないままプログラミングをしているって言うんだ
0419デフォルトの名無しさん
2013/12/28(土) 13:16:07.00GC付きの言語で、独自のイケてるコードを書くなんて2の次
コーディング規約でも読んでりゃ良い
0420デフォルトの名無しさん
2013/12/28(土) 14:00:03.67俺? エロ画像集めに決まってるだろ。
0421デフォルトの名無しさん
2013/12/28(土) 22:23:25.49本能が強力にあなたをサポート
嫌だと思っても、ついついコードを書いてしまう
まさに、最強の学習法である
でも女の子である俺はそんなはしたない事はしないけどね
0422デフォルトの名無しさん
2013/12/28(土) 22:48:29.860423デフォルトの名無しさん
2013/12/28(土) 23:49:43.260424デフォルトの名無しさん
2013/12/29(日) 00:39:47.67メビウスみたいなシューティングゲームを作りたくて覚えた
付随して高校数学をやり直したぞ
0425デフォルトの名無しさん
2013/12/29(日) 00:40:59.010426デフォルトの名無しさん
2013/12/29(日) 01:04:08.09def a= a
@a = a
end
def a
puts @a
end
end
t = Test.new
t.a = 'hoge'
t.a
これが通る理由を教えて下さい。
定義したメソッドは a=であり a = ではありません。
Rubyではメソッドに半角スペースは使えないのではなかったのでしょうか。
0427デフォルトの名無しさん
2013/12/29(日) 01:21:10.85それだけの話
0428デフォルトの名無しさん
2013/12/29(日) 01:23:10.86http://xxx/xx/xx.php
[truncated] request={"header":{"api_version":"x.x.x","packet_unique_id":xxxx},
"get_abc":[{"id":xx,"data_0":xx,"data_1":xx,"data_2":xx,"data_3":xx},
{"id":xx,"data_0":xx,"data_1":xx,"data_2":xx,"data_3":xx},
このようにhttp://xxx/xx/xx.phpに送信されると思うのですが
"id":xx,"data_0":xx,"data_1":xx,"data_2":xx,"data_3":xx
このパターンが例だと2つですが
5つにして送信したいのです。
置換ではなく変更したものを"追加"にするにはどうすればよいか教えて頂けませんか?
url = gr.get_url()
if(!gr.is_match(url,"^http://xxx/xx/xx.php"))
return
end
ここから色んなコードを組んで試してはみたのですが
考えれば考えるほど混乱し失敗して
質問させて頂きました。
よろしくお願いいたします。
0429デフォルトの名無しさん
2013/12/29(日) 01:37:14.85つまりパーサーレベルで=が後についてるメソッドは空白が無視できるように特別扱いされてるってことですか?
0430デフォルトの名無しさん
2013/12/29(日) 01:47:19.87ま、だいたいそんなところ
そのため、以下のような罠がある
class A
def b=(v)
@b = v
end
def f
b = 1
@b
end
end
a = A.new
a.b = 2
a.f => 2
これは、f というメソッドの中の b = 1 がメソッド扱いされず、ローカル変数への代入として
扱われてしまうことによる
これを回避するには、self.b = 1 と書かなければならない
0431デフォルトの名無しさん
2013/12/29(日) 02:17:59.28ありがとうございました
0432デフォルトの名無しさん
2013/12/29(日) 14:32:57.05p {1=>:a}
コンパイル通りません
0433デフォルトの名無しさん
2013/12/29(日) 14:40:45.01ハッシュじゃなくてブロックと解釈されてる
p({1=>:a})
なら通る
0434デフォルトの名無しさん
2013/12/29(日) 15:41:28.160435デフォルトの名無しさん
2013/12/29(日) 16:16:06.22もてる。
ただし、pメソッドに渡すなら p({1=>:a}) ( あるいは最後の引数の{}を省略してp(1=>:a) ) としないと駄目。
p {1=>:a} という書き方は、pメソッドにブロックを付けた形となり、中身がブロックとしては構文エラーになる。
p {'a'=>:a} でもエラーになるよ。
0436デフォルトの名無しさん
2013/12/29(日) 16:17:00.790437デフォルトの名無しさん
2013/12/29(日) 16:22:52.090438デフォルトの名無しさん
2013/12/29(日) 16:37:46.70あと昔の公式マニュアルの中に Ruby::Trap ってページがあったと思うけど行方不明
0439デフォルトの名無しさん
2013/12/29(日) 19:01:27.580440デフォルトの名無しさん
2013/12/29(日) 21:31:00.91現行の原稿はここにある。
ttps://github.com/rurema/doctree/tree/master/faq/trap
HTML化ドキュメントが生成されるようにするのは作業中(というか、誰かやって状態)じゃなかったかな?
0441デフォルトの名無しさん
2013/12/30(月) 12:22:19.61今後、聖地ではメタプログラミング騎士団たちによる魔女狩りや、
ジャック・ド・マツェーの異端審査すら起こるだろうが、
コアコミッタたちの魔女化、所謂、ワルプルギスの夜に比べると
ヒッチハイカーたちにとって瑣末な問題である。
そして、トロールなんて被害のない場所でボヤいている。
IT系の糞記事を書く記者とか。私とか。
魔女を生み出すぐらいなら健全な精神を持った子供たちは、
pypyがはやいとかcincoがオープンになったとかで騒ぐより、
manコをなめたりFAQした方がよっぽど良いと思う。
0442デフォルトの名無しさん
2013/12/30(月) 12:48:06.60なるほど。生きてはいたのね
0443デフォルトの名無しさん
2013/12/30(月) 13:04:43.220444デフォルトの名無しさん
2013/12/30(月) 13:08:06.000445デフォルトの名無しさん
2013/12/30(月) 13:16:41.93きっと書いたやつは何かのパラノイア持ちだと思うね.
わたしってホント、バカ。とか、もう誰にも頼らないとかクダ巻いてるぜ
0446デフォルトの名無しさん
2013/12/30(月) 23:43:00.642013年12月29日 04:54
http://dqn.sakusakutto.jp/2013/12/berkshelf_chef_gem_ruby.html
>berkshelf便利だから使うべき、みたいな記事がいっぱいある。
>ChefとかBefkshelfとか組み合わせて便利便利鼻血ブー、みたいなやつ。
>私はこういう「gemのライブラリを組み合わせて作られたサーバ構築ツール」を手放しで礼賛する風潮に違和感を感じる。
>みんなが便利便利言ってるから自分も便利便利と言ってしまっているだけではないのか。
>王様がステキな服を着てるとみんなが言ってるけど、あなたにはその服が本当に見えているのか。
>本当にこれらのソフトウェアを使って私たちは幸せになれるのだろうか。
>ちょっと冷静に考えてみてほしい。
えらく納得してしまったこの記事。
0447デフォルトの名無しさん
2013/12/31(火) 01:10:57.32数年前に刊行されたRuby入門本やRails入門本なんて今では役に立たないしな
0448デフォルトの名無しさん
2013/12/31(火) 01:13:56.860449デフォルトの名無しさん
2013/12/31(火) 01:54:48.83というか初心者じゃなくても。
0450デフォルトの名無しさん
2013/12/31(火) 02:28:36.68どっちかって、プログラミングの入門書全部が役に立たなくって
概要だけ掴んで本家のマニュアル読むしかない
0451デフォルトの名無しさん
2013/12/31(火) 02:35:33.13メタプログラミングのこと??
あんなもん最初見た時ちょっとトリッキーに見えるだけで何の奥深さも感じない。
Javaの方が100倍は奥深いわ
0452デフォルトの名無しさん
2013/12/31(火) 02:49:27.37Ruby is an accepable Lispと言われるくらいだからLispを奥深いと思わないならはいそうですねとしか
0453デフォルトの名無しさん
2013/12/31(火) 02:49:50.57コミュニティの人間模様
0454デフォルトの名無しさん
2013/12/31(火) 02:52:53.98だってruby使ってると子供が使うオモチャのようにしか感じない。
Cのような繊細なスキルやプログラミング知識は不要だし、Javaのような経験も要らない
0455デフォルトの名無しさん
2013/12/31(火) 03:39:34.140456デフォルトの名無しさん
2013/12/31(火) 03:42:54.760457デフォルトの名無しさん
2013/12/31(火) 03:44:42.13これは2000年前に始まったChristian文化の復活だろうね。
Javishとか呼ばれるゴスリンからの選民思想を引き継いだ旧支配者たちが
Strutsの包茎手術ついて真面目に議論していたり、
プロプライエタリのゴロツキたちがSoftwareパテントの徴税しにくる時代にDHHって救世主が現れたんだ。彼は大きな偉業と奇跡をやってのけた。
社会的弱者たちを救ったRoRとウェブアプリ文化。
すべてのモノがCloudに救いを見た。
だけど、実際は歴史の影に潜む影の存在によって全てが仕組まれていたんだ。
その痕跡は、そこらじゅうに見え隠れしている。
いわゆる、魔法少女たちの希望と絶望の相反転によって、
人類史における文化的な発展を促進させる触媒だったんだ。ぞっとするね。
どこかで計算機科学のバックグラウンドを持った人類史学者が、
「Ruby社会と基督文化ー超弦理論的視点による考察」
って論文でも執筆してるんじゃないかな。
0458デフォルトの名無しさん
2013/12/31(火) 03:49:35.610459デフォルトの名無しさん
2013/12/31(火) 04:27:50.160460デフォルトの名無しさん
2013/12/31(火) 11:40:18.14ようやくレスが噛み合ってよかったなw
0461デフォルトの名無しさん
2013/12/31(火) 11:47:03.82海外でもアニメが流行っていて、この名前が付けられたなら不思議ではないんだけど、
タダの偶然でこんな名前が付けられたんだとすると、本当にぞっとするよね。わけがわからないよ。
0462デフォルトの名無しさん
2013/12/31(火) 12:11:45.60ChefとBefkshelfを使うことに対してじゃなくて
インストールに戸惑ったから愚痴ってるだけの記事
中身がない
最近流行の釣りで注目をあびようとかんがえてるきちがいが書いた記事
0463デフォルトの名無しさん
2013/12/31(火) 12:36:12.060464デフォルトの名無しさん
2013/12/31(火) 12:51:20.210465デフォルトの名無しさん
2013/12/31(火) 13:03:34.98通は吉野家で中古ノートにGNUStep
0466デフォルトの名無しさん
2013/12/31(火) 15:01:52.73ってRubyのスレだろここは
Ocraにはいつもお世話になっています
0467デフォルトの名無しさん
2013/12/31(火) 22:06:10.99>バージョン間の互換性がないから初心者にはお勧め出来ない
互換性がないってのは、たとえばこういふ話のことかな?
> 940 名前: デフォルトの名無しさん Mail: sage 投稿日: 2013/12/31(火) 03:44:40.65
> >>939 エラーにならなくなった理由は別にある。
>
> 2.x
> range -> リストを作る。OverflowErrorでなくとも、大きなメモリを確保しようとして
> MemoryErrorになることもなる。
> xrange -> range型のオブジェクトを返す。
> rangeオブジェクトの各属性は 構造体で (Cの)long型で宣言されてるので、値が範囲外だと
> OverflowError
>
> 3.x
> range -> range型のオブジェクトを返す。rangeオブジェトの各属性の型はPyObject。
> pythonの数値(多倍長整数)を持つようになったので、2.xの時の制限はなくなった。
0468デフォルトの名無しさん
2013/12/31(火) 22:17:32.872時間前にカキコされた1つ前のスレさえ読んでいないのか、
それとも読んではみたものの無知故なのか......?
ちなみにGNUstepとRubyとのバインディングは存在する
・RIGS: Ruby Intrerface to GNUstep
http://www.gnustep.org/experience/RIGS.html
位置付けとしては(MacRubyではなく)RubyCocoaに近い
以前にDebian上でインストールに挑戦してみた時には
Obj-Cコード上へ修正が必要で、誰もが安心して使える状態にはなかった
でも、一度インストールしてしまえば、GNUstepのフレームワークは
OS X でいうところの10.3に相当する素朴な仕様なので、
その知識があれば普通にRubyスクリプトだけでGUIアプリが気軽に作れる
0469デフォルトの名無しさん
2014/01/01(水) 03:55:55.40class Hoge
@hoge = "hoge"
end
この@hogeにはHogeのインスタンスからもアクセス出来ないのですが、
特異クラスってとこに定義されてるからという理解であってるでしょうか。
0470デフォルトの名無しさん
2014/01/01(水) 09:19:26.13irb> class C; @hoge=1; end
irb> p C.instance_variables
[:@hoge]
irb> p C.instance_variable_get(:@hoge)
1
"普通"にプログラムしているぶんにはあんまり使わない機能
メタプログラミングとかプログラムするプログラムとか作るときに使うことがある
0471デフォルトの名無しさん
2014/01/01(水) 11:49:20.430472デフォルトの名無しさん
2014/01/01(水) 13:09:52.30>>470,471で正しいけど、あえて蛇足する
Rubyではあらゆるすべてがオブジェクトだから、Hogeクラスもオブジェクトになる
で、Hogeクラスは:
・「スーパークラス - サブクラス 関係」における、Objectクラスのサブクラスである
BasicObject --> Object --> Hoge
irb(main):002:0> Hoge.superclass
=> Object
irb(main):003:0> Object.superclass
=> BasicObject
irb(main):004:0> BasicObject.superclass
=> nil
・「クラス - インスタンス 関係」における、Classクラスのインスタンスである
Class --> Hoge --> hoge
irb(main):002:0> hoge = Hoge.new
=> #<Hoge:0x1a59f0>
irb(main):003:0> hoge.class
=> Hoge
irb(main):004:0> Hoge.class
=> Class
irb(main):005:0> Class.class
=> Class
0473デフォルトの名無しさん
2014/01/01(水) 16:55:52.42あってない
0474デフォルトの名無しさん
2014/01/01(水) 17:34:15.38ClassクラスのインスタンスであるHogeのインスタンス変数という事ですね。
class << Hoge
def get_hoge
@hoge
end
end
とすると参照できるので、特異クラスってところに定義されてるのかと思いました。
class << Hoge
@kore = "kore"
end
こうやると特異クラスのインスタンス変数になるのかな。
0475デフォルトの名無しさん
2014/01/01(水) 18:10:31.55mikutterに画像投稿プラグインを導入しようと
思ったのですが、twitter gemのインストールが
うまくいきません。以下のようなエラーが出ます。
/usr/bin/ruby1.9.1 extconf.rb
/usr/local/lib/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- mkmf (LoadError)
from /usr/local/lib/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
from extconf.rb:1:in `<main>'
extconf failed, exit code 1
rubyのバージョンはruby 1.9.3p194、
gemのバージョンは2.2.0です。
どなたかよろしくお願いいたします。
0476デフォルトの名無しさん
2014/01/01(水) 18:43:47.510477デフォルトの名無しさん
2014/01/01(水) 19:40:49.37コンパイラが入ってないようにも見える
Rubyをパッケージで入れてるなら>>476で、devも入れてるならgccでも入れるがよろしい
0478デフォルトの名無しさん
2014/01/01(水) 19:51:26.04ありがとうございます!
gccは入っているようですがdevが入っていませんでした。
しかし今度は~/.mikutterディレクトリにpluginディレクトリを作ったら
mikutterが起動しない…?
0479478
2014/01/01(水) 20:56:08.550480デフォルトの名無しさん
2014/01/02(木) 12:51:29.36Pythonでいうvirtualenvみたいな感じでgemを環境ごとに分けたいんです
0481デフォルトの名無しさん
2014/01/02(木) 19:37:26.27いまとある入門書を読んでいて、組み込みクラスの継承関係のところなのですが
p Object.is_a?(BasicObject)
を実行すると
true
と表示されてこれはOKなのですが、
p BasicObject.is_a?(Object)
も実行すると
true
となります。これはどうしてなのでしょうか?
0482デフォルトの名無しさん
2014/01/02(木) 20:10:20.64> オブジェクトが指定されたクラス mod かそのサブクラスのインスタンスであるとき真を返します。
なので、
Object.is_a?(BasicObject) #=> true
ObjectはClassクラスのインスタンスであり、ClassクラスはBasicObjectクラスの子孫なので、true
BasicObject.is_a?(Object) #=> true
BasicObjectはClassクラスのインスタンスであり、ClassクラスはObjectクラスの子孫なので、true
以下とは意味が違う
Object.new.is_a?(BasicObject) #=> true
Object.new.is_a?(Object) #=> true
BasicObject.new.is_a?(Object) #=> error
0483デフォルトの名無しさん
2014/01/02(木) 20:29:53.85なるほど!よくわかりました!ありがとうございましたm(_ _)m
0484デフォルトの名無しさん
2014/01/03(金) 00:29:42.99今は is_a? よりも kind_of? を使うほうが良い、とされている。
それと BasicObject はいろいろ特殊なので、初心者が実験とかに使うのは避けたほうが良い。
0485デフォルトの名無しさん
2014/01/03(金) 02:40:57.13rvmとかrbenv入れてみたら?
winで使えるかはわかりませんが…
0486デフォルトの名無しさん
2014/01/03(金) 02:46:01.400487デフォルトの名無しさん
2014/01/03(金) 05:47:22.20いろいろ考えても無駄なので
Kernelと同じ
0488デフォルトの名無しさん
2014/01/03(金) 14:21:08.38あざます
0489デフォルトの名無しさん
2014/01/03(金) 15:54:05.22自分、仕事でjava歴10年、プログラミング歴はCとPascalから
入った25年のオサーンなんだけど、Rubyっていいねー。
まだ入門書半分読んだだけなのだけれども。
ある問題を解くプログラムをjavaで書こうとすると、その問題を解くのに
本質的ではないというか核ではないコードをモリモリ書かなきゃいけないけど
Rubyだと、核になるコードだけ書けばよさげ。
0490デフォルトの名無しさん
2014/01/03(金) 16:11:17.460491デフォルトの名無しさん
2014/01/03(金) 16:56:50.940492デフォルトの名無しさん
2014/01/03(金) 17:22:57.91難しい。>>489に
>よさげ
と書いたのは予感レベル。
ただjavaだとこんなにベタに書かなきゃいけないけどRubyだとこんなに綺麗に
書けるよっていう例を作るのって、かなり頭良くないと出来ないだろうな
っていう気はする。
自分で作ったクラスの二項演算子や単項演算子、添字メソッドを
定義できるのが萌えた。
何か数学的なモデル(群とか)を基礎にしたシステムを簡潔に書けそう?
いやまあ、テキトーにヨタ話をしているだけなので流してw
自分はそれができるまでまだRubyに熟達してない。
まだ、「たのしいRuby」の半分までいっただけだから。
0493デフォルトの名無しさん
2014/01/03(金) 17:36:43.740494デフォルトの名無しさん
2014/01/03(金) 17:42:59.73オブジェクト指向でないのにJava使わされると、余分なコードが多いと感じる。
rubyなら、そうはならない。
0495デフォルトの名無しさん
2014/01/03(金) 18:09:01.18すべてが君と僕との愛の構えさ
0496デフォルトの名無しさん
2014/01/03(金) 18:45:46.28101回目のプログラミング
0497デフォルトの名無しさん
2014/01/03(金) 19:13:53.160498デフォルトの名無しさん
2014/01/03(金) 19:29:29.950499デフォルトの名無しさん
2014/01/03(金) 19:52:51.52アルゴリズムは変わらない。だからダイクストラ法って言う。
記法は変わる。だからJavaとかrubyって言う。
0500デフォルトの名無しさん
2014/01/03(金) 20:52:24.630501デフォルトの名無しさん
2014/01/03(金) 21:18:16.75RubyはBasicの皮を被ったLispだから。
0502デフォルトの名無しさん
2014/01/03(金) 21:21:59.51homeディレクトリを作れば再起動しなくてもURLが公開されるようにしたいんですが
なんかそういうのないですか?
いまはthinを使ってるんですけどwebアプリごとにサーバを立ち上げるのが面倒くさいんです
常時5サイト程度は立ち上げてるのでタスクバーにたまっちゃうし
0503デフォルトの名無しさん
2014/01/03(金) 21:29:41.290504デフォルトの名無しさん
2014/01/03(金) 21:36:09.80なるほど〜
>RubyはBasicの皮を被ったLisp
に関係あるのかもしれないけど、(またテキトー言いますが)
この言語を作った人は
プログラムを書く快楽
をよく知ってる人なんだろうなという気がした。
0505デフォルトの名無しさん
2014/01/03(金) 21:53:57.40PHPすら難しく感じるレベル。フレームワーク無いと何も作れない。
ちょっとしたシェルスクリプト書くのも難しい。昔よく書いてたvim scriptも難しくてお手上げ
0506デフォルトの名無しさん
2014/01/03(金) 23:16:02.28UFO演算子使うのってわかりづらいしダサいような
0507デフォルトの名無しさん
2014/01/03(金) 23:25:56.62いまProcオブジェクトをcallで呼び出すところまで
きたんだけど、Procオブジェクトって、JavaScriptのクロージャーっぽいね?
(JavaScriptの、は不要か)
なんかブロック付メソッド、core rubyのけっこうヤマだね。
0508デフォルトの名無しさん
2014/01/04(土) 00:28:17.55この仕様は何か意図があるのか?
to_iやto_sを多用するのがいけないのかもしれないが、この仕様が酷く見つけ辛いバグを生むんだ。
例外投げてほしいんだけど。
0509デフォルトの名無しさん
2014/01/04(土) 00:41:32.37irb(main):001:0> class NilClass; undef :to_i; end
=> nil
irb(main):002:0> nil.to_i
NoMethodError: undefined method `to_i' for nil:NilClass
from (irb):2
from /opt/local/bin/irb:12:in `<main>'
0510デフォルトの名無しさん
2014/01/04(土) 00:47:20.960511508
2014/01/04(土) 00:56:10.15nil.to_iが応答する仕様に何か意図があるのかが知りたいんです。
NULL値にメッセージを送れば例外発生すると思うのが普通だと思うので。
0512デフォルトの名無しさん
2014/01/04(土) 01:09:46.58ようこそ、Rubyの世界へ
>Procオブジェクトって、JavaScriptのクロージャーっぽいね?
クロージャっぽいと言うよりも、Rubyのブロックはクロージャそのものだよ
クロージャは Proc.new で動的に生成できるけど、
リテラルとして静的に生成するのがブロック記法になる
で、JavaScriptではクロージャを function(x) { ..... } と書くけど、
メソッドの引数としてクロージャを渡す場合には、
Rubyならばブロック記法で { |x| .... } とコンパクトに書ける
JavaScript:
[1, 2, 3].filter(function(x) { return x > 1; }); // => [2, 3]
Ruby:
[1, 2, 3].select { |x| x > 1 } # => [2, 3]
Rubyに慣れてくると、JavaScriptの function/return といったキーワードや、
メソッド引数カッコ、そして行末のセミコロンがウザク感じられるようになるので、
くれぐれも用法/用量を守ってRubyを服用するように心がけてくださいませw
0513デフォルトの名無しさん
2014/01/04(土) 01:12:25.99#define NULL 0
が由来ではないかと思われ
(個人的には、例外発生が正しい振る舞いだと思うけどね....)
0514デフォルトの名無しさん
2014/01/04(土) 01:19:08.78String(nil) # => ""
これも意味不だよな
0515デフォルトの名無しさん
2014/01/04(土) 02:10:41.22http://stackoverflow.com/questions/6390279/ruby-nil-and-zero
0516デフォルトの名無しさん
2014/01/04(土) 08:23:50.06nilはundefではない
nilはnullでもない
「空」を表す概念であって、特定のオブジェクトに(ルーズに)変換したら
そのオブジェクトの空っぽの状態/初期状態になることが強く期待されている
例外が起きることを期待するのがそもそも誤り
irb> nil.to_s
=> ""
irb> nil.to_i
=> 0
irb> nil.to_f
=> 0.0
irb> nil.to_a
=> []
irb> nil.to_h
=> {}
Obj.newの引数にしたときどう振舞うかは好きにせえ
こっちは例外が起きるパターンが多いが
あと>>514に関してはわりとブレてる
0517デフォルトの名無しさん
2014/01/04(土) 08:34:42.560518デフォルトの名無しさん
2014/01/04(土) 08:58:46.33当分1.9で行くしlambdaリテラルの方を使うのでまあいいんですけど。
それとprocインスタンスのコールは、f.call(42)ではなくf[42]という構文もあるみたいですが知りませんでした。
新機能紹介や2.x向けのチュートリアル(英語可)はないでしょうか?
0519デフォルトの名無しさん
2014/01/04(土) 16:10:57.29f.(42)
ドキュメントどこだろう?
ローカル変数宣言がなければ、引数の括弧は省略してしまえるとか
そもそもブロックパラメータでのローカル変数宣言とかもドキュメントがないような
f = -> x,y=1,z:2 do x+1 end # do endでもいいとか
0520デフォルトの名無しさん
2014/01/06(月) 00:51:02.86中身を先頭から評価していって、truthyな最初の値のみを得るいい方法ってありませんか
外部リソースの取得をするので、無駄な評価するのは避けたいです
Enumerable# lazy.map.select.first という形で実装はできましたが、
2.0.0以降となってしまうので、lazyを使わずにもう少しRubyらしくできればと思いました
0521デフォルトの名無しさん
2014/01/06(月) 01:05:39.63でよい?
0522デフォルトの名無しさん
2014/01/06(月) 01:34:17.92これのブロックの評価結果を返す版が欲しいんですが
0523デフォルトの名無しさん
2014/01/06(月) 02:42:36.15[nil, nil, 2].each {|i| break i if i } # => 2
0524デフォルトの名無しさん
2014/01/06(月) 02:55:52.27https://github.com/rubyworks/facets/blob/master/lib/core/facets/enumerable/find_yield.rb
0525デフォルトの名無しさん
2014/01/06(月) 04:50:13.08文字列にしてごにょごにょして eval するのが普通なのでしょうか?
0526デフォルトの名無しさん
2014/01/06(月) 09:49:21.742.0以降でLazyを使って実装できたのなら、
その1.9におけるプロトタイプ実装である enumerable-lazy を試すとか
Gems:
http://rubygems.org/gems/enumerable-lazy
GitHub:
https://github.com/yhara/enumerable-lazy
0527デフォルトの名無しさん
2014/01/06(月) 09:57:31.34いつだって時代の最前線にいて、
いつも後から他言語に似たようなツールが出来上がるのは何でしょうか?
0528デフォルトの名無しさん
2014/01/06(月) 09:58:33.99eval よりも Module#const_get のほうが、
意図が明確になってベターではないかと
0529デフォルトの名無しさん
2014/01/06(月) 10:11:37.96仕事で使われない理由も、是非、考えてみてね
0530デフォルトの名無しさん
2014/01/06(月) 10:14:27.02Ruby on Rails で仕事をしている人が
世界中にいる理由も、是非、考えてみてね
0531デフォルトの名無しさん
2014/01/06(月) 10:32:47.75Rubyハッカソンに参加したら社会的追放者みたいなのしかいなかったよ
刺青と鼻ピアスとモジャモジャした長髪が印象に残ったぐらい
いや、むしろ君らにぴったりかもね
0532デフォルトの名無しさん
2014/01/06(月) 13:22:30.680533デフォルトの名無しさん
2014/01/06(月) 14:50:58.74システム上のワーカーとしての生き方について何か不満でも見つけたのか?
0534デフォルトの名無しさん
2014/01/06(月) 14:56:11.930535デフォルトの名無しさん
2014/01/06(月) 15:28:10.56次に、美しくも壊れたコードに出会って絶望する
0536デフォルトの名無しさん
2014/01/07(火) 00:43:38.12使われてるかどうかと、言語そのものの良し悪しは
ビックリするほど無関係ってことはObjective-Cで実証済みだしな
0537デフォルトの名無しさん
2014/01/07(火) 01:10:03.82この糞仕様を何とかしろ
0538デフォルトの名無しさん
2014/01/07(火) 01:25:53.49どうなって欲しいんだ?
0539デフォルトの名無しさん
2014/01/07(火) 01:43:04.08あれ、こうなってほしいのは俺だけ?
0540デフォルトの名無しさん
2014/01/07(火) 02:10:38.87もうコレ駄目だわ
0541デフォルトの名無しさん
2014/01/07(火) 03:41:57.130542デフォルトの名無しさん
2014/01/07(火) 09:57:07.66Array(obj) に渡す引数 obj は列挙可能(enumerable)なオブジェクトであり、
obj を列挙した各要素から構成されるArrayオブジェクトを返す
結果として、引数 obj がハッシュの場合には:
{'a' => 1}.each do |x| p x; end # => ['a', 1]
となり、要素 ['a', 1] は概念としてはペア(pair, 対)である
従って Array({'a' => 1}) が [['a', 1]] を返すのは仕様に沿った正しい振る舞いである
ここで、もしも Array({'a' => 1}) が {'a' =>1} を返すことを期待したとすれば、
それは「ハッシュを列挙した要素はそのハッシュ自身である」という要求仕様になる
すなわち:
{'a' => 1}.each do |x| p x; end # => {'a' => 1}
である
そして、この要求が糞仕様であるというのは誰の目にも明白だろう
>>537,539には、るりま等でHashクラスとEnumerableモジュールを復習されることを助言する
0543デフォルトの名無しさん
2014/01/07(火) 10:03:13.56誤:>ここで、もしも Array({'a' => 1}) が {'a' =>1} を返すことを期待したとすれば、
> ....
> {'a' => 1}.each do |x| p x; end # => {'a' => 1}
正:>ここで、もしも Array({'a' => 1}) が [{'a' =>1}] を返すことを期待したとすれば、
> ....
> {'a' => 1}.each do |x| p x; end # => [{'a' => 1}]
0544デフォルトの名無しさん
2014/01/07(火) 20:53:47.43[{'a' => 1, 'b' => 2}] になってほしいのか?
[{'a' => 1}, {'b' => 2}] じゃないよな
0545デフォルトの名無しさん
2014/01/07(火) 22:00:20.77多少ご面倒でも自力で書くのがベター
irb> Array( 'abc' )
=> ["abc"]
irb> Array( 12 )
=> [12]
irb> Array( {'k'=>'v'} )
=> [["k", "v"]]
なんでやねん! カッコで括れや!
>>544
たぶん、でっかい要素1の配列になることが結構期待されてると思う
def Array(o)
if o.kind_of?(Array) then o else [o] end
end
こんな処理
0546539
2014/01/07(火) 23:29:08.39うん、その通り。
配列を作りたい時の元ネタって
配列か、そうでないか、の2種類しか気に留めないわけで
intだろうがハッシュだろうが余計なことせずに要素1の配列にしてほしい。
0547デフォルトの名無しさん
2014/01/08(水) 01:09:23.63pythonじゃないんだから余計なことせずにto_aを呼べばいいんだよ
0548デフォルトの名無しさん
2014/01/08(水) 01:13:31.190549デフォルトの名無しさん
2014/01/08(水) 03:20:53.57で、結果は(Arrayによってでなく)ハッシュ自身の振る舞いで決まると自然。
ttp://docs.ruby-lang.org/ja/1.8.7/method/Kernel/m/Array.html
いくら頭おかしいとか糞仕様といってもそういう言語やないか。
手続き脳的に配列を「作る」とか、Array()に型操作のIFを期待するとか、型判定が悪いと言ってるんじゃないよ。
0550デフォルトの名無しさん
2014/01/08(水) 05:51:13.68データが変換されろよ -> [o] もしくは o.flatten
みたいな期待の違いはあるんじゃない?
>>547
同じものがないから比較できない
d = {'a': 'val-a', 'b': 'val-b', 'c': 'val-c'}
l = list(d)
print l;
=> ['a', 'c', 'b']
TypeError出ると思ったが
0551デフォルトの名無しさん
2014/01/08(水) 15:45:38.740552デフォルトの名無しさん
2014/01/08(水) 19:25:34.430553デフォルトの名無しさん
2014/01/08(水) 20:00:44.580554デフォルトの名無しさん
2014/01/08(水) 21:48:26.60Class#methodと書くのはRubyの独特の記法ですか?
他の言語に似たような文化はありますか?
またRubyの場合メソッドとプロパティの境界が曖昧ですが
Class#Propertyとは書かないのですか?
0555デフォルトの名無しさん
2014/01/08(水) 22:00:05.46Rubyにプロパティはない
0556デフォルトの名無しさん
2014/01/08(水) 22:31:42.28Javadoc の @see や @link も似ていると思う。
文化じゃなくて規定と言うべきだろうけど。
0557デフォルトの名無しさん
2014/01/08(水) 22:55:02.960558デフォルトの名無しさん
2014/01/08(水) 23:00:25.380559デフォルトの名無しさん
2014/01/09(木) 11:25:21.94http://www.youtube.com/watch?v=IDOXTsQ9uK8
0560デフォルトの名無しさん
2014/01/09(木) 16:20:20.64cgi = CGI.new # ここでコケる。
ブラウザからのアクセスでは問題ない。
RESTツール使うと200返ってくるけど以下のエラー。(webrick)
ERROR CGIHandler: /Users/hisanaoichikawa/Sites/work/hoge.cgi:
/usr/local/Cellar/ruby/2.0.0-p353/lib/ruby/2.0.0/cgi/core.rb:663:in `Integer': can't convert nil into Integer (TypeError)
from /usr/local/Cellar/ruby/2.0.0-p353/lib/ruby/2.0.0/cgi/core.rb:663:in `initialize_query'
from /usr/local/Cellar/ruby/2.0.0-p353/lib/ruby/2.0.0/cgi/core.rb:827:in `initialize'
from /Users/hisanaoichikawa/Sites/work/hoge.cgi:11:in `new'
from /Users/hisanaoichikawa/Sites/work/hoge.cgi:11:in `<main>'
ERROR CGIHandler: /Users/hisanaoichikawa/Sites/work/hoge.cgi exit with 1
192.168.10.160 - - [09/Jan/2014:16:14:39 JST] "POST /Sites/work/hoge.cgi HTTP/1.1" 200 0
何か見直すところありますか?
0561デフォルトの名無しさん
2014/01/09(木) 16:30:11.10ここ
0562デフォルトの名無しさん
2014/01/09(木) 16:32:16.44cgiってブラウザだけのアクセスしか認めていないとか?…ですか?
0563デフォルトの名無しさん
2014/01/09(木) 16:53:53.660564デフォルトの名無しさん
2014/01/09(木) 17:05:29.89見ましたが、良く分からないです。
Integer型にキャストできませんでした。って事は何となく分かりましたが、POST時に何も値を渡さなくても同じエラーになります。
あ、でもPOSTでなくGETにしたら、通ったみたいです。
うーん、何がいけないんですかね…
0565デフォルトの名無しさん
2014/01/09(木) 18:18:47.92リクエストを見てみればいい。
ruby中でやってもいいが、俺は手軽にこうやる。
$ nc -lp 8888
0566デフォルトの名無しさん
2014/01/09(木) 20:37:50.55cgi/core.rbの663行目
stdinput.read(Integer(env_table['CONTENT_LENGTH'])) or ''
POSTリクエストのときは環境変数CONTENT_LENGTHの値を読んで整数に変換しようとしてるやん。
0567デフォルトの名無しさん
2014/01/10(金) 11:11:21.38ttp://www.ruby-lang.org/en/news/2014/01/10/ruby-1-9-3-will-end-on-2015/
勝手に環境変数読むのはお行儀よくないわな
0568デフォルトの名無しさん
2014/01/10(金) 11:48:43.93何言ってるんだ、CGIってプロセス(この場合ruby)を起動するときに、httpリクエストに応じて環境変数によって受け渡しする約束のことだろ。読まずに何しろと。
POSTなのでContent-lengthはあって欲しいが、なくても警告程度で補ってほしいとは思う。
0569デフォルトの名無しさん
2014/01/10(金) 12:55:33.091.9シリーズのバージョナップ自体は今年の2月で終わりなのよね
さあみんな2.0をつかうんだー
0570デフォルトの名無しさん
2014/01/10(金) 13:04:02.79まあ0 bytesと見なしても動くと思うけど
0571560
2014/01/10(金) 13:21:58.82Payloadに引き渡すデータを入力してPOSTするところをHeadersに設定してPOSTしていたのが原因でした。
Rubyと関係ないにも関わらず、ご回答下さった方、有難うございました。
因みにRESTツールはChrome ExtensionsのAdvanced REST clientです。
失礼しました。
0572デフォルトの名無しさん
2014/01/10(金) 17:35:08.22よかったな。
あと報告乙。
0573デフォルトの名無しさん
2014/01/10(金) 20:02:10.91[{"a": 1,"b": 1,"c": 88},{"a": 1,"b": 2,"c": 82},{"a": 1,"b": 3,"c": 79}]
こんな感じにしたいです。
{"array": [{"a": 1,"b": 1,"c": 88},{"a": 1,"b": 2,"c": 82},{"a": 1,"b": 3,"c": 79}]}
どうやったらできますでしょうか?
0574デフォルトの名無しさん
2014/01/10(金) 21:04:37.55a = [{"a"=>1,"b"=>1,"c"=>88},{"a"=>1,"b"=>2,"c"=>82},{"a"=>1,"b"=>3,"c"=>79}]
p a
p "array"=>a
#こんな感じにしたいです。
p ({"array"=>[({"a"=>1,"b"=>1,"c"=>88}),{"a"=>1,"b"=>2,"c"=>82},{"a"=>1,"b"=>3,"c"=>79}]})
0575デフォルトの名無しさん
2014/01/10(金) 21:07:40.250576デフォルトの名無しさん
2014/01/11(土) 10:29:12.63お、ちょっと前進しました!
配列だから緩い参照?(名前忘れました)で以降で参照した時にarrayキーが抜けてしまいます。
arrayキーを入れた配列を参照するにはどうしたらいいのでしょうか?
p "array"=>a.to_json #それっぽいJsonになった感じですが、
puts a #振り出しに戻る…
0577573
2014/01/11(土) 12:33:16.49以下の配列をJsonとして扱いたいです。(ループで各値を取りたい)
aj=[{"a": 1,"b": 1,"c": 88},{"a": 1,"b": 2,"c": 82},{"a": 1,"b": 3,"c": 79}]
p aj[0]["c"] # 88
みたいに取る方法ないですしょうか?
0578デフォルトの名無しさん
2014/01/11(土) 12:35:44.800579デフォルトの名無しさん
2014/01/11(土) 12:36:13.140580デフォルトの名無しさん
2014/01/11(土) 12:40:01.93一応rubyのハッシュは順序を保存してるから、[0]とかfirstでも見れるけど、
殆どの言語にはハッシュに順序ないから普通はeachで廻して取り出す
aj=[{"a"=> 1,"b"=> 1,"c"=> 88},{"a"=> 1,"b"=> 2,"c"=> 82},{"a"=> 1,"b"=> 3,"c"=> 79}]
p aj.first["c"]
p aj[0]["c"]
aj.each do |m|
p m["c"]
end
0581デフォルトの名無しさん
2014/01/11(土) 12:50:17.280582デフォルトの名無しさん
2014/01/11(土) 12:51:30.040583デフォルトの名無しさん
2014/01/11(土) 12:55:24.22でもその前にeachか
0584デフォルトの名無しさん
2014/01/11(土) 12:55:41.33> [{},{},{}].class
=> Array
ok ?
0585573
2014/01/11(土) 12:57:26.18> p aj.first["c"]
> p aj[0]["c"]
上記2つとも以下のエラーが出てしまいます。
hoge.cgi:52:in `[]': no implicit conversion of String into Integer (TypeError)
元のデータ(aj)が配列になってないのかなぁ…
.to_aでキャストしてるんですけど
0586デフォルトの名無しさん
2014/01/11(土) 13:02:33.32すまん
arrayだなそれw
Hashは[0]とかじゃ取り出せないわeachした時は順序通りってだけか
0587デフォルトの名無しさん
2014/01/11(土) 13:08:39.47http://ideone.com/
で全ソース貼ってくれたほうが早いと思う
ちょっとそっちのソースの状況がわからん
0588デフォルトの名無しさん
2014/01/11(土) 13:10:12.63Hashじゃないから文字キーで取り出せない、と言ってるようにみえる
p aj.first
p aj.first.class
0589573
2014/01/11(土) 13:19:27.56データ側の形式とかはいじれません。
データは文字列ですがJson_stringっぽい感じで来ます。
http://ideone.com/Wk2BSK
0590デフォルトの名無しさん
2014/01/11(土) 13:26:17.02旦 旦 旦 旦 旦 旦 旦 旦 旦 旦旦
旦 旦 旦 旦旦 旦 旦旦 旦 旦旦 旦
旦 旦 旦 旦 旦 旦. ∧_∧ 旦 旦旦 旦 旦 旦
旦 旦 旦 旦 旦 旦 (´・ω・`) 旦 旦 旦 旦 旦 旦
旦 旦 旦 旦 旦 旦. (o旦o ) 旦 旦 旦 旦 旦 旦
旦 旦 旦 旦 旦 旦. `u―u' 旦 旦 旦旦 旦 旦旦
0591デフォルトの名無しさん
2014/01/11(土) 13:27:49.53JSON("[" + data + "]").each{|h| h.each{|k, v| puts "#{k}: #{v}" }}
0592デフォルトの名無しさん
2014/01/11(土) 13:36:17.18aj = eval(data)
0593デフォルトの名無しさん
2014/01/11(土) 13:41:13.80できないわ
0594573
2014/01/11(土) 13:47:28.86おおお!!
ideoneの奴は綺麗に動きました!!
自前のではダメでした…cgi.params.classしてみたらStringじゃなくてHashでした。
で、Hash型?でideoneで実行しようとするとエラーになってしまいます。
うう。
0595573
2014/01/11(土) 13:52:22.63http://ideone.com/5B8XNz
0596デフォルトの名無しさん
2014/01/11(土) 14:03:07.70今dataが文字列ではなくて、配列
そして、
{"a": 2, "b": 3}
という書き方はできない。
{"a"=> 2, "b"=> 3}
は可能
{a: 2, b: 3}
は可能だが、意味が少々違って
{:a=> 2, :b=> 3}
と同じ意味になる。:aはシンボル
この辺はめんどくさい
0597デフォルトの名無しさん
2014/01/11(土) 14:12:36.90data='[{"a": 1,"b": 1,"c": 88},{"a": 1,"b": 2,"c": 82},{"a": 1,"b": 3,"c": 79}]'
JSON(data).each{|h| h.each{|k, v| puts "#{k}: #{v}" }}
0598573
2014/01/11(土) 14:13:41.16なるほど。
勉強になりました。
流石にスレの私物化になってしまうので、この辺で諦めます。
多分、Hashな配列?のデータは全体を文字列にしてどうにか処理する予定です。
スレ汚しすいませんでした。
0599デフォルトの名無しさん
2014/01/12(日) 20:04:07.57上級本のイメージがあったけどProcとlambdaの違いとかClassとModuleの関係とかきっちりとしたselfの意味とかそこら辺が曖昧な初心者こそ読むべき
0600デフォルトの名無しさん
2014/01/12(日) 20:56:49.670601デフォルトの名無しさん
2014/01/12(日) 23:50:40.25本当のプログラマにはなれない
0602デフォルトの名無しさん
2014/01/13(月) 00:38:15.45楽させてやれよ
0603デフォルトの名無しさん
2014/01/13(月) 00:45:47.76レスさえもらえればなんでもいいです
0604デフォルトの名無しさん
2014/01/13(月) 00:46:23.130605デフォルトの名無しさん
2014/01/13(月) 01:10:19.05そのようだな
0606デフォルトの名無しさん
2014/01/13(月) 01:13:17.73最近じゃ小中学生が学校でプログラミングの授業あるのも珍しくないけど
C言語じゃ無理だがRubyだから実現出来てるんだよね。
教育の場にこれ以上ない貢献だよな
0607デフォルトの名無しさん
2014/01/13(月) 02:55:28.39よく機械語・MASM自慢の人が来た
0608デフォルトの名無しさん
2014/01/13(月) 04:35:27.28小中学生でそういうの滅多に出てこないよな
やはりグレてないと部活とか受験優先になるのかな
0609デフォルトの名無しさん
2014/01/13(月) 04:40:54.340610デフォルトの名無しさん
2014/01/13(月) 10:59:19.970611デフォルトの名無しさん
2014/01/13(月) 11:39:15.68あと最初の言語の選び方とか
いきなりオブジェクト指向言語選んでひどい目にあったし
0612デフォルトの名無しさん
2014/01/13(月) 12:17:11.37としてsinatraをインストールしたのに
$LOAD_PATHにsinatraのパスが出てこない。
なのにrequire 'sinatra'でちゃんとsinatraを読める。
じゃあrubyは何を元にsinatraのパスを探してるのですか?
そもそも、$LOAD_PATHに出てくるgemと出てこないgemがあるのも謎です。。
0613デフォルトの名無しさん
2014/01/13(月) 12:24:08.610615デフォルトの名無しさん
2014/01/13(月) 12:52:27.08これは具体的に何?全部gem installで入れた?
0616デフォルトの名無しさん
2014/01/13(月) 21:54:59.14何かの病気でプログラマになるんだろ。中ナントカ病ってヤツ
0617デフォルトの名無しさん
2014/01/13(月) 21:57:34.71誰も最初の入り口と方向性を見つけられない。
何が酷いかって、最初の入り口にc++やHSPという罠が張りめぐらしてある
0618デフォルトの名無しさん
2014/01/13(月) 22:08:32.80甲子園を目指していた知人は、今では自動販売機のジュースを詰替えているよ
0619デフォルトの名無しさん
2014/01/15(水) 00:27:27.14今は以下のような分割方法を考えています
pattern = /^(\c+)\s+/ #パターンは例
ARGF.each_line{|line|
while line.size > 0
if line =~ pattern
puts $1
line = line[$1.size..-1]
else
raise "parse error :"+line
end
end
}
0620デフォルトの名無しさん
2014/01/15(水) 07:27:10.92http://docs.ruby-lang.org/ja/1.9.3/class/StringScanner.html
0621デフォルトの名無しさん
2014/01/15(水) 10:48:57.33# -*- encoding: UTF-8 -*-
print "Content-Type: text/plain\n\n"
require "csv"
file = cgi.params["csv_file"][0]
p file #ファイル名がちゃんと取れてる
CSV.open(file,"r") do |row| #ここでエラー
p row
end
エラー内容は
ruby/2.0.0/csv.rb:1254:in `initialize': no implicit conversion of StringIO into String (TypeError)
from /ruby/2.0.0-p353/lib/ruby/2.0.0/csv.rb:1254:in `open'
何がいけないんですかね?
0622デフォルトの名無しさん
2014/01/15(水) 11:04:15.020623デフォルトの名無しさん
2014/01/15(水) 11:14:54.04html側で以下のように指定してるのですが、
<form method="post" action="csv_import.cgi" enctype="multipart/form-data">
ruby側でも何か設定する必要があるんですか?
print "Content-Type: mime-multipart\n\n"
では、何も変わりませんでした。(同じエラーになった)
0624デフォルトの名無しさん
2014/01/15(水) 11:41:50.71それ1.8のサンプルコードじゃない?
現行の奴だとブロックに渡されるのは行じゃないよ
行が欲しいならopenじゃなくてforeach使って
0625デフォルトの名無しさん
2014/01/15(水) 12:12:07.18マニュアル引いたら、cgi.params["csv..."][0] でかえるのはファイルパスじゃなくIOオブジェクトだってさ
> the value is not a string, but an IO object, either an IOString for small files,
なのでこれをCSV.open()するとてエラーになる
小さいファイルに関しては、CSV.parse(file.read) do |row| p row end が一番近い
0626デフォルトの名無しさん
2014/01/15(水) 13:14:16.13おお!ありがとうございます!
以下で、それとなく出力できてるみたいです。
file = cgi.params["csv_file"][0]
CSV.parse(file.read) do |row|
p row
end
が、2バイト文字が16進数?になってしまっていて、こいつはどうしたらいいですかね…
0628デフォルトの名無しさん
2014/01/15(水) 14:38:40.11eachの中でif文入れればいいんでしょうけど、N番目ってどう取ればいいのやら
arr.each do |e|
puts e
end
0629デフォルトの名無しさん
2014/01/15(水) 14:58:30.260630デフォルトの名無しさん
2014/01/15(水) 15:09:04.29thx!
0631デフォルトの名無しさん
2014/01/15(水) 22:59:29.18字句解析用のライブラリが入っていたとは・・・
まさしくこれが欲しかったです、ありがとうございます
0632デフォルトの名無しさん
2014/01/15(水) 23:32:09.89とかヘンな演算子あったんですけど、なんですかこれ?
0633デフォルトの名無しさん
2014/01/15(水) 23:37:29.61honya が真ならば honya の値が honya に代入される
そうでないならば、5 が代入される。
ruby の初期化の流儀
しかも、戻り値を考慮した場面が多いかな
def honya
@honya ||= 5
end
とか
必要になったときに、値を生成する原則というか
0634デフォルトの名無しさん
2014/01/15(水) 23:40:30.94honya = 5 if honya.nil?
0635デフォルトの名無しさん
2014/01/15(水) 23:50:53.540636uy
2014/01/16(木) 01:44:11.28a |nil|= 5 # nil
a |false|= 5 # false
a |true|= 5 # true
キリッ
0637デフォルトの名無しさん
2014/01/16(木) 02:00:42.57自己代入ってやつだね。
ttp://docs.ruby-lang.org/ja/1.9.3/doc/spec=2foperator.html#selfassign
これ読むとわかるけど、 >>633 の「honya = honya || 5 の略」というのは間違い。
0638デフォルトの名無しさん
2014/01/16(木) 05:36:04.67良いサンプル教えて下さい。
0639デフォルトの名無しさん
2014/01/16(木) 08:43:54.92そのコード公開して出力結果とかも得られるサイトあったんですが
どこでしたっけ
0640デフォルトの名無しさん
2014/01/16(木) 10:50:47.16>>639
ideone.com
0641デフォルトの名無しさん
2014/01/16(木) 15:11:20.470642デフォルトの名無しさん
2014/01/16(木) 19:45:24.87できます
0643640
2014/01/16(木) 20:46:30.91何か良い方法ないでしょうか?
# -*- encoding: UTF-8 -*-
print "Content-type: text/html\n\n"
require "cgi"
cgi = CGI.new
require 'rubygems'
require "mysql"
require 'mysql2'
require 'json'
require 'json/pure'
require "csv"
require 'nkf'
begin
file = cgi.params["csv_file"][0]
#CSV.parse(file.read) do |a,b,c,d|
CSV.parse(file.read, :encoding => Encoding::UTF_8) do |a,b,c,d|
p a.force_encoding("utf-8")
p b.force_encoding("utf-8")
end
block in <main>': incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
from /usr/local/Cellar/ruby/2.0.0-p353/lib/ruby/2.0.0/csv.rb:1717:in `each'
from /usr/local/Cellar/ruby/2.0.0-p353/lib/ruby/2.0.0/csv.rb:1296:in `parse'
0644デフォルトの名無しさん
2014/01/16(木) 20:58:25.670645デフォルトの名無しさん
2014/01/16(木) 21:29:08.010646デフォルトの名無しさん
2014/01/16(木) 21:57:18.77とかいうのがめんどくさい
いつもkconvで手動でtosjisやtoutf8とかしてるけど内部エンコーディング、外部エンコーディングについて勉強したら幸せになれますか?
0647デフォルトの名無しさん
2014/01/16(木) 22:02:04.130648デフォルトの名無しさん
2014/01/16(木) 22:18:45.20windowsを捨てれば幸せになれます。
0649デフォルトの名無しさん
2014/01/16(木) 23:15:10.78レベルが異様に低いw
0650デフォルトの名無しさん
2014/01/16(木) 23:22:59.230651デフォルトの名無しさん
2014/01/16(木) 23:41:20.31面倒も何も
そういうのはRubyに限らずどの言語を扱うにしてもぶち当たる問題という常識レベルの話。
0652デフォルトの名無しさん
2014/01/17(金) 00:07:37.590653デフォルトの名無しさん
2014/01/17(金) 00:35:39.32ただ、sjisやらeuc-jpにutf16は終焉だね。
0654デフォルトの名無しさん
2014/01/17(金) 01:01:33.05def fib(n)
return n if (0..1).include? n
fib(n-1) + fib(n-2)
end
print fib(5)
は上手く動きますけど、
メモ化を使ったプログラム
def fib2(n)
@series ||= []
@series[n] ||= fib2(n-1) + fib2(n-2)
end
print fib2(5)
は5でもstack over deepみたいなエラーが出てしまいます?
なぜなんでしょ?
0655デフォルトの名無しさん
2014/01/17(金) 01:53:25.81その再帰関数はいつ再帰が終わるの?
0656デフォルトの名無しさん
2014/01/17(金) 02:07:15.780657デフォルトの名無しさん
2014/01/17(金) 03:08:20.90. / \ . .:.:=ニ| 本 す
| 何 お お | /.:.:.:.:.:.:.: | 当 :
| で .か : | /.:.:.:.:.:.:.:.:.:.:.| す す
| で し |/:.:.:/:.:./:.:.:.:.:.:.:| み み
| し い /:.:.:/:.:./\:.:.\:| ま. ま
| ょ な |:.:./:.:./ : : |:.:.:.: || せ せ
| : |:.〈\|: : : :|___|\ ん ん
| |:.:i|≧、: : : :/二L_\_ __
. \___ /L:]「以:, : 〈付 ア |:.:」/ハ:.:
\( |:.:.|:. :/ `^ = |:.:.:|[//.:.|
〃 _ |:.:.|i:. ` _ J _|:.:.:|{/.:i.:.|
| 、\ |:.:.l|iヘ ー┘ u _ -ニ|:.:.:|.:.:.:l.:.|
| \_〉 、:.:.:|く\` _ -ニΞ ]|:.:.:|i:.:.:|レ
厂\{_ /\| \ ̄}=ii=====|:.:.:||//
/ \ 〉 ]/ \ \ ∨ }{ :|/ /
0658uy
2014/01/17(金) 05:43:47.72toutf8 , tosjis , toeuc で動かなかったら諦める事が決定されてるから
文字コードで詰まる事は無いな
0659デフォルトの名無しさん
2014/01/17(金) 09:00:29.100660デフォルトの名無しさん
2014/01/17(金) 09:15:30.120661デフォルトの名無しさん
2014/01/17(金) 11:42:34.33天才は実現までのコストを度外視するから成功する
0662デフォルトの名無しさん
2014/01/17(金) 15:08:26.360663デフォルトの名無しさん
2014/01/17(金) 15:33:26.580664デフォルトの名無しさん
2014/01/17(金) 15:57:24.340665デフォルトの名無しさん
2014/01/17(金) 16:35:08.870666640
2014/01/17(金) 18:00:06.15CSV.parseってcsvのデータがダブルクォーテーションでくくられてないとダメなのでしょうか?
CSV.parse(file.read, :row_sep => :auto, :col_sep => ',') do |a,b,c,d|
end
/ruby/2.0.0/csv.rb:1849:in `block (2 levels) in shift': Unquoted fields do not allow \r or \n (line 2). (CSV::MalformedCSVError)
0667デフォルトの名無しさん
2014/01/17(金) 18:13:06.19つ refe csv
0668デフォルトの名無しさん
2014/01/17(金) 18:17:50.95なぜかいつも解析側が文句言われるんだけど、筋違いだからね本来
0669640
2014/01/17(金) 18:46:12.62> :quote_char
> フィールドをクオートする文字を指定します。長さ 1 の文字列でなければなりません。
\(^o^)/オワタw
>>668
CSVの規格ではダブルクォーテーションの有無は確かない筈。
これは、Rubyのバグ!( ー`дー´)キリッ
はい。
困ったw
0670デフォルトの名無しさん
2014/01/17(金) 18:53:29.960671640
2014/01/17(金) 18:56:52.01ないですよ。レコード分ける改行コードはCRLFですけど…
まさか、これが悪さして…いや、row_sep => autoにしてるか。
0672デフォルトの名無しさん
2014/01/17(金) 19:04:35.68RFC4180的にはアウトだが、CSVは既に莫大なデータやジェネレータが存在するのでどうにもならん
0673デフォルトの名無しさん
2014/01/17(金) 19:08:50.68もし Shift_JIS のまま CSV ライブラリに食わせてるんだったら
UTF-8 に変換してから食わせたほうがいいと思う
0674デフォルトの名無しさん
2014/01/17(金) 19:16:48.740675640
2014/01/17(金) 19:50:56.84すいませんでした。
>>673を見て思うところがあってバイナリエディタでcsvファイル見たら余計な0Dとかありました。
取り除いたら>>666で普通に動きました。
Rubyのバグとか言って申し訳ございません。
バグは私でした。
ダブルクォーテーションはなしでできました。
本当にすいません…。
0676uy
2014/01/17(金) 20:12:11.560677デフォルトの名無しさん
2014/01/17(金) 20:17:06.700678640
2014/01/17(金) 20:17:59.36ワロタw
CSV.parse(file.read, :row_sep => :auto, :col_sep => ',') do |a,b,c,d|
p a.forceencoding("utf-8") #S-JIS -> UTF-8エンコしたいけどエラー
end
from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
# -*- coding: shift_jis -*-って指定してるのですが…ASCII-8BIT?
どうすりゃいいのでしょうか?
0679デフォルトの名無しさん
2014/01/17(金) 20:30:41.010680640
2014/01/17(金) 20:44:16.35>>678は多分解決しました。
p a.forceencoding("utf-8") #S-JIS -> UTF-8エンコしたいけどエラー
この部分でなく、それより下でs-jisと上でエンコしたutf-8を繋げているのが原因っぽいです。
s-jisのやつもutf-8にしたらいけました。失礼しました。
0681デフォルトの名無しさん
2014/01/17(金) 21:35:17.460682デフォルトの名無しさん
2014/01/17(金) 23:15:29.86http://magazine.rubyist.net/?0025-Ruby19_m17n
# 1.9(.1)が出たのって、もう5年も前なんだな…
0683デフォルトの名無しさん
2014/01/17(金) 23:33:43.55>def fib2(n)
>@series ||= []
>@series[n] ||= fib2(n-1) + fib2(n-2)
>end
これってオライリーの「Rubyベストプラクティス」のp153にあったのですが、
それが間違ってるってことなんですかね?
0684デフォルトの名無しさん
2014/01/18(土) 00:19:59.87コピペして確実に動く例文ばかりじゃないから。
0685デフォルトの名無しさん
2014/01/18(土) 00:42:57.060686デフォルトの名無しさん
2014/01/18(土) 00:47:06.88http://majesticseacreature.com/rbp-book/pdfs/rbp_1-0.pdf
0687デフォルトの名無しさん
2014/01/18(土) 02:31:17.50自己解決。
デザインパターン スレッド ruby
でグーグル先生に問い合わせしたら幸せになれた。
0688デフォルトの名無しさん
2014/01/18(土) 02:55:56.040689デフォルトの名無しさん
2014/01/18(土) 12:19:03.15これ?
http://www.oreilly.com/catalog/errata.csp?isbn=9780596523015
でもこれで
def fib(n)
@series ||= []
@series[n] ||= fib(n-1) + fin(n-2)
end
これでも同じというか3行目の2つめのfinってどっからでてきたの?
0690デフォルトの名無しさん
2014/01/18(土) 12:33:35.87そのコード自体は読者による指摘だから、実際には反映後の書籍を見ないとだめだと思う。
0691デフォルトの名無しさん
2014/01/18(土) 12:40:06.83def fib(n)
@series ||= []
@series[n] ||= fib(n-1) + fin(n-2)
end
になってるね。
finの間違いもそのまま。
まあ、オライリーの質的低下は昔からだけど、いろんな意味で雑だなあ。
fibにしたところでやっぱり動かないわけだし、こんな短いコードぐらい
訳者も手を抜かずにテストすればいいのに。
0692デフォルトの名無しさん
2014/01/18(土) 12:51:53.490693デフォルトの名無しさん
2014/01/18(土) 14:32:07.31指摘を反映すらし切れないのか
0694デフォルトの名無しさん
2014/01/18(土) 14:38:05.02@series=Array.new
@series[0] = 0
@series[1] = 1
def fib(n)
@series ||= []
@series[n] ||= fib(n-1) + fib(n-2)
end
puts fib(10) # => 55
0695デフォルトの名無しさん
2014/01/18(土) 15:47:37.79オリジナル英語版ー初期化がなかった
オリジナルErrataー初期化コードを入れたつもりだけど、不完全。おまけに関数名を間違える新たなバグ混入
日本語版ーオリジナルErarraを検証もなしにコピペ
さすが、オライリーの「ベストプラクティス」は見習うべき点が多いなあw
0696デフォルトの名無しさん
2014/01/18(土) 17:30:00.81@series ||= [0,1]
@series[n] ||= fib(n-1) + fib(n-2)
end
print fib(10) # => 55
とか
0697デフォルトの名無しさん
2014/01/18(土) 19:59:52.07series[n] ||= fib(n-1,series) + fib(n-2,series)
end
print fib(10) # => 55
マジで焼け石に水
本燃やせ
0698デフォルトの名無しさん
2014/01/18(土) 20:07:39.610699デフォルトの名無しさん
2014/01/18(土) 20:16:53.33http://www.amazon.co.jp/dp/4873113946/
出版社: オライリージャパン (2009/1/26)
5年も経っているんだけど、
完全 2.0 版でないんかいな・・・
0700デフォルトの名無しさん
2014/01/18(土) 21:52:46.77そうでもないと思うけど
0701デフォルトの名無しさん
2014/01/18(土) 23:22:31.30これfib(1000)とかでも一瞬で結果が表示されるな。
どういうマジック?
0702デフォルトの名無しさん
2014/01/18(土) 23:26:06.360703デフォルトの名無しさん
2014/01/19(日) 00:07:06.94>>654でメモ化を使ったコードだって言ってるじゃん
元ソースはバグってたけど
0704デフォルトの名無しさん
2014/01/19(日) 00:08:39.78959から先はstack level too deepが出るな
0705デフォルトの名無しさん
2014/01/19(日) 00:19:53.270706デフォルトの名無しさん
2014/01/19(日) 00:27:16.89rubyの再帰の上限は調べても意味ない
適当に前後で変数宣言したり、
しばらく時間経ってからもっかいやれば再帰できる上限変わってるよ
0707デフォルトの名無しさん
2014/01/19(日) 12:33:00.69つかえねーな、Rubyはやっぱり
0708デフォルトの名無しさん
2014/01/19(日) 12:33:58.250709デフォルトの名無しさん
2014/01/19(日) 12:55:47.03ruby1.8とかの話だろ多分
1.9以上ならもっといけるはず
0710デフォルトの名無しさん
2014/01/19(日) 13:24:45.660711デフォルトの名無しさん
2014/01/19(日) 13:26:54.350712デフォルトの名無しさん
2014/01/19(日) 13:37:22.73そんなもんあんの?初めて聞いた
0713デフォルトの名無しさん
2014/01/19(日) 13:40:55.520714デフォルトの名無しさん
2014/01/19(日) 13:42:37.500715デフォルトの名無しさん
2014/01/19(日) 13:46:12.430716デフォルトの名無しさん
2014/01/19(日) 13:49:10.17Rubyは徳島にすらないのに。
0717uy
2014/01/19(日) 15:32:12.09VMインストラテーションセウエンスコンパイルオプションの
タールコールオプチミゼーションをTRUEにして
トラースインストルクションをFALSEにして
エバルで包むやり方と、tcoを定義する方法な
http://ideone.com/5ajcVd
0718デフォルトの名無しさん
2014/01/19(日) 15:43:14.69# stakki ovver flow
# stakki ovver flow
# stakki ovver flow
0719デフォルトの名無しさん
2014/01/19(日) 15:46:20.36Very good!!
0720デフォルトの名無しさん
2014/01/19(日) 16:24:43.91元ネタはここらへんかな?
・Rubyで末尾再帰最適化をする。 - Homoiconic Days
http://athos.hatenablog.com/entry/20110119/p1
・Rubyの末尾再帰最適化を理解する
http://melborne.github.io/2011/01/20/Ruby/
どちらにしても、勉強熱心で感心だね
0721uy
2014/01/19(日) 17:58:32.30合間に行うストレス発散がruby
0722デフォルトの名無しさん
2014/01/19(日) 18:30:54.290723デフォルトの名無しさん
2014/01/19(日) 19:06:38.90きっとエロ画像収集だよ。<高尚
0724uy
2014/01/19(日) 19:19:43.75活動の内容は言えないが高尚な活動である
0725デフォルトの名無しさん
2014/01/19(日) 19:27:52.460726デフォルトの名無しさん
2014/01/19(日) 21:20:29.300727デフォルトの名無しさん
2014/01/19(日) 22:10:56.740728デフォルトの名無しさん
2014/01/20(月) 02:38:42.89どの言語だって得意なドメインを実績として持っている。
Pythonなら科学技術計算、Perlなら*nixにワンライナー、PHPならWebサイト作り。
けれど、特に何かに向いてたわけでもないのにRubyってコミュニティは膨らんでいった。
Rubyを使うなんて理由が既成ルールへの不満と社会への反逆を意味するんだ。
Rubyって言語は、いつだって目先の利益に忠実で最先端な機能が実装されている。
何の肩書も華やかな経歴もないけれど自分には才能があるとか、
他の連中とは違うなんて考える人たちが、Googleが使っているからとか、
大規模サイトでの実績があるからとか、アカデミックな理論やバックボーンなんて理由で、
それらの言語を使うはずがない。連中にとって、それらは本来的に憎むべき敵だから。
むしろ、そうした華やかな経歴がないからこそ彼らはRubyを使ったのではないか?
Rubyってコミュニティは、今後もアンダーグラウンドな性質を持ち続けると思うね
0729デフォルトの名無しさん
2014/01/20(月) 03:23:12.33結局何が言いたいのかな?
TOIBE Jan 2014 で 12位でPerlより1つ上。
アングラどころかどメジャー言語ですよ。
アナタの中での脳内コミュニティ批判したかっただけかな?
0730デフォルトの名無しさん
2014/01/20(月) 03:51:15.13awk,bc,grep,tcsh,bashなどのposixの代わりと複素数・行列・テキスト処理で使うことが多いね
次はlength,sizeとかcollect,mapとかアクセスが一つではなく複数あるのはどちらかにしてリファクタリングして欲しい
0731デフォルトの名無しさん
2014/01/20(月) 03:59:45.96CやJavaの得意なドメインって?
汎用というのもあるし、それが必要なこともある。rubyが何にでも向いてるというつもりもないけど。
0732デフォルトの名無しさん
2014/01/20(月) 04:05:07.51どんな言語経験者でも Ruby で慣れた名前を使えるように、複数個提供されているんだ・・・
と思っていた。
0733デフォルトの名無しさん
2014/01/20(月) 04:42:04.48あと1.9だけどputc(int)の仕様だけ他と違うから、これはバイナリ(ascii-8bit)専用としてputc(int):obj; get(void):int に変更して、cと同じく1バイト(unsigned char)処理用のapiにして欲しい
0734デフォルトの名無しさん
2014/01/20(月) 04:47:58.69putc(int):void
getc(void):int
cと同じく1バイト(unsigned char)処理用のapiが欲しい
rubyでバイナリ処理はなれてないと少し難しいから
0735デフォルトの名無しさん
2014/01/20(月) 05:08:04.820736デフォルトの名無しさん
2014/01/20(月) 06:11:08.44それ以外価値が無いとも言える
0737デフォルトの名無しさん
2014/01/20(月) 15:02:10.620738デフォルトの名無しさん
2014/01/20(月) 16:00:38.29以下のコードはコンバートできていると思っているのですが、文字化けしています。
これはブラウザのエンコード設定がutf-8だからでしょうか?
エンコードコンバート方法は間違っていないでしょうか?
http://ideone.com/YIvMcr
0739デフォルトの名無しさん
2014/01/20(月) 16:22:38.09What encoding is used in the source code and in the input stream?
UTF-8.
0740デフォルトの名無しさん
2014/01/20(月) 16:24:28.910741デフォルトの名無しさん
2014/01/20(月) 16:48:02.99p id.codepoints
p dst.codepoints
0742738
2014/01/20(月) 16:51:49.790743738
2014/01/20(月) 17:15:38.42>>741
こんなんなりました。
#<Enumerator: "\x{E382}\x{82E3}\x{8282}\x{E381}\xA1":codepoints>
#<Enumerator: "繧ゅb縺。":codepoints>
0744デフォルトの名無しさん
2014/01/20(月) 18:38:53.790745デフォルトの名無しさん
2014/01/20(月) 18:47:24.36ソースコードが UTF-8なんじゃないの?
0746デフォルトの名無しさん
2014/01/20(月) 18:59:42.450747uy
2014/01/20(月) 19:11:01.06,.-‐-、 Ξ バ て
,.-─-、 / ! 三 グ `
/ i ',__,,,,.....i i | Ξ が ま
i /、_,!::::::::::::'-'、___,.ノ、 三 で た
ヽ、__,./ ;::::i::::;:::;: :;::::::ヽ. × Ξ た R
× ,.イ::::/:::::レ::ハ:!、!__,.ハ::ル:::::', × 三 訳. U
レ::::::レ:'r‐'i´ レ',!'-'、。o:::::::::ヽ Ξ だ. B
ハ::o。!'⌒ " ハ:::ハ::::,.-'、. 三 が Y
.゜i:::::7" i' ̄`i /:::!::::::::/ @i 彡 の
イ:::人 ヽ ノ i::::ハ::::/ /、 / 川 l | l l | l |
V::ハ::>ー-r‐='T´V,.イ ー、/`ヽ
× ` ,.く,.〈〉、_,.イ ヽ、___ノ、/ノ
× r〈 ! ヽ、___二ン
7ヽイ__,.'-っ、 〈 ,,..
〈  ̄ ノ 、 `ヽ ゛
`ー7''" ̄´ ヽ
0748738
2014/01/20(月) 19:11:23.92http://ideone.com/YIvMcr
途中、文字列をutf-8に変換して外部に出力したいのです。
ideoneがs-jis指定してもutf-8になってしまうのかな
0749デフォルトの名無しさん
2014/01/20(月) 19:25:37.690750デフォルトの名無しさん
2014/01/20(月) 19:27:13.43Ruby1.9/2.0の文字エンコーディングの指定と変換においては「適当にやる」と全く動作しない
完全に学習してマスターするといい
もう一度だけ言うけど、適当にやると絶対に動かない
0751738
2014/01/20(月) 19:38:28.80ideoneでなく自前の環境で上手くいきました。
ideoneの環境の問題のようです?
>>749
4行目の出力結果なんですけど、間違ってますか?
0752デフォルトの名無しさん
2014/01/20(月) 19:41:35.79e38282 e38282 e381a1 でなく e382 82e3 8282 e381 みたいな変な区切り方されてるし
0753738
2014/01/20(月) 19:46:19.62まさにおっしゃる通りでした。
無勉強でコピペで解決できる問題ではなかったです。
>>752
やはりそうですか。
お騒がせしました。
0754デフォルトの名無しさん
2014/01/20(月) 19:58:42.99> What encoding is used in the source code and in the input stream?
> UTF-8.
0755デフォルトの名無しさん
2014/01/21(火) 00:16:01.980756デフォルトの名無しさん
2014/01/21(火) 01:03:43.470757デフォルトの名無しさん
2014/01/21(火) 01:53:26.07多分無理じゃないかな
%Wなら
%W(a #{} b)
でいけるけど。
0758デフォルトの名無しさん
2014/01/21(火) 13:31:47.24もう少し良い書き方ってないですか?
a = (10..rand(10..30)).reject {|m| m.odd? }.sample
p a
0759デフォルトの名無しさん
2014/01/21(火) 13:38:17.290760デフォルトの名無しさん
2014/01/21(火) 13:45:05.34ありがとうございます!
自分の書き方だとrandとsampleで2回もランダム呼び出していたか・・・
0761デフォルトの名無しさん
2014/01/21(火) 13:45:37.790762デフォルトの名無しさん
2014/01/21(火) 14:42:58.70%w(a \ b) #=> ["a", " ", "b"]
↑\の後ろは空白2つね
空白をエスケープすればできるよ
0763デフォルトの名無しさん
2014/01/21(火) 14:44:00.06ああごめん、空文字列か
忘れて
0764デフォルトの名無しさん
2014/01/21(火) 16:37:23.38私はRailsなどを使わずにスクラッチでcgiでやろうと思っているのですが、
Webrickでhtmlアクセスして、あとはAjaxでRuby側はcgiでやります。
しかし、Ajax先のアドレスは.rbと.cgiどちらがいいですか?
ありがとう。
0765デフォルトの名無しさん
2014/01/21(火) 17:02:27.820766片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/21(火) 17:52:55.91Rubyで作ってることを隠蔽した方がいい
0767デフォルトの名無しさん
2014/01/21(火) 20:18:35.100768片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/21(火) 21:06:13.010769デフォルトの名無しさん
2014/01/21(火) 21:10:22.40システムが許す範囲内で好きにするといい
「Rubyでは○○でなければならないor△△が好ましい」というようなことはない
0770片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/21(火) 21:13:15.210771デフォルトの名無しさん
2014/01/21(火) 21:19:54.550772デフォルトの名無しさん
2014/01/21(火) 21:26:29.45レスしたのはお前だけ
0773デフォルトの名無しさん
2014/01/21(火) 21:27:43.680774片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/21(火) 21:43:29.04鍵穴だろうが入口だろうが隠す。
秘密基地とはそういうものだ。
0775デフォルトの名無しさん
2014/01/21(火) 21:55:40.500776デフォルトの名無しさん
2014/01/21(火) 23:20:36.12あとURLは実装に依存しないようにした方が寿命が長くなる。
0777デフォルトの名無しさん
2014/01/21(火) 23:29:45.910778デフォルトの名無しさん
2014/01/22(水) 00:09:22.520779デフォルトの名無しさん
2014/01/22(水) 00:34:55.21わざと違う情報を出したりして。
httpヘッダにもある。
0780デフォルトの名無しさん
2014/01/22(水) 05:39:52.60Railsみたくディレクトリで
routingもどきにしても良い
0781デフォルトの名無しさん
2014/01/22(水) 08:37:33.780782デフォルトの名無しさん
2014/01/22(水) 12:16:31.593レスも追えないのかよw
0783デフォルトの名無しさん
2014/01/22(水) 23:45:27.13rubyのwebプログラミングはRails以外本当に糞。
0784デフォルトの名無しさん
2014/01/22(水) 23:51:35.57ほんとうにベストなものが一つあるなら、他に意味はない
0785デフォルトの名無しさん
2014/01/22(水) 23:58:18.70ほんとうにベストなものが一つあるなら、他に意味はない
0786デフォルトの名無しさん
2014/01/23(木) 00:27:35.71ほんとうにベストなものが1つあるなら、他に意味はない
Javaだけあればいい
ほんとうにベストなものが1つあるなら、他に意味はない
MySQLだけあればいい
ほんとうにベストなものが1つあるなら、他に意味はない
0787デフォルトの名無しさん
2014/01/23(木) 03:07:41.43それを突き詰めていくとプログラミング自体いらなくなっちゃいますよ
0788デフォルトの名無しさん
2014/01/24(金) 00:13:41.470789デフォルトの名無しさん
2014/01/24(金) 02:07:37.280790デフォルトの名無しさん
2014/01/24(金) 03:49:23.29多分わざと残そうとしない限り研究職しかやらない感じになってくるよ
プログラムの命令を原子記号だとするなら、組み合わせは無限だけれど
鉱山に行って鉄や銅を掘り起こすような作業はいつまでも人が人力でやることじゃない
鉄を掘り出すのは、やろうと思えば機械でやれるさ、 で、最終的なところだけ人の手が加わるだけ
プログラミングにしても、スクラップのようなネット上にある膨大なソースから
色んなものをピックアップして
加工するまではAIにやらせて、最終的なところだけ人がやる
スタイルになると思う
0791デフォルトの名無しさん
2014/01/24(金) 03:56:05.55それをプログラミングと云うようになるだけかもよ。
俺にとってプログラミングとはコンピュータに対する教育。
0792デフォルトの名無しさん
2014/01/24(金) 03:56:09.10入力データ 2 3 を入れたら 6 を
7 8 を入れたら 56 を
こんな感じに、入力データと、出力データのサンプルをいっぱい要素として与えて
ソースコードを、総当たり的な感じでAIに作らせる事は可能だと思う
それを鉱山から採掘した鉄を加工した段階だとすれば
最終的に人の手が加わるのは、加工されたそのソースコードを
どんな用途に使うか? が、AIには考えられない事だから、人の手が加わる場所
0793デフォルトの名無しさん
2014/01/24(金) 03:58:59.840794デフォルトの名無しさん
2014/01/24(金) 04:04:27.460795デフォルトの名無しさん
2014/01/24(金) 04:09:37.72入力データ: 「2 , 3」
とか数値を入れるんじゃなくて
入力文章:「○○行程度のRubyで書いた電卓のソースが欲しい」
等を伝える
で、文章を読み取ったAIにソースコードを出力してもらう
ここまで出来れば、
「○○なメソッドが欲しい」「△△なメソッドが欲しい」を、伝えて
ソースをメタして貰って、自分は一切ソースコードを書かずに、何かを作る
あとの問題は、ソースコードのメタから作れる範囲のアプリだけで
人が満足出来るかどうかにかかってる「まぁこんなもんでいいかな」ってなれば
その時にプログラミングは終了
0796デフォルトの名無しさん
2014/01/24(金) 04:10:19.420797デフォルトの名無しさん
2014/01/24(金) 04:13:06.11テンプレートじゃなくて
「2*4」 → プログラム → 「8」
ブルートフォースのように総当たりでソースコードを生成する
最初はブルートフォース、そこで作れるようになったら辞書アタックに進化させていくだけ
0798デフォルトの名無しさん
2014/01/24(金) 04:15:14.47絞りこみが出来なければ組合せ爆発で死ぬ
0799デフォルトの名無しさん
2014/01/24(金) 04:18:44.19脱原発もな
0800デフォルトの名無しさん
2014/01/24(金) 04:19:34.281*1 ...1*2...9*9 の九九の結果を出力プログラムのソースコードのメタをして貰うとする
そのソースコードは別に、中で「九九の計算」とかやってなくてもいいんだよ
if argc[0] == 5 && argc[1] == 4 then print "20" end
とか、こんな バカげたソースでも別に良い
そういうごっちゃごちゃの状態でも、とりあえず条件として
「1*1..9*9が上手く行くソースコードください!」 の条件を、ブルートフォースでソースコード生成して貰えれば、それで俺の勝ち
一般PCではソースコードの自動生成に処理速度が間に合わないだけで
京(スパコン)だったら出来るスペックはあるさ
0801片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/24(金) 04:19:57.52人間が「この範囲が整数を表してる」と教えないと無意味な計算で組合せ爆発で死ぬ。
0802片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/24(金) 04:23:29.970803デフォルトの名無しさん
2014/01/24(金) 04:23:34.18「 1 と表示するプログラムのソースコードをメタしろ 」
これを最小限で行うには
p 1 で良い。
つまり、アルファベット大文字小文字 + 各種記号 + 数値で 100くらいあるか?
だから
「p 1」は3文字しかないから
100^3 回ループ処理してれば「p 1」というソースコードにブルートフォースでも辿り着く
スパコンだったらもうちょっと行ける
0804デフォルトの名無しさん
2014/01/24(金) 04:24:49.18HDLは既にそうなってるな
0805デフォルトの名無しさん
2014/01/24(金) 04:27:27.53出力までが出来たら、今度はそれを最適化する為の学問を発展させる
のと
あと、所詮はプログラムの入力と演算結果なんて、
突き詰めればハッシュと変わらないので、メモリを参照するだけで答えが出てもいいはずだ
どのくらいHDD容量が必要か知らんけど、無計算で結果出力は出来る
0806片山博文MZコスモ ◆T6xkBnTXz7B0
2014/01/24(金) 04:29:25.04指数関数的に爆発するから、まったくのランダムで複雑なプログラムを生成するのは、実用上無意味。
単純な入出力関数なら実用化可能。
0807デフォルトの名無しさん
2014/01/24(金) 04:36:03.924,5年前に自分が辿り着いた答えと今考えても同じになった
0808デフォルトの名無しさん
2014/01/24(金) 04:42:55.87量子力学を理解してるか?
量子コンピュータは作れる
けど作れたからといって、それをすぐに広めちゃいけない状況にある
ITバブルがはじけるから
100年じゃ広まらないだろうけど
段階を通じてITバブルを縮小化させながら量子コンピュータを広めてプログラミングは終了
0809デフォルトの名無しさん
2014/01/24(金) 09:05:44.34そのまま妄想に耽って車にでも撥ねられろ。
0810デフォルトの名無しさん
2014/01/24(金) 09:34:32.65↓
まったくわからない
↓
プログラムなんていずれなくなるから無意味(`・ω・´)キリッ
たぶんこんな感じ
0811デフォルトの名無しさん
2014/01/24(金) 20:04:00.24胸が騒ぐな
0812デフォルトの名無しさん
2014/01/24(金) 20:05:18.63新しい反復作業→自動化の流れはなくならない
0813デフォルトの名無しさん
2014/01/25(土) 14:56:30.17なぜかこれを思い出した
http://www.geocities.jp/afi_651/Asuka1.jpg
0814デフォルトの名無しさん
2014/01/25(土) 23:11:56.540815デフォルトの名無しさん
2014/01/25(土) 23:23:25.29反復作業(同じ勢いで水が出るように水を加える事)を自動化したつもりでも実は修正が必要で、
さらにその修正作業を自動化するために、2番目の自動化を付け加え、
さらには3番目の自動化を付け加えるっていう感じが何となく似てると思ったんだよ
0816デフォルトの名無しさん
2014/01/26(日) 22:08:47.810817デフォルトの名無しさん
2014/01/26(日) 22:22:32.110818デフォルトの名無しさん
2014/01/26(日) 22:50:16.02// local
$gem dependency hoge
// remote
$gem dependency hoge --remote
0819デフォルトの名無しさん
2014/01/26(日) 23:00:55.84どうすれば解決できるのでしょうか?
最終的に、Rubyでrequire'gtk2'をしてうまく動くようにしたいです。
0820デフォルトの名無しさん
2014/01/26(日) 23:11:27.930821デフォルトの名無しさん
2014/01/26(日) 23:19:43.45大学の課題で渡されたコードが1.8.7準拠で作られているんです…
0822デフォルトの名無しさん
2014/01/26(日) 23:22:07.58古いRubyとの差はその都度読みかえろ
0823デフォルトの名無しさん
2014/01/26(日) 23:45:49.57他のヤシラが言うように、Ruby2.x(または1.9)で試すことを勧める
多くのケースで、Ruby1.8.7向けに書かれたコードはそのまま動くし、
たとえ動かなかったとしても僅かな修正で済む
もし問題が起きたなら、ここで質問すればいい
どうしてもRuby1.8上へインストールしたいのなら、
Ruby-GNOMEプロジェクトのsourceforgeサイトから
tar.gzアーカイブをダウンロードして手作業でインストールする
http://sourceforge.net/projects/ruby-gnome2/files/
もし使いたいGUI機能がGTK2だけでUnix環境(OSX or Linux)ならば、
それほど苦労することなくインストールできるはず
(ただし、最低限の英語読解とUnixの知識は必要)
この場合、ダウンロードするのは ruby-gtk2-2.1.0.tar.gz だけでいい
0824デフォルトの名無しさん
2014/01/27(月) 00:34:43.39hogeを使うような屑にきいてないから書かなくていいですよ。
いちいち手間を取らせるのも悪いですし。
0825デフォルトの名無しさん
2014/01/27(月) 00:37:06.370826デフォルトの名無しさん
2014/01/27(月) 00:40:43.82hogeがfooやらと一緒だって分かってていってるならキチガイだし
0827デフォルトの名無しさん
2014/01/27(月) 00:46:35.28いつ退院したの?
ネットは精神病によくないって言われなかった?
0828デフォルトの名無しさん
2014/01/27(月) 00:48:09.160829デフォルトの名無しさん
2014/01/27(月) 00:53:49.53光の加減や睡眠不足等の諸事情によっては男の娘もオカズになるとは思う
0830デフォルトの名無しさん
2014/01/27(月) 00:55:03.79Rubyで画像検索した結果で一発抜いてきたらイイよ
0831デフォルトの名無しさん
2014/01/27(月) 00:55:06.10お前来なくていいからw
0832デフォルトの名無しさん
2014/01/27(月) 00:57:58.02ゴミ連呼とは別人なのかしら?
0833デフォルトの名無しさん
2014/01/27(月) 07:32:28.71むしろこういう不特定多数の目に触れるところに平気でhogeとか書ける精神構造のほうが不思議。
0834デフォルトの名無しさん
2014/01/27(月) 07:53:23.240835デフォルトの名無しさん
2014/01/27(月) 08:09:21.260836デフォルトの名無しさん
2014/01/27(月) 08:15:29.160837デフォルトの名無しさん
2014/01/27(月) 08:40:23.240838デフォルトの名無しさん
2014/01/28(火) 01:04:04.03入門レベルのちょっと上くらいの難易度のものって何かある?
Rubyではじめるゲームプログラミングはいい本だった。
あんな感じで作りながら学んでいきたい。
0839デフォルトの名無しさん
2014/01/28(火) 01:10:53.20作りたいものがないんなら何も作らなきゃいいんじゃないのか?
何が作れるのかわからない、というのなら別だが。
0840デフォルトの名無しさん
2014/01/28(火) 01:12:51.02何が作れるかわからないのです
なので選べない
0841デフォルトの名無しさん
2014/01/28(火) 01:16:37.58だけど、何が作れるかわからないから
どうしたらいいのかって思ってしまう
Rubyで何かつくろうと思ったらrailsは必須なの?
0842デフォルトの名無しさん
2014/01/28(火) 01:16:53.06勉強が目的なら適当なgemのソース読むのは勉強になる。
web系に興味あるなら、何よりもまず、どんな糞サイトでもいいので作って公開すべきだ。
ゲームとかスタンドアロンなプログラムに興味があるなら、アルゴリズムの勉強とか?
個人的には昔オセロゲーム作ったのは難しかったが楽しかった。
0843デフォルトの名無しさん
2014/01/28(火) 01:17:36.67> Rubyではじめるゲームプログラミングはいい本だった。
この本がどういうレベルなのかよくわからんが、
おそらくグラフィカルなゲームを、ロジックだけ自分で書けば作れるような本なのかな?
だったら、たとえばCUIのオセロゲームとか作ってみたら?
0844デフォルトの名無しさん
2014/01/28(火) 01:19:16.01お、カブった。
>>841
railsは初学者に向いてるとは俺は思わないな。
最初はむしろHTMLの勉強になっちゃうし。
0845デフォルトの名無しさん
2014/01/28(火) 01:31:09.07プログラミングでこういうコード書けば
変数をここで連携してこういう物が出来るんだってのが体系的に知りたい。
そのためにも形あるものが一番具体的でいいのかなっていうのは思ったんだけど
じゃあ、具体的に何よって感じ。
>おそらくグラフィカルなゲームを、ロジックだけ自分で書けば作れるような本なのかな?
あの本はまさにそんな感じ。
CUIのオセロ!
おお、まさにそういうのがやりたい。
じゃんけんゲームとか、ゲームブックでも面白かった。
ただ、ぐぐったら出てきたコードが長そうで理解ができないかも…。
オセロについて細かく書いてある本とかない?
トランプゲームとかのアルゴリズム(?)みたいなのはどうやったら学べる?
0846デフォルトの名無しさん
2014/01/28(火) 01:32:29.88GoogleのWebspeech apiでもいじってみたら
接続すればいろいろ遊べるぞ
あとは遊ぶならRobot関連が面白いと思う
Amazonの自動配達も始まるし
これからブームが来るよ
http://artoo.io/
0847デフォルトの名無しさん
2014/01/28(火) 01:37:41.54ごめん、言ってる意味がわからない
Webspeech apiとは何?
検索したらロボットにしゃべらせる?とかそんな感じ?それがRubyでかけるの?
あとartooって何?
アホなんで英語読めないんだ…。
プログラミングやるなら英語は必須かな?
0848デフォルトの名無しさん
2014/01/28(火) 01:40:07.58Rubyでロボット動かせるの?
組み込み系って奴?
それって相当難易度高いんじゃないの?
0849デフォルトの名無しさん
2014/01/28(火) 01:49:09.47組み込み系じゃなくて他人のgemやソースを盗用するだけ
遊ぶ程度なら全く難しくない
オセロのプログラム作る方がよほど難しい
もっともWindowsを使ってる人だと色々と厳しいが…
LinuxやMacなら適当なバインディングで各種ソフトをつなぐだけでかなり遊べますよ
0850デフォルトの名無しさん
2014/01/28(火) 02:01:29.45売り物かドッグフード
ないならプログラミングなんて時間のムダ
>>848
cで書け
0851デフォルトの名無しさん
2014/01/28(火) 02:02:06.68分からなかったらまた質問させてもらいます
しばらくはオセロとこれをやってみようと思います
0852デフォルトの名無しさん
2014/01/28(火) 02:04:08.20Rubyで作るとコンピュータの思考ルーチンがめっちゃ遅そう
0853デフォルトの名無しさん
2014/01/28(火) 02:06:55.890854デフォルトの名無しさん
2014/01/28(火) 02:08:26.40英語できないってことは学生だと思うけど、>>850のいう事は正しい。
俺なんか日曜プログラマだから遊んでるだけだけど、プログラミングで食ってくことと、遊ぶことは全く違うわな。
0855デフォルトの名無しさん
2014/01/28(火) 02:14:35.810856デフォルトの名無しさん
2014/01/28(火) 02:23:09.41androidみたいなもん?
ラジコン動かすとかそういう系?
0857デフォルトの名無しさん
2014/01/28(火) 02:27:39.71It provides a simple, but powerful Domain-Specific Language (DSL)
for robots and physical computing.
With Artoo, you can easily connect multiple,
different hardware devices together at the same time
into a single solution. Artoo makes telling robots
what to do incredibly simple and fun.
ArduinoやBeagleBoneがRubyで制御できるんだろう
0858デフォルトの名無しさん
2014/01/28(火) 02:31:05.43既存のプロジェクトに参加すればいい。
0859デフォルトの名無しさん
2014/01/28(火) 02:32:46.41http://rubykaigi.org/2013/talk/S64
後半は飛ぶから面白いぞ
artoo以外にもRailsとは無縁の面白いgemはたくさんあるから探してみな
0860デフォルトの名無しさん
2014/01/28(火) 02:52:30.320861デフォルトの名無しさん
2014/01/28(火) 03:20:16.71現時点で作りたいものがないなら今すぐプログラミング言語のことは忘れろ
時間の無駄なんで
DIY症候群ってのがいちおうあって、釘とかハンマーとかの使い方覚えたパパが
日曜になるたびに家の中徘徊して自分で作れるもの直せるもの探してホームセンター行って
酷いときには隣近所にまで聞いて回るような症状だ
作るものがないときは作成手段を持っていることはすっぱり忘れて日常生活に戻るといい
必要になったらそのときふっと思い出したり
「自作することもできます」→「あっプログラミング言語勉強すれば自力でいけるのか」
という流れでやる理由ややる気が出るから
0862デフォルトの名無しさん
2014/01/28(火) 03:32:01.32「参考書の1ページ目からやっていく」タイプの勉強はプログラミングには向かないな
それは半年後なり1年後なりに業務プログラムを作ることが既にわかってる社会人研修の理屈
0863デフォルトの名無しさん
2014/01/28(火) 04:16:50.45そして、大したものも作れない。これが職業プログラマの運命
0864デフォルトの名無しさん
2014/01/28(火) 04:25:14.16少なくとも読取速度と精度は上がっているから言うほど完全無駄でもない
0865デフォルトの名無しさん
2014/01/28(火) 05:07:44.010866デフォルトの名無しさん
2014/01/28(火) 05:48:47.93ありがとうございます。
でもこれってhogeが依存しているgemを表示してるような・・・
hogeに依存しているgemを知りたいのですが、無理なんでしょうか
0867デフォルトの名無しさん
2014/01/28(火) 05:56:25.89正規表現と後方参照で裏返しの実装したオセロ
0868デフォルトの名無しさん
2014/01/28(火) 06:18:24.41いい加減迷惑なんだけど
0869デフォルトの名無しさん
2014/01/28(火) 06:49:34.670870デフォルトの名無しさん
2014/01/28(火) 06:51:13.46お前には無理だからさっさと回線切れ。
身の程知らず。
0871デフォルトの名無しさん
2014/01/28(火) 06:55:51.370872デフォルトの名無しさん
2014/01/28(火) 07:34:43.35&:は独立した記号
&(:hoge)ということ
:hogeというsymbolをブロックとして渡す
symbolをブロックに変換するのはto_procが使われる
あとはぐぐれ
0873デフォルトの名無しさん
2014/01/28(火) 08:02:51.73少しは頭使え
(必要な範囲の)全部のgemに対してgem dependancyしてリスト作ればいいだけだろ
0874デフォルトの名無しさん
2014/01/28(火) 08:24:28.96一発で出るようにするにはどんな些細なバージョン違いのgemでも登録時に自動で登録分類しておいて
莫大な情報として誰かが貯めておいて適宜返事しないといけない
自力でブン回したほうがマシである
0875デフォルトの名無しさん
2014/01/28(火) 09:25:51.83全gemの全バージョンに対してremote調査かけられていい気はすまい
0876デフォルトの名無しさん
2014/01/28(火) 09:45:06.250877デフォルトの名無しさん
2014/01/28(火) 09:49:18.410878デフォルトの名無しさん
2014/01/28(火) 16:39:39.89生きてて惨めな気持ちにならない?
頭が足りてないからならないかw
0879デフォルトの名無しさん
2014/01/28(火) 16:52:06.720880デフォルトの名無しさん
2014/01/28(火) 17:59:58.040881デフォルトの名無しさん
2014/01/28(火) 18:17:03.710882デフォルトの名無しさん
2014/01/28(火) 19:43:30.280883デフォルトの名無しさん
2014/01/28(火) 20:06:15.45hoge使う奴に対しては「hoge使うな」
hoge注意するスレではhoge使って神経逆撫でる。
コード一行も書けない奴の荒しの常套手段。
0884デフォルトの名無しさん
2014/01/28(火) 22:23:22.92まあ、どうでもいいよ
お大事に
0885デフォルトの名無しさん
2014/01/29(水) 01:31:55.04チャイニーズ雪かき
チャイニーズ雪かき
チャイニーズ雪かき
0886デフォルトの名無しさん
2014/01/29(水) 09:39:19.61何でも出来るって言われるとイメージが湧かないので
具体例を上げてくれると嬉しいです。
0887デフォルトの名無しさん
2014/01/29(水) 09:50:43.25検索すればいろいろ出てくるだろ。
migemoってオリジナルはrubyだよな。よく使ってる。
俺はこないだ2chクライアント作ったぞ。
0888デフォルトの名無しさん
2014/01/29(水) 10:07:26.180889デフォルトの名無しさん
2014/01/29(水) 10:31:10.66横からで悪いけどGUIってどれ使った?
tk?gtk?
0890デフォルトの名無しさん
2014/01/29(水) 10:42:17.87使ってない。
GUI使うときはJava使ってる。
どっちも、tcl/tkとかC/gstreamerでちょっと使ったことあるけど、rubyからはない。
0891匿名希望@Vim%Chalice
2014/01/29(水) 10:48:35.39>俺はこないだ2chクライアント作ったぞ。
昔、日本語 vim を配布している人の chalice を手がかりに
似たようなものをつくったんだけど、2chの仕様が変わって
かなり昔から post ができなくなっている。
だれか作って、公開してくれないかな。
require 'nichan.rb'
obj = Nichan.new;
# グローバルな設定
# obj.proxy = 'proxy.foo.bar.baz:8888'
# obj.name='Anonymous#trip'
# obj.cookie = '~/nichan/log/cookie.txt'
subject = obj.get_subject 'http://toro.2ch.net/tech/'
thread = obj.get_thread 'http://toro.2ch.net/test/read.cgi/tech/1383742375/'
message=<<EOD
title: Hello World
url: http://toro.2ch.net/test/read.cgi/tech/1383742375/
name:
mail: sage
cookie: ~/nichan/log/cookie-2.txt
--
だれか「プロ」が作って
EOD
status = obj.post message
0892デフォルトの名無しさん
2014/01/29(水) 10:51:07.87プロだが仕事で作ったので、それはあげられないや
0893匿名希望@Vim%Chalice
2014/01/29(水) 10:55:39.94昔は設計がハンパだったし、いまならカッコよく作れるはずなんだが
アマは設計についての理解が後回しになるんよ
いそがしくて、時間がないんだよな・・・
0894デフォルトの名無しさん
2014/01/29(水) 11:09:26.00真実はいつもひとつ!
0895デフォルトの名無しさん
2014/01/29(水) 11:27:24.990896デフォルトの名無しさん
2014/01/29(水) 12:22:34.87それについて行かないとダメだから結構しんどい
0897デフォルトの名無しさん
2014/01/29(水) 12:42:07.73ちなみに俺様がム板で使ってるゴミみたいなスクリプトはこれ
http://ideone.com/HzgIRf
・・・ゴミみたいなコードだな
ちなみにwatirはrequireした時ではなく
Watir::Browser.new :ie
↑この時点でクラス宣言をしてしまう為
本来IEは非表示実行が可能なオプションがあるにもかかわらず、デフォルトで表示されてる状態になる
newした後に
agent.visible = false
で、一応非表示にできるが一瞬ウィンドウが見えてしまう
これがやめさせる場合はライブラリ側の ie-class.rb で
def visible
@visible ||= false # true
end
これをする必要がある
0898デフォルトの名無しさん
2014/01/29(水) 14:21:02.16おまいが仕様作る側に廻れば良い
待ってるぜ
0899デフォルトの名無しさん
2014/01/29(水) 15:05:16.34むしろwatirに対してどういった規制を2chがやってくるか見ものだね
検知出来るかな
0900デフォルトの名無しさん
2014/01/29(水) 18:12:56.92なんというか、釘セットの用途を門外漢が聞くようなもので、正直それにはあんまり意味がない
わかんないならわかんないで別にいいじゃん
釘なんてもらってもハンマー持ってないし上手な打ち方もわからんし板自体持ってない上に壊れたものも家にねえ、
というなら釘は無用の長物であろう
0901デフォルトの名無しさん
2014/01/29(水) 18:18:41.560902デフォルトの名無しさん
2014/01/29(水) 18:43:08.28最近はさすがにそんな突飛な人も見なくなってたいへん使いやすくてよろしいです
>>886
RubyでなにするのかわからないのならRubyでなにもしなくてよろしおすえ
0903デフォルトの名無しさん
2014/01/29(水) 18:51:04.74ホモサピエンスの小さい頭脳を、抽象的な概念でいっぱいにすることができる
0904デフォルトの名無しさん
2014/01/29(水) 18:59:12.480905デフォルトの名無しさん
2014/01/29(水) 20:30:35.46今でも、山に向かって湖に飛び込めってRubyistは居るはず
0906デフォルトの名無しさん
2014/01/29(水) 21:03:04.34おまえがRubyを使ってるわけじゃない
Rubyがおまえの頭脳にアクセスして、具体的な形を与えてもらってるんだよ
0907デフォルトの名無しさん
2014/01/29(水) 22:20:07.040908デフォルトの名無しさん
2014/01/29(水) 22:21:56.090909デフォルトの名無しさん
2014/01/29(水) 22:30:31.480910デフォルトの名無しさん
2014/01/30(木) 00:06:16.92array.each { |x| array(x) =rand(10) }
とかやると、nilにinteger入れちゃだめ、みたいなエラーが出るけど、どうして
そういうルールにしてるの?
配列初めて作ったら、nilに決まってるじゃん。じゃあ最初に入れたデータの
型にすればいいじゃん。普通の変数みたいに。
0911デフォルトの名無しさん
2014/01/30(木) 00:25:44.98array[x]=rand(10)のtypoだとして
array[nil]になるんだからどうしようもないでしょ
nilは整数に変換できないよってエラーだ
0912デフォルトの名無しさん
2014/01/30(木) 00:33:35.43array.map!{rand(10)}
eachの中でレシーバ自身を変更しちゃいけない
0913デフォルトの名無しさん
2014/01/30(木) 00:39:09.5410.times { ar << rand(10)}
とか
0914デフォルトの名無しさん
2014/01/30(木) 01:14:56.23ar = []
[] while ar.<<(rand 10).size < 10
p ar
0915デフォルトの名無しさん
2014/01/30(木) 01:30:10.05array = Array.new(10)
array.each_with_index { |x , i|
array[i] = rand(10)
}
p array
あるいは
10.times do |i|
array[i] = rand(10)
end
けどrubyだとこういうコードはあんまし書かないけどな
p ar = 10.times.map{rand(10)}
俺ならこうやる
0916デフォルトの名無しさん
2014/01/30(木) 04:52:45.04初心者はコテつけろカス
0917デフォルトの名無しさん
2014/01/30(木) 06:38:41.020918デフォルトの名無しさん
2014/01/30(木) 18:17:03.990919デフォルトの名無しさん
2014/01/30(木) 18:20:38.370920匿名希望@Vim%Chalice
2014/01/30(木) 19:14:11.54自前でやることばかり考えていました
watir 参考にさせてもらいます
0921デフォルトの名無しさん
2014/01/30(木) 21:11:39.82>>918が思いつかな... 思いつけなかったから
0922デフォルトの名無しさん
2014/01/30(木) 21:31:37.920923デフォルトの名無しさん
2014/01/31(金) 00:21:42.180924デフォルトの名無しさん
2014/01/31(金) 04:32:30.611.8→2.0で「変わった!」とはっきりしてる所などありますでしょうか?
たとえばPHPならmagic_quotes_gpcがディレクティブから削除されたとかヌル文字の扱いの変更とかです
教えて頂ければ幸いです
0925デフォルトの名無しさん
2014/01/31(金) 04:46:39.210926924
2014/01/31(金) 04:56:41.99質問しといてあれなんですがWeb漁ってきたら、文字エンコーディング関連も変わってることがわかりました
「たのしいRuby」は基本文法のことしか記載されてないので問題ないかもしれません
とりあえずこれをパラパラと読み、Rubyの雰囲気を感じておこうと思います
次のステップで購入する本は間違いなく2.0を意識したものにします。返信ありがとうございました
0927デフォルトの名無しさん
2014/01/31(金) 05:44:42.350928デフォルトの名無しさん
2014/01/31(金) 06:18:39.49「あなたは間違っている」という事実に基いたアドバイスではなく
「あなたは間違っていない」という承認だったから
プログラミングとかにはあんまし向かない人っすな
0929デフォルトの名無しさん
2014/01/31(金) 07:07:00.25あとcharsとかsplitとか
他には標準ライブラリの戻り値が結構違ってるはず
で、そういうのが変わってると
「推奨すべき書き方」が違ってきちゃうから
1.8で覚えても、古いあまり良くない書き方を覚えてしまう
ネットでもそこそこ調べられるよ
0930924
2014/01/31(金) 08:03:32.67パラ読みすると、どのプログラムにもある共通の制御文やファイルの入出力の方法などシンプルな内容の書籍だったからです
よくよく考えると「そういった根本的な所まで変わらんよな」と質問してから思ってしまいました
確かに初心者なのに調子のりました ごめんなさい
>>928
頑張ってご飯食べていきます
>>929
戻り値が変わってるような変更は知っておきたいですね
ありがとうございます 良さそうなサイトをみつけたのでそこで調べてみます
0931デフォルトの名無しさん
2014/01/31(金) 08:11:23.76うざい死ね
0932デフォルトの名無しさん
2014/01/31(金) 11:22:50.720933デフォルトの名無しさん
2014/01/31(金) 19:50:19.151.9.xすら御役御免のレールに乗った現状、初心者が1.8を学ぶ理由はゼロどころかマイナス
もちろん1.8.6とペアで保守するローカルなスクリプト群があるとかなら必須だろうし妥当だけど、
ぶっちゃけそんなんレアだろう
0934デフォルトの名無しさん
2014/01/31(金) 20:28:22.440935デフォルトの名無しさん
2014/01/31(金) 20:47:00.26「君たち、この授業をとっても現代のギリシャ人とはお話しできないよ?
ソクラテスとかアリストテレスとかそんなに好きなの?」
って言ってたの思いだした
0936デフォルトの名無しさん
2014/01/31(金) 21:00:38.97Javaとかいまだに1.4用が残ってたりするからな
0937デフォルトの名無しさん
2014/01/31(金) 21:02:28.850938デフォルトの名無しさん
2014/01/31(金) 21:05:43.411.8の構文も知ってるとrubyの言語仕様の失敗例が学べる
雑学レベルだが
0939デフォルトの名無しさん
2014/01/31(金) 21:26:03.31Rubyを学ぶ前に学んでも意味がない
小学生に古典ラテン語を教えるようなものだ
0940デフォルトの名無しさん
2014/01/31(金) 23:34:53.10俺なんて、今中高生ぐらいの若手が社会に出てきたときに絶対用無しになるわ
嫌な時代になった
0941デフォルトの名無しさん
2014/01/31(金) 23:47:58.30>Array.new(10, rand(10))
これじゃ10個とも同じ数が入っちゃうからダメじゃん
0942デフォルトの名無しさん
2014/02/01(土) 00:48:32.17http://www.diana.dti.ne.jp/~katta/tdd/1.Point_plus.html
このページのaddendって何でしょうか?
検索しても出てきませんし、挙動が理解できません
0943デフォルトの名無しさん
2014/02/01(土) 01:04:53.07単なるメソッド plus の引数であり、ローカル変数になる
データ型としては、他のPointオブジェクトを期待している
つまり、座標の加算式 <1, 2> + <10, 20> = <11, 22> は
Point.new(1, 2).plus(Point.new(10, 20)) とコード化する
あと、この著者さんはまだRuby慣れしていないようで、
メソッド名として getX みたいな命名しているけど、これはJava流
Rubyらしい作法は、単に x だけ
つまり、point.getX() ではなく point.x と書くのがRubyの作法
真似しないようにね
0944デフォルトの名無しさん
2014/02/01(土) 01:26:53.36そいつらが社会に出る頃には、Rubyや今の潤沢なWeb業界は失くなっているに1ペリカ
0945デフォルトの名無しさん
2014/02/01(土) 01:30:10.240946デフォルトの名無しさん
2014/02/01(土) 01:31:00.13アレ抜けるの大変
0947デフォルトの名無しさん
2014/02/01(土) 01:38:08.550948デフォルトの名無しさん
2014/02/01(土) 01:57:57.17Web業界はあるだろうが、決してホットな分野ではないだろうね
0949デフォルトの名無しさん
2014/02/01(土) 05:10:37.40def ==(point)
return (@x == point.getX()) && (@y == point.getY())
end
これはいったい何なのでしょうか?
全体的に別に利用されていない気がするのですが、Rubyの特殊メソッドか何かなのでしょうか?
関数名に==などと使っているのは初めて見ました
function _()などは見たことありますが
0950デフォルトの名無しさん
2014/02/01(土) 05:18:10.54↑ この時に呼ばれるメソッド
とりあえずこれ実行して見りゃわかるんでは
class A
def ==n
p self , n
end
end
a = A.new
a == 4
0951デフォルトの名無しさん
2014/02/01(土) 05:27:50.69このサイトだめだわ
class Point
def initialize(x, y)
@x = x
@y = y
end
attr_reader :x, :y
def ==(point)
(x == point.x) && (y == point.y)
end
end
0952デフォルトの名無しさん
2014/02/01(土) 05:38:23.28日本は中国の植民地になってて
公用語も北京語になるだろう
今から中国語覚えなさい
0953デフォルトの名無しさん
2014/02/01(土) 05:40:55.29Rubyでは「演算子」に見えるもののいくつかもメソッド
a==b としたとき、Rubyはaのインスタンスメソッド == に引数bを渡している、つまり a.==(b) を行なっている
オブジェクトaの == の結果を自分で定義したい場合は == メソッドを定義する必要がある
似たような頻出ものに [] メソッドと []= メソッドがあり、たとえば x[key]=val は x.[]=(key,val) を呼んでいる
なお、中国語が少なくとも英語並の公用語になるなると30年以上言われ続けてるが全然そんな気配もないな
0954デフォルトの名無しさん
2014/02/01(土) 06:09:36.16Rubyの流儀に追い付くのは後者なんだけど
0955uy
2014/02/01(土) 06:33:22.490956デフォルトの名無しさん
2014/02/01(土) 06:47:03.42↓
a.==(b)
↓
a == b
だからrubyは四則演算とかも実は
1 + 2 これが 1.+(2) ってかける
0957デフォルトの名無しさん
2014/02/01(土) 09:56:36.14気をつけろってばっちゃは言ってた。
0958デフォルトの名無しさん
2014/02/01(土) 11:22:51.29そう言ってんじゃん
0959デフォルトの名無しさん
2014/02/01(土) 12:34:24.45等価じゃないの?
演算子の優先度とかの関係?
0960デフォルトの名無しさん
2014/02/01(土) 12:46:09.32どう違うの
教えてクダサーイ
0961デフォルトの名無しさん
2014/02/01(土) 13:20:30.40検索もいいが英和辞典も引こう。
0962デフォルトの名無しさん
2014/02/01(土) 13:48:52.48addend 加算数
0963デフォルトの名無しさん
2014/02/01(土) 13:49:52.450964デフォルトの名無しさん
2014/02/01(土) 21:22:34.90英英辞書も良いよ。
0965デフォルトの名無しさん
2014/02/01(土) 21:33:20.72いずれにしても勉強になる話だった
0966デフォルトの名無しさん
2014/02/02(日) 21:38:06.44s = St.new
St& ref = s
すみません、これの最後の文、St& refはどういう意味なのでしょうか?
0967デフォルトの名無しさん
2014/02/02(日) 21:59:24.55ampは不要です
空白スペースです
0968デフォルトの名無しさん
2014/02/02(日) 22:18:26.73もしここで質問したいのなら、ソースになったページのURLも添えるか、
あるいは、せめて付近のコード断片を貼付けるかしなさい
0969デフォルトの名無しさん
2014/02/02(日) 22:31:04.69すみません、そうなのですか
Rubyの標準的な書き方かと思っていたのですが、違うのですね
直リンク禁止中なのでScheme抜きますが、
www.diana.dti.ne.jp/~katta/tdd/stack.html
のサイズ関数の項に書かれています
0970デフォルトの名無しさん
2014/02/02(日) 23:00:25.770971デフォルトの名無しさん
2014/02/02(日) 23:06:02.580972デフォルトの名無しさん
2014/02/02(日) 23:09:36.20正規表現で改行を見つけて置換するのって
どうやって書くとよいでしょうか?
str.gsub(/(\r|\r\n|\n)/){"置換対象"}
上記のように書くしかないでしょうか?
やりたいのはC言語のプリプロセッサのように\に続く改行を取り除くことです
0973デフォルトの名無しさん
2014/02/02(日) 23:18:24.37というのはおいといてstr.gsub(/\\\r?\n?/, "")でよくね
0974デフォルトの名無しさん
2014/02/02(日) 23:25:40.60なるほど、C++なのですか
挙動としては基本的にref == s(ref === s?)と考えていいのでしょうか?
リファレンス初期化というものが分からないのですが、アドレスが同じと考えて良いのならば、
下に書かれている、
assert_equal(8, s.top)と assert_equal(8, ref.top)は同じ事をしていると思うのですが...
0975デフォルトの名無しさん
2014/02/02(日) 23:32:55.53C++では意味のあったコードが、Rubyにしたから意味不明になってるだけだと思うよ
0976デフォルトの名無しさん
2014/02/02(日) 23:36:20.540977デフォルトの名無しさん
2014/02/02(日) 23:55:00.58このサイトに、参考にしていい箇所はひとつもない
というかわざわざ駄目なところばかり貼ってなんなのって感じなんだが
0978デフォルトの名無しさん
2014/02/02(日) 23:58:31.45ありがとうございます
でもそれだと\のみにもマッチしちゃいますよね
たしかにCRのみの場合を無視すれば
/\\\r?\n/でよいですね
0979デフォルトの名無しさん
2014/02/03(月) 00:10:49.03どういうサポートを望んでるのかは知らんけども
0980デフォルトの名無しさん
2014/02/03(月) 00:15:28.620981デフォルトの名無しさん
2014/02/03(月) 00:17:18.23みたいなメソッドを望んでるんじゃないでしょうか(適当)
0982デフォルトの名無しさん
2014/02/03(月) 00:22:24.51CR LF のパターンによらず改行を対象に何かしたい、というのはよくありそうだと思ったので何かすでにないかな、と
0983デフォルトの名無しさん
2014/02/03(月) 00:31:06.03いるだろw
0984デフォルトの名無しさん
2014/02/03(月) 00:46:34.44おっと、すまそ。
str.gsub(/\\$\r?\n?/, "")だな
0985デフォルトの名無しさん
2014/02/03(月) 00:52:54.560986uyu
2014/02/03(月) 02:34:26.17p b.chomp + "_nanikasudeninaikana,to_"
"
afa
f
wa
w
fas
dfsa
"
.each_line.map(&:chomp).each_with_object("_nanikasudeninaikana,to_").map(&:+)
.display
0987デフォルトの名無しさん
2014/02/03(月) 04:41:44.40それっぽい方にあわせると本来の意味の方で不整合が起きる
0988デフォルトの名無しさん
2014/02/03(月) 05:42:05.360989デフォルトの名無しさん
2014/02/03(月) 08:19:41.72標準で入っているのはruby1.8で、社内の審査で一次利用が禁止されてしまいました
0990デフォルトの名無しさん
2014/02/04(火) 00:10:10.960991デフォルトの名無しさん
2014/02/04(火) 01:27:44.190992デフォルトの名無しさん
2014/02/04(火) 01:31:27.070993デフォルトの名無しさん
2014/02/04(火) 03:46:41.80toggle = ->{ n=!n }
p toggle.call
p toggle.call
p toggle.call
p toggle.call
こういう風にメソッドを呼び出すたびにtrue,falseが入れ替わるものが欲しいんですけど
標準Libには無いですか?
0994デフォルトの名無しさん
2014/02/04(火) 04:00:44.77っていうか内部状態を持たせたいならなぜObjectにしないの?
0995uy
2014/02/04(火) 04:16:31.840996uy
2014/02/04(火) 04:19:47.88toggle = [true,false].cycle
p toggle.next
p toggle.next
p toggle.next
p toggle.next
0997989
2014/02/04(火) 04:43:30.08客先のサーバで、RPM以外でツールをいれるのは、客毎、サーバ毎にサーバ管理に承認取らなければいけないのです
RPMだとレポジトリの承認が取れてると楽だったのですが…
pythonやphpだと最新版が普通にあるのでそちらを使うしかなさそうですね
rubyは客先で使うのは難しいよと先輩に言われた意味がやっとわかりました
ありがとうございました
>>992
社内のrailsを使っているサーバはrbenvを使ってます
サーバ管理が部内だと楽なんですけどね
0998uy
2014/02/04(火) 04:45:14.17ソースコード内の文字列からファイルストリーム作って
print while r.gets を動かすにはどうしたらいいですか?
やりたい事はこんな感じですが、IO.pipeからストリーム作るとgetsで$_に格納されていません
r, w = IO.pipe
w << "abc\ndef\n"
print while r.gets
0999デフォルトの名無しさん
2014/02/04(火) 04:56:12.21StringIO
っていうか暗黙の$_はあまり使わないほうがいいとは思うが。
io.readlines.each{|l| print l}でいいじゃん
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。