Ruby 初心者スレッド Part 57©5ch.io [転載禁止]©5ch.io
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2015/03/12(木) 22:08:53.45ID:qh8O4P61質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 55
http://peace.2ch.net/test/read.cgi/tech/1403361584/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0002デフォルトの名無しさん
2015/03/12(木) 22:10:29.80ID:qh8O4P61Ruby 初心者スレッド Part 56
http://peace.2ch.net/test/read.cgi/tech/1418430552/
いろいろミスった すまん
0003デフォルトの名無しさん
2015/03/12(木) 22:56:21.44ID:xOWYefW70004デフォルトの名無しさん
2015/03/12(木) 23:00:25.55ID:E4K/qych0005デフォルトの名無しさん
2015/03/13(金) 10:08:50.27ID:ua+Lgk3v乙
0006デフォルトの名無しさん
2015/03/14(土) 10:46:58.67ID:tvgpDvXZどの機種を買ってるの?
ノートでもいけるもんなの
0007デフォルトの名無しさん
2015/03/15(日) 03:48:59.75ID:GfmgeCmk実行したら、
写真袋.rb:9:in `require': no such file to load -- json (LoadError)
from 写真袋.rb:9
って出るのはなんでですか?
他の人はたぶん実行できてるみたいなんです
ジャバはインストール済みです
0008デフォルトの名無しさん
2015/03/15(日) 04:06:19.16ID:Igs3//KG0009デフォルトの名無しさん
2015/03/17(火) 08:20:27.14ID:jjUxdnY2uninitialized constant ActionView::Helpers::ActiveModelHelper (NameError)
が出る。
エラー発生部分のコードは
include ActiveModelHelper
で, 上のほうで
module ActionView #:nodoc:
module Helpers #:nodoc:
extend ActiveSupport::Autoload
autoload :ActiveModelHelper
などと書かれているんだけれども、これはActiveModuleHelperが読み込まれてないとみるべき?
0010デフォルトの名無しさん
2015/03/17(火) 22:46:50.46ID:nsNWbIEZ00119
2015/03/18(水) 01:52:07.57ID:ZeAfVT3vRubyさんは初めて触るんですわ・・・・(主にPerl)
とりあえず解決したのでご報告。
redmineのbundleのインストール先ディレクトリ vendor/bundle ディレクトリ以下の全ファイルにセキュリティコンテキスト httpd_modules_t を付与したら正常に起動した。
audit.logにもdeniedのログが残ってなかったので, gemsのあるディレクトリに手当たり次第にセキュリティコンテキスト変えながらテストしたら前述の条件で動いた。
/* RedmineのインストールガイドにとりあえずSELinuxを切りましょうとかあるのはどうかと思う */
0012デフォルトの名無しさん
2015/03/19(木) 02:25:41.65ID:noU2qMQuどのプログラミング言語でも書いてある
ところで、9bitのフラグを使いたいが、
Rubyにはビットセットは無いのか?
9bitだと、2バイト(16bit)で使うのか?
0013デフォルトの名無しさん
2015/03/19(木) 08:34:25.16ID:pl6HuOAuCのビットフィールドのことか?ネーヨ。
そーゆーのはFixnumのインスタンス変数と各ビットのアクセサ定義したクラスかな。
Fixnumのサイズはsizeof(long)なんで実装依存な。
http://docs.ruby-lang.org/ja/2.2.0/method/Fixnum/i/size.html
0014デフォルトの名無しさん
2015/03/19(木) 14:08:39.29ID:TrzpuitZしかし、このインストーラーがダブルクリックしてもさっぱり起動しません。ずっと読み込みマークが出たまま
何がまずいのかさっぱりわかりません
0015デフォルトの名無しさん
2015/03/19(木) 14:35:40.96ID:Wd74eGtb0016デフォルトの名無しさん
2015/03/19(木) 15:04:04.86ID:TrzpuitZそれでした。ありがとうございます
まったく、一言「ブロックしました」とか出ればいいのに、何も表示されないからどうしたかと思いました
ついでにもう一つ聞きたいんですが、自分のパソコンが64bitだから64bitのを落とせばいいですよね
0017デフォルトの名無しさん
2015/03/19(木) 18:34:50.82ID:eg1mQNFt危うく俺が答えそうになったわ
0018デフォルトの名無しさん
2015/03/19(木) 19:16:46.50ID:TrzpuitZそんな意地悪しないで下さいよ
サイトを見てまわったら64bitだと環境を構築するのに面倒だというのがいくつかあって不安なんですよ
0019デフォルトの名無しさん
2015/03/19(木) 19:54:10.03ID:pl6HuOAuRubyDevKitでsoをコンパイルできるgemならいいけど、ものによってはコンパイル済みのsoを配布してたりするので、そういうのは32bitの方がいいかも。
つーわけで、答えは両方入れろ。
64bitの広大なメモリ空間を使いたいこともあるかもしれん。
そうそう、まだ2.2.1はmingwに対応できてないgemがあるので、2.0で様子みとくのがいいかも。
2.0は2.0でなんか挙動がおかしかったりするけど。
そもそも、さんざん言われてるけど、WindowsでRubyを使うのが苦行。
最近のバージョンは特にWindowsでろくにテストされてないかんじだし。
1.8から1.9のときは、開発期間が長かったこともあって、非互換は多くても、糞みたいなバグに悩んだりしなかったかったんだけどなー。
0020デフォルトの名無しさん
2015/03/19(木) 20:08:16.98ID:TrzpuitZりょ、両方入れろ…ですか…
最新バージョンが必ずしもいいわけではないんですね(; ・`д・´)
まずは32bitでやってみようと思います
ありがとうございました
0021デフォルトの名無しさん
2015/03/19(木) 20:10:15.43ID:rGfQi3lS0022デフォルトの名無しさん
2015/03/20(金) 09:12:21.28ID:63YhLXCjrubyのrubyたる始まり
なので
終わってない
0023デフォルトの名無しさん
2015/03/20(金) 09:41:05.49ID:63YhLXCjwin上の仮想linuxでruby使えばいいよ
導入法はドットインストールを参考にすれば猿でも出来る
0024デフォルトの名無しさん
2015/03/20(金) 12:05:27.27ID:tF7jVOck自分のプログラムはいつも 1.8.7 から一通り動くのを試してる.
ついこないだまで 1.9 が最新だったのに,1.9.3 以前はもうサポートしないって,信じられんな.
Rails とかで追従するのは私の能力だともう無理.
Ruby にはレガシーオプションってのがないのかな?
つか,性能はおいといて言語仕様として Common Lisp レベル(とまでいかなくてもいいけど)
のものを作って,せめて言語仕様の開発は止めて欲しい.
Ruby はプログラミングのし易さがとても好きなんで使ってるけど,これだけがなー.
0025デフォルトの名無しさん
2015/03/20(金) 12:07:37.91ID:tF7jVOck公開してるといろんなバージョン環境で使われるからなー.
0026デフォルトの名無しさん
2015/03/20(金) 22:50:51.56ID:kel79wjex=%W(x y z)
p a
p x
{a,x}.clear
p a
p x
#a, x を clearしたいのですが、できません
#どう書けばいいですか
0027デフォルトの名無しさん
2015/03/20(金) 23:12:09.03ID:krs7HuX/0028デフォルトの名無しさん
2015/03/20(金) 23:47:40.09ID:0D64RMiq0029デフォルトの名無しさん
2015/03/21(土) 00:05:13.35ID:/FAWNGWpできた、ありがとうございます
>>28 のような書き方があるんですね
0030デフォルトの名無しさん
2015/03/21(土) 14:07:29.35ID:4rhekeJvxとyが長くなると読みにくくなっちゃうんですけど、何かスマートな方法はあるでしょうか?
0031デフォルトの名無しさん
2015/03/21(土) 14:14:15.66ID:YzmjW15Sary = [x, y]
ary.reverse! unless bool
0032デフォルトの名無しさん
2015/03/21(土) 17:34:11.61ID:PcOPjagPRuby とRuby on Railsを習得したいのですが、どうやったらいいですか?
0033デフォルトの名無しさん
2015/03/21(土) 18:13:15.26ID:4pneRj7M入門サイトを探して、そこを見ながら動かしてみるのが一番
0034デフォルトの名無しさん
2015/03/21(土) 19:05:32.48ID:Vk/jcLRo0035スッキリ厨
2015/03/22(日) 01:10:13.92ID:zalLAL+tこの本を読むと、Rubyの文法や正規表現も、学べるけど、
RoRなどのフレイムワークは、オブジェクト指向の理解が必須
プログラミング初心者には、長い長い道のり
以下の本を、順に読んで
ttp://peace.2ch.net/test/read.cgi/tech/1419964623/309
0036デフォルトの名無しさん
2015/03/22(日) 03:59:04.09ID:L6yG2yVAary = [x, y].tap{|i| i.reverse! unless bool}
とか色々考えてみたんですけど2行に分けて書くのが一番見易そうですね
どうもありがとうございました!
0037デフォルトの名無しさん
2015/03/22(日) 10:14:32.83ID:4BB4Mdp+物足りない、複雑なことがしたいと感じてから
他の本に手を出した方が良いと思うけどね
まず
http://dotinstall.com/lessons
で
1.楽しいRuby
2.レシピブックor逆引き
3.作りながら学ぶRuby
3.5 リーダブルコーディング
--
↑ とりあえず動くコードをたくさん作る
↓ 生産性の高いコードを目指す、
--
4.Rubyによるデザインパターン
5.UML
6.Git
or
進みたい分野の専門知識
0038デフォルトの名無しさん
2015/03/23(月) 02:07:54.34ID:WpSM24TQ他にもっと使いやすいツールとかあれば教えてもらえるとうれしいです
ググるとgruffと言うのもあるようですがRMagick依存らしいのでインストールが
かなり面倒・・・
0039デフォルトの名無しさん
2015/03/23(月) 05:54:37.02ID:Mas1vnDZ今までずっと1.9.3と2.0.0使ってたんですが、
最近2.2.1がリリースされたと聞いたんでそろそろいれておこうとRubyInstallerを落として実行したんですけど、
一向にインストールが始まる気配が無くて困っています、どうしたらよいでしょうか?
0040デフォルトの名無しさん
2015/03/23(月) 06:56:22.18ID:s7C/DHNu0041デフォルトの名無しさん
2015/03/23(月) 07:13:14.12ID:Mas1vnDZちゃんとUAC出てきて普通にインストールできてあれぇ〜!?状態
すみません、お騒がせいたしました……
0042デフォルトの名無しさん
2015/03/23(月) 07:14:19.92ID:h9PpfwFW0043デフォルトの名無しさん
2015/03/23(月) 11:32:38.42ID:irbxTPxc0044デフォルトの名無しさん
2015/03/23(月) 18:43:43.77ID:xnTQJ2saメモ帳に簡単なプログラムを書いてrubyのコマンドプロントで
実行すると一瞬だけコマンドプロントが表示されて終了してしまいます。
どうしたら治りますか?
0045デフォルトの名無しさん
2015/03/23(月) 18:58:04.59ID:pipv5iGo知るか( ゚Д゚)ヴォケ
まず、テメーのカスみたいなソースをさらせ
0046デフォルトの名無しさん
2015/03/23(月) 19:35:06.76ID:s7C/DHNuWindowsキー+R→「cmd」と入力→出てきた黒いウィンドウに「ruby ファイル名(絶対パス)」
0047デフォルトの名無しさん
2015/03/24(火) 03:30:38.73ID:UePi+RvZ>>37
これどっちが妥当なの
0048スッキリ厨
2015/03/24(火) 04:07:53.54ID:figDJ/Iz1. スッキリわかる Java入門 第2版、2014
その後、この2冊を順に読む
2. たのしいRuby 第4版、2013
3. みんなのPython 第3版
123の順番で勉強する。
勉強時間は、1,2に各20H、3に10H
これで、オブジェクト指向、正規表現、
UNIX系でシェルスクリプトの代わりに使える
漏れのやり方は、最初に本で、
50H勉強するから退屈かもね
一方、 >>37 は手を動かしながら試行錯誤する。
どちらでもお好きに
0049デフォルトの名無しさん
2015/03/24(火) 13:48:57.56ID:t/9qecum1.8.7, 1.9.3, 2.0.0 では0(日曜日)なんだけど、2.1.5, 2.2.0 では1(月曜日)になってしまう。(暦上は日曜日)
環境はWindows VISTA SP2 32bitなんだけどどうしてなんでしょうか?
0050デフォルトの名無しさん
2015/03/24(火) 13:56:54.86ID:t/9qecum1970年1月3日午前8時59分59秒 + 1秒 = 1970年1月4日午前9時0分0秒
0051デフォルトの名無しさん
2015/03/24(火) 20:18:06.92ID:lrhN9mZDこれだと24時間分時間が前にずれるはずだけどずれないようになってるみたい
一方で、1月4日も午前9時以降は正常だから、本来1970年1月2日と3日にだけ適用するはずの処理を間違えて掛けてるのかな?
0052デフォルトの名無しさん
2015/03/24(火) 20:58:11.45ID:WLCHoINr前スレで似たような話しをみた気がする。
0053デフォルトの名無しさん
2015/03/25(水) 13:52:18.52ID:ZnaXoefXどうすればいいんだろう?
0054デフォルトの名無しさん
2015/03/25(水) 14:00:58.02ID:ZnaXoefX0055デフォルトの名無しさん
2015/03/25(水) 15:30:36.14ID:VW0J0cUvhttp://ideone.com/1vwuLr
0056デフォルトの名無しさん
2015/03/25(水) 17:24:19.06ID:ZnaXoefX0057デフォルトの名無しさん
2015/03/26(木) 02:20:22.72ID:uK/WLLbH初歩レベルの質問ですが、もっとよい書き方はありますか?
(a は Hash)
ハッシュを二回調べるのを、一回にしたいです。
0058デフォルトの名無しさん
2015/03/26(木) 04:02:10.86ID:LA0ApMoSif x = a[i]
キーが存在しなければ、nil を返すから、
そのまま、if の条件に書ける
また、Hash.new("")の引数や、
a.fetch(i, "") の第2引数に指定すれば、
キーが存在しない際、指定した文字列、
例えば、空文字列を返す
ちなみに真偽値は、if にそのまま書ける
>if true == 真偽値
if 真偽値
false, nil は偽。それら以外は真。
!真偽値で、真偽値を反転する
0059デフォルトの名無しさん
2015/03/26(木) 04:45:10.87ID:kahQGSuPbegin
x = a.fetch(i)
rescue
end
とか
>>58
{}[:foo]
=> nil
{:foo=>nil}[:foo]
=> nil
の区別がつかない
0060デフォルトの名無しさん
2015/03/26(木) 09:04:00.47ID:LA0ApMoSTO_ARY = ["aa","bb","cc"] # 置換後
置換前後の文字列の組が、複数あるとき、
文字列(またはファイル)をどうやって置換するの?
0061デフォルトの名無しさん
2015/03/26(木) 09:08:37.48ID:01//DD7r0062デフォルトの名無しさん
2015/03/26(木) 09:45:39.97ID:U2cl9cv9http://blog.nogizaka46.com/
このサイトのブログ画像だけanemoneで取得したいんだけど
画像が他のサイトにおいてあるからどうすればいいのかわからない
教えてください
0063デフォルトの名無しさん
2015/03/26(木) 10:26:57.72ID:Megmic4vx = a.fetch(i, x)
とか
0064デフォルトの名無しさん
2015/03/26(木) 11:12:33.93ID:5qC90pSFp /a/.! # => false
p !/a/ # => true
後者の挙動が把握できません
CRuby 2.0.0, 2.1.5 で確認しています
0065デフォルトの名無しさん
2015/03/26(木) 11:31:47.16ID:01//DD7r後者は$_とのマッチを取っている。
$_ = 'a'
p !/a/ #=> false
0066デフォルトの名無しさん
2015/03/26(木) 11:41:29.13ID:01//DD7r0067デフォルトの名無しさん
2015/03/26(木) 11:49:35.14ID:5qC90pSFおお、なるほど。ありがとうございます
警告が出なかったのではなんででしょうね
0068デフォルトの名無しさん
2015/03/26(木) 12:58:41.09ID:ejfTzuZpユニットテストってどんな時に使うのかな
もちろん想定外の挙動を認識するためだとは思うのだけど
工程の流れ的にどんな時に、どのように用いのだろう。
0069デフォルトの名無しさん
2015/03/27(金) 02:48:40.15ID:B/xnV6qpコーディングとユニットテストは、同時に行う
Javaではコードを修正すると、Test用のTestClassも修正して、
JUnit, Jenkinsなどでテストする
Coberturaでコードカバレッジを測定する。
命令網羅(C0)100%・分岐網羅(C1)90%以上かどうかをチェック
007060
2015/03/27(金) 05:25:34.33ID:B/xnV6qpもっと一般的な話で、置換表のようなファイルに、
(置換前, 置換後)のような文字列の組が、
複数定義してあって、それを配列に読み込むと、
FROM_ARY = ["Ruby","Python","JavaScript"] # 置換前
TO_ARY = ["宝石","蛇","JS"] # 置換後
この置換表を使って、
文字列(またはファイル)をどうやって置換するの?
0071デフォルトの名無しさん
2015/03/27(金) 06:03:49.89ID:DTkMuG4d0072デフォルトの名無しさん
2015/03/27(金) 09:02:41.18ID:59COlJN1007360
2015/03/27(金) 16:35:01.78ID:B/xnV6qpstr.gsub!(Regexp.new(sFROM), sTO)
end
結局、文字列(またはファイル)全体を、
何回もループして、1つずつ置換していくんだね?
>>71
Regexp.union(配列)は、
配列中のどれかの要素と一致したら、
という意味だから、漏れの想定とは違う
0074デフォルトの名無しさん
2015/03/27(金) 17:14:58.35ID:9ORSmkz6そんなもんHashでやれよ。
ゴルフのネタでも提供してるつもりなのか。おまいは。
0075デフォルトの名無しさん
2015/03/27(金) 21:44:19.77ID:4Pr9ruNj0076デフォルトの名無しさん
2015/03/28(土) 00:29:01.06ID:NvPvIHKeありがとうございます。
fetch 試してみます、使ったことないです。
0077デフォルトの名無しさん
2015/03/28(土) 09:55:00.70ID:eS6PuzJCその手順で読んでみたけど理解出来た気がしなかった
0078デフォルトの名無しさん
2015/03/28(土) 19:04:32.10ID:9D6q6DQr0079デフォルトの名無しさん
2015/03/28(土) 19:18:47.63ID:eS6PuzJC0080デフォルトの名無しさん
2015/03/28(土) 19:41:05.67ID:9D6q6DQrプログラミングのスーパー初心者の僕にわかりやすくおしえてくだせえ…
0081デフォルトの名無しさん
2015/03/28(土) 20:20:08.09ID:3hbPl+o9そういう奴はGUI自体が分かってないから、何言っても無駄
0082デフォルトの名無しさん
2015/03/28(土) 21:20:26.56ID:eS6PuzJC0083デフォルトの名無しさん
2015/03/28(土) 21:55:51.48ID:9D6q6DQrそう言わずに、兄さぁぁん!!
0084デフォルトの名無しさん
2015/03/28(土) 22:58:25.89ID:Rm/MLphK0085デフォルトの名無しさん
2015/03/29(日) 00:28:25.67ID:t4hqKB210086デフォルトの名無しさん
2015/03/29(日) 01:58:18.36ID:cbZ+OAuX0087スッキリ厨
2015/03/29(日) 02:26:23.38ID:abbduuww繰り返し読むと、最初は20Hかかっていたのが、
次には10Hで読める
まあ、2,3回読めばよいと思う
0088デフォルトの名無しさん
2015/03/29(日) 10:18:33.36ID:PdgsgtyB0089デフォルトの名無しさん
2015/03/29(日) 12:29:11.20ID:tbam8Ryaどれがいいかは知らない
Rubyist Magazine - Ruby de GUI
http://magazine.rubyist.net/?0001-RubyGUI
0090デフォルトの名無しさん
2015/03/29(日) 22:14:44.40ID:yrIUYa7Mプログラミング始めたばかりです。
GUIつくるとかレベル高杉ますか?
0091デフォルトの名無しさん
2015/03/29(日) 22:30:51.02ID:yrIUYa7Mありがとうございます!
ちょい読んでみる!
0092デフォルトの名無しさん
2015/03/30(月) 01:30:09.86ID:tZH83wbT使いまわし効くと思うけどね
0093デフォルトの名無しさん
2015/03/30(月) 12:52:21.90ID:5htnBXQShttp://melborne.github.io/2010/10/12/Ruby/
a,bに1つずつ入ったらmergeに行って小さい順にresに入れていく、を繰り返してると思うんですが、
これだと整列された2つが次々resに入ってもres全体では整列されてないように思えます・・・ご教授おねがいします
class Array
def merge_sort
tmp = self.dup
return tmp if tmp.length <= 1
a, b = self.half.map { |e| e.merge_sort }
merge(a, b)
end
def half
mid = length/2
return slice(0...mid), slice(mid..-1)
end
def merge(a, b)
res = []
until a.empty? && b.empty?
res <<
case
when a.empty? then b.shift
when b.empty? then a.shift
when a.first < b.first then a.shift
else b.shift
end
end
res
end
end
0094デフォルトの名無しさん
2015/03/30(月) 13:57:02.46ID:KemAcwb40095デフォルトの名無しさん
2015/03/30(月) 14:00:25.71ID:5htnBXQSそれがa,bに渡されて整列されていくのかな
0096デフォルトの名無しさん
2015/03/30(月) 17:09:10.01ID:vd5gzrat図や表に描いて、一つずつ考える
0097デフォルトの名無しさん
2015/03/30(月) 18:09:54.03ID:vBLCev700098デフォルトの名無しさん
2015/03/30(月) 22:52:03.53ID:jOu/nfHk例えば、$a[1]を$bという名前で扱いたいです。
$bに変更をかけると$a[1]も変更される、aliasのような扱いが望ましいのですが、
alias $b $a[1] と書くとエラーが出てしまいます。
どなたかご教授くださいますようお願いいたします。
0099デフォルトの名無しさん
2015/03/31(火) 07:46:50.82ID:E5ZmHRmL0100デフォルトの名無しさん
2015/03/31(火) 13:58:02.55ID:meXl7bV+条件付きでできる
配列の要素に別名を付けるというわけではなく
配列の要素であるオブジェクトを別の変数名でも参照するようにする(2行目)
そのオブジェクトを破壊的に変更すればどちらから見ても変更されていることになる(3〜6行目)
ただし、別のオブジェクトを参照するように再代入した場合は
参照するオブジェクトが変わっただけで元のオブジェクトは変更されていないので
もう片方から見ると変わっていないことになる(7〜8行目)
下記例では配列の要素がArray型のオブジェクトなのでうまくいくが、ただの整数とかだと破壊的変更ができないのでできない
irb(main):001:0> a=[[1,2],[2,3]] #=> [[1, 2], [2, 3]]
irb(main):002:0> b=a[1] #=> [2, 3]
irb(main):003:0> b<<5 #=> [2, 3, 5]
irb(main):004:0> a #=> [[1, 2], [2, 3, 5]]
irb(main):005:0> b.delete(2) #=> 2
irb(main):006:0> a => [[1, 2], [3, 5]]
irb(main):007:0> b=3 #=> 3
irb(main):008:0> a #=> [[1, 2], [3, 5]]
0101デフォルトの名無しさん
2015/03/31(火) 13:59:55.80ID:aNarOGXw0102デフォルトの名無しさん
2015/03/31(火) 23:15:44.57ID:oj+ySTd60103デフォルトの名無しさん
2015/03/31(火) 23:59:25.24ID:emRDa7+p0104デフォルトの名無しさん
2015/04/01(水) 00:31:47.75ID:N2hhpQD60105デフォルトの名無しさん
2015/04/01(水) 01:35:01.62ID:UVT1+zz0010698
2015/04/01(水) 01:40:10.89ID:0SHwilWW>>102
変更が困難な基盤システムのデータ管理方法として、
バックアップの必要なデータはある1つの配列に集約するという
ルールになっております。
配列名が汎用のものなので可読性に欠けるため、
別名での管理が出来ればと考えておりました。
>>101
hashでも構いませんが、
何かしら方法があるだろうと思って調べておりました。
またRubyを扱い始めたばかりなため、勉強の一環として
hashではなく別名で管理するという方法を覚えてみようと考えたのも理由です。
C言語におけるdefineのようなことが、まさか出来ないはずはないと思い
同様の手軽さで出来ることを前提に考えていましたが、
一筋縄ではいかないようで……。
>>100、103、その他ご検討いただいた皆様。
ありがとうございました。
ご意見は手法のひとつとして参考にさせていただきましたが、
今回Ruby初心者の私が安全に実装できるかは少し疑問だったので
結局、hashでの管理に落ち着くことにいたしました。
0107デフォルトの名無しさん
2015/04/02(木) 14:36:03.07ID:qqPJ8aIOimport math as m
cos関数に、別名を付ける
from math import cos as c
JavaScriptで、オブジェクトチェーンを作る
var objA = {
objB: {
objC: { foo: 'bar' }
}}
objA.objB.objC.foo
Rubyにはこういうものや、
Alias、名前空間などは無いの?
0108デフォルトの名無しさん
2015/04/02(木) 16:53:57.56ID:Jdu7FtOn0109デフォルトの名無しさん
2015/04/02(木) 18:43:53.42ID:z8Sedsrdモジュールや関数もファーストクラスオブジェクトなんだから変数に代入すれば別名になる
もしくは関数ならaliasやalias_methodで別名を付けられる
オブジェクトチェーンって言ってるのと名前空間は別な気がするが・・・
オブジェクトチェーンって言ってるやつはネストした構造体でしょ?Rubyはもちろん大体どの言語でもできるのでは
Rubyで名前空間っていうならModuleやClass内Classかな
0110デフォルトの名無しさん
2015/04/03(金) 15:29:12.49ID:ECHkgOPXRaspberry Pi 2を使ったノートパソコン組み立てキット「Pi-Top」
https://www.youtube.com/watch?v=jb6hVe1fRzI
組み込み用Ruby「mruby」でモノ作りを始めよう日経LINUX
マイコンボードでmrubyを動かす
http://itpro.nikkeibp.co.jp/article/COLUMN/20130712/491148/
0111デフォルトの名無しさん
2015/04/03(金) 19:29:04.36ID:V4mE3d7ZノートPCと比べて何が嬉しいもの?
マイコンは小ささが大きな利点だと思ってたんだけど違うのか
0112デフォルトの名無しさん
2015/04/03(金) 20:03:45.66ID:LDkJND5+0113デフォルトの名無しさん
2015/04/03(金) 20:04:48.74ID:ECHkgOPXPCの前だけで完結する訳じゃないから
出先で稼働チェック、バグ発見できるじゃないの
0114デフォルトの名無しさん
2015/04/05(日) 03:13:12.56ID:6AkiVh1a例
subf=[]
subf[0]="aa0()" #配列にメソッドaa0を登録
subf[1]="aa1()"
[1,0].each{ |i|
subf[i] #メソッド aa0 などを呼び出したい
}
eval を使えばできましたが遅くなりそうです。
他の方法はありますでしょうか
0115デフォルトの名無しさん
2015/04/05(日) 08:41:52.46ID:/p4ZvisL0116デフォルトの名無しさん
2015/04/06(月) 00:18:11.99ID:YJS2Vz5lありがとうございます。
send(:メソッド名)でできました。
ぐぐったら method(変数).call という方法もありました。
どれもマニュアル本にのっていなかった。
0117デフォルトの名無しさん
2015/04/06(月) 12:39:37.41ID:azS7WBIjたのしいRubyにもパーフェクトRubyにも無かったのに…
便利だからもっと布教して欲しいな
0118デフォルトの名無しさん
2015/04/09(木) 16:19:46.37ID:RpdxwBCT一番左は行数ね
1:dbh = DBI.connect('DBI:SQLite3:hoge.db')
2:dbh.select_all('select * from fuga') do |row|
3:print "row = #{row}\n"
4:print "name = #{row[0]}\n"
5:end
4行目は返ってくるんだけど,3行目が何も返ってこない
ほんとは,row=[X,Y]みたいな感じで返ってくると思うんだけど
なんでだろ?
0119デフォルトの名無しさん
2015/04/09(木) 18:30:31.53ID:l3U3HHix最低でもrow=""くらいは出力されそうですが…
コンソールの故障ではないでしょうか?
0120デフォルトの名無しさん
2015/04/10(金) 01:41:52.05ID:yrWgqEIFrow =
これは返ってきます
0121デフォルトの名無しさん
2015/04/10(金) 09:29:55.62ID:RfX1D9w40122デフォルトの名無しさん
2015/04/10(金) 17:08:35.61ID:yrWgqEIF答えてくれた人ありがとう
0123デフォルトの名無しさん
2015/04/10(金) 22:27:53.31ID:iSKCb4Co0124デフォルトの名無しさん
2015/04/11(土) 10:28:57.31ID:ncuFBFa50125デフォルトの名無しさん
2015/04/11(土) 12:26:53.70ID:OMIW7dLX0126デフォルトの名無しさん
2015/04/11(土) 16:13:24.52ID:UKPnNYb6なら、配列の中身を表示してくれる
0127デフォルトの名無しさん
2015/04/11(土) 16:54:15.74ID:OMIW7dLXDBI::Rowのto_sがnilか何かを返すから何も表示されなく見えるんでしょう
0128デフォルトの名無しさん
2015/04/11(土) 19:35:20.19ID:jprZbhPvこれもっと短くかけない?
0129デフォルトの名無しさん
2015/04/11(土) 20:07:28.44ID:OMIW7dLX0130デフォルトの名無しさん
2015/04/11(土) 20:20:11.34ID:jprZbhPvありがとう。
これなんて言葉でググったら出てくるのかさっぱりわからんw
0131デフォルトの名無しさん
2015/04/11(土) 20:21:42.15ID:jprZbhPv0132デフォルトの名無しさん
2015/04/11(土) 21:03:05.89ID:OMIW7dLXsplat展開とか*をsplat演算子とかいう
0133デフォルトの名無しさん
2015/04/11(土) 22:42:31.45ID:gihZD1Jp?
syntax error
0134デフォルトの名無しさん
2015/04/11(土) 23:11:06.53ID:m2InqXq30135デフォルトの名無しさん
2015/04/11(土) 23:44:42.63ID:OMIW7dLX0136デフォルトの名無しさん
2015/04/12(日) 00:30:37.84ID:kD7m9Q1o一生に三回くらいしか使わなさそうだからいいや
うっかり使ってしまうと5年後、自分で読めなくなりそう
使った方がいい人もいるのだろうが
0137デフォルトの名無しさん
2015/04/12(日) 03:14:45.31ID:Ve5wxvO+そうか?結構使うぞ
0138デフォルトの名無しさん
2015/04/12(日) 15:06:38.33ID:u+bXlDiVどのように記述すればよろしいのでしょうか?
____4____4__5_山田_太郎________9
__8______田中_次郎________5
____13___9___オサマ_ビン_ラディン___28
____________加藤_花子________7
※半角スペースをアンダースコアで表してあります。
※人名の前の数字は最小0で最大4つ存在します。
※数字は最大2桁です
よろしくお願いします。
0139デフォルトの名無しさん
2015/04/12(日) 16:19:45.45ID:MTxsiU+i/(?!_)[_日本語]*[日本語]/
[]の中の日本語は用途に合わせて
\p{Han}\p{Hiragana}\p{Katakana} なり
[亜-熙ぁ-んァ-ヶ] なり適宜入れ替えてくれ。
0140デフォルトの名無しさん
2015/04/12(日) 16:32:16.86ID:MTxsiU+i/(?!_)[\D]*[^_\d]/
0141デフォルトの名無しさん
2015/04/12(日) 16:48:53.22ID:MTxsiU+i/(?!_)[_日本語]+(?<!_)/
/(?!_)\D+(?<!_)/
0142デフォルトの名無しさん
2015/04/12(日) 16:52:22.33ID:4195b+YJ同一視してくれるメタキャラクタってないですよね・・・?
0143138
2015/04/12(日) 17:08:52.73ID:u+bXlDiVマッチできました!
ただこの表現(先読み、後読み?)が理解できていないので、これから調べてみます。
ありがとうございました!
0144デフォルトの名無しさん
2015/04/13(月) 16:22:45.31ID:gNPn7XlC0145デフォルトの名無しさん
2015/04/14(火) 02:09:34.93ID:FDWB7Bl3出来なければ、universal_newline で、
\r, \r\nを、\nに置き換えたら?
0146デフォルトの名無しさん
2015/04/15(水) 04:51:37.21ID:jXTy0Fxm0147デフォルトの名無しさん
2015/04/17(金) 23:47:40.49ID:eE8aPdvbそうも行かんのよ。
なぜなら、hogehoge(\r|\n|\r\n) のhogehogeを置き換えたいが、
それ以外の\r, \n, \r\n はそのままにしておきたいから。
0148デフォルトの名無しさん
2015/04/18(土) 01:27:35.31ID:zEo+1i3aa.values_at(* a.each_index.select {|i| i.even?})
配列の要素のうち、インデックス番号が奇数のものだけ取り出したいとき、
うえのようにすればよいみたいだ、というのはわかったのですが、
この values_at(* ... )の "*" はどういう処理を行っているのでしょうか
0149148
2015/04/18(土) 01:57:13.33ID:zEo+1i3a0150デフォルトの名無しさん
2015/04/18(土) 03:47:15.67ID:j/wjXDDUruby * 引数
ruby 記号
などで検索する
* は余りとか、配列にまとめて扱う、
数のわからない引数リスト
0151デフォルトの名無しさん
2015/04/18(土) 14:56:46.64ID:vWBjvHtTオススメの教科書ありますか?
0152デフォルトの名無しさん
2015/04/18(土) 22:32:35.26ID:JaNp7CB/それを全て表示するにはどういう処理を書けばいいんだろ?
具体的には
a,pple
ap,ple
app,le
appl,e
apple,
みたいな感じにしたい
0153デフォルトの名無しさん
2015/04/18(土) 22:46:30.38ID:kJGYLJy1でstrのi番目にカンマを挿入した文字列になる
0154デフォルトの名無しさん
2015/04/19(日) 00:52:37.89ID:JgTbIpQo説明不足だったごめん
それはわかる
俺の知識だとこれを全部表示したいときに
puts str[0...1] + "," + str[0..-1]
puts str[0...2] + "," + str[0..-2]
.
.
.
みたいにしか書けなくてこれだと面倒だし汎用性低いから
うまく繰り返しの処理使って書けないかなと
0155デフォルトの名無しさん
2015/04/19(日) 02:08:39.92ID:6VTvXYTpを使って書くと、
str = 'apple'
(1..str.length).each do |i|
puts str[0...i] + "," + str[i..-1]
end
>>154
>puts str[0...1] + "," + str[0..-1]
>puts str[0...2] + "," + str[0..-2]
[0..-1], [0..-2]ではなく、[i..-1]だよ
0156デフォルトの名無しさん
2015/04/19(日) 12:53:42.85ID:JgTbIpQoありがとう
ここにでてくるメソッドとか構文は全部知ってたし
コード読めば理解できるんだけど、自分では全く
思いつかなかった
どうしたら思いつくように、というか自分でコードが書けるように
なるんだろう
コツとか勉強法とかあったら教えて欲しい
0157デフォルトの名無しさん
2015/04/19(日) 13:27:19.89ID:wxQ8bpjmコードを書く経験が圧倒的に不足しているんじゃない
0158デフォルトの名無しさん
2015/04/19(日) 13:30:52.47ID:HWkUOGT6forとifとwhileでかなりのことはできるから、まずそれを思い通りに使えるようにする
0159デフォルトの名無しさん
2015/04/19(日) 16:20:52.36ID:JgTbIpQoなるほど、たしかにコードはあまり書いてないし
whileとかもちゃんと理解してないな...
アドバイスありがとう
参考にさせてもらいます
0160デフォルトの名無しさん
2015/04/19(日) 17:09:27.07ID:6VTvXYTpi=1なら、str[0...1] + "," + str[1..-1]
i=2なら、str[0...2] + "," + str[2..-1]
i=nなら、str[0...n] + "," + str[n..-1]
>>154
で君が既にやっている通り、
簡単な表にして、具体的に考える。
そして具体的なものから、抽象化・一般化する
特に再帰では、表にしないと理解できないよ
0161デフォルトの名無しさん
2015/04/19(日) 20:38:34.75ID:ufvWNWCdhttps://ideone.com/6LVi8s
0162デフォルトの名無しさん
2015/04/19(日) 23:42:27.12ID:BlhhoLV30163デフォルトの名無しさん
2015/04/20(月) 07:52:32.08ID:6ZYvOI+Qiを見ると何故か反射的にtimesが思い浮かんでしまう
0164デフォルトの名無しさん
2015/04/20(月) 11:13:20.53ID:rPDQ4MSJ\G なんて使ったことない
処理速度的にも each などを使うより速いのでしょうか
0165デフォルトの名無しさん
2015/04/20(月) 19:59:50.49ID:MvH6tGWq0166デフォルトの名無しさん
2015/04/20(月) 20:39:58.42ID:j3ZSM6vsoniguruma or onigmo の機能なら書いてないけど使えるってことなのかな
柔軟な発想ですごいなあ
まあ実際にコードかくなら155で十分な気がするけど
0167デフォルトの名無しさん
2015/04/20(月) 20:50:49.56ID:BD4F5QuZ> [ プログラム ] Ruby 初心者スレッド Part 56©2ch.net
> 80 名前:デフォルトの名無しさん [sage]: 2014/12/28(日) 19:00:20.64 ID:EhJlAFnh (2)
> \Gなんて使ってるのは見たことないんですがどういう時に使うものなのか何かサンプルはありませんか?
http://peace.2ch.net/test/read.cgi/tech/1418430552/81
> [ プログラム ] Ruby 初心者スレッド Part 56©2ch.net
> 81 名前:デフォルトの名無しさん [sage]: 2014/12/28(日) 19:08:58.77 ID:0BcgJOIK
> >>80
> 1.8.7になっちゃいますが、ここにありますよ
> http://docs.ruby-lang.org/ja/1.8.7/doc/spec=2fregexp.html#regexp
> あとこことかも
> http://magazine.rubyist.net/?0020-BundledLibraries
0168デフォルトの名無しさん
2015/04/20(月) 20:51:26.46ID:MvH6tGWqtp://docs.ruby-lang.org/ja/1.8.7/doc/spec=2fregexp.html#regexp
0169デフォルトの名無しさん
2015/04/20(月) 20:52:35.91ID:MvH6tGWq0170デフォルトの名無しさん
2015/04/20(月) 21:45:38.26ID:j3ZSM6vsなんで1.9.3マニュアルからは消えたんだろう?
それとも自分が見つけれてないだけで載ってる?
0171デフォルトの名無しさん
2015/04/20(月) 22:03:30.73ID:lBn3AcT10172デフォルトの名無しさん
2015/04/21(火) 00:54:47.84ID:lokfdG/n利用者が少ないので、そのうち機能削除と推定
0173デフォルトの名無しさん
2015/04/21(火) 01:25:01.11ID:mlZT6oHh0174デフォルトの名無しさん
2015/04/21(火) 03:17:05.85ID:2LCbUk1L0175デフォルトの名無しさん
2015/04/22(水) 17:04:26.56ID:zTSSyZOcファイル名をfoo.erbとして以下のプログラムを
書いたのですがうまく表示されません
<html>
<head>
<title>foo</title>
</head>
<body>
<% a = rand 5 %>
<%= <img src="#{a}.jpg"> %>
</body>
</html>
0176デフォルトの名無しさん
2015/04/22(水) 17:50:18.54ID:YVcdWSZh<img src=<%= "\"#{a}.jpg\"" %>>
0177デフォルトの名無しさん
2015/04/22(水) 18:12:10.20ID:zTSSyZOcできました!
ありがとうございます!
0178デフォルトの名無しさん
2015/04/25(土) 21:26:53.65ID:7JJG1bdn└プラグインインターナル
Redmineにて、上の「Redmine の本体機能のオーバーロード」をviewsで行いたいと思ってます
そこで複数のプラグインでの同一viewのオーバーロードを試したら
どうもプラグイン名のアルファベットが後のものが優先される気がするのですが、
若いものを優先させる方法はないでしょうか?
0179デフォルトの名無しさん
2015/04/26(日) 01:20:48.48ID:asKmOzJa0180デフォルトの名無しさん
2015/04/26(日) 01:55:23.60ID:L6M7+b170181デフォルトの名無しさん
2015/04/26(日) 11:23:26.17ID:b8PGU3dGちょうど数ヶ月前に作ったことがあるけど簡単にできるよ
0182デフォルトの名無しさん
2015/04/26(日) 22:45:41.51ID:EyibrkcR0183デフォルトの名無しさん
2015/04/26(日) 23:12:28.16ID:C+a0R1p+0184デフォルトの名無しさん
2015/04/27(月) 13:47:55.09ID:EJCz8b3Fプログラミングは画用紙とクレヨンと同じ:『Hello Ruby』の著者が語る成長の物語 #SlushAsia
Lifehacker
0185デフォルトの名無しさん
2015/04/27(月) 23:46:49.78ID:U5G0BE7/総当たり式だと、他に解が無いか(複数解)の確認が必要になり、
かえって複雑になるような気がする。
0186デフォルトの名無しさん
2015/04/28(火) 04:18:05.78ID:ZSPnkmQx0187デフォルトの名無しさん
2015/04/28(火) 09:19:39.84ID:YDhB7+fs解の一意性を仮定するかどうかでも多少変わってくるが
0188デフォルトの名無しさん
2015/04/28(火) 22:07:24.55ID:N9lyu4uwおもしろくないけどw
0189デフォルトの名無しさん
2015/04/28(火) 22:32:50.70ID:qVL3+LTP0190デフォルトの名無しさん
2015/04/28(火) 23:23:09.92ID:mW9wjtdm0191デフォルトの名無しさん
2015/04/28(火) 23:44:15.99ID:RGLkAIGi0192デフォルトの名無しさん
2015/04/29(水) 00:01:15.83ID:jPUUiyrt解のある場合だけだとそんなに多くない
行や列や数字の入れ替え、回転、裏返し操作で同じ物を除くと更に減る
どれくらいになるかは面白そうだけどrubyではなく、数学の問題かな
0193デフォルトの名無しさん
2015/04/29(水) 00:37:22.57ID:LCS8IA96それなら十分パターン照会の方が早いかな
まぁそこまでやるならRubyにこだわる必要性は皆無だけど
0194デフォルトの名無しさん
2015/04/29(水) 00:49:01.58ID:i2xwsgev万が一パターン漏れてたらどうすんの
0195デフォルトの名無しさん
2015/04/29(水) 00:49:05.10ID:LCS8IA96RCCはちょっと計算時間を要するけど、それ以外は大した計算時間も必要なかったし
(枝刈りはちゃんとやらないと計算量が爆発するけど)
0196デフォルトの名無しさん
2015/04/29(水) 00:53:11.45ID:LCS8IA96そういうパターンを数え上げるのはコンピュータの得意とするところでしょ
枝刈りをきちんとやれば現実的な時間で数え上げられるよ
0197デフォルトの名無しさん
2015/04/29(水) 06:09:19.11ID:f54jgqM7互いに影響を受けずに独立に値を決められるマスが9マスあるから少なくとも9^9通り以上だろう。
0198デフォルトの名無しさん
2015/04/29(水) 09:53:49.58ID:q0yxqD4A並べ替え・反転・回転・数字の入れ替えを考慮して5472730538通りだそうだ
データベース作れなくはないな
0199デフォルトの名無しさん
2015/04/29(水) 10:28:27.40ID:g6CBhBxfキーにできる値って何になるのか
0200デフォルトの名無しさん
2015/04/29(水) 10:29:08.43ID:f54jgqM7盤面をマス間の同値関係で表現してビットマップインデックスでも使うか。
0201デフォルトの名無しさん
2015/04/29(水) 10:41:20.10ID:CB780E1e{x,y,n} を key とするlookupテーブルを用意すればいいんじゃないの?
0202デフォルトの名無しさん
2015/04/29(水) 10:48:29.64ID:g6CBhBxf1マスだけ指定して何が取れるテーブルにするの?
0203デフォルトの名無しさん
2015/04/29(水) 13:47:21.25ID:LCS8IA96解答パターンIDみたいなもんじゃない?
複数のx,y,nをANDでつないでいけばパターンIDがひとつに絞り込める、みたいな
0204デフォルトの名無しさん
2015/04/29(水) 14:35:10.76ID:i2xwsgev0205デフォルトの名無しさん
2015/04/29(水) 16:51:43.40ID:LCS8IA96それでもいいんじゃない?
計算量的にはどちらでも同じになりそうな気がするし
0206デフォルトの名無しさん
2015/04/29(水) 21:44:55.30ID:U49c0tb7数字の入れ替えで得られるものは本質的に同じなので、データベース上の局面はすべて1行目が123456789となってる可能性もある
入れ替えと回転・反転だけなら総当りで、どれがデータベースに登録されてるか調べることはできそうだけど
リンク先を見ると総局面はユニークな局面の1兆倍ほどだから、どの局面として登録されてるかを判断するのも一苦労
0207デフォルトの名無しさん
2015/04/29(水) 22:11:51.72ID:f54jgqM7ABCD
a1 2
b 3
c
d 2
以下の条件を同時に満たす局面が検索できればいい。
AaとBdは異なる
AaとCaは異なる
AaとDbは異なる
BdとCaは同じ
BdとDbは異なる
CaとDbは異なる
単純にやろうとすると81*(81-1)/2=3240個のフィールドが必要になるけど。
0208デフォルトの名無しさん
2015/04/30(木) 11:37:07.16ID:M3WUgXkG後は対称な局面を調べればいいだけか
0209デフォルトの名無しさん
2015/04/30(木) 20:46:55.87ID:CtownvBXこれで言おうとしてる事って、完成状態から9種の数字の個々を入れ替えても同様に完成状態として成立するって事かな?
データベースとしては1行目を一般化してa〜iという記号で固定しておけば件数かなり減りそうだ
反転とかあるから1/9!とまではいかないけど数桁削れそう
0210デフォルトの名無しさん
2015/05/01(金) 11:24:57.32ID:eqatqBnD0211デフォルトの名無しさん
2015/05/01(金) 12:37:06.39ID:bH7RBw4h0212デフォルトの名無しさん
2015/05/01(金) 13:46:23.99ID:jAM2krsm0213デフォルトの名無しさん
2015/05/01(金) 17:51:23.36ID:tPnkV53E読まない、見るだけが8割
プロック
心に余裕がある時はプロセジャー
0214デフォルトの名無しさん
2015/05/02(土) 01:43:23.86ID:5VssKqD10215デフォルトの名無しさん
2015/05/02(土) 05:30:49.57ID:PoUrbjOe0216デフォルトの名無しさん
2015/05/02(土) 06:38:15.83ID:xXK42ACJつ ttp://www.merriam-webster.com/dictionary/procedure
ということで、日本語からカタカナ表記がすべて無くなればいいと思います。
0217デフォルトの名無しさん
2015/05/02(土) 10:12:34.93ID:RbSXq7CR結局英語を見ても適当に発音して混乱するしなあ
どうなるのが良いんだろう?
>>216
発音記号だけ見るとプロセヤーに見えてしまう そこの発音記号間違ってない?
0218デフォルトの名無しさん
2015/05/02(土) 15:44:39.32ID:GdWsYLg4一人だけ正しい発音してもねー
0219デフォルトの名無しさん
2015/05/02(土) 16:24:41.59ID:eD8Z1MUe0220デフォルトの名無しさん
2015/05/02(土) 16:33:05.65ID:3eY1bcImIPA準拠でない発音記号は数多くある。
というか英単語の発音でIPA準拠しているものに遭遇した記憶がない
0221デフォルトの名無しさん
2015/05/02(土) 16:41:51.65ID:K///ApN8日本人ならラテン文字綴りを全部訓令式ローマ字読むようなもん。
コンピュータ言語の予約語とかは違うかも知れないけど。
0222デフォルトの名無しさん
2015/05/02(土) 16:42:56.64ID:K///ApN8◯プログラミング言語
0223デフォルトの名無しさん
2015/05/02(土) 17:31:20.80ID:FKREMwzJ0224デフォルトの名無しさん
2015/05/04(月) 10:11:15.69ID:VrN6lBi/まぁAPLみたいになられても困るのだが・・・
0225デフォルトの名無しさん
2015/05/04(月) 10:55:31.34ID:+ZdhyuUDJの立場がw
0226デフォルトの名無しさん
2015/05/04(月) 22:25:50.31ID:a5/ons/h,\ をパースできるようにするパッチを送るチャンスだ!
0227デフォルトの名無しさん
2015/05/05(火) 09:14:26.98ID:6w+bN4p2関数っぽいのに()で呼べないのおかしくね?
とか考え出すとscalaやC#に近づいていってしまう。
0228デフォルトの名無しさん
2015/05/10(日) 01:26:12.23ID:E8bjKhA40229デフォルトの名無しさん
2015/05/12(火) 18:21:52.25ID:bBUMqeIN0230デフォルトの名無しさん
2015/05/12(火) 19:00:12.56ID:VPfkeJkHダブルクォーテーションやシングルクォーテーションでも改行含んでいても普通に文字列作れますが
0231デフォルトの名無しさん
2015/05/12(火) 19:05:34.93ID:VPfkeJkH改行で要素を分ける仕様じゃダメだったんですか?
[
"aaa",
"bbb",
"ccc",
]
ではなく
[
"aaa"
"bbb"
"ccc"
]
でいいんじゃないかということです。
一行で書くならもちろん必要ですが、改行で要素が分かれていることは自明なわけで。
0232デフォルトの名無しさん
2015/05/12(火) 20:04:24.35ID:E78u8ziX0233デフォルトの名無しさん
2015/05/12(火) 20:14:26.86ID:uJjQzeKQヒアドキュメントだと最初の行をその行じゃなく次の行の行頭から書けるという違いはある
>>231
JSONやYAMLとかほかの言語とかとあえて違う記述を可能にする理由が無かったんでしょ
それに個人的な感想としてはブロックみたいな雰囲気を出してるからそのままだと最後の行の値を返しそうにも見える
0234デフォルトの名無しさん
2015/05/12(火) 21:32:28.16ID:T2eyCbcCヒアドキュメントはうっかり閉じてしまう確率が格段に低い。
>>231
そういう提案はある。
https://bugs.ruby-lang.org/issues/8956
https://bugs.ruby-lang.org/issues/10528
積極的に推し進める人がいないので話が進んでないみたいだけど
強い反対もなさそうなのでそのうち採用されるのかもね
0235デフォルトの名無しさん
2015/05/12(火) 22:30:23.97ID:UZCLQ5ym面倒に感じるほど配列をソース中に埋め込まなければならない
設計なんか見たら俺はリジェクトする
0236デフォルトの名無しさん
2015/05/12(火) 23:07:24.09ID:a39hBEOUさすがにうっかり閉じてしまうようなケースはエディタのハイライトで気づけると思うが…
それすらできないようなエディタは窓からポイーだろうし
俺も考えてみたけど、ヒアドキュメントは単純にPerlとかからもらってきたからあるだけで
そこまでメリット・デメリットを考えて導入されたものじゃない気がする
なのでそんな違いはないので好きな方を使っとけ、ってのが結論じゃないかと
0237デフォルトの名無しさん
2015/05/12(火) 23:24:19.47ID:McgsoQJk%W(aaa bbb ccc)
0238デフォルトの名無しさん
2015/05/12(火) 23:33:39.43ID:avMjEYTK空白類は改行も含む
0239デフォルトの名無しさん
2015/05/13(水) 01:48:17.64ID:9i6gM8IV>>231
ary = <<EOT.split
aaa
bbb
ccc
EOT
みたいに書けることは意外に知られていない気がする
0240デフォルトの名無しさん
2015/05/13(水) 08:48:10.25ID:PDARsX4gいちいちエスケープするの面倒だろ
ほぼそのまま書けるのがヒアドキュメントのメリット
0241デフォルトの名無しさん
2015/05/13(水) 10:21:10.72ID:5w+SdhWJ%記法ってのもあるんですが…
0242デフォルトの名無しさん
2015/05/13(水) 17:31:25.41ID:/vC2Ckq+Ruby2.2.2 にてbyebugのgemインストールにてdevkit入れろとエラーがでてしまいます
2.2系のDevkitが探しても無いようなのですが
まだないということでしょうか?
0243デフォルトの名無しさん
2015/05/13(水) 18:35:35.64ID:AOVYLWkNこんなとこに書き込む暇があったら試せよ
0244デフォルトの名無しさん
2015/05/13(水) 18:47:43.50ID:dkMaBjggRuby 2.0.0 and above: mingw64-32-4.7.2
Ruby 2.0.0 and above x64 (64bits): mingw64-64-4.7.2
って書いてあるから2.2.2でもいけるんじゃない?
0245デフォルトの名無しさん
2015/05/13(水) 19:20:26.79ID:peiJ2wcYダウンロードページを少し読めばすぐ分かるようなことを簡単に教えちゃダメだって…。
初心者スレとはいえ、ここの住人は優しすぎると思うよ。
0246デフォルトの名無しさん
2015/05/13(水) 19:21:24.94ID:peiJ2wcY0247デフォルトの名無しさん
2015/05/20(水) 01:55:45.72ID:JquZNGcV0248デフォルトの名無しさん
2015/05/20(水) 15:55:40.92ID:PrWBPEio>>243は教えてないじゃん
初心者スレだと、installするのがやっとで、何日もかけて何とか成功する人もいるので。
0249243 245 246
2015/05/20(水) 18:23:03.15ID:JDqrHdgv242はRuby使うのは初めてじゃなさそう(多分1.8 or 1.9からの乗り換え)だったから、もうちっと自分で調べろよ。
と言う思いで、突き放したレスをしたのよ。
2.2とDevkitは俺も使ってるから、Devkitが問題なく動くことは知ってたんだけどさ。
そもそも、ホントの初心者なら、WindowsでRubyを使うこと自体をお勧めしないのが親切なんじゃね?
ないしは、gemがきちんと整備されてる1.9系をまず使うように案内するとか。
0250デフォルトの名無しさん
2015/05/20(水) 22:03:37.78ID:ptbOhCsA0251デフォルトの名無しさん
2015/05/21(木) 15:30:14.61ID:GdS2dqGm例えばNokogiri::XML::NodeSetというのは何を表しているのですか?
親子関係なのかメソッド呼び出しによる返り値からさらにメソッドを呼び出してるのか……
::は一体なんなのですか?調べてもしっくりするものが出てきません
PHPであれば::はstaticのメソッドやプロパティにアクセスするための記号だなぁとわかるのですが。
手元にある「たのしいRuby」には「.」と「::」同じ意味と書いてありましたがどうもライブラリのリファレンスなどでは::と.を使い分けてるように感じます
0252デフォルトの名無しさん
2015/05/21(木) 17:59:42.18ID:TIfvV/jThttp://melborne.github.io/2013/09/24/rubys-scope/
0253デフォルトの名無しさん
2015/05/21(木) 19:12:10.92ID:GdS2dqGmリンクありがとうございます
すごくわかりやすいです。助かりました感謝致します。
0254デフォルトの名無しさん
2015/05/22(金) 21:21:58.30ID:6YiaeImKなければwgetするタスクってないのん?
0255デフォルトの名無しさん
2015/05/24(日) 19:53:45.34ID:BGt14oQU0256デフォルトの名無しさん
2015/05/25(月) 21:09:31.82ID:bs/1UzykCurlで何か書こうかなーと思ったら
ruby -e "$(curl -fsSL https://www.google.co.jp/")ってやったら
-e:1: `$(' is not allowed as a global variable name
ってなちゃって(´・ω・`)
curl --help は動くんだけどなんででしょー(´・ω・`)
Windows7 64bit Ruby2.2.2 コマンドプロンプトです。
スキルはdotinstall ruby半年前に全部見た程度です。
0257デフォルトの名無しさん
2015/05/25(月) 22:17:45.79ID:o6nCxH6o0258デフォルトの名無しさん
2015/05/26(火) 01:24:33.10ID:w5o9scD70259デフォルトの名無しさん
2015/05/26(火) 14:38:46.64ID:ty86ilJR0260デフォルトの名無しさん
2015/05/26(火) 14:39:14.29ID:ty86ilJR0261デフォルトの名無しさん
2015/05/27(水) 00:39:56.95ID:nI5vt9oP0262デフォルトの名無しさん
2015/05/28(木) 15:47:34.95ID:o+E2fSxOで
[['!', ' 1', ' 2', ' 3']]
ではなく
[['!', ' 3']]
になるのはなんで?
0263デフォルトの名無しさん
2015/05/28(木) 16:17:58.51ID:4ci5OfPnp '! 1 2 3'.scan(/\s?[!\d]/)
0264デフォルトの名無しさん
2015/05/28(木) 16:24:26.00ID:DR5ziRfzp '1 2 3 4'.scan(/\s\d/) #→ [" 2", " 3", " 4"]
p '1 2 3 4'.scan(/(\s\d)/) #→ [[" 2"], [" 3"], [" 4"]]
p '1 2 3 4'.scan(/(\s\d)+/) #→ [[" 4"]]
p '1 2 3 4'.scan(/\s?\d/) #→ ["1", " 2", " 3", " 4"]
0265デフォルトの名無しさん
2015/05/28(木) 22:21:18.81ID:k3niE8s3なら
[["!", " 1", " 2", " 3"]]
なのにね
'! 1 2 3'.scan(/(!)(\s\d){3}/)
は
[["!", " 3"]]
0266デフォルトの名無しさん
2015/05/28(木) 22:48:12.60ID:hjZS/GsK0267デフォルトの名無しさん
2015/05/28(木) 23:03:42.26ID:dLu0WU3T0268デフォルトの名無しさん
2015/05/28(木) 23:41:22.41ID:fjZg4KPNそれが結論のようですね
p '1234'.scan(/(.)/) #→ [["1"],[" 2"], [" 3"], [" 4"]]
p '1234'.scan(/(.)+/) #→ [[" 4"]]
0269デフォルトの名無しさん
2015/06/01(月) 02:21:48.67ID:Y1SfGQARこれと逆なんですけど
p "1234".slice(/./) # "1"
p "1234".slice(/.+/) # "1234"
0270デフォルトの名無しさん
2015/06/01(月) 08:21:10.39ID:vSxmWzhu0271デフォルトの名無しさん
2015/06/02(火) 00:28:30.61ID:8518yJU40272デフォルトの名無しさん
2015/06/02(火) 01:32:52.01ID:YSKGxbzH+があると出力が少なくなる場合と多くなる場合があったのを発見
0273デフォルトの名無しさん
2015/06/02(火) 02:36:26.27ID:Im+YEyTj意味不
0274デフォルトの名無しさん
2015/06/02(火) 18:15:19.46ID:vepkkYh3<%= form_tag({controller: 'ajax', action: 'result'}, remote:true) do %>
...
<% end %>
上記form_tagを実行した場合
<form accept-charset="UTF-8" action="/ajax" data-remote="true" method="post">
<div style="display:none"><input name="utf8" type="hidden" value="✓" /></div>
...
</form>
指定したactionではないページが作成されてしまうのですが、このような場合なにか原因が考えられるでしょうか?
Windows
Ruby 2.1.5
Rails 4.2.1 を使用しています
0275デフォルトの名無しさん
2015/06/02(火) 19:01:49.98ID:NaslPVjy【RoR】Ruby on Rails Part19
http://kanae.2ch.net/test/read.cgi/php/1409423461/
0276デフォルトの名無しさん
2015/06/02(火) 22:00:34.98ID:jU2A440n0277デフォルトの名無しさん
2015/06/02(火) 22:17:04.91ID:w3ztcJiD偽は nil か false だけ
0278デフォルトの名無しさん
2015/06/03(水) 00:13:17.86ID:JxGyv6Qf=> 2
0279デフォルトの名無しさん
2015/06/03(水) 00:31:54.34ID:0f9O3Aauirb(main):001:0> 2 && 1
=> 1
irb(main):002:0> 1 && 2
=> 2
x && yは、xが真ならyの値を返す仕様と理解しました
0280デフォルトの名無しさん
2015/06/03(水) 02:16:48.51ID:OhDMuo8z真の時にyを
偽の時にxを
返すみたいだね。
0281デフォルトの名無しさん
2015/06/03(水) 02:16:50.15ID:+cj40TuIこれらの仕様はちょっとした条件分岐のイディオムとして使ったりする
多用すると糞コードだけど
0282デフォルトの名無しさん
2015/06/03(水) 02:20:18.32ID:OhDMuo8z0283デフォルトの名無しさん
2015/06/03(水) 16:48:17.14ID:bMkxvijs知らなかった、これから使おう
x=false
y=true
p x && y #false
p y && x #false
p x || y #true
p y || x #true
0284デフォルトの名無しさん
2015/06/03(水) 17:03:31.76ID:tdUAPzMLx && yの場合、xがnot falseなら、次にyが評価される
x || yの場合、xがfalseなら、次にyが評価される。
&&、||ともに条件式の真偽値が確定した段階で評価を終了する
0285デフォルトの名無しさん
2015/06/03(水) 17:27:47.57ID:mLaeXcpL1 = true = 真
0 = false = 偽
で説明
ttp://upload.wikimedia.org/wikipedia/ja/7/7b/Venn-Diagram-AND.png
【論理積 / AND演算 / &&】
1 x 1 = 1
1 x 0 = 0
0 x 1 = 0
0 x 0 = 0
積ってある通り、両方とも 1 でないと 1 にはならない。逆に言うと片方が 0 なら 0 だ。
ttp://upload.wikimedia.org/wikipedia/ja/5/5e/Venn-Diagram-OR.png
【論理和 / OR演算 / ||】
1 + 1 = 1 ← まぁ 0 ではないよって事w
1 + 0 = 1
0 + 1 = 1
0 + 0 = 0
和ってある通り、両方とも 0 でないと 0 にならない。逆に言うと片方が 1 なら 1 だ。
で >>282 の指摘通り
A && B はAが偽ならBがどうだろうと全体で偽が確定なのでBは評価(実行)せず
A || B はAが真ならBがどうだろうと全体で真が確定なのでBは評価(実行)せず
・・・わかりづらいかw
0286デフォルトの名無しさん
2015/06/03(水) 20:59:25.70ID:+cj40TuI3行にまとめろ
0287デフォルトの名無しさん
2015/06/03(水) 23:24:11.35ID:ciz6E00SRuby だとどっちも 2 になるのな
http://ideone.com/X28ve7
https://ideone.com/90E5kx
0288デフォルトの名無しさん
2015/06/04(木) 07:10:03.19ID:/AL4RUwW0289デフォルトの名無しさん
2015/06/04(木) 07:45:29.82ID:UDpXUDZ80290デフォルトの名無しさん
2015/06/05(金) 02:46:17.56ID:vgtnI7MxOSSで配布されるshスクリプトを覗けばわかるけど、&&や||なんて幾らでも見かけるよ
こうい評価式に関しては、一度、schemeやelispを触ってからだと理解しやすいのかも
(and () ())
(or () ())
0291デフォルトの名無しさん
2015/06/07(日) 20:56:05.84ID:tz2PkCph二回目のstartで例外が起きてしまうんだけど
環境は ASR 2.2.0 Win7(32) / 2.2.2 Freebsd11(64) / 2.2.[0-2] Ubuntu14.04(64)
require 'webrick'
s = WEBrick::HTTPServer.new
Thread.new { sleep 2; s.stop }
s.start
Thread.new { sleep 2; s.shutdown }
s.start
puts 'Success'
<<エラーログ>>
[2015-06-07 20:37:27] ERROR NoMethodError: undefined method `[]' for nil:NilClass
/opt/rubies/2.2.2/lib/ruby/2.2.0/webrick/server.rb:174:in `block in start'
.<2050 回リピート>
/opt/rubies/2.2.2/lib/ruby/2.2.0/webrick/server.rb:333:in `cleanup_shutdown_pipe': undefined method `each' for nil:NilClass (NoMethodError)
from /opt/rubies/2.2.2/lib/ruby/2.2.0/webrick/server.rb:202:in `block in start'
from /opt/rubies/2.2.2/lib/ruby/2.2.0/webrick/server.rb:32:in `start'
from /opt/rubies/2.2.2/lib/ruby/2.2.0/webrick/server.rb:162:in `start'
from /tmp/web.rb:9:in `<main>'
0292デフォルトの名無しさん
2015/06/08(月) 01:34:35.25ID:mgWlS5+H['INT', 'TERM'].each{|i| Signal.trap(i){puts"Hello, world!"}}
とかじゃダメなのかな
0293デフォルトの名無しさん
2015/06/08(月) 04:20:13.36ID:jibIjF7Dそれではサービスが稼働しっぱなしなのでよろしくないのです
やりたいのは、webrickを生かしたままで任意の時点で改造すること
弄っている最中はなるべくリクエストを受けたくないわけでして
Rubyを使わずファイヤーウォールで止める手もあるけれども……
それと停止とはどういう状態なのか分かってなかったので軽く調べてみた
netstat と telnetで観察してみるとこんな感じ
2.2: stop時 port closed 接続確立不能
再開後 例外発生
2.1: stop時 port lisning 接続確立可能 リクエスト送信可能
再開後 受信キューに貯まったリクエストを取得し、応答を開始
もしや2.2はlisten portを閉じてるから、再startでaccept出来なくなってる?
0294デフォルトの名無しさん
2015/06/08(月) 14:20:56.48ID:jibIjF7Dhttps://bugs.ruby-lang.org/issues/10956
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/webrick/server.rb?r1=49101&r2=49917
0295デフォルトの名無しさん
2015/06/09(火) 00:26:22.45ID:X2ZYuZ0Vかっこ内のxだけ削除する簡単な記法はありまでしょうか?
これまで "("でsplitして削除し、最後にjoin("(")を していました。
0296デフォルトの名無しさん
2015/06/09(火) 02:37:13.31ID:d2G2JwTT削除済みの文字列リテラルを書けばOK。
意図が分かりずらくなりそうならコメントに # かっこ内のxだけ削除 とか書けばよい。
0297デフォルトの名無しさん
2015/06/09(火) 08:06:56.59ID:ms43utQcどう曲解したら文字列が固定になるんだよ。頭弱いのか?それとも295を煽ってるつもりか?
295の提示した条件も曖昧過ぎだけどさ。
0298デフォルトの名無しさん
2015/06/09(火) 09:23:17.40ID:wLd87YRuこんな感じでどう?
str="abxcd(exfgxhij)klmnxoxpq"
puts str.gsub(/((?<=\().*(?=\)))/){|c| c.gsub(/x/,"")}
0299デフォルトの名無しさん
2015/06/09(火) 09:26:34.41ID:ms43utQc■確定
・小カッコは1つのペアだけが必ずある。
・小カッコ中にxは2個発生する可能性がある。
・小カッコの前後にもxは発生する。
■不確定
・小カッコ中のxは2個以外発生するかも知れない。発生しないかも知れない。
・・・と思ったけど295のやり方だと、splitしたあとの"("後ろの文字列は
"exfgxhij)klmnxoxpq"
になる。これからxを消してしまうと")"の後ろのxも消えない?
0300デフォルトの名無しさん
2015/06/09(火) 10:02:23.26ID:t6/3em7fその正規表現において、先読み・後読みは不要
素直に /\(.*\)/ でOK
0301デフォルトの名無しさん
2015/06/09(火) 10:20:24.51ID:wLd87YRu本当だ。キャプチャするんだから必要ないですよねw
0302デフォルトの名無しさん
2015/06/09(火) 12:04:23.81ID:J2H5hRFHundefined method `cache' for Gem:Module (NoMethodError)
とエラーが出ます。
gem install cacheとインストール済みのはずです。
よろしくお願いします。
0303デフォルトの名無しさん
2015/06/09(火) 21:31:19.67ID:d2G2JwTTあえて的外れな答を提示しておいて反論として正答を引き出すのが狙いだ
0304デフォルトの名無しさん
2015/06/09(火) 21:43:45.71ID:+VzixiOxありがとうございます。
gsub(/ /){|c| c.gsub(/x/,"")}
でトライしてみます。 そんなやり方があるのを知りませんでした。
じっさいは htmlソース中の <a ..> のカギ括弧内から
不要な要素を削り、必要な要素(たとえばhref)だけを残すすっきりした書き方がわからなかったからでした。
例
<a title="**" href="http://**"target="** rel="**" class='**' onmouseout="**">
>>299
>これからxを消してしまうと")"の後ろのxも消えない?
ありゃ、そうでした、バグでした。
0305デフォルトの名無しさん
2015/06/10(水) 05:45:48.97ID:T+RB9DK5その目的ならnokogiri を使った方がいい。
0306デフォルトの名無しさん
2015/06/11(木) 05:38:31.92ID:PXBCUrWoirb(main):002:0> p %q(#{a+1})
"\#{a+1}"
=> "\#{a+1}"
0307デフォルトの名無しさん
2015/06/11(木) 07:13:05.55ID:8bPOERyx0308デフォルトの名無しさん
2015/06/11(木) 07:16:43.23ID:FjLBTU+Uってのと同じこと。
0309デフォルトの名無しさん
2015/06/11(木) 08:24:52.92ID:PXBCUrWop '"'の結果の\はエスケープ(?)って理解したのですが、
p '#'とした時に\が出力されないのって何でなんでしょうか?
irb(main):019:0> p '#'
"#"
=> "#"
0310デフォルトの名無しさん
2015/06/11(木) 10:00:55.82ID:FjLBTU+U0311デフォルトの名無しさん
2015/06/11(木) 10:28:19.32ID:FjLBTU+Uputs "#{1+2}" #=> 3
puts "\#{1+2}" #=> #{1+2}
これで分からない?
0312デフォルトの名無しさん
2015/06/11(木) 11:47:30.61ID:PXBCUrWoirb(main):033:0> p '#{'
"\#{"
=> "\#{"
0313デフォルトの名無しさん
2015/06/11(木) 12:03:09.64ID:PXBCUrWo1. pメソッドはputsとinspectの機能を併せ持ったメソッド
2. inspectメソッドは制御文字や非アスキー文字をバックスラッシュ記法に置き換えた文字列を返すので
"#{"は"#{"に置き換わる
0314デフォルトの名無しさん
2015/06/11(木) 12:17:34.48ID:FjLBTU+U0315デフォルトの名無しさん
2015/06/11(木) 17:07:28.29ID:k6fmyMb0ary2 = Array.new
以上のようなaryって配列があったとしてここから2(数値)の位置を
ary2に入れる方法ってありますか?
ary2 << ary.find_index(2)だと1しか入りませんでした
この場合だと1,2が入っていてほしいのですが
0316デフォルトの名無しさん
2015/06/11(木) 17:54:24.79ID:k6fmyMb0ary.each_index.select{|i| ary[i] == 2}
で、できました
0317デフォルトの名無しさん
2015/06/11(木) 23:29:37.65ID:tlYNnI/30318デフォルトの名無しさん
2015/06/12(金) 08:18:37.24ID:H4QZivGMRubyは人類の地球の敵
0319デフォルトの名無しさん
2015/06/12(金) 10:18:54.09ID:Zv8/wash0320デフォルトの名無しさん
2015/06/12(金) 11:20:08.67ID:X4ZGEAJoary.map.with_index {|item, index| item == 2 ? index : nil }.compact
人それぞれ
0321デフォルトの名無しさん
2015/06/13(土) 00:07:45.52ID:pXK4iExZary.each_with_index.reduce([]){|s, i| i[0] == arg ? s << i[1] : s}
0322デフォルトの名無しさん
2015/06/13(土) 03:19:47.81ID:+mI+miZsary.each_with_index.select{|a,b| a==2}.map(&:last)
0323デフォルトの名無しさん
2015/06/13(土) 14:24:50.73ID:upMXSc0pお手軽に元のutf8に戻すやり方はありますか?
0324デフォルトの名無しさん
2015/06/13(土) 14:29:15.80ID:upMXSc0p.decode('string_escape')
でできるみたいなんですが
rubyだとstring_escapeがないみたいです
0325デフォルトの名無しさん
2015/06/13(土) 15:37:54.95ID:NUKk6CPY0326デフォルトの名無しさん
2015/06/13(土) 18:23:37.62ID:upMXSc0pみたいな感じでできることはできるんですが
irbで直接入力したら表示できるので
eval使ったりしてシンプルにならないかなぁと
0327デフォルトの名無しさん
2015/06/13(土) 18:27:32.05ID:NUKk6CPY0328デフォルトの名無しさん
2015/06/13(土) 18:37:21.84ID:upMXSc0pirb上で"\nnn"表記の文字列を評価すると
正しく日本語表示できるので
上に書いたみたいな直接的なやり方でなくて
eval使えないかなと思った次第です
0329デフォルトの名無しさん
2015/06/14(日) 22:41:43.04ID:mX+deoEx普通にpなりputsなりするだけでokでした
0330デフォルトの名無しさん
2015/06/15(月) 05:26:05.47ID:TKCLtNo1o 頭が悪かった
0331デフォルトの名無しさん
2015/06/15(月) 08:28:37.66ID:f/UEz8h4結局、以下のような感じで無理やりやってます
str.gsub(/((\\\d{3})+)/) do
$1[1..-1].split("\\").map{|b| b.to_i(8)}.pack("C*").force_encoding("UTF-8").scrub
end
賢い方にシンプルな方法を教えていただけると嬉しいです
0332デフォルトの名無しさん
2015/06/15(月) 10:05:48.59ID:623SBX0vputs str
str.gsub!(/\\([0-7]{3})/){ [$1.to_i(8)].pack("C")}
puts str
とか?
0333デフォルトの名無しさん
2015/06/15(月) 12:59:22.58ID:f/UEz8h4ありがとうございます!
なんか無駄なことしてますね、自分
文字数制限で途中のバイトで切れてしまうことがあるので
force_encoding('UTF-8').scrub
つけてバッチリです
0334デフォルトの名無しさん
2015/06/16(火) 13:43:30.23ID:2URK/h9Lで"test"と表示されないのですが、なぜでしょうか?
t = Thread.new {p "test"}
t.join
だと"test"と表示されます。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0335デフォルトの名無しさん
2015/06/16(火) 14:17:00.19ID:GRyCax2n0336デフォルトの名無しさん
2015/06/16(火) 14:33:03.42ID:2URK/h9L0337デフォルトの名無しさん
2015/06/17(水) 04:14:33.64ID:HjULUL/PPythonでもそうだけど、A && B, A || B は、
先にAを評価して、答えが決まれば、Bを評価しない短絡評価
ただし短絡評価は、A,Bが評価された時に、
変化しない変数なら問題はないが、
C() && D() のような関数(メソッド)の場合には、
後のD()が、実行されるかされないのか、
一目でわからないため、バグを生みやすく、
こういう書き方は推奨されない
0338デフォルトの名無しさん
2015/06/17(水) 07:23:03.21ID:q4tkpwL/推奨されないって、何かのガイド?
それとも君の感じた雰囲気?
今時、短絡評価すら理解してないプログラマ向けの事まで気にしながら書くんじゃあ、COBOL並の表現力しか無くなるだろ。
0339デフォルトの名無しさん
2015/06/17(水) 10:36:28.91ID:N2ZtzNxWなぜ関数なら一目でわからず変数なら一目で分かるの?
0340デフォルトの名無しさん
2015/06/17(水) 11:50:38.52ID:oWNuaF3B0341デフォルトの名無しさん
2015/06/17(水) 12:07:28.07ID:7KhQ6AFD内部状態を変更するメソッドと
真偽判定するためだけの関数を
見てすぐ判るようにしておけばいい
そのために Ruby は ! を選んだ
0342デフォルトの名無しさん
2015/06/17(水) 13:01:51.76ID:N2ZtzNxW内部状態を変更しようが返り値がわかればいいんだから
0343デフォルトの名無しさん
2015/06/17(水) 22:27:23.92ID:7BaHL0e3そもそもrubyでメソッドっていうと
内部状態を変更する意図の全くないアクセサとかさえも
メソッドなんだけど?
0344デフォルトの名無しさん
2015/06/17(水) 22:30:42.69ID:DKqtm4ef0345デフォルトの名無しさん
2015/06/18(木) 09:25:40.40ID:TyCwIxIXその程度のドカタであるおまいらに向けて、337さんが、テストも書かずにカスみたいなバグを量産してで同僚を困らせるなよ。
と忠告してあげてるんだ。
ありがたく聞きなさい。
0346デフォルトの名無しさん
2015/06/18(木) 09:32:05.21ID:7/h/PzkV驚き最小の原則のためにビックリマークを増やした訳か
0347デフォルトの名無しさん
2015/06/18(木) 19:36:51.68ID:sk5olvXpビックリマークがついてないのに内部状態が変わってる!
という驚きを増やしてしまったわけだなw
そんなルールを作る前に、ビックリマークがついている時だけ
内部状態が変わるような仕組みを言語自体に搭載しろよ・・・。
0348デフォルトの名無しさん
2015/06/19(金) 08:55:27.94ID:QPr8sq8T自分は経験無いんだけど、参考までに具体例が出せれば教えてください。
0349デフォルトの名無しさん
2015/06/19(金) 09:41:02.87ID:fjcNZFIQ0350デフォルトの名無しさん
2015/06/19(金) 13:16:56.14ID:X+CwqWOz> みなさまだいすきな Ruby on Rails さんは「!は破壊的」なんて虚構の原則にはまるっきり従ってません。
ワロタw
0351デフォルトの名無しさん
2015/06/19(金) 14:37:09.96ID:0iuq1jE/0352デフォルトの名無しさん
2015/06/19(金) 15:02:44.39ID:FzphauAa0353デフォルトの名無しさん
2015/06/19(金) 17:00:56.57ID:Cuyp0r6Zいわれればそうだな
出力のないメソド
他動詞と自動詞
0354デフォルトの名無しさん
2015/06/20(土) 04:49:37.00ID:TX3yB/JP(何か使い道ってありますか?)
irb(main):001:0> "string".hash
=> 1997604647
0355デフォルトの名無しさん
2015/06/20(土) 05:44:22.78ID:m/GPi3MC文字列の比較を何度も行うときは
hashで比較して一致するときだけ文字列でもう一度比較
0356デフォルトの名無しさん
2015/06/20(土) 19:37:56.17ID:avbrfGtl0357デフォルトの名無しさん
2015/06/20(土) 23:15:39.55ID:ysSeXR2Xwin7 64
を使用しています
nokogiriを使用してwebスクレイピングを始めたのですが
コマンドプロンプトに出力される内容が文字化けしてしまいます。
対処方法を教えていただきたいです
よろしくおねがいします。
0358デフォルトの名無しさん
2015/06/20(土) 23:18:29.55ID:g/mzTnprと何も調べずに書いてみる
0359デフォルトの名無しさん
2015/06/21(日) 01:12:17.33ID:3VZnQzoZそれか、コマンドプロンプトに出力せずに、
ファイルに出力するとか
0360デフォルトの名無しさん
2015/06/21(日) 01:26:51.47ID:trS59Vlk「chcp 932」でsjisへ
「chcp 65001」でutf8へ
文字コードを変更できるよ。
0361デフォルトの名無しさん
2015/06/21(日) 04:15:08.10ID:/JS5ft5/右端まで表示するとボロボロになるんだよなー
0362デフォルトの名無しさん
2015/06/21(日) 05:15:32.11ID:GwSFg/Wt0363デフォルトの名無しさん
2015/06/23(火) 02:38:29.66ID:C02P46O1.NET環境だけど、Rubyも動くの?
0364デフォルトの名無しさん
2015/06/23(火) 02:43:03.19ID:UdZmnE2/cygwinを使えばいいんじゃね?
0365デフォルトの名無しさん
2015/06/26(金) 09:10:38.74ID:s8FXX7HP$ bundle install --path vendor/bundle
すると、vendor/bundle/ruby/2.2.0
が作られるんだけど、なんで2.2.0なの?
Gemfileにrubyのバージョンは指定していない
0366デフォルトの名無しさん
2015/06/26(金) 09:31:54.98ID:QfFX6qdc0367デフォルトの名無しさん
2015/06/26(金) 15:05:39.03ID:s8FXX7HP0368デフォルトの名無しさん
2015/06/26(金) 18:36:13.56ID:Kh92atrXsqlite-shell-win32-x86-3081002.zip、sqlite-dll-win32-x86-3081002.zip
をダウンロードして、「gem install sqlite3-ruby」、「gem install dbi」、「gem install dbd-sqlite3」を実行したんだけど、
C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/dbi-0.4.5/lib/dbi.rb:300:in `block in load_driver': Unable to load driver 'SQLite3' (underlying error: uninitialized constant DBI::DBD::SQLite3) (DBI::InterfaceError)
from C:/Ruby22-x64/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/dbi-0.4.5/lib/dbi.rb:242:in
`load_driver'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/dbi-0.4.5/lib/dbi.rb:160:in
`_get_full_driver'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/dbi-0.4.5/lib/dbi.rb:145:in`connect'
from db_sample.rb:6:in `<main>'
って表示されました。これってどういう意味ですか?
ちなみに
require 'rubygems'
require 'dbi'
studentsdb = DBI.connect ( 'DBI:SQLite3:students01.db' )
studentsdb.select_all( 'select * from students' ) do |row|
print "----\n"
print "name = #{row[0]}\n"
print "age = #{row[1]}\n"
end
studentsdb.disconnec
こんな感じのプログラム
(作りながら学ぶRuby入門をそのまま試してみた感じです)
0369デフォルトの名無しさん
2015/06/26(金) 22:01:02.32ID:Kh92atrXんー
0370デフォルトの名無しさん
2015/06/27(土) 14:21:12.23ID:+6vnIAsZの、オプションの仕様が書かれてるサイトを教えてくれ。
1.10系のドキュメントはこれしか見つからない。
http://bundler.io/v1.10/man/gemfile.5.html
0371デフォルトの名無しさん
2015/06/27(土) 22:40:19.85ID:aFv5L/Yw0372デフォルトの名無しさん
2015/07/02(木) 16:24:19.83ID:umOe3By3配列aの要素と配列bの要素を全通り足し算させるにはどんなコードを書けばいいのでしょうか?
例えばa=[1,2,3] b=[4,5,6]のときに
(1+4)、(1+5)、(1+6)、(2+4)、(2+5)、(2+6)、(3+4)、(3+5)、(3+6)
と、全通り計算させたいです
a.each do でできそうなんですがそれ以降の書き方が分からないので教えて下さい
よろしくお願いします
0373デフォルトの名無しさん
2015/07/02(木) 16:58:19.37ID:v1gphKVfa.product(b).map{|item| item.inject(:+)}
こんなかんじ?
0374デフォルトの名無しさん
2015/07/02(木) 21:44:53.94ID:a8SK9Eq7https://ideone.com/ihpSvW
回答者が求めていたのはこういう感じのコードな気がする
http://ideone.com/1bx9cp
0375デフォルトの名無しさん
2015/07/02(木) 21:45:38.16ID:a8SK9Eq70376デフォルトの名無しさん
2015/07/02(木) 22:26:53.92ID:umOe3By3求めていたのはまさしくその下のプログラムです
しかしプロダクトも勉強してみます
ありがとうございました
0377デフォルトの名無しさん
2015/07/02(木) 22:30:52.22ID:fqyYssiJproduct使う方がこれからの中心になっていくのかな
0378デフォルトの名無しさん
2015/07/02(木) 23:25:13.84ID:RxSUeAcb0379デフォルトの名無しさん
2015/07/03(金) 00:18:33.86ID:CxuijVE/組み合わせは列挙出来たけど二重ループは書けませんじゃ困る
0380デフォルトの名無しさん
2015/07/03(金) 00:29:48.39ID:Laz7VlDf0381デフォルトの名無しさん
2015/07/03(金) 04:42:28.61ID:KvdZ0QS5関数が使えるなら、それを使えばよい
逆に、異なるバージョンなどで、
使えないなら、自作すればよい
0382デフォルトの名無しさん
2015/07/03(金) 19:40:46.39ID:CxuijVE/0383デフォルトの名無しさん
2015/07/04(土) 18:51:53.73ID:aORV0gQXソース探すのに疲れて、rubyMine買うと決めたんだけど、
参考までに、皆 pryで調べてるんですか?
0384デフォルトの名無しさん
2015/07/04(土) 18:58:56.05ID:aE1SWTzm解読班はよ
0385デフォルトの名無しさん
2015/07/04(土) 19:38:00.22ID:2O5lVBCkrspec の記法はちゃんとドキュメントあるから、RubyMine 使わなくても大丈夫だ。
github とかにホスティングされてるgemのspec を読むのが手っ取り早い。
0386デフォルトの名無しさん
2015/07/04(土) 19:54:14.00ID:aORV0gQXありがとうございます。すごく丁寧に書かれてました。
0387デフォルトの名無しさん
2015/07/05(日) 14:42:04.99ID:19q/SObDruby -U xxx.rb でエラーが出なくなるコードがあるのですが、
このオプション-Uに関する記述はどこにあるのでしょうか
http://docs.ruby-lang.org/ja/2.1.0/doc/spec=2frubycmd.html#cmd_option
にも-Uの記述が全く有りません。
0388デフォルトの名無しさん
2015/07/05(日) 16:06:04.95ID:vNDQviuwmanには書いてあるね
Sets the default value for internal encodings (Encoding.default_internal) to UTF-8.
だそうな
0389デフォルトの名無しさん
2015/07/12(日) 23:58:48.91ID:RydZEeqm0390デフォルトの名無しさん
2015/07/15(水) 19:54:06.79ID:rBiIOBeb出力結果は最悪TeraTermでログ出力したファイルを読み込むのでもかまいません。
Open3.popen3を使う? でもこれって標準入力閉じずに標準出力取得できないと聞きました。
TeraTerm出力結果をもとにruby側で判断、TeraTermに再度入力したいのです。
0391デフォルトの名無しさん
2015/07/15(水) 21:08:04.69ID:NoeQQAWM0392デフォルトの名無しさん
2015/07/15(水) 21:21:26.12ID:PlIpDVLp0393デフォルトの名無しさん
2015/07/15(水) 21:29:50.08ID:rBiIOBebPuTTyでもかまいません。
0394デフォルトの名無しさん
2015/07/15(水) 21:41:30.21ID:Kluh4htZRuby 2.0.0.481
Windows8.1
であります。
テキストエディタに表示している文字列、数値などを、読みだしたり、書き出したりできるのでしょうか。
たとえは、エディタに、
x=1.2
と書いてあるときに、この「1.2」を読み取って、Rubyで繰り返し計算をして、
最期の結果をテキストエディタの最後の行に書き出せるのでしょうか。
つまり、エディタでから数値データを取り出して、計算して、返す、という動きであります。
0395デフォルトの名無しさん
2015/07/15(水) 21:52:24.18ID:PlIpDVLpテキストエディタのバッファの中身を読み書きするメソッドが用意されてるかどうかによる
0396デフォルトの名無しさん
2015/07/15(水) 21:55:00.67ID:d0uSs4Pt0397394
2015/07/15(水) 22:23:38.65ID:Kluh4htZどうもです。
エディタによるんですね。
すると、いきなり、ノートパッドでやるなんてのは無茶ということですね。
0398デフォルトの名無しさん
2015/07/15(水) 22:40:14.06ID:2OhrzIaS{Home}+{END}^c
でカレント行をコピーしてからRubyスクリプト起動してあれこれ計算して
クリップボードにコピーしてから
^vで結果を書き戻すというのも可能
0399デフォルトの名無しさん
2015/07/15(水) 23:05:54.76ID:1u1xQ4w9動作が重くなるとタイミングがずれて芋づる式に変な操作してしまうとか
AutoHotKeyってそうはならない?
0400デフォルトの名無しさん
2015/07/16(木) 00:23:12.20ID:HOH6O9xm0401デフォルトの名無しさん
2015/07/16(木) 01:46:01.84ID:vW5tNoO7使い所を間違えなければいいツールだとは思うが
0402デフォルトの名無しさん
2015/07/16(木) 04:47:19.06ID:MREKRM2Cwin32ole
0403デフォルトの名無しさん
2015/07/16(木) 19:35:47.96ID:/YzLSp2xnet-ssh gemとか標準のtelnetじゃだめなの?
0404デフォルトの名無しさん
2015/07/18(土) 11:03:37.85ID:XqruX5K0おーこれでなんとかやれそうです。
外部ツールに頼らないでやればよかったんですね。
対象機器はtelnet接続は許可されていないのでsshでやってみます。
net-sshはdl/*を使っているので2.2.xでは使えないようで…ひとまずRubyのバージョン落としてみます。
先に進めそうです。ありがとうございました。
0405デフォルトの名無しさん
2015/07/18(土) 11:17:37.44ID:xTrOg+7r0406デフォルトの名無しさん
2015/07/19(日) 15:09:50.79ID:GWdtmhTKsshでのやりとりをメインスレッドでやるのはうまくいきましたが、
実用上は別スレッドにする必要があるため分けたところ、躓いてしまいました。
簡略化したコードを以下に貼りました。
http://pastebin.com/ABH6ak0p
gdb実行時の標準出力が得られません。
上記コードで言えば"connect success"の後に何も表示されません。
何が悪いかご教示いただけないでしょうか。
※ サーバ上で、gdbでa.outを動かしているプロセスは居ました。(別口でサーバにログイン、"ps -ef"で確認)
0407デフォルトの名無しさん
2015/07/19(日) 15:13:49.75ID:GWdtmhTKNet::SSH.start 〜 の行はコメントアウトしていないものとして見てください。すいません。
0408デフォルトの名無しさん
2015/07/20(月) 21:18:13.28ID:Tkp70n/rサーバ再起動させたあとはうまく動きました…。何かゴミプロセスが残っていたのかもしれません。
強制終了させてもプロセスきちんと片付けるような修正を加えようと思います。
今後はもう少し色々試してから聞くようにします…連投失礼しました。
0409デフォルトの名無しさん
2015/07/22(水) 19:28:52.48ID:RRhD77eqputs 1.0 - 0.92
を実行すると
ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] → 0.08
ruby 2.0.0p645 (2015-04-13) [i386-mingw32] → 0.07999999999999996
のように1.8と2.0で結果が違います。
2.0でも1.8同様の結果が欲しい場合どのように記述したらよいでしょうか?
0410409
2015/07/22(水) 20:01:21.12ID:RRhD77eq以下の記述でできました。
require 'bigdecimal'
puts (BigDecimal("1.0") - BigDecimal("0.92")).to_f
0411デフォルトの名無しさん
2015/07/22(水) 22:16:42.45ID:/LcTIUwd0412デフォルトの名無しさん
2015/07/23(木) 00:13:59.50ID:ZoFYpsVnRationalは2.1以上じゃなかったっけ?
0413デフォルトの名無しさん
2015/07/23(木) 00:15:06.51ID:oARZ3zU40414デフォルトの名無しさん
2015/07/23(木) 00:41:35.09ID:8g5M7/3K1 + 1/3rみたいなことはできないけど、あるよー
ttp://docs.ruby-lang.org/ja/1.8.7/class/Rational.html
0415デフォルトの名無しさん
2015/07/23(木) 09:10:34.67ID:fAWwlZE20416デフォルトの名無しさん
2015/07/26(日) 18:22:06.01ID:2VKiOwqX↓のコードで明らかに欠陥があるのは分かってるのですが、どうすればいいのかわかりません。
ようはirbでそのクラスやメソッドを記述したrbファイルで開いてから
データを収めるインスタンスを任意で追加できるような仕組みをつくりたいのですが。
class Hello
def setName(name)
@name = name
end
def hello
print "Hello ", @name,"\n"
end
end
def int
print "名前は?:"
yourname = gets.chop
yourname = Hello.new
yourname.setName(yourname)
end
0417デフォルトの名無しさん
2015/07/26(日) 18:24:46.96ID:2VKiOwqX×記述したrbファイルで開いてから
↓
○記述したrbファイルを開いてから
0418デフォルトの名無しさん
2015/07/27(月) 21:33:25.31ID:TgAx1E6zclass Hello
end
でくるめばいいんじゃね?
0419デフォルトの名無しさん
2015/07/28(火) 00:40:56.52ID:SY7oXFPUeval "#{yourname} = Hello.new"
としたいということ?
0420デフォルトの名無しさん
2015/07/29(水) 16:14:29.18ID:2q2ZdS20それを左から国語、算数、理科、社会、合計、平均点を計算するプログラムを作らないといないのですが
カラの配列つくってファイルを読み込むとこまでやったんですがこの先ちんぷんかんぷんです
助けてぇ・・・・・
0421デフォルトの名無しさん
2015/07/29(水) 17:03:46.55ID:1zEW+9y+0422デフォルトの名無しさん
2015/07/29(水) 21:15:01.10ID:5riumSBqa = [1, 2, 3]
a.inject(:+) # => 6
平均は、合計を配列の要素数
(array.length または、array.size)で割って求める
コテ 50
ショパン 70
ななまる 30
でも、こういうファイルでは、科目はわからないだろう
0423デフォルトの名無しさん
2015/07/30(木) 17:42:41.86ID:2wiyWeYfrequire 'tk'
button = TkButton.new {
text 'exit'
command proc { exit }
pack
}
Tk.mainloop
↑ここのブロック { text 'exit' ... } が
{|w| w.text 'exit' ... } (これでも動きます) と同等に機能する仕組みを教えてください。
0424デフォルトの名無しさん
2015/07/30(木) 18:43:29.51ID:2wiyWeYfattr_accessor :text
def text(_text="defalut")
self.text = _text
end
def pack
print "pack, OK!\n"
end
def initialize
yield if block_given?
rescue NameError => err
if defined? err.args
self.send(err.name, err.args)
else
self.send(err.name)
end
end
end
obj = Foo.new {
text "Hello"
pack
}
試しにこんな感じで書いてみましたが、当然ながら text "Hello" だけ実行されます。
エラーのあった次の文から再開 (retryだと最初からやり直し) 的な書き方があるんでしょうか?
0425デフォルトの名無しさん
2015/07/30(木) 22:41:08.75ID:e7NCTD1Yself.instance_exec(self, &block)
end
0426デフォルトの名無しさん
2015/07/30(木) 22:53:56.70ID:2wiyWeYfありがとうございます
0427デフォルトの名無しさん
2015/08/02(日) 22:26:38.67ID:3ZR8eaCbp a #=> 1
p b #=> nil
p c #=> 2
なぜこういう結果になるのか仕組みが分かる方いらっしゃったら教えてください。
0428デフォルトの名無しさん
2015/08/02(日) 23:09:21.76ID:dTRZmQiNc = 2
cyberspace = 3
0429デフォルトの名無しさん
2015/08/02(日) 23:10:51.15ID:fovtrXXc多重代入は括弧により、ネストした配列の要素を代入することもできます。
(foo, bar), baz = [1, 2], 3 # foo = 1; bar = 2; baz = 3
0430デフォルトの名無しさん
2015/08/03(月) 17:32:28.07ID:+rvo8Bqtヒント貰って試していて、理解出来ないケースがあって
test1
(a,b),c=[1,2,3]
#=> a=1 b=nil c=2
test2
a,(b,c),d=1,2,[3,4]
#=> a=1 b=2 c=nil d=[3,4]
test3
(d1,d2),d3,(a,b),c=[1,2,3],4,[5,6,7]
#=> d1=1 d2=2 d3=4 a=5 b=6 c=nil
test4
(d1,d2),d3,(a,b),c=[1,2,3],4,[5,6,7],8
#=> d1=1 d2=2 d3=4 a=5 b=6 c=8
このtest1とtest3のa,b,cが違うことをどう理解すればいいのか分からなくて
(a,b),c=[[1,2],3]
#=> a=1 b=2 c=3
ここで、やっと「ネストした配列」の意味が分かりました。
0431デフォルトの名無しさん
2015/08/07(金) 14:15:41.95ID:yhyLjZsMUFJ銀行の入出金明細をcsvで出力したものをつぎのコードで読み込んでます。
(パースする前にnkfでsjisからutf8に変換済み)
table = CSV.table(path, :header_converters => lambda { |h| h.to_sym unless h.nil? })
そうすると一部の金額が,StringでなくFixnumになってしまうのです。
すべてStringとして読み込むにはどんな対処方法がありますか?
元データ(コード変換済み)
"2015/8/4","振込IB2","ホゲホゲ フガフガ","80,000","","145,141"
"2015/8/4","為替手数料","フリコミ テスウリヨウ","324","","144,817"
p table
#<CSV::Row 日付:"2015/8/4" 摘要:"振込IB2" 摘要内容:"ホゲホゲ フガフガ" 支払い金額:"80,000" 預かり金額:"" 差引残高:"145,141">
#<CSV::Row 日付:"2015/8/4" 摘要:"為替手数料" 摘要内容:"フリコミ テスウリヨウ" 支払い金額:324 預かり金額:"" 差引残高:"144,817">
桁区切りのカンマの有る無しに影響されているようです。
tableの2行目,column 支払い金額が"324"ではなく324になってしまっている。
よろしくお願いします。
0432デフォルトの名無しさん
2015/08/11(火) 09:08:22.29ID:Lj7Gr5q2っていう質問はここでいいのかな。
0433デフォルトの名無しさん
2015/08/11(火) 09:15:41.46ID:AySGymUB0434デフォルトの名無しさん
2015/08/11(火) 13:57:16.98ID:3pKn71t8http://docs.ruby-lang.org/ja/2.1.0/method/CSV/s/table.html
ってことなので
数値変換器の動作を無効化してみてはどうか
table = CSV.table(path, converters: nil, header_converters: lambda { |h| h.to_sym unless h.nil? })
0435デフォルトの名無しさん
2015/08/11(火) 14:34:22.08ID:SeETvk3M0436デフォルトの名無しさん
2015/08/12(水) 00:09:19.13ID:2p58Flemつうか普通に read とか open を headers: true 付けて呼べばいいんじゃね。
0437デフォルトの名無しさん
2015/08/12(水) 12:30:08.19ID:DAPBN+R4さくらのレンタルサ−バ
ただし、新しいversionは自分でinstallする必要がある
0438デフォルトの名無しさん
2015/08/14(金) 02:50:53.31ID:tVC0EFYkbitbucketにあがっているとあるgemをrubyにインスコしたいんですがrubyがそのgemを認識してくれません
古いバージョンはコマンドでインスコ出来たのですがbitbucketのリポジトリにある
最新版のgemをどうインスコ(?)アップデートすればいいのか分かりません
listでもsearchでも古い方しか認識されません
これを参考にいくつか試してみましたが無理でした
http://bundler.io/git.html
windows 7
ruby 1.9.3
宜しくお願いします
0439デフォルトの名無しさん
2015/08/18(火) 15:10:19.77ID:YJRjd7XD自己解決しましたのでレスはもう要りません
0440デフォルトの名無しさん
2015/08/30(日) 05:53:05.34ID:+htnx8/Prubyバージョン同じ
win7 32bit
同じく文字化けします。
解決策が見つかりそうもないので
諦めてcentosかmacでやっています。
0441デフォルトの名無しさん
2015/08/30(日) 07:40:26.63ID:/PELE0GV出力前にShift-JISに変換すればいい
0442デフォルトの名無しさん
2015/08/30(日) 08:17:44.87ID:Nn/Oa5bkhttp://pastie.org/10384578
上記のようなコードを書いて実行すると
Library contents:
Title: Moby-Dick, Author: Herman Melville
Title: The Ugly Duckling, Author: Hans Christian Andersen
#<Library:0x007f9e7b1e7640>
最後の一行で余計な情報が出力されてしまう。
(Objectクラスのto_sメソッドが呼ばれている?)
自作クラスのto_sメソッドはどのように記述すればいいですかね。
0443442
2015/08/30(日) 08:25:23.30ID:Nn/Oa5bk2.2.0p0
です。
0444デフォルトの名無しさん
2015/08/30(日) 10:49:29.33ID:uddDd/Fp…いけないことはないが、使う人からしたらギョッとするでしょ
to_sは普通にstringを返すだけにしたら?
それで呼び出し側で puts my_library みたいにすれば十分では?
0446デフォルトの名無しさん
2015/08/30(日) 17:53:04.14ID:py1e6P0M文法ミスなどのエラー終了は1でいいですか。
0447デフォルトの名無しさん
2015/08/30(日) 19:01:06.11ID:ZGwv1hqiプロセスならそれでいいんじゃね?
0448デフォルトの名無しさん
2015/09/01(火) 04:54:53.57ID:/DoXUIG1作法学ぶならJAVA,C#で
0449デフォルトの名無しさん
2015/09/02(水) 17:02:40.98ID:eDqiT8Wq0が正常で、1以上がエラー
0450デフォルトの名無しさん
2015/09/03(木) 00:43:19.55ID:iQnjIkb4使っちゃうような悪習が蔓延っているのはなんでなんだろうな。
0451デフォルトの名無しさん
2015/09/03(木) 01:47:57.19ID:o02/AS180452デフォルトの名無しさん
2015/09/05(土) 00:27:46.85ID:3U9xihI0さっき何の気なしにVirtualBoxにLubuntu15.04インストールして、そのまま続けて何の気なしにrvmインストールしてたら
# ----,
#
# Thank you for using RVM!
# We sincerely hope ・・・・・・以下略
ってメッセージが出て
一番上の「----,」の所に自分のTwitterとかgmailで使っているアカウント部分が出てたんだけど、
そもそも上にも書いたとおりOS新規インストール後、直でrvmを入れようとしたわけなのに
この仮想PCには一度も入力した事のないアカウント名をどうやって割り出したんすかね?
(もちろん、PC名やユーザ名はそのアカウント名とは全然違うものを入力してます)
何か凄い気になったので・・・
公式に書いてある手順の「gpg --keyserver hkp://key〜」とかと関係あるんすかね?
0453デフォルトの名無しさん
2015/09/08(火) 02:03:37.13ID:K9PLTp8kCGI.escape('http://www.example.com/index.rss')
p url
#=> "http://www.example.com/register?url=http%3A%2F%2Fwww.example.com%2Findex.rss"
で
www.example.com
のところとかも強引にエスケープするのはどうやればいいですか
0454デフォルトの名無しさん
2015/09/09(水) 13:14:52.77ID:4cI6pG8V"A".ord.to_s(16) # => "41"
0455デフォルトの名無しさん
2015/09/09(水) 14:45:57.36ID:pS2N2yopありがとうございます
0456デフォルトの名無しさん
2015/09/10(木) 20:43:46.60ID:UFEDaipDブロック変数で破壊的に操作できるから
盗聴ってよりspyじゃね?
0457デフォルトの名無しさん
2015/09/11(金) 00:35:52.77ID:EBu7PyHn1.Rubyのグラフィカルなデバッグ環境って何がお薦めなんですか?
2.apache経由で動いているRubyにアタッチしながらデバッグする、お薦めの環境ありますか?
0458デフォルトの名無しさん
2015/09/11(金) 22:11:21.59ID:Z6BYqfNY0459デフォルトの名無しさん
2015/09/11(金) 22:20:42.02ID:GHVwR1ig0460デフォルトの名無しさん
2015/09/11(金) 22:26:02.85ID:rVr5mLkZ文字列操作するならとても便利で感動するかも
javascript何に使ってるの?
0461デフォルトの名無しさん
2015/09/11(金) 22:27:07.19ID:vI/Sge8p0462デフォルトの名無しさん
2015/09/11(金) 22:30:50.28ID:GHVwR1igwebサイトです
0463デフォルトの名無しさん
2015/09/12(土) 22:34:32.56ID:dK13GhPGほとんど何も言ってないに等しいぞ。
0464デフォルトの名無しさん
2015/09/16(水) 10:50:32.64ID:fQczy5Yc115,135,215,352,358,655,885,925,936,1250,1285,1620,1850
0465デフォルトの名無しさん
2015/09/16(水) 12:32:29.68ID:d+PGYxxzお題スレ行けよ!
0466464
2015/09/16(水) 13:01:57.78ID:fQczy5Yc0467デフォルトの名無しさん
2015/09/17(木) 04:00:34.11ID:7nhq2dTy挫折した
もういいおwinでやるよ
gemがエラー吐きすぎ
0468デフォルトの名無しさん
2015/09/17(木) 07:19:20.57ID:0IN9fIB70469デフォルトの名無しさん
2015/09/17(木) 13:19:29.49ID:PZjZi1q6require 'jcode'
で trを使って全角半角ができた
(初心者の発見)
0470デフォルトの名無しさん
2015/09/17(木) 17:39:15.04ID:Deuez3d+agent.user_agent_alias = 'Mac Safari'
}
a.get('http://google.com/') do |page|
search_result = page.form_with(:name => 'gbqf') do |search|
search.q = 'Ruby'
end.submit
上の「a = Mechanize.new { |agent|」という部分はどういった意味になるんでしょうか?
Mechanizeのインスタンスであるaを更にagentに入れてるんですか?
0471デフォルトの名無しさん
2015/09/17(木) 20:02:58.32ID:2BhOyj3Tmechanizeのインスタンスのaがどっかアクセスするときに使うuser-agentをmacのsafariで使われる感じの文字列に設定してる
a = Mechanize.new
a.user_agent_alias = 'Mac Safari'
と同じ意味
0472デフォルトの名無しさん
2015/09/18(金) 14:34:25.40ID:Q3xKeKMYMechanize#initialize がたまたま self を引数にブロックを呼んでるだけ。
初期化をまとめて明示的に書けるイディオム
0473デフォルトの名無しさん
2015/09/18(金) 14:55:24.76ID:GAuLG231block付きinitializerはどうも好きになれなかったが
Class.initializeの仕様を知って驚いた。
0474デフォルトの名無しさん
2015/09/18(金) 17:15:12.68ID:F9/JIS/o1.tap{|i| break [i, i*2]}
みたいなことを素直にできる
1.xxx{|i| [i, i*2]}
みたいなxxxってある?
0475デフォルトの名無しさん
2015/09/18(金) 19:23:09.07ID:Q3xKeKMY0476デフォルトの名無しさん
2015/09/18(金) 19:55:48.50ID:qK9BPuWUrailsにはあるんやね
ttp://api.rubyonrails.org/classes/Object.html#method-i-try
0477デフォルトの名無しさん
2015/09/20(日) 04:26:05.83ID:vBjKt0IWString#upcaseで大文字に、
String#downcaseで小文字に変換します
String#capitalizeを使うと、
先頭だけ大文字に変換します
大文字と小文字を入れ替えるには、
String#swapcaseを使います
「ruby 大文字 小文字 変換」で検索する
0478デフォルトの名無しさん
2015/09/20(日) 08:44:38.37ID:OSUmrGRkruby2.0以降ならrequire'jcode'は非推奨だし不要
0479デフォルトの名無しさん
2015/09/20(日) 09:44:23.68ID:t6sFQCTm0480デフォルトの名無しさん
2015/09/20(日) 14:55:13.41ID:rSqoApkT0481デフォルトの名無しさん
2015/09/21(月) 00:00:43.70ID:UwK67s0XWindowsには、LCMapString という、
半角/全角を変換する関数がある
半角カナ・英数字 ←→ 全角
>>480
抜粋された箇所だけを、見ればよい
0482デフォルトの名無しさん
2015/09/21(月) 01:45:08.50ID:UwK67s0Xnkf ライブラリで、できるかも
0483デフォルトの名無しさん
2015/09/21(月) 12:34:09.30ID:ImbkXCPB書き写して実行したいときは点々の部分は気にしないでいいのね
一応すべてのサンプルを打ち込んで実行してるんだけどそこだけ解らなかった
0484デフォルトの名無しさん
2015/09/21(月) 13:59:27.40ID:ZB4SMmGZ環境構築でつまずいてます。
■症状
OpenSSL::SSL::SSLError: SSL_connect のエラー
■環境など
レンタルサーバー、ruby2.1.5
■問題の内容
証明書が無いと怒られてます。証明書を置く場所は、レンタルサーバーなので、アクセス不可。
最終的に、cronで動かしたいので、 .bashrc に記述する方法は出来ない
rubyのスクリプトの頭に、下記を記述してみたのですが、エラーが消えない。
ENV['SSL_CERT_FILE'] = "/virtual/name/lib/ruby/etc/cert.pem"
p ENV['SSL_CERT_FILE']
リンクは間違ってないようですが、何か思い当たることなどありませんか?
0485デフォルトの名無しさん
2015/09/21(月) 15:04:40.09ID:dq2ooNt1https = Net::HTTP.new(url, 443)
https.use_ssl = true
https.ca_file = "/xxxx/cacert.pem"
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.start {
..
}
みたいにやった、素人芸なのでもっといい方法があるのかも知れない
0486デフォルトの名無しさん
2015/09/21(月) 15:53:33.84ID:ZB4SMmGZありがとうございます。少し変更して、下記の形で行けた気がします。
助かりました。
https = Net::HTTP.new(url, 443)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.cert_store = OpenSSL::X509::Store.new
https.cert_store.set_default_paths
https.cert_store.add_file("/virtual/name/lib/ruby/etc/cacert.pem")
0487デフォルトの名無しさん
2015/09/23(水) 04:24:10.42ID:NIZtVs7uコントローラーやテンプレートには変数もらったりイテレーターとか条件文しか書けないみたいだし
0488デフォルトの名無しさん
2015/09/23(水) 09:58:52.79ID:+BBxqjZk1.sliceした場合、fの元の値が書き換わってしまうものなのですか?
2.sliceする前の値を得たい場合、どう記述すべきでしょうか?
3.gは何もしていないのに、値が変わるのはなぜでしょうか?
f = "abcdefg"
g = nil
g = f
print f,"<=f1回目\n"
print g,"<=g1回目\n"
print "---------\n"
charset = f.slice!(0,1)
print charset,"\n"
print f,"<=f2回目\n"
print g,"<=g2回目\n"
■結果
abcdefg<=f1回目
abcdefg<=g1回目
---------
a
bcdefg<=f2回目
bcdefg<=g2回目
0489デフォルトの名無しさん
2015/09/23(水) 12:02:33.24ID:t1geCVCC.object_id
0490デフォルトの名無しさん
2015/09/23(水) 18:01:52.94ID:I9Zkhl7t■環境
Server : Windows7 PC
Client : Mac Book Air
Ruby ver 2.2.3
■やりたいこと
Server <-> Client間でTCP通信で単純なメッセージのやり取りができること
■症状
Server側のRubyコード acceptで実行が止まっており接続が正常にできていない模様。
■やったこと
Server <-> Client間のpingは通る。
だめもとでC言語で書かれたServerプログラムをコンパイルして実行して
Client側のMacだけRuby clientを実行したら意図通りにメッセージのやり取りができた。
■コード
Ruby
ttp://qiita.com/nekogeruge_987/items/23312e53b15ebfeb0607
ここのサイト様のコードをそっくりコピペして実行しました。
C言語Socketプログラムコードは
ttp://capm-network.com/?tag=C%E8%A8%80%E8%AA%9E-TCP%E3%82%B5%E3%83%BC%E3%83%90
0491デフォルトの名無しさん
2015/09/23(水) 18:09:26.94ID:+BBxqjZk慣れが必要そうですが、何となく分かりました。ありがとうございます。
0492490
2015/09/23(水) 22:01:26.90ID:I9Zkhl7tサンプルのRubyのコードでは不十分で、
server = TCPServer.open(2000)
とするとlocalhostをlistenするので、他のIPからの接続を受け付けていませんでした。
server = TCPServer.open('IP address',2000)
IP addressはServerとなるPCのIP
で接続出来ました。
0493デフォルトの名無しさん
2015/09/24(木) 01:54:38.91ID:KIwTvfAfArray.sort!、 String.slice! など、
メソッド名の最後に「!」が付いているものを、
破壊的メソッドと言って、
そのオブジェクト自体を変更してしまう、メソッドを言う
(「!」が付いていない破壊的メソッドもある!)
また文字列の追加で、「+」を使うと通常のメソッドで、
「<<」を使うと破壊的メソッドとなるので要注意!
Rubyでは、数値などのPrimitive型(単純型)も含めて、
すべてがオブジェクトであり、メソッドの引数で渡す際にも、
参照渡しとなり、そのアドレス値をコピーして渡すので、
同じオブジェクトを指す
一方、Javaでは、Primitive型は値渡し(コピー渡し)となり、
その値をコピーして渡すので、別のオブジェクトとなる
だから変数xを、メソッドa()に渡して、そこからb()に渡して、
さらにc()に渡しても、参照渡しなので、
同じオブジェクトを指すため、
元のxを変更すると、すべてが変更される!
0494デフォルトの名無しさん
2015/09/25(金) 11:07:09.29ID:VhYt0QvP全くエラー出る事なくインストールできやがった・・・・
何事だよ・・・
0495デフォルトの名無しさん
2015/09/27(日) 18:37:06.59ID:UYzM99J30496デフォルトの名無しさん
2015/09/27(日) 18:44:37.78ID:UYzM99J30497デフォルトの名無しさん
2015/09/28(月) 10:38:16.41ID:0RjOK4Zprails
0498デフォルトの名無しさん
2015/09/28(月) 22:22:05.47ID:pdVcHsD80499デフォルトの名無しさん
2015/09/29(火) 00:22:15.78ID:2Af20K9J個人用途だとDOS画面から、
こまごまとした身の回りの処理や日曜プログラム
0500uy ◆e6.oHu1j.o
2015/09/30(水) 06:23:46.97ID:ZFzEM6SPmodule Uy_ha_initiator
refine Proc do
def + n
->{
self.call
n.call
}
end
a = -> { p 1 }
b = -> { p 2 }
c = a + b
c.call
end
end
こうゆう事したいんですけど、
メソッドa , b に引数ついてる場合も考慮してスマートに実装する方法ないですか?
0501デフォルトの名無しさん
2015/09/30(水) 12:35:41.18ID:iRWak9My自治体HP
0502デフォルトの名無しさん
2015/10/02(金) 04:52:29.19ID:j2xAjxncJava:Ruby = 10:1 だが、今では、5:1 で、
5年後には、2:1 と予測されている
JavaからRubyへの流れが、止まらない
0503デフォルトの名無しさん
2015/10/02(金) 10:40:39.02ID:7Md9hlDd0504デフォルトの名無しさん
2015/10/04(日) 20:19:03.58ID:OIYCaleYレンタルサーバーで、cronからスクリプトを動かしたいのですが、動かせずにいます。
・ターミナルから、直接叩く =>動く
・ターミナルから、シェルスクリプトを介して、スクリプトを動かす =>動く
・cronでシェルまたは、rubyのスクリプトを叩く =>動かない
・cronで別のスクリプト(requireなど記述していないもの)を叩く =>動く
起動時のパスが動かない原因だと考えているのですが、エラーの吐き出し方が分からず困っています。
こういったときは、どうデバッグすべきでしょうか?
0505デフォルトの名無しさん
2015/10/05(月) 02:33:29.49ID:igCu1GJ5レンタルサーバーやlinuxスレの方がいいと思うが
/... /test.rb 引数 >/dev/null 2>&1
みたいにしている
0506デフォルトの名無しさん
2015/10/07(水) 10:01:49.95ID:0iwSPjqOもし上記のようにして、エラーを捨てているのなら、
エラーを捨てないで、cron, rubyのエラーを見る
まず、rubyスクリプトの冒頭に、
logかファイル出力でも書いておいて、
それが出力されないのなら、cronでの起動エラーになる
まあ、Linux板で聞いた方がよさそう
0507デフォルトの名無しさん
2015/10/07(水) 11:32:20.71ID:0iwSPjqOこれで、実行されるのでは?
ruby test.rb
ttp://www.lab.ime.cmc.osaka-u.ac.jp/~kiyo/pub/lecture/unixpro/ruby/
echo $PATH
として、サーチパスを見れば、最初からパスが通っている、
/usr/local/bin があるから、そこにスクリプトを置いて、
そのスクリプトに、以下のように実行権限を付ける
chmod +x test.rb
0508デフォルトの名無しさん
2015/10/08(木) 01:21:17.16ID:ax9qeEL5STDERR.reopen() でSTDERRをファイルに書き出す
0509デフォルトの名無しさん
2015/10/08(木) 11:52:56.53ID:vEe59M97スレッドの壁超えられない
0510デフォルトの名無しさん
2015/10/08(木) 20:10:42.27ID:Gm31FEMf0511デフォルトの名無しさん
2015/10/09(金) 10:48:34.44ID:AnphRb22$ gem update --systemしたら、そのあとパーミッションの問題で
$ gem install ***ができなくなってしまいました
& gem envをみてみたら「EXECUTABLE DIRECTORY:/usr/local/bin」が「EXECUTABLE DIRECTORY: /usr/bin」に変わってたんですが、EXECUTABLE DIRECTORYを変える方法ってありますでしょうか
わかる方がいらっしゃったらご教示ください!
0512デフォルトの名無しさん
2015/10/09(金) 20:32:34.19ID:zXylNyAd以前が/usr/local/binだったならたぶんHomebrewでいれたんだろうね。
さらにいうとrvmやrbenvとbundler使ったほうがいい。
0513デフォルトの名無しさん
2015/10/09(金) 20:47:38.63ID:a6l66mp20514デフォルトの名無しさん
2015/10/10(土) 00:24:59.25ID:u1b7Ierj0515デフォルトの名無しさん
2015/10/10(土) 14:38:26.65ID:UP2dWSIfバージョンいっぱいあるせいでエラーググっても意味を成さない事が殆ど
一回安定した環境にしたら二度とアップデート出来ないな
その前にrailsやめそうだけど
0516デフォルトの名無しさん
2015/10/10(土) 15:33:35.56ID:/egW/Cb10517デフォルトの名無しさん
2015/10/10(土) 16:04:43.77ID:yLWmOzh6・railsやめたところで他の言語やプラットフォームでも同じこと
・エラー?ソース読めばわかる(他のOSSでも同じ)
・ソース読めない?じゃあ使うな(他のOSSでも同じ)
・安定した環境にしたらアップグレードできない?
・テスト書いてないってことじゃん。そんなの今は安定っていわねーんだよw
0518デフォルトの名無しさん
2015/10/10(土) 21:04:12.47ID:wylVu18Oいやもうrailsとかほんと良いんで・・・・・
他の手段でWebサイトは現状管理出来てるけど
ruby繋がりでrails一応やっとくかー → あーーーーーー・・・・・・もうやんね
と、なったのでした。おしまい。
0519デフォルトの名無しさん
2015/10/11(日) 10:52:35.73ID:ngi+Bnfdhttp://b.hatena.ne.jp/entry/tech.cm55.com/wiki/scala/ruby
0520デフォルトの名無しさん
2015/10/11(日) 20:03:17.53ID:p0ViGygC0521デフォルトの名無しさん
2015/10/16(金) 13:41:19.15ID:CYEljn+RCGI動かなくてもかなりのものが外部委託
大体動的なページ生成とか、あらかじめメタするかjsでページ内変更で十分出来るし
それはサーバーサイドにやらせなくても実現出来るけど管理が楽だからって理由でサーバーサイドにやらせてるだけ
URLに?とか=くっつけてparam受け取るのって脆弱性しか残らんよ
いずれURLからparam受け取る情弱設計は淘汰される運命
0522デフォルトの名無しさん
2015/10/16(金) 17:56:09.00ID:MCgyDKhxjsで済んでしまうんだよな
0523デフォルトの名無しさん
2015/10/16(金) 20:11:02.68ID:N6Jh2d8+0524デフォルトの名無しさん
2015/10/16(金) 21:24:47.35ID:+G3m5iUJよっぽど暇なんだな
0525デフォルトの名無しさん
2015/10/18(日) 01:33:19.53ID:WOyChqNZ0526uy = ruby^rb ◆hBlkfWm2Xc
2015/10/18(日) 11:33:50.76ID:WvPHJe2x0527デフォルトの名無しさん
2015/10/18(日) 13:06:49.46ID:Q87slw7q紹介して
0528デフォルトの名無しさん
2015/10/19(月) 04:34:17.56ID:3gr1qLW40529デフォルトの名無しさん
2015/10/20(火) 14:21:04.78ID:aDq7wlfPirbなどでコンソールから日本語を入力すると
Error: Invalid argument @ io_write
というエラーが出ます
なんとかなりませんか?
0530デフォルトの名無しさん
2015/10/20(火) 19:58:42.92ID:Rs0+C/fu0531デフォルトの名無しさん
2015/10/20(火) 20:13:03.38ID:5FrvHuNhbbbbbなってワロタw
Windowsからirb使えないじゃん
0532デフォルトの名無しさん
2015/10/20(火) 20:18:12.92ID:5FrvHuNh0533デフォルトの名無しさん
2015/10/21(水) 03:47:58.10ID:tbQLNnPC"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -app=http://fatiherikli.github.io/fil/
0534デフォルトの名無しさん
2015/10/21(水) 05:35:54.16ID:YZnuen5o0535デフォルトの名無しさん
2015/10/21(水) 07:43:09.22ID:BEOnjFkl2行目以降が、きっちり、1行目とまったく同じだけのフィールドの数で統一されてるかをチェックしたいんだけど、
こういうのってRubyでは出来るもんでしょうか?
0536デフォルトの名無しさん
2015/10/21(水) 07:48:24.40ID:zc5Cc/IW0537デフォルトの名無しさん
2015/10/21(水) 10:30:40.60ID:4fxeGd4H0538デフォルトの名無しさん
2015/10/21(水) 11:34:58.23ID:zc5Cc/IW0539デフォルトの名無しさん
2015/10/21(水) 18:35:32.66ID:ZXMR/M8n一度に全部読み込んじゃダメ
1行ずつ読み込む、IOクラスを使う
io.each_line do |line|
line.chomp!
処理
end
0540デフォルトの名無しさん
2015/10/21(水) 18:42:16.21ID:eyra7kkr同じようなコードを再利用する場合は
モジュール化すれば良いのでしょうか?
0541デフォルトの名無しさん
2015/10/22(木) 01:29:40.39ID:TbUL0QMn使いまわしたいコード(関数)が増えてきたらmoduleやclassで囲って用途ごとにグルーピングする
0542デフォルトの名無しさん
2015/10/23(金) 10:51:54.93ID:Rrtmqjxlrequireってスタック消費しますか?
0543デフォルトの名無しさん
2015/10/23(金) 12:58:24.44ID:x5v4qLUmあるソースコードで以下のようなメソッドを見かけたんですが
どういう意味でしょうか?
教えて下さい
def self.[](key)
{
'test1' => 'aaa',
'test2' => 'bbb'
}[key]
end
0544デフォルトの名無しさん
2015/10/23(金) 16:50:34.83ID:vpVrL7dwRuby のクラスメソッド定義まとめ
http://qiita.com/Linda_pp/items/b7135ae1f0def6058c6c
0545デフォルトの名無しさん
2015/10/23(金) 23:46:19.25ID:KbxpAfMH0546デフォルトの名無しさん
2015/10/24(土) 23:48:55.22ID:Qgv+LRcU前スレで問題を解決していただき、無事にVistaで運用しておりましたが、
8.1のマシンで同じRBファイルを実行しようとすると以下のようなエラーが…どなたかお分かりになりませんでしょうか?
ttp://imgur.com/z4S2yUE.png
0547デフォルトの名無しさん
2015/10/25(日) 00:09:06.02ID:U+zphv130548デフォルトの名無しさん
2015/10/25(日) 00:13:36.65ID:dvCcO/ow0549デフォルトの名無しさん
2015/10/25(日) 00:32:26.49ID:U+zphv13「エラーメッセージの英語が読めないまたは読んでない」のか、
「そもそもどれがエラーメッセージかわかってない」のか
0550デフォルトの名無しさん
2015/10/25(日) 00:41:54.03ID:dvCcO/owすみません、全部です…
0551デフォルトの名無しさん
2015/10/25(日) 00:45:35.56ID:dvCcO/owいや、最初のパターンですね!
0552デフォルトの名無しさん
2015/10/25(日) 00:48:58.17ID:kAzb4U8m0553デフォルトの名無しさん
2015/10/25(日) 00:54:46.20ID:udh7cbN20554デフォルトの名無しさん
2015/10/25(日) 00:58:24.88ID:U+zphv13どっかから拾ってきたスクリプトなんだったらきっとあなたが使い方を間違えてるので作者に聞いて下さい
0555デフォルトの名無しさん
2015/10/25(日) 00:59:41.21ID:kAzb4U8mエクスプローラでそのファイルが存在するか確認しました?
0556デフォルトの名無しさん
2015/10/25(日) 01:03:29.44ID:udh7cbN2>>555
わざわざありがとうございます!
検証してみたらVista機からdropbox経由でコピーしてきたtempフォルダの中身がいつの間にか消えてしまうんです。
0557デフォルトの名無しさん
2015/10/25(日) 01:12:37.20ID:U+zphv13Vista機で正常に実行し終えたあとにはtempフォルダの中身は残ってるの?
0558デフォルトの名無しさん
2015/10/25(日) 02:06:13.35ID:IGihUR6Pdef func(overwrites = {}){
:a => AAA
:b => BBB
}.merge(overwrites)
「Selenium デザインパターン & ベストプラクティス」2015
という本に載っていたけど、
この関数の引数に、ハッシュを渡すことで、
任意のフィールドを上書きできたり、
新たなキーと値を追加できる
0559uy ◆ggMix6r0fY
2015/10/25(日) 07:04:34.58ID:Pm66QtwEhttp://soz.hatenablog.com/entry/2015/03/23/150317
Atom を Vim っぽく扱う vim-mode と ex-mode
http://loumo.jp/wp/archive/20150727064627/
vim使いがAtomに乗り換えを試みる
http://codeofsea.hatenablog.com/entry/2015/05/01/232954
竹上、vimmerやめるってよ
http://utage.headwaters.co.jp/blog/?p=3835
Atomチートシート
http://qiita.com/ryo0301/items/e06ea6bf95910cdbcc29
Matzって人は確か、Emacs(笑)だっけ?
0560デフォルトの名無しさん
2015/10/25(日) 07:06:57.32ID:Pm66QtwE0561デフォルトの名無しさん
2015/10/25(日) 07:23:21.63ID:udh7cbN2レスありがとうございます。Vista機ではtempフォルダの中身は残ったままなんです。8.1だと本当に「いつの間にか」消えてしまってるんです。
0562デフォルトの名無しさん
2015/10/25(日) 08:16:09.56ID:wzNiY0Smというとでも思ったのか?
いつの間にか消えるのを臨時スペースや一時スペースといいます。
0563デフォルトの名無しさん
2015/10/25(日) 08:25:06.46ID:kAzb4U8m0564デフォルトの名無しさん
2015/10/26(月) 00:18:30.55ID:405X1S7mやり方教えてよ
0565デフォルトの名無しさん
2015/10/26(月) 09:44:07.76ID:7klYI+GR覚えたら教えて。
0566uy ◆BfeYkzFGdo
2015/10/26(月) 11:44:01.14ID:PFFVX39oCoffeeScriptはendのないrubyだよ
AA テスト
┴ァ
イヽ
0567Uy ◆2uwIzfDc1.
2015/10/26(月) 13:13:15.19ID:PFFVX39o物凄くネストしたコードを書きたいんですけど
lambda do
lambda do
lambda do
...
これってスタック使っているんですか?
いくつくらいまでのネストが可能ですか?
0568デフォルトの名無しさん
2015/10/27(火) 21:07:10.63ID:sS/wkUVJプログラミング飽きた
0569デフォルトの名無しさん
2015/10/28(水) 11:15:34.66ID:dfvAkVtPextendの時に引数を渡してメソッドの初期化をしたいのですが
クラスでラップしたりmy_extend定義以外の方法はありませんか?
一応下記の方法で出来ましたが冗長してしまいます
# 1
o = Object.new
o.extend Module_A_rapper_class.new("text").module # メソッド func を追加
o.func # => text
# 2
o.my_extend(Module_A, "text")
0570デフォルトの名無しさん
2015/10/28(水) 20:18:57.45ID:WdTv92Vjレス来る前に
実装終わっちゃった
0571西行寺うゆ ◆e6.oHu1j.o
2015/10/29(木) 10:29:29.44ID:R4RgirF7rubyって自由度が高いといわれていますけれど
>>569このような事をやる場合に、結局ネックになるのは
「クラス」には存在して「モジュール」には存在しない機能です
extended , includedが呼び出し側から引数を取れないのは何故ですか?
それでも無理やりにmoduleのextendedをinitializeの代わりにプログラミングしていった先にあるひとつの壁は
extendedが「引数を取れない事」と「super」を呼べない事です
このせいで結局「クラスにラップされたモジュール」というのが、コード上の冗長性を抜きにした場合
最も効果的な手段となってしまいます
しかしながら他にも問題はあります
ラ イ ブ ラ リ の ほ と ん ど は ク ラ ス で 提 供 さ れ て い る
o = Object.new
o.extend Module
よってこの記述は、モジュールだから出来ているだけで
o.extend Class
は出来ないです
0572西行寺うゆ ◆e6.oHu1j.o
2015/10/29(木) 10:30:53.39ID:R4RgirF7その場合
o = Object.new
o.extend Module.new { attr_accessor :mod }
o.mod = Lib_Class.new
このような形になってしまいます
これって結局「自由なプログラミング言語」と謳っていても、
結局「クラスを使った"常識的なプログラミング"」の中だけの「自由」なんです
実際classではなく module extended式のプログラミングをしてみるとわかりますが
moduleのスコープとmodule内特異クラスの最低でも2つ以上のスコープを意識しながら組む事になります
このスコープは「カプセル化」の恩恵を与えてくれるものではなく、ただ煩雑にさせるだけのスコープです
よって
@var = 1
def self.extended | mod |
@ var
end
def func
@var # error
end
klassの違いからなる制約が頻発します
0573西行寺うゆ ◆e6.oHu1j.o
2015/10/29(木) 10:31:19.88ID:R4RgirF7var = 1
self.define_singleton_method :extended do | mod |
p var
mod.define_singleton_method :func do
p var
end
end
と、書いてしまったほうが、明らかにわかりやすいです
extended プログラミングの中では
「 def 」を使わずに一見冗長define_singleton_methodを使ったほうがまだマシなように思います
@つきメンバ変数を使わず
ローカル変数スコープを全てのmodule内の定義メソッドで突っ切らせたほうが、簡潔になります
先にも言いましたが、extend extended は引数を得られない
これってユーザー引数によって、extendedからメソッドを「追加」ではなく「定義」しようと思った時に
無理なんです
extendの利用価値がガタ落ちじゃないですか?
「引数」ではなく、内部変数等の「状態保存」だけならできます
extend でメソッドを作っても、
「引数」ではなく、内部変数等の「状態保存」%まで% しか出来ない、
0574西行寺うゆ ◆e6.oHu1j.o
2015/10/29(木) 10:32:37.79ID:R4RgirF7o.extend My_module_rappar_class.new("extendedで使いたい引数").new.module ## My_module_rappar_class#module # => #<Module:0x0000FF0>
rubyのシンタックスシュガーの外に出た感じです
参道から外れて獣道に入ったようなイメージ
自分の通ろうとしている獣道をruby言語で開拓していただけませんか?
自分が欲しい機能を以下に並べます
アジェンダ
・extend で「引数に沿ってメソッド生成・メソッド定義」が可能なモジュール機構
これが出来ない時点で、基本的には状態保存をしないで済むメソッドの追加しかextendでは出来ない制約があります
・ライブラリがクラスで作られていても容易にextendが可能な機能
これは「o.extend Module.new { attr_accessor :mod }」のひと手間かければ良いのですが
この二つです
では、何か質問等ございましたら
http://peace.2ch.net/test/read.cgi/tech/1443578172/l50
こちらまでメールをお願いします
0575デフォルトの名無しさん
2015/10/30(金) 00:01:17.77ID:k5vGnOwJ黒魔術の書
メタプログラミングRuby 第2版、2015
この2冊を読め!
0576uy ◆e6.oHu1j.o
2015/10/30(金) 14:33:43.12ID:J4qdTdgZruby関連の書籍で読んでない本が自分にあると思ってんの?
全部読んでるから
0577デフォルトの名無しさん
2015/10/30(金) 15:06:03.35ID:+puIhN5e0578うy ◆e6.oHu1j.o
2015/10/30(金) 21:59:26.43ID:37Q7KUOb0579デフォルトの名無しさん
2015/10/30(金) 22:01:29.39ID:olSnnU8y0580デフォルトの名無しさん
2015/10/31(土) 11:45:00.47ID:zwNlcJhbよくわかんないけど、こういうんじゃダメなの?
module M; def foo; p "foo" end end
class Module
def my_exec(p, &b); module_exec{ b.call(p) }; self end
end
obj = Object.new
obj.extend M.my_exec("bar"){ |s| define_method(:bar){ p s } }
obj.foo #=> "foo"
obj.bar #=> "bar"
0581uy ◆e6.oHu1j.o
2015/10/31(土) 16:03:04.68ID:eogiaEdEその発想なかったです、
self.extendedを捨てればよかったのですね
これで出来ましたありがとうございます
module UY
def self.my_exec arg
define_method(:func){ p "hallo "+arg }
self
end
end
o = Object.new
o.extend UY.my_exec("uy")
o.func
0582デフォルトの名無しさん
2015/10/31(土) 20:41:27.96ID:h/fOQC4fmoduleの特異クラスに適用する方法ってありますか?
0583デフォルトの名無しさん
2015/11/01(日) 05:13:28.18ID:u91GrISsクラスと同じようにできるみたい。
module M; def self.foo; p "foo" end end
module ModuleMethodRefine
refine M.singleton_class do
def bar; p "bar" end
end
end
using ModuleMethodRefine
M.foo #=> "foo"
M.bar #=> "bar"
http://qiita.com/joker1007/items/68d066a12bc763bd2cb4
0584デフォルトの名無しさん
2015/11/01(日) 17:19:20.61ID:t/1K3INbWindowsのコマンドプロンプトからruby(main.rb)を実行するとき、あるファイル(stdin.txt)から標準入力を与えるにはどうすればいいですか?
一応こんなコマンドを指定してみましたが、なぜか標準入力がmain.rb自身になってしまいます。
ruby main.rb < stdin.txt
0585デフォルトの名無しさん
2015/11/01(日) 17:23:46.70ID:t/1K3INbすみません、勘違いのようでした。質問取り消しでお願いします
0586uy ◆Qawu9.2l1E
2015/11/01(日) 17:59:27.58ID:hwVDg0hR例えば花火のように「爆発前」と「爆発後」で別オブジェクトが必要な時
つまり、物体Aが消滅する時に「消滅エフェクト」として火花を生成したい。
デストラクタ無しでこの「消滅エフェクト」ってどこに書くんですか?
花火は打ち上げられてから時間で爆発します
def delete_count
if ( self.count -= 1 ) < 0
< ここ? >
self.delete
end
end
時にはデストラクタに処理直接書いたほうが楽なケースってあるんですけどぉ
0588デフォルトの名無しさん
2015/11/02(月) 11:40:32.18ID:xhNmMlq/5.instance_exec do
p to_s # => 5
yield
end
end
f do |s|
p to_s # => main
end
こんなの書いてみたんですけど
ブロック側から 5のselfを得るのって無理ですか?
0589デフォルトの名無しさん
2015/11/02(月) 12:59:22.29ID:z6P56ki95 を self で得るのは無理ですが、わざわざ用意している s で受けるのはどうして駄目なんですか?
def f
5.instance_exec do
p to_s # => 5
yield(self)
end
end
f do |s|
p s.to_s # => 5
end
0590デフォルトの名無しさん
2015/11/02(月) 13:28:27.16ID:hDe7Ebe3f do |s|
...
end
ここに多くのコードを書く場合にs. が何度も登場して冗長だからです
0591uy ◆Qawu9.2l1E
2015/11/02(月) 14:10:05.48ID:NBJZmpcUdef func
file = nil , line = nil
caller().each do |str|
str =~ /(.*?):(\d+)/
file, line = $1, $2
end
5.instance_exec do
p to_s # => 5
eval open(file).each_line.to_a[line.to_i-1].sub( __method__.to_s, "1.times") # => 5
end
end
func do p to_s end
0592デフォルトの名無しさん
2015/11/02(月) 14:56:08.20ID:z6P56ki9じゃあ、こんな感じで。
def f(&b)
5.class.class_exec(5){ |s| define_method(:anon, &b); instance_method(:anon).bind(s) }.call
end
f{ to_s } #=> "5"
0593デフォルトの名無しさん
2015/11/02(月) 15:28:08.29ID:hDe7Ebe3凄いですね・・・
流石にここまでrubyで出来るとは思いませんでした
ありがとうございます
0594uy ◆Qawu9.2l1E
2015/11/02(月) 16:02:08.27ID:Pq0uxgZZ5.instance_exec &proc
end
f {p to_s}
はいわろ
0595デフォルトの名無しさん
2015/11/02(月) 16:05:07.65ID:QGaoT7BMどのエンコード選べば読めるようになるの?
0596uy ◆Qawu9.2l1E
2015/11/02(月) 17:07:33.45ID:MPfeNe3M0597うゆゆゆゆゆゆ ◆Qawu9.2l1E
2015/11/02(月) 17:10:12.34ID:MPfeNe3M0598uy ◆Qawu9.2l1E
2015/11/02(月) 19:06:55.92ID:YzpIGAApruby並に記述が簡潔で再帰の速い言語ください
rubyの再帰はマジでおそいと思う
0599デフォルトの名無しさん
2015/11/02(月) 20:09:49.93ID:JLYNx9SGなければ作っちゃえばいいんじゃなーい?
Matzだって自分好みの言語がなかったから作っちゃったんだしー
0600uy ◆Qawu9.2l1E
2015/11/02(月) 21:47:32.94ID:gLS3ib7dVM関連のソースは漁るかもしれない
0601デフォルトの名無しさん
2015/11/02(月) 21:52:34.65ID:JLYNx9SGまるでヒマがあれば作れるみたいな言い方じゃなーい
だとしたらあとは必要なのは時間じゃなくて情熱だよねー
0602uy ◆Qawu9.2l1E
2015/11/02(月) 23:31:24.62ID:5/Pq42i40603デフォルトの名無しさん
2015/11/02(月) 23:43:34.43ID:WyDMkyCX特に時間がかかっているのが、BMP→PNGの画素表現の変換処理
a255 = "\xFF".force_encoding("ASCII-8BIT")
bmpi.each do |line|
pos = 0
posp = 0
pngl = a255*(4*ihdr.width)
while pos<line.size # BGR => RGBA
pngl[posp ] = line[pos+2]
pngl[posp+1] = line[pos+1]
pngl[posp+2] = line[pos ]
pos += 3
posp += 4
end
pngi << [0, pngl]
end
それとIDAT作成時の
[[フィルタメソッド、RGBAイメージ]×ライン数] の連結処理
image.each do |line|
pngi += line.pack("Ca*")
end
なのですが、これ以上高速に動く記述法は無いでしょうか?
0604デフォルトの名無しさん
2015/11/03(火) 01:12:24.53ID:rm6qzEkFFFTにはしないでね
class Array
def dft
n = self.length
w = Complex.polar(1, -2*Math::PI/n)
w_arr = (0...n).map.with_index{|row, _n| (0...n).map.with_index {|e, _k| w**(_n*_k)}}
dft_arr = (0...n).map.with_index do |e, _k|
sum = 0
n.times{|_n| sum += w_arr[_n][_k] * self[_n]}
sum/(n**0.5)
end
end
end
p [0,1,0,1].dft #=> [(1.0+0.0i), (-6.123031769111886e-17+0.0i), (-1.0-2.4492127076447545e-16i), (1.836909530733566e-16+0.0i)]
0605デフォルトの名無しさん
2015/11/03(火) 02:16:12.28ID:rm6qzEkFどうでもいいけどMatrixってのがあるんだな、いまいち配列ほど使いこなせないけど
これは便利だ
require 'matrix'
require 'complex'
v1 = Vector[0,1,0,1]
n = v1.size
w = Complex.polar(1, -2*Math::PI/n)
w_matrix = Matrix.rows((0...n).map.with_index{|row, _n| (0...n).map.with_index {|e, _k| w**(_n*_k)}})
v2 = w_matrix * v1 / (n**0.5)
p v2 #=> Vector[(1.0+0.0i), (-6.123031769111886e-17+0.0i), (-1.0-2.4492127076447545e-16i), (1.836909530733566e-16+0.0i)]
0606デフォルトの名無しさん
2015/11/03(火) 03:37:04.32ID:yudcS5lQcrystal 以上のものができるとは思えない。
0607デフォルトの名無しさん
2015/11/03(火) 07:57:22.38ID:ZahXSpxi2ちゃんやってる時間はあるのにねw
0608デフォルトの名無しさん
2015/11/03(火) 10:47:01.90ID:7fKHty9q元は、
pngl += line[pos+2] + line[pos+1] + line[pos]
と、
pngi += [line[0]].pack("C")+line[1]
としてて、
これを>>603に変えたら3割ほど早くなったのですが、
そこからどうすれば時間削減できるか思いつきませんでした
全コードは以下です
http://codepad.org/RMuparfO
どなたか高速化のアイデアありましたらご意見お願いいたします
0609デフォルトの名無しさん
2015/11/03(火) 11:31:08.87ID:bls6utNuより低スペックだったら買い替える
0610uy ◆Qawu9.2l1E
2015/11/03(火) 13:23:55.39ID:IUDjoANuひとりでやってろよ暇人
0611デフォルトの名無しさん
2015/11/03(火) 13:28:42.78ID:ZahXSpxiまさに>>601の言ってる通りじゃん
足りないのは時間じゃなくて情熱でしょ
0612デフォルトの名無しさん
2015/11/03(火) 14:34:36.46ID:C0Kah9v/rubyならCで書いてモジュール化したら?
0613uy ◆Qawu9.2l1E
2015/11/03(火) 15:13:05.09ID:dozR5F+qIT分野以外の。第一線で活躍して日々忙しく生きている人です。
実はその人は余暇を使って趣味でプログラミングをしていました。
しかし言語に足らない機能があると思い「この機能なくね?」と愚痴をこぼしました
そしたら周りが「じゃあお前が作れよw」「情熱が足りてねーよw」とか言うの?
言わないでしょ。
そのレベル
0614デフォルトの名無しさん
2015/11/03(火) 15:29:49.79ID:ZahXSpxiキレてる意味が分かんない
「自分が作れよ」とか「情熱がない」をけなし言葉だと受け取っちゃったのかな?
0615uy ◆Qawu9.2l1E
2015/11/03(火) 15:30:13.30ID:C3Kp9NP8インデックスでありインデックス以下でもない、インデックス === インデックス
( インデックス != インデックス ).false?
一度読んだものを全て覚えてしまう能力があるので
知識をため込む事が容易過ぎるだけなんです
その能力がIT分野では特に発揮される
でも何があっても絶対に、他人の為・社会の為に技術力を使いません
0616デフォルトの名無しさん
2015/11/03(火) 15:45:30.21ID:oINh57iv/ `ヽ
/ ヽ \
| / _」 |
| }ー----------…… '´/.:l |
! l:r┐ // // // /l |
! l:l ! // // // //\ |
l/ ,.イ /-- ── ─┬┬ < トト、ト、 1
l 「7 ⌒ヽム_/ノl/ ヽ┼仆ハVV〉 |
/// ‐{ l/ニ _.._, 1i! |
〃 ソー=='  ̄ '' j.:.l |
,′ ハ'゙ , ,.イ.:.l |
i イ:: : ヽ t -- -ァ /.:.l.:.:l |
| |:: :: ::_」> _ゝ-_'. イ`ヽl.:l.:.:l |
./| ∧l l:: i.:\` ー----‐' 人 l.:.:l |
/. | / ∧ l:: l.:.:.:.\ イ /l.:l.:. l |
/.: . |/ // l:: lヽ.:.:.:.:.\ __, /.l.:l \ l |
〈__/ // .l:: l \.:.:.:.:\. /.:.:l.:l \1
/\ // .l:: l \.:.:.:.:V.:.::/l:.l ∧,
0617デフォルトの名無しさん
2015/11/03(火) 16:21:56.78ID:bls6utNu生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
0618uy ◆Qawu9.2l1E
2015/11/03(火) 16:24:41.15ID:c9KPlTxgゴキブリやカメムシか何かですか?(生命力強い的な意味で)
0619uy ◆Qawu9.2l1E
2015/11/03(火) 16:40:21.85ID:dozR5F+q0.2秒くらい
http://codepad.org/E9uNOvQ6
0620デフォルトの名無しさん
2015/11/03(火) 20:24:39.31ID:WDR9dJBW0621uy ◆Qawu9.2l1E
2015/11/04(水) 00:20:49.03ID:9yLsNv2Lこのスレで名無しの自演がどんだけ含まれてると思ってる?
誰もuyから逃げられないんだよ
0622デフォルトの名無しさん
2015/11/04(水) 07:59:12.03ID:IENSYbNFちくわ大明神
これも覚えたな?
0623uy@紫の鏡 ◆Qawu9.2l1E
2015/11/04(水) 12:52:14.93ID:i1eTFo0U0624uy@紫の鏡 ◆Qawu9.2l1E
2015/11/04(水) 13:02:57.05ID:aNCvQtC0コウモリは赤外線を見れるけど、その逆側の波長だ
普通の人は見る事が出来ない、可視光線の外側
これが「紫の鏡」なのでは無いかな?
0625デフォルトの名無しさん
2015/11/04(水) 14:29:06.54ID:D2Xkj+uK鳥の目は4原色対応
人間は3原色だが女性に少数だが4原色がいるらしい
女性ホルモンが多いとそうなるのかな
色覚障害の人は2原色やモノクロ
猫は2原色
0626デフォルトの名無しさん
2015/11/04(水) 22:46:34.22ID:+yNa4eFA0627デフォルトの名無しさん
2015/11/04(水) 22:50:03.42ID:Ly3yLQ9c0628デフォルトの名無しさん
2015/11/04(水) 22:52:20.59ID:+yNa4eFAありがとうございます
やってみます
0629デフォルトの名無しさん
2015/11/04(水) 23:07:16.32ID:aW05L/NlRubyはインストール可能だけどXnViewは使用可能なソフト一覧に含まれてないしZlibも使用可能なライブラリには名前ないので(汗
同じ理由でRubyの拡張ライブラリでという手も打てません
>>628
たっているビットが1ビットのみかを判定するでもいけますね
0630uy@紫の鏡 ◆Qawu9.2l1E
2015/11/05(木) 01:05:05.77ID:BygappPf92行目〜96行目
http://codepad.org/17iMUscM
0631デフォルトの名無しさん
2015/11/06(金) 00:56:29.34ID:YVUNOzRU「誰もuyから逃げられないんだよ 」
0632デフォルトの名無しさん
2015/11/06(金) 01:43:15.89ID:ARx20cVIありがとうございます・・・
計測してみましたが1%ほど早くなっているようです
やり方根本的に変えないとこれ以上は無理かもしれません、う〜ん
0633uy ◆Qawu9.2l1E
2015/11/06(金) 16:52:48.67ID:aIehvATR誰もuyから逃げられないんだよ
0634デフォルトの名無しさん
2015/11/06(金) 18:31:20.98ID:Vobfpb3WString の += は破壊的連結ではなくて使った分だけオブジェクトができる
なのでループ中とかでたくさん呼び出すと速度低下の原因になる
破壊的連結でいい場合は String#<< というメソッドがあるのでそっちを使いましょう
あとは、String#[] には Range を渡す使い方もできるので、
pngl[posp..posp+2] = line[pos..pos+2].reverse!
とすると String#[] の呼び出し回数を1/3にできる
0635uy ◆Qawu9.2l1E
2015/11/06(金) 18:59:35.72ID:AWzYOs1s^^;
>>630 更新
atmp = "\xFF".force_encoding("ASCII-8BIT")
for line in bmpi do
pos = 0
pngl = ""
while pos < line.size
# BGR => RGBA
pngl << line[pos+2] + line[pos+1] + line[pos] + atmp
pos+=3
end
pngi << [ 0 , pngl]
end
0636uy ◆Qawu9.2l1E
2015/11/06(金) 19:57:47.43ID:6VBxeh94atmp = "\xFF".force_encoding("ASCII-8BIT")
res << bmpi.map do |line|
[0 , line.chars.each_slice(3).inject("") do |s,(b,g,r)| s << r+g+b+atmp end ]
end
0637デフォルトの名無しさん
2015/11/06(金) 20:23:16.65ID:ZLqSRBgO趣味でやってて公けにできないんなら別だが
0638uy ◆Qawu9.2l1E
2015/11/06(金) 21:37:20.98ID:DzTyHAnlatmp = "\xFF".force_encoding("ASCII-8BIT")
for line in bmpi do
pos = 0
pngl = ""
while pos < line.size
# BGR => RGBA
pngl << line[pos+2] + line[pos+1] + line[pos] + atmp
pos+=3
end
pngi << [0 , pngl]
end
ruybの :+ ってカスだわ
0639uy ◆Qawu9.2l1E
2015/11/06(金) 21:38:25.05ID:6VBxeh94atmp = "\xFF".force_encoding("ASCII-8BIT")
for line in bmpi do
pos = 0
pngl = ""
while pos < line.size
# BGR => RGBA
pngl << line[pos+2] << line[pos+1] << line[pos] << atmp
pos+=3
end
pngi << [0 , pngl]
end
0640uy ◆Qawu9.2l1E
2015/11/06(金) 22:33:38.77ID:Y2REc2we0641uy ◆Qawu9.2l1E
2015/11/06(金) 22:44:45.65ID:DzTyHAnlとりあえず一桁秒になったはず
つうか重いのは最初に最適化してた場所じゃなくて
png_to_binary
↑ これだろ
文字連結には:+=ではなく:<<を使うべき
0642デフォルトの名無しさん
2015/11/07(土) 18:38:08.83ID:Rb6TxNfK後ろから参照されます
MatzもHPがゼロになると声が裏返るんでしょうか?
0643uy ◆Qawu9.2l1E
2015/11/07(土) 18:52:01.30ID:YPPH2uE6https://www.youtube.com/watch?v=EToMOmP4oRw
0644デフォルトの名無しさん
2015/11/07(土) 19:24:50.76ID:can/VOFLありがとうございます、 << は存じませんでした
来週実環境で計測してみます
>>637
たぶん許可は出るともいます…が、手続きが結構めんど(汗
>>641
png_to_binaryは>>603で述べてるように手を入れてましたよ
修正前と後で30%違ってましたが、なるほど、+が減った分で効いていたのですね
0645デフォルトの名無しさん
2015/11/08(日) 05:27:50.02ID:eTPvEeSNe = Enumerator.new(ObjectSpace, :each_object)
# warning: Enumerator.new without a block is deprecated; use Object#to_enum
この構文が警告出るようになってるんですけど
これは以下のようにEnumeratorを継承して使う事は出来なくなるという事ですか?
警告を出さない書き方がわかりません
class A < Enumerator
def initialize _
super
end
def my_each
self
end
end
x = A.new([1,2,3])
p x.my_each
0646uy ◆Qawu9.2l1E
2015/11/09(月) 13:46:22.37ID:VP0GkkkJ0647デフォルトの名無しさん
2015/11/09(月) 16:10:55.73ID:ddVcBsOP0648デフォルトの名無しさん
2015/11/11(水) 23:42:19.72ID:qynC6Zv6http://codepad.org/nktsZViC
1920x1200サイズの画像が1枚1.2秒で変換できるようになりました。
一番最初のコードからすると8〜10倍くらい早くなって十分実用できる出来になりました。
いろいろと教えてくださった方に感謝いたします。
0649デフォルトの名無しさん
2015/11/12(木) 13:37:53.57ID:63YCCmxd"〜".force_encoding("ASCII-8BIT")
は
"〜".b
でOK
0650uy ◆Qawu9.2l1E
2015/11/13(金) 03:47:30.91ID:8gPiU2/Qreturn n if n.class == Fixnum
p :err
end
def String_uy n
return n if n.class == String
p :err
end
def func n
n * 2
end
x = 10
p func Fixnum_uy x # => 20
p func x # => 20
x = "abc"
p func String_uy x # => "abcabc"
p func x # => "abcabc"
func Fixnum_uy x # err
ぼくの考えた静的型チェック
0651デフォルトの名無しさん
2015/11/13(金) 07:36:36.68ID:0Gwam1l30652uy ◆Qawu9.2l1E
2015/11/13(金) 09:24:15.22ID:TDianL6O0653uy ◆Qawu9.2l1E
2015/11/13(金) 09:25:30.36ID:TDianL6OPNGSIG = "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A".force_encoding("ASCII-8BIT")
res = [PNGSIG]
↑ これ複数のbmp変換の時にバグる
0654デフォルトの名無しさん
2015/11/13(金) 12:54:02.58ID:BvUUurmn2015/11/13 9:56
http://www.nikkei.com/article/DGXLZO93937240S5A111C1LC0000/
松江発のプログラミング言語「Ruby(ルビー)」を開発した、
まつもとゆきひろ氏が新しいバージョンとなる「ルビー3.0」の開発に着手した。
12日に松江市で開幕した「Rubyワールドカンファレンス」の基調講演で、
IT(情報技術)環境の高度化・複雑化にルビーを対応させる実験を進めていると述べた。
0655デフォルトの名無しさん
2015/11/13(金) 23:30:22.07ID:GJbbkJB1ありがとうございます。
たまたま1起動で1枚の変換だったので発覚しませんでしたが複数枚を一度に変換した場合、
png1
png1+png2
png1+png2+png3
のように次々と連結されたファイルに変換されてしまってました(汗
res = [PNGSIG.dup]
で修正できました。
0656デフォルトの名無しさん
2015/11/14(土) 11:20:12.98ID:Hu5fAc9attp://blog.supermomonga.com/articles/jruby/javafx-rawr.html
このサイトのような人もいるけど、皆さん、WindowsでRubyで、
普通のGUI画面を作るには、どうやっているの?
Rubyで出来ないのなら、Python, Groovyかな?
0657デフォルトの名無しさん
2015/11/14(土) 11:52:01.92ID:hCpncyRdなんで先のないことを始めようなんて思ったの?(´・ω・`)
0658デフォルトの名無しさん
2015/11/14(土) 12:30:10.17ID:erHlxJOJ0659デフォルトの名無しさん
2015/11/14(土) 13:29:45.17ID:kYx4kaK6ルビー()をウインドウズ()で使うと不幸になるよ
0660デフォルトの名無しさん
2015/11/14(土) 18:29:15.58ID:mv+oMLfo以前ならRuby+VCLのApolloがオススメだった……
1.8ベースであることを気にしないなら今でも使えるけどね
0661uy ◆Qawu9.2l1E
2015/11/14(土) 20:41:01.85ID:Shexr7Cqdxrubyサンプルかいた
http://www1.axfc.net/uploader/so/3566728
0662デフォルトの名無しさん
2015/11/16(月) 11:36:08.51ID:7yHHnP/Uhttp://jobinjapan.jp/cate/
全掲載求人109,160件の平均最低月給195,800円
Rubyの求人 の平均最低月給221,800円
http://jobinjapan.jp/job-listing/keyword-ruby.html
0663デフォルトの名無しさん
2015/11/16(月) 17:29:45.01ID:voKrxMtV日本500万円、シリコンバレー1500万円って最近どっかにあった
0664デフォルトの名無しさん
2015/11/16(月) 19:32:26.70ID:28cafqJz0665デフォルトの名無しさん
2015/11/16(月) 19:54:09.66ID:HbX6xNB+真っ白いバスローブ着て猫を膝に乗せて書けばいいの?
0666デフォルトの名無しさん
2015/11/16(月) 20:27:05.18ID:+SAjp3uD0667デフォルトの名無しさん
2015/11/17(火) 00:01:16.50ID:UqVfqUOl0668デフォルトの名無しさん
2015/11/18(水) 06:20:14.72ID:m00kBiNc0669デフォルトの名無しさん
2015/11/18(水) 07:22:08.93ID:nLopjri3著作権ガーって言ってたひとは居なくなったの?
0670デフォルトの名無しさん
2015/11/18(水) 21:03:57.49ID:zeYTnh9x0671デフォルトの名無しさん
2015/11/20(金) 12:12:51.73ID:hF6sOdisパスの区切り文字ってwindowsとlinuxは違うんですけど
どちらでもいいのですか?
0672uy ◆Qawu9.2l1E
2015/11/20(金) 13:00:56.22ID:QlSu2hgWたまに \\ か / の片方でしか動かないものがあるだけ
0673デフォルトの名無しさん
2015/11/20(金) 13:11:04.99ID:FnrKl1QXrequire 'pathname'
してPathnameクラスを使うのが正しい。
0674uy ◆Qawu9.2l1E
2015/11/20(金) 13:25:37.13ID:QlSu2hgW0675デフォルトの名無しさん
2015/11/20(金) 14:19:32.77ID:LnAg0HCn0676デフォルトの名無しさん
2015/11/21(土) 00:58:19.20ID:bHtpd3290677デフォルトの名無しさん
2015/11/21(土) 02:18:40.43ID:8J5MXxtT0678デフォルトの名無しさん
2015/11/21(土) 03:14:39.76ID:M+Mq0fqlnkf ライブラリ
0679デフォルトの名無しさん
2015/11/21(土) 08:00:25.23ID:NwMGeQu6ハッシュテーブルをアンパースしてパースして
pretty_generateするしかないのですか?
3段階もあるので
2段階か1段階に縮めたいです
0680デフォルトの名無しさん
2015/11/21(土) 17:27:46.64ID:XOdIEoHKコマンドプロンプト上でpryを起動して
任意のタイミングでshiftキーを押すと、頻繁に固まります。
(操作が一切できなくなりますが、時間をおけばなおります。)
また、次のことはirbにも共通して発生するのですが、
日本語を入力しているとかなりの確率で改行以外の操作を受け付けなくなってしまいます。
おまけに文字化けも起こしてしまいます。
windows 8.1
ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
Pry version 0.10.1
irb 0.9.6(09/06/30)
0681uy ◆Qawu9.2l1E
2015/11/22(日) 12:08:15.48ID:hFpqZnLD0682デフォルトの名無しさん
2015/11/22(日) 12:32:12.30ID:GQHFag3/ありがとうございます。
確かにreadlineを切れば文字化けは起きなくなりますが、1つ目の問題は解決しないようです。
また履歴機能も使いたいのでreadlineは切らずに済ませたいです。
0683uy ◆Qawu9.2l1E
2015/11/22(日) 19:04:43.86ID:hFpqZnLD0684デフォルトの名無しさん
2015/11/23(月) 13:08:02.25ID:TRyH0joPa,c列だけ残したcsvファイルを作ろうと思っています
c列内の改行は全体をダブルクォーテーションでエスケープしたLFで
一行の区切りはCRLFです
これを維持したいのですが、wモードだとCRLFに、wbモードだとLFに統一されてしまいます
どうすればLF,CRLF両方共存させられるのでしょうか?
gsub!がマッチしてないような気がします
CSV.open(
0685デフォルトの名無しさん
2015/11/23(月) 13:09:58.40ID:TRyH0joPCSV.open("元ファイル","w") do |csv|
flag = true
CSV.foreach("新規ファイル") do |row|
row.each{ |k, v| v.gsub(/(\r\n|\r)/, '\n') unless v.nil? }
csv << [row[0],row[2]]
end
end
0686uy ◆Qawu9.2l1E
2015/11/23(月) 14:40:09.79ID:tOBxxsaNor
v=v.gsub(/(\r\n|\r)/, '\n')
0687デフォルトの名無しさん
2015/11/23(月) 15:38:27.12ID:TRyH0joP変化無しでした
0688uy ◆Qawu9.2l1E
2015/11/23(月) 17:27:59.79ID:QX2C8YaDcsv << [row[0]+"\r\n",row[2]+"\n"]
0689デフォルトの名無しさん
2015/11/23(月) 18:20:30.33ID:TRyH0joPCSV.foreach("") do |row|
row[2].gsub!(/(\r\n|\r)/, "\n") unless row[2].nil?
csv << [row[0],row[2]]
end
end
これでなんとかなりました。ありがとうございました
0690デフォルトの名無しさん
2015/11/23(月) 19:29:21.84ID:6Cv6XcSv0691デフォルトの名無しさん
2015/11/25(水) 12:58:48.76ID:64f3mw6Upushを使うようにしている
0692デフォルトの名無しさん
2015/11/29(日) 18:49:25.26ID:8CD9EPjbphp での unset($value) に相当するような処理はできますでしょうか?
SASS においては一時的に使用したい変数もグローバル空間を汚染してしまいます。
そこで、一時的に使用した変数を、仕様を終えたところで unset するようなルールを作ろうと思ったのです。
もしそのような仕組みがないのなら諦めます。
よろしくご教授下さい。
0693692
2015/11/29(日) 18:51:04.92ID:8CD9EPjb$value: null;
や
$value: nil;
では目的を果たせません。
0694デフォルトの名無しさん
2015/11/29(日) 21:47:26.07ID:IW3RF4Lm0696uy ◆Qawu9.2l1E
2015/11/30(月) 03:22:14.76ID:K9XXst/gスコープ
http://lab.sonicmoov.com/markup/sass-variable/
0697デフォルトの名無しさん
2015/12/01(火) 07:39:26.83ID:5gA5qM1dいわゆるスクリプトとか呼ばれてるやつを作りたいんですけど
0698デフォルトの名無しさん
2015/12/01(火) 09:02:01.71ID:aM2QGKxt注意としては秘密のキーと値はクッキーにセットしないと書き込めないということくらいかな
0699uy ◆Qawu9.2l1E
2015/12/01(火) 14:45:35.96ID:p3g6QuXBselenium / watir
あるいはwshとかでブラウザの自動操作が一番楽
0700デフォルトの名無しさん
2015/12/01(火) 15:28:49.41ID:9BYkXgQyhttp://anago.2ch.net/test/read.cgi/software/1434991857/
0701デフォルトの名無しさん
2015/12/01(火) 15:29:59.57ID:9BYkXgQyhttp://potato.2ch.net/test/read.cgi/software/1434991857/
0702デフォルトの名無しさん
2015/12/01(火) 18:17:04.96ID:CfMOKjtg0703デフォルトの名無しさん
2015/12/02(水) 00:41:11.93ID:R2vt9Ztxシフト演算子もいらんよなInteger#bitshiftとか作ればいいし
0704デフォルトの名無しさん
2015/12/02(水) 04:33:58.56ID:SG5bn8pDhttps://ideone.com/qMs43L
0705デフォルトの名無しさん
2015/12/02(水) 10:16:13.59ID:hK3n/ycX0706デフォルトの名無しさん
2015/12/02(水) 15:07:31.23ID:MsCBqWdx0707デフォルトの名無しさん
2015/12/02(水) 15:27:49.31ID:SG5bn8pDなんつー無駄な処理をww
>>706
2つだけなら全探索でも良いんだけど、10個20個になるとだんだん辛くなってくる
0708デフォルトの名無しさん
2015/12/02(水) 17:47:33.68ID:N2ji3q8m0709708
2015/12/02(水) 17:53:37.23ID:N2ji3q8m0710uy ◆Qawu9.2l1E
2015/12/03(木) 10:18:49.80ID:z2raHlbz( ゚ω゚ ) お断りします
/ \
((⊂ ) ノ\つ))
(_⌒ヽ
ヽ ヘ }
ε≡Ξ ノノ `J
キュ・・・クエウェwwwwwwwwwwwww
0711デフォルトの名無しさん
2015/12/03(木) 20:41:11.41ID:c/3d3tD7GC後も100MBぐらい残ってしまいますが、nilを代入するだけで、解放されるというのは間違いですか。
ruby 2.1.6p336 (2015-04-13 revision 50298) [i386-mingw32]
class Dat
def datain
f=open("csv.txt")
da=[]
while f.gets do
ta=$_.split ','.freeze
da.push ta[1]
end
f.close;f=nil
end
end
loop {
a=Dat.new
a.datain
p '+++++++++'
print `powershell -command "Get-Process -Id #$$"`
a=nil
GC.start
print `powershell -command "Get-Process -Id #$$"`
}
CSVは以下で作りました。
f=open("csv.txt", "w+")
1500000.times {f.write "1,2,3,4,5,6,7,8,9,10\n"}
f.close
0712デフォルトの名無しさん
2015/12/03(木) 21:44:14.63ID:ygZz+2K/Rubyとして使わなくなったとしても、プロセスがOSにメモリを返すかどうかはOS依存
0713デフォルトの名無しさん
2015/12/03(木) 22:07:35.11ID:c/3d3tD70714デフォルトの名無しさん
2015/12/03(木) 22:24:24.74ID:LoHjicY30715デフォルトの名無しさん
2015/12/04(金) 08:15:10.10ID:0x8EcT4y自分でソース読むか本家のメーリングリストで聞いた方がいいよ。
あるいは変数Aに1GBくらいのデータを入れて検証してみれば?
こんな検証結果もある。バージョン古いけど。
http://vcxzasdf.blogspot.jp/2011/08/ruby.html
後は勝手に調べろや
0716デフォルトの名無しさん
2015/12/04(金) 11:11:30.56ID:ss/13u2knil代入するだけでいいのか、よくわからないレベルなので
>>自分でソース読むか本家のメーリングリストで聞いた方がいいよ。
こういうのは敷居が高いです。
制限付きGCらしいとは、読んだのですが、何かスクリプト上の工夫余地があるのかが
知りたかったのです。
0717715
2015/12/04(金) 12:52:57.47ID:0x8EcT4yhttp://qiita.com/yuroyoro/items/14ec7079f6574ad74409
http://wazanova.jp/items/759
GCの挙動は環境変数である程度制御出来るらしい。
Rubyが起動する前に設定が必要だから、Rubyのスクリプトで何とか出来るのか。
という問いなのであれば「出来ない」が回答なのかな。
なお、環境変数変更の結果、頻繁にGCが動作してしまうようになるリスクもあるので、本当にそのチューニングが必要なのかどうか考えた方がいいんじゃね?
おまいさんが暇でGCに興味があるのなら、好きなだけ実験すればよいけど。
0718デフォルトの名無しさん
2015/12/04(金) 14:16:06.80ID:ss/13u2k速度と、メモリ使用量のトレードオフのチューニングっぽいですが、
やりたいことは、使わなくなったデータ領域を、OSに還元さえできれば、満足なんです
class Dat
def datain
da=["2"]*50000000
end
end
とした場合は、200MBが、GC後5MB位まで、減りますね。。。
0719デフォルトの名無しさん
2015/12/04(金) 16:13:41.90ID:u0bQfuw30720デフォルトの名無しさん
2015/12/04(金) 20:26:22.64ID:52yuQwwP0721デフォルトの名無しさん
2015/12/04(金) 23:07:49.74ID:JzxqQT0L無知なプログラマーの独りよがりだと思いますよ。
返却しなくてもOSも他のプロセスも誰も困らない。
むしろ何かしようと変なことをして、システム全体の効率を落としますよ。
0722デフォルトの名無しさん
2015/12/05(土) 00:36:53.73ID:SSa/axrj0723デフォルトの名無しさん
2015/12/05(土) 09:09:33.35ID:fWHJ2v3J全部書き込むんじゃなくて
増えた分だけ追加書き込みって出来ないの?
0724デフォルトの名無しさん
2015/12/05(土) 09:23:45.26ID:xXNtL6gShttp://docs.ruby-lang.org/ja/2.2.0/method/Kernel/m/open.html
0725デフォルトの名無しさん
2015/12/05(土) 09:37:16.61ID:fWHJ2v3J0726デフォルトの名無しさん
2015/12/05(土) 12:09:18.88ID:kPO9yvRD0727デフォルトの名無しさん
2015/12/05(土) 12:19:09.16ID:fWHJ2v3Jマーシャルダンプで追加書き込みするにきまってるだろ
0728デフォルトの名無しさん
2015/12/05(土) 12:33:35.47ID:pK0sc289一定時間毎に処理するよりも
必ず一回毎に終了してcronで何度も起動した方が
OSには優しいですか?
0729デフォルトの名無しさん
2015/12/05(土) 13:34:04.85ID:YG+TJC8i0730デフォルトの名無しさん
2015/12/05(土) 13:40:41.18ID:ylT5mXD4なにそれ
0731デフォルトの名無しさん
2015/12/05(土) 13:43:41.28ID:YG+TJC8i空気読んだら誰も言い出さない
0732デフォルトの名無しさん
2015/12/05(土) 13:57:24.47ID:T65Hu+4Y0733デフォルトの名無しさん
2015/12/05(土) 16:37:40.18ID:fWHJ2v3J0734デフォルトの名無しさん
2015/12/05(土) 17:29:28.71ID:cDKYTAJ8Ruby-2.2.0 (x64) MIP (rev 49005)(with bug#10819 patch)
たのしいRuby で勉強し始めたプログラミング未経験者ですが
Ruby2.2 consoleでnilが表示されず空白行になります
Ruby2.2 consoleでirb --noreadlineを使用するとnilは表示されますが…
windowsだとこうなるのが普通なのでしょうか?
0735デフォルトの名無しさん
2015/12/05(土) 17:35:10.38ID:ckYMWiJu0736デフォルトの名無しさん
2015/12/05(土) 18:48:57.30ID:S+43+Er8puts nil
みたいなこと?
putsは to_sが勝手に呼ばれるから
nil.to_sで空文字列に変換された後出力されることになる
nilと表示したいなら p nilで
0737デフォルトの名無しさん
2015/12/05(土) 19:33:16.99ID:cDKYTAJ8irb --simple-prompt
/Ruby/=~"ruby"
/Ruby/=~"RUBY"
/Ruby/i=~"ruby"
/Ruby/i=~"RUBY"
/Ruby/i=~"rUbY"
などの例文でirbだとirbの後に色々入力するのが大変なので全部 printを頭に付けてファイルにしてました
pにしたらnil出ました
少しまた分かってきました ありがとうございます
0738デフォルトの名無しさん
2015/12/05(土) 20:44:21.73ID:YG+TJC8i0739デフォルトの名無しさん
2015/12/06(日) 01:54:59.50ID:aV79RTr4Javaでも、使用メモリを増やすと、
メモリがまだ十分にあるから、GCを呼ばなくなるらしい
ObjectSpace#count_objects
GC::Profiler なども使ってみて
Rubyのしくみ、2014も読んで
>>728
プロセスの起動・終了は、重い処理だから、
繰り返さない方がよい。
起動させたままにする
>>734
えー!。Windows8.1 64ビット版で、Ruby動くの?
0740uy ◆Qawu9.2l1E
2015/12/06(日) 07:06:05.66ID:R7UAkY9T一定時間起動していたり、同じインスタンス使ってるとバグを触る事あるので
書き込み毎に新しくインスタンス生成するコードにしてます
それでも落ちる場合は定期的にプロセス起動し直すコードにします
最初から安定性を信頼してないライブラリはソースコード全体を
begin
rescue
end
で囲ったりして
謎の例外拾ったらプロセスrestartしてます
カス過ぎるとSEGV出すから、これでもダメだったりするよね(′・ω・`)
0741デフォルトの名無しさん
2015/12/06(日) 11:08:56.37ID:AeiLPlcL32ビットと64ビット両方に対応しないとWindows対応を名乗っちゃダメなんです。
ソフトもパーツも全部そうです。
0742デフォルトの名無しさん
2015/12/07(月) 00:17:11.51ID:ClQkmXjX0743デフォルトの名無しさん
2015/12/07(月) 04:34:16.36ID:7ldc1+VM0744ネトuy ◆Qawu9.2l1E
2015/12/08(火) 00:16:20.22ID:ne+/Joxl0745デフォルトの名無しさん
2015/12/09(水) 00:02:26.41ID:vUJ/P0DSirbではちゃんと動作するのに
0746デフォルトの名無しさん
2015/12/09(水) 00:10:12.21ID:WHhV5RKEテストちゃんと書こう
テストがなければ型チェックあり言語でもろくなものはできない
0747デフォルトの名無しさん
2015/12/09(水) 07:58:38.06ID:RodzvFpuテストをちゃんと書こうとすると型チェックあり言語の何倍も書かないといけない
0748デフォルトの名無しさん
2015/12/09(水) 12:31:25.60ID:DRhJYiKVで、本当にこれで十分なのか?っていうね
自信を持ってyesと言えるレベルのテストを書くには相当なコストをかけなきゃいけないわけ
型チェックの有無でそのコストに大きな差が出るとは思わないけど、
テストにそこまでのコストをかけるなら相対的に本体のコーディングの比重はとても小さくなるから
LLを使うメリットってほとんど無くなっちゃうんたよね
0749デフォルトの名無しさん
2015/12/09(水) 15:58:47.06ID:ymvL9hab1.csv, 2.csv, 3csv…と名前を連番で大きくしていくファイルを出力したいのですがどのように書いたらいいですか
0750デフォルトの名無しさん
2015/12/09(水) 20:04:35.27ID:HLl+HTTd0751uy ◆Qawu9.2l1E
2015/12/12(土) 18:14:08.46ID:uQVh6GL6@var.hash == v.hash の時に
関数やブロックに@var渡すのとv渡すので挙動が変わるケースってないよね?
v = @var
UY.class_eval do
@var = v
def self.func
@a.f do
yield @var
end
end
end
↑ self.funcをオーバーライド
およそこんな事しながら
ブロックにメンバ変数を渡して「yield」の中から引数の[@var(インスタンス)]の持つメンバ変数のArrayの要素を削除しようとすると、
削除すべきじゃない要素まで削除したり、また削除しなかったり挙動がおかしい
ちなみに
v = @var
UY.class_eval do
define_singleton_method :func
@a.f do
yield v
end
end
end
これだとバグらなかった
報告しようにも公開出来ないソースコードなのでここに簡易コードだけ
0752デフォルトの名無しさん
2015/12/12(土) 18:52:39.82ID:JF7BD07+0753デフォルトの名無しさん
2015/12/12(土) 21:55:16.45ID:6egCpPrLそれともobject_idの比較のつもりなのか?
0755デフォルトの名無しさん
2015/12/12(土) 22:26:00.43ID:B4iyQ5Rc0756デフォルトの名無しさん
2015/12/12(土) 23:40:16.27ID:gYwXaUBA0757uy
2015/12/13(日) 02:27:40.36ID:sfzErp4Cそこで表面化したのかもしれないし
klassを飛び越えるローカル変数か
メンバ変数か
オーバーライドか
arrayあたり
ちなみに再帰も使ってる
あとloadもつかってguiアプリ
いろいろ要素ありすぎて
ソースコードはアップできないのだよ
ただ何かそこら辺にバグがあるということは掴んでる
0758デフォルトの名無しさん
2015/12/13(日) 03:18:52.13ID:X/k3QAPc0759デフォルトの名無しさん
2015/12/13(日) 03:59:46.49ID:Be8+1Kcaカレントフォルダに、1〜3の空ファイルが作られる。
PowerShell_ise で試して。
-WhatIf を削除すれば、実際に実行される
for ($i = 1; $i -le 3; ++$i){
$tmp = [string]$i + '.csv'
New-Item $tmp -type file -WhatIf
}
Rubyでは、
3.times do |i|
tmp = (i+1).to_s + '.csv'
File.open(tmp, 'w').close()
end
'w'では、既に同名のファイルが存在する場合、
ファイルサイズを0にするので要注意
0760デフォルトの名無しさん
2015/12/13(日) 13:11:54.16ID:aRLjCXwKよくこんなクソ言語使ってられるわ
0761デフォルトの名無しさん
2015/12/13(日) 13:30:52.94ID:Ke+V+0rYmodule MyModule
class MyClass
def my_method
begin
10.times do |i|
if i % 2 == 0
puts i
end
end
end
end
end
end
0762名無しさん@そうだ選挙に行こう
2015/12/14(月) 12:39:38.57ID:tx6Cj+2Bファイル名の文字列内で
#{数値変数}.csv
0763名無しさん@そうだ選挙に行こう
2015/12/14(月) 13:28:37.59ID:baKxaSGvhttp://confreaks.tv/videos/elixirconf2014-rise-of-the-phoenix-building-an-elixir-web-framework
Introduction to elixir for Rubyists
http://confreaks.tv/videos/elixirconf2014-introduction-to-elixir-for-rubyists
2015
http://www.elixirconf.eu/
0764デフォルトの名無しさん
2015/12/15(火) 00:59:30.38ID:QowKLBZE3.times do |i| { File.open("#{i+1}.csv", 'w').close() }
0765デフォルトの名無しさん
2015/12/17(木) 11:13:45.76ID:l98kMQcJ<(´`c_,'`)>
) )
(((( > ̄ > ))))
0766デフォルトの名無しさん
2015/12/17(木) 11:14:25.40ID:l98kMQcJここな
0767デフォルトの名無しさん
2015/12/17(木) 13:56:55.85ID:Szn4FINIドローンのデモわろた
0768デフォルトの名無しさん
2015/12/18(金) 23:50:17.61ID:a2I0C9t5python使いの俺にもわかるように教えてくれ
0769デフォルトの名無しさん
2015/12/19(土) 00:18:02.37ID:LGhGH2LK0770デフォルトの名無しさん
2015/12/19(土) 00:19:27.17ID:2jcAGqqg3.times do を美しいと感じるか一貫性がなくて無駄に複雑なだけだと感じるか、純粋に好みの問題
日本人はExcel方眼紙に見られるように論理性よりも体裁を重視する傾向があるからRubyを好む人が多い
0771デフォルトの名無しさん
2015/12/19(土) 01:02:45.89ID:/LhuVD7pRubyは全体的にゆるい
そのゆるさを気持ち悪いと感じるか心地いいと感じるかかな
0772デフォルトの名無しさん
2015/12/19(土) 11:42:17.66ID:8LauFAwBだから個人的にはでかいプログラムには向いてないと思う
小さい処理したり、成果物を機械的チェックしたりをさっと書くのによく使う
まあ別に小さいのはPythonでもなんでもいいだろうけどね
しいて言えばコンソール上コマンド引数に直接コードを書くのも簡単ってとこか
0773uy ◆Qawu9.2l1E
2015/12/19(土) 14:02:40.83ID:z6r6v8NUあとは日本語資料多いほうの言語が楽
0774デフォルトの名無しさん
2015/12/19(土) 14:20:44.49ID:97l4we9fmacならruby
linuxは知らん
0775デフォルトの名無しさん
2015/12/19(土) 17:40:23.41ID:JWNupytoPythonで書くにはちょっと大袈裟な簡単な自動化とかに使うならRubyよりPerlの方がどこでも使えるしシェル呼びやすい
0776デフォルトの名無しさん
2015/12/19(土) 19:30:33.39ID:KCXD/UEw0777デフォルトの名無しさん
2015/12/19(土) 23:51:38.42ID:/LhuVD7pPythonとRubyは同程度かな
0778デフォルトの名無しさん
2015/12/20(日) 00:14:36.26ID:gcjL+cZo自分が書いたRuby >= 自分が書いたPython = 他人が書いたPython > 他人が書いたRuby > 自分が書いたPerl >>>(解読不能の壁)>>>他人が書いたPerl
0779uy ◆Qawu9.2l1E
2015/12/20(日) 01:47:57.44ID:XCKyN+j3やるメリットが0って事はないけどぬ
rubyでやりたい事探して見つからない時にPyrhon Perl で調べると見つかるとかはある
で、出てきたライブラリ名とかを今度はrubyで探してrubyで書くというのが上級者様の検索技術です
0780デフォルトの名無しさん
2015/12/20(日) 12:02:30.29ID:0rXSjneFarr2 = []
arr3 = []
(1..100).each do |i|
if condition(i)
arr1 << i
elsif condition(2)
arr2 << i
else
arr3 << i
end
end
という処理を、map()で書くことはできますか?
map()じゃなくても、関数型っぽく書く方法があれば教えてください。
0781デフォルトの名無しさん
2015/12/20(日) 14:04:55.96ID:Kuy1M1Wjarr1, arr2, arr3 = (1..100).group_by{|i|if condition(i) then 0 elsif condition2(i) then 1 else 2 end}.map{|(key, value)|value}
関数型はよくわからないけど、たぶんこんなのが関数型っぽいんでしょ
0782デフォルトの名無しさん
2015/12/20(日) 14:16:17.46ID:Kuy1M1Wj0783デフォルトの名無しさん
2015/12/20(日) 15:59:06.09ID:Ny1JRpvZarr1, arr2or3 = (1..100).partition{|i|condition i}
arr2, arr3 = arr2or3.partition{|i|condition2 i}
0784デフォルトの名無しさん
2015/12/20(日) 17:08:03.77ID:0rXSjneFありがとう。reduceを使うのね。
>>783
説明が足りませんでした。1回のループで複数の作業を行う必要がある場合、
関数型ではどうやるのかを知りたかったです。partition()だと2回のループに
なるのが気になりました。
0785デフォルトの名無しさん
2015/12/20(日) 17:32:10.95ID:Ny1JRpvZ気にするのは計算量
計算量はどっちも変わらない
0786デフォルトの名無しさん
2015/12/20(日) 17:48:25.60ID:VZ49G1Ntary2 = (1..100).select {|i| !condition(i) && condition2(i) }
ary3 = (1..100).select {|i| !condition(i) && !condition2(i) }
関数型は素直に書くのが一番
0787デフォルトの名無しさん
2015/12/20(日) 18:07:00.75ID:Ny1JRpvZ0788デフォルトの名無しさん
2015/12/20(日) 21:34:37.70ID:sNgiTuJS0789デフォルトの名無しさん
2015/12/20(日) 23:37:50.01ID:gcjL+cZo中途半端なハックするよりは素直に>>787か
自分でpartition_by_keyみたいなメソッドを自作したほうがいい
0790デフォルトの名無しさん
2015/12/21(月) 00:09:14.85ID:HlTRazJO786と783は定数倍しか違わないので大差ない(ということは素直な方がよいことが多い)のは同意
0791デフォルトの名無しさん
2015/12/21(月) 00:15:35.58ID:HlTRazJO0792uy ◆Qawu9.2l1E
2015/12/21(月) 04:37:00.37ID:pDpL0ZtEdef condition n
rand(2) == 0
end
x = (1..100).map do |i|
if condition(i)
[i,nil,nil]
elsif condition(2)
[nil,i,nil]
else
[nil,nil,i]
end
end.transpose.map(&:compact)
p x[0]
p x[1]
p x[2]
0793uy ◆Qawu9.2l1E
2015/12/21(月) 06:45:13.07ID:YrJaKapArubyスレの住民が投稿されたひとつのソースコードを見たときに感じた最初の感想はそれだった
投降者はuy ◆Qawu9.2l1E
名を「西行寺 うゆ」と言う
スレ住民の1人が落ち着く為にまずはコーヒーを淹れる事を提案した
12月の厳しい寒さの為か、または別の要因か、カップを持つ手の震えを抑えながら、皆がコーヒーを飲みほした
そして再びスレを開きソースコードを見る住民たち・・・
「見たいから」ではない。目を背けたくなるような自分の知らない手法を見ようとするのは自身プライドの為だ
今までバカにしてきたキチガイ
こんな奴に負けるはずがないという信念
それが彼らに与えられた原動力
----
0794デフォルトの名無しさん
2015/12/21(月) 10:17:54.71ID:NofUbt2g自分の環境だとErrno::EINVALとかいうエラー出るんだけどおま環なのか知りたい
> ruby -e "p gets"
あ
0795uy ◆Qawu9.2l1E
2015/12/21(月) 10:34:52.91ID:OvM9PrFx0796デフォルトの名無しさん
2015/12/21(月) 11:47:27.96ID:lS2KqIdp0797デフォルトの名無しさん
2015/12/21(月) 12:55:16.95ID:9a9Pk4jpruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32]
0799デフォルトの名無しさん
2015/12/21(月) 15:05:15.25ID:LY2IEbkCとりあえず空集合は許す、戻り値はEnumurable or Arrayとして。
これをできるだけ短くRubyで書くとどうなる?
aが大きい場合に効率の良い書き方は?
0800デフォルトの名無しさん
2015/12/21(月) 17:06:55.93ID:Ph7GU2WN0801デフォルトの名無しさん
2015/12/21(月) 19:07:52.30ID:n9k1C4Zdむかしハマったわ
0802794
2015/12/21(月) 19:11:41.46ID:NofUbt2g0803デフォルトの名無しさん
2015/12/22(火) 07:02:14.84ID:U2GagDf5Groovyの、List#subsequences のことだろ
1, 2, 3,
12, 13, 23,
123
0804デフォルトの名無しさん
2015/12/22(火) 14:46:06.62ID:6WVAXWi7n=2:
[], 123
1, 23
2, 13
3, 12
にしたいのだとおもう。
0805デフォルトの名無しさん
2015/12/22(火) 20:42:18.10ID:rNJ+nMzC$a = gets.to_i
def calc(other)
$a * other
end
puts calc(4)
puts calc(2)
要は標準入力から取り込んだ値を関数に使いたいのですが、これだとグローバル変数が汚染されるのでスマートでない気がします。
グローバル変数を汚染せずにする方法はありますでしょうか?
0806デフォルトの名無しさん
2015/12/22(火) 21:10:55.05ID:Ped0XTvJ0807デフォルトの名無しさん
2015/12/22(火) 21:55:51.78ID:rNJ+nMzC教えてもらえたら助かります!
0808デフォルトの名無しさん
2015/12/22(火) 22:00:09.31ID:lhPbrUmR0809デフォルトの名無しさん
2015/12/22(火) 23:20:43.77ID:G8TSJGI1これなら >>783 の方がいい。
でも関数型だと通常リストと再帰使うけど、
そうやって書いたのを ruby に翻訳すると、
>>780 が一番近い気がする。
0810uy ◆Qawu9.2l1E
2015/12/23(水) 00:15:22.98ID:dpAqe3cZc = -> a , b { a * b }.curry
c = c[2]
p c[4]
p c[8]
0811デフォルトの名無しさん
2015/12/23(水) 03:04:29.76ID:uB2nj2I/自由(グローバル)変数にせず、calc()内の束縛(ローカル)変数にする
クラス内のインスタンス変数か、クロージャ(ラムダ)内の変数とする
def calc(a)
lambda do |other|
return a * other
end
end
f = calc(3)
p f.call(5) #=> 15
p f.call(10) #=> 30
0812805
2015/12/23(水) 07:45:59.11ID:DqWY6q7Mありがとうございます!すっきり解決しました!
カリー化は初めて聞いた言葉だったのでググって勉強になりました。
いい休日が過ごせそうです。
0813デフォルトの名無しさん
2015/12/23(水) 20:35:16.07ID:KL0rgOa8発言内容的にLisp系の人かな?
好みと違うかも知らんが、こんなのどうかね
h = (0..100).group_by {|x| condition(i) ? :ary1 : condition(2) ? :ary2 : :ary3 }
ary1, ary2, ary3 = h.values_at(:ary1, :ary2, :ary3)
0814デフォルトの名無しさん
2015/12/23(水) 21:51:07.00ID:L95mHKNchttp://hissi.org/read.php/tech/20151223/UGp4VlNGMlU.html
http://hissi.org/read.php/tech/20151223/bGd3LzFLdkk.html
http://hissi.org/read.php/tech/20151223/dWhucmxRZG4.html
http://hissi.org/read.php/tech/20151223/ZHBBcWUzY1o.html
http://hissi.org/read.php/tech/20151223/Y0dyQzdxZWQ.html
http://hissi.org/read.php/tech/20151223/eE9Zd3lKSlM.html
http://hissi.org/read.php/tech/20151223/eTNMMnFtaEY.html
http://hissi.org/read.php/tech/20151223/aDJKTXlFZk8.html
http://hissi.org/read.php/tech/20151223/ZFV6WUFBZlg.html
http://hissi.org/read.php/tech/20151223/UDZmKysxZks.html
0815uy ◆Qawu9.2l1E
2015/12/24(木) 09:38:29.82ID:kjx2km/nこの程度の処理で:ary1,2,3とか余計なシンボル作るとか冗談みたいなコードですね^^;
0816799
2015/12/24(木) 14:01:02.23ID:srISd0Ns実行結果は>>804みたいになる処理を想定してました。
実際に必要だった処理では、配列aも分割数nも小さかったので再帰で済ませたけど、
重複要素がある大きな配列に試すと遅い。
配列の比較を最小限にする書き方はどんなかな、
とか途中配列に溜めないでEnumurableないかな、とか考えた上での質問です。
0817デフォルトの名無しさん
2015/12/24(木) 18:33:58.39ID:QFPP7Vz60818デフォルトの名無しさん
2015/12/24(木) 23:54:41.10ID:LKbtWIA8かっこいい。
>>815
0、1、2で事足りるとは言え、シンボル3つ如きで何を言っとる。
0819715
2015/12/25(金) 08:07:17.27ID:Us3+3faY基地外の相手するなよ。喜ぶから。
0820デフォルトの名無しさん
2015/12/26(土) 00:34:43.96ID:w+fIwRnj変数名のシンボルはどうせパーサが作るので、そのコードでシンボルが新たに増えることはないよ。。
0821デフォルトの名無しさん
2015/12/26(土) 07:30:22.15ID:KoYH9+bG数字でええがな
0822デフォルトの名無しさん
2015/12/26(土) 20:29:10.12ID:w+fIwRnj0823デフォルトの名無しさん
2015/12/26(土) 22:27:38.70ID:gbQMSnGAkey = -> x { condition(x) ? 1 : condition2(x) ? 2 : 3 }
ary1, ary2, ary3 = (0..100).group_by(&key).sort.map(&:last)
0824デフォルトの名無しさん
2015/12/26(土) 23:16:53.05ID:Mh3LsY+/0825デフォルトの名無しさん
2015/12/26(土) 23:58:32.70ID:gbQMSnGA0826デフォルトの名無しさん
2015/12/28(月) 15:55:33.71ID:SIjvxUna0,1,2 の役割は位置を示すものなので、マジックナンバーじゃないよ。
逆にシンボルにすればマジックナンバーでなくなる訳でもない。
0827デフォルトの名無しさん
2015/12/28(月) 17:51:00.87ID:iwZYneEFシンボルGC(笑)とか完全に当初の意味を失ってる
0828デフォルトの名無しさん
2015/12/28(月) 18:29:35.51ID:Y4DeX8w+0829デフォルトの名無しさん
2015/12/28(月) 21:38:14.27ID:BoIp6Qyu位置を即値で埋め込んだらそれはマジックナンバーだろう。やるなら定数を定義しないと。
しかしそれは大げさなので、シンボルを使うのがスマートな選択。
もちろん:ary0とかではマジックナンバーと変わらないが、
本番のコード当然意味のわかる名前を使うだろう。
0830uy ◆Qawu9.2l1E
2015/12/29(火) 03:10:19.65ID:KaKwDEtAdef condition n
rand(2) == 0
end
h = (0..100).group_by {|x| condition(0) ? :ary1 : condition(2) ? :ary2 : :ary3 }
ary1, ary2, ary3 = h.values_at(:ary1, :ary2, :ary3)
p Symbol.all_symbols.grep(/ary\d/)
# => [:ary1, :ary2, :ary3]
はいわろ
820 :デフォルトの名無しさん:2015/12/26(土) 00:34:43.96 ID:w+fIwRnj
>>818
変数名のシンボルはどうせパーサが作るので、そのコードでシンボルが新たに増えることはないよ。。
↑
w
0831uy ◆Qawu9.2l1E
2015/12/29(火) 03:11:55.99ID:KaKwDEtAo/⌒(. ;´∀`)つ >>820
と_)__つノ ☆ バンバン
p Symbol.all_symbols.grep(/ary\d/) ∧_∧
o/⌒(゜Д゜ )つ >>820
と_)__つノ
# => [:ary1, :ary2, :ary3]
∧_∧
o/⌒( ゚д゚ )つ >>820
と_)__つノ
0832デフォルトの名無しさん
2015/12/29(火) 15:15:20.73ID:HQID5Dbw引数のファイルを開いて、一行ずつ読んで
パターンマッチした文を表示させたいだけなのに
#coding: Windows-31J
filename = ARGV[0]
file = File.open(filename)
text = file.read
text.each_line do |line|
line.chomp!
line.scan(%r|http://aaa.bbb.com/content/[A-Za-z0-9_-]+.txt|) do |matched|
print matched
end
file.close
0833デフォルトの名無しさん
2015/12/29(火) 15:32:05.00ID:5o0CYWec処理
end
だけでいい。file.close は書かない
text.each_line do |line|
の次の行に、
p line
を付け足して、中身を見れば?
バグが起こったときは、もっとコードを少なくして、
正常に動く所まで戻ること
0834おありがとうございます・・・
2015/12/29(火) 15:35:25.36ID:HQID5Dbw/ ,'⌒ヽ\
〈 ,‐-⌒-、ノ,,, |. \
/, ミ、Vヽl〉| | |,,, |. \
'|\Nヘ「ヽ||_|__,|. \
|L.| | ヽ、
| | ,,,|, .l
. |_|_,|| .ノ
|::|::: :|_| ,ノ |
rrr´‐::: :j. L,,---‐‐'´ ノ
i´^^i´ ̄~  ̄ ̄ ̄~i‐⌒ヽ,
ヽ、__ヽ、______」-、__.⌒っ
 ̄
0835デフォルトの名無しさん
2015/12/29(火) 15:43:02.66ID:ITFPdK18p Symbol.all_symbols.grep(/ary\d/)
#=> [:ary1, :ary2, :ary3]
0836デフォルトの名無しさん
2015/12/29(火) 15:44:21.71ID:iCcGBsDnuy変数名のシンボルはどうせパーサが作るから実質増えないってのは合ってるだろうがuy
ary1 = 1
p Symbol.all_symbols.grep(/ary\d/)
# => [:ary1]
uy煽りたいならuy正確な内容で煽れやuy
0837デフォルトの名無しさん
2015/12/29(火) 15:45:40.09ID:HQID5Dbwend一つ忘れとんねヤンケ
こんな池沼先生の棲み家には二度と来ねーよ
ふふふ ごめんなさいネ
0838uy ◆Qawu9.2l1E
2015/12/29(火) 20:35:35.10ID:4RcqbWns0839デフォルトの名無しさん
2015/12/29(火) 21:09:29.08ID:2A8C+lrK0840デフォルトの名無しさん
2015/12/29(火) 21:44:35.74ID:PLgvp1Hq教科書的なコードが読みやすいのはわかったけど
現実はPerl以下だよね。
0841デフォルトの名無しさん
2015/12/30(水) 00:11:34.43ID:6Tvlbjyh読みやすいコードを書く人はどっちの言語で書いても読みやすいコードになるだけ
0842デフォルトの名無しさん
2016/01/01(金) 12:19:57.21ID:Z7e2NzBjputs乱発でエラーチェックするレベルを超えれるのですか?
0843デフォルトの名無しさん
2016/01/02(土) 03:31:28.07ID:cqMsfgi20844デフォルトの名無しさん
2016/01/02(土) 15:10:11.19ID:dDeNCcj50845デフォルトの名無しさん
2016/01/03(日) 03:46:38.02ID:ZCsbV3ROEncoding例外の嵐で片っ端から文字コードとencodingをチェックしてすりあわせないと動かなかった・・・orz
0846デフォルトの名無しさん
2016/01/03(日) 23:18:40.45ID:7E/Rwrfzみなさんはいかがでしたか?
0847デフォルトの名無しさん
2016/01/03(日) 23:19:32.87ID:7E/Rwrfz誤爆です。板汚しすみません。
0848デフォルトの名無しさん
2016/01/04(月) 02:02:37.22ID:TIJ9YlQ30849デフォルトの名無しさん
2016/01/04(月) 12:57:15.46ID:0MKfE4K1Hashのキーを、DBみたいに、数値の連結キー(x, y)にできる?
単純につなげると123となり、(12,3), (1,23)の区別がつかない
また、12-3のように文字列のキーにすると、
座標(12,3)に戻すのに、手間がかかる
>848
CP932には、丸で囲んだ数字などの環境依存文字があるけど、
UTF-8には、CP932に変換できない文字があるの?
0850uy ◆Qawu9.2l1E
2016/01/04(月) 18:19:08.27ID:zTvWipKl0851デフォルトの名無しさん
2016/01/04(月) 20:10:37.94ID:TIJ9YlQ3ハートマークとか
美しくない&簡単じゃないけどこんな感じになった
utf8 = "\u2665"
utf8.force_encoding("utf-8")
$> << "#{utf8} / #{utf8.encoding}\n"
begin
cp932 = utf8.encode("cp932")
rescue Encoding::UndefinedConversionError
utf8.sub!($!.error_char){"\\u#{$!.error_char.encode("utf-16be").unpack("H*").first}"}
retry
end
$> << "#{cp932} / #{cp932.encoding}\n"
utf8 = cp932.encode("utf-8").gsub(/\\u(.{4})/){[$1].pack("H*").encode("utf-8", "utf-16be")}
$> << "#{utf8} / #{utf8.encoding}\n"
0852デフォルトの名無しさん
2016/01/05(火) 02:11:00.87ID:jgjwtOas0853849
2016/01/05(火) 03:54:24.49ID:RHXILbsO自己レスですが、2次元のハッシュ(ハッシュのハッシュ)がありました
h = {}
h[3] = {}
h[3][10] = 'x'
h[3][5] = 'y'
{3=>{10=>"x", 5=>"y"}}
0854デフォルトの名無しさん
2016/01/05(火) 12:04:20.02ID:4ajyxAFr他にArrayをキーにしてしまう方法もあるよ
ただしキーに破壊的操作するとか変なことすると取り出せなくなったりする罠もあるけど
h = {}
h[[3,10]]='x'
h[[3,5]]='y'
h
=> {[3, 10]=>"x", [3, 5]=>"y"}
0855デフォルトの名無しさん
2016/01/06(水) 09:28:16.26ID:UtgyJeyz普通にARGVで読み出すとSJISに変換されて破壊されてしまいます
0856デフォルトの名無しさん
2016/01/06(水) 16:28:39.23ID:mQsQtNcKfi = Fiber.new do
Fiber.yield
fi = nil
end
上記みたいにブロック内でFiberオブジェクトへの参照をnilにした場合
GCが走っても安全なのか知っていたら教えて欲しい。
ちなみに目的はNilクラスに空のresumeを定義してalive?チェックを省くだけ。
0857デフォルトの名無しさん
2016/01/06(水) 19:37:54.23ID:yluT1kPNコマンドラインはUnicodeを受け取れる
-Ku
0858デフォルトの名無しさん
2016/01/06(水) 21:02:27.11ID:UtgyJeyzthx
それでもダメっぽいです。強制的に?へ変換されてしまいます
0859デフォルトの名無しさん
2016/01/06(水) 22:03:21.69ID:UtgyJeyz#!/usr/bin/ruby -E utf-8
# encoding: utf-8
require 'win32ole'
cl=nil
l=WIN32OLE.new("WbemScripting.SWbemLocator")
s=l.ConnectServer(nil, "root\\CIMV2")
c=s.ExecQuery("Select * From Win32_Process Where ProcessId=#{Process.pid}")
c.each{|i|
cl=i.CommandLine[/#{$0}\s(.+)$/, 1]
}
p cl
これでUnicodeな文字が入っていてもUTF-8で受け取れました。ARGVは-Ku(-Eも)を付けても
SJISに変換されてしまう模様。このコードでも-Kuや-E utf8を付けないと?に変換されちゃってダメです
無意味にeach呼び出しているのは避けたかったけどItem(0)と書いても例外吐いちゃうし
他の方法が見つからなかったです
0860デフォルトの名無しさん
2016/01/07(木) 15:31:45.37ID:XOpkkkUzruby -Ku hoge.rb とかやってもだめ?
0861デフォルトの名無しさん
2016/01/07(木) 15:57:24.75ID:Pe5rEwkwWin32API で lpCmdLine とか後から unicode 版のを取れなかったっけ
0862デフォルトの名無しさん
2016/01/07(木) 15:59:02.42ID:Pe5rEwkw0863855
2016/01/07(木) 21:56:26.72ID:R2oUu6Aethx。確かにそれでも取れそうですね。最近はWin32APIは非推奨でFiddleを使うらしい?
>type foo.rb
#!/usr/bin/ruby -E utf-8
# encoding: utf-8
require "fiddle/import"
module Kernel32
extend Fiddle::Importer
dlload "Kernel32.dll"
extern "char * GetCommandLineW()"
end
cl = Kernel32.GetCommandLineW()
p cl
>ruby foo.rb hogehoge
#<Fiddle::Pointer:0x******** ptr=0x******** size=0 free=0x000000>
なぜか0byteが返ってきます。GetCommandLineAやGetCommandLineでも同じでした
使い方が間違っているのだろうか?
0864855
2016/01/07(木) 22:43:50.84ID:Hmw0mFw8>type foo.rb
#!/usr/bin/ruby
# encoding: utf-8
require "fiddle/import"
module Kernel32
extend Fiddle::Importer
dlload "Kernel32.dll"
extern "wchar_t * GetCommandLineW()"
end
module MSVCRT
extend Fiddle::Importer
dlload "msvcrt.dll"
extern "int wcslen(wchar_t *)"
end
gclw=Kernel32.GetCommandLineW()
cl=gclw.to_str(MSVCRT.wcslen(gclw) * 2)
cl.force_encoding("utf-16le")
p cl
>ruby foo.rb aaaaあいう
"aaaa\u3042\u3044\u3046"
>>859より正攻法ですがコードは長いですね
0865uy ◆Qawu9.2l1E
2016/01/08(金) 07:10:42.30ID:MJgcrbur仕様上は安全だろうけど
その手のコードはバグを触りやすい
それひとつのコードではバグらなくても幾重にもネストしたり再帰したりすると突然何かが起こるのがruby
0866デフォルトの名無しさん
2016/01/08(金) 14:21:40.43ID:oo2zXXZhすごい無駄なことしてるコードに見える
0867デフォルトの名無しさん
2016/01/08(金) 19:06:23.33ID:6fogzGHc0868デフォルトの名無しさん
2016/01/09(土) 00:44:17.76ID:orvexjc20869デフォルトの名無しさん
2016/01/09(土) 05:15:12.68ID:0wrtgmvgTime.now.to_sの書式を強引に書き換えて読みやすくするのってどうやればいいですか
ローカルの小物ツールくらいしか書かないので影響範囲が大きくても問題無いです
0870デフォルトの名無しさん
2016/01/09(土) 07:55:24.34ID:Luk+Oam80871デフォルトの名無しさん
2016/01/09(土) 12:50:51.99ID:TeXBfoOhTimeのto_sをオーバーライドすれば良いんじゃね
0872デフォルトの名無しさん
2016/01/09(土) 16:11:01.78ID:/zf3lzOM子 → 親
子 → module → 親
0873デフォルトの名無しさん
2016/01/09(土) 21:39:34.37ID:/zf3lzOMメモリを節約したいので、
9, 9, 4, 1 bitのように、自由に定義したい
0874デフォルトの名無しさん
2016/01/09(土) 22:09:08.44ID:u9vfZt760875デフォルトの名無しさん
2016/01/09(土) 22:21:42.87ID:3OVUjhEXというか昔の8bitマイコンならともかく今時そこまで省メモリを求められる用途って何だろう
フラグが何百万個もあるのだろうか
0876デフォルトの名無しさん
2016/01/09(土) 22:42:20.98ID:lo5XvONCメモリって8MB, 16MBの世界だと思ってたのにいつの間にやら千倍だな…
0877873
2016/01/09(土) 22:53:44.40ID:/zf3lzOM置けない数字を、各マス目に持つのは、もったいない
これをbitにして、1〜5には0、6〜9には1とすると、たった9bit!
0878デフォルトの名無しさん
2016/01/09(土) 23:40:35.84ID:w2pqhm9C400万マスならわかるけど400マスやそこらならたかだかキロバイト単位のメモリ消費だろ、そんな節約になんの意味がある?
それでソースコードが読みにくくなったら百害あって一利なしだから普通に書いたら?
普通に書いたらメモリにのらないようなサイズのデータを扱うなら>>874の言うとおりRubyでやるなって話で
0879デフォルトの名無しさん
2016/01/10(日) 00:03:44.36ID:INJKYkHgPCなのにビット単位で操作しようとは思わないなw
あと今時のプロセッサのアクセス単位は64bit?だからそれから外れると
遅くなりそうだよね
0880デフォルトの名無しさん
2016/01/10(日) 00:08:23.53ID:6OwkKsimputs 4.downto(0).map { |n| a[n]; p a[n]}.join
0
0
0
1
0
00010
なんじゃこれ。
整数[ ]で、その位置のビットを取れるの?
0881デフォルトの名無しさん
2016/01/10(日) 00:32:34.38ID:WGiWSmcBhttp://docs.ruby-lang.org/ja/2.1.0/class/Fixnum.html#I_--5B--5D
0882デフォルトの名無しさん
2016/01/10(日) 12:52:15.06ID:UyzGSaeg0883デフォルトの名無しさん
2016/01/10(日) 13:05:11.69ID:UyzGSaeg0884デフォルトの名無しさん
2016/01/12(火) 06:24:52.98ID:iDDwmGx/p sprintf("%#x", 1 << 32)
0b100000000000000000000000000000000
0x100000000
sprintfは、桁区切りできないようだが、
これを、_ で4桁区切りにするには、どうするの?
0885デフォルトの名無しさん
2016/01/12(火) 12:58:44.50ID:AcUi9Sgdhttp://takaaki024.blog.jp/archives/51133994.html
https://uky0426.wordpress.com/2011/11/21/%E6%95%B0%E5%80%A4%E3%82%923%E6%A1%81%E5%8C%BA%E5%88%87%E3%82%8A%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/
http://d.hatena.ne.jp/rubikitch/20081016/1224165602
http://d.hatena.ne.jp/zariganitosh/20070327/1174983865
http://docs.ruby-lang.org/ja/2.0.0/doc/print_format.html
0886デフォルトの名無しさん
2016/01/12(火) 21:35:22.40ID:ZwH6qafS0887デフォルトの名無しさん
2016/01/12(火) 22:55:12.06ID:HYDzXRco0888デフォルトの名無しさん
2016/01/12(火) 23:03:38.00ID:ZwH6qafS0889884
2016/01/13(水) 18:47:51.83ID:HEyl8rAGnum = 987_654_321
p num.to_s.gsub(/(?<=\d)(?=(?:\d{3})+(?!\d))/, '_')
num = 987_654_321.987_654_321
p num.to_s.gsub(/(?<=\d)(?=(?:\d{3})+(?!\d))/, '_')
結果は、987_654_321
987_654_321.9_876_543
(?:pat) という記法を使うと、
キャプチャせずにグループ化できて、性能が多少改善する
直後に、patがある
(?=pat) 肯定先読み(positive lookahead)
(?!pat) 否定先読み(negative lookahead)
直前に、patがある
(?<=pat) 肯定後読み(positive lookbehind)
(?<!pat) 否定後読み(negative lookbehind)
(?<=\d)(?=(?:\d{3})+(?!\d))の解説。
直前に数字、(?<=\d)
直後に、(?=(?:\d{3})+(?!\d)
(\d{3})+ 数字3桁が1回以上、(?!\d) 数字以外
0890デフォルトの名無しさん
2016/01/16(土) 05:30:39.07ID:UI4Hs62yinclude Fiddle
$dlls = Hash.new
def reg(dll, ret, func, args)
$dlls[dll] ||= Handle.new(dll)
eval(<<EOS
def #{func}(*args)
Function.new(
$dlls["#{dll}"].sym("#{func}"),
#{args},
#{ret},
abi=Function::STDCALL
).call(*args)
end
EOS
)
end
reg("User32.dll", TYPE_INT, "MessageBoxW", [-TYPE_INT, TYPE_VOIDP, TYPE_VOIDP, -TYPE_INT]) #←簡単に定義を追加出来るようにしたい
MessageBoxW(0, "テキスト".encode("utf-16le"), "タイトル".encode("utf-16le"), 0)
DLLの関数をトップの名前空間?のメソッドとして定義したいのですがもっとスマートな方法はないでしょうか?
グローバル変数を使っているところとかevalを回しているところとかもうちょっと何とか出来ないかなと・・・
0891デフォルトの名無しさん
2016/01/18(月) 15:16:04.29ID:hrpSj5fVh = {}
p h[:A]
h[:A][:B][:C][:D] = 1
p h
>ruby sample.rb
nil
sample.rb:2:in `<main>': undefined method `[]=' for nil:NilClass (NoMethodError)
となってしまいますが
nil ←[]はnilを返す
{:A=>{:B=>{:C={:D=>1}}}} ←[]=は必要なだけHashを作ってキーと値を格納する
みたいな動作って出来ないでしょうか?
0892デフォルトの名無しさん
2016/01/18(月) 15:45:40.17ID:HWtNcFE40893デフォルトの名無しさん
2016/01/18(月) 17:16:40.65ID:w2phWYX5:C までは [] が呼ばれるから無理よ。
2.3 で追加された dig の setter 版を作るのが無難だと思う。
0894891
2016/01/18(月) 20:04:41.16ID:hrpSj5fVdigのセッターを作ってみようとしましたが、ひょっとして
h.dig(:A, :B, :C) = 11みたいに使えるメソッドは定義出来ない・・・?
0895デフォルトの名無しさん
2016/01/19(火) 04:40:42.25ID:AE6RCJmbstr = File.read('File1').gsub(/^=begin.*?^=end/m, '')
print str.gsub!(/^#.*$/, '').gsub!(/^\r\n|^\n|^\r/, '')
=begin, =end のコメントを削除して、
行頭の# コメントを削除して、空行を削除するのだが、
gsub, gsub! ともに、置換するものが無いときに、
nil が返ってきてエラーになってしまう
エラー処理をどう書けばいい?
0896895
2016/01/19(火) 06:19:57.11ID:AE6RCJmbttps://paiza.io のバグかな? 謎だ。
命令文を分割すると、エラーが起きない
# .*? の、? は最短マッチ
str = File.read('File1').gsub(/^=begin.*?^=end/m, '')
# print str.gsub!(/^#.*$/, '').gsub!(/^\r\n|^\n|^\r/, '')
str.gsub!(/^#.*$/, '')
str.gsub!(/^\r\n|^\n|^\r/, '')
0897デフォルトの名無しさん
2016/01/19(火) 08:55:59.59ID:sF3aJ+PjSignature: gsub!(*arg1)
Number of lines: 3
Performs the substitutions of String#gsub in place, returning
str, or nil if no substitutions were performed.
If no block and no replacement is given, an enumerator is returned instead.
0898デフォルトの名無しさん
2016/01/19(火) 13:23:33.42ID:TwxtwyWddeep_merge でよくね?
0899デフォルトの名無しさん
2016/01/19(火) 19:05:06.45ID:pToVStIWそういう問題ではなくね?そもそもそのメソッドは標準で付いていないだろ
0900デフォルトの名無しさん
2016/01/19(火) 20:14:52.72ID:zywzlcNl却下されてる
http://stackoverflow.com/questions/34620469/safely-assign-value-to-nested-hash-using-hashdig-or-lonely-operator
https://bugs.ruby-lang.org/issues/11747
> It's not clear to generate either Hash, Array, or Struct (or whatever) to bury a value.
> So it's better to reject now.
> Matz.
0901891
2016/01/19(火) 23:11:13.15ID:eQspgBAxこれでことあるごとに||= Hash.newを書かなくて済むかなl
0902895
2016/01/19(火) 23:36:01.74ID:AE6RCJmbprint str.gsub!(/^#.*$/, '').gsub!(/^\r\n|^\n|^\r/, '')
一つも置換されなかった時は、nilが返るので、
どういうようにエラー処理を書けばいい?
0903デフォルトの名無しさん
2016/01/20(水) 00:01:24.98ID:I0mr8dGxRefinement とか使ってるの?
自分のコードや使ってるライブラリが盛大にぶっ壊れても知らんぞ。
0904デフォルトの名無しさん
2016/01/20(水) 00:31:30.51ID:A6cPD9Df0905デフォルトの名無しさん
2016/01/20(水) 00:37:07.04ID:CKeFiLXY後学のためにどのように盛大にぶっ壊れるのか具体例をplz
Hashは何でも受け付けるしリファレンスマニュアルどおりの動作をさせた上で
拡張するなら問題はないように思うけど。>>901も「も」って書いているしな
0906デフォルトの名無しさん
2016/01/20(水) 01:43:49.37ID:wyzbWincstr.gsub!(/^#.*$/, ‘’)&.gsub!(/^¥r¥n|^¥n|^¥r/, '')
2.3な
0907895
2016/01/20(水) 02:38:49.25ID:7T123+WAstr = File.read('File1').gsub(/^=begin.*?^=end/m, '')
p str
str.gsub!(/^#.*$/, '')
p str
str.gsub!(/^\r\n|^\n|^\r/, '')
p str
これを、ttps://paiza.io で実行すると、
たとえ、File1が空ファイルで、
全く置換されなくても、エラーにならない。
strには、nilではなく、空文字列が返る
でも、メソッドチェーンにすると、実行時エラーになる。
わけわからんw Rubyは深い、深すぎるw
str.gsub!(/^#.*$/, '').gsub!(/^\r\n|^\n|^\r/, '')
undefined method `gsub!' for nil:NilClass (NoMethodError)
0908デフォルトの名無しさん
2016/01/20(水) 02:58:46.62ID:yPrd8nI2nilが返ってくるかもしれんものをメソッドチェーンで呼び出す方がどうかしてる
0909895
2016/01/20(水) 03:10:13.62ID:7T123+WA単独の命令文に分割すると、nilが返ってこない
全く置換されなくても、そのまま置換前の文字列が返ってくる。
わけわからん
0910デフォルトの名無しさん
2016/01/20(水) 08:43:57.58ID:UTsS/Gixわけわからん
0911デフォルトの名無しさん
2016/01/20(水) 11:15:06.34ID:WIh3ROx7p str
str.gsub!(/^\r\n|^\n|^\r/, '')
p str
ここら辺を
p str.gsub!(/^#.*$/, '')
p str.gsub!(/^\r\n|^\n|^\r/, '')
こう書いてみたらわかるんじゃない?
0912デフォルトの名無しさん
2016/01/20(水) 14:09:06.15ID:oewfRt8iメソッドの戻り値がnilでもstrがnilになるわけじゃないんだよ
0913デフォルトの名無しさん
2016/01/21(木) 00:51:31.76ID:Ybl3jyTFgsub!の戻り値が変換後のstrだと期待してるからおかしなことになるんだよね
君が期待してることを達成するメソッドはgsub!じゃなくてgsubだと気づけばすべて解決
0914デフォルトの名無しさん
2016/01/21(木) 01:01:05.51ID:L852Reef上級者ならみんなやってるよって感じですか
Rubyによる関数型プログラミング
http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html
0915895
2016/01/21(木) 01:06:53.17ID:f4TiidQNそれとは別に、戻り値があったのか
うわっはははは。意外な盲点じゃったわいw
でも、別に戻り値は見ないな
gsubよりも、使うメモリが少なそうな、gsub! を使いますわ
0916デフォルトの名無しさん
2016/01/21(木) 01:10:15.75ID:Ro+JnAfr>>897で既出なんですが
0917デフォルトの名無しさん
2016/01/21(木) 01:16:03.41ID:Ybl3jyTF> 関数型プログラミングへの際立った潜在能力があるのだから、 それらを
> いつどのように使うか(そして、いつ使わないか)を知っておくべきである。
この括弧内を意識できるなら、まぁいいんじゃない?って感じ
でもそこまで意識できるようになるには、関数型プログラミングにある程度親しんでおく必要はありそうだ
0919デフォルトの名無しさん
2016/01/21(木) 09:14:52.65ID:bLZ10bT+Rubyはオブジェクト指向原理主義だから、関数型のレコードやリストのような、
オブジェクトを振る舞いを持たない単なる値として扱うというのは好まれない
変数やフィールドを再代入不可にできなかったりブロックが式じゃなかったり、関数型に向いてるとも言いづらい
0920デフォルトの名無しさん
2016/01/21(木) 12:20:16.08ID:0eFee794再帰やブロックでより宣言的に書くとか、破壊的メソッドの呼び出しに注意する(特にメソッドの引数として受け取ったオブジェクトに破壊的メソッドを適用する場合)とか
作法ってほどルール化されてないけど、有益な考え方は多い
0921デフォルトの名無しさん
2016/01/21(木) 17:31:41.01ID:bdQYAVtqCommon Lispの(funcall f a)の形も嫌
Standard MLやOCamlやSchemeの(f a)の形が好き
0922デフォルトの名無しさん
2016/01/21(木) 21:24:57.28ID:OmENn3Ct俺らは使って便利なものを作りたいだけなんだから
そんな些細な違いは方言程度にしか思ってない。
0923デフォルトの名無しさん
2016/01/21(木) 21:25:27.19ID:OmENn3Ct0924デフォルトの名無しさん
2016/01/21(木) 21:45:44.24ID:avOtfex30925デフォルトの名無しさん
2016/01/21(木) 21:48:39.18ID:jSpegSOL0926デフォルトの名無しさん
2016/01/22(金) 07:33:53.39ID:5jqeGNRb積極的にオブジェクトを増やす実装は推奨されないのでは
0927914
2016/01/22(金) 08:15:55.47ID:1VitLDg8いくつかの書き方は参考になりましたが
やはり状態変更は悪などと極端に走らず
Rubyとして効率的なコードを書くように心がけるのが良さそうですね
0928デフォルトの名無しさん
2016/01/22(金) 08:16:18.29ID:Q7uzg+r2どうせIOがボトルネックのケースか処理時間が重要でないケースにしか使えないんだから
0929uy ◆Qawu9.2l1E
2016/01/24(日) 18:31:01.95ID:JCW4ssXH0930デフォルトの名無しさん
2016/01/26(火) 13:14:16.28ID:mkuLwhRZ> ERROR: Ruby install aborted due to missing extensions
> Try running `yum install -y readline-devel` to fetch missing dependencies.
ってでたのでredline-develをインストールしたら2.1.2をインストールできました。
・・・なんて話を「rbenv で Ruby2.1.2 がインストールできなかった話」というタイトルで
Qiitaとかに投稿するな!!!
わざわざクリックして最後まで読ませやがって。
0931デフォルトの名無しさん
2016/01/26(火) 21:27:41.67ID:E7aOa7R/他人が発信した情報あてにしないと問題解決もできない奴が
他人の記事に文句言うな
0932デフォルトの名無しさん
2016/01/26(火) 22:49:53.25ID:GXD8VpF6残念ながら
0933デフォルトの名無しさん
2016/01/26(火) 23:14:12.67ID:vn2Q4vZq0934デフォルトの名無しさん
2016/01/26(火) 23:39:15.00ID:WceGgIjm0935デフォルトの名無しさん
2016/01/27(水) 00:20:56.00ID:/TmOpm0o0936デフォルトの名無しさん
2016/01/27(水) 12:54:52.64ID:E7OQZ8ca「rbenvで2.1.2をインストールしようとしたら、readline_develが無いと怒られた」
というタイトルだったら、まだギリ許せた。
0937デフォルトの名無しさん
2016/01/27(水) 19:53:10.87ID:oO7fm3iA必須だと思うけどなー
んなことぐらいでキレてたらやってられんと思うんだが
0938デフォルトの名無しさん
2016/01/27(水) 21:20:24.05ID:/TmOpm0oふさわしくないなと思ったから2chに思いのたけをぶつけたのだと思う。
エンジニアとして適切な行為だと思う。
0939デフォルトの名無しさん
2016/01/27(水) 21:29:22.19ID:oO7fm3iA0940デフォルトの名無しさん
2016/01/27(水) 21:45:43.39ID:iQ3nwyf10941デフォルトの名無しさん
2016/01/27(水) 22:02:26.17ID:NkEGFK8F0942デフォルトの名無しさん
2016/01/28(木) 11:32:12.64ID:Tq1/h+gyQiitaとかStack Overflowとかは、投稿数に応じてなんらかのステータスが上がる仕組みになってたり、
投稿数を増やそうと誘導する仕組みになってたりするから、ゴミ記事が増えるのは仕方がないよ。
NG機能があればいいんだけどね。
0943デフォルトの名無しさん
2016/01/28(木) 23:35:47.79ID:pLiNNOp7情報が多い分には別に構わんでしょ
それが役に立つかどうかは読む人によって変わるんだから
「俺にとって役に立たないからクソ記事だ」とか叫ぶ方が異常なだけなんだよ
0944デフォルトの名無しさん
2016/01/29(金) 00:01:28.76ID:tOtoATn60945デフォルトの名無しさん
2016/01/29(金) 02:13:31.48ID:E1SYsv9d読んでみないと役に立たないかわからないような紛らわしい情報ならなおさら
一つや二つの記事でそれを言い出すのはどうかと思うが、これを否定するのは無理がある
0946デフォルトの名無しさん
2016/01/29(金) 04:26:08.86ID:w5vE0Dwg>>931
0947デフォルトの名無しさん
2016/01/29(金) 10:33:25.59ID:E1SYsv9dお前のために公開した情報じゃないんだから、その情報のせいでお前が困っても関係ないってこと?
0948デフォルトの名無しさん
2016/01/29(金) 10:43:53.47ID:ocau8PiP0949デフォルトの名無しさん
2016/01/29(金) 10:48:19.05ID:+dgjzxQ2>>943の通りでしょ。
ある情報があなたには有益ではなくても他の人には有益な可能性もあるのに、
自分の役に立たない情報は世の中にも不要な情報と決めつけているだけ。
0950デフォルトの名無しさん
2016/01/29(金) 11:40:54.56ID:ciUqMjIcループが上手でこの職に向いてるのか。
もう一度言うが元レス書いた人は
2手先を読んで「2ch.net」に書いたのであればなんの問題もないじゃん。
ここは2ちゃんねるというゴーストタウン。
スマホで見たらエロ漫画の広告しかないよ。
こんな辺鄙とこでも炭鉱があったころはにぎわってたらしいけどな。
0951デフォルトの名無しさん
2016/01/29(金) 11:56:30.78ID:qELvr9Oj>
> ってでたのでredline-develをインストールしたら2.1.2をインストールできました。
という内容をありがたがる奴なんているんだ
それは盲点だったわ
0952デフォルトの名無しさん
2016/01/29(金) 12:38:04.83ID:6UZRSAowそんなんあたりまえやろ、自分で試せばいいちゃん
って思うような記事が伸びるのはみんな経験すること。
むしろ盲点しかない。
0953デフォルトの名無しさん
2016/01/29(金) 12:59:38.44ID:PBp+3Ff30954デフォルトの名無しさん
2016/01/29(金) 13:27:44.62ID:qELvr9Oj別にその記事伸びてないし
Qiitaでは、普通に良記事が伸びる
0955デフォルトの名無しさん
2016/01/29(金) 13:44:03.67ID:6UZRSAowじゃあなおさらなんのもんだいもない
0956デフォルトの名無しさん
2016/01/29(金) 14:09:13.02ID:qELvr9Ojいやだから「rbenv で Ruby2.1.2 がインストールできなかった話」というタイトルに釣られて
クリックして、最後まで読んでやっとクソ記事だったとわかった俺の時間が無駄になった
(同様の奴けっこういるかもよ)
0957デフォルトの名無しさん
2016/01/29(金) 14:11:37.00ID:qELvr9Ojだけを書いた「○○をインストールしてみた系」の記事も、いいかげんにして欲しい
(Qiitaに限らず)
0958デフォルトの名無しさん
2016/01/29(金) 14:14:26.20ID:rwMtqIQl健全なネット環境のための法案を作って
ノイズをうpした連中とその家族を焼き払ってほしい
youtubeとか検索してでてくる「歌ってみた」「カバー」
とかもう半笑いで殺意湧く
0959デフォルトの名無しさん
2016/01/29(金) 14:23:06.69ID:+dgjzxQ2俺の時間がムダになったとかwww
0960デフォルトの名無しさん
2016/01/29(金) 14:27:21.35ID:qELvr9Ojとか言い出す奴がいなければ、グダグダしょうもない書き込みはしなかったけどね
マジで驚いた
0961デフォルトの名無しさん
2016/01/29(金) 14:44:27.71ID:6UZRSAowが罪に問われる法律なら結構前に施行されてる
0962デフォルトの名無しさん
2016/01/29(金) 16:03:05.42ID:koUnNQGJ>
> とか言い出す奴がいなければ、グダグダしょうもない書き込みはしなかったけどね
意味不明な行動原理ワロ
0963デフォルトの名無しさん
2016/01/29(金) 17:40:13.82ID:vhRbN74rお前が見たい奴こそがYoutubeにとってノイズだよ
0964デフォルトの名無しさん
2016/01/29(金) 18:02:18.10ID:E1SYsv9d誰か誰にとっても有害だって前提で話をしてるか?
そんなもの世の中のありとあらゆる有害なものを調べてもほとんどないだろうよ
世の中にとって有害だって話もそんなことはないと言ってる人しか言及してないように思うよ
「誰が」とか「誰にとって」の部分が省略されてるときに何でもかんでも「世の中の人すべて」をあてはめて読んじゃだめだよ
0965デフォルトの名無しさん
2016/01/29(金) 18:16:21.31ID:w5vE0Dwg勘違いすると俺様思考になるんだって例
気に入らなきゃ見なけりゃいいだけじゃん
0966デフォルトの名無しさん
2016/01/29(金) 20:56:20.22ID:E1SYsv9dここまで頓珍漢なこと良く言えるわ
0967デフォルトの名無しさん
2016/01/29(金) 21:13:47.97ID:sTsCbzbH0968デフォルトの名無しさん
2016/01/29(金) 21:15:15.33ID:4RN5yrs8別にお前が困ったところで切り捨てればいいだけの話だよね
「こんな記事のせいで俺様の時間が無駄になった」というなら斜め読み能力のなさが原因なだけ
ネットの情報が玉石混交なのは当たり前の話なんだから、それぐらい織り込んどけ
0969デフォルトの名無しさん
2016/01/29(金) 22:48:15.52ID:E1SYsv9dそんな当たり前のことをいちいち愚痴っても仕方がないというのもいいが
そんな理由でいちいち愚痴に突っかかってこられたらたまったもんじゃないだろうね
0970デフォルトの名無しさん
2016/01/29(金) 22:59:00.31ID:4RN5yrs8どうもネットリテラシーに欠けるきらいがあるねえ
0971デフォルトの名無しさん
2016/01/29(金) 23:01:57.82ID:ocau8PiPそんな叩かれたくないならチラシの裏にでも書くに留めておけばいいのに
0972デフォルトの名無しさん
2016/01/29(金) 23:37:02.09ID:o83v3zl00973デフォルトの名無しさん
2016/01/30(土) 01:23:45.76ID:tN64rwpC叩くこと自体が趣味の性格が悪い人たちなのかな?
0974デフォルトの名無しさん
2016/01/30(土) 09:41:10.38ID:uXFVRCYkID:E1SYsv9d だろお前
いい加減しつこいぞ
0975デフォルトの名無しさん
2016/01/30(土) 12:51:22.28ID:/T0e1x1G0976デフォルトの名無しさん
2016/01/30(土) 18:28:49.50ID:FojFAs7dなぜ忘れてしまうのか
0977デフォルトの名無しさん
2016/01/30(土) 21:45:32.06ID:QMlo5tQLそんなにインクリメントを書く機会ってあるのか
0978デフォルトの名無しさん
2016/01/30(土) 21:49:31.70ID:NWwyNWcX0979デフォルトの名無しさん
2016/01/31(日) 13:52:09.13ID:XXEMiKnQfor拡張なりsemaphore的なものなりでインクリメントデクリメントを使わなきゃいけない場面もかなり減ったし
インクリメントデクリメントは登場回数の割にバグを産みやすすぎる
0980デフォルトの名無しさん
2016/01/31(日) 14:28:47.18ID:Q+LCs9MUn=0; f=filesize; while(f/1024.0>=1){ f/=1024.0; n++; } return [f, " KMG"[n]]
再帰や対数でも書けるだろうけどさすがにちょっと
ruby ならあるだろうという謎の信頼感
ところでループ内で最後の要素だけ別の処理するみたいな場合にスマートな書き方ある?
0981デフォルトの名無しさん
2016/01/31(日) 15:13:59.27ID:IomQZ6/Bn += 1で凌いでるけどいい書き方あるの?
0982sage
2016/01/31(日) 17:39:08.12ID:cEIhLW7n0983sage
2016/01/31(日) 17:41:00.39ID:cEIhLW7n" KMG#".each_char {|kmg|
return f, kmg if f < 1024.0 || kmg == '#'
f /= 1024.0
}
0984sage
2016/01/31(日) 17:44:27.63ID:cEIhLW7n0985デフォルトの名無しさん
2016/01/31(日) 19:20:47.09ID:iwDB+Nosf = 100000
%w(B KB MB GB).map.with_index{|u,i|[f/1024**i,u]}.reverse.find{|n,u|n>=1}
=> [97, "KB"]
最後だけ別ってのも直接そういうやり方は知らないなあ
a[0..-2].処理
a[-1].処理
って分けるくらいか
0986デフォルトの名無しさん
2016/01/31(日) 19:41:35.09ID:oGNCocg80987デフォルトの名無しさん
2016/01/31(日) 22:13:03.97ID:DPmT4LpPvalue < unit || prefixes.size <= 1 ? [value, prefixes.first] : vp(value / unit, unit, prefixes.drop(1))
end
p vp(1023, 1024.0, %w(B KB MB GB))
p vp(1024 ** 1, 1024.0, %w(B KB MB GB))
p vp(1024 ** 2, 1024.0, %w(B KB MB GB))
p vp(1024 ** 3, 1024.0, %w(B KB MB GB))
p vp(1024 ** 4, 1024.0, %w(B KB MB GB))
↓
[1023, "B"]
[1.0, "KB"]
[1.0, "MB"]
[1.0, "GB"]
[1024.0, "GB"]
0988デフォルトの名無しさん
2016/02/01(月) 21:06:53.32ID:LsZlPhNIありがと
0989デフォルトの名無しさん
2016/02/01(月) 21:55:23.68ID:d5xPHHkz0990sage
2016/02/01(月) 22:42:16.05ID:0IqKHljvscale =
0991sage
2016/02/01(月) 22:44:12.56ID:0IqKHljvn = [[Math.log( val.abs, 1024 ), scale.size-1].min, 0].max.to_i
return val/1024.0**n, scale[n]
# 0や負でもいける
なんでうまくい書けないんだろう?
0992デフォルトの名無しさん
2016/02/01(月) 22:58:58.20ID:FfN537Ew0993デフォルトの名無しさん
2016/02/01(月) 23:02:48.11ID:0uPvYgHaダブルクォーテーションが入ってるとなぜかそこでレスが途切れることがある
ただし、そのあとなぜかレス投稿に成功したりするからイラつく
レス数が950を超えています。1000を超えると書き込みができなくなります。