Ruby について Part 3
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGRuby Home Page
http://www.ruby-lang.org/ja/
<前スレ>
Rubyについて Part 2
http://pc3.2ch.net/test/read.cgi/tech/1028906179/
<過去スレ>
Rubyについて
http://pc3.2ch.net/test/read.cgi/tech/1012096319/
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG国内サッカー板が見れない…
0048デフォルトの名無しさん
NGNG前に見たときは Linux 版しか対応してなかったけど、
Windows 版も出てるようだから試してみるね。
0049デフォルトの名無しさん
NGNGおなじく ruby によるサンプルをはげしく希望
0050デフォルトの名無しさん
NGNG「これ言っていいですか?」 「これ言うとヤバイですか?」 って他人に聞いてるだけw
寝るのがイヤなら、教えて厨は初心者板に逝ってねw
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGださくないか?
(笑)もザサイから、(^^)がナウイよ。
0053デフォルトの名無しさん
NGNGなわけねーだろ。
ネット初心者がこーゆーとこに来るのは、どうかと思うぞ。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG俺素人だからよくわからないが
アク禁にしないのは何か理由るのかな・・?
0056名無しrubyist
NGNG>>45
ガイシュツだったような気がする。
つか、WideStudioって結構使われているの?
使いやすい?
005745
NGNGすみませぬ。
#これ荒らしなの? 2chがイカレタのかと思ってた。
0058case 名無し:
NGNG> 荒らしというより、スクリプトのバグでは?IP実験を始めた途端に他のスレの
> 書き込みがPC板全般に流れてきてるみたい。
という噂が。
0059名無しrubyist
NGNGうん、荒らしらしい。
詳しくは自治スレ見るとわかるよ。
プログラム板自治スレッド
http://pc3.2ch.net/test/read.cgi/tech/1029122103/
0060デフォルトの名無しさん
NGNGこれと比較するとruby-listはおとなしめだな。
興味を持った話題。
Win32Serial Extension Library for Ruby
WindowsのシリアルポートをRubyで使うライブラリ。
ttp://grub.ath.cx/win32serial/
Rubyで制御とかできるのかな。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG実質的には上告はもう無理らしい。
うれしいなぁ。
0063デフォルトの名無しさん
NGNG徹底できるわけがないから無駄なことやめて unix 板へでも逝け。
ここはもう人いないよ。
0064名無しrubyist
NGNGそれもそうだな。
俺、窓使いだけどおじゃまさせてもらいます。
0065デフォルトの名無しさん
NGNG久しぶりに笑ったよ!
0066デフォルトの名無しさん
NGNGわざわざ使う人いないと思うけど…
どこで公開されてるの?そんな糞トリップ公開されてもねぇ
同じ人が串でも使っているんじゃ?
0067デフォルトの名無しさん
NGNG0068山崎渉
NGNG0069irbについて
NGNG自前のモジュール(関数郡)を組み込んだり
一度プロセスを終了しても変数の値を保存しておいたりすることはできますか?
0070デフォルトの名無しさん
NGNG2. Marshal や PStore
0071山崎渉
NGNG0072irbについて
NGNG使った変数すべてを自動的に保存復旧したいのです。
a=3
exit
再起動
p a
3
みたいに。
0073デフォルトの名無しさん
NGNGirb で打ち込んだのを全て保存しておいて、
起動時に読ませるようにすれば?
0074デフォルトの名無しさん
NGNGirb を終了させなければいいのでは?
0075デフォルトの名無しさん
NGNGlocal_variables()を使えばいけそう。
と思ったが、ローカル変数だと、ちいと辛いな・・
bindingでうまくいかないかな?
ちと、やってみます。
007675
NGNGclass VarsStore
def initialize(storefile)
@store = PStore.new(storefile)
end
def save(bind)
hash = {}
eval("local_variables", bind).each do |name|
val = eval("#{name}", bind)
if val.equal?(self)
next
end
hash[name] = val
end
@store.transaction do
@store["local"] = hash
end
end
-----
つづく
007775
NGNG-----
def load(bind)
hash = nil
@store.transaction do
hash = @store["local"]
end
hash.each do |key, val|
$varsstore_val = val
eval("#{key} = $varsstore_val", bind)
end
end
end
007875
NGNGセーブ
VarsStore.new("hoge").save(binding)
ロード
VarsStore.new("hoge").load(binding)
とする、今のところBindingを指定しないとだめ。
ローカル変数にダンプできないオブジェがあるとエラーを吐く。
保存できるクラスは限定させた方がいいかな?(NumericかStringのみとか、、、)
あとは、適当に改造してみてね。>>72
0079デフォルトの名無しさん
NGNGWin32API.new に関するリファレンスは
どっかに転がってないでしょうか?
0080デフォルトの名無しさん
NGNGほれ。
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Win32API
0081デフォルトの名無しさん
NGNGここのページのファイルって拡張子が.gzだけど、どうして?
(ダウソして中身みてみたらアーカイブになってなかったけど)
0082デフォルトの名無しさん
NGNG君がダウンロード時に自動的にgzip展開するブラウザを使ってるんだろう。
0083デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ の設定がヘボいから。
0084デフォルトの名無しさん
NGNGサンプルコードとして以下のようなものが添付されてます。
-- tc_adder.rb
class class TC_Adder < Test::Unit::TestCase
..
--
ファイル名、クラス名なんですけども、もはや
ファイル名の頭に「tc_」、クラス名の頭に「TC_」っていうのは、
業界標準なんでしょうか。
0085デフォルトの名無しさん
NGNGよいのでしょうか。
0086デフォルトの名無しさん
NGNGTestCaseの略では。
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG漏れは RubyUnit(runit) の表記の方が好き。
Adder -> AdderTest のように suffix をつける。
0089デフォルトの名無しさん
NGNGAdder -> TestAdderって付ける漏れは標準でないのか…。
そして、ファイル名はtestadder.rbだし。
ファイル名とクラス名を同じにするのは普通なんじゃないの?
それとも漏れがJavaなんかやっている所為でそれになれているから?
0090デフォルトの名無しさん
NGNGどうにも違和感がある。RubyUnit からの移行は、Ruby の動的な言語仕様のおかげで、移行のための
コードもそんなに書かなくて済むけど(今後、XML::Dom だの出てくるだろう)ちょっとな。
(メソッド名でも assert_equals, assert_equal という違いがある なんで統一しない? < Test::Unit)
今更、Rubyにライブラリのネーミング規則云々っていうのは似合わないような気がしてる。
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNGRuby+GtkとかeRubyとかRuby+XMLとか…
あんなんでよく本が1冊も書けるなあ、っていうか、買う人いるの?
他の言語の開発者だったら、あんなの1冊ずつ買ってたら絶対置き場所なくなる。
0093デフォルトの名無しさん
NGNGそっか? Amazonで、Javaあたりで検索すれば、Swingで、Appletで、DBで、XMLで、
Webサービスで、……という具合なんだが。アプリケーションドメイン毎に本が出る
のは当然じゃないだろか?
0094デフォルトの名無しさん
NGNG入門書だけで10冊や20冊ぐらいある言語を見ると、
そっちの方がある意味おかしくないかい?
まあ、256本のやつは確かに異常だけどさ…。
でも、極道編は俺にとって面白かったぞ。
UnitTestの入門書としては。
0095デフォルトの名無しさん
NGNG寂しげですね。素直にZope使ってはいかがですか?
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGHTMLはStrictじゃないと許さん、みたいな。
0098デフォルトの名無しさん
NGNGローカルで見るようにしよと思ってドキュメントをダウソして解凍してみたら
形式がRDでやんの。
HTMLの形式でも配ってくれればいいのに。
HTMLのやつもあったけど、リンク切れがあちこちにあるし、
ひとつのファイルに連結されてるからIEじゃ重くて使いにくいし。
0099Rubist@田中ノーベル賞
NGNGhttp://www.vsl.gifu-u.ac.jp/freeman/misc/ruby-docs-1.6.7/refm-ja/
0100デフォルトの名無しさん
NGNGHTMLはStrictにしる!ドキュメントはRDにしる!!
Windows、Mac OSは消去してLinux/BSDにしる!
スローガン:
欲 し が り ま せ ん 勝 つ ま で は
0101デフォルトの名無しさん
NGNG0102Rubist@カラアゲ
NGNGんこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
んこんこんこんこんこんこんこんこんこんこんこんこんこんんこんこんこ
0103Rubist@カラアゲ
NGNG俺のようなマイルドな奴もいるぜ、ヒヒヒ。。
010498
NGNGよくさがしてみたら、Windows版のHTML Helpってのがあった。
0105デフォルトの名無しさん
NGNGごめん, 厨のこと忘れてた。
0106デフォルトの名無しさん
NGNG美的感覚といえば、Ruby はインデントの主流が2なのもどうかと思う。
正直見づらい。
(RDフォーマットは賛美両論ありながらも、俺は気に入ってる)
0107デフォルトの名無しさん
NGNG賛否、だろ。
賛美なら一論。
0108デフォルトの名無しさん
NGNG何の言語でもインデント 2 で書きますが何か?
…趣味で作るやつは、だけど。
0109デフォルトの名無しさん
NGNG原理主義者だから、GNUスタイルのインデント 2なのね。
0110デフォルトの名無しさん
NGNGC あたりは4
0111デフォルトの名無しさん
NGNGindex()を使ったほうが速いだろうと思っていて、いままで全部index()
を使ってきたけど、念のために速さを調べてみたら正規表現のほうが
速かった。
ちょっとショック。
if str.index('hoge') ...
if str =~ /hoge/ ... # こっちのほうが速い
0112デフォルトの名無しさん
NGNGあれ、linux カーネルは tab の 8 で書かれてなかったっけ。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG違う環境に持っていってもインデントが崩れないのが好き。
0115デフォルトの名無しさん
NGNGえ?ほんとう?
0116デフォルトの名無しさん
NGNGString#indexをBM searchでも使って書き直して送るべし。
0117デフォルトの名無しさん
NGNG調べなおしてみたら、文字列が短いときとか最初のほうでマッチするとき
は、index()のほうが速かった。
0118デフォルトの名無しさん
NGNGif text =~ /^hogehoge$/i
大文字小文字無視して等しいか調べるときも、正規表現が速かった。
1.7ではcasecmpというのがあるみたいだけど、入れるのが面倒だから
調べられない。
0119名無しさん
NGNGにrubyのコーディングスタイルについての文章がある。
俺も3スペースインデントしてたけど、最近は2スペースだな。
ま、どんな言語でもその標準ライブラリが何で書かれてるかに
従ったほうがいいと思う。あんまり変なスタイルだと、それだけ
で気も悪がられる気がする。
だからCで外部モジュール書くときもついK&Rで書いてしまう。
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGインデントをタブ文字で抽象化しないのは何故だ?
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126Rubist@カラアゲマイルド
NGNGHTML>>>>>>>>>>>>>>>>>>rd
0127デフォルトの名無しさん
NGNGで検索できる地形図から2.5万、5万、20万の地形図を合成
して作ろうと思っています。
例えば、5339は東京(20万分1地勢図)で、
5339??(??は00〜77)が東京(1/20万地勢)に含まれる1/2.5万地形図で、計64枚あります。
(メッシュコードの概念はhttp://www.biodic.go.jp/kiso/col_mesh.html参照)
Web上からは以下で落とせます。
for j in {1..4}
do
for i in {00..77}
do
wget -q "http://mapbrowse.gsi.go.jp/mapimagef25k/5339/5339${i}${j}.png"
done
done
このpng画像は1/2.5万地形図を約*4分割したもので、
1→南西、2→南東、3→北西、4→北東となっていて、4枚合わせて2.5万になります。
(*:実は少しダブって分割されています。)
0128デフォルトの名無しさん
NGNG% convert -crop (ca)x(db)+a+b orange.gif blue.gif
の機能を使って、
png画像→1/2.5万
1/2.5万→1/5万
1/2.5万→1/20万
1/5万→1/20万
とする方法が考えられます。
この変換スクリプト、誰か書いてくださいませんでしょうか。
僕にはそこまでできません。
す み ま せ ん が 誰 か 助 け て く だ さ い 。
0129デフォルトの名無しさん
NGNGrubyには無いのでしょうか?
(flockくらいしか方法は無いのでしょうか?)
0130127
NGNGhttp://nlftp.mlit.go.jp/ksj/mesh.html
の方がわかりやすいかも。
% convert -crop
を使うのは2.5万の4分割がダブっているからです。
きれいに分割できればあとはタイルのようにくっつけるだけですが
僕にはできませんでした‥‥‥
0131デフォルトの名無しさん
NGNG↓このように書いてたものを
while true
text.index('hoge')
end
↓このように書き直してみたら、正規表現とほぼ同じ速さになりました。
t = hoge
while true
text.index(t)
end
リテラルがあると遅くなるのかなぁ?
0132デフォルトの名無しさん
NGNGhttp://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Mutex
これでいいか?thread.rbにあるので、
require 'thread'
して、使ってね。
0133デフォルトの名無しさん
NGNGそれはプロセス内でしか使えないのでは?
0134デフォルトの名無しさん
NGNGRAAで、semaphoreとかSysV IPCとか入れて探してみれば。
0135デフォルトの名無しさん
NGNGあ、勘違いスマソ。
プロセス間ね、スレッド間だと思っていた。
0136デフォルトの名無しさん
NGNG>>134さんが言っているのはたぶん、
http://www.ruby-lang.org/raa/list.rhtml?name=sysvipc
これのことでしょ。
でもプラットフォームによっては使えなさそう…。
flockもプラットフォームによるので、、まあ、UNIX系なら問題ないか。
つか、簡単に使えるのがあったら、CGIがめちゃくちゃ楽になるな〜。
0137デフォルトの名無しさん
NGNG> リテラルがあると遅くなるのかなぁ?
構文解析結果のノードの中の文字列をそのまま使用できないので、
毎回、'hoge'文字列のコピーが行われます。
変数を使用する場合は、その変数の値の文字列が
そのまま使用されます。
0138山崎渉
NGNG0139デフォルトの名無しさん
NGNG> 構文解析結果のノードの中の文字列をそのまま使用できないので、
> 毎回、'hoge'文字列のコピーが行われます。
補足すると、文字列自体はStringオブジェクトの間で共有されるので、
文字列のコピーというよりは、Stringオブジェクトのコピーが
毎回行われるということです。
0140デフォルトの名無しさん
NGNGの|i|を省略可能にしてくれ。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGもっと簡潔に書けないでしょうか?
open("log", "w"){|f|
lines.each{|s|
f.puts s
}
}
0143デフォルトの名無しさん
NGNGf.puts lines.join("\n")
0144デフォルトの名無しさん
NGNG★こんなサイト見つけました★
0145デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています