Ruby 初心者スレッド Part 21
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/08/06(水) 01:07:21【Ruby1.9 は不安定な開発版であり初心者には全く向きません】
【最新安定版の Ruby1.8.7 の使用をお勧めします】
※1.8.7 は1.8 と 1.9 の橋渡しをするためのリリースです。
1.9 の新機能の一部が利用可能なので初学者にお勧めです。
※ただし十分安定しているとは言えないので
プロダクション環境での利用にはお勧めしません。
関連スレやURLは>>2-8あたりを見てください。Ruby on Railsの質問はRailsスレへ。
■質問する人へ
質問する前に次の3つをすること。ここで回答を待つよりそのほうが早い。
・モジュール名やエラーメッセージでググる
・マニュアルで引っかかったクラスの記述を探す http://www.ruby-lang.org/ja/man/
・FAQを一応読む http://www.ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
質問には以下を書くこと。へたくそな質問は再提出を要求される。
・詳しい内容(「動きません」「うまくできません」では回答しようがない)
・エラーメッセージ(自力で訳さずなるべくそのままで)
・実行環境(OS名、Rubyのバージョン(ruby -v でわかる))
・最終的にやりたいこと(もっとよい方法がある場合が多いので)
回答してくれた人には「ありがとう」のひとことをいってあげて。
■回答する人へ
相手は初心者、根気よく育てるつもりで。質問がへたくそなのも大目にみてあげる。
それができないならこないこと(だって初心者スレだもん)。
・既出な質問やFAQは「XXXを読め」でいいので、叩かない&怖がらせない。
・わけわかな質問にもエスパー発揮で。できれば質問の仕方を教えるぐらいで。
・自信がない回答ならその旨表明すること。誤った回答は初心者じゃ見抜けない。
0002デフォルトの名無しさん
2008/08/06(水) 01:09:14Q:
いちからRubyを始める初心者向けのRuby入門書は何がおすすめでしょうか?
A:
プログラム作成の初心者だったら
「たのしいRuby 第2版 Rubyではじめる気軽なプログラミング」
http://www.amazon.co.jp/dp/4797336617/
他の言語経験があるんだったら
「プログラミングRuby 第2版 言語編」
http://www.amazon.co.jp/dp/4274066428/
「初めてのRuby」
http://www.amazon.co.jp/dp/4873113679
0003デフォルトの名無しさん
2008/08/06(水) 01:10:11Ruby 初心者スレッド Part 20
http://pc11.2ch.net/test/read.cgi/tech/1214498119/
■関連スレ
Rubyについて Part 32
http://pc11.2ch.net/test/read.cgi/tech/1215531152/
Rubyの宿題教えてください。2限目
http://pc11.2ch.net/test/read.cgi/tech/1200175247/
RubyCocoa 初心者質問【Leopardバンドル記念】
http://pc11.2ch.net/test/read.cgi/mac/1193373811/
【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc11.2ch.net/test/read.cgi/tech/1155031689/
Ruby on Rails のスレ が
http://pc11.2ch.net/test/read.cgi/php/1207425569/
【Ruby】Rails以外のRubyフレームワーク【alt】
http://pc11.2ch.net/test/read.cgi/php/1216535005/
【Rails】便利なRubyGemsを共有するスレ【Hpricot】
http://pc11.2ch.net/test/read.cgi/tech/1216829388/
Rubyについて(アンチ専用) Part003
http://pc11.2ch.net/test/read.cgi/tech/1207233348/
0004デフォルトの名無しさん
2008/08/06(水) 01:10:46Ruby Home Page
http://www.ruby-lang.org/ja/
Rubyリファレンス(よくサーバーエラーになります)
http://www.ruby-lang.org/ja/man/
http://www.ruby-doc.org/ (英語)
リファレンスのHTMLヘルプ版配布
http://elbereth-hp.hp.infoseek.co.jp/ruby.html
# Windowsで便利
Ruby FAQ
http://ruby-lang.org/ja/man/?cmd=view;name=Ruby+FAQ
Programming Ruby - The Pragmatic Programmer's Guide
http://www.ruby-doc.org/docs/ProgrammingRuby/
# 好評書籍をWebで公開中、ただし英語
逆引きRuby
http://www.namaraii.com/rubytips/
0005デフォルトの名無しさん
2008/08/06(水) 01:11:20http://raa.ruby-lang.org/
RubyForge
http://www.rubyforge.org/
# Rubyのアプリやライブラリが検索できる
GitHub RubyGems
http://gems.github.com/
http://github.com/
# 最近は RubyForge より GitHub が人気
日本Rubyの会 公式Wiki
http://jp.rubyist.net/
# メニューに表示されていない埋もれた情報ページ多数
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
# コードレビューが好評
Ruby hotlinks 五月雨版(日記やblogのアンテナ)
http://www.rubyist.net/~kazu/samidare/
Rubyの本一覧
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Ruby%A4%CB%B4%D8%A4%B9%A4%EB%BD%F1%C0%D2
<rubyXML/>
http://www.rubyxml.com/
Matzにっき(Ruby作者の日記)
http://www.rubyist.net/~matz/
0006デフォルトの名無しさん
2008/08/06(水) 01:12:00Ruby 初心者スレッド Hiki
http://starlet.s145.xrea.com/ruby/hiki/
Ruby Portal
http://ruby.morphball.net/portal/
■プレゼンテーション
Ruby会議2008
http://jp.rubyist.net/RubyKaigi2008/
http://www.nicovideo.jp/tag/rubykaigi2008
Ruby会議2007
http://jp.rubyist.net/RubyKaigi2007/
http://www.nicovideo.jp/tag/RubyKaigi2007
日本 Ruby カンファレンス 2006
http://jp.rubyist.net/RubyKaigi2006/
http://jp.rubyist.net/RubyKaigi2006/videos.html
0007デフォルトの名無しさん
2008/08/06(水) 01:45:540008デフォルトの名無しさん
2008/08/06(水) 01:48:45http://pc11.2ch.net/test/read.cgi/tech/1158807229/
アラン・ケイも認めた!Ruby>>>>>Smalltalk
http://pc11.2ch.net/test/read.cgi/tech/1150106090/
Ruby最高や!
http://pc11.2ch.net/test/read.cgi/tech/1170047838/
【Perl,PHP】LLバトルロワイヤル3【Ruby,Python】
http://pc11.2ch.net/test/read.cgi/tech/1215319832/
0009デフォルトの名無しさん
2008/08/06(水) 06:04:20http://www.j-tokkyo.com/2004/G06F/JP2004-341819.shtml
おれ、この手の切り替え上記特許とほぼか全く同じ方法で10年以上もまえから
ずっとつかってきてるんだけど、特許違反なんのかな。。。
つーか、この程度のアイデアで特許になるってどうかしてんじゃないの??
今やってるRoRプロジェクトでも3ヶ国語対応でつかってんだが。。。
0010デフォルトの名無しさん
2008/08/06(水) 06:31:07それが公知のものであることを証明できれば特許は認められなくなるはず。
ていうか、日本語と思えなくて読む気にならんのだが、これはgettextとは一線
を画すようなものなのか?
0011デフォルトの名無しさん
2008/08/06(水) 06:58:53今やってるPJ、工場のロボット制御なんだが、
物理層(ロボットとか)-シーケンサ-C/C++層-RoR層(インターフェース、DB) ユーザー
なんだが、海外にも出荷してるから、多言語化の部分全部DBのテーブルにいれてるんだよね
0012デフォルトの名無しさん
2008/08/06(水) 17:02:30http://pc11.2ch.net/test/read.cgi/php/1217883614/
0013デフォルトの名無しさん
2008/08/06(水) 22:05:03リスクありそうだから、全部yamlで切り替えするということでおわった。。。
でもファイルにするのやなんだよな。
というか今までリリースしてきたアプリはどうなるんじゃ。
0014デフォルトの名無しさん
2008/08/07(木) 05:11:46こんなの、そこら中のWebアプリで使われてないか?
0015デフォルトの名無しさん
2008/08/07(木) 15:06:50ぶっちゃけた話 gem の WWW::Mechanize を使ってます。
・ Mechanizeオブジェクトがクッキー覚えたopen-uri的な「Webブラウザ」になる
・ ↑のGETの返り値はHpricotでHTML要素が解析され変数に格納されたPageオブジェクト
こんなライブラリです。で、特定のサイト、mixiとかはてなとか、ああいうのに対応させようと思います。
A. Mechanizeを継承したクラスを作り、サイトに特化した変数を追加したりメソッドかを書き換えたりする
B. サイトアクセス用クラスを作り、オリジナルクラスに渡す引数や返り値を「手元」で色々いじる
どっちが好ましいというか普通というか妥当でしょうか?
0016デフォルトの名無しさん
2008/08/07(木) 15:19:25たとえばWWW::Mechanizeを継承したMixi::Mechanizeを作るとかそういうのだろ?
0017デフォルトの名無しさん
2008/08/07(木) 16:18:59RDEを使っています。
ruby/sdlを使おうと、require 'sdl'したのですが,sdl.soが読み込めないようです。
require 'sdl'だけのスクリプトを実行すると。
/usr/lib/ruby/site_ruby/1.8/i386-cygwin/sdl.so: No such file or directory - /usr/lib/ruby/site_ruby/1.8/i386-cygwin/sdl.so (LoadError)
from /usr/lib/ruby/site_ruby/1.8/sdl.rb:17
from C:/cygwin/bin/rb3EB.tmp:1:in `require'
from C:/cygwin/bin/rb3EB.tmp:1
Complete(1)
とエラーになってしまいました。
sdl.soはC:\cygwin\lib\ruby\site_ruby\1.8\i386-cygwinにあり、
ここのパスが通っていないのかなと試しに、そのディレクトリに
print "test was loaded" だけからなるスクリプト(test.rb)を作成し
別の場所のスクリプトからrequire 'test.rb'を実行したら
問題なく 「test was loaded」と表示されました。
*.soだけが読み込めないようです。
ご教示お願いします。
0018デフォルトの名無しさん
2008/08/07(木) 18:16:52Bだろjk。委譲で済むなら委譲でいいだろ。
継承は最後の武器ってmatzが言ってた。
自分でしか使わない使い捨てスクリプトならAでいいけど。
0019デフォルトの名無しさん
2008/08/07(木) 19:41:48そのエラーはsdl.soが無いと言っているとは限らなくて、
sdl.soをDLLとして読み込む際にエラーが出たときにもそのエラーになるらしいよ。
ttp://pc11.2ch.net/test/read.cgi/tech/1155031689/n356-362
なんとなくSDLのDLLを用意していない、とかがあやしい気がする。
002017
2008/08/07(木) 20:44:33まさしくその通りでした
ttp://www.kmc.gr.jp/~ohai/rubysdl.html
によるとsdlはcygwinのrubyからでは使えないとのことでした
詳細はわかりませんが*.soがCygwin用やMinGWy用とで異なるようですね
ttp://www.cs.kyoto-wu.ac.jp/~konami/documents/ruby/sdlinstall.html
ttp://eto.com/d/RubySDLonWindows.html
を見てCygwinで頑張るか
MinGW版Rubyを使うかして解決しようと思います
どうもありがとうございました
0021デフォルトの名無しさん
2008/08/08(金) 09:04:24class HogeSite
def initialize
@agent = WWW::Mechanize.new
end
def hoge
end
end
0022デフォルトの名無しさん
2008/08/08(金) 10:12:41module Hatena
class Mechanize < WWW::Mechanize
attr_accessor :username, :password
LOGIN_URI = URI.parse('https://www.hatena.ne.jp/login')
def login
orig_get(LOGIN_URI).forms[0].set_fields('name' => @username, 'password' => @password)
submit(page.forms[0])
end
alias orig_get get
def get(uri,param=[],ref=nil)
login if cookie_jar.empty?(LOGIN_URI)
_get(uri,param,ref)
end
class ConfigPage < ::WWW::Mechanize::Page
# is for http://d.hatena.ne.jp/+username+/config
def counter
@counter ||= parser.search('div.note').find{|e| /#{'ページビュー'.toeuc}/e =~ e.inner_text}.inner_text.scan(/\d+/).to_s.to_i
end
end
end
とか書けるのって便利っぽくね?
WWW::Mechanizeライブラリがアップデートして中身が大幅工事されたとき涙目だけど
0023デフォルトの名無しさん
2008/08/08(金) 10:24:00ライブラリの内部インスタンス変数やマニュアルにないプライベートメソッドと被るのが怖い
しかも下手すれば作成中全然気づかない可能性があって探すのも面倒なのが怖すぎる
うまく動いてるうちは概念的にも明瞭で便利だとは思う
専用ブラウザと専用データページだからね
0024デフォルトの名無しさん
2008/08/08(金) 10:27:270025デフォルトの名無しさん
2008/08/08(金) 12:00:230026デフォルトの名無しさん
2008/08/08(金) 12:14:46○継承されることを意識したモジュール作成テクニックを教えて下さい
かぶりやすいことに対処するのは、かぶらないような冗長な名前を使います
普通はアンダースコアも使います
@__unkoclass_kusomiso__とかね
0027デフォルトの名無しさん
2008/08/08(金) 12:30:01例でいうと @hatena_username とか @hatena_counter とか
ライブラリを作る側が死ぬほどめんどくさいのが難点
あと継承した人がちょっと中の変数やメソッド使おうかなと思ったときもめんどくさい
継承元にあるメソッドや変数を上書きしてたら表示する継承警告モードとかあるといいのに
0028デフォルトの名無しさん
2008/08/08(金) 12:41:35これが agent._mechanize_logger_ だったらきっと誰も使わないだろうな
0029デフォルトの名無しさん
2008/08/08(金) 12:43:280030デフォルトの名無しさん
2008/08/08(金) 12:43:39@.aaa とかとか
0031デフォルトの名無しさん
2008/08/08(金) 12:45:19名前をかぶらないようにするというのは、内部で使うインスタンス変数やプライベートメソッドのことです
0032デフォルトの名無しさん
2008/08/08(金) 12:54:52(あるいは、バグっても泣かないというポリシーのもとで開放されてる)
継承は自作のクラスを自作のクラスで継承するとかそういうときに使うもんだ
0033デフォルトの名無しさん
2008/08/08(金) 12:59:49そのうち仕様が変更される可能性の高い分野でもあるので
それも怖い
0034デフォルトの名無しさん
2008/08/08(金) 13:24:53>>32の最後の行が全然徹底されてないってだけだ
Rubyスクリプトとしてのソースが見えないArrayを継承してデカいクラス作るとかマゾにも程がある
0035デフォルトの名無しさん
2008/08/08(金) 13:29:130036デフォルトの名無しさん
2008/08/08(金) 15:56:10ttp://www.ruby-lang.org/ja/news/2008/08/08/multiple-vulnerabilities-in-ruby/
> セーフレベルの脆弱性
> WEBrickのDoS脆弱性
> dlの汚染チェックの欠如
> resolv.rbのDNSスプーフィング脆弱性
脆弱性のあるバージョン
・全部
対処法
1.8系列、1.9系列ともにこれを反映した完全な最新版
(1.8.6-p286、1.8.7-p71、1.9のr18424)に変える
今のところ、バイナリ配布を頑張ってる人の反応は特にない
0037デフォルトの名無しさん
2008/08/08(金) 16:12:31ま た セ ー フ レ ベ ル 4 か
0038デフォルトの名無しさん
2008/08/08(金) 16:54:41WWW::Mechanizeの使い方が間違っていると思うんだけど
0039デフォルトの名無しさん
2008/08/08(金) 17:00:16aliasしても使ってなさそうに見えるし、_getって内部メソッドか?
あらかじめloginするってだけならこれだけでよくね?
def get(*)
login if cookie_jar.empty?(LOGIN_URI)
super
end
0040デフォルトの名無しさん
2008/08/08(金) 17:03:27てか、Aは確かにライブラリを完全把握したマッチョ向け綱渡りだが、Bってわりと普通じゃね?
時々忘れられてるがここはこれでも一応初心者スレなんで
「自爆して自覚するまで継承の便利さを味わっとけ」
というアドバイスもアリかなと思う
他人から教科書的に言われてもピンと来ないし伸びる余地も無い気がする
0041デフォルトの名無しさん
2008/08/08(金) 17:08:11Mechanize には _get は無いね
alias _get get
だったのを書き損じたとかそんなとこじゃ
0042デフォルトの名無しさん
2008/08/08(金) 17:11:230043デフォルトの名無しさん
2008/08/08(金) 21:51:460044デフォルトの名無しさん
2008/08/08(金) 23:36:150045デフォルトの名無しさん
2008/08/09(土) 00:37:490046デフォルトの名無しさん
2008/08/09(土) 00:39:49使いこなせると便利っぽい気もするのでハッシュと配列しか使ってない俺を感動させてくださいお願いします
0047デフォルトの名無しさん
2008/08/09(土) 00:46:51便利さだけで言えば、Rubyではハッシュと配列(と俺クラスのインスタンス変数)の組み合わせのほうがおおむねわかりやすくて便利です
無理してまで自分から使えなくてもいいんじゃないかなと思う
データ構造がどうなってるかスクリプトを読めればOK
0048デフォルトの名無しさん
2008/08/09(土) 01:37:25あとずらずらattr_accessorが並ぶだけの殆ど構造体みたいなクラスとかは、
1から書かずにStruct使うとか。コードを書かなければ書かないほどバグは減る。
0049デフォルトの名無しさん
2008/08/09(土) 04:47:432.アクセサメソッドだけじゃなくて、添え字(キー、インデクス)でのアクセスがあると便利なとき
だいたいこの2つの条件がそろうとStruct使う。
今までに使ったのは2回くらいだが。
0050デフォルトの名無しさん
2008/08/09(土) 07:03:40http://pc11.2ch.net/test/read.cgi/gamedev/1207069887/125-135
Rubyスクリプトを暗号化できないか?という流れがあったのです。
RPGツクールXPではスクリプト個別ファイルを暗号化、
RPGツクールVXではアーカイブにまとめているようなのですが、
これを実現する方法はありませんでしょうか?
requireをフックして書き換えるみたいなことってできるんでしょうか?
0051デフォルトの名無しさん
2008/08/09(土) 08:26:34エディタで開くと文字化けしてるという意味?
0052デフォルトの名無しさん
2008/08/09(土) 08:44:19RGSSがわからない人にはRGSSスクリプトそのままで問題ないし
RGSSがわかる人にとってはeval系列使って同じ動作させれば何書いてあるかわかるわけだし
どのへんの人を対象にしてるのか謎だ
0053デフォルトの名無しさん
2008/08/09(土) 09:20:340054デフォルトの名無しさん
2008/08/09(土) 09:52:43独自バイナリを読み込めるようなrubyを作って同梱して配布すればいい
0055デフォルトの名無しさん
2008/08/09(土) 10:53:12そういう意味ではゲーム製作にはあまり向かないわ
0056デフォルトの名無しさん
2008/08/09(土) 11:13:13# HERE: ここからつくる
とか再開用定型句が書いてあるのはいいんだが、場所だけじゃなく何をすればいいのかも書いてほしかった昨日の俺
とりあえずなんでもかんでもget_xxxってメソッドにするのやめようぜわけわからんわ
0057デフォルトの名無しさん
2008/08/09(土) 11:23:150058デフォルトの名無しさん
2008/08/09(土) 11:44:21個々の画像に関するデータを溜め込んだデータ群を作ろうと思うんだ
ハッシュで用が足りることがわかってるんだ
class Gallery < Hash
def xxxx
# selfをいじるメソッド色々
end
end
と
class Gallery
def initialize
@data = Hash.new
end
attr_accessor :data
def xxxx
# @dataをいじるメソッド色々
end
end
って、後者のほうがいいのかなあ
いちいち gallery.data でハッシュにアクセスしないといけないのがちょっとヤなんだけど
0059デフォルトの名無しさん
2008/08/09(土) 11:58:29確かにdataというような凡庸で他クラスと被りがちなアクセサ名しか思いつかなくてブルーになることはあるが、後者の癖をつけておいたほうがいい
あと委譲の人気の無さは異常
0060デフォルトの名無しさん
2008/08/09(土) 12:25:550061デフォルトの名無しさん
2008/08/09(土) 12:36:13Hashをつかう任意の場所にGalleryを使えるか。
0062デフォルトの名無しさん
2008/08/09(土) 13:49:14あれではどう頑張っても広まらんよ
0063デフォルトの名無しさん
2008/08/09(土) 14:18:12アクセサメソッドの中で他オブジェクトを動的にnewすれば用が足りたりするからな
他の言語やるといいぞ
0064デフォルトの名無しさん
2008/08/09(土) 14:57:34require 'forwardable'
class MyQueue1
extend Forwardable
def initialize; @q = Array.new; end
def_delegator :@q, :push, :enq
def_delegator :@q, :shift, :deq
def_delegators :@q, :push, :shift, :size
end
class MyQueue2
def initialize; @q = Array.new; end
def push(*e); @q.push(*e); end
def shift(*e); @q.shift(*e); end
def size(*e); @q.size(*e); end
alias :enq :push; alias :deq :shift
end
class MyQueue3 < Array
alias enq push
alias deq shift
end
[MyQueue1.new, MyQueue2.new, MyQueue3.new].each do |q|
q.enq 1, 2, 3, 4, 5
q.push 6
p q.size
end
の3つは、どれも6を表示はするな
0065デフォルトの名無しさん
2008/08/09(土) 15:09:38まあ、1と2で attr_accessor :q してくれてればメリットもなくなるか
でもまさか、@q を公開なんてしないよな?
0066デフォルトの名無しさん
2008/08/09(土) 15:49:24Arrayを継承となると、Arrayが公開する100近くのメソッドについて
責任を持たないといけなくなる。お手上げだ
0067デフォルトの名無しさん
2008/08/09(土) 16:05:350068デフォルトの名無しさん
2008/08/09(土) 16:20:32確かにごく最初は「マニュアルに書いとけばいいんじゃね?」「たくさん定義されてても使わなければ無問題だろ」だった
でもそれじゃ駄目だということがわかってきたので責任(Responsibility)という概念が生まれたわけで
無理して今から字面を理解しなくても、そういえばなんか煩いこと言われてたな程度に覚えておけばいい
オブジェクト指向プログラミングをやっていれば、ほぼ確実にこれ関連で火傷をする日が来るから
自分の作ったものが火傷したり破綻したりして初めて理解できたといえるシロモノなんで、まああまり考え込まないことだ
0069デフォルトの名無しさん
2008/08/09(土) 16:48:05foo = SimpleDelegator.new([])
foo.push(1)
foo.push(2)
puts foo.size #=> 2
これって foo = [] のほうが便利じゃね?
0070デフォルトの名無しさん
2008/08/09(土) 17:43:57RGSSでやっていることを一般のゲームでもやりたいという話です。
>>54
いや、まあそういうことなんですが、
元のRubyソースに手を加えて
requireやってるところを置き換えるっつーことでよろしい?
0071デフォルトの名無しさん
2008/08/09(土) 18:38:49どこまで隠したいのかはっきりしれ
Ruby知ってる人間がirbに読み込んで数行書いたら読めてしまうものでもいいのかどうか
0072デフォルトの名無しさん
2008/08/09(土) 19:16:45"name: %(name)s, age: %(age)d" % {:name=>'Hoge', :age=>20}
みたいな感じでやりたいんだけど。
0073デフォルトの名無しさん
2008/08/09(土) 19:19:47ruby-gettext-packageでそんな感じの拡張をしている。
www.yotabanana.com/hiki/ruby-gettext-api.html?ruby-gettext-api#class+String
0074デフォルトの名無しさん
2008/08/09(土) 19:23:09ハッシュの値のほうを '%03d% % age みたく別途フォーマットする必要がある。
0075デフォルトの名無しさん
2008/08/09(土) 19:33:17できれば、ちょっとしたそのようなクイックハックは避けたいのですが、
その程度ならどのような方法があるものでしょうか?
0076デフォルトの名無しさん
2008/08/09(土) 20:05:26irb> eval "Y2xhc3MgSG9nZTsgZGVmIHN0cjsnSGVsbG8sV29ybGQhJztlbmQ7ZW5kO3B1\ndHMgSG9nZS5uZXcuc3Ry\n".unpack('m')[0]
Hello,World!
0077デフォルトの名無しさん
2008/08/09(土) 20:38:020078デフォルトの名無しさん
2008/08/09(土) 20:43:18作業環境が悪いんだよ! エディタとか!
0079デフォルトの名無しさん
2008/08/09(土) 20:52:37なるほど!周りのせいじゃ仕方ないな!
まあ趣味個人とはいえさすがにいまどき putty + Emacs + ruby-mode + RCS だけなのはねーよとは思うんだが
もうちょっと便利で安楽な感じにスクリプト書きたいです
0080デフォルトの名無しさん
2008/08/09(土) 21:05:52RadRails(eclipseのやつ)とかいろいろためしてみたが、軽さがたりねー
0081デフォルトの名無しさん
2008/08/09(土) 21:20:300082デフォルトの名無しさん
2008/08/09(土) 21:44:40JRuby、Rake、Gems、RSpec、ruby-debugとか、標準で一揃い統合されてる
0083デフォルトの名無しさん
2008/08/09(土) 22:38:18まだ重いっていうかこれ以上軽くなる理由もないんだが(w
ところで、なんで重いの?
0084デフォルトの名無しさん
2008/08/09(土) 22:47:510085デフォルトの名無しさん
2008/08/09(土) 22:55:470086デフォルトの名無しさん
2008/08/09(土) 23:23:280087デフォルトの名無しさん
2008/08/09(土) 23:25:000088デフォルトの名無しさん
2008/08/09(土) 23:27:46>>79にPuTTYがあるのが象徴的というか
0089デフォルトの名無しさん
2008/08/09(土) 23:39:180090デフォルトの名無しさん
2008/08/09(土) 23:42:38IDEつかってるのは、仕事先と同じ環境でつかいたいってだけの理由だが。
0091デフォルトの名無しさん
2008/08/09(土) 23:46:05Emacsつかってる椰子は、メニューなんか全部みせてないだろうし。
トーパルズはviを5ターミナルくらいで開いてかいてるだっけか。
0092デフォルトの名無しさん
2008/08/09(土) 23:54:44C#とかじゃないなら足る
0093デフォルトの名無しさん
2008/08/09(土) 23:59:36下3行(Emacsバッファ説明・Emacsミニバッファ・GNU screenのバー)以外は全部エディタ領域だからな
IDE使ってみて「ぷろじぇくと」とかいうのが画面の左半分を占拠したときはビビった
みんな画面広いんだな
0094デフォルトの名無しさん
2008/08/10(日) 00:43:23rcodetoolsを全開で使うんだ
なんか補完する度にHDDが動いてる気がするが気のせい
0095デフォルトの名無しさん
2008/08/10(日) 03:18:080096デフォルトの名無しさん
2008/08/10(日) 04:00:07してくれたらーーー、学生の時みたいに時間あればなー
スーパーHaXする椰子がでてきたら はじまるのに。。。
0097デフォルトの名無しさん
2008/08/10(日) 06:34:45NetBeans使っているけどなかなかいいよ。
RubyGemsは1.2まだ非対応で固まるけどw
>>93
うちはフォント小さくして、狭い画面で書いてますw
0098デフォルトの名無しさん
2008/08/10(日) 06:37:32- Summary
Ruby製のテキストエディタ
- Features
o scripting in any language
o macro recording and playback
o multi-element clipboard
o multi-level undo
o parsed ("smart") indentation
o customizable multilingual syntax highlighting, with support for embedded languages (e.g. PHP, eRuby, Javascript)
o bookmarking, named and unnamed
o regular expression searching
o a customizable status line
o limited ctags support
o hooks
- Reference
purepistos.net - Diakonos
http://purepistos.net/diakonos/
- via
MOONGIFT - Diakonos
http://oss.moongift.jp/intro/i-2310.html
MOONGIFT - Diakonos レビュー
http://oss.moongift.jp/review/i-2319.html
0099デフォルトの名無しさん
2008/08/10(日) 06:39:08MOONGIFT: ≫ Diakonos:オープンソースを毎日紹介
http://www.moongift.jp/2006/08/2310/
MOONGIFT: ≫ Diakonos レビュー:オープンソースを毎日紹介
http://www.moongift.jp/2006/08/2319/
0100デフォルトの名無しさん
2008/08/10(日) 07:06:55el4r
0101デフォルトの名無しさん
2008/08/10(日) 10:30:410102デフォルトの名無しさん
2008/08/10(日) 12:15:310103デフォルトの名無しさん
2008/08/10(日) 12:57:07それには適当なIDEやエディタの名前を入れても成立するということが歴史的に知られている
0104デフォルトの名無しさん
2008/08/10(日) 14:12:420105デフォルトの名無しさん
2008/08/10(日) 14:57:13> rcodetools
ほう
検索するたびに2秒くらい止まるんだが日本語解説サイトとかないんかね
0106デフォルトの名無しさん
2008/08/10(日) 15:09:030107デフォルトの名無しさん
2008/08/10(日) 15:14:28xemacsに一時期ながれていたが、歴史の差でemacs使うようになったな。おれは
0108デフォルトの名無しさん
2008/08/10(日) 15:17:41レジストリやcompmgmt.msc、NETコマンドやActiveDirectoryをいったいどれだけの人が理解してるやら
気にするな
0109デフォルトの名無しさん
2008/08/10(日) 17:50:550110デフォルトの名無しさん
2008/08/10(日) 19:12:45ならWindowsへの皮肉は、ポケットにしまいこんでおくんだ
0111デフォルトの名無しさん
2008/08/10(日) 19:56:16相対数どころか絶対数でもMacに負けてる気がする。
0112デフォルトの名無しさん
2008/08/10(日) 20:53:540113デフォルトの名無しさん
2008/08/10(日) 21:01:04あって当然。普通に使う分には縁の下は意識しない
MSの最大公約数的な設計もあって、特に面白みというか個性があるわけでもないと
0114デフォルトの名無しさん
2008/08/11(月) 00:41:42なんか微妙に多くて微妙に筋がよくないような気がしてならない
うまく減らす方法はあるだろうか
0115デフォルトの名無しさん
2008/08/11(月) 01:51:12設計がおかしい可能性はないか?
単純なアクセサだらけのクラス自体、責務を切り分けられていないように思える。
0116デフォルトの名無しさん
2008/08/11(月) 05:00:4515のアクセくらいなら、普通にありえるな。
会計DBのテーブルが15以上フィールドもってるっていう設計されてるときとか。
0117デフォルトの名無しさん
2008/08/11(月) 06:48:580118デフォルトの名無しさん
2008/08/11(月) 07:23:42LFSに対応していないようで、2G以上になるとエラーになりました
Rubyで扱える最大ファイルサイズはどのくらいですか?
0119デフォルトの名無しさん
2008/08/11(月) 08:33:44ただ、思いっきり意識してスクリプト作らないとメモリに2GB全部読み込むぞ
0120デフォルトの名無しさん
2008/08/11(月) 08:49:05扱うのめんどくさいという話だと思うんで、ハッシュにまとめておく
0121デフォルトの名無しさん
2008/08/11(月) 17:06:49一行掲示板なるものを見つけて書いてみたけど、
( ttp://www.skuare.net/2007/07/ruby_5.html )
書き込まれた内容は文字化けして読めんとです。
au、ソフトバンク、docomoなど各キャリアから書き込みたいなら、
エンコードを何とかしろという話だと思いますが、よくわかりません。
どう書けば文字化けせずにテキストを貯めておけますか?
0122デフォルトの名無しさん
2008/08/11(月) 17:31:52とりあえず携帯電話の機種ごとのWeb通信および文字エンコードと独自文字領域についての知識が必要
これはRuby全く関係ないので自力でやってくれ
0123デフォルトの名無しさん
2008/08/11(月) 17:42:24自分に合わせてゼロから作ったほうがまだ安心できる
0124デフォルトの名無しさん
2008/08/11(月) 18:10:54めちゃくちゃ偏見じゃねーか
まあしかし件の記事は自分専用のスクリプトだしな
他人や他機種のことは全く考えられてない
0125デフォルトの名無しさん
2008/08/11(月) 21:18:46あ、Railsじゃないのか。
0126デフォルトの名無しさん
2008/08/11(月) 21:31:51ひとつのアプリで複数のウィンドウを開きたいんですが、TkRoot のウィンド
ウから別のウィンドウをいくつも開くにはどのクラスを使えばいいでしょうか?
試しに TkToplevel.new でウィンドウを作ってみたら、ウィンドウ自体は開く
もののその上に置いたボタンとかのウィジェットがまったく表示されませんで
した。
0127デフォルトの名無しさん
2008/08/11(月) 21:41:06jpmobileをrails依存な部分とそうでない部分に分けるという動きが
どっかであったのを見た。
0128デフォルトの名無しさん
2008/08/11(月) 22:05:41Ruby/Tkのマニュアルくらいは斜め読みするんだ
0129126
2008/08/11(月) 22:39:13Ruby/Tk はマニュアルとしてまとまった物がみつからないので、「Ruby アプリ
ケーションプログラミング」を参照しているんですが、よくわからないので困っ
てます。。。
0130デフォルトの名無しさん
2008/08/12(火) 00:11:16gemから見たときに、githubのgemは衝突回避のために username-projectname という形で
gemを提供しているのですが、あるgemで入れたソフトが
username-projectnameでなくて、projectname に依存しているという風に言ってきます。
このおかげで動かしたいgemで入れたソフトがエラーが出て動きません。
具体的には、↓ddollar-remember-the-ruby を入れようと思ったら、
ddollar's remember-the-ruby at master ? GitHub
http://github.com/ddollar/remember-the-ruby/tree/master
↓ddollar-preferences に依存するようなのですが(ソース確認した)、
ddollar's preferences at master ? GitHub
http://github.com/ddollar/preferences/tree/master
実際には、素のpreferencesがインスコされてしまって、そっちが参照されてしまいます。
(gem install時も素のpreferencesの方が入ってしまう・・・)
ddollar-preferences を入れて、素の preferences を uninstall した状態で実行しても、
(ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:578:in `report_activate_error': Could not find RubyGem preferences (>= 0.1.3) (Gem::LoadError)
from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:134:in `activate'
from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:158:in `activate'
from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `each'
from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:157:in `activate'
from (ほげまげ)/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:49:in `gem'
from (ほげまげ)/ruby/bin/rtr:18
などといわれ、preferencesの方を見に行ってしまいます。
なんとかならないのかなあ・・・
0131130
2008/08/12(火) 01:04:11Hoe dependencies - comp.lang.ruby | Google グループ
http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/9a5d68bafd366677
git clone git://github.com/ddollar/preferences.git preferences
cd preferences
gem install pkg/preferences-0.1.4.gem
一応これで目的のソフトは動きました。
しかしながら、これだと同じライブラリ名があるとバッティングしますね・・・。
それにgithubで他の人が作った同じライブラリが同時に入れられないw
そしてやはりというか、
(ほげまげ)\ruby\gems\1.8\specifications\ddollar-remember-the-ruby-0.3.2.gemspec
の中の
%q<preferences>
を全部
%q<ddollar-preferences>
に置換しても動きます。(当然ですね)
問題はgithub内のそれぞれのユーザーのコードが、他のgithubのコードを
dependencyに追加する時にユーザー名まで入れるの?ということになりますね・・・
0132デフォルトの名無しさん
2008/08/12(火) 03:12:00toplevel = TkToplevel.new
button = TkButton.new(toplevel,:text=>'push me').pack
基本はTkHoge.new(親部品、オプション)で親部品は省略するとTk.rootになる
ruby/tkはドキュメントが足りなすぎてtcl/tkを知らないと使い物にならない
今まで見た中では「逆引きRuby/Tk」(ググれ)のページが一番まともに使える
0133デフォルトの名無しさん
2008/08/12(火) 08:28:08のgemのインストールが高い頻度で固まるのですが私だけでしょうか?
コマンドプロンプトでCtrl-Cを押しても止まりません。
タスクマネージャでrubyを殺すしか手段はなくなります。
インストールは、5回に一度くらいしか成功しません orz
> gem -v
1.2.0
OS:Windows XP SP2
0134デフォルトの名無しさん
2008/08/12(火) 09:07:51次からはRubyのバージョンとかも書いてくれ。
0135133
2008/08/12(火) 10:00:05すまそ。忘れてた
>ruby -v
ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32]
0136デフォルトの名無しさん
2008/08/12(火) 11:52:50RubyのGUIってそんなもんだからさ
「○○では××と書くようなことをRuby○○ではどう書くんですか?」という質問を希望
0137デフォルトの名無しさん
2008/08/12(火) 18:22:21PStoreありますよね
あれって、
PStore.new(path).transaction do |db|
とした時点で、db に該当するとこには pstore ファイルのまーしゃるな内容が完全に展開されてるんですよね?
data = db['hoge'] としてもメモリ的になんかいいことがあるとか何もないですよね?
0138デフォルトの名無しさん
2008/08/12(火) 18:40:46unless read_only
file = File.open(@filename, RDWR_ACCESS)
...
content = file.read()
...
if content != ""
@table = load(content)
...
def load(content) # :nodoc:
Marshal::load(content)
end
...
def [](name)
in_transaction
@table[name]
end
ということで、答は YES
transaction した時点で、Ruby は pstore ファイル全体を Marshal でロードしたデカいオブジェクトをメモリに保持する
db[hoge] というメソッドは既に存在するそのデカいオブジェクトのハッシュへの参照に過ぎない
別名をつけるかどうかは読みやすさだけで決めてよし
時々「でかいpsotreに差分だけ追加」という効率的っぽいプログラミングをしてる人を見かけるが、
あれの本当の動作は「全部引き出してフルサイズ復元してちょっと付け足してまた全体を必死で変換してディスクに書き込む」だ
0139デフォルトの名無しさん
2008/08/12(火) 21:24:430140デフォルトの名無しさん
2008/08/13(水) 13:25:30んで、質問です
data.each do |param|
`command #{param}`
end
は、dataの数だけ毎回シェルを起動して終了してますか?
複数のデータそれぞれに対してコマンドを使用したい場合は
sh = Shell.new
data.each do |param|
sh.system("command #{param}")
end
としたほうが、起動するシェルは1個で済んだりしますか?
0141デフォルトの名無しさん
2008/08/13(水) 13:37:19外部コマンド使えば速くて済むもんね、と考えてのことなら前者は無駄が多いかもしれん
0142デフォルトの名無しさん
2008/08/13(水) 15:15:2558045
58046
58047
58048
58049
0143デフォルトの名無しさん
2008/08/13(水) 17:12:14transactって名前そのまんまだし
0144デフォルトの名無しさん
2008/08/13(水) 21:32:04irb> require 'shell'
irb> sh = Shell.new
irb> sh.verbose = false
irb> sh.cd('/')
shell: current dir: /
って、verbose を偽にしても notify でログが表示されるのはなんでなんだぜ?
0145デフォルトの名無しさん
2008/08/13(水) 21:34:42exec使えよ
0146デフォルトの名無しさん
2008/08/13(水) 21:50:58試行錯誤中のirbが途中で終了した
責任は取ってもらうからな
0147デフォルトの名無しさん
2008/08/13(水) 21:54:15切
れ
スレで見たものをirbで何でも試すから…
0148デフォルトの名無しさん
2008/08/13(水) 23:56:18ってことで、sshでログインしてやるから、
IP,ID,PASS晒せや
0149デフォルトの名無しさん
2008/08/14(木) 07:30:03破壊的メソッドって自分で定義して追加することは可能?
0150デフォルトの名無しさん
2008/08/14(木) 07:40:10追加できないかもしれないと思った理由は?
0151デフォルトの名無しさん
2008/08/14(木) 07:51:44! つきも ? つきも = つきも普通に定義できるぞ
0152149
2008/08/14(木) 08:41:50どう書けば良いのでしょう?
0153デフォルトの名無しさん
2008/08/14(木) 08:49:35def append_foo!
self << "foo"
end
end
s = "hoge"
s.append_foo!
p s
0154デフォルトの名無しさん
2008/08/14(木) 16:04:08うん、Webカレンダーアプリケーションみたいなの
その日のデータ登録は自分が(コマンドラインまたはCGIで)やるだけなんだけど、結果はHTMLとして公開したい
いい感じのデータ構造をもつクラスとHTML書き出しクラスを持つライブラリとか都合よくないかな?
0155デフォルトの名無しさん
2008/08/14(木) 16:36:08そんなんライブラリはないけど
rails本に幾らでも例題あるがな
作らんでもカレンダーウェブサービスも沢山あるし
0156デフォルトの名無しさん
2008/08/14(木) 16:47:29もしくは考慮して、"/"がなかったらつけてくれる関数なんかありませんでしょうか?
File.dirname(dir) ってやると "hoge/moge/" が "hoge"になってしまって、
かなり期待と反対の動作なんですが・・・("hoge/moge"がほしい)
0157デフォルトの名無しさん
2008/08/14(木) 16:49:23Google Calender か Yahoo! カレンダーに適当に登録してカレンダーを公開、が妥当な気がする
データ型についてはまあ類似例を見て研究するということで
0158デフォルトの名無しさん
2008/08/14(木) 17:00:21/foo/bar という文字列があったとして、 bar がファイルなのかディレクトリなのかは
実際に(HDDの)ファイルシステムにアクセスしないとわからないから、ある意味無理
というか、そんな不完全で不安定なディレクトリパスが欲しい理由って何?
そういうのが必要な場合の多くは必ず File.join でディレクトリとファイルを連結するようにすれば用が足りる
ディレクトリの最後にスラッシュがあろうがなかろうが、問答無用でディレクトリとみなして連結してくれる
もし、外部コマンドに渡すディレクトリ文字列を Ruby で作らなきゃいけないんだとかいう場合は
require 'pathname' したあと Pathname#realpath 使え
0159デフォルトの名無しさん
2008/08/14(木) 17:16:35レスありがとう
実際にはFileTest.directory?などでディレクトリチェックをしています。
そうです。Dir.globとかに渡すときに、適当に渡されたパスに "*.hoge"とか "**/*.moge"とかを
くっつけたかったのです。最初から情報を中田氏にしたことを詫びします。
File.joinを使うのですね。
やってみます。
0160156
2008/08/14(木) 17:18:32File.joinで無事にできました!
お騒がせしました。
エスパーありがとうございました。
0161デフォルトの名無しさん
2008/08/14(木) 17:47:14# :nodoc:
という記述はなんなんでしょうか?
ドキュメント生成ツールか何かようのフラグ?
0162デフォルトの名無しさん
2008/08/14(木) 17:48:46ActiveRecord (1) -- construct_sql - Ruby on Rails 研究 - Ruby on Rails with OIAX
http://www.oiax.jp/rails/rails_source_code_reading_2.html
> その右にある #:nodoc は、RDoc の修飾子(modifier)の一種です。RDoc は、
> Ruby ソースコードからドキュメントを生成するプログラムです。RDcoc は
>この修飾子が添えられたクラスやメソッドをドキュメント生成の対象から外します。
RDoc用なのですね。
ありがとうございました。
0163デフォルトの名無しさん
2008/08/14(木) 19:15:23Dir.globに渡しても動作しません。
スクリプトなどの引数などから指定された場合、
単純に置換する以外によい簡潔な解決策はないでしょうか?
0164163
2008/08/14(木) 19:27:59Pathname("hoge\mage\")は、Pathname#realpath で "hoge/mage/"になってくれました。
ありがとうございました。
0165デフォルトの名無しさん
2008/08/15(金) 01:14:07s="#&32;12:34"
/[\s(?: )](\d{2}):(\d{2})/=~s
p $1,$2 # => 12, 34
Regexp.new("[\s(?: )](\d{2}):(\d{2})")=~s
p $1,$2 # => nil, nil
0166デフォルトの名無しさん
2008/08/15(金) 02:33:56p Regexp.new("[\s(?: )](\d{2}):(\d{2})")
p /[\s(?: )](\d{2}):(\d{2})/
これを実行すりゃ分かる。
0167デフォルトの名無しさん
2008/08/15(金) 09:54:35ruby_1_8 は次 (今だと ruby_1_8_8) の候補、みたいな感じ?
0168デフォルトの名無しさん
2008/08/15(金) 11:03:55つまり、ソフトウェアパッケージのポリシーとか
一般的には、 1.8 とだけ書かれたものは 1.8 のうち最新版のものへのエイリアスだ
1.8.7 が用意されていれば 1.8.7 、まだ用意されてなくて 1.8.6 だけなら 1.8.6
0169デフォルトの名無しさん
2008/08/15(金) 15:27:37l = TkLabel.new(:text=>'0').pack
b = TkButton.new(:command=>proc{
TkAfter.new( 100, 1, proc{
l.text=l.text.to_i+1
Tk.event_generate(b,'Button-1')
Tk.event_generate(b,'ButtonRelease-1')}
).start
}).pack
Tk.mainloop
一定間隔でラベルの数字が増え続けるようにしたかったのですが、
実際やってみると、途中で不規則に止まってしまいます。
原因と解決策(できればイベント強制発生のループの形は残したままで)を
ご教示お願いします。
0170デフォルトの名無しさん
2008/08/15(金) 16:26:00Enter->ButtonPress-1->ButtonRelease-1(->Leave)
0171デフォルトの名無しさん
2008/08/16(土) 00:53:38リアルタイムに取得済みバイト数を得る方法はありませんでしょうか?
現在は
・サーバ側: writeでソケットに渡す
・クライアント側: readでソケットから受け取る
データ自体は問題なく受け取れています
どうやら受け取ったデータはソケットのバッファ?か何かに書いているようで
そこをリアルタイムに覗く方法が分かりません
参考になるものやヒントなどがあればよろしくお願いします
0172デフォルトの名無しさん
2008/08/16(土) 01:03:19普通覗かない覗けないから、rubyでreadできた分を
取得済みと考えていいんじゃね?
0173171
2008/08/16(土) 01:27:26readできた分となると
全て取得した後のサイズしか知ることができないようなのです
ごめんなさい ちょっと紛らわしかったかもしれません
必ずしもバッファを覗く必要はありません
リアルタイムに取得済みバイト数さえ取得できれば方法は問いません
バッファが覗けないとなると別の方法ですね・・・
0174デフォルトの名無しさん
2008/08/16(土) 03:23:59readpartialで少し筒読みながら自分でサイズ管理
0175デフォルトの名無しさん
2008/08/16(土) 04:16:24よくわからんのは、
取得ってどこまで来たのを取得データと捉えたいんだ?
0176171
2008/08/16(土) 09:21:25readpartialですね
試してみます
>>175
どういう答え方が正しいのか分からないのですが
ソケットまで来ていれば取得済と考えています
0177171
2008/08/16(土) 22:02:54ありがとうございます
0178デフォルトの名無しさん
2008/08/17(日) 15:32:400179デフォルトの名無しさん
2008/08/17(日) 16:41:490180デフォルトの名無しさん
2008/08/18(月) 02:30:090181デフォルトの名無しさん
2008/08/18(月) 11:56:160182デフォルトの名無しさん
2008/08/18(月) 11:59:12ttp://www.ruby-lang.org/images/logo.gif
0183デフォルトの名無しさん
2008/08/18(月) 12:11:12http://www.ruby-lang.org/ja/
ここの「Rubyとは」ってとこの横のエディタ画像のフォント
0184デフォルトの名無しさん
2008/08/18(月) 12:16:12#code div {
display: block;
font-family: "Lucida Console", Monaco, monospace;
padding-left: 24px;
padding-right: 24px;
}
って書いてあるんで、君のパソコンに入ってるLucida ConsoleかMonacoかmonospace
あるいはmonospaceファミリーに設定されてるフォントで勝手に表示されてる
0185デフォルトの名無しさん
2008/08/18(月) 12:18:010186デフォルトの名無しさん
2008/08/18(月) 12:23:00画像じゃなかったのか…ありがとう
0187デフォルトの名無しさん
2008/08/18(月) 12:34:18irb> say['love'] = "*love*"
irb> puts say.upcase
I *LOVE* RUBY
なんぞこれ
0188デフォルトの名無しさん
2008/08/18(月) 12:36:25あ、でもこれ日本語対応してないのか…くぅ、使いたかった
0189デフォルトの名無しさん
2008/08/18(月) 12:43:370190デフォルトの名無しさん
2008/08/18(月) 12:43:39xyzzy使わざるを得なくなるのが難点か
もしWindowsXP以降(2000でもフォントによってはできる)を使ってるならFontLink機能を使う手もある
「どう考えても英字フォントを指定してるだけなのになぜか日本語も表示できる謎機能」を自力で利用する
0191デフォルトの名無しさん
2008/08/18(月) 12:49:12kwsk
0192デフォルトの名無しさん
2008/08/18(月) 13:06:35・誰でもgem含めて完全に1.9のライブラリだけを使って動作するようにインストールできるよガイド
があれば対応が増えると思う
現状の1.9は「1.9に乗り換える」という覚悟がないとそもそもインストールしにくい
make install するとgemごとユーザーディレクトリにインストールされるような親切セットが欲しい
>>191
ぐぐってレジストリ書き換えろ
0193デフォルトの名無しさん
2008/08/18(月) 13:14:14その他のことに関しては素人に毛が生えた程度だと思ったほうがいいよな
自分用Rubyと際新安定版RubyとRuby1.9の3つくらいは維持しないといかんわけで
それに対するフォローはあっても面白いかもしれん
0194デフォルトの名無しさん
2008/08/18(月) 13:56:070195デフォルトの名無しさん
2008/08/18(月) 14:58:05ここからquery param形式でURIをパースしてくれるものってあるでしょうか?
今は正規表現でパースしてますが面倒で…
0196デフォルトの名無しさん
2008/08/18(月) 16:03:24irb> require 'cgi'
irb> require 'uri'
irb> uri = URI.parse('http://example.com?aaa=123&bbb=456&ccc=789')
irb> p CGI.parse(uri.query)
{"aaa"=>["123"], "bbb"=>["456"], "ccc"=>["789"]}
こんなん?
0197デフォルトの名無しさん
2008/08/18(月) 18:06:11あるはずだが、見つからないなあ
フォーム入りHTMLを自動生成して送る
↓
ユーザーがフォームを埋めて送り返してくる
↓
解析したが内容が不足または不当だった
↓
ユーザーの入力内容がフォームに記入された状態のHTMLを再度生成して再送
0199デフォルトの名無しさん
2008/08/19(火) 00:24:58Javaのクラス(具体的にはjavax.swing.event.MouseInputAdapter)を基底としてRubyのクラスを作りました。
そこで初期値を与えてnewしようとしたところ、
base.rb:24:in `__jcreate!': wrong # of arguments for constructor (NameError)
とのエラーが出てしまいます。
初期値を与えなければ正常に動作するため、Javaクラスを基底とするRubyクラスでは
初期化に工夫がいるのかと思い、調べてみたのですが、言及を発見することができませんでした。
どなたか回避方法、或いは他の原因に心当たりの方がいらっしゃいましたら教えてください。
0200デフォルトの名無しさん
2008/08/19(火) 00:34:00コンストラクタの先頭でsuper()を呼べばいいんじゃない?
0201199
2008/08/19(火) 00:55:17あうあ。どうもありがとうございます。
書き込み前にsuperを試したときにもsuperを括弧無しで呼んだ時には引数が引き継がれる、
というのを知らなかったので、二重にはまっていたみたいです。
明示的にsuper()を呼ばなければ引数引継ぎで自動的にsuperが呼ばれるのかしらん。
色々と調べてみます。どうもありがとうございました。
0202デフォルトの名無しさん
2008/08/19(火) 18:41:40このコマンドを実行し、ポート80を使っていたapacheを停止させたところhttp://localhost/testでも接続できるようになりました。
これはapacheの代わりにmongrelが動いているということでしょうか。
初歩的な質問ですいません
0203デフォルトの名無しさん
2008/08/19(火) 19:28:290204202
2008/08/20(水) 01:20:530205デフォルトの名無しさん
2008/08/20(水) 17:58:01(2..0).to_a
ってしたらなんで[2,1,0]って配列を作ってくれないの?
そもそもRubyのRangeクラスって昇順しか認められてないの?
0206デフォルトの名無しさん
2008/08/20(水) 18:42:12降順だろうが昇順だろうがきちんと存在しマニュアル通りに動作するぞ
2.succ は 3 で 0 より大きいから each も即終了する
…まあ、Range#first > Range#end なときは
Range#each の中で逆方向の配列作ってくれてもいいじゃんという気は
全くしないわけではない
0207デフォルトの名無しさん
2008/08/20(水) 21:04:200208デフォルトの名無しさん
2008/08/20(水) 21:05:550209デフォルトの名無しさん
2008/08/21(木) 00:38:55p (0..2).to_a # => [0, 1, 2]
たしかに気分悪いなこれ
0210デフォルトの名無しさん
2008/08/21(木) 00:48:15> 2.succ は 3 で 0 より大きいから each も即終了
succ を辿る実装を変えるとは思えないから、each を書き換えるしかないな
0211デフォルトの名無しさん
2008/08/21(木) 02:44:59次の意味のあるバイト列までいかに素早く進むか、みたいな。
0212デフォルトの名無しさん
2008/08/21(木) 11:06:440213デフォルトの名無しさん
2008/08/21(木) 18:30:19cvs.m17n.org/~akr/pub/string-succ-rejectkaigi2008.pdf
0214デフォルトの名無しさん
2008/08/21(木) 19:54:18特定の引数 param2 のハッシュから特定のキー 'danger' に関連するペアを、
param2.delete('danger') のように事前削除すれば問題ありません。
クラスを利用するときの引数でいちいち削除すればいいんですが、
できれば同クラス名のクラス定義をスクリプト開始時にこっそり上書きすることで楽に済ませたいです。
最初
class Hoge
alias _initialize initialize
def initialize(param1, param2)
param2.delete('danger')
_initialize
end
end
と書いたんですが、これだと self が書き換わりません。いい方法はありますか?
0215デフォルトの名無しさん
2008/08/21(木) 22:31:120216デフォルトの名無しさん
2008/08/22(金) 01:19:03body = StringIO.new
http.request_get(uri.path){|res|
res.read_body {|part|
size += part.size
body.write(part)
}
}
としてる部分がありました(request_getはrequest_postのもあります)
どうせ最後には全部メモリに入るわけだし、ふつーに
body = request_get(uri.path).body
size = body.size
でいいと思うんですが、わざわざ細かく読み込んでるのは何か理由があるんでしょうか?
0217デフォルトの名無しさん
2008/08/22(金) 08:57:37マルチスレッドのためじゃね?
最後は書いた人に聞かないとわかんないから、この質問はメーリングリストで聞いてみるのがいいだろうね。
書いた人はだれかしらんけど、たぶんメーリングリストは読んでいると思うよ。
0218デフォルトの名無しさん
2008/08/22(金) 11:19:47> lib/ruby/1.8/i686-linux/rbconfig.rb:7: ruby lib version (1.8.7) doesn't match executable version (1.8.6) (RuntimeError)
0219デフォルトの名無しさん
2008/08/22(金) 11:31:28Net::HTTP の中でも同じような書き方をしてるから、それ自体は net/http.rb の改変コピペだと思う
で、>>215の言うように、net/http.rb での採用理由はたぶんマルチスレッドというかマルチタスクというかそんなのの対策だと思われる
たとえば、サーバからのファイルを HDD 上のファイルと同じノリで最初から最後までずーっとひと息に待ってると、
でかいファイルの場合はそれだけでタスクというかジョブがいっぱいになってしまう
一昔前のWindowsのフリーソフト(や現在のピーとかピーとかピーとか)に稀にあった、
ファイルをダウンロード中にビジーになって他に何もできなくなるヘボいフリーソフトのダウンローダーの動作を考えてもらうといい
0220デフォルトの名無しさん
2008/08/22(金) 11:34:11ぶっちゃけ net/http にお任せしてればわざわざ自前でそんなとこまで意識して書く必要はないんだけど、
繊細動作させるダウンロードクラスでも作ってるのかな?
0221デフォルトの名無しさん
2008/08/22(金) 11:38:48既にあった lib/ruby/1.8/ とかが新しくインストールした 1.8 系列で上書きされてるっぽい
lib/ruby/1.8.7/ って明示的に作れないんだっけ?
どっちにしても両方再インストールだな
0222デフォルトの名無しさん
2008/08/22(金) 11:57:48configure --with-ruby-version=full
0223デフォルトの名無しさん
2008/08/22(金) 12:02:17漏れは ./configure --prefix=/usr/local/ruby_1_8_6 とかやっとります。
0224デフォルトの名無しさん
2008/08/22(金) 17:32:27require 'uri'
URI = nil
require 'my-uri'
とすると希望どおりの動作にはなりますが、
> warning: already initialized constant URI
という真っ当な警告が出てしまいます
0225デフォルトの名無しさん
2008/08/22(金) 17:40:001. Array を継承する
2. @data = Array.new してから、@data をいじるArrayと同名のメソッドを完全自作
3. @data = Array.new してから、 @data に対してメソッドを委譲
細かいレベルの一般的実行速度で言えば 1 が一番速くて 3 が一番もったりだよな?
1 は微妙にキケンで 2 はめんどくさいから 3 をやる、という思考の流れでいいんだよね?
0226デフォルトの名無しさん
2008/08/22(金) 18:38:19require 'uri'
class Object
remove_const :URI
end
require 'my-uri'
0227デフォルトの名無しさん
2008/08/22(金) 21:25:180228デフォルトの名無しさん
2008/08/22(金) 21:33:53まあインプットとアウトプットが妥当なら使うけどな
0229デフォルトの名無しさん
2008/08/23(土) 01:02:49同一ドメイン内のメアドへの送信のみでしょうか。
メールフォームCGIでそのような動作になっていて、
外部のメアドに送信しようとするときに限りエラーになります。
エラーメッセージもでているのですが、なんとなく上記部分がひっかかったので、
詳細なしで質問させていただきましたm(_ _)m
0230デフォルトの名無しさん
2008/08/23(土) 01:36:310232デフォルトの名無しさん
2008/08/23(土) 23:50:39httpclient は何でもかんでも RuntimeError になって不便だった。
0233デフォルトの名無しさん
2008/08/24(日) 02:19:53gem isntall mechanize で Hpricot と一緒に入るはず
0234232
2008/08/24(日) 11:58:23WWW::Mechanize って Keep-Alive 使えたのか…知らなかった。ありがと。
ただ、割と大きいファイルを落とすつもりなので
>>216 みたいにブロックが渡せるようなのが欲しかったんだけど、
WWW::Mechanize はパっと見無理っぽいですね、残念。
0235デフォルトの名無しさん
2008/08/24(日) 12:09:27ブロックなんてただのブロックなのに
0236デフォルトの名無しさん
2008/08/24(日) 12:24:12読み込んだ部分ごとに出力に書き出してるように見えるけど
0237デフォルトの名無しさん
2008/08/24(日) 12:27:50「これまでのresponseをメモリ内で破棄しつつ最新のみIOに出力する」というダウンローダー芸はNet::HTTPではできないと思う
100MBのファイルを取得したら100MBのファイルはresponseの取得履歴としてメモリ内にどーしても一瞬保持されるはず
0238232
2008/08/24(日) 13:36:57だとすると、ブロック渡しする意味は進捗状況の確認ができるだけってこと?
ちょっと net/http.rb の中見てみた限りでは、BufferedIO にも、ReadAdapter にも
読み込んだデータを保存しているような挙動は確認できなかった。
保存されるとしたら、どこに保存されてるんだろう。
実際、read_body にブロック渡した場合と渡さない場合で
HTTPResponse#body の挙動が変わるようだ
http = Net::HTTP.start("www.example.com", 80)
p http.request_get("/index.html") {|req| req.read_body{} }.body
# >> #<Net::ReadAdapter>
http = Net::HTTP.start("www.example.com", 80)
p http.request_get("/index.html") {|req| req.read_body }.body
# >> "<html><head>...."
0239デフォルトの名無しさん
2008/08/24(日) 17:58:12別の.ymlファイルのノードを参照するのって
どうすれば良いんでしょうか?
0240デフォルトの名無しさん
2008/08/24(日) 21:23:42できない。
やるとしたら
s = ''
s << File.read('file1.yml')
s << File.read('file2.yml')
p YAML.load(s)
とするしかない。
0241デフォルトの名無しさん
2008/08/24(日) 21:24:42>読み込んだ部分ごとに出力に書き出してるように見えるけど
部分的に書き出しても、書き出し先がStringIOオブジェクトだから
結局は全部メモリに入る。
0242デフォルトの名無しさん
2008/08/24(日) 21:27:30>現存するクラスを完全に上書きしたいです
Rubyは既存クラスを自由に書き換え可能だから、「完全に上書き」する必要はないと思うけどなあ。
もしよければ、既存クラスを書き換えるのではなく完全に上書きしたい理由を語ってみてください。
なにか新しい発見があるかも。
0243デフォルトの名無しさん
2008/08/24(日) 22:58:02def self.hoge
puts 'Hoge'
end
end
class B
include A
end
これで A.hoge が B.hoge という形に mix-in されないのはどうしようもない?
継承だったらクラスメソッドも継承されるみたいなんだけど
0244デフォルトの名無しさん
2008/08/24(日) 23:30:15こゆことがしたい?
module A
def hoge
puts 'Hoge'
end
end
class B
extend A
end
0246デフォルトの名無しさん
2008/08/25(月) 00:30:260247デフォルトの名無しさん
2008/08/25(月) 00:40:24ええっと、どういう風に書きたいってこと?
0248243
2008/08/25(月) 01:14:50def self.hoge # クラスメソッド
puts 'Hoge'
end
def fuga # インスタンスメソッド
self.class.hoge # self がどのクラスのインスタンスかによって変えたい
end
end
class B
include A
# B は hoge を再定義するかもしれないけど、しなくてもいいようにしたい
end
b = B.new
b.fuga # B で再定義されていれば B.hoge、そうでなければ A.hoge が使われるようにしたい
# もしくは、
class C
include A
hoge # こういうふうにclassのコンテキストで呼び出したり・・・
end
だいたいこんな感じになってくれるとうれしいです。
0249デフォルトの名無しさん
2008/08/25(月) 04:31:05はじめてRubyでスクリプト書いてみました
下記コードでうまいこと画像を保存できたのですが、なぜかアニメーションGIFがぶっ壊れてます
RubyでアニメーションGIFを扱うことは不可能なんでしょうか
もし可能であればライブラリや書き方など教えてほしーです
require 'open-uri'
def main
# ニコニコ動画の画像があるパス
url = 'http://www.nicovideo.jp/img/tpl/head/icon/nico/'
# 画像のパスを全部いれておくための配列
image_url_list = []
# ローカルの保存先のパス
savepath = "D:/Data/IMG/"
# URLの生成
0.upto(10) do |i|
image_url_list << url + "%03d" % i + ".gif"
puts image_url_list
end
# 画像を保存
image_url_list.each do |image_url|
filename = File.basename(image_url)
File.open(savepath + filename, "w"){|output|
open(image_url){|data|
output.write(data.read)
}
puts("#{filename} has saved.")
}
end
end
main
0250デフォルトの名無しさん
2008/08/25(月) 05:21:270251デフォルトの名無しさん
2008/08/25(月) 05:30:51朝っぱらからありがとうございます
バイナリモードっていうのがあったんですね
あざーっす!
0252デフォルトの名無しさん
2008/08/25(月) 07:53:27こんな話?
irb(main):001:0> module M
irb(main):002:1> def self.included(m)
irb(main):003:2> m.module_eval do
irb(main):004:3* def self.foo; p :foo; end
irb(main):005:3> end
irb(main):006:2> end
irb(main):007:1>
irb(main):008:1* def bar; p :bar; end
irb(main):009:1> end
=> nil
irb(main):010:0> class C
irb(main):011:1> include M
irb(main):012:1> end
=> C
irb(main):013:0> C.foo
:foo
=> nil
irb(main):014:0> C.bar
NoMethodError: undefined method `bar' for C:Class
from (irb):14
from :0
irb(main):015:0> C.new.bar
:bar
=> nil
irb(main):016:0> class C
irb(main):017:1> foo
irb(main):018:1> end
:foo
=> nil
0253デフォルトの名無しさん
2008/08/25(月) 08:16:450255デフォルトの名無しさん
2008/08/25(月) 09:50:20headを読んで色々処理してからbodyを読むようにしたいんですけど
そういうのってnet/httpとか使って自作しないといけないんでしょうか
0256デフォルトの名無しさん
2008/08/25(月) 20:35:17h = YAML.load_file(path)
@username ||= h[:user]||h[:username]||h[:id]||h['user']||h['username']||h['id']
@password ||= h[:pass]||h[:password]||h['pass']||h['password']
end
使うキーくらいマニュアルに書いておけよ俺
>>255
はい
HEAD対応open-uriの改造をスクリプトの初めで上書きするモンキーパッチを誰かが作ってたと思ったが忘れた
とここまで書いてHTTPヘッダのことかいなと思う
まあどっちもたいして変わらんな
open-uriはFile.openが思想のベースなのでファイル読み込みは避けられないよ
0257デフォルトの名無しさん
2008/08/25(月) 20:41:550258デフォルトの名無しさん
2008/08/25(月) 20:52:07Rubyではね
本来はゲリラパッチで、Rubyのようなシステム的に許されたなあなあのクラス上書きとはちょっと違う
代わりにduck punchingという言葉を使おうと言ってる人が一部にいるけど
本気でRailsの一部の人なので全く広まる気配はない
0259デフォルトの名無しさん
2008/08/25(月) 20:56:280260デフォルトの名無しさん
2008/08/25(月) 21:01:33s = if cond then 'yes' else 'no' end
s = if cond then
'yes'
else
'no'
end
if cond then
s = 'yes'
else
s = 'no'
end
まあ好きにせえ
3番目は微妙に嫌われてるということは知っておくといい
「Rubyのif構造は値を返す!!」とか興奮した初心者が多用するが冷静に読むと面倒だ
0261デフォルトの名無しさん
2008/08/25(月) 21:48:19あるJavaの有名人が『三項演算子は難しい機能だからif文を使いなさい』といってた。
だからif文のほうがいいよ。
だって有名人のいうことだからね!
0262デフォルトの名無しさん
2008/08/25(月) 21:55:44if __FILE__ == $0
0263デフォルトの名無しさん
2008/08/25(月) 22:02:40そのif文の中はCで言うmainにあたるってとこかな
そこより上で定義したclassのテスト的なコード書いて
おいて、requireされた場合には実行させないための
おまじない
0264デフォルトの名無しさん
2008/08/25(月) 22:06:41なるほど、そういうことか
�d
0265デフォルトの名無しさん
2008/08/25(月) 22:07:34>>263の補足というか、googleで、そのまんま "__FILE__ == $0" で検索して
トップに出てくるページを見ればいいと思うんだ。
初心者スレでググれ!って言うのは無し?
0266デフォルトの名無しさん
2008/08/25(月) 23:28:23それは知らなかった。
勉強になった。
機会をくれてありがとう。
0267デフォルトの名無しさん
2008/08/26(火) 00:29:10似たような感覚として、
・do 〜 end ブロック
・map と inject を除く {} ブロック
の返り値を利用するのはなんかピンと来ない
0268デフォルトの名無しさん
2008/08/26(火) 00:39:09速く回答しやがれ!
0269デフォルトの名無しさん
2008/08/26(火) 00:41:04使ってみてから質問しろ。
あほか
0270デフォルトの名無しさん
2008/08/26(火) 00:49:510271デフォルトの名無しさん
2008/08/26(火) 00:53:35OS環境とか文字コードとか、状況を具体的に説明してごらん。
0272デフォルトの名無しさん
2008/08/26(火) 00:57:32rubyだったら開発者がジャップだからネイティブで対応してるかと
思って質問してるんです!!!
0273デフォルトの名無しさん
2008/08/26(火) 00:59:40dl/structモジュールで構造体を入れ子にできないのですかねぇ?
そこの部分だけcharの配列で埋めて後で置き換えるしかないのでしょうか・・・
0274デフォルトの名無しさん
2008/08/26(火) 01:17:20できる。
でもRubyよりも先に日本語の使い方と質問の仕方を勉強することをおすすめする。
0275デフォルトの名無しさん
2008/08/26(火) 07:20:540276デフォルトの名無しさん
2008/08/26(火) 07:36:190277デフォルトの名無しさん
2008/08/26(火) 08:03:16Excelの列番号をA1形式からR1C1形式へ変換するプログラムを書こうとしています。
A→1
AA→27
IV→256
てな感じで。
パッと思いついたコードとしては
require 'jcode'
num = 0
str = "IV"
str.each_char{|char| num = num * 26 + char.to_i(36)-"A".to_i(36) + 1}
p num #=>256
ですが、スマートじゃない気がしてなりません。
もっとスマートな書き方有りますでしょうか?
実行環境はWinXP、Ruby1.8.6です。
0278デフォルトの名無しさん
2008/08/26(火) 08:17:18ユニコードは日本語じゃなとでも言いたいわけ?
0279デフォルトの名無しさん
2008/08/26(火) 08:28:52あとは ('A'..'Z').to_a.index(char) で 0 .. 25 に変換とか。
# ところで require 'jcode' は全角アルファベット対応?
0280デフォルトの名無しさん
2008/08/26(火) 08:30:10Windowsが異常なだけ。
0282デフォルトの名無しさん
2008/08/26(火) 08:38:590283デフォルトの名無しさん
2008/08/26(火) 09:11:19単にString#each_charがjcodeで拡張されてるメソッドなので入れなきゃ使えないだけで・・・。
injectについてちょっと調べてみます。ありがとございます。
0284デフォルトの名無しさん
2008/08/26(火) 10:22:25('A'..'ZZ').to_a.index('IV') + 1
256
0285デフォルトの名無しさん
2008/08/26(火) 10:47:07これは目からウロコ。
'A'..'ZZ'がZからAAに繰り上げしてくれるとは知らなかったです。
有難う御座いました。
0286デフォルトの名無しさん
2008/08/26(火) 10:55:450287デフォルトの名無しさん
2008/08/26(火) 11:00:17初心者は自分の手で作ることを嫌がったら駄目だぞ
だいたい、どんなことがなぜ望ましくないかなんて耳で聞いだだけじゃわからんじゃないか
Net::HTTPでgetとheadとpostをするのは基本
ラッパーメソッドを作るのも基本
ヘッダやクッキーの処理にも手を出して、うわ何これめんどくせー、となった時点で既存の外部ライブラリを探す
こうすれば、その外部ライブラリの中の挙動もある程度推測できるし、不足点やバグがあったときに対処もできる
最初から外部ライブラリだけを使ってしまったのではなかなかこうはいかない
ということで、gemで "httpclient" をインストールすれ
HEADリクエストにも対応している
irb> require 'rubygems'
irb> require 'httpclient'
irb> client = HTTPClient.new
irb> res = client.head('http://www.google.com/')
irb> p res.header['Location']
["http://www.google.co.jp/"]
0288デフォルトの名無しさん
2008/08/26(火) 11:03:19irb> p "Z".succ
"AA"
___l___ /、`二//-‐''"´::l|::l l! ';!u ';/:::l ', ';::::::l ';:::::i:::::
ノ l Jヽ レ/::/ /:イ:\/l:l l::l u !. l / ';:::l ', ';:::::l. ';::::l:::::
ノヌ レ /:l l:::::lヽ|l l:l し !/ ';:l,、-‐、::::l ';::::l::::
/ ヽ、_ /::l l:::::l l\l ヽ-' / ';!-ー 、';::ト、';::::l:::
ム ヒ /::::l/l::::lニ‐-、`` / /;;;;;;;;;;;;;ヽ! i::::l:::
月 ヒ /i::/ l::l;;;;;ヽ \ i;;;;;;;;;;;;;;;;;;;l l::l:::
ノ l ヽヽノ /:::l/:l /;;l:!;;;;;;;;;', ';;;;;;;;;;;;;;;;;ノ l:l::
 ̄ ̄ /::::;ィ::l. l;;;;!;;;;;;;;;;;l `‐--‐'´.....:::::::::!l
__|_ ヽヽ /イ//l::l ヽ、;;;;;;;ノ.... し :::::::::::::::::::::ヽ /!リ l
| ー /::::l';!:::::::::::::::::::: u ', i ノ l
| ヽー /イ';::l ’ し u. i l l
| /';:';:!,.イ し 入 l l U
| /,、-'´/ し / ヽ、 u し ,' ,' l
| /l し _,.ノ `フ" ,' ,' ,ィ::/:
| /::::::ヽ ヽ / し ,' ,' / l::
| /::::::::::::`‐、 し ', / u ,、-'´ l,、-
| ``‐-、._::::::::::` ‐ 、 ',/ , -'´`'´ ,-'´
| _,、-‐'"´';:::::::::イ:l';:::` ‐ 、._____,、-‐'"´ u /
| | | | \ l::/ l::::::/リ ';:::::lリ:::::l';:::l l:l:::::l\ u /
| | | |
0289デフォルトの名無しさん
2008/08/26(火) 11:08:100290デフォルトの名無しさん
2008/08/26(火) 11:12:54まあ 9.succ が 0 ではなく 10 なんだから予想の範疇ではあるが
'10'.succ が "11" なのも変態認定してよい
0291デフォルトの名無しさん
2008/08/26(火) 11:30:480292デフォルトの名無しさん
2008/08/26(火) 11:43:37というか Ruby の succ への拘りは異常
succ を便利に使うのってどの言語由来?
0293デフォルトの名無しさん
2008/08/26(火) 11:50:38rubyが異常なわけではない
0294デフォルトの名無しさん
2008/08/26(火) 14:29:46{URL => HTTPヘッダ} というハッシュを1個のpstoreに保存して、スクリプトの最初に完全に読み込んで使ってるんだけど、
もっといいのあるかな
0295デフォルトの名無しさん
2008/08/26(火) 14:41:59初心者スレ的にはハッシュとPStoreでサイト用にカスタマイズするのが一番だと思う
マルチスレッドでアクセスされてPStoreが壊れそうならsqlite3とかでデータベース使え
Railsのどこかに何かあるような気もするが、たぶん超ごっついと思われ
0296デフォルトの名無しさん
2008/08/26(火) 20:29:540297デフォルトの名無しさん
2008/08/26(火) 22:44:20揮発してもかまわないなら memcached
0298デフォルトの名無しさん
2008/08/27(水) 02:07:50[7,6,5].map.with_index{|x, i| x*i}
ができないので、かわりに
[7,6,5].each_with_index.map{|x, i| x*i}
と、やるのを見かけました。
ならば inject.with_index 的な意味で
[7,6,5].each_with_index.inject(0){|r, x, i| r+x*i}
と、できるのでは!と思ってやったところ、
in `*': no implicit conversion from nil to integer (TypeError)
というエラーがでます。
色々試したところ
[7,6,5].each_with_index.inject(0){|r, x, i| p x}
とやると
[7, 0]
[6, 1]
[5, 2]
と出力されました。
injectの第2ブロック引数 には
[元配列の要素,インデックス] という配列が
渡されているようです。
(第3ブロック引数は何も渡されない)
なーんか、違和感があるんですけど、そんなことないですか?
0299デフォルトの名無しさん
2008/08/27(水) 02:34:14[7,6,5].each_with_index.inject(0){|r, (x, i)| r+x*i}
0300デフォルトの名無しさん
2008/08/27(水) 18:02:070301デフォルトの名無しさん
2008/08/27(水) 18:12:11Rails初心者スレってないんだよね、そう言えば
需要が微妙だけど…
0302デフォルトの名無しさん
2008/08/27(水) 18:14:29Rubyで一般的な開始と終了の変数名のペアってありますか?
文法ミスにならないようにbeginとendを慎重に使うというのは勘弁してください
0303デフォルトの名無しさん
2008/08/27(水) 18:21:470304デフォルトの名無しさん
2008/08/27(水) 18:36:52opening-close(closing)
beg ed
0305デフォルトの名無しさん
2008/08/27(水) 20:21:490306デフォルトの名無しさん
2008/08/27(水) 20:27:060307デフォルトの名無しさん
2008/08/27(水) 20:27:280308デフォルトの名無しさん
2008/08/27(水) 20:50:19が、文字列の s と 配列要素の e と被るのが難点
0309デフォルトの名無しさん
2008/08/27(水) 21:00:29@begin と @end
0310デフォルトの名無しさん
2008/08/27(水) 21:01:43>範囲の開始と終了を表す変数名
from と to でいいような気がしてきた
0311デフォルトの名無しさん
2008/08/27(水) 21:12:25ファイルの移動とか
文字列の変換とか
0312デフォルトの名無しさん
2008/08/27(水) 21:19:300313デフォルトの名無しさん
2008/08/27(水) 23:40:10そんなことないと思うけどなー
変換が絡む処理なら src と dst (source と destination) だよ
0314デフォルトの名無しさん
2008/08/27(水) 23:41:41from,toじゃなくてsrc,dstかメモっとこ
0315デフォルトの名無しさん
2008/08/27(水) 23:52:09いや、フルスペルで書くと長すぎるが
0316デフォルトの名無しさん
2008/08/28(木) 01:18:470317デフォルトの名無しさん
2008/08/28(木) 02:27:590318デフォルトの名無しさん
2008/08/28(木) 05:26:58dst と書かれていても何のことか悩んでググる自信がある
0319デフォルトの名無しさん
2008/08/28(木) 07:58:21in - out
src -dst
from - to
begin - end
ruby - ?
0320デフォルトの名無しさん
2008/08/28(木) 08:23:45k(ey) v(alue) - ペア構造のキー値
r(et) e(lement) - reduce の 第一引数、第二引数
読んでもらおうという気が見えないコードが書けます
0321デフォルトの名無しさん
2008/08/28(木) 13:13:24うっひょーこの関数全部フラットでこのまま覚えるのクラスによるクラス分けとかないの
配列(ハッシュ)からペア取り除くのに unset($array['key']) って書かないといけないのね
ずっと前にちょっとだけ齧った Perl4 を思い出した
0322デフォルトの名無しさん
2008/08/28(木) 17:20:00メソッドならレシーバいるけど
0323デフォルトの名無しさん
2008/08/28(木) 17:47:360324デフォルトの名無しさん
2008/08/28(木) 17:53:45配列は配列クラスのインスタンスで操作はメソッドを経由して行うとか言うことは確かにないな
PHP5はクラスを作れるが、内部は普通にPHP関数での遣り取りだ
インターフェースとしてのオブジェクト指向だね
0325デフォルトの名無しさん
2008/08/28(木) 18:18:09#!/usr/local/bin/ruby
print "Content-type: text/html\n\n"
require "csv"
csv = CSV.open('file.csv,'r')
csv.each_with_index do |line,n|
a[n] = line[0]
b[n] = line[1]
puts
end
print"<html><body>#[a]</body></html>"
print"<html><body>#[b]</body></html>"
csv.close
このプログラムをうpしたのですが内部サーバーエラーが出てしまいます。
自分では間違っているところが見つけられませんでした
どうすれば正常に作動するでしょうか。
回答お願いします。
0326デフォルトの名無しさん
2008/08/28(木) 18:32:58test.rb:5: syntax error, unexpected tIDENTIFIER, expecting ')'
csv = CSV.open('file.csv,'r')
^
test.rb:5: unterminated string meets end of file
0327デフォルトの名無しさん
2008/08/28(木) 18:33:35aもbも初期化されていないので配列かハッシュを代入すると良い
#[a]でなくて#{a}
htmlタグは1度以上出力しないほうが良い
試してないけどぱっと見てこのぐらい
あといきなりCGIよりも一度コマンドラインで試した方がエラーが見えてわかりやすい
0328デフォルトの名無しさん
2008/08/28(木) 19:38:00何か場当り的な網羅性の無いテストを推奨するような作りに見えるんですが
0329デフォルトの名無しさん
2008/08/28(木) 20:05:50俺は reduce は acc(mulator) e(lement) が好きだな。
あ、もちろんコードにあわせて sumとかにすることもあるけど。
0330デフォルトの名無しさん
2008/08/28(木) 20:35:27それは「あんな実行速度の遅いRubyのどこがいいのかわからない」という主張と同質だぞ
0331デフォルトの名無しさん
2008/08/28(木) 22:36:41回答ありがとうございました。
次からはコマンドラインで一度試してみます。
0332デフォルトの名無しさん
2008/08/29(金) 06:33:27メーリングリストの利用自体がはじめてで、安易な行動をとり
皆様に不快な思いをさせてしまいましたこと、心からお詫び申し上げます。
大変申し訳ございませんでした。
0333デフォルトの名無しさん
2008/08/29(金) 06:34:15これはテストメールです。
0334デフォルトの名無しさん
2008/08/29(金) 08:52:27こんなバカでも使えるわかりやすいRuby♥
と、 宣伝材料にしたいところだ。
0335デフォルトの名無しさん
2008/08/29(金) 10:41:33Ruby1.8.6+exerb最新版で固めたプログラム内でnet/httpを使用しています。
そのプログラムはVistaSP1とXPSP2では正常に動作しますが、XPSP3だと接続時に
「接続済みの呼び出し先が一定の時間を過、、、」と出て接続すらできない状態です。
なにかそのあたりの情報がありましたら、ぜひ教えてください。
宜しくお願いします。
0336デフォルトの名無しさん
2008/08/29(金) 15:27:37rubyのせいとかOSのバージョンが違うせいとか考える前に、問題のマシンでちゃんとネットワークに繋がってるのか調べた方がいい。
プロクシなしで普通にブラウザで外が見えるのか、とか。
0337デフォルトの名無しさん
2008/08/29(金) 19:48:45sqliteより、RubyレベルでまーしゃるしたHashのほうが速くて便利だと思う
0338デフォルトの名無しさん
2008/08/29(金) 22:11:31Webブラウザのように実際的な短時間でサムネイル画像を取得したいです
1個ずつサムネ画像URLをアクセスしてると10秒くらいずっとだらだらアクセスしててなんか申し訳ないです
(「申し訳ないのでスクリプトで取得すること自体を止める」ということは考えてないですごめんなさい)
スレッドをいくつか生成してアクセスすれば同じように所要時間を短縮できますか?
0339デフォルトの名無しさん
2008/08/29(金) 22:20:59「多くの場合必ずしも好ましくない」というアドバイスが多すぎる
昔からの有名なものに「サーバ負荷考えてファイルアクセスのたびにスリープ入れろ」というのがあるが、
Keep-Alive全盛の今となってはクライアント側でスリープされて数十KBの接続を引き伸ばされるくらいなら
複数接続してもらってとっとと完了してもらって手放してもらえたほうがまだ有難かったりする
0340デフォルトの名無しさん
2008/08/29(金) 22:53:53Rubyのスレッドってそういう動作時間縮める用途に使えたっけ?
0341デフォルトの名無しさん
2008/08/29(金) 23:00:460342デフォルトの名無しさん
2008/08/29(金) 23:34:35>>338
Net::HTTP.start(host, 80){|http|
# 各画像ファイルをこのブロックの中でGET
}
こんな感じで多分望みの挙動になると思う
0343デフォルトの名無しさん
2008/08/29(金) 23:42:39require 'benchmark'
uris = %w(http://www.yahoo.co.jp/ http://pc11.2ch.net/tech/ http://www.yahoo.com/).map{|e| URI(e)}
Benchmark.bm(2) do |x|
x.report{
uris.each do |uri|
uri.read
end
}
end
sleep 2
Benchmark.bm(2) do |x|
x.report{
threads = Array.new
uris.each do |uri|
threads.push(Thread.new { uri.read })
end
threads.each{|thread| thread.join}
}
end
# 結果
user system total real
1.150000 0.080000 1.230000 ( 2.655373)
user system total real
1.210000 0.060000 1.270000 ( 1.583636)
0344デフォルトの名無しさん
2008/08/29(金) 23:52:010345デフォルトの名無しさん
2008/08/30(土) 00:21:010346デフォルトの名無しさん
2008/08/30(土) 01:55:11という書き方に違和感を感じるとともに、Rubyらしさも感じます。
0347デフォルトの名無しさん
2008/08/30(土) 02:36:560348デフォルトの名無しさん
2008/08/30(土) 07:31:27html = uri.read
case uri.host
when /www.example.com/ then
parser = TableParser_www_example_com
when /www.example.jp/ then
parser = TableParser_www_example_jp
end
datatable = parser::parse(html)
最初は文字列として連結して eval("#{classname}.#{method}") するしかないよなと思ってたんだが
普通にメソッド呼び出しのドットがくっついたときはさすがに参った
0349デフォルトの名無しさん
2008/08/30(土) 10:14:300350デフォルトの名無しさん
2008/08/30(土) 12:13:35あなたの使ってるWebサーバの設定を見直してみることをお勧めする
0351デフォルトの名無しさん
2008/08/30(土) 17:51:26それで、rubyのホームにあるAPIは読みにくいので、どこかお勧めないでしょうか。
英語のサイトを探してもないみたいなんで・・
rubyはリテラルが多いので、少し使わないとすぐ忘れちゃうんですよね。
0352デフォルトの名無しさん
2008/08/30(土) 18:06:25ttp://doc.loveruby.net/refm/api/
0353デフォルトの名無しさん
2008/08/30(土) 18:08:17これが見づらいということなんだよねぇ?
ttp://www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html
0354デフォルトの名無しさん
2008/08/30(土) 18:21:251.9のそれも使いやすそうですね。
文章多めで説明長・解説つきなら英語でやった方がいいんじゃないですか。
で、日本語のは短い説明だけで、よくアクセスされる必要な記事・解説は、英語の翻訳で済ますと効率的な設計かなと思います。
もしjavascriptでfile i/oができるなら、rubyじゃなくて、jsつかうんで。なぜなら、言語の機能よりも、文章がまとまってるって事が大事じゃないでしょうか。
ルビリストとかモルモンぽいんじゃなく、まともな人なら、コレが妥当なところでしょうか。
http://www.ruby-doc.org/core-1.8.7/index.html
0355デフォルトの名無しさん
2008/08/30(土) 18:29:33JavaScript使いたいならJavaScript使ってくださいとしか
0356デフォルトの名無しさん
2008/08/30(土) 18:30:55単純な制御とか処理はいちいちAPI探すの面倒だし、イテレーターつかわないんでwhile/forでいいよ。
OOも魅力的だけど、制御とか処理とかと関係ないし、肝心なOOのライブラリがないじゃんw
0357デフォルトの名無しさん
2008/08/30(土) 20:53:45rubyは違うんですか?
プログラムは全くの初心者です・・・
0358デフォルトの名無しさん
2008/08/30(土) 20:57:09プログラムの基本は入力(と処理と以下略)と出力であって、
Rubyは入力だけを受け取って出力だけを行います
てか何か解説とか入門とか読んで試してるんではないん?
0359デフォルトの名無しさん
2008/08/30(土) 21:04:41Rubyの場合は出力先を指定しなければいけないのですか?
メモ帳とか・・・?
>>1のたのしいRubyをこの前買って 疑問に思ったから書き込みました
0360デフォルトの名無しさん
2008/08/30(土) 21:49:51以下のような感じのやつで2を表示させたいですが1で繰り返しが終わります。
#!/usr/bin/ruby -Ku
@i=[1]
@i.each{|a|
p a
b=2
@i << b
@i.delete(a) if b != nil
}
0361デフォルトの名無しさん
2008/08/30(土) 22:41:54挿入して削除したら、増えてないじゃん
0362デフォルトの名無しさん
2008/08/30(土) 22:46:38javaだと例外飛んで怒られるくらいだし
0363デフォルトの名無しさん
2008/08/30(土) 23:15:09単純に、
a = 0
while a < @i.size do
...
a += 1
end
と書けば?
0364デフォルトの名無しさん
2008/08/30(土) 23:31:23遠くからすみません。
そんな書き方できるんですね。
ありがとうございました。
でも、何で括弧がいるんだという辺りは
よく理解できませんでした。
勉強します。
0365デフォルトの名無しさん
2008/08/30(土) 23:42:04書き方へんなのでごめんなさい
回している配列が途中で条件によって増えていって
そうじゃない場合は増えなくなるので最後には
配列がなくなってほしかったんです。
って書いてて意味が分からなく。。
>>362
何となく駄目ってのは分かるのですが
今作ってるやつだと
それ以外思いつかなったので。
>>363
ありがとう
最後にretryつけたらそれでもいけたので
駄目だったらその方法試してみます。
0366デフォルトの名無しさん
2008/08/31(日) 00:26:55で、新たに増えた配列の要素も、要素増減の処理に使うんだ
…なんかどっか設計が間違ってるような気もするが…
0367デフォルトの名無しさん
2008/08/31(日) 00:43:190368デフォルトの名無しさん
2008/08/31(日) 01:25:17ややこしいんじゃないか
0370デフォルトの名無しさん
2008/08/31(日) 02:18:00なんかそんなかんじするね
arr = [1]
while !arr.empty?
elem = arr.shift
value = somefunc(elem)
unless value.nil?
arr << value
end
end
わかんねーや
0371デフォルトの名無しさん
2008/08/31(日) 03:32:490372デフォルトの名無しさん
2008/08/31(日) 07:06:42s1="あいう"
p s1.length
ar=s1.split (//)
p ar.length
日本語文字数を計算するのはコレしかないんですか?
それと、size/lengthは何か違いがあるんですか。
内部の実装で、sizeの方がsizeof (byte) * count
lengthの方が自動で str.split(//).size みたいな遅延評価
とかになってないんでしょうか?
0373デフォルトの名無しさん
2008/08/31(日) 07:57:05jcodeをrequireしてjsize/jlength
内部の実装は知らんがsize/lengthは同じだろ
0374デフォルトの名無しさん
2008/08/31(日) 14:23:42rb_define_method(rb_cString, "length", rb_str_length, 0);
rb_define_method(rb_cString, "size", rb_str_length, 0);
再定義しない限り、Cのレベルで実体は同じ処理って事だ。
0375デフォルトの名無しさん
2008/08/31(日) 15:16:59module A
module ClassMethods
def hoge
puts 'Hoge'
end
end
extend ClassMethods
def self.included(m)
super
m.extend(ClassMethods)
end
end
というのが定番。
0376デフォルトの名無しさん
2008/08/31(日) 15:26:160377デフォルトの名無しさん
2008/08/31(日) 15:31:10>>375は>>252
>>376は>>277
0378デフォルトの名無しさん
2008/08/31(日) 21:31:49処理を書くとき、classにした方が素敵ですか?
イテレータはeachの繰り返しにしか使ってないのですが
他に便利な使い方はありますか?
0379デフォルトの名無しさん
2008/08/31(日) 21:46:40メソッドにしないと非常にかっこ悪い
オブジェクト指向におけるクラスの概念はわりと高潔なものだが、
Rubyでは「処理をまとめてnewメソッドでスタートさせるもの」でもいいと思う
特に初心者のうちはクラスの使用条件というものについてうだうだ悩むのは無駄
てきとーにまとめて便利に使いながら自分で考え方見つければいい
あと、eachは基本だが、mapとfind_allの使用頻度と便利度は異常なので、
EnumerableやArrayクラスのメソッドはなるべく早く把握して適宜調べて使えるようになるといい
0380デフォルトの名無しさん
2008/08/31(日) 22:08:58>処理を書くとき、classにした方が素敵ですか?
基本的にはclassにした方が素敵
どこからどこまでをclassにするかは、プログラムの目的や個人の趣向などによる
慣れないうちは設計が難しいので
分かりやすいデータのまとまりを、class化することから始めるのがオススメ
掲示板の1記事をArticleクラスにするとか
0381デフォルトの名無しさん
2008/08/31(日) 22:15:48irb> h(1)
Array
irb> h(1=>2,3=>4)
Array
うわー困るうううっていうかめんどくさいいいい
0382デフォルトの名無しさん
2008/08/31(日) 22:20:13繰り返しじゃないから厳密にはイテレータの話じゃなくなるけど
IO#openみたいに後始末を自動でしたいときにも便利
0383デフォルトの名無しさん
2008/08/31(日) 22:22:21それ関係ないだろ
単にensure節の効果だ
0384デフォルトの名無しさん
2008/08/31(日) 22:22:480385デフォルトの名無しさん
2008/08/31(日) 22:32:320386デフォルトの名無しさん
2008/08/31(日) 22:40:10def method(*para) は引数がまず配列になるからな
キーワード引数風ハッシュの処理するのもけっこうめんどくさい
なんかうまいライブラリとかないもんかね
0387デフォルトの名無しさん
2008/08/31(日) 22:55:49def h(a, *b) でいいんじゃないの?
0388デフォルトの名無しさん
2008/08/31(日) 23:52:11ActiveSupportを使うと、*argsで受けて、options = args.extract_options!
0389デフォルトの名無しさん
2008/09/01(月) 01:48:09検索してもほとんど情報が出てこないんですが
0390デフォルトの名無しさん
2008/09/01(月) 02:41:35PHPとRubyでは、
どっちを学んだら相性いいですか?
0391デフォルトの名無しさん
2008/09/01(月) 03:52:48そりゃここじゃなくてperlのスレで聞きなよ
その時は「相性」という言葉を、どういう意味で使ってるのかも添えといた方がいい
0392デフォルトの名無しさん
2008/09/01(月) 06:55:480393デフォルトの名無しさん
2008/09/01(月) 08:21:08趣味だってんなら好きにしろ
0394デフォルトの名無しさん
2008/09/01(月) 08:47:10WebやりたいならPHP、小物アプリならRuby
本格的アプリならJavaやC#
0395デフォルトの名無しさん
2008/09/01(月) 10:32:080396デフォルトの名無しさん
2008/09/01(月) 10:46:230397デフォルトの名無しさん
2008/09/01(月) 10:58:01順番に意味はない。
0398デフォルトの名無しさん
2008/09/01(月) 11:11:56ぜんぼ覚えるの大変だなw
C++は習得できなかったからないの?
JRubyがあるから、今のうちにJavaかな。
0399デフォルトの名無しさん
2008/09/01(月) 19:05:300400デフォルトの名無しさん
2008/09/01(月) 20:47:46結論からいうとPythonを覚ればそれでなんでも出来る。
軽くて速くてソースが美しいPython。文書も豊富でライブラリも充実してるPython。
仕様はかっちり、世界規模で開発されているPython(Google, MS, Yahoo!, etc.)
オープンソース系ならほぼもうPythonが事実上の標準言語になってる。
日本だけで閉じこもってて、遅くてソースが汚くて開発もいい加減なRubyとかやっても
無駄に終わる可能性があるよ
0401デフォルトの名無しさん
2008/09/01(月) 21:36:570402デフォルトの名無しさん
2008/09/01(月) 21:39:560403デフォルトの名無しさん
2008/09/01(月) 21:54:31hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
array_two.each do |b|
hash[b] << a
end
end
hash # => {}
でhashに値が入らないのは何故でしょうか?
{:a=>[1,2,3], :b=>[1,2,3], :c=>[1,2,3]}
となってほしいのですが。一方、下はOKです。
hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_one.each do |a|
array_two.each do |b|
hash[b] += 1
end
end
hash # => {:a=>3, :b=>3, :c=>3}
0404デフォルトの名無しさん
2008/09/01(月) 21:57:34hash = Hash.new([])
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
array_b.each do |b|
hash[b] << a
end
end
hash # => {}
hash = Hash.new(0)
array_a = [1, 2, 3]
array_b = [:a, :b, :c]
array_a.each do |a|
array_b.each do |b|
hash[b] += 1
end
end
hash # => {:a=>3, :b=>3, :c=>3}
???
0405デフォルトの名無しさん
2008/09/01(月) 21:59:23もう、パイソンと関係ないけおd
0406デフォルトの名無しさん
2008/09/01(月) 22:08:05は何か意味あるの?
0407デフォルトの名無しさん
2008/09/01(月) 22:10:44ないです。単にシンボルの方がタイプ数が少ないという理由です。
0408デフォルトの名無しさん
2008/09/01(月) 22:13:16カッコ付きのHash.newは、該当キーがなかったときにその引数オブジェクト
自体を返す。つまり、
x = []
hash = Hash.new(x)
each/each
if hash.has_key?(b)
hash[b] << a # ここには絶対来ない
else
x << a
end
end/end
みたいな感じ。
たぶんやりたいことは、ブロック付きのnewで
hash = Hash.new {|h, k| h[k] = [] }
じゃないかな。該当キーがなかったときに、
新しく空の配列を作って hash に代入する。
0409403
2008/09/01(月) 22:29:06> hash = Hash.new {|h, k| h[k] = [] }
> じゃないかな。該当キーがなかったときに、
> 新しく空の配列を作って hash に代入する。
その通りなんですが、
x = Hash.new([])
x[:a] << 1
x[:b] << 2
x # => [1, 2]
これは大丈夫なのに、何でだろうと思って。
0410404
2008/09/01(月) 22:32:02出直してきます。
0411デフォルトの名無しさん
2008/09/01(月) 22:41:51タイプ数が少ないって何のこと?
0412デフォルトの名無しさん
2008/09/01(月) 22:42:16>> x[:a] << 1
=> [1]
>> x
=> {}
>> x[:b] << 2
=> [1, 2]
>> x
=> {}
>> x.default
=> [1, 2]
0413403
2008/09/01(月) 22:50:04>411
文字列じゃなくシンボルを使った理由を聞かれているものと勘違いしました。
>412
なるほどやっと分かりました。
というか、探したらちゃんと書いてあった・・・orz
http://www.ruby-lang.org/ja/man/html/trap_Hash.html
0414デフォルトの名無しさん
2008/09/01(月) 23:22:22rubyのhtml help入れれ
0415デフォルトの名無しさん
2008/09/02(火) 03:07:580416デフォルトの名無しさん
2008/09/02(火) 17:09:52>> require "logger"
=> true
>> log = Logger.new("foo.log", 'dairy')
=> #<Logger:0x33fe50 ...以下略>
>> log.info "foo"
=> true
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.
>> log.info "foo"
Logger::ShiftingError: Shifting failed. 'foo.log.20080902' already exists.
ログを出力しようとするたびに ShiftingError が出るんだけどこれって何の冗談?
うちの環境は↓
$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
0417デフォルトの名無しさん
2008/09/02(火) 17:11:21writeに改名しろ
0418416
2008/09/02(火) 17:17:46しかし引数間違っててもスルーって不親切だよなあ
0419デフォルトの名無しさん
2008/09/02(火) 17:21:31これからはpythonの時代だろks
うぇwっうぇwwwww
0420デフォルトの名無しさん
2008/09/02(火) 17:33:450421デフォルトの名無しさん
2008/09/02(火) 17:34:42育ちの良さがにじみ出てしまっているな
0422デフォルトの名無しさん
2008/09/02(火) 17:37:31そうじゃないと都合悪すぎるだろ
やろうと思えば複数言語の比較検討ができるとか断じてあってはならない
0423デフォルトの名無しさん
2008/09/02(火) 17:41:190424デフォルトの名無しさん
2008/09/02(火) 17:47:220425デフォルトの名無しさん
2008/09/02(火) 18:27:19醜く大きくなったおっぱいそんは後は垂れるだけ。
0426デフォルトの名無しさん
2008/09/02(火) 18:43:070427デフォルトの名無しさん
2008/09/02(火) 18:57:200428デフォルトの名無しさん
2008/09/02(火) 20:16:150429デフォルトの名無しさん
2008/09/02(火) 20:36:26もともと巨乳好きだが最近貧乳にも興味あり
0430デフォルトの名無しさん
2008/09/02(火) 21:07:590431デフォルトの名無しさん
2008/09/02(火) 21:13:210432デフォルトの名無しさん
2008/09/02(火) 21:31:360433デフォルトの名無しさん
2008/09/02(火) 22:32:23「ワンツー」と日本語が入力できないんですが、どうしたらいいですか?
半角英数しか使えないよ
0434デフォルトの名無しさん
2008/09/02(火) 22:35:350435デフォルトの名無しさん
2008/09/02(火) 23:04:50ちなみにタイトルバーを右クリックすると編集用のショートカットキーコンボがわかるので利用するといい
0436デフォルトの名無しさん
2008/09/03(水) 00:17:02慣れるまでは全部半角英数でやるのが無難
0437デフォルトの名無しさん
2008/09/03(水) 00:17:24ありがとう。解決しました。
>435
よくわからない。
範囲指定(K)ってあるけどシフト、ctrl、altと組み合わせても発動しないし
というかセーブする方法がまだ出てきてなくてこの先生きのこれるか心配です
0438デフォルトの名無しさん
2008/09/03(水) 00:20:430439デフォルトの名無しさん
2008/09/03(水) 01:09:46えーとだな、コマンドプロンプト(DOSプロンプト)は、Alt+スペース で右クリックメニューの1階層目が開く
で、Eを(単独で)押すと編集メニューがさらに開いて、貼り付けとかが選べる
たとえば、クリップボードにあるURLを貼り付けたい場合は「Alt+スペース、E、P」の順にリズミカルに押せばいい
で、範囲選択だが、これは「Shift+方向キー」でコピー元の範囲選択を矩形で開始できる機能だ
コピーしたい部分を選択し終わったらEnterを押すと、それまでの反転部分が改行つきでクリップボードに入る
ぶっちゃけ使用頻度は高くないし、マウスで範囲を選んでEnterすれば同じことなのでありがたみも薄い
0440デフォルトの名無しさん
2008/09/03(水) 01:21:060441デフォルトの名無しさん
2008/09/03(水) 01:27:58Rubyforgeをgemコマンドで利用するのがデファクトスタンダード
CPANほどには洗練されていないし、CPANほどには無闇大量に登録されてない(そもそも少ないというかPerlが異常)
Windows版Rubyなら、最初からgemコマンドが使えたはず
LinuxとかBSDとかの場合はrubygemsのような名前のパッケージがあると思われ
0442デフォルトの名無しさん
2008/09/03(水) 01:31:52ブラウザでみれるようなの。
0443デフォルトの名無しさん
2008/09/03(水) 01:32:39利用の形態はgemコマンドということね。
0444デフォルトの名無しさん
2008/09/03(水) 01:33:57http://rubyforge.org/
# rubyforgeでぐぐれ、と書こうとしたが、ぐぐったらトップが出てこなかった。
0445デフォルトの名無しさん
2008/09/03(水) 09:10:12解説してるサイトに書いてある「$ make」の意味が分かりません。
0446デフォルトの名無しさん
2008/09/03(水) 09:16:33xyzzyでshell起動すると、エディタ画面でコマンドプロンプトが使えるよ。
Alt+x → 'shell' と打ってリターン
0447デフォルトの名無しさん
2008/09/03(水) 10:15:09makeコマンドを実行しろってこと。
0448デフォルトの名無しさん
2008/09/03(水) 11:06:53make は UNIX コマンドだ(語弊あり)
UNIXやらLinuxやらにはたいてい入ってるが、Windowsには普通入ってない
make だけをどっかからインストールするといいが、
プロンプトが $ であるところから見て、そのサイトはWindows考慮してないんじゃないかとも思う
0449デフォルトの名無しさん
2008/09/03(水) 11:20:500450デフォルトの名無しさん
2008/09/03(水) 11:22:390451デフォルトの名無しさん
2008/09/03(水) 11:27:270452デフォルトの名無しさん
2008/09/03(水) 13:28:270453デフォルトの名無しさん
2008/09/03(水) 13:54:400454デフォルトの名無しさん
2008/09/03(水) 14:08:53kwsk
0455デフォルトの名無しさん
2008/09/03(水) 14:12:44実質的にBSDの商用GUIバージョンのヂストリブーションだしwww
MacOSXはINTELもあったんじゃなかったか?
0456デフォルトの名無しさん
2008/09/03(水) 14:17:510457デフォルトの名無しさん
2008/09/03(水) 14:18:01FreeBSDの設定とかよりソラリスをHPで紹介してるのとか凄くない?
0458デフォルトの名無しさん
2008/09/03(水) 14:30:330459デフォルトの名無しさん
2008/09/03(水) 14:30:35変なの居ついたよな
当人はスレに参加しているつもりなのだろう
0460デフォルトの名無しさん
2008/09/03(水) 14:58:430461デフォルトの名無しさん
2008/09/03(水) 15:01:31あの貧困層の宗教で有名なモルモン教だからrubyの洗脳はperlよりもひどいよ
0462デフォルトの名無しさん
2008/09/03(水) 15:02:440463デフォルトの名無しさん
2008/09/03(水) 15:11:240464デフォルトの名無しさん
2008/09/03(水) 15:21:48どっちかってえと公平に受け入れよとわめくほうが宗教っぽい
0465デフォルトの名無しさん
2008/09/03(水) 15:35:520466デフォルトの名無しさん
2008/09/03(水) 17:56:58スレ違いにもほどがあるw
0467デフォルトの名無しさん
2008/09/03(水) 20:40:340468デフォルトの名無しさん
2008/09/03(水) 21:18:200469デフォルトの名無しさん
2008/09/03(水) 21:40:09Rubyは別でどうぞ(違
0470デフォルトの名無しさん
2008/09/03(水) 22:57:18かなり調べてみたんですが、何が悪いのかわからないです。。不適切な箇所を指摘してもらえないでしょうか
require 'win32ole'
class Excel_test2
def getExcel
xl = WIN32OLE.new('Excel.Application')
book = xl.Workbooks.Open(ファイルの絶対パス)
begin
book.Worksheets.each do |sheet|
sheet.UsedRange.Rows.each do |row|
record = []
row.Columns.each do |cell|
record << cell.Value
end
puts record.join(",")
end
end
ensure
book.Close
xl.Quit
end
end
Excel_test2.new().getExcel
End
Rubyのバージョンは1.8.6
WIN32OLEのバージョンは0.7.2と出てました
0471デフォルトの名無しさん
2008/09/03(水) 23:10:110472デフォルトの名無しさん
2008/09/03(水) 23:18:31ダブルクリックするとExcelが起動するからExcelだと思ってる人が日本中に10万人くらいいるがその類かもしれん
csvファイルやtsvファイルも読めるわけで、端末文字エンコードとあってないファイルの場合は当然化けるぞ
0473デフォルトの名無しさん
2008/09/03(水) 23:29:190474デフォルトの名無しさん
2008/09/03(水) 23:43:56発生日 名称 マグニチュード 死者・不明者 死者の有無
↓
, , } O j ` [ h, ҁE s , ҂̗L
こういう感じです
0475デフォルトの名無しさん
2008/09/03(水) 23:51:500476デフォルトの名無しさん
2008/09/03(水) 23:54:21Ruby以前の問題だな
win23oleはRubyほとんど関係なくて、Windowsプログラミングの知識が大量に要るぞ
0477デフォルトの名無しさん
2008/09/03(水) 23:59:140478デフォルトの名無しさん
2008/09/04(木) 00:03:000479デフォルトの名無しさん
2008/09/04(木) 00:04:040480デフォルトの名無しさん
2008/09/04(木) 00:10:51まさか本当にUTF-8のCSVファイルだとかそんなオチだったり
0481デフォルトの名無しさん
2008/09/04(木) 00:11:18その流れでソラリスに辿り着くか、派手好きはMacOSXかなってことなんだけど。
デビアンはイマイチゴチャゴチャだし、オープンで英語得意なら、やっぱFreeBSDのままかなw
そういえば、物理学科のハッカー先生元気かな…
0482デフォルトの名無しさん
2008/09/04(木) 00:15:58別板にある犬小屋スレ見ればわかるだろw
windoはエサ待ち状態のサルばかりか?
0483デフォルトの名無しさん
2008/09/04(木) 00:18:41>>470 をコマンドプロンプトからそれぞれ実行したが、特に文字化けはしなかった。
cell.Value から返るのは Shift_JIS だから、あとは表示環境の問題かと。
0484デフォルトの名無しさん
2008/09/04(木) 00:20:46WIN32OLE.codepageをUTF-8にしてみたら正常に出力されました
ありがとうございます
文字コードが正直さっぱりわかってないのでもっと勉強します。。
0485デフォルトの名無しさん
2008/09/04(木) 00:24:460486デフォルトの名無しさん
2008/09/04(木) 00:30:540487デフォルトの名無しさん
2008/09/04(木) 01:29:060488デフォルトの名無しさん
2008/09/04(木) 08:26:31BSDが染みついた人ならソラリス(2以降)にたどり着いたらUターンするだろJK
0489デフォルトの名無しさん
2008/09/04(木) 09:09:463Dの凄い計算とか気象予測みたいなのが必要なわけでもないし。
ただ、PCを部屋に5台以上おくとクーラーとか空調もやんないといけなくなるし、PC技能とは別問題に遭遇する。
0490デフォルトの名無しさん
2008/09/04(木) 09:14:260491デフォルトの名無しさん
2008/09/04(木) 09:55:38当人はスレに参加しているつもりなのだろう
0492デフォルトの名無しさん
2008/09/04(木) 10:06:20あの、デザインパターン本のキリスト教の人と同じで。
0493デフォルトの名無しさん
2008/09/04(木) 10:07:570494デフォルトの名無しさん
2008/09/04(木) 10:26:080495デフォルトの名無しさん
2008/09/04(木) 10:26:38日本でカトリック以外なんてエホバか統一教会だし
0496デフォルトの名無しさん
2008/09/04(木) 12:21:27次の操作が出来ないので、なんだかやりにくくないですか?
特に正規表現で引数とか戻り値がいろいろあるので、結局はOOだと型の明示が必要なのかなと思っちゃいます。エラーでも型の注意が入るし。
とにかく =~ とか $~ の旧世代のレガシーはもうOOじゃないし、廃止して欲しい。
0497デフォルトの名無しさん
2008/09/04(木) 12:22:130498デフォルトの名無しさん
2008/09/04(木) 12:24:230499デフォルトの名無しさん
2008/09/04(木) 12:29:09数値に正規表現がマッチするのは変だろ
result = str.scan(re) でいちいち配列の配列が返ってくるのはなんか違わね? というのは確かに連綿と指摘はあるが
まあそれなら re.match(str) で MatchData オブジェクト使えばいいんじゃねという話ではある
0500デフォルトの名無しさん
2008/09/04(木) 12:37:48=~ [] MatchData String Regexp とかどれなのか覚えて整理するのに1日使ったんで。
perlよりはまとまってるみたいですけど、perl awkのしがらみでもあるんでしょうかw
触ってみた感想は、Javaみたく、MatchDataでまとめていいんじゃないかな。
0501デフォルトの名無しさん
2008/09/04(木) 12:39:240502デフォルトの名無しさん
2008/09/04(木) 12:54:31既存の=~ $~ とか、class Regexpはそのままで、新規にruby regexpと称して戻りは全て1つのクラスで返るようにrubyのAPIとして新しくクラスとメソッド名を設計すればいいんじゃないですか?
あれこれクラスにまたがっていて、まったく意味不明でした。
$~はスレッド・ローカルみたいですけど、OO的というかスレッド的に馴染まないというかどうかと…
0503デフォルトの名無しさん
2008/09/04(木) 13:03:28お前実際にはスクリプト書いてないだろ
0505デフォルトの名無しさん
2008/09/04(木) 13:09:34いや、別に初心者じゃないんでw
0506デフォルトの名無しさん
2008/09/04(木) 13:14:110507デフォルトの名無しさん
2008/09/04(木) 13:20:42p => Object.inspect
puts => to_a => to_s
print / printf => to_s
だったかな。コレもよくオーバーライドしたり参照するんで、マニュアルによろしくですです。
ほとんど
for line in file : p line end
while line=file.gets : p line.chomp!.strip! end
しか使ってませんよ。結局やってることはOOじゃないし、eachとかいちいちAPIみるの面倒でしょw
0508デフォルトの名無しさん
2008/09/04(木) 13:34:36これでも十分複雑なんで、半年も触らないときっと忘れちゃいますよ。
javascriptの方はプロトタイプ言語で少し概念が違うんですけど、ほぼジャバと同じだし半年しても忘れることはないでしょうな。
OOとかクラスについてはjava使えるんで、regexpは、jsでIO使えるならjsでいいかなってのが感想ですw
0509デフォルトの名無しさん
2008/09/04(木) 13:56:38このスレは2度と見る必要ないですよね?
0510デフォルトの名無しさん
2008/09/04(木) 14:20:330511デフォルトの名無しさん
2008/09/04(木) 15:00:02店によっては入った週に売り切れたりするのは立ち読みしにくいのでやめてほしい
0512デフォルトの名無しさん
2008/09/04(木) 19:22:54>=~[]MatchDataStringRegexpとかどれなのか覚えて整理するのに1日使ったんで。
StringとRegexpをマッチさせたらMatchDataが作成される、というだけで、
何も難しくないと思うんだけど、どのへんがわかりにくかったですか?
>触ってみた感想は、Javaみたく、MatchDataでまとめていいんじゃないかな。
Javaもjava.lang.Stringとjava.util.regex.Patternとjava.util.regex.Matcherを使っているから同じだと思うんですけど、どこが違うと思いますか?
>>502
>既存の=~$~とか、classRegexpはそのままで、新規にrubyregexpと称して戻りは全て1つのクラスで返るようにrubyのAPIとして新しくクラスとメソッド名を設計すればいいんじゃないですか?
これは意味がよくわからないんですけど、どういうクラスとAPIを提案しているのか、もっと詳しく説明してみてください。
もしかしたら、すごくいいクラス設計が提案されているかもしれないので。
よろしくお願いします。
0513デフォルトの名無しさん
2008/09/04(木) 19:28:04>あと意味不明だったのは、
>p=>Object.inspect
>puts=>to_a=>to_s
>print/printf=>to_s
>
>だったかな。コレもよくオーバーライドしたり参照するんで、マニュアルによろしくですです。
この書き込みのほうが意味不明。どれもマニュアルにそのまんま書いてあるんだけど、マニュアルをどうして欲しいの?
0514デフォルトの名無しさん
2008/09/05(金) 01:20:25意味を含めてくれませんか?パブリックなライブラリなわけで、自分仕様のライブラリじゃないでしょw
パールのしがらみをもったままなんでしょうけど、このままだと第2のパールに成り下がるだけじゃないですかね。
regexpは別言語でもできるんですけど、ネイティブへのアクセスは、POSIXの機能が結構使えるルビーが(グルーとしては)一番かなって思うんですけど、この辺りどうでしょうか?
0515デフォルトの名無しさん
2008/09/05(金) 01:22:10ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。
0516デフォルトの名無しさん
2008/09/05(金) 01:22:11お前実際にはスクリプト書いてないだろ
マニュアル逐次読みしながら論う釣りは帰れ
0517デフォルトの名無しさん
2008/09/05(金) 01:31:150518デフォルトの名無しさん
2008/09/05(金) 01:48:04コードを書こうとして、packの機能を使おうとしたら「複雑すぎw」てことじゃないの?まあ、サルにはこの気持ちは一生理解できないんだろうけどw
0519デフォルトの名無しさん
2008/09/05(金) 01:53:410520デフォルトの名無しさん
2008/09/05(金) 01:58:07正規表現が全くオブジェクト指向じゃないとか
sprintfやstrftimeのフォーマット文字列が意味不明だと文句言われるのと
割と似ていると思う
0521デフォルトの名無しさん
2008/09/05(金) 01:58:09急げ
0522デフォルトの名無しさん
2008/09/05(金) 02:10:16printfはインタプリタなんで、packの引数による機能指定と、全然関係ないと思うんですけど?
APIも仕様も熟読しないような、ナンチャッテさんはその程度ですかw
0523デフォルトの名無しさん
2008/09/05(金) 02:16:40るびまで青木さんが、
packの書式なんて誰も覚えてねーよバーカバーカとか書いた上で
自前で簡単なDSLを定義してたようなw
0524デフォルトの名無しさん
2008/09/05(金) 02:24:100525デフォルトの名無しさん
2008/09/05(金) 02:41:14詳しく説明願います
0526デフォルトの名無しさん
2008/09/05(金) 02:45:100527デフォルトの名無しさん
2008/09/05(金) 02:55:190528デフォルトの名無しさん
2008/09/05(金) 02:58:22つーか、メーリングリストで言えよ…
0529デフォルトの名無しさん
2008/09/05(金) 02:59:550530デフォルトの名無しさん
2008/09/05(金) 03:03:460531デフォルトの名無しさん
2008/09/05(金) 03:05:22業界通っぽくしてるサルばかりじゃないの?
所詮下請けにかわりないし、愚痴ってるだけで、BSDじゃないけどサル小屋かなww
0532デフォルトの名無しさん
2008/09/05(金) 03:06:150533デフォルトの名無しさん
2008/09/05(金) 03:10:37はいはい。IPAが男女共同参画会議に出席するようですよ。
0534デフォルトの名無しさん
2008/09/05(金) 03:12:38おりこうさんだからv8でもいじって、遊んでましょーね
0535デフォルトの名無しさん
2008/09/05(金) 03:15:12そうやって羨ましがってばかりいないで、少しはプログラミング言語 Ruby に貢献したらどうよ?
どうせおまえみたいな無能は、指くわえてみてるだけじゃないの??
0536デフォルトの名無しさん
2008/09/05(金) 03:18:120537デフォルトの名無しさん
2008/09/05(金) 03:19:210538デフォルトの名無しさん
2008/09/05(金) 03:20:120539デフォルトの名無しさん
2008/09/05(金) 03:43:25konが今となっては機能不足なので、freebsd入れずにwindows使う羽目になってるんですが。
英語には不自由はしてないんですけど、クライアントの送信とかログとかも含めて開いたファイルの中身が文字化けしたら何のファイルなのかさっぱりなんで、漢字端末よろしくです。
0540デフォルトの名無しさん
2008/09/05(金) 04:38:040541デフォルトの名無しさん
2008/09/05(金) 04:43:48使ったことないけどjfbtermとか
0542デフォルトの名無しさん
2008/09/05(金) 12:09:440543デフォルトの名無しさん
2008/09/05(金) 12:19:210544デフォルトの名無しさん
2008/09/05(金) 12:21:300545デフォルトの名無しさん
2008/09/05(金) 18:11:370546デフォルトの名無しさん
2008/09/05(金) 19:58:370547デフォルトの名無しさん
2008/09/05(金) 22:35:110548デフォルトの名無しさん
2008/09/06(土) 00:30:31>pack/unpackの指定も記号的で意味不明なんで、一文字で略さないで、ちゃんと定数やエナムにして
>意味を含めてくれませんか?
これは無理です。printf()の書式とおなじようなものだと考えてください。
あなたがprintf()の書式にも文句言う人だとどうしようもないですが。。。
>>515
>それと、クラスの設計はやっつけ仕事じゃなくて、普通は後から変更できないんで、数年かけてちゃんと設計してもらって、パールの猿真似ばかりやってないで、仕様をまとめてもらった方がいいですよ。
どうも正規表現あたりのクラス設計に不満があるようですが、どういう設計をお望みでしょうか。
String, Regexp, MatchData の3つがあるのは Javaでも同じですが、どこがわかりにくいですか?またどう変更してほしいのですか?
>ルビーには特異クラスって業もあるんですけど、初めのライブラリを新規に用意するのは、そういうプロトタイプ的な機能に頼って期待する以前の問題じゃないかなと思います。
言っていることが意味不明なので、わかりやすく書き直してください。
0549デフォルトの名無しさん
2008/09/06(土) 04:01:490550デフォルトの名無しさん
2008/09/06(土) 04:29:03ruby "-I c:\myruby\mylib" source.rb
とやってソース内部でrequire/includeとやってもロードされてないようです。
何が足りないんでしょうか?
0551デフォルトの名無しさん
2008/09/06(土) 04:51:35おまえが無能だって事はよく分かった。
0552デフォルトの名無しさん
2008/09/06(土) 05:03:00どっちも悪いキャラに終わるよな。
0553デフォルトの名無しさん
2008/09/06(土) 05:25:14どれとどれが「どっちも」ってのなんだ?
これだけで、おまえが低学歴なのがよーく分かるw
0554デフォルトの名無しさん
2008/09/06(土) 05:45:12目に見えない色んなことは次々と「わかっちゃう」のも
特徴の一つだね。
0555デフォルトの名無しさん
2008/09/06(土) 06:41:290556デフォルトの名無しさん
2008/09/06(土) 08:27:040557デフォルトの名無しさん
2008/09/06(土) 08:34:400558デフォルトの名無しさん
2008/09/06(土) 08:57:57そうすると、経験でカバーできないのはなんでしょうか?
0559デフォルトの名無しさん
2008/09/06(土) 10:44:41サーチパスにC:¥myrubyを追加して、そこからmylibをrequireするなら、
ruby -I C:¥myruby -r mylib source.rb
0560デフォルトの名無しさん
2008/09/06(土) 11:04:42バックスラッシュは直後の文字をエスケープするから、
"c:\myruby\mylib" は c : \m y r u b y \m y l i b と解釈される
ruby -I "c:/myruby/mylib" source.rb
または
ruby -I "c:\\myruby\\mylib" source.rb
で動作するはずだ
スクリプト開始時の require 前に $LOAD_PATH 配列に "c:/myruby/mylib" という文字列を要素として追加してもよい
なるべく配列の先頭に入れるといいと思う
0561デフォルトの名無しさん
2008/09/06(土) 11:22:07$: . push ("c:/myruby") ;
としてるんですけど、ソース1行目に、
#! ruby -I "c:/myruby"
だと無理みたいです。
それと、ruby -help でみると、-Idirectory -rlib -Kcode とかなっていて、空白いるのかいらないのか不明だし、なんかヘルプの方が混乱しているみたいです。
公式レファレンスの説明も1行あるかないかだし、やる気なくなりました。
BSDのインストールと日本語化が困難でやる気なくなって、vine linuxで済ますアレと同じ感覚ですw
あと、module Mymo とinclude/require関数とかも日本語だと説明不足で英語サイトだと著者の思想も込みで説明が詳しすぎて、結局モルモン思想はウザくてやる気が起きません。
rubyのコミュニティーは、rubyプラットフォームをツールとして広める気があるんのか疑っちゃいますw
0562デフォルトの名無しさん
2008/09/06(土) 11:27:24obj . push ( a , b )
じゃ言語としてダメでありサポートしないのか、それともいいのかハッキリしてもらえませんかねー
こんなところまでモルモン思想の押し付けをワーニングするのはもう止めませんか?ウザいんですけどw
0563デフォルトの名無しさん
2008/09/06(土) 11:34:32スクリプト1行目のShebang行は規則に則った単なる文字列だ
シェルで実行されるわけではない
シェルと同じ動作をすることを期待されても困る
0564デフォルトの名無しさん
2008/09/06(土) 11:57:300565デフォルトの名無しさん
2008/09/06(土) 12:02:050566デフォルトの名無しさん
2008/09/06(土) 13:12:430567デフォルトの名無しさん
2008/09/06(土) 13:15:47p nil==false # false
は勘弁して欲しいけど。
このスレのレベルだと、どうしてなのか分からないんだろうと思う。
0568デフォルトの名無しさん
2008/09/06(土) 13:17:360569デフォルトの名無しさん
2008/09/06(土) 13:22:220570デフォルトの名無しさん
2008/09/06(土) 13:25:400571デフォルトの名無しさん
2008/09/06(土) 13:40:21おまえもスレに張り付いて、いったい何やってんだ?仕事もしてないんだろw
0572デフォルトの名無しさん
2008/09/06(土) 13:46:210573デフォルトの名無しさん
2008/09/06(土) 13:46:560574デフォルトの名無しさん
2008/09/06(土) 13:47:300575デフォルトの名無しさん
2008/09/06(土) 13:47:49このスレ: 低学歴・無能の集まりなので分かってくれない
ML: モルモンなので分かってくれない
リアル: 大人は分かってくれない
アドバイス
あなたを分かってあげられるのはあなただけ。自分を大切にしてあげて。
0576デフォルトの名無しさん
2008/09/06(土) 13:52:490577デフォルトの名無しさん
2008/09/06(土) 13:56:57たーまにbsdとかも使ってるシステムの奥の方の人も居るけどwwwww
2chでIPAの愚痴を言うようじゃ、仕事も大したことやってないし、せいぜい雑用係のカス野郎ってことが良く分かるwwwwwwwwカスw
0578デフォルトの名無しさん
2008/09/06(土) 13:58:320579デフォルトの名無しさん
2008/09/06(土) 14:14:12べつにrubyのCソースを追いかけてるわけでもないし、なんか生意気な奴が多いようだけど、雑魚だろw
いちど、みっちりCをやって、GCのソースとか見てみたらどうよ?雑魚ちゃんww
0580デフォルトの名無しさん
2008/09/06(土) 14:16:050581デフォルトの名無しさん
2008/09/06(土) 14:19:16いやいや、デンターシステマ超極細毛(かため)以外認めんぞw
0582デフォルトの名無しさん
2008/09/06(土) 14:23:010583デフォルトの名無しさん
2008/09/06(土) 14:26:09弱いものいじめ反対!
いつか必ず天罰が下るぞ!!
0584デフォルトの名無しさん
2008/09/06(土) 14:37:10煽りじゃなく「割り算のプロ」っぽくていいな。それ。
0585デフォルトの名無しさん
2008/09/06(土) 14:41:13君、いつもつまんない
0586デフォルトの名無しさん
2008/09/06(土) 18:10:54puts s.dump
dump以外に、
”あい”を文字コードの列(配列)にするのと、
その配列から”あい”(SJIS)に戻す方法はどうやるのでしょうか。
0587デフォルトの名無しさん
2008/09/06(土) 18:45:25配列にならないところ? 数値が8ビット整数じゃないところ?
0588デフォルトの名無しさん
2008/09/06(土) 19:12:45[*str.each_byte]
とかかな
0589デフォルトの名無しさん
2008/09/06(土) 20:02:53packとかは無しですよw
0590デフォルトの名無しさん
2008/09/06(土) 20:04:01なので、関数内部のローカルで処理する用途とは少し違います。
とくに、str[k]="あ"というかんじに出来るのないでしょうか?
結局ルビーは、パールと同じで日本語(多言語)対応じゃないしなんか使いにくいのでどうせなら、
jcodeでStringにアドオンなんかしないで組み込みクラスをrubyの方が用意したらどうですか?
class JapaneseString とかかな。
0591デフォルトの名無しさん
2008/09/06(土) 20:06:07str.setJavaneseCharCodePointAt(index, "あ");
APIはこんなところでしょうか。
0592デフォルトの名無しさん
2008/09/06(土) 20:14:52でも初心者スレを荒らすのは勘弁してね
0593デフォルトの名無しさん
2008/09/06(土) 20:20:110594デフォルトの名無しさん
2008/09/06(土) 20:39:48serializationは、dumpのStringはrubyだとtaint/untaintの腐ったレベルに影響あると思うんでdumpは外部用だと思います。
それでdumpは使えないので、他にsjis, euc, u16, u8とかの一文字をstrに追加できるセッターないですか?
0595デフォルトの名無しさん
2008/09/06(土) 20:49:090596デフォルトの名無しさん
2008/09/06(土) 20:58:560597デフォルトの名無しさん
2008/09/06(土) 21:02:05↑↓
bytes.map{|b| b.chr }.join
だろうか
0598デフォルトの名無しさん
2008/09/06(土) 21:44:480599デフォルトの名無しさん
2008/09/06(土) 21:54:41というか、スクリプトはテキスト(日本語)処理が主要な用途なんで、これぐらい(ライブラリ作成者側が面倒でも)当然用意しておくべきじゃないですか?
>>597
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]
なんで無理です。あと、よくわかないんですけど、[*str.each_byte]は間接参照か何かですか?
イテレータとか使うといちいちAPIみないといけなくなって面倒なんで、この程度の処理はwhileで実装です。
というか、こういう処理はwhileで十分あって、関数ポインタやデリゲートの用途じゃあるまいし、イテレーターなんてカッコつけて使うもんじゃないですよw
0600デフォルトの名無しさん
2008/09/06(土) 21:57:48まず目的として何がやりたいのかを説明しろ
そこがわからないと適切なアドバイスもできん
0601600
2008/09/06(土) 21:58:560602デフォルトの名無しさん
2008/09/06(土) 22:01:48StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
とくにbyteとchar用のsetがないじゃん。
0603デフォルトの名無しさん
2008/09/06(土) 22:08:420604デフォルトの名無しさん
2008/09/06(土) 22:22:140605デフォルトの名無しさん
2008/09/06(土) 22:33:11なにコレ?
0606デフォルトの名無しさん
2008/09/07(日) 02:02:43nil に対する比較演算は nil を返してほしい口?
つうか、なんで勘弁してほしいわけ?
0607デフォルトの名無しさん
2008/09/07(日) 02:35:210608デフォルトの名無しさん
2008/09/07(日) 03:13:47>イテレーターは自分で作ったclassやライブラリーのデータ構造をイテレートするときのもので、
>StringやArrayみたいな組み込みで汎用用途じゃ、あまり向かないじゃないでしょうかね。用意されてはいるが継承用かな。
どこをどう見て、そう判断したんですか。
>といっても、Stringには一文字処理のget/set可能なイテレートを当然に用意しておいてもらえませんかね。
>とくにbyteとchar用のsetがないじゃん。
Ruby1.8では、文字列はただのバイト列なので、Javaのように文字単位での扱いはあまり得意じゃありません。
ただ、文字単位で扱わなくても済む場合がほとんどなので、あなたが「1文字ずつ扱って何をしようとしているか」をまず書いてみてください。
きっとだれかが、1文字ずつではない処理方法を提示してくれると思います。
それから、全般的に日本語に不自由されているようですが、もっと人に伝わるような文章を書いてください。
エスパーするにも限度があります。
0609デフォルトの名無しさん
2008/09/07(日) 03:25:03>>564
0610デフォルトの名無しさん
2008/09/07(日) 04:00:37質問者に、質問し返す人いますが、あなたは少ししつこい。
あなたのプログラミングスタイルと全く違う人もたくさんいるんですけど、あなたは一生Webクリーチャーでいいんで、黙っててくれませんか?
一文字の処理を所望なのに、一文字の処理じゃない方法を提示する必要はないでしょ。
あなたに仕事を任せても、全く仕様を読まないでいつも失敗ばかりしてるんだろうと思うんで、あなたはその辺にいるゴミか何かでしょうか?
とにかくVBとかの方が儲かりますよ。
0611デフォルトの名無しさん
2008/09/07(日) 04:10:34>>608を読んでみても、おまえが無能なのがよく分かるな
おまえのエスパーなど誰も期待してないけど?
0612デフォルトの名無しさん
2008/09/07(日) 04:13:57いつまでもこのスレに居座っていてみんな迷惑してんだからw
0613デフォルトの名無しさん
2008/09/07(日) 05:38:13モルモン教に入信したいなら、まずは創価学会を脱退してからですよ。
0614デフォルトの名無しさん
2008/09/07(日) 05:45:54split(//)とかで結局文字単位になるんだし、文の前後が矛盾してるじゃん。
こいつは何のことをいってんだ?
それと、Javaは文字単位char[]でなくてStringで処理しますが、知らないことに無駄口しない方がいいんじゃないですか?
日本語の文法から勉強なさった方がいいんじゃないですか。
0615デフォルトの名無しさん
2008/09/07(日) 05:55:020616デフォルトの名無しさん
2008/09/07(日) 06:31:320617デフォルトの名無しさん
2008/09/07(日) 07:01:15女は端っこでマンコの手入れでもして、いつでも準備OKにしてればいいんじゃね?
0618デフォルトの名無しさん
2008/09/07(日) 08:17:32落ち着け
こんな時は冷静にスルーだ
0619デフォルトの名無しさん
2008/09/07(日) 09:13:37数学の女、哲学の女、以上にキモイな。
仮に想像したとしても、頭モサモサのフケだらけ、体臭はニンニク臭いなんじゃないの?
そんなキモ女はどこで道を間違っちゃったんだろうな…
0620デフォルトの名無しさん
2008/09/07(日) 09:22:410621デフォルトの名無しさん
2008/09/07(日) 11:31:25俺もそう思う。
まず連中は論理的に説明しても理解しない。「できない」じゃなくて「しない」なんだよ。
生意気にも「いいじゃないですか〜」とか言ってて許されるとか思ってる。
「俺が上司なんだよ!!!なめんなよ首にすんぞ」
とか思っても労働法違反になるので言わないです、ごめんなさい。
ついて行きたいと思わせる男の魅力が足りないのでしょうね、ごめんなさい。
そういえば、大学時代も「いい人」止まりだったなぁ・・・
付き合ったは良いけど卒業後すぐに分かれたなぁ・・・
一回しかえっちしてないよ・・・ちなみに童貞×処女
0622デフォルトの名無しさん
2008/09/07(日) 11:32:56と思いたいんですね
0623デフォルトの名無しさん
2008/09/07(日) 11:51:51param.to_a.each do |e|
...
と書くのが単純だったと思うんですが、
warning: default `to_a' will be obsolete
とか生意気で妥当な警告が出ます。
わりと頻繁に使うメソッド内でのことなんですが、どう対処するのが自然ですか?
param = [param] unless param.is_a?(Array)
と書くべきですか?
「このメソッドは配列しか受け取らないので 1個だけのときは事前に hoge([para]) にしろ」
とマニュアルレベルで警告するべきですか?
0624デフォルトの名無しさん
2008/09/07(日) 12:11:16配列かどうか調べて、配列じゃない場合は配列に入れるという動作が "正しい"
もしくは、マニュアルなどで「配列しか受け付けません」と明記する
[*param].each do |e| とすると文字数減った上に見かけ動作も一緒だが、無駄に穴掘って埋めてる感じが超キモい
これはそもそも
irb> def disp(param); param.to_a.each{|e| puts e }; end
irb> disp('hoge')
hoge
irb> disp(1)
(irb):1: warning: default `to_a' will be obsolete
1
irb> class Integer; def to_a; [self]; end; end
irb> disp(1)
1
ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ
obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある
配列の要素にしたいのなら、to_a ではなく明示的に配列作ってそこに入れろという話
irb> Time.now
Sun Sep 07 12:01:10 +0900 2008
irb> Time.now.to_a
[14, 1, 12, 7, 9, 2008, 0, 251, false, "JST"]
irb> [Time.now]
[Sun Sep 07 12:01:18 +0900 2008]
0625デフォルトの名無しさん
2008/09/07(日) 12:13:26電話オペとか事務とか誰がやっても同じなら男女雇用機会もわかるけど、
女のセンスとか女のやさしさなど、PGやSEにまったく不要で逆にあると面倒なんじゃないか?
受付や事務で雇うならともかく、女をPGやWEBデザインで雇うようなところは資本もないし
金も技能もないベンチャーはすぐ潰れるのがおちw
今のベンチャーの生き残り方法は、創価学会と手を組むか、堀江豚みたく株屋とつるむぐらいしかないんじゃないの?
0626デフォルトの名無しさん
2008/09/07(日) 12:13:28flattenの引数ってどのバージョンからだったかのう。
0627デフォルトの名無しさん
2008/09/07(日) 12:15:21いい加減どっか外にいけ
0628デフォルトの名無しさん
2008/09/07(日) 12:22:16いまでは「Webデザイン」とかかっこ良さそうな臭いがしますが、海外のスクリプト言語
紹介ではJavaScript(とその亜種)の人口は多くPerlなどが続くと紹介されますが、
2008年現在、そのなかにrubyの文字は一度も出てきません。
しょせんrubyは、(にっぽんの)文系 IT ドカタ専用なんです!
犯罪囚人の女も使ってます!
コミュニティーはモルモン教です!
負け組みの人たちが都合よく集まったというところでしょうか…
ライブラリは冗長が多いけど言語の出来はいいんですけどね……
0629デフォルトの名無しさん
2008/09/07(日) 12:27:01OOや継承をなんだと思ってんだ?
>ということで、「オブジェクトを to_a する意図が不明瞭なので頼るな」という意図の警告だ
obj.to_a と [obj] が同じとは限らないし、違うことのほうが妥当なこともある
これを公式レファレンスに記載すればよろしい
0630デフォルトの名無しさん
2008/09/07(日) 12:35:341.9のどっか
0631デフォルトの名無しさん
2008/09/07(日) 12:35:440632デフォルトの名無しさん
2008/09/07(日) 12:51:440633デフォルトの名無しさん
2008/09/07(日) 12:52:10puts *arr
puts &arr
マニュアルみてもないんですが、* & これは演算子ですか?
0634デフォルトの名無しさん
2008/09/07(日) 12:55:44からのスレッド参照
0635デフォルトの名無しさん
2008/09/07(日) 12:56:580636デフォルトの名無しさん
2008/09/07(日) 12:59:12演算してるわけじゃないしな
展開記号とでも呼べばいいのかしら
0637デフォルトの名無しさん
2008/09/07(日) 13:09:04リンク先のMATZ本人はその意味で言ってるんですけど、たぶんこのスレレベルだと理解できないんでしょうね。
やっぱ文系用スクリプトを使うお気軽ルビリストには、その程度の理解度でいいんでしょうか?
0638デフォルトの名無しさん
2008/09/07(日) 13:12:420639デフォルトの名無しさん
2008/09/07(日) 13:24:260640デフォルトの名無しさん
2008/09/07(日) 13:45:030641デフォルトの名無しさん
2008/09/07(日) 14:53:17だけど関数定義のときに引数定義の中で使われると、
lispの引数リストで使われる&restとか ...みたいな可変長引数みたいになる、ややこしいな。
&付きでProcを呼び出すものはなんだろう、C++のメンバ関数ポインタ?
def foo(*x)のときの*x言うのはrest引数構文
puts *arrの*arrは展開構文
puts &arrの&arrはProc変数渡し構文
Matzも*や&単体では意味が無いって言ってるし、こんなのでいいんじゃない?
さらにこういう前後の状況によって決まる類の「なんとか構文」なんてものは、
仕様書のある言語ではよくあるものだし。
0642デフォルトの名無しさん
2008/09/07(日) 15:00:530643デフォルトの名無しさん
2008/09/07(日) 15:23:21(ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-mswin32])
wrong argument type Array (expected Proc) (TypeError)
0644デフォルトの名無しさん
2008/09/07(日) 15:40:310645デフォルトの名無しさん
2008/09/07(日) 15:44:12java.net(英語)にも妄想オタクな奴が多いけど、サーバ・サイドだから学歴は高い奴多いしくおかしな文章を書いたりしないな。
だけどrubyは無能な文系ばかりしかいないようだ…メーリングをググってもゴミのごたくばかりだろ…
Matzはいつも大変だな…
0646デフォルトの名無しさん
2008/09/07(日) 15:45:04あっ、エラーでいいんですか。
みなさん、とうとうと解説されているので、てっきり意味のある文だと思いました。
0647デフォルトの名無しさん
2008/09/07(日) 16:03:30>>633を構ってないだけだ
0648デフォルトの名無しさん
2008/09/07(日) 16:07:49文法上サポートしている構文というなら別にそれで文句はないですが、マニュアルに書いといてください。
p [*[11,22,33]] が出来るところを見ると、単項式として値を返すので、言語上の分類としては演算子じゃないかなと思います。
0649デフォルトの名無しさん
2008/09/07(日) 16:14:26君たちはprocを理解してないのに偉そうにしてていいの?もっと一所懸命に勉強しないと!
0650デフォルトの名無しさん
2008/09/07(日) 16:29:34lisp という単語出てきたとたん、腰が引ける。
2ch に来て「マニュアルに書いといてください。 」
理系の高学歴様は、ギャグのセンスもさすがだなw
0651デフォルトの名無しさん
2008/09/07(日) 16:45:51そんなことよりおマンコはちゃんと洗っといた方がいいですよ。いつ何があるかわからないし・・・
0652デフォルトの名無しさん
2008/09/07(日) 16:48:00a = 1
1.times do
a = 2
end
puts a # 1になって欲しい
0653デフォルトの名無しさん
2008/09/07(日) 16:52:220654デフォルトの名無しさん
2008/09/07(日) 16:54:20携帯でGoogle chartを使おうと、以下のようにchartのアドレスをhtmlに埋めました。
puts <<-EOD
<html><body>
<img src="http://chart.apis.google.com/chart?chs=150x150&cht=lc&chd=t:20,40,50,60,40,10,3">
</body></html>
EOD
結果、auやvodaphoneでは見えたのですが、docomoではグラフが見えません。そこで調べてみると、docomoではpngを読まないため、gifにコンバートしろとのこと。
ttp://ke-tai.org/blog/2007/12/10/googlechart/
しかし、Rubyで同様のコンバートを行うにはどうしたら良いか、そしてどうやってhtmlに埋め込んでいいかわかりません。やり方が乗っている場所でも結構ですので、どなたか教えていただけませんか。よろしくお願いいたします。
0656デフォルトの名無しさん
2008/09/07(日) 17:12:31変数名がかぶってる限りは無理
ちゃんと違う変数名で定義するしかない
0657デフォルトの名無しさん
2008/09/07(日) 17:20:44そうなんですか。
Perlのように、局所化するmyとかはないんですね。。。
0658656
2008/09/07(日) 17:21:10初心者スレの範疇を外れるけど、現在のruby1.9.0系(開発版)では
ブロックローカルな変数を定義する(=名前がかぶっても問題ない)文法がある
たぶんruby1.9.1にも入るはず
0659デフォルトの名無しさん
2008/09/07(日) 17:25:32やっぱり、このレベルなのか…
0660デフォルトの名無しさん
2008/09/07(日) 17:36:39今後のRubyには実装される予定なんですね
了解しました。
0661デフォルトの名無しさん
2008/09/07(日) 17:44:55まあ不便っちゃ不便
0662デフォルトの名無しさん
2008/09/07(日) 17:46:540663デフォルトの名無しさん
2008/09/07(日) 17:49:18日本語をdumpすると"\343\203\206\343\202\271\343\203\210"な感じで出力されてしまいます。
RubyのSyckでも日本語をバイナリとして扱ってしまうという、似た感じの問題があり、
パッチやら何やら書かれているようですが、
JRuby(JvYAML?)において日本語文字列のまま出力させる方法はありませんでしょうか?
0664デフォルトの名無しさん
2008/09/07(日) 18:02:09Ya2YAML
JRubyで試したことはないが、pure rubyだからたぶん動くんじゃないかな
0665663
2008/09/07(日) 18:18:46どうもありがとうございます。
でも、Ya2YAMLはSyck用のバイナリ認識するとこを修正なんだそうです。
JRubyの場合はJvYAML(JvYAMLb)だそうですので、Pure Rubyか否かは関係なさそうです……。
http://gihyo.jp/dev/serial/01/yaml_library/0006
日本語全然使えない、とか書いてあるところもあったりして。
普通に表示したりする分には問題無いのですが、可読性という意味で言うと価値が激減。
dumpすると頭に"---"がつく辺りもRubyの最新版と挙動が違ったりするのですよね。細かいですが。
Javaのライブラリを使っていなければRubyを使うのですけれども……。
0666デフォルトの名無しさん
2008/09/07(日) 18:19:14ImageMagickプログラムを使うか、それをRubyから使うRubyMagickを使う
自分のサーバに「Google Chartにデータ渡して結果を受け取りGIFに変換して画像を吐くCGI」として置くしかないな
0667654
2008/09/07(日) 18:36:53なるほど、直接コンバートできるような手立ては無いということですね。
では、画像吐き専門のcgiを作ることにします。
(PHPでやるかもです)
0668デフォルトの名無しさん
2008/09/07(日) 18:39:30楽してないでそれぐらい自分で実装したらどうよ?
0669663
2008/09/07(日) 18:52:47すみません。スキルがゴミなもので、解決策が自分だけの力では思い浮かばず、
一週間程悩んだ挙げ句に、こうして初心者スレで質問させていただいている次第です。
実装、というのはYAMLのパーサを実装ということでしょうか?
言語内DSL(もどき)を作って、YAMLを使わない方法に逃げることは一応考えているのですが……。
0670デフォルトの名無しさん
2008/09/07(日) 18:56:360671デフォルトの名無しさん
2008/09/07(日) 19:11:230672デフォルトの名無しさん
2008/09/07(日) 19:20:170673デフォルトの名無しさん
2008/09/07(日) 19:25:19Ya2YAMLのソースコード読んでみたが、Syckに依存してるらしきところはないよ
だからSyckかJvYAMLかは関係ないはず
0674663
2008/09/07(日) 20:16:56う、すみません。Ya2YAMLをちょっと勘違いしていました。
ちゃんとソース読んできます。どうもありがとうございます。
0675デフォルトの名無しさん
2008/09/07(日) 20:30:490676デフォルトの名無しさん
2008/09/08(月) 00:13:210677デフォルトの名無しさん
2008/09/08(月) 15:11:49どうせ堅めを使っても歯ぐきから血が出るだけなんで。
0678デフォルトの名無しさん
2008/09/08(月) 17:27:16個人差は有るだろうけど、
いっぺん歯科で相談してみたほうがいい。
0679デフォルトの名無しさん
2008/09/08(月) 17:42:290680デフォルトの名無しさん
2008/09/08(月) 18:03:120681デフォルトの名無しさん
2008/09/08(月) 18:23:320682デフォルトの名無しさん
2008/09/08(月) 18:25:570683デフォルトの名無しさん
2008/09/08(月) 18:30:58多項式級数式ではそういうことがよく起こりますが…もしかして無能?
0684デフォルトの名無しさん
2008/09/08(月) 18:46:450685デフォルトの名無しさん
2008/09/08(月) 18:57:420686デフォルトの名無しさん
2008/09/08(月) 18:58:12よくわからんけど、こんなのかな。
i = 10
sum = 0
while i > 0
sum += i
i -= 1
end
i = 0
sum = 0
while (i += 1) <= 10
j = 10 - i
sum += j
end
sum = 0
(1..10).to_a.reverse.each {|i| sum += i }
0687デフォルトの名無しさん
2008/09/08(月) 19:01:410688デフォルトの名無しさん
2008/09/08(月) 19:05:54[*(1..10)].reverse.inject(0,&:+) # => 55
0689デフォルトの名無しさん
2008/09/08(月) 19:15:310690デフォルトの名無しさん
2008/09/08(月) 19:19:51ちゃんと55になりました。
逆走もあったんですか…
0691デフォルトの名無しさん
2008/09/08(月) 19:21:59これは可読性以前の数学パズルの世界じゃないの?
rubyのキモさは、Cのポインタをほうふつさせるキモキモだなw
0692デフォルトの名無しさん
2008/09/08(月) 19:25:02辞書だとそうなってるけどプログラミングでもそうなん?
0693デフォルトの名無しさん
2008/09/08(月) 19:27:54オブジェクト指向における委譲はdelegation
0694デフォルトの名無しさん
2008/09/08(月) 19:31:54delegateってメソッドポインタの事かと思ってたけど
委譲の意味でも使うのか。
0695デフォルトの名無しさん
2008/09/08(月) 21:19:05C#のやつのことなら、delegateをそういう機能に使うキーワードにしたって
だけで、突き詰めた意味は結局委譲。
0696デフォルトの名無しさん
2008/09/08(月) 21:28:310697デフォルトの名無しさん
2008/09/08(月) 21:37:200698デフォルトの名無しさん
2008/09/08(月) 22:00:35C#を調べろ、としか言いようがない。
要するに関数ポインタのC#版。
0699デフォルトの名無しさん
2008/09/08(月) 22:08:03特定のインスタンスの特定のメソッド(GUI部品とか)を呼び出すためのポインタ
特定のクラスのオブジェクトにメソッド実行を依頼すると考えれば根っこは同じ
という説明はどうだろう
0700デフォルトの名無しさん
2008/09/08(月) 22:18:000701デフォルトの名無しさん
2008/09/09(火) 02:18:37関数オブジェクトと普通の関数を呼び出すときのコストってどちらも同じですか?
0702デフォルトの名無しさん
2008/09/09(火) 02:41:11・Rubyには厳密な関数はない
・Rubyには関数オブジェクトもないっていうかまあこのへんは別にいいや
てことで、普通のメソッド定義とProc(lambda)オブジェクトの比較と読み替える
Procの呼び出しコストの重さは異常
以上
使うと面倒な概念をとても簡潔に表現できるけど、多用すると明らかに遅くなるので注意
便利なのでほいほい作る傾向にあるが、何度も使う部分に組み込む場合は、できれば丁寧に分析してメソッドにしたほうがいい
0703デフォルトの名無しさん
2008/09/09(火) 06:12:150704デフォルトの名無しさん
2008/09/09(火) 06:44:11オブジェクト化することもできる
0705デフォルトの名無しさん
2008/09/09(火) 07:23:000706デフォルトの名無しさん
2008/09/09(火) 08:30:130707デフォルトの名無しさん
2008/09/09(火) 08:32:520708デフォルトの名無しさん
2008/09/09(火) 09:08:560709デフォルトの名無しさん
2008/09/09(火) 09:09:380710デフォルトの名無しさん
2008/09/09(火) 09:17:50ブロックつきメソッドの {|x| ...} 部分を「持ち歩ける」と考えてもらうと間違いない
0711デフォルトの名無しさん
2008/09/09(火) 09:24:09>javascriptはコンソールから起動して使える実装がないじゃん。ここ、バカ丸出しww
spidermonkeyもrhinoもコンソールから起動できるじゃん。
バカ丸出しはおまえwww
0712デフォルトの名無しさん
2008/09/09(火) 09:38:260713デフォルトの名無しさん
2008/09/09(火) 11:25:130714デフォルトの名無しさん
2008/09/09(火) 11:33:16そのうち違う波が来て潰されるんだろうな…
0715デフォルトの名無しさん
2008/09/09(火) 11:40:34そうなんですか。
昨日からruby勉強し始めて、全部関数オブジェクトにしたら一貫性あるかな?
とか思っていたんですが、重いなら仕方ないですね。。
0716デフォルトの名無しさん
2008/09/09(火) 11:45:080717デフォルトの名無しさん
2008/09/09(火) 12:07:13配列のmap関数で適用する手続きの代わりに関数オブジェクトを使うことはできませんか?
0718デフォルトの名無しさん
2008/09/09(火) 12:18:26Procオブジェクトですか、ブロックですか?
0719デフォルトの名無しさん
2008/09/09(火) 12:23:08hoge = lambda{|x| x+1}
このhogeという値にバインドした関数オブジェクトをmapで使うことはできませんか?
0720デフォルトの名無しさん
2008/09/09(火) 12:26:520721デフォルトの名無しさん
2008/09/09(火) 12:32:47おお、すばらしいです
では、次の質問ですが、
関数オブジェクト同士で関数合成ってどうやるんですか?
0722デフォルトの名無しさん
2008/09/09(火) 12:37:100723デフォルトの名無しさん
2008/09/09(火) 12:46:540724デフォルトの名無しさん
2008/09/09(火) 12:49:57例えばこんなのがある
Function Composition 2.0 Ruby Banter #006
http://media.fngtps.com/rubybanter/2007/006/
0725デフォルトの名無しさん
2008/09/09(火) 13:04:29そのオブジェクトは Proc オブジェクト
違いはこのへんに ttp://doc.loveruby.net/refm/api/view/method/Kernel/m/lambda
0726デフォルトの名無しさん
2008/09/09(火) 13:10:13なんで執拗に「関数オブジェクト」と言い続けるんだ?
0728デフォルトの名無しさん
2008/09/09(火) 13:12:54func { |x| p x }
の違いでしたか・・・
0729デフォルトの名無しさん
2008/09/09(火) 14:22:21ある変数の型が何なのか調べる方法はありますか?
0730デフォルトの名無しさん
2008/09/09(火) 14:37:19hoge = Array.new(10){|i| i}.map{|x| x+1}
と
hoge = Array.new(10){|i| i}.map!{|x| x+1}
ではリソースの使い方に違いがありますか??
0731デフォルトの名無しさん
2008/09/09(火) 14:41:590732デフォルトの名無しさん
2008/09/09(火) 14:44:20Rubyの変数には型はありません
0733デフォルトの名無しさん
2008/09/09(火) 14:47:11では、たとえば配列の要素をすべて足す関数を作って、
整数と文字が入り交じった配列を渡してしまった場合はどうなるんですか?
0734デフォルトの名無しさん
2008/09/09(火) 14:48:140735デフォルトの名無しさん
2008/09/09(火) 14:48:490736デフォルトの名無しさん
2008/09/09(火) 14:52:28型が無いというのも誤解を生む表現だと思うのですが、
ではどのオブジェクトのインスタンスなのか調べる方法は無いんでしょうか?
0737デフォルトの名無しさん
2008/09/09(火) 14:53:56メモリとかを気にするのに Array.new に引数をつけてる人は久しぶりに見た
nil が 10個生成されて直後に置き換えられるから最初のArray.newが一番無駄なんじゃね
で、map と map! の差だけで、見たままの動作で、見たままのメモリ消費だと思われる
配列要素が 1万個とかバカみたいに多いときは後者のほうが一瞬だけ若干得
ただ、後者のような書き方はあまりしないかな
0738デフォルトの名無しさん
2008/09/09(火) 14:54:090739デフォルトの名無しさん
2008/09/09(火) 14:56:26型はない
a = 10 したあとに a = 'str' としても動作する以上、変数に型は無いと言って差し支えない
で、オブジェクトがどのクラスに属しているかはclassメソッドを使うとわかる
0740デフォルトの名無しさん
2008/09/09(火) 14:56:36前者は配列が2個作られる。後者は1個だけ。課題か何かか?
>>733
足せないものを足そうとした時にエラー
>>734
kind_of? で仕分ける
0741デフォルトの名無しさん
2008/09/09(火) 15:00:56他の言語では変数はいわゆる箱のようなメタファで説明できて、箱には形が決まってたりするもんだが
>>734
動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
0743デフォルトの名無しさん
2008/09/09(火) 15:08:010745デフォルトの名無しさん
2008/09/09(火) 15:11:17要素が順番に問題なく + メソッドに渡される
不適なオブジェクトが + メソッド内(で使ってる他のメソッド)でチェックされているなら、
TypeError か何か決められた例外が発生してそこで処理が止まる
ある意味めんどくさいとも言えるな
だから、「要素に数値だけが入っていることを配列登録時にチェックするArrayクラス」のようなものを作ったりする
0747デフォルトの名無しさん
2008/09/09(火) 15:14:33「どうせ直後で数値が全要素に代入されるんだから最初に nil 入れるのやめようぜ、
あ、ちょっと待って、map が続いてるからそれもまとめて 1回で処理しよう」
という判断は Ruby はしない
というか無茶言うな
そういうのはスクリプト作成者が事前に考えてくれ
0748デフォルトの名無しさん
2008/09/09(火) 15:16:320749デフォルトの名無しさん
2008/09/09(火) 15:19:27遅延評価のHaskellなら朝飯前なんだがな
0750デフォルトの名無しさん
2008/09/09(火) 15:20:40rubyの有用なサンプル・スクリプトはどこかにないでしょうか?
0752デフォルトの名無しさん
2008/09/09(火) 15:24:33(1..1000).to_a
0754デフォルトの名無しさん
2008/09/09(火) 15:27:54んなこと言ったら文字列は全部ただのバイト列だぞ(1.8限定)
0755デフォルトの名無しさん
2008/09/09(火) 15:28:26こういうのは、こいつの妄想じゃね?
0756デフォルトの名無しさん
2008/09/09(火) 15:31:24どういうのを求めてるのかよく分からんが
「逆引き Ruby」でぐぐったら幸せなんじゃないかな
0757デフォルトの名無しさん
2008/09/09(火) 15:37:25"hello world\n"の延長みたいなものなんですが、どこにもないんでしょうか?
0758デフォルトの名無しさん
2008/09/09(火) 15:40:53意図はわかった
Rubyコミュニティとしては特にないので、個人で書かれた入門ページでも適当に探すといい
もとろん間違ってる可能性もあるが、初学者ならおそらく同じように間違うわけでそれはそれで意義があるだろう
というか、そういうのがきちんとまとまったページってのは他の言語でも稀なんじゃないかなー
あれば楽しそうな気もするけどね
0759デフォルトの名無しさん
2008/09/09(火) 15:44:540760デフォルトの名無しさん
2008/09/09(火) 15:45:450761デフォルトの名無しさん
2008/09/09(火) 15:47:28今はCUIコマンド自体の使用頻度が少なくて
「wcってなんですか?」
「いったいどういうときに使うんですか?」
「コマンドまたはファイル名が違いますって表示されました」
という状態で
0762デフォルトの名無しさん
2008/09/09(火) 15:49:18> >>734
> 動作一緒だが、kind_of? ではなく is_a? を勧めたほうがよいと思う
Rationalきぼんぬ。ピッケル本のどこかに書いてあったっけ?(ふとそんな気がしないでもない)
0763デフォルトの名無しさん
2008/09/09(火) 15:57:09日本語だと公式サイトの説明も適当だし(文章を書くのが面倒なんでしょうけど)、それなら有用なサンプルがあると理解が深まるんじゃないのかなと…
0764デフォルトの名無しさん
2008/09/09(火) 15:58:450765デフォルトの名無しさん
2008/09/09(火) 15:58:590766デフォルトの名無しさん
2008/09/09(火) 16:01:320767デフォルトの名無しさん
2008/09/09(火) 16:07:45あの超難しいといわれてる「ポインタ」を当然知ってるって前提だろうが。
0768デフォルトの名無しさん
2008/09/09(火) 16:16:59ああ、教鞭を執らなくなって結構経つなぁ・・
0769デフォルトの名無しさん
2008/09/09(火) 16:19:13nilの実装はunsigned longの4だが?
環境によってはunsigned longじゃなくてもっと大きい型のこともあるが。
0770デフォルトの名無しさん
2008/09/09(火) 16:19:350771デフォルトの名無しさん
2008/09/09(火) 16:20:26モルモン教とRubyにどんな関係があるんですか?
前々から気になっていましたが。
0772デフォルトの名無しさん
2008/09/09(火) 16:21:570773デフォルトの名無しさん
2008/09/09(火) 16:22:11というか、Cのポインタが難しくてLispに逃げたくせに偉そうにするなww
0774デフォルトの名無しさん
2008/09/09(火) 16:26:140775730
2008/09/09(火) 16:28:05real 0m0.220s
user 0m0.120s
sys 0m0.100s
$ time ruby -e 'test = (0..100000).to_a'
real 0m0.130s
user 0m0.120s
sys 0m0.010s
本当ですね。
0776デフォルトの名無しさん
2008/09/09(火) 16:35:27それ、どういう処理なのか理解してないでしょ?笑えるんだけどw
0777デフォルトの名無しさん
2008/09/09(火) 16:36:26Ruby開発者がばりばりのモルモン教
0778デフォルトの名無しさん
2008/09/09(火) 16:37:030779デフォルトの名無しさん
2008/09/09(火) 16:40:38先生はモルモン教さんですか?
0780730
2008/09/09(火) 16:40:58どういうメソッドが使われたかはプロファイラを使えばわかるみたいですね。
$ ruby -r profile -e 'test = (0..100000).to_a' % cumulative self self total
time seconds seconds calls ms/call ms/call name
100.00 0.08 0.08 1 80.00 80.00 Range#each
0.00 0.08 0.00 1 0.00 80.00 Enumerable.to_a
0.00 0.08 0.00 1 0.00 80.00 #toplevel
$ ruby -r profile -e 'test = Array.new(100000){|i| i}' % cumulative self self total
time seconds seconds calls ms/call ms/call name
100.00 1.15 1.15 1 1150.00 1150.00 Array#initialize
0.00 1.15 0.00 1 0.00 1150.00 Class#new
0.00 1.15 0.00 1 0.00 1150.00 #toplevel
0781デフォルトの名無しさん
2008/09/09(火) 16:47:270782デフォルトの名無しさん
2008/09/09(火) 16:50:150783デフォルトの名無しさん
2008/09/09(火) 16:50:380784デフォルトの名無しさん
2008/09/09(火) 17:06:24Rubyのサンプルに限らず他言語でのサンプルをRubyで書いてみたらいいんじゃね
0785730
2008/09/09(火) 17:09:440786デフォルトの名無しさん
2008/09/09(火) 17:14:10str << x
str .concat x
ま、好きな方を使え。どうせ行き詰まるんだろうけどw
0787デフォルトの名無しさん
2008/09/09(火) 17:29:07書籍 「Rubyレシピブック」 お勧め。
0788デフォルトの名無しさん
2008/09/09(火) 17:55:560789デフォルトの名無しさん
2008/09/09(火) 19:14:23ソースコード上の定義やCによる実装に飛べるようなエディタの支援が無いとキツイな
0790730
2008/09/09(火) 20:43:52ある変数が取り得る値の範囲をあらかじめ定めることは可能でしょうか?
たとえば、代入時に0〜10までの値以外の値が代入されそうになったとき、
例外を発生させるようなメカニズムなど。
0791デフォルトの名無しさん
2008/09/09(火) 20:49:400792デフォルトの名無しさん
2008/09/09(火) 20:56:53ある変数て…
Ruby の変数には型がないって、このスレの今日の部分にも書いてあるよね
とりあえず、入門書を読んでみなよ
0793730
2008/09/09(火) 21:04:08それは理解しましたが、
私が聞きたいのは型に関することではなく(実質は型のようなものでしょうが)、
ヒューマンエラーで誤って100などの数字を代入しないよう、
安全な代入操作を行いたいだけなんです。
ヒューマンエラーで誤って100などの数字を代入しないために。
0794デフォルトの名無しさん
2008/09/09(火) 21:06:56if文って知ってる?
0795デフォルトの名無しさん
2008/09/09(火) 21:08:480796デフォルトの名無しさん
2008/09/09(火) 21:10:030798デフォルトの名無しさん
2008/09/09(火) 21:11:01オブジェクトという言葉を一度も使ってないことが気にかかる
Rubyはすべてのものがオブジェクトだ
変数と呼ばれるものは、該当するクラスをnew(とか)して作ったオブジェクト(インスタンス)に名前を付けたものに過ぎない
変数という入れ物は存在しない
オブジェクトというものについて勉強することを勧めるよ
これを大まかにでも理解しないままRubyの勉強を進めるとか遠回り過ぎて気が遠くなる
で、回答は
「オブジェクトに登録するときのメソッドをフックする、または専用の登録用メソッドを作成する」
というのが一般的だと思われる
0799デフォルトの名無しさん
2008/09/09(火) 21:11:350800デフォルトの名無しさん
2008/09/09(火) 21:11:58class C
def foo=(v)
raise if v < 0 || v > 10
@foo = v
end
def foo
@foo
end
end
o = C.new
o.foo = 11
0801デフォルトの名無しさん
2008/09/09(火) 21:12:43if文知ってるとチンコはえてきますか?
0803デフォルトの名無しさん
2008/09/09(火) 21:13:17ローカル変数やインスタンス変数に入る値(=代入されるオブジェクトの内容)を、自動的に制限する方法は
基本的には存在しない。テストで頑張るのが常道
ただし、アクセサメソッドを上書きすることで
obj.parameter = 100
といった代入の形に限り、何らかの制限を行うことはできる
0804デフォルトの名無しさん
2008/09/09(火) 21:14:500805デフォルトの名無しさん
2008/09/09(火) 21:19:41確かに、かなりの重症患者だろうな…
ラムダ使いも、度がすぎると全く未知の方法を編み出すんだろう…
0806デフォルトの名無しさん
2008/09/10(水) 00:41:31言語レベルで規制はできない。
やりたかったら、不正な値ならraiseするんかな
0807デフォルトの名無しさん
2008/09/10(水) 00:54:41そのへんは一応>>798ではある、んだが
Rubyにおける「変数のイレモノ」の実体はそれの指すオブジェクトだからな
他の言語における「変数作成時に何かしたい」は「オブジェクト作成・操作時に何かする」だろう
というか、他の言語での変数ってデータのカタマリを指すラベルのようなものじゃないのか?
0808デフォルトの名無しさん
2008/09/10(水) 01:39:07アセンブリとかCOBOLとかperlとかかね。
案外Pythonとかhaskellとかバリバリ使ってるのに
釣りに来ただけだったりw
0809デフォルトの名無しさん
2008/09/10(水) 07:08:07といくら説明しても理解できない人にぶちあたると徒労感でいっぱいになる。
0810デフォルトの名無しさん
2008/09/10(水) 07:09:540811デフォルトの名無しさん
2008/09/10(水) 10:03:17そりゃその2つの間には関連性は希薄だからな
並べられて説明されるほど混乱するのはあたりまえだと思う
0812デフォルトの名無しさん
2008/09/10(水) 11:00:520813デフォルトの名無しさん
2008/09/10(水) 12:46:470814730
2008/09/10(水) 12:57:05久しぶりにこの感覚味わいました。
0815デフォルトの名無しさん
2008/09/10(水) 14:52:260816デフォルトの名無しさん
2008/09/10(水) 15:03:120817デフォルトの名無しさん
2008/09/10(水) 15:40:58---------------------------------------------------
func();
sub func {
print "in func";
}
---------------------------------------------------
以下、Rubyだとエラーが出ます。
---------------------------------------------------
func #=>undefined local variable or method `func' for main:Object (NameError)
def func
print "in func"
end
---------------------------------------------------
エラーを出さないようにするには、関数を呼び出しの前に書くしかないのでしょうか?
Rubyには関数はない
クラスやオブジェクトに関数があるということもない
メソッドのことを関数だと解説している本やサイトがあるなら晒せ
で、答はYES
クラスやメソッドの定義式の評価は実行時に行われる
実行時ということは1行目から順に実行されてるときということで、
つまり定義前のメソッドが書かれてた場合はエラーだ
まあぶっちゃけた話をするとすぐ慣れる
関数定義みたいに後ろに倉庫的にどっさりあったほうがすっきりするよねと思うことは今もあるが
0820デフォルトの名無しさん
2008/09/10(水) 16:50:030822デフォルトの名無しさん
2008/09/10(水) 17:03:25そもそもオブジェクト指向というパラダイム自体不細工。
所詮は商業主義の世迷い事。
いかにも新しいことを考えましたよ、って言いたいがために新しい言葉を作っただけのこと。
本来はメソッドは関数と呼ぶべきだし、クラスも構造体と呼ぶべき。
0823デフォルトの名無しさん
2008/09/10(水) 17:33:180824デフォルトの名無しさん
2008/09/10(水) 17:41:30サンクス
了解しました
0825デフォルトの名無しさん
2008/09/10(水) 17:52:18型理論よりもちゃんとした理論体系が確立されているんですか?
間違いを通そうとして話をそらさないでくださいよ。
0826デフォルトの名無しさん
2008/09/10(水) 18:18:590827デフォルトの名無しさん
2008/09/10(水) 18:19:39そういう事は、それ系のスレかお前さんのブログでやってくれ。
Ruby のスレでオブジェクト指向のパラダイムを受け入れてるのは当たり前だろ。
0828デフォルトの名無しさん
2008/09/10(水) 18:25:16>>827と同じ意見だけど…
0829デフォルトの名無しさん
2008/09/10(水) 18:25:510830デフォルトの名無しさん
2008/09/10(水) 18:26:42誰と混同してるんだ?
0831デフォルトの名無しさん
2008/09/10(水) 18:32:310832デフォルトの名無しさん
2008/09/10(水) 18:32:570833デフォルトの名無しさん
2008/09/10(水) 18:36:30遅延評価、monad、arrow、pi-calculus
0834デフォルトの名無しさん
2008/09/10(水) 18:39:01エイジェント指向ってのは一つのプログラムを作るための概念ではないよ。
もっとマクロな協調動作を目指したもの。
クラスタとかグリッドとかそっち方面の技術だよ。
0835デフォルトの名無しさん
2008/09/10(水) 18:40:200836デフォルトの名無しさん
2008/09/10(水) 19:16:46unterminated string meets end of file
というエラーが出ます。どうしてでしょうか?
0837デフォルトの名無しさん
2008/09/10(水) 19:17:43「芸能」がダメで、「芸」はOKなんです。
0838デフォルトの名無しさん
2008/09/10(水) 19:27:56能
能\
それぞれをShift_JISで保存してバイナリエディタで開いてみるんだ
0839デフォルトの名無しさん
2008/09/10(水) 21:19:16偉大なるKENT様のご説明
文字化けについて
http://www.kent-web.com/pubc/jcode/index.html
0840デフォルトの名無しさん
2008/09/10(水) 21:47:260841デフォルトの名無しさん
2008/09/10(水) 22:42:40うん。ひと晩で二、三本は生えてくるよ
0842デフォルトの名無しさん
2008/09/10(水) 22:43:370843デフォルトの名無しさん
2008/09/10(水) 22:56:51汚くて臭いからさ
0844デフォルトの名無しさん
2008/09/10(水) 23:42:15アスペクト指向はオブジェクト指向の二番煎じ。
ITバブル時代に新しい言葉を作ってビジネス機会を作ろうと企んだが失敗に終わりそうな概念です。
ほかにもajaxとかWEB2.0とか、いろんな言葉が作られて消えていきましたが、
全部商業主義的な目的から作られた物です。
この業界をかき乱すのもそろそろやめてほしい。
0845デフォルトの名無しさん
2008/09/10(水) 23:44:57全部誰かが裏で糸を引いているんじゃないかと思うほど手口が似ています。
0846デフォルトの名無しさん
2008/09/11(木) 00:10:05あんたが「本物のプログラマ」だという事はよく分かったから、
お菓子好きの集まるこのスレにはこないでくれ。
0847デフォルトの名無しさん
2008/09/11(木) 07:48:45ハスケルは学者ばかりですし、そっちではたくさん高級なメタ議論してますよ。
0848デフォルトの名無しさん
2008/09/11(木) 07:58:38> アスペクト指向はオブジェクト指向の二番煎じ。
そうなの? 「MOP の二番煎じ」だとばかり思ってたんだが…
0850デフォルトの名無しさん
2008/09/11(木) 20:56:56商業にすらなってないわ
0851デフォルトの名無しさん
2008/09/11(木) 21:06:21今日のおまんこの締まり具合はどうですか?
0852730
2008/09/11(木) 21:08:49シンボルを宣言するとき:hogeのように記述しますが、
「:」というのはメソッドなのでしょうか?
「:」のようなメソッドを宣言する方法を教えてください。
0853デフォルトの名無しさん
2008/09/11(木) 21:27:10メソッドじゃない。
つーかいい加減マニュアル読めよ
0854デフォルトの名無しさん
2008/09/11(木) 21:30:26どこでメモリ消費してるのか調べるプロファイリングツールみたいのはありますか?
0856デフォルトの名無しさん
2008/09/11(木) 21:40:140857デフォルトの名無しさん
2008/09/11(木) 21:41:57ruby -profile hoge.rb
ただし、これは死ぬほど重いので、rubygem の ruby-prof とかを使う
0858デフォルトの名無しさん
2008/09/11(木) 21:48:56http://www.ruby-lang.org/ja/man/html/_A5EAA5C6A5E9A5EB.html#a.a5.b7.a5.f3.a5.dc.a5.eb
0859デフォルトの名無しさん
2008/09/11(木) 21:49:09だから聞く前に読めよ
0860デフォルトの名無しさん
2008/09/11(木) 21:51:270862デフォルトの名無しさん
2008/09/11(木) 23:41:240863デフォルトの名無しさん
2008/09/12(金) 08:40:450864730
2008/09/12(金) 17:39:58クラス図書いているとあれもこれも機能をつけたくなって、
後で拡張することを視野に入れながら考えていくときりがないですね。。
その点Haskellのストリームスタイルだと後付でも拡張できるから楽ですね。
まぁ、一長一短かもしれませんが。
0865デフォルトの名無しさん
2008/09/12(金) 19:36:26BASIC回帰
PC立ち上げるとBASIC
0867デフォルトの名無しさん
2008/09/12(金) 19:59:06先に「物」がある「オブジェクト指向で設計」ってのは意味がない
って、信じてる連中も多数要ると思うよ
「カプセル化?」いらねっすよ… 「それよりも、おいらの行き先を…」 by Message
0868デフォルトの名無しさん
2008/09/12(金) 20:20:410869デフォルトの名無しさん
2008/09/12(金) 20:41:51初心者スレでするべき話題なのかは置いとくとして
MatzにっきをScalaで検索すると少しわかるかもしらん
0870デフォルトの名無しさん
2008/09/12(金) 20:49:12言語仕様については、例えばこんなことを語っていた
ttp://www.rubyist.net/~matz/20071122.html#p01
まあ確かに、
「型安全を保ちつつ型推論で記述量を減らす」
「より関数型に近い」「Erlang由来のアクターみたいな新機能」
ってのは、静的言語の進化の方向としてはアリな気はする
0871デフォルトの名無しさん
2008/09/12(金) 20:55:270872デフォルトの名無しさん
2008/09/13(土) 00:10:162.1あたりがそうだ
0873デフォルトの名無しさん
2008/09/13(土) 00:35:34各クラス=Classクラスのインスタンス、ではないのですか?
Classクラスの特異インスタンスなので、細かくいうと、
Classクラスを継承した専用クラスのインスタンスと理解していたのですが、
この図はそれと全然異なっています。
それに、メタクラスの絡む部分では、クラス同士がinstanceofで繋がれています。これはどういう事?
0874デフォルトの名無しさん
2008/09/13(土) 00:39:420875デフォルトの名無しさん
2008/09/13(土) 00:47:33ttp://www.amazon.co.jp/gp/reader/4873113679/
0876デフォルトの名無しさん
2008/09/13(土) 01:19:26yugui本
0877デフォルトの名無しさん
2008/09/13(土) 01:42:00メタクラスと言う物の理解は
http://d.hatena.ne.jp/m-hiyama/20080109/1199863428
だったのですが、873のメタクラスというのは、
少なくとも、これとは基本的に異なるRuby固有の話ですよね?
それにしても、クラス同士でinstanceofとか、意味がわからないです。
Rails作る位のレベルでなければ気にすべきでない?
0878デフォルトの名無しさん
2008/09/13(土) 07:45:33ちょっと頭をひねってみたが、
どう頑張ってもyuguiさんより上手い説明を思いつかなかった(書いてあることも多分正しいし)ので
ここを読んでみては
http://idm.s9.xrea.com/ratio/2008/04/10/000768.html
クラスメソッドが特異クラスのインスタンスメソッドだという構造が
理解の突破口になるかもしれない
0879デフォルトの名無しさん
2008/09/13(土) 08:07:470880デフォルトの名無しさん
2008/09/13(土) 09:08:36「各クラス=Classクラスのインスタンス」までの理解でとどめれば、実用上は十分な気がするんだが
何か困ることってあるのか?
0881デフォルトの名無しさん
2008/09/13(土) 09:16:180882デフォルトの名無しさん
2008/09/13(土) 09:32:36確かに言語設計のセンスあるし実装とかも勉強になるよ。
0883デフォルトの名無しさん
2008/09/13(土) 11:27:19ふうん。すごいね(棒)。ネット知識(笑)?
0884デフォルトの名無しさん
2008/09/13(土) 12:14:360885デフォルトの名無しさん
2008/09/13(土) 14:05:46「クラス」あるいは「メタクラス」とかは概念上のものであって、
ここに書かれているのはすべてメモリに存在する具体的なオブジェクト。
http://d.hatena.ne.jp/m-hiyama/20080109/1199863428 でいうオブジェクトプレーンの図に相当。
というかそれよりさらに実装寄りで、
「継承」は単に「superclassスロットの中身」という程度の意味。
「instanceof」は単に「オブジェクトの型/クラス情報ポインタ」という程度の意味。
yurieからYapooへのinstanceofは普通の(オブジェクトとクラスの)instanceof概念だけど、
実際はyurieもYapooもオブジェクト。yurieの型情報がYapooであるというだけ。
Yapooから(Yapoo)へのinstanceofは、クラスとメタクラスのinstanceof概念。
実際はYapooも(Yapoo)もオブジェクト。Yapooの型情報が(Yapoo)であるというだけ。
YapooからCattleへの継承矢印は普通の(クラス間の)継承概念だけど、
実際はYapooもCattleもオブジェクト。YapooのsuperclassスロットがCattleを指してるというだけ。
(Yapoo)から(Cattle)への継承矢印はメタクラス間の継承概念だけど、
実際は(Yapoo)も(Cattle)もオブジェクト。(Yapoo)のsuperclassスロットが(Cattle)を指してるというだけ。
そう考えると、Classや(Object)あたりも、単にそういうもんかと受け入れられるようになりました。ほかの方もありがとうございます。
こうなってくると、やはりプロトタイプベースはすっきりしてていいなぁ、と思えてきますね。
0886デフォルトの名無しさん
2008/09/13(土) 14:21:31仕事で作成してあのレベルなのかい?
と正直おもった。あれってどんくらい時間かけてつくったんだろうな。
0887873=885
2008/09/13(土) 14:22:36>>873で言ってる図は、
http://idm.s9.xrea.com/ratio/images/20084013-metaclass.png
がほとんどそのまんまなので、>>885ではこちらについて書きました。
0889デフォルトの名無しさん
2008/09/13(土) 14:28:58っていえるようになるかもな。今は、自分でシミュレーション用のプロトタイプつくるときに
ちゃちゃっとつくって、動かしてみるくらいで、客の手にわたる段階では、べったりC/C++
0890873=885
2008/09/13(土) 14:41:48http://idm.s9.xrea.com/ratio/images/20084013-metaclass.png
の読み方が得心できたので、チラ裏。
instanceとか継承とか、一般概念を持ち込んで読もうとするとドツボ。
点線矢印は「オブジェクトのメソッドを持ってる人」。
実践矢印は「インスタンスメソッド探索の委譲先」。
と割り切って読めば、すっきり理解できました。
0891デフォルトの名無しさん
2008/09/13(土) 14:42:42なんか、性能が必要なジャンルの開発くさいが。
さすがにrubyでいいって言ってもらえるのは、
web系くらいじゃね?
0892デフォルトの名無しさん
2008/09/13(土) 16:30:20Classと(Class)の使い分けに何かありそうだ、という程度までは把握した
0893デフォルトの名無しさん
2008/09/13(土) 16:58:01旧態以前とした、Cがメインの開発なんですよ。
現状では、自分だけRubyでプロト開発して、雰囲気や見えてなかった問題点
理解したあと、C/C++におきかえていってんです。
なんとか社内全体でプロトはRuby、性能要求満たしてくれてたら
そのままRubyで仕上げ。どうしてもCっていうときはそれを使う、という雰囲気
になってくれたら、これ以上の幸せはないですよ。
0894デフォルトの名無しさん
2008/09/13(土) 17:04:310895デフォルトの名無しさん
2008/09/13(土) 17:14:35堅剛性か。
ruby自体の堅剛性と言語としての安定性も問題ですな。
仕様ビシバシ替えてくれるし。
OS変るとrubyのバージョンが変わるから、
時前ソフトの評価のやりなおしが発生。
とか考えるとCのままがいいような気も。
0896デフォルトの名無しさん
2008/09/13(土) 17:24:24> OS変るとrubyのバージョンが変わるから、
同じバージョン持ってきてコンパイルすりゃいいんじゃねぇの?
0897デフォルトの名無しさん
2008/09/13(土) 17:37:39個人ならそれでいいけど。
その手間(誰がやるの顧客?)と
セキュリティアップデートとか追従考えると
普通は出来ないと思うよ。
>>893の詳細がわかってないけど
サポートどうするとか色々考えると
Cのままに落ち着くんじゃないかな。
プロトやテスト用にruby使うのは、
使い捨てで構わないからすごい便利だけど。
納品して色々な品質問われるものには、どうなんでしょ?
って気がしてる。
0898デフォルトの名無しさん
2008/09/13(土) 18:02:32処理系側に脆弱性が発見された場合、該当ヶ所を含んでいるとどうせ差し換えに…
納品用にrpmあたりのパッケージシステムに適合する物を作って配布すれば問題ない。
うちの会社だと、実際そうやってる客先は結構ある。
0899デフォルトの名無しさん
2008/09/13(土) 18:03:50に相当するライブラリ(?)は無いんでしょうか。
(やりたいこと:片仮名⇔平仮名の変換)
自作するとバグが怖いんで、
実績あるものがあるなら使いたいのですが。
0900デフォルトの名無しさん
2008/09/13(土) 18:12:45Rubyでつくられたプログラムと
Cでつくられたプログラム比べたら
Cでつくったほうが致命的バグ多そうだけどね。
0901デフォルトの名無しさん
2008/09/13(土) 18:16:390902デフォルトの名無しさん
2008/09/13(土) 18:42:24ShiftJISの時
NKF.nkf("-h2 -Ss","あいうえお") #=>"アイウエオ"
NKF.nkf("-h1 -Ss","アイウエオ") #=>"あいうえお"
これ参照
ttp://doc.loveruby.net/refm/api/view/class/NKF
0903デフォルトの名無しさん
2008/09/13(土) 18:59:59納品するような場合どうすんのかね。
特定の環境用に作って、それ使いつづけて下さい?
メンテ契約を別にして運用される限り保守すんの?
OSを替えたくなったら、評価と再構築で別契約?
機会ごとに金とれるなら結構いい仕事かもな
0904デフォルトの名無しさん
2008/09/13(土) 19:16:000905デフォルトの名無しさん
2008/09/13(土) 19:22:170906デフォルトの名無しさん
2008/09/13(土) 19:29:390907デフォルトの名無しさん
2008/09/13(土) 19:31:52OSDLやtransmetaに雇われたこともあるし
実際には業務はあまりなくてlinuxの開発し続けられてる
matzも楽天で同じなんでない?
多分二人は同類
0908デフォルトの名無しさん
2008/09/13(土) 19:32:150909デフォルトの名無しさん
2008/09/13(土) 19:32:480911730
2008/09/13(土) 20:11:32ruby-openglのライブラリにバグを見つけたのですが、
どこにどういう手段でパッチを送れば良いんですか?
0912デフォルトの名無しさん
2008/09/13(土) 20:36:18実行環境をかえることなんてないわい。
だから、Railsでもかんけーねぇよ。
CなんかDLLかわったら恐怖だぞ。gcc3に変わったときとか
新人がかってにCLIBバージョン入れ替えてそれはもうひどい目にあった。
0913デフォルトの名無しさん
2008/09/13(土) 20:45:36DLLなんて、そん時はrubyもそれ以外も全滅だわ
3年してOSのサポートが切れたらどうすんだ?
リプレースはCならコンパイルしなおして評価して。
rubyは評価して、バージョン変ってるよガーン
作り直しだね。もういっぺん発注
とか簡単に逝くのか
0914デフォルトの名無しさん
2008/09/13(土) 20:49:00新規OSに対応してくれ、っていうのなら、別料金は当然。
0915デフォルトの名無しさん
2008/09/13(土) 20:57:41RHELで4年,Ubuntu LTSが5年なので、
客もこの期間だけ使うつもりでいるわけね。
安心した
0916デフォルトの名無しさん
2008/09/13(土) 21:01:15ruby-dev MLかredmine.ruby-lang.org
0917デフォルトの名無しさん
2008/09/13(土) 21:02:31ttp://ruby-opengl.rubyforge.org/
ruby本体関係ねーからこっちなんじゃねーの?
0918デフォルトの名無しさん
2008/09/13(土) 21:08:520919デフォルトの名無しさん
2008/09/13(土) 21:12:23RubyはRuby。現状まともなのがC実装しかみあたらないだけ。
0920デフォルトの名無しさん
2008/09/13(土) 21:14:29かつ技術者としてのセンスもあるから、コミュニティのカリスマとしては大丈夫かな。
ただカリスマってのは一人っきりで大変だなって感じはする。
ゲイツとかジョブスに比べると、技術は上だけど世渡りは下になるのかなw
0921デフォルトの名無しさん
2008/09/13(土) 22:33:530922デフォルトの名無しさん
2008/09/13(土) 22:38:53バージョンうぷで見事に動かなくなる。
もう5年周期でシステム入れ替えだからなー
1億で20年という時代ではなく、500万x4回の時代。
Railsのじだいじゃまいか。
0923デフォルトの名無しさん
2008/09/13(土) 22:49:330924デフォルトの名無しさん
2008/09/13(土) 22:56:19脆弱性のとこだけかえりゃいいのにな〜。
オプソ開発してたら、そりゃー常識。未だにTomCat3とかメンテさせられとるが、付き合い長い
からソースの構造が頭にはいっとる。
0925デフォルトの名無しさん
2008/09/13(土) 23:01:35× き弱
○ 脆弱
0926デフォルトの名無しさん
2008/09/13(土) 23:06:36upできるか判断して、
自前部分以外もメンテするなんて、
それはかわいそ過ぎ。
0927デフォルトの名無しさん
2008/09/13(土) 23:53:08問題はそれでいくら貰えるのかだ。
その話を本当だとして、
お前さんの時間を新規開発に使わない事による損失を
埋めるだけの金を貰えてるのかどうか。
0928デフォルトの名無しさん
2008/09/14(日) 00:26:350929デフォルトの名無しさん
2008/09/14(日) 01:30:211週間でやっつけるところを
2ヶ月分工数もらえればおいしい
という考えならありかな。
ちょいちょいとやって、後のテストやらは、
人海戦術担当にまかせて、自分は次のことやればいい
0930デフォルトの名無しさん
2008/09/14(日) 04:38:46def check_state
if @state == :DATA
if eof?
if @next_connection
if @requests.empty? @state = :WAIT
else @state = :META
end
end
end
end
end
(def check_state
(when (and (= (@ state) :DATA)
eof?
(@ next_connection))
(set! (@ state) (if (@ requests empty?)
:WAIT
:META))))
0931デフォルトの名無しさん
2008/09/14(日) 04:54:52Rubyの開発をしてる人ってどんな開発環境用意して開発してるんでしょう?
ソース修正するたびに
make
make install
して確認してるんですかね?
それとも修正した箇所だけコンパイルやり直して実行する手段とかあるんですか?
C言語の開発やったことないので気になりました。
0932デフォルトの名無しさん
2008/09/14(日) 05:18:160933デフォルトの名無しさん
2008/09/14(日) 09:07:21rubyに限った書き方ではないが
def check_state
return if @state != :DATA
return unless eof?
return unless @next_connection
@state = ( @requests.empty? ? :WAIT : :META )
end
0934デフォルトの名無しさん
2008/09/14(日) 09:21:44一行に納められるけど長すぎても読みづらいし、こんなとこか
def check_state
return unless @state == :DATA && eof? && @next_connection
@state = ( @requests.empty? ? :WAIT : :META )
end
0935デフォルトの名無しさん
2008/09/14(日) 09:23:120936デフォルトの名無しさん
2008/09/14(日) 09:26:360937デフォルトの名無しさん
2008/09/14(日) 09:28:51スペースあっても一瞬??ってなる
0938デフォルトの名無しさん
2008/09/14(日) 09:31:12馬鹿みたいに無駄なネストさせんな。
0939デフォルトの名無しさん
2008/09/14(日) 09:31:38930みたいに、わざわざネストさせて書く必要が無い。ってか読みづらい
933か934を推したい
0940デフォルトの名無しさん
2008/09/14(日) 09:40:050941デフォルトの名無しさん
2008/09/14(日) 09:43:36>>930はifの条件式が全て真で判断してて読みやすい。
というか圧倒的?というほど読みやすくなったとも思えない。
そもそも、@state == :DATA を @state != :DATAに書き換えてるけどこれじゃ意図が全然違うでしょ。
unlessと条件演算子を使いたいだけとちゃうんかと。
0942デフォルトの名無しさん
2008/09/14(日) 09:44:12ちなみに930のコードは昔のhttp-access2の一部ね
今どうなってるかわからんけど(dev.ctor.org落ちてるし^^;;)
0943デフォルトの名無しさん
2008/09/14(日) 09:58:08lispっぽく書きたいならlisp使え
0944デフォルトの名無しさん
2008/09/14(日) 10:00:45i) "!" を使うくらいなら unless を使う。
ii) 正常系は if だけ。異常系に飛ばす時は unless。
今まで見た事あるのは、これくらいなんだけど。
0945デフォルトの名無しさん
2008/09/14(日) 10:04:200946デフォルトの名無しさん
2008/09/14(日) 10:12:34end
end
end
end
が))))と似てるから適当にパーザ組んでえいやって変換したら>>930の上から下のようになった(ここまできれいな形じゃなかったけど)から
もしかしたらもしかするかももしかして、と思って書いてみた次第でございましあt
0947デフォルトの名無しさん
2008/09/14(日) 11:03:30繋らないの?死ぬの?
0948デフォルトの名無しさん
2008/09/14(日) 11:36:28ふつーmakeが依存関係をたどって必要なところだけコンパイルしてくれる。
(つか、makeというコマンドはそういうことを実現するために存在する)
あと、動作確認だけならインストールしなくてもmake testだけで事足りることが多い。
0949デフォルトの名無しさん
2008/09/14(日) 11:57:42そうでなければ何か計算して返す
という骨子に関しては、わかりやすいのは>>934だな。
0950デフォルトの名無しさん
2008/09/14(日) 11:59:49make test で動作確認などの必要なテストが一通り実行されるように、
あらかじめ作っておくことが多い。
0951デフォルトの名無しさん
2008/09/14(日) 12:01:26if 〜 end の形で常用するのはちょっと変な感じ
ひとつでも ! の否定が混じった場合は unless 禁止
0952デフォルトの名無しさん
2008/09/14(日) 12:29:51人それぞれだろうが
0953デフォルトの名無しさん
2008/09/14(日) 13:17:230954デフォルトの名無しさん
2008/09/14(日) 13:33:40error 'foo!'
end
...
例外と相性良さそうやね
0955デフォルトの名無しさん
2008/09/14(日) 13:46:450956デフォルトの名無しさん
2008/09/14(日) 14:12:120957デフォルトの名無しさん
2008/09/14(日) 14:24:050958デフォルトの名無しさん
2008/09/14(日) 14:32:40unless (hoge && foo) || piyo
うーん・・・!()を美しくするより
ちゃんとpiyo評価してくれる安心感のほうが好きかな
じゃあ下もカッコで囲めやって感じだけど
0959デフォルトの名無しさん
2008/09/14(日) 15:06:21unless (!cond || param == '1') then
とか即っと読めん
0960デフォルトの名無しさん
2008/09/14(日) 15:08:220961デフォルトの名無しさん
2008/09/14(日) 15:29:03誰もand/or/notを使ってないのはどういうことだ
0962デフォルトの名無しさん
2008/09/14(日) 15:31:380963デフォルトの名無しさん
2008/09/14(日) 15:32:02全員C脳ってことだ
0964デフォルトの名無しさん
2008/09/14(日) 15:38:13違う、なぜ&&を使ってandを使わないのかってこと
0965デフォルトの名無しさん
2008/09/14(日) 15:38:30windows xp上にactiverubyの1.8をインストールしてからgemでrailsもインストールしたのですが、ついでにsqlite3-rubyもインストールしようと
gem install sqlite3-ruby
を実行したのですが、以下のようなエラーがでてインストールに失敗しました。
無事インストールを完了するにはどうすればいいでしょうか?
C:\Program Files\Microsoft Visual Studio 9.0\VC>gem install sqlite3-ruby
Building native extensions. This could take a while...
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension.
D:/tools/programming/ruby/ruby-1.8/bin/ruby.exe extconf.rb install sqlite3-ruby
checking for fdatasync() in rt.lib... no
checking for sqlite3.h... no
nmake
Microsoft(R) Program Maintenance Utility Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1073: 'ruby.h' のビルド方法が指定されていません。
Stop.
Gem files will remain installed in D:/tools/programming/ruby/ruby-1.8/lib/ruby/g
ems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to D:/tools/programming/ruby/ruby-1.8/lib/ruby/gems/1.8/gems/sqli
te3-ruby-1.2.4/ext/sqlite3_api/gem_make.out
C:\Program Files\Microsoft Visual Studio 9.0\VC>
0966デフォルトの名無しさん
2008/09/14(日) 15:38:46>>862
&& || と and or の使い分けの話かと。
Perlではこいつらを*分かって*併用することに対して文句言ってる人
見たことないんだけど、Rubyではたまに見かける気がする。
0967デフォルトの名無しさん
2008/09/14(日) 15:47:25予約語って感じがしない
長いし
0968デフォルトの名無しさん
2008/09/14(日) 15:59:17yugui本に書いてたけど、&&とandじゃ優先順位が違うんでしょ。
自分は and, or, not 派です。
ソースが読みやすい。
0969デフォルトの名無しさん
2008/09/14(日) 15:59:450970デフォルトの名無しさん
2008/09/14(日) 16:13:32優先順位とかわからんようになる
まあ順位がわからなそうなら()で括くるように心がけてるが
0971デフォルトの名無しさん
2008/09/14(日) 16:14:420972デフォルトの名無しさん
2008/09/14(日) 16:16:40後ろの式が省略されうるかってのは安心感とか言う問題ではないような…
式を括弧で囲んだからといって短絡評価されることににかわりはないよね。
rubyに限った話じゃないが、if式の方でもpiyoが実行される保証はないぜ。
0973デフォルトの名無しさん
2008/09/14(日) 16:16:59> NMAKE : fatal error U1073: 'ruby.h' のビルド方法が指定されていません。
ActiveScriptRubyはコンパイルに必要なヘッダやライブラリが別パッケージになってたはず。
0975デフォルトの名無しさん
2008/09/14(日) 16:33:02ttp://d.hatena.ne.jp/kitamomonga/20080618/ruby_mechanize_firefox3_cookie
0976デフォルトの名無しさん
2008/09/14(日) 16:42:39試してないけど gem install sqlite3-ruby --version '= 1.2.3'で動くんじゃね?
1.2.4はソースレベルの変更だからバイナリ配布しないってRubyforgeに書いてた。
0977デフォルトの名無しさん
2008/09/14(日) 16:43:05http://gigazine.net/index.php?/news/comments/20080912_panda_movie/
Merbで構築されたらしい
0978デフォルトの名無しさん
2008/09/14(日) 17:17:03できました!
どうもありがとうございます><
0979デフォルトの名無しさん
2008/09/14(日) 17:18:05すみません。
>>974
探してみます、どうもありがとうございます
0980デフォルトの名無しさん
2008/09/14(日) 18:28:46常にバイナリパッケージのみをインストールしたい場合はどのように設定すれば良いのですか?
0981デフォルトの名無しさん
2008/09/14(日) 18:47:060982デフォルトの名無しさん
2008/09/14(日) 19:12:580983デフォルトの名無しさん
2008/09/14(日) 20:45:22なぜ「小飼弾のアルファギークに逢ってきた」にMatzが出てこないんでしょうか?
小飼弾とMatzって仲が悪いの?
0984デフォルトの名無しさん
2008/09/14(日) 20:50:12羽田-松江往復の飛行機代呉れたらやるよ、とか返事されるかも。
0985デフォルトの名無しさん
2008/09/14(日) 20:51:50スレ違いだな
子飼いスレでも探して逝ってきな
オファーしたけどMatzが断わったとかいうネタなら
戻って来い
0986デフォルトの名無しさん
2008/09/14(日) 21:31:47片方はPerlどっぷりで片方はRubyどっぷりでしょ。知らないけど。
0987デフォルトの名無しさん
2008/09/14(日) 23:13:25len = string.length
print "len";
これで「5」ってでてきて
ほしいのですが、でてきてくれません。
0988デフォルトの名無しさん
2008/09/14(日) 23:16:54string = "ABCDE"
len = string.length
print len;
これで、できました。
””ダブルクオーテーションで囲まなくてもいい、て
最初から言ってくれなきゃ困るじゃないですか。
0989デフォルトの名無しさん
2008/09/14(日) 23:20:24多くのプログラミング言語では"len"と書かれると、
「len」としか表示されません。
0990デフォルトの名無しさん
2008/09/14(日) 23:22:330991デフォルトの名無しさん
2008/09/14(日) 23:25:120992デフォルトの名無しさん
2008/09/14(日) 23:27:340993デフォルトの名無しさん
2008/09/14(日) 23:35:090994デフォルトの名無しさん
2008/09/14(日) 23:37:26お前はCOBOLをやってみろ。発狂するぞ。
0995デフォルトの名無しさん
2008/09/14(日) 23:58:05...って、この手の話題はスレ違いだな
0996デフォルトの名無しさん
2008/09/15(月) 00:49:58なんか良い方法ないすか?
0997デフォルトの名無しさん
2008/09/15(月) 01:02:430998デフォルトの名無しさん
2008/09/15(月) 03:07:370999デフォルトの名無しさん
2008/09/15(月) 11:21:10、_ノっ,wo
三 ( し'= ・`e
゙vv-vv"
1000デフォルトの名無しさん
2008/09/15(月) 11:32:3510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。