08/02/13 00:24:48
そうかgoogle site:を使えばよかったのかー。頭悪いな > オレ
>>806さん、ソース読んでみました。
main_to_s
rb_define_singleton_method(ruby_top_self, "to_s", main_to_s, 0);
拍子抜けしました。Init_Objectあたりをもっと深く読んでみようと思います。
ありがとうございました。
810:783
08/02/13 02:49:21
レスくれた方有難うございました。
確かにttcは読み込めなかったので
Miyako入れる方向で探っていく事にします
それにしてもruby/SDLの文字表示がこんなに弱いとは…
811:デフォルトの名無しさん
08/02/13 04:33:24
>>779
釣られてるよ。
>>777のpythonのコードは、sortに()が付いてないから実際にはソートしてない。
812:デフォルトの名無しさん
08/02/13 07:53:37
$ irb
irb(main):001:0> l=[100,101,102,103,104,105,106,107,108,109]
=> [100, 101, 102, 103, 104, 105, 106, 107, 108, 109]
irb(main):002:0> l.each_with_index do |item,idx|
irb(main):003:1* puts "hit #{item}"
irb(main):004:1> l.delete_at idx if 0==item%2
irb(main):005:1> end
hit 100
hit 102
hit 104
hit 106
hit 108
=> [101, 103, 105, 107, 109]
irb(main):006:0>
意図したとおり奇数だけ残せたのですがhitの表示がなぜ偶数だけになっているか分かりません
delete_atするより前でputs "hit #{item}"してるので全要素がputsされると思ったのですが。。。
813:デフォルトの名無しさん
08/02/13 08:07:34
消す度にずれてるから
p l
とか
puts "hit #{item} at #{idx}"
にして見れば分かる
delete_ifを使えばいいよ
814:812
08/02/13 08:28:52
理解できました ありがとうございます
delete_if使ってみます
815:デフォルトの名無しさん
08/02/13 09:05:53
>>811
python -c 'range(0,10000000).sort'
real 0.0859320 user 0.0468750 sys 0.0312500
python -c 'range(0,10000000).sort()'
real 0.0771435 user 0.0312500 sys 0.0468750
>>779
ruby -e '(0...10000000).sort'
real 2.1707595 user 1.6875000 sys 0.1406250
ruby -e '(0...1000000).to_a
real 0.3525165 user 0.2500000 sys0.0937500
816:デフォルトの名無しさん
08/02/13 09:10:38
桁が違うとか紛らわしい
ruby -e '(0...10000000).to_a
real 1.6034130 user 1.4531250 sys 0.1406250
817:デフォルトの名無しさん
08/02/13 10:14:36
10000000 を 10_000_000 とか 1000_0000 とか書けることは意外と知られてないし使われてないな
irb> p 10_000_000
10000000
818:デフォルトの名無しさん
08/02/13 10:41:43
>>810
でもMiyakoでは特に変なことしてないみたいだぞ?
api/font.rb を「TTF」で検索してみ
819:デフォルトの名無しさん
08/02/13 14:09:52
Pythonのマージソートは部分整列を利用してほげほげとかクックブックに書いてあったから
range(0,10000000).sort() のソートにほとんど時間がかからないはず。
(参考:URLリンク(svn.python.org))
Rubyはどうなのよ
820:デフォルトの名無しさん
08/02/13 15:29:39
マージソートなのか。
rubyはクイックソートだから、整列済みのものには不利だな。
821:デフォルトの名無しさん
08/02/13 15:34:42
>>820
それもあるけど、1.9だとシステム提供のqsortでなく割と高速なqsort実装を使っているので、その例だとPythonとほぼ互角の速度になる。
822:デフォルトの名無しさん
08/02/13 18:19:53
"ID;本文"という形式のcsvファイルを読み込み、
本文だけを文節単位でわかち書き(半角スペースを挿入する)して
返すスクリプトを書きたいと思っています。
そのため、RubyからCaboChaにテキストを渡して処理しようと
CaboCha0.53をインストールしたのですが、
肝心のCaboChaの呼び出し方がさっぱりわかりません。
CaboCha公式サイト(URLリンク(chasen.org))
には「詳しくは, ruby/README…をご覧ください.」と書いてあるのですが
そのruby/READMEがCaboChaインストールフォルダ内に見つからず…
どなたか、インストール方法とRubyからの呼び出し方を
教えていただけますでしょうか。
●実行環境
WindowsXP SP2
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
※One-Click Installer - Windows 1.8.6-26 Final Release 使用
CaboCha 0.53(Binary package for MS-Windows)
823:デフォルトの名無しさん
08/02/13 19:18:25
>>822
CaboCha というのは全く使ったことがないけど、
そのページから落せるソース cabocha-0.53.tar.gz には
ruby/README は入ってたよ。
中を読むとさらに test.rb を読めとあって、test.rb 内には
コメントとかまったく書いてないんだけど、まあその辺は C ライブラリの
方を見て予想しろってことなんじゃないかと。
あ、Windows での tar.gz の伸長には適当になんかフリーソフトを探してくれ。
824:デフォルトの名無しさん
08/02/13 20:44:51
Cgi = CGI.new
ip = ENV['REMOTE_ADDR']
host = ''
begin
host = Socket.gethostbyname(ip)[0]
rescue
host = ip
end
Cgi.out{host}
これでちゃんとリモホ名に変換出来る鯖と
出来ない鯖があるんですが、鯖の問題なんですよね?
825:デフォルトの名無しさん
08/02/13 20:52:30
rescueでエラー殺しておいてそういう質問するな
SocketError: host not found
が出るという話ならRubyのバージョンが悪いとかなんとかいうことになってた気がする
エラー時にコマンドラインから外部コマンド使うとなんとかなるかも
826:デフォルトの名無しさん
08/02/13 21:08:44
>>825
すみません…
助言ありがとうございました!
827:デフォルトの名無しさん
08/02/13 21:31:37
require 'cgi'
require 'socket'
cgi = CGI.new
begin
cgi.out{Socket.gethostbyname(ENV['REMOTE_ADDR'])[0]}
rescue
cgi.out{CGI.escapeHTML($!.inspect)}
end
う~ん、こうやっても特に例外は出てない様です…
変換出来ない鯖のRubyのversionは1.8.5でした…
828:783
08/02/14 02:31:38
ruby/SDLの日本語表示の質問した者ですが
IPAフォントというフリーのttfを見付けたので
Miyakoを入れずとも日本語表示は出来ました
ただ、新たな問題としてボールドとイタリックの書体設定が出てきました
見る限りSDLやMiyakoにそういう機能は無いようですし…
そもそもこういう書体設定はどういう理屈でやってるんでしょうか
829:デフォルトの名無しさん
08/02/14 02:35:27
>>827
とりあえず何かのファイルにENV全体を書き出してみたら?
CLIENT_IPとかX_FORWARDED_FORとかVIAとかなら取れるかもしれない。
830:828
08/02/14 02:41:52
>>828
自己解決しました
思いっきりスタイルの設定部分見落としてたわ…
失礼しました
831:デフォルトの名無しさん
08/02/14 07:29:33
正規表現でこういうのは無理?
p "X(1)((2)Y)Z".gsub(/\([0-90-9]+\)/g, '')
やりたいこと
・(1)(2)を両方取り除く
わからんこと
・gオプションって無い?
・全角0-9の指定は無理?
※cygwin版ruby
832:デフォルトの名無しさん
08/02/14 07:30:27
↑全角がまじっちゃったけど、( )は全て半角
833:デフォルトの名無しさん
08/02/14 07:36:47
jcodeかなんかrequreする必要があったような無かったような・・・
gオプションってマッチを1回で止めない、ってperlのおぷそんだったけ?
それならデフォルトでそうなんじゃなかったっけか。
834:デフォルトの名無しさん
08/02/14 07:37:15
sub
gsub
835:デフォルトの名無しさん
08/02/14 07:47:34
さんくす
>>833
jcodeじゃgsubないっぽい
[0123456789]て書かないと駄目くさい
>>834
そうだった、gは必要ないな
836:デフォルトの名無しさん
08/02/14 10:51:43
>>831
jcodeをrequireして、
str.tr("0-9", "0-9").gsub(...)
ただ他の関係ない全角数字も巻き込まれる :-)
837:デフォルトの名無しさん
08/02/14 11:00:58
>823
ありがとう。
結局、rubyバインディングをインストールするには
Win用のCaboChaバイナリのほかに
UNIX用のCaboChaとSWIGを落としてきて自分でmakefileしないと
いけないようですね。
838:デフォルトの名無しさん
08/02/14 11:20:26
全くカボチャやらメカブやらチャセンやら・・・
ズイキはないのっ!?
839:デフォルトの名無しさん
08/02/14 11:40:53
>>831
半角開きカッコ・半角または全角数字・半角閉じカッコ
の並びを消去したいなら、正規表現はそれで問題ないぞ
(たしかにgオプションは存在しないのでつけたら駄目だが)
もし動作しないというなら、それは単に文字コード指定の問題だろう
対象文字列がShift_JISやらCP932やらならsを、日本語EUCならeつけろ
irb> p "X(1)((2)Y)Z(3)45".gsub(/\([0-90-9]+\)/e, '')
"X(Y)Z45"
840:デフォルトの名無しさん
08/02/14 14:16:13
>>839
確認してみたら通ったよ。
何が悪かったかといえば、コマンドラインで-Kオプションつけずに
ネイティブでないエンコード使ってたからぽい
だからコンパイル時にエラーになってた。
841:デフォルトの名無しさん
08/02/14 15:26:24
Rubinius で、Ruby にインクリメント演算子モドキを実装 - sumim’s smalltalking-tos
URLリンク(d.hatena.ne.jp)
…バイトコードを探して加算するという力技
842:デフォルトの名無しさん
08/02/14 16:26:06
コンテキストがべたべたに見えてるのか、
Rubyはなぜかそれをやらなかったんだよね、
フレームのオブジェクト化。
843:デフォルトの名無しさん
08/02/14 16:26:39
rubyは、か。
844:デフォルトの名無しさん
08/02/14 16:54:11
>>843
matzは、か?
845:デフォルトの名無しさん
08/02/14 16:59:21
>>842
しないほうがいいんじゃね?>>841なんてどうかんがえても力業だし
846:デフォルトの名無しさん
08/02/14 17:07:43
この手のイントロスペクションが可能だと、デバッガを強化できるんだがな。
847:デフォルトの名無しさん
08/02/14 17:15:38
ドコに力点を置くかだよね
特に悪影響がないのなら導入すればいいわけで
848:デフォルトの名無しさん
08/02/14 18:33:31
ruby/SDLの日本語表示の質問してた者です
何度も何度も済みません…
ttfのフォントで半角英数文字列を出力すると
全角幅で出てしまうんですが、何か調整する機能は無いのでしょうか?
一応ゴリ押しすれば、
文字列を各文字に分割して文字幅取りつつ各個表示
という風に行けそうではありますが…
849:デフォルトの名無しさん
08/02/14 19:45:01
>>848
何を言ってるのかよく分からないのですが、とりあえず
URLリンク(mono.kmc.gr.jp)
にある作品で、該当しそうなことをやってるものの
ソースを読んでみたらどうでしょうか。
高橋メソッドとか文字表示に特化してそうだし、
ソースをちょっと見てみた限りTTF使ってるみたいだし、
実行してみてないので想像ですが、半角/全角が
区別されずに表示されるという事もないんじゃないかなあと思います。
850:デフォルトの名無しさん
08/02/14 20:27:32
>>848
俺の環境ではそういった現象は起こっていない(半角は半角幅で出力される)
もう少しkwsk
851:デフォルトの名無しさん
08/02/14 20:35:06
フォントによってはそうなるよ
ruby/sdlではなくfreetypeの仕様っぽい
プロポーショナルなフォント使えば大丈夫だったと思う
852:848
08/02/14 20:49:34
ソース出した方が早そうですね
フォントはIPAゴシックです
SDL.init(SDL::INIT_EVERYTHING)
screen = SDL.set_video_mode(SCREEN_W, SCREEN_H, 16, SDL::SWSURFACE)
SDL::TTF.init
font = SDL::TTF.open("IPAFont/ipag.ttf", 24)
font.style = SDL::TTF::STYLE_ITALIC
font.draw_blended_utf8(screen, "abc", 0, 32, 255, 255, 255)
これで全角幅で出ます(Pゴシックも同じ)
「abc」でなく「a b c」という感じ
853:848
08/02/15 03:47:05
レスどうもです
色々試しましたがどうもフォント依存の問題みたいですね
Arialだと普通に間合いが詰まってましたし
…しかし日本語フォントで
サイズ一定以下にすると表示がバグるとか不具合もあるようで
これ本当にゲーム作れるのか…?
854:デフォルトの名無しさん
08/02/15 04:07:32
>>835
ここで愚痴るより作者にメールを送れYO!
反応のある確率はここより低いかもしれんが、
もしあった場合より的確な答が返ってくるだろうし
パッチも当たるかもしれないじゃん。
855:デフォルトの名無しさん
08/02/15 04:33:18
追試してみたけどそもそも文字が出ないw
なにがわるいんだろ?
856:デフォルトの名無しさん
08/02/15 15:31:04
かなり亀だが
>>797
case h
when h.has_key?(:param1) ...
これって期待通りの動作しなくね?
857:デフォルトの名無しさん
08/02/15 16:07:58
h === h.has_key?(:param1) って何が起こるの?
858:デフォルトの名無しさん
08/02/15 16:10:42
あ、逆か。
h.has_key?(:param1) === h って何が起こるの?
859:デフォルトの名無しさん
08/02/15 16:43:47
そのまんまだよ
h が === 的に true と同一なら true、同一でないなら false が返る
Hash は TrueClass に属してないから常に false だね
860:デフォルトの名無しさん
08/02/15 16:46:09
変な書き方だった
Hash は TrueClass にも FalseClass にも属してないから結果は常に false だね
に変更
861:デフォルトの名無しさん
08/02/15 19:22:31
休刊になったLinux Magazine全部入りDVDを入手
Matz御大による、初等Ruby講座(と探訪Ruby)の
存在を知り拝読(中)
しっかし、なんつーわかりやすさなんでしょう
なんでもないと思ってたとこでも
目からうろこが、ぽろぽろぽろぽろ…
開発者自身の手でここまでやさしく書かれた
ドキュメントがあったなんて!と
ちょっと感動しました
過ぎるほど今更ですみません
862:デフォルトの名無しさん
08/02/15 20:21:59
>>858
逆じゃないよ。(when式)===(case結果)で合ってる。
863:デフォルトの名無しさん
08/02/15 21:33:48
>>862
だから>>858はそう書いてるんじゃないか?
864:デフォルトの名無しさん
08/02/15 21:49:36
case h
じゃなくて
case
なんだろうね。
865:デフォルトの名無しさん
08/02/15 22:13:01
gem install したときに 所有者 root でインストールしようとするのを止めさせることはできますか?
$ gem install --no-ri --no-rdoc hpricot
make
cc -I. -I. -I/usr/local/lib/ruby/1.8/i386-freebsd6 -I. -fPIC -O2 -fno-strict-aliasing -pipe -fPIC -c hpricot_scan.c
cc -shared -Wl,-soname,hpricot_scan.so -L'/usr/local/lib' -Wl,-R'/usr/local/lib' -o hpricot_scan.so hpricot_scan.o \
-Wl,-R -Wl,/usr/local/lib -L/usr/local/lib -L. -lruby18 -lc -lcrypt -lm -pthread -lc
make install
/usr/bin/install -c -o root -g wheel -m 0755 hpricot_scan.so /home/俺/rubygems/gems/hpricot-0.6/lib/i686-linux
install: /home/俺/rubygems/gems/hpricot-0.6/lib/i686-linux/hpricot_scan.so: chown/chgrp: Operation not permitted
*** Error code 71
866:デフォルトの名無しさん
08/02/16 00:35:29
原因が絞られたので再質問します
Ruby1.8.5にて、ユーザー権限でgem install hpricotしようと思いました。
しかし、root権限でインストールしようとしてしまってうまくいきません。
/usr/bin/install -c -o root -g wheel -m 0755 hpricot_scan.so
レンタルサーバ(さくら)なので rbconfig の CONFIG の INSTALLキーに
/usr/bin/install -c -o root -g wheel という文字列が入ってしまってるからのようです。
これを変更した上でgem install を実行させることはできますか?
867:866
08/02/16 01:25:16
あーできたー。っていうかこれ罠っぽい…
さくらインターネットでrubygemsのインストールでコケる場合の対処
/usr/local/lib/ruby/1.8/i386-freebsd6/rbconfig.rb を見ると
> CONFIG["INSTALL"] = ENV['RB_USER_INSTALL'] ? '/usr/bin/install -c' : '/usr/bin/install -c -o root -g wheel'
とかいう記述がある
よって
setenv RB_USER_INSTALL true
とかコマンドラインで入力してから rubugemsをインストールすればいい
(試してないけどたぶんrubygemsのインストール時1回のみでおk)
あーもう寝る
868:デフォルトの名無しさん
08/02/16 02:52:50
>>861
宗教じみてるので釣りかと思った
869:デフォルトの名無しさん
08/02/16 02:58:43
>>861
そんなに分かりやすいのか・・・買う価値ありかね?
870:デフォルトの名無しさん
08/02/16 03:48:49
初めて知ったが、そもそもLinux Magazineぜんぶ入りが買いじゃね?
>>866-867
さくらの共有?Railsまともにうごきます?
871:デフォルトの名無しさん
08/02/16 04:21:29
でももう2年前の話だしなぁ・・・休刊。
まだVineが人気の時代じゃね?
872:デフォルトの名無しさん
08/02/16 10:07:47
>>870
FastCGI入ってないけどそれでもよければ
873:デフォルトの名無しさん
08/02/16 10:16:34
Webサービスとして使うのは問題外ってことだな
自分用かバックグラウンド動作用か
874:デフォルトの名無しさん
08/02/16 11:15:37
% time python -c 'range(0,10000000).sort'
0.769u 1.022s 0:01.79 99.4% 0+0k 0+0io 0pf+0w
% time ruby -e '(0...10000000).sort'
3.170u 0.259s 0:03.42 100.0% 0+0k 0+0io 0pf+0w
875:デフォルトの名無しさん
08/02/16 11:58:20
>>872
まともに使えない上に、同じ鯖の人に迷惑になりそうな(´・ω・`)
876:デフォルトの名無しさん
08/02/16 12:02:23
どっかのページで、CGI版でも高速動作させるって方法があったけど、
結局、プロセスをしばらく立ちあげといてって方法なので、レンサバだと無理そうだった・・・
CGIでRailsをまともに動かす - 古橋貞之の日記
URLリンク(d.hatena.ne.jp)
877:デフォルトの名無しさん
08/02/16 13:00:28
以前からずううううっと気になってたんだけどさ
file = open('test.txt','r').read
とか
file = File.open('test.txt','r').read
ってしたときって、test.txtを開いたときに使ったIOオブジェクトってcloseされてる?
readの中で実はブロックとか使っててcloseしてるとか
878:デフォルトの名無しさん
08/02/16 13:06:30
>>877
close はしてないので File.read("test.txt") を使ったほうがいい。
バイナリモードの指定ができないくそインターフェイスだけど。
879:デフォルトの名無しさん
08/02/16 13:18:18
あるいは、長くなってもいいなら content = open(...) {|io| io.read }
880:デフォルトの名無しさん
08/02/16 13:26:21
File.open(path).read は「動くけどあまり好ましくない書き方」のひとつだな
881:デフォルトの名無しさん
08/02/16 13:47:03
参照カウンタの方がスクリプト言語にはあうね
882:デフォルトの名無しさん
08/02/16 13:52:34
やっぱり、そんなには知られていなかったんですね>Matzの連載
私も知らずに手に入れたんですけど
初等講座が190ページ、探訪が96ページ
雑誌連載ならではの密度(基本2段組でビッシリ)ですので
これ目当てで買っても損はないかと思います。
ただ、PDFの2段組は読みづらいです。
私はスレタイどおりの初心者なので
正直、中盤以降はナナメ読みになりましたが
ハッシュと正規表現の置換のところで
そう書いてくれればわかる!という開発者ならではの
曇りのない記述に出会えたので
これだけで個人的には得した気分です。
883:デフォルトの名無しさん
08/02/16 14:04:34
何の本の話ですか?
884:デフォルトの名無しさん
08/02/16 14:05:15
>>861じゃね?
885:デフォルトの名無しさん
08/02/16 14:05:32
861 デフォルトの名無しさん [sage] Date:2008/02/15(金) 19:22:31 ID: Be:
休刊になったLinux Magazine全部入りDVDを入手
Matz御大による、初等Ruby講座(と探訪Ruby)の
存在を知り拝読(中)
886:デフォルトの名無しさん
08/02/16 14:06:09
ありがとう
失礼しました
887:デフォルトの名無しさん
08/02/16 14:07:33
>初等講座が190ページ、探訪が96ページ
>雑誌連載ならではの密度(基本2段組でビッシリ)ですので
>これ目当てで買っても損はないかと思います。
ここだけ出版される予定はないの?
888:デフォルトの名無しさん
08/02/16 14:08:06
出たら買うかも
889:デフォルトの名無しさん
08/02/16 14:16:30
生
URLリンク(ruby-sapporo.org)
890:デフォルトの名無しさん
08/02/16 14:18:56
>>861の感想とかこのところ荒みっぱなしのMatzに読ませてやりたいな
891:デフォルトの名無しさん
08/02/16 15:51:50
Hpricotを半日いじった結果、
「そのサイト専用の正規表現使ってHTMLからdivやtable単位でscanで切り出して配列にしさらに正規表現で切り出す」
ということをしたほうが速いということに至った
もっと一般的なことするまでさよならHpricot
892:デフォルトの名無しさん
08/02/16 16:33:24
初等Ruby講座
第1回 はじめの一歩
第2回 条件判断とループ
第3回 オブジェクトと変数
第4回 配列
第5回 ハッシュ(または連想配列)
第6回 文字列の操作
第7回 パターンマッチ
第8回 入出力
第9回 数と電卓
第10回 CGI
第11回 Rubyで作るCGI
第12回 CGIの道具箱
第13回 ファイル処理
第14回 ネットワークプログラミング
番外編 Rubyカンファレンスレポート
第15回 プロセスとフォーク
第16回 スレッド(その1)
第17回 スレッド(その2)
第18回 データの保存
第19回 XMLとYAML
第20回 XMLとYAML(その2)
第21回 エクストリーム・プログラミング
第22回 独習Ruby
第23回 再入門オブジェクト指向
最終回 ここからのRuby
893:デフォルトの名無しさん
08/02/16 16:34:31
探訪Ruby
第1回 Rubyの国へようこそ
第2回 テスト第一主義
第3回 Wiki Wiki
第4回 Blogの世界
第5回 アスペクト指向
第6回 RubyとEmacs
第7回 Instiki
第8回 テンプレート
第9回 DBM
第10回 tDiary
第11回 Webアプリケーションの基礎
第12回 Webアプリケーションの基礎(その2)
第13回 Webアプリケーションフレームワーク
第14回 マークアップ・マークダウン
第15回 ダイコン
最終回 ネタのタネ
894:デフォルトの名無しさん
08/02/16 18:25:28
>>891
WWW::Mechanizeもそうだけど、ドキュメントがないからどうやったら早いのかわかりずらいよね。
俺も苦労した。
ただいっておくけど、
> 「そのサイト専用の正規表現使ってHTMLからdivやtable単位でscanで切り出して
> 配列にしさらに正規表現で切り出す」
ってのが楽にできるのが、Hpricotですよ。
895:デフォルトの名無しさん
08/02/16 20:28:24
楽さか速度のどっちを選ぶかだね。
896:デフォルトの名無しさん
08/02/17 05:08:19
>>894でいかにもな感じで勧めてみたのだが・・・
>>891みたいな、「それ今知っている技術でやった方が早いよ」と思う人にはやはり勧められない。
文句言うだけなので、やめておいた方がいい。
Hpricotは、半分は「おおーすげー」って感動するためにあるようなものでし、
基本この手のライブラリは、ソース読まないとまともに使えないし、
とにかく早く(速くじゃないよ)やりたいなら、
導入コストがでかいので、gemで入るような既存のライブラリを使うことは勧めない。
897:デフォルトの名無しさん
08/02/17 05:30:32
rubyでXMLを扱うのに速度の速いライブラリはありますか?
rexmlを使うと10秒近くかかるので
最低限の機能としてはXPATHが使えればいいです。
898:デフォルトの名無しさん
08/02/17 05:43:42
Hpricotはここ見れば簡単にわかるだろう
URLリンク(mono.kmc.gr.jp)
899:デフォルトの名無しさん
08/02/17 09:38:02
そんなお前らに超オススメ scrAPI
URLリンク(wota.jp)
900:デフォルトの名無しさん
08/02/17 10:57:19
Hpricotは「抜き出したい範囲の終わりの文字列」が特徴的で自明なときは非効率
html.scan(/<table class="nested"><tr><td>(.+?)<\/tr><\/td><\/table>\r\n<div class="box1/)
みたいな感じ
「どう言っても対応する</div>だとしか言えない」とかいう場合はHpricotのようなパーサの出番
あとHpricotを使っておきながらto_htmlしたものとかを正規表現でscanしたら負けなのでよろしく
901:デフォルトの名無しさん
08/02/17 11:03:30
>>892-893
Rubyの記事だけ抜き出してうんこpdfの段組をばらして
htmに変換してついでにHTML Help形式にもコンバートして売って欲しい・・・
902:デフォルトの名無しさん
08/02/17 11:08:50
>>897
HpricotのXMLモードかlibxml-ruby
903:デフォルトの名無しさん
08/02/17 11:44:50
>>897
Hpricotが拡張ライブラリ使ってるから早いんじゃね?
使ったことはないが
904:デフォルトの名無しさん
08/02/17 15:20:46
expect.rb は標準で入っているんですか?
ActiveSriptRuby で入れた ruby 1.8.6 には入っていないようです。
905:デフォルトの名無しさん
08/02/17 15:55:12
>>902
Hpricotインストールしてみたけどまだ5秒ぐらいかかる。
libxml-rubyはgemでインストールしようとしたらエラーが出たので挫折。
ただHipricotより圧倒的に速そうだ。
906:デフォルトの名無しさん
08/02/17 16:12:42
>904
pty拡張の一部なので(ext/pty/lib/expect.rb)、
ptyのないシステムには入っていないかも知れない。
907:デフォルトの名無しさん
08/02/17 21:04:17
Rubyをシュミで使うくらいには初心者から片足抜けたんだけど、
お勧めの面白そうな言語ある?
PerlとCとJavaは除外で
908:デフォルトの名無しさん
08/02/17 21:05:34
Python
909:デフォルトの名無しさん
08/02/17 21:11:07
最近はlispをたしなむのが流行らしい。
910:デフォルトの名無しさん
08/02/17 21:18:30
Schemeあたりに触れて「面白いけど使えねー」と嘆き
Haskellあたりを食い散らかして「作れるもんねーよ」と嘆く
そしてRubyに戻ってくると…「俺こんな汚いコードや粗悪なアルゴリズム書いてたのか!」
とりあえずはLisp系列か関数型言語のどっちかだろ
911:デフォルトの名無しさん
08/02/17 21:58:41
Pythonは変な意味で被らないか
912:デフォルトの名無しさん
08/02/17 22:28:38
すいません、教えてください。
@one, @two, @three, @four, @five ...
とインスタンス変数をたくさん持ったオブジェクトAがあり、
@one, @two, @three
というように上の一部に対応するインスタンス変数(のみ)を
持ったオブジェクトBがあります。
Bのインスタンス変数すべてが対応するAのそれと同じ対象を
参照していればtrue、そうでなければfalseを返すメソッドが
ほしいのですが、どうすればキレイに書けるでしょうか?
913:デフォルトの名無しさん
08/02/17 22:29:32
TOOWTDIな世界に触れてみるのは悪くないと思う
914:デフォルトの名無しさん
08/02/17 22:33:31
>>913
なんかの書き間違いかと思ったら、パイクソかよ。
915:デフォルトの名無しさん
08/02/17 22:53:00
>>912
そういう全比較の結果に頼らなければならないこと自体が何か非常にまずい
916:デフォルトの名無しさん
08/02/17 22:57:00
>>912
よくわかんないけど、Object#instance_variables とか Object#instance_variable_get とか使えばいいんじゃないか。
a = A.new
b = B.new
b.instance_variables.each do |varname|
val = b.instance_variable_get(varname)
if val != a.instance_variable_get(varname)
puts "b.#{varname} != a.#{varname}"
break
end
end
917:912
08/02/17 23:09:35
>>915
自分もそんな気はしてたんですが、アプリの終了時に
上書き保存のダイアログを出すかどうか調べる方法として、
こんなへたれロジックしか思いつきませんでした・・・。
>>916
これ、いただきます。感謝です。リフレクション系のメソッドが
なかなか自然に浮かんできません。修行します・・・。
918:デフォルトの名無しさん
08/02/18 00:08:57
>>917
もっといい方法があるはず
リフレクション無しでやれないかどうか、頭を捻って考えるべき
どうしても思いつかないなら、ここでソース(or具体的なクラス構成)を提示して
「どんな方法があるか」を質問すればいい
919:デフォルトの名無しさん
08/02/18 01:34:54
AとBで共通に参照してる変数群が表す情報は
オブジェクトで表現してみるとか。比較一つでいいし。
関係ないこと纏めてもしゃーないからやっぱ
設計しだいだけど
920:デフォルトの名無しさん
08/02/18 05:45:53
>>917
変更した時にフラグを立てることは出来んの?
921:デフォルトの名無しさん
08/02/18 09:10:09
>>916
カプセル化の意味ねー。
922:デフォルトの名無しさん
08/02/18 09:11:50
MIX-INってどうなったの。
rubyといえばMIX-INって記憶してるんだけど。
923:912
08/02/18 09:37:09
>>918
リフレクション無しでというのが基本なんですよね。
もいっかい考えてみます。またよろしくです。
>>919
オブジェクトで表現して比較というのは考えたんですが、
どうやったら同一性を定義できるのかわからなくなって
とりあえず変数比較でお茶をにごした次第です。
>>920
undo/redoを実装していて、どっちみちオブジェクトの状態を
保存しておく必要があってフラグにはしませんでした。
でもやっぱりあったほうがいいのかも。
924:デフォルトの名無しさん
08/02/18 10:05:24
同一性は==でいいと思うんだが…
925:デフォルトの名無しさん
08/02/18 10:14:38
>>924
926:912
08/02/18 11:24:18
>>どうやったら同一性を定義できるのかわからなくなって
オブジェクト自体じゃなくて変数の参照先の同一性の間違いです。
が、考えてみると普通に一個一個見ていけばいいだけですね。
そうすると面倒くさくなってやっぱり916がいいような気が。
927:デフォルトの名無しさん
08/02/18 11:42:06
そんなん==を再定義すればいい。
instace_variable_get使うつもりだったのをオブジェクトにして、
アクセサつけてprotectedにして。
928:デフォルトの名無しさん
08/02/18 11:42:18
文字化けします。助けて
・出力結果
URLリンク(news23.org)
・環境
OS Windows 2000
使ったライブラリ URLリンク(raa.ruby-lang.org)
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
・文字コード
ソースの文字コード sjis
コマンドプロンプトの文字コード 932(sjis)
・出力メソッド
print、puts、pでほとんど同じ
・実行
ruby -Ks amazos.rb
(ソース中に文字コード指定なし)
929:デフォルトの名無しさん
08/02/18 11:52:25
>>928
自己解決しました
require 'nkf'
出力したい文字列.tosjis
930:デフォルトの名無しさん
08/02/18 19:52:14
Unicode を SJIS で出力してる風な文字化けだなあ
931:デフォルトの名無しさん
08/02/18 20:13:49
>>930
いやそのまんまだし
元のXMLを自力で解析してれば文字列がUTF-8のままだって気づいたんだろうけどね
初心者が一足飛びにモジュールだけ使うのも考えもんだな
932:デフォルトの名無しさん
08/02/18 20:25:26
chcpコマンドを使ってる人を初めて見た
933:デフォルトの名無しさん
08/02/18 21:27:03
Ruby/AmazonはREXML使ってるみたいだけど、REXMLってUTF-8以外の対応がいまいちだったような。
934:デフォルトの名無しさん
08/02/18 21:38:16
UTF-8以外のXMLはレッドデータブック入りだから大丈夫
935:デフォルトの名無しさん
08/02/18 21:38:32
UTF-8以外のXMLは要らない子だし
936:デフォルトの名無しさん
08/02/19 00:52:15
質問です。
www.ruby-lang.org に置いてあるマニュアルのスナップショット版(rd形式)
を html に変換するにはどうすれば良いのでしょうか?
937:デフォルトの名無しさん
08/02/19 00:53:56
RDのマニュアルとか見ればいいんじゃね?
938:デフォルトの名無しさん
08/02/19 01:02:01
>>937
すみません。
RDのマニュアルはどこにありますか?
939:デフォルトの名無しさん
08/02/19 01:20:41
というか普通のHTML版やHTMLヘルプ版では何かまずい?
940:デフォルトの名無しさん
08/02/19 01:33:24
>>939
できれば最新版を参照したいので、スナップショットから
HTML版を構築したいのです。
941:デフォルトの名無しさん
08/02/19 07:10:47
>>917
GUIアプリだと、変更時にフラグを立てる
Undoの実装などにコマンドパターンを使うから、
フラグ立てひとつ処理が増えたとしても影響ない
942:デフォルトの名無しさん
08/02/20 16:36:58
VB6のような、DelphiのようなRubyがあったらなぁ
あ...言ってみたかっただけです
943:デフォルトの名無しさん
08/02/20 17:02:47
「ディレクトリの中の更新済みのrbファイルだけをサーバにFTP転送する」
というのが手作業で面倒なのでrakeというものでやってみようと思いました
…ファイルから2次的ファイルが生成されるようなやり方でないと記述できない? *.cと*.oのような
944:デフォルトの名無しさん
08/02/20 17:10:49
>>943
よーわからんが、
「オブジェクトファイルより新しければコンパイル実行」
という判断の元になる「オブジェクトファイル」に該当するものが
RubyスクリプトのFTP転送という仕事には存在しないから
新しいファイルだけを転送ということをさせることができなくね?
という質問でいいか
945:デフォルトの名無しさん
08/02/20 20:59:53
>>943
Rakeについてる rake/contrib/ftptools.rb がそれっぽいけど
# This file is still under development and is not released for general use.
だそうな
Rake::FileTaskみたいにRake::Taskを継承して、タスクを実行する必要があるか
判定するメソッドneeded?を定義してやればできそう
946:デフォルトの名無しさん
08/02/20 21:43:21
FTPは鯖にある日付がいまひとつ確実に取れないからねぇ。
相手側にシェルアカウントがあればそのまま、自宅にSSH鯖があればCGI経由で
rsync/SSHとかできるけどね。
947:デフォルトの名無しさん
08/02/20 22:01:26
ローカルにインストール用ディレクトリとか作ってそこにコピーさせればいい
ディレクトリにあるファイルより新しければFTP転送
Rubyスクリプトが大量にある場合はちと悲惨だが…
948:デフォルトの名無しさん
08/02/20 22:14:03
単に転送終わったときにタイムスタンプ用のファイルをtouch。
次回はそのファイルより新しいものだけを転送。
でいいじゃん。
949:デフォルトの名無しさん
08/02/20 22:17:50
Rake使ってみたいって言ってんじゃんよ
950:デフォルトの名無しさん
08/02/20 22:49:55
950を踏んだ訳だが
951:デフォルトの名無しさん
08/02/20 23:03:55
踏む前に書いたくせに!
踏む前に書いたくせに!
952:デフォルトの名無しさん
08/02/20 23:41:46
うむ
>>950
流れが速いわけじゃないし埋めるのも手間だし別に970とか980とかでもいいような気もする
953:デフォルトの名無しさん
08/02/20 23:59:39
>>949
別に使わなくてもいいよ
いや真面目な話、Rakeの依存解決が使えない場面なんていくらでもある
そういう場合は無理にRakeの機能に頼らなくてもいい
954:デフォルトの名無しさん
08/02/21 01:29:52
俺だってRakeの中にrsyncでサーバー(つってもsambaだがwww)と差分同期とるのを書いて
ふだんから使ってるぜ
955:デフォルトの名無しさん
08/02/21 14:01:50
VB(6)はともかく、Delphiに関しては
Matzはどう思ってるんだろう?
個人的には、まともにオブジェクトを指向した
最初の環境はDelだったりする
塚越一雄著「Delphiオブジェクト指向プログラミング」
には足向けて寝られない
これが本当に役に立ったのは他でもないRubyでなんだけど
956:デフォルトの名無しさん
08/02/21 18:22:25
amazon API を使ったときの日本語の文字化けを直す方法を教えてください。
URLリンク(diaspar.jp)
にある、amazon APIのサンプルを実行したら、
2008-05-28 : 0132084945 : Intro to Java Programming, Comprehensive
2008-02-29 : 4797346418 : 繧・&縺励>PHP 繧・&縺励>繧キ繝ェ繝シ繧コ
のように日本語が文字化けしてしまいます。
Windows XP, Ruby 1.8.2 なので頭に、
#! -Ks
としています。
957:デフォルトの名無しさん
08/02/21 18:24:52
変換すりゃいいべ
958:デフォルトの名無しさん
08/02/21 18:44:45
だから>>931だって
Amazonが何を出力してるか理解してない人は利用禁止
普通にAWSとか勉強してからおもむろに便利に使うべし
959:956
08/02/21 19:15:42
や、こんなすぐ上にあるとは失礼しました。
require 'kconv'
Kconv.tosjis(変換したい文字列)
で解決しました。
>>958
まぁ、そう言わないでくださいよ。
960:デフォルトの名無しさん
08/02/21 22:00:53
よくわからんけど、普通にブラウザ使っていて、文字化けしてエンコードを自分で変えたりして、
文字のエンコードの存在をしることってあると思うんだけど
ネット使わないのかな
961:デフォルトの名無しさん
08/02/21 22:04:32
最近のブラウザは推測精度が上がってるんだよきっと
962:デフォルトの名無しさん
08/02/21 22:48:36
AmazonのAWSって自分のID使わなくていいのか?
と思ってみたり。
hikiのプラグインにしてもライブラリ公開して自分のIDをデフォにするってなんかコスイような・・・
・・・まぁ好きにすればいいよね。
963:デフォルトの名無しさん
08/02/21 23:22:45
>961
確かに実際、最近ブラウザのエンコーディング手で切り替えた経験がないわ
あるいはUTF-8のページが増えてきて、とりあえずビールならぬとりあえずUTF-8
って方式が当たるようになってきたのかも
964:デフォルトの名無しさん
08/02/21 23:26:29
最近でも切り替えた経験あり過ぎて困る。
965:デフォルトの名無しさん
08/02/21 23:28:16
定番のホームページビルダー(笑)で自分で作る人が少なくなって
ホスティングタイプのブログへ流れたからかな。
966:デフォルトの名無しさん
08/02/21 23:39:10
firefoxは賢いよね。IEはよく化けるけど。
967:デフォルトの名無しさん
08/02/21 23:41:35
その firefox でも切り替えまくってるんだが・・・。
特に Boost 日本語訳のページとかひどいもんだ・・・。
968:デフォルトの名無しさん
08/02/21 23:44:15
IEは増えてきた UTF-8 が化けまくるから困る
969:デフォルトの名無しさん
08/02/22 00:05:44
英語圏以外の海外のページと日本語ページを交互によく見ると
素晴らしい文字コード認識精度をはじき出してくれますよ
970:デフォルトの名無しさん
08/02/22 00:07:19
認識も何もヘッダで宣言してある通りに解釈するんじゃないの?
UTF-8って宣言してるのにShift_jisで書いちゃったりしてるわけ?
971:デフォルトの名無しさん
08/02/22 00:09:09
宣言してないページはよく化ける
972:デフォルトの名無しさん
08/02/22 00:34:46
HTMLのヘッダで宣言されててもシカトされる事がある
.htaccessなら多分シカトされない
973:デフォルトの名無しさん
08/02/22 01:06:52
CGI配布サイトでサンプルCGIを動かしたら文字化け多いのはあるな
974:デフォルトの名無しさん
08/02/22 01:14:10
・HTTPヘッダのContent-Type
・HTMLのmeta http-equiv
・実際の文字コード
全部ばらばらとかなー。一応優先順位はあった気がするんだが。
確実に判定出来るコードの文字からなる語句(「美乳」とかがそうらしい)を
HTMLの中にコメントで埋めるとかいう小技があった時代も。
975:デフォルトの名無しさん
08/02/22 01:16:12
貧乳が好みなんですがダメですか?
976:デフォルトの名無しさん
08/02/22 05:16:05
>>974
海外のプログラマが美乳好きだっただけなんじゃね?
977:デフォルトの名無しさん
08/02/22 05:34:05
>>967
あれは馬鹿除けのためにわざとやってるという噂だが
978:デフォルトの名無しさん
08/02/22 05:37:16
>>972
それはApacheの設定ミスだなw
979:デフォルトの名無しさん
08/02/22 05:53:43
>>974
美乳テーブルな。あれは EUC 決め撃ち用だよ。
980:デフォルトの名無しさん
08/02/22 08:27:16
標準添付ライブラリでrdocが綺麗に書かれてるのってどれですかいな?
参考にしたいんだけど
981:デフォルトの名無しさん
08/02/22 09:21:46
>>980
そりゃRDoc自身だろ
982:デフォルトの名無しさん
08/02/22 10:06:11
Ruby/SDLについての質問です
require 'sdl'
SDL.init(SDL::INIT_AUDIO)
SDL::Mixer.open
input = open('test.wav', 'rb')
SDL::Mixer::Wave.load_from_io(input)
以上のようなコードを実行すると、load_from
983:982
08/02/22 10:12:03
すみません、途中で誤送信してしまいました
(続き)
以上のようなコードを実行すると、load_from_ioのところで
cannnot seek backward (SDL::Error)
というエラーになってしまうのですが、「後方を探せない」というのはどういうエラーなのでしょうか?
後方互換性絡みの何かがあるのでしょうか?
環境は以下の通りです
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]
SDL1.3.1(Windowsバイナリ版)
984:982
08/02/22 10:20:58
追記
もしかしてと思い、rubyを1.8.6最新版にしてみましたが、結果は同じでした
985:デフォルトの名無しさん
08/02/22 10:54:23
ところでそろそろ980あたりに次スレを立ててほしいわけだが
986:デフォルトの名無しさん
08/02/22 10:55:35
>>983
cannot seek backward は「逆方向にシークできない」だろう。
なんでそんなシークをしようとしてるのかはわからんけど。
987:デフォルトの名無しさん
08/02/22 11:46:50
てかRuby/SDLはあんまRubyじゃないからなあ
使ってる人がたまたまいれば回答はしてくれるかもしれないが
988:デフォルトの名無しさん
08/02/22 11:46:53
test.wav が壊れているに59Matz
989:デフォルトの名無しさん
08/02/22 11:49:55
プログラミング言語Rubyについての、初心者向けスレです。質問・要望・雑談などどうぞ。
Ruby1.9は不安定な開発版であり初心者の使用には全く向きません。最新安定版のRuby1.8.6の使用を強くお勧めします。
関連スレやURLは>>2-7あたりを見てください。Ruby on Railsの質問はWebProg板のRailsスレで。
という文言を>>1に書いてくれ
990:デフォルトの名無しさん
08/02/22 12:12:52
次スレはまだかね?
991:デフォルトの名無しさん
08/02/22 14:52:08
Ruby 初心者スレッド Part 18
スレリンク(tech板)
試したら立っちゃった
992:デフォルトの名無しさん
08/02/22 17:33:53
おまえら・・・Ruby大好きなんだな。
993:982-984
08/02/22 20:38:14
レスありがとうございます
「逆方向シーク」に心当たりがありませんし
Ruby/SDLについて訊ける場所もなさそうなので、とりあえず諦めます
>>988
三種類ぐらいのwavで試しても読み込めませんでしたし
SDL::Mixer::Wave.loadを使えば普通に読み込めるので、それはないと思います
994:デフォルトの名無しさん
08/02/22 21:20:24
ume = thre.map{|res|
995:デフォルトの名無しさん
08/02/22 21:42:23
>>993
バグかもしれないから開発者と連絡とったらいいんじゃない
996:デフォルトの名無しさん
08/02/22 22:27:14
}
997:デフォルトの名無しさん
08/02/23 10:28:28
はいここちょっと埋めますよ
998:デフォルトの名無しさん
08/02/23 12:54:14
次スレ
スレリンク(tech板)
999:デフォルトの名無しさん
08/02/23 12:54:43
次スレ
スレリンク(tech板)
1000:デフォルトの名無しさん
08/02/23 12:55:32
次スレ
スレリンク(tech板)
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。