08/10/11 16:10:50
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
Ruby Home Page
URLリンク(www.ruby-lang.org)
= 前スレ
Rubyについて Part 32
スレリンク(tech板)
過去スレ・関連スレは >>2-
2:デフォルトの名無しさん
08/10/11 16:13:00
Ruby 初心者スレッド Part 20
スレリンク(tech板)
【ActiveScript】RubyをWindowsで使うスレ【GUI】
スレリンク(tech板)
Rubyの宿題教えてください。2限目
スレリンク(tech板)
Ruby>>>>>Java
スレリンク(tech板)
【↓アンチ系】
Rubyについて(アンチ専用) Part003
スレリンク(tech板)
Rubyは難しすぎ
スレリンク(tech板)
【カルト】Ruby開発者Matz【モルモン】
スレリンク(prog板)
3:デフォルトの名無しさん
08/10/11 16:13:50
Rubyリファレンスマニュアル刷新計画
URLリンク(doc.loveruby.net)
ライブラリ一覧
URLリンク(doc.loveruby.net)
RubyExtensionProgrammingGuide
URLリンク(i.loveruby.net)
Ruby Hacking Guide
URLリンク(i.loveruby.net)
Symbol < Stringも止める。
URLリンク(www.rubyist.net)
クラスローカルインスタンス変数
URLリンク(www.rubyist.net)
クラス変数
URLリンク(www.rubyist.net)
ローカル変数
URLリンク(www.rubyist.net)
可視性メモ
URLリンク(www.rubyist.net)
URLリンク(blade.nagaokaut.ac.jp)
URLリンク(blade.nagaokaut.ac.jp)
YARV without 1.9
URLリンク(www.rubyist.net)
URLリンク(www.atdot.net)
URLリンク(i.loveruby.net)
JSON
URLリンク(json.rubyforge.org)
URLリンク(webos-goodies.jp)
URLリンク(webos-goodies.jp)
YAML
URLリンク(www.ruby-lang.org)
URLリンク(jp.rubyist.net)
URLリンク(www.namikilab.tuat.ac.jp)
4:デフォルトの名無しさん
08/10/11 16:14:28
Ruby/Gtk+
URLリンク(www.unixuser.org)
URLリンク(takeposo.sakura.ne.jp)
URLリンク(ruby-gnome.sourceforge.net)
URLリンク(ruby-gnome.sourceforge.net)
URLリンク(ruby-gnome2.sourceforge.jp)
URLリンク(psux1.kek.jp)
URLリンク(www.rubycgi.org)
URLリンク(ruby.gfd-dennou.org)
URLリンク(www.magicianmaster.jp)
5:デフォルトの名無しさん
08/10/11 16:15:00
Ruby on Rails
スレリンク(tech板)
URLリンク(jp.rubyist.net)
URLリンク(www.onlamp.com)
URLリンク(kyotosanga.com)
URLリンク(blog.hacklife.net)
URLリンク(www.metadata.co.jp)
URLリンク(japan.cnet.com)
URLリンク(japan.cnet.com)
URLリンク(journal.mycom.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(www-06.ibm.com)
URLリンク(itpro.nikkeibp.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
6:デフォルトの名無しさん
08/10/11 16:19:31
テンプレ以上?
長っ
7:デフォルトの名無しさん
08/10/11 16:24:18
1乙
確かにテンプレ長いなw
8:デフォルトの名無しさん
08/10/11 16:28:00
GJ! AA(ry
9:デフォルトの名無しさん
08/10/11 16:39:56
GJ
10:デフォルトの名無しさん
08/10/11 16:54:38
そろそろ初心者スレ含めた2chのまとめwikiが欲しい所
11:デフォルトの名無しさん
08/10/11 17:20:55
>>10
なにかまとめることあるの?
初心者スレのまとめWikiは二つぐらい立ってたけど、どっちも動き止まってたような
12:デフォルトの名無しさん
08/10/11 17:28:21
・ インクリメント演算子が欲しいならMLへ
・ 現在のRubyをけっこう改変しないと実装できないのでうまい実装案を持った上で説得すること
・ 「よくわかんないけど便利だから」とか禁止
13:デフォルトの名無しさん
08/10/11 17:30:10
>>10
1スレでいいから自力でまとめてみ
まとめることが特に無いことに気づくから
やったことないと何かありそうに感じるだけだ
14:デフォルトの名無しさん
08/10/11 17:42:55
>>12
だからキチガイって言われるんだよ
15:デフォルトの名無しさん
08/10/11 17:59:29
>>14
そりゃあんたはRuby関連の場所が荒れたり揉めたりすりゃ奇声あげて喜ぶだろうけど、たいていの人はそうじゃないんで
16:デフォルトの名無しさん
08/10/11 18:16:05
スレ番号++
17:デフォルトの名無しさん
08/10/11 19:07:25
いい年して他にやることもなくただ2chで相手を否定することで寿命を削り続けてる惨めなオッサンばっかりだね
18:デフォルトの名無しさん
08/10/11 19:54:42
なんでそんな必死なの?
19:デフォルトの名無しさん
08/10/11 20:50:08
まあ荒らしもスレのにぎわいって言うし、話題ないよりいいんじゃね。
それより、ちょっと前から職場のSparc Solarisでcontinuationが落ちるように
なってしまった。
hogefuga@darkstar:~/Source/ruby$ ./ruby -I .ext/sparc-solaris2.9
require 'continuation'
puts callcc {|c| c.call :ok}
-:2: [BUG] Segmentation fault
ruby 1.9.0 (2008-10-08 revision 0) [sparc-solaris2.9]
-- control frame ----------
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :callcc
c:0003 p:0022 s:0007 b:0006 l:000924 d:000924 TOP -:2
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited
c:0001 p:0000 s:0002 b:0002 l:0008c4 d:0008c4 TOP
---------------------------
DBG> : "-:2:in `callcc'"
DBG> : "-:2:in `<main>'"
異常終了
Sparc Solarisってもうサポートされないんだっけか?
20:デフォルトの名無しさん
08/10/11 21:23:54
Solaris自体はたぶん動くよね~という扱いだったかと
SPARCはどうなんだろうか
URLリンク(blade.nagaokaut.ac.jp)
21:デフォルトの名無しさん
08/10/12 00:20:44
>>19
ruby-devかredmine.ruby-lang.orgへGO!
22:デフォルトの名無しさん
08/10/12 01:25:44
>>19
うちでは動いた。報告するなら環境を詳しく書いた方がいい。
$ ./ruby -v -rcontinuation -e 'puts callcc {|c| c.call :ok }'
ruby 1.9.0 (2008-10-11 revision 19759) [sparc-solaris2.9]
ok
23:デフォルトの名無しさん
08/10/12 06:50:54
言語内 DSL とかで、
class Hoge
def hoge; "hoge" end;
end
def foo(&block)
a = Hoge.new
a.instance_eval(&block)
end
foo { hoge }
# => "hoge"
みたいなのは良くあるけど、このやり方だと例えば Shell#transact みたいな、
instance_eval を使う method のブロック内では
foo { Shell.new.transact { hoge } }
# => NameError: undefined local variable or method `hoge' for #<Shell:0x7fea4b5e00c8>
となって期待通りに動いてくれない。こういう場合ってどう対処したら良いんでしょうか?
24:デフォルトの名無しさん
08/10/12 09:47:19
>>23
コードを見ても動きそうな要素が皆無なので
一体どう動けば期待通りなのか全く想像がつきません。
何が引数で何が返り値なのか、とかを考えてからコードを書き直して
初心者スレで質問し直すのがよろしいかと思います。
スレリンク(tech板)
25:デフォルトの名無しさん
08/10/12 09:55:44
質問。ほんのちょっとだけ違うメソッド定義を大量に定義したい場合。
「ハッシュやらブロックやら正規表現やら多用してメソッド定義をevalで作る処理を直に書く」
と
「メソッド定義を書き出すスクリプトを別途作ってできた大量の(代わり映えしない)メソッド定義をコピペする」
はどっちが妥当?
どうせRubyスクリプト遅いよね、とか厭世観をもって前者を使うべき?
26:デフォルトの名無しさん
08/10/12 10:04:38
%w(one two three four five).each do |str|
eval("def #{str}; puts \"#{str}\"; end")
end
と書くのと、スクリプトで出力させたのを
# generator
=begin
%w(one two three four five).each do |str|
puts "def #{str}; puts \"#{str}\"; end"
end
=end
def one; puts "one"; end
def two; puts "two"; end
def three; puts "three"; end
def four; puts "four"; end
def five; puts "five"; end
とコピペするのとどっちがいいかという話?
前者でいいんじゃないの。Rubyに文字列いじらせるのを躊躇ったら駄目
require の中身は eval だと 3回唱えて素直にわかりやすさ優先で eval 使え
27:デフォルトの名無しさん
08/10/12 12:03:18
「ほんのちょっとだけ違うメソッドを大量に定義したい」
って辺りで、設計がマズい気がヒシヒシするぜ。そもそも別メソッドにすべきなのか、それ。
28:デフォルトの名無しさん
08/10/12 12:07:59
クックブックでは前者のやり方が書いてあった気がする
29:デフォルトの名無しさん
08/10/12 13:23:27
まず大量のメソッドを定義しないといけない設計が変だと思う
分類したり、sendとか上手く使う構造にすべき。
30:デフォルトの名無しさん
08/10/12 14:18:50
evalを無闇に使うより、もうちょっと穏やかな方法はないかい?
class C
%w(a b c d e).each { |s| define_method(s) { |x| p s * x }
end
C.new.d 5 # => "ddddd"
31:デフォルトの名無しさん
08/10/12 14:43:34
統一メソッドと引数で区別するのは見栄えあるいは動作としてめんどくさいからこそ
単一のメソッドをたくさん定義するんじゃないかと思うんだがどうか
32:デフォルトの名無しさん
08/10/12 14:45:07
「たくさん」の量にもよるな…
10個くらいならevalで作りたくなる気はわからんでもない
100個ならたぶん何かが間違ってる
33:デフォルトの名無しさん
08/10/12 14:56:03
>>23
>foo { Shell.new.transact { hoge } }
># => NameError: undefined local variable or method `hoge' for #<Shell:0x7fea4b5e00c8>
foo { this = self; Shell.new.transact { this.hoge } }
とかではどうでしょうか。
たぶんお望みのものとは違うと思いますが。
self が変わってしまうとどうしようもないので、こんな方法ぐらいしか分かりません。
34:デフォルトの名無しさん
08/10/12 15:53:29
「バカが往く」ってめっちゃ上から目線だよな
他人がdisられてる時は対岸の火事というか、笑って読んでられるが、
いざ自分に矛先が向くと超ムカツクわ、あれ。
35:デフォルトの名無しさん
08/10/12 18:39:23
>>34も上から目線な件について
36:デフォルトの名無しさん
08/10/12 18:43:12
>>23
> となって期待通りに動いてくれない。
そんなもの期待するのが間違い。
env.instance_eval { ... } として用意したメソッドを中の環境で使わせるのは
DSLの文法を構成する機能を与えるため。
その中でどこでも使える便利関数を与えるためじゃない。
>>23は自分の実現したいものをDSLと考えない方がいいんじゃないか。
37:デフォルトの名無しさん
08/10/12 18:58:03
だから隠れたところでinstance_evalを使うなとあれほど何度も
38:デフォルトの名無しさん
08/10/12 19:18:55
まあまあ、そうえばるな。
39:デフォルトの名無しさん
08/10/12 20:14:57
>>38
ズコー
40:33
08/10/13 02:56:00
>>36
なるほど。すっきりした。ありがと。
僕が欲しいのはマクロだったんだな。
41:デフォルトの名無しさん
08/10/13 05:37:56
Ruby 1.9
> ARGF.class
=> ARGF.class
なんぞこれ・・・
けし忘れ?
complex.c:475: warning: ‘m_sqrt’ defined but not used
Ubutu 8.10βのgcc 4.3.1からだと、
io.c:5574: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
などのwarningが頻発。あと、parce.cのコンパイルが死ぬほど遅い。
42:デフォルトの名無しさん
08/10/13 09:57:41
>>41
> なんぞこれ・・・
気にすんな。
定数にもしたくないし、無名クラスのままってのも嫌だったってだけだから。
> Ubutu 8.10βのgcc 4.3.1からだと、
> io.c:5574: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
> などのwarningが頻発。あと、parce.cのコンパイルが死ぬほど遅い。
4.3.2だとどちらもない。
43:デフォルトの名無しさん
08/10/13 13:56:21
これってMatzが書いたんかいな?
The Ruby Programming Language: David Flanagan, Yukihiro Matsumoto: Books
URLリンク(www.amazon.com)
44:デフォルトの名無しさん
08/10/13 14:22:19
もちろん。邦訳の計画も一応あるらしい
しっかしレビュー高評価だなあ。やっぱりバイブル扱いされるんだろうか
45:デフォルトの名無しさん
08/10/13 14:38:58
巻末に /:|) と書き足すことで先生の仕事はおしまいです。
46:デフォルトの名無しさん
08/10/13 14:41:17
目次 URLリンク(oreilly.com)
プログラミングRubyとThe Ruby Wayを買ってしまっている自分にはいらなそうだ…
47:デフォルトの名無しさん
08/10/13 15:49:15
ていうか基本的にRuby本体に関する情報そのものは既に出揃ってるだろ
目新しいこと書かない限り重複は免れない
48:デフォルトの名無しさん
08/10/13 20:57:54
初期のruby本はrubyを無視していきなり
オブジェクト指向の話になるのが面白かったんだが。
そういうのは期待できないかな。
49:デフォルトの名無しさん
08/10/13 21:11:39
フラナガン本はwhileをイテレータで実装とか変態的なことも載ってるよ。
50:デフォルトの名無しさん
08/10/14 11:03:08
Visual Studioを使ってRails開発「Ruby In Steel Personal Edition 2008」
URLリンク(www.moongift.jp)
51:デフォルトの名無しさん
08/10/14 11:19:05
ホスト名見て積極的に読む気なくした
誰か別の人がレビューしてくれるまで待つ
52:デフォルトの名無しさん
08/10/14 16:38:21
moongift嫌いなのか
53:デフォルトの名無しさん
08/10/14 16:49:30
自分が使ってるソフトウェアが紹介されれば、あんまりアテにしてない人がいる理由が実感できるかも
週に曜日を決めて2回とか、そういう「量より質」の比較レビューにあのパワーを注ぐことを望みたいところだ
「そんなんreadme見てソフト名でググればわかるよ!」と言いたいことが何度か
54:デフォルトの名無しさん
08/10/14 16:55:19
Open Alexandriaは好きだった俺
55:デフォルトの名無しさん
08/10/14 17:15:47
質より量を望む人間にとっては、MOONGIFTのスピードと簡潔さはありがたい
知らなかったソフトウェアをいろいろ発見できるから
56:デフォルトの名無しさん
08/10/14 17:19:39
知ってる情報が役に立たなかったから知らない情報も読みたくない。
不思議な人もいるもんだ。
57:デフォルトの名無しさん
08/10/14 17:29:39
>>56
お前頭悪いって言われるだろ…
58:デフォルトの名無しさん
08/10/14 17:46:20
>>56
気にするな
柔軟性の足りない人、もしくは記事見る時間が惜しいくらい忙しい人なんだよきっと
59:デフォルトの名無しさん
08/10/15 08:39:40
外人さんが「1.9 compatibility デキタ!」 とかうるさい
うんうん Syntax Error 起こしてた場所は消えてるね
でも 1.9 互換を謳うなら $KCODE 依存のコピペコードは直そうね
128バイトで世界を表現できる住人はこれだから困る
60:デフォルトの名無しさん
08/10/15 13:03:41
>>59
おまえだって、右から左に書く言語のことなんか考慮したことないだろ
61:デフォルトの名無しさん
08/10/15 16:55:33
テキストファイルから例えば"a"という文字を検索して、マッチすれば
その前後に指定の文字列を挿入する方法はありますでしょうか。
62:デフォルトの名無しさん
08/10/15 17:04:06
>>61
初心者スレでつい最近そういう話題が出てた
63:デフォルトの名無しさん
08/10/15 17:06:46
#!ruby -pni.bak
BEGIN{
Prefix = "pre"
Suffix = "suf"
}
gsub(/a/, "#{Prefix}\\{Suffix}")
64:デフォルトの名無しさん
08/10/16 09:44:12
attr_reader :hoge?
と実質的に書けない件をこっちに振ってみるテスト
65:デフォルトの名無しさん
08/10/16 10:52:10
Module#bool_attr_reader を自分で定義して使えばよし
66:デフォルトの名無しさん
08/10/21 12:16:27
ぎゃー
このライブラリの次のバージョンから、動作もメソッドもめっちゃ変わるじゃん
gem update でアップデートした人でテクニカルな使い方してた人は警告山盛りで涙目
まあ、公開ライブラリ作る人は最初から素直な実装をしようね
(ライブラリが大きくなるとRubyでやれるオレカッコイイ独自実装は癌になる)
というお話でした
今のメンテナが引き受ける前の作者が作った部分だな、これ…
67:デフォルトの名無しさん
08/10/21 13:51:18
話の趣旨には大いに賛成だけど、
ここは自業自得っぽくね? >テクニカルな使い方してた
68:デフォルトの名無しさん
08/10/21 16:47:17
>>66
どのライブラリ?
69:デフォルトの名無しさん
08/10/21 16:59:55
外部ライブラリのメソッドをバグ回避目的以外で上書きするとか賭けだよね
70:デフォルトの名無しさん
08/10/21 17:06:03
バグ回避目的であってもモンキーパッチは賭けだよ。
71:デフォルトの名無しさん
08/10/21 19:53:10
式1 ? 式2 : 式3
式1の結果によって式2または式3を返します。
if 式1 then 式2 else 式3 end
とまったく同じです。
ってあるけどさ、これどういう事?
defined? String ? "OK" : "NG"
=> "expression"
if defined? String then "OK" else "NG" end
=> "OK"
以下で確認。
ruby 1.8.2 (2005-04-11) [i386-linux]
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
72:デフォルトの名無しさん
08/10/21 20:02:33
>>71
優先順位の問題。
defined?(String ? "OK" : "NG")
(defined? String) ? "OK" : "NG"
73:デフォルトの名無しさん
08/10/21 20:03:26
>>71
演算子には優先順位というものがあるでな、式と書いてあったらとりあえず括弧でくくってみることじゃ。
74:デフォルトの名無しさん
08/10/21 20:10:08
>>72-73
なるほど、式の優先順位か!
おかげですっきりしたよ、ありがとう!
75:デフォルトの名無しさん
08/10/22 07:50:19
>>70
動作変更のメソッド上書きスクリプトを公開するより、バグ報告送ったほうが結局は手間がないことに最近やっと気づいた
バージョン1.1用からバージョン1.5用まで5種類くらい公開して、さすがにキレて1.6で修正入れてもらったとかそんな感じ
76:デフォルトの名無しさん
08/10/22 16:35:28
Matzの会社を財務分析してみたんだが。
URLリンク(d.hatena.ne.jp)
などと思わせぶりな言い方をするものだから覗いてみりゃ、
なんて事無い田舎の零細企業の財務諸表であって、面白くもなーんともなかったわけだ。
それにしても、この程度の収益で2007年度って、
あの会社にとっては多分空前絶後の景気のいい年だったはずだの
Rubyとゆー「鉱脈」があるだの言っているのは何なのだ。
Geekのヨタ話というのは、いつもこんなしょぼいスケールで行われているのか?
あそこの技術者の平均レベルは、他の普通の会社よりはずっと高いと思うって、
これじゃあ、技術なんてIT企業の収益とは何の関係も無いと証明しているようなもんじゃねえか。
そもそも、この会社が何をやっているのかがHPを見た限りではよく分からん。
要は受託開発だろ労働力を人月で売ってるだけだろマーケ屋がこねくりあげた横文字得意げに使ってなに悦に入ってやがんだコラ。
更には製品・サービス部門まであって、なにやら参考価格が書いてあるところを見ると、
多分にパッケージっぽい印象を受けるが、それでいて全体の粗利率が26%程度ではどうしようもないだろ。
あそこに入りたい人は、損益計算書も注意して見ておくといい。まぁこれはどんな会社でも同じだけど、
ここを見るといろんなことが見えて来る。株価指標を計算してみるのもいい(非公開会社でもね)。
77:デフォルトの名無しさん
08/10/22 16:37:02
それもう散々げっぷが出るほど既出
78:デフォルトの名無しさん
08/10/22 17:51:52
懐かしいコピペだね
79:デフォルトの名無しさん
08/10/22 20:17:00
定数探索の規則が謎なんだけど、これどういうこと?
module Foo
module Bar; end
end
module Foo
module Baz
p Bar # => Foo::Bar
end
end
module Foo::Baz
p Bar # => uninitialized constant Foo::Baz::Bar (NameError)
end
80:デフォルトの名無しさん
08/10/22 20:25:43
module式の1つ外側に探しに行ってるように見える
81:デフォルトの名無しさん
08/10/22 20:53:42
Foo::Baz のほうはネストの外側に Foo がないので探索にひっかからないのよ。
module Foo
module Bar; end
end
module Foo
module Baz
p Module.nesting # => [Foo::Baz, Foo]
end
end
module Foo::Baz
p Module.nesting # => [Foo::Baz]
end
82:デフォルトの名無しさん
08/10/22 20:59:15
それはModuleだからで、仕様?
83:デフォルトの名無しさん
08/10/23 02:05:01
classでも同じで、仕様。
84:デフォルトの名無しさん
08/10/23 09:49:27
日本語spam filterでrubyで書かれたものがあるそうなのですが
読みやすいコードになっているものなのでしょうか
85:デフォルトの名無しさん
08/10/23 09:51:51
あのへんはジャンル的に小難しいから、言語レベルはあまり影響しないんじゃないかな
理論を知ってるかどうかに依存すると思う
86:デフォルトの名無しさん
08/10/23 18:26:11
RubyでUnicodeの正規化(NFKDだとか)するにはどうすればいい?
ちょっとぐぐってみたけどこのライブラリのこの関数でできるよ!みたいのが
わからなかった。
1.9はきっと標準でできるのだろうけど、1.8でどうすればいいか知ってたら教えて。
87:デフォルトの名無しさん
08/10/23 20:15:48
$KCODE = 'u'
require 'active_support/multibyte'
ActiveSupport::Multibyte::Handlers::UTF8Handler.normalize("Python")
88:デフォルトの名無しさん
08/10/24 02:46:57
>>87
それは具体的には何をやってくれるわけ? normalizeというだけじゃ特定できんよ。
89:デフォルトの名無しさん
08/10/24 05:09:09
「UTF8に正規化」って言ったら特定できるだろ
あとはドキュメント
URLリンク(api.rubyonrails.org)
90:デフォルトの名無しさん
08/10/24 10:06:38
>>89
Unicodeの正規化は一種類じゃない
Unicode Normalization Forms
URLリンク(www.unicode.org)
91:デフォルトの名無しさん
08/10/24 10:09:16
ドキュメントを読まないバカは死ねばいいのに
92:デフォルトの名無しさん
08/10/24 15:48:38
>89
> 「UTF8に正規化」って言ったら特定できるだろ
何に特定できるって?
93:デフォルトの名無しさん
08/10/24 19:19:45
英語読めない人と英語読めるのにドキュメント読まない人がいるんでしょうか?
94:デフォルトの名無しさん
08/10/24 19:50:36
うっかり「特定できる」なんつってしまって引っ込みがつかないバカがいるだけ。
しかもわざわざ余計なこと書いて自分で傷口広げてる。
95:デフォルトの名無しさん
08/10/25 00:44:24
>>94
ドキュメント読めば特定できるけど,そういう意味じゃないんか?
Returns the KC normalization of the string by default.
まあ自分は88でも89でもないしどうでもいいんだけど
ただただ正規化メソッドが用意されてることに驚いた
96:デフォルトの名無しさん
08/10/25 01:03:01
オプションで正規化方法を指定できるんだな。
97:デフォルトの名無しさん
08/10/25 01:20:54
ファイル処理について質問です。
open(filename){|f|
puts f.readlines[1, 10]
puts f.readlines[20, 30]
}
とすると、readlines[20, 30]がnilになります。
原因は、readlinesメソッド終了時にブロック f が閉じられるからのようなんですが、
readlineメソッド呼出し後にブロックに戻ってくる方法はあるのでしょうか?
98:デフォルトの名無しさん
08/10/25 01:29:07
>>97
>IO が既に EOF に達していれば空配列 [] を返します。
というか、再利用しようよ。
open(filename){|f|
a = f.readlines
puts a[1, 10]
puts a[20, 30]
}
99:デフォルトの名無しさん
08/10/25 01:30:07
IOは読み込み位置を覚えていて、次はその続きから読もうとする。
readlinesは最後まで読んでしまうから、覚えてる位置は「最後」だ。
最初から読み直したいのなら、f.rewindを呼んで巻き戻す。
100:デフォルトの名無しさん
08/10/25 01:36:17
>>98-99
解決しました。助かりました^^
101:デフォルトの名無しさん
08/10/25 23:06:16
URLリンク(oshiete1.goo.ne.jp)
ヨドバシドットコムの大規模障害理由
質問者:timeout25 大手ECサイトのヨドバシドットコム( URLリンク(yodobashi.com) )が、10/21の
サイトリニューアルから大規模な障害を起こしています。
どうやら今回のヨドバシドットコムリニューアルはCMS導入が目的で、
キノトロープスリーイントという会社が請けたようですが、実際のところ
何が原因でこうなっていると推測されますでしょうか?
102:デフォルトの名無しさん
08/10/28 04:28:35
>複数行コメント
>#| から |# までがコメントです。ネストさせることが可能です。
いいなあ
103:デフォルトの名無しさん
08/10/28 11:28:49
rcairoのpango関係のメソッドはどの資料を見ればいいの?
rcairoにもruby/pangoにも記述なさそうなんだけど。
104:デフォルトの名無しさん
08/10/28 13:01:48
Ruby方面には資料がなさそうだったのでPango本体のドキュメントみてメソッド名を当て推量した。
105:デフォルトの名無しさん
08/10/28 13:07:49
よくわからんがソースは読めないのか?
106:デフォルトの名無しさん
08/10/28 16:34:07
Matzのお墨付き
プログラミング言語 Cyan
スレリンク(tech板)
107:デフォルトの名無しさん
08/10/28 16:43:15
Ruby 1.9.1 preview 1 アゲ
108:デフォルトの名無しさん
08/10/28 16:53:06
確かに筋は良さそうな感じはする
でもmatzってLisp系の強力なマクロには懐疑的じゃなかったっけ?
109:デフォルトの名無しさん
08/10/28 17:41:14
マクロはなんでも出来すぎるとか言ってたね。
でも昨今のDSLブームでRubyの文法の融通きかなぶりも認識してきた節もあるので
改宗したのかも。
110:デフォルトの名無しさん
08/10/28 17:44:48
Rubyはむしろ融通効き過ぎなぐらいだと思うが
111:デフォルトの名無しさん
08/10/28 19:42:32
札幌Ruby会議01 (2008-10-25)
URLリンク(www.nicovideo.jp)
112:デフォルトの名無しさん
08/10/28 19:45:43
マクロ最強!
#define ++ += 1
113:デフォルトの名無しさん
08/10/28 20:03:16
Lispは「融通がきく」
Rubyは「融通をきかせてる」
114:デフォルトの名無しさん
08/10/28 21:32:03
>>106
よお中村、元気か?
115:デフォルトの名無しさん
08/10/28 22:02:37
>>102
なにそれ?
116:デフォルトの名無しさん
08/10/29 02:37:54
Cyanのコメント
117:デフォルトの名無しさん
08/10/29 07:17:18
CLと同じでしょう。
=begin/=endでいいじゃんとは思うけど
118:デフォルトの名無しさん
08/10/29 08:07:57
>>110
そりゃプログラミング言語として与えられたままを使うだけに限った話。
DSLを考えるときには全然効かないんだよ。
119:デフォルトの名無しさん
08/10/29 08:12:19
>>116
さんきゅー
120:デフォルトの名無しさん
08/10/29 15:27:11
引数がStringだった場合はキーを付け足してHashにする(param = {:name => param} みたいな)
引数がHashだった場合はてきとーにキーを見てぶん回す
という最近よくある感じの処理をする場合、引数がStringかどうかみたいなのはどうやって判定すべき?
is_a? とか instance_of? とか
121:デフォルトの名無しさん
08/10/29 15:31:20
is_a? kind_of?
122:デフォルトの名無しさん
08/10/29 19:31:51
www.rubyist.netおつとる
123:デフォルトの名無しさん
08/10/29 20:06:37
>>120
最近では respond_to? で、必要なメソッドの有無を調べるのも流行らしいぞ
124:デフォルトの名無しさん
08/10/29 20:23:01
each の存在を調べて String#each の存在でハマるのはもうお約束の域
そして 1.9 対応で悩む
125:デフォルトの名無しさん
08/10/29 20:25:44
case arg
when String
when Hash
126:デフォルトの名無しさん
08/10/29 20:43:44
>>125
それは is_a? だ
127:デフォルトの名無しさん
08/10/29 21:00:35
実体が is_a? でも、そう書くか case-when で書くかは大きな違いだ
128:デフォルトの名無しさん
08/10/29 21:25:49
引数に(key => value)で特別扱いされるのはHashなんだから
is_a? 使うにしてもHashか、そうでないかっていう分岐にしたほうがよさげだと思う。
129:デフォルトの名無しさん
08/10/29 21:31:31
CodeZineにPythonカテゴリがないのっておかしくね?
お前らなんか妨害工作してるだろ。
130:デフォルトの名無しさん
08/10/29 21:35:25
URLリンク(codezine.jp)
131:デフォルトの名無しさん
08/10/29 21:38:42
実体は === だろ
StringとHashでそれぞれ違う処理するなら俺も>>125にするかな
でも>>120の場合ならこう書く
param = {:name=>param.to_s} unless param.kind_of?(Hash)
132:デフォルトの名無しさん
08/10/29 21:45:18
すまん、クラス、モジュールの === は kind_of?(つまり is_a?) と同じだった
133:デフォルトの名無しさん
08/10/30 21:48:24
スレリンク(operate板:657番)
強制ID実装を駄目元で頼み込んでみた。
もし賛同してくれる人がいたら同意のレスつけてください。
134:デフォルトの名無しさん
08/10/31 10:39:11
>>133
おまえがIDさらせや。
135:デフォルトの名無しさん
08/10/31 17:45:48
p 133.id
136:デフォルトの名無しさん
08/10/31 18:30:44
=> nil\(^o^)/nil
137:デフォルトの名無しさん
08/10/31 22:24:07
ext/dlのバグ修正、ruby-1.8.xにも入れてくれないかねえ。
138:デフォルトの名無しさん
08/10/31 22:56:29
どのrevision?
139:デフォルトの名無しさん
08/10/31 23:47:40
レポジトリでみてみたけど違いが生じたのがsubversionへの移行前らしくてリビジョンわかりません。
問題は1.9ではNUM2PTRになってるものが1.8.xの方はDLNUM2LONGのまま残ってて
アドレス等の値を符号つき整数として扱ってしまっているところです。
これがために1.8ではDL::Symbol.newなどに最上位ビットが1のアドレス値を直接渡せません。
140:デフォルトの名無しさん
08/11/01 01:13:22
1.9のってruby/dl2でしたっけ?
低レベルな書き方したら1.8と互換性無くて…
ruby -rdl -e "DL.dlopen('user32')['EnumWindows', '0PL'].call( DL.callback('IL'){|hwnd2| puts '%08x'%[hwnd2];-1}, 0 )"
みたいなの
あと、mingw32版のruby1.8だと上のが落ちるんですよね
mswin32版ruby1.8だと大丈夫なんですけど
141:デフォルトの名無しさん
08/11/01 01:35:20
1.9で1.8と違う添付ライブラリってリファレンスマニュアルとかドキュメントあるんですか?
142:デフォルトの名無しさん
08/11/01 02:18:00
Ruby会議での青木さんの話を聞くと、
来年のRuby会議までには標準ライブラリのリファレンスが完成しそうなんだとか
というわけで来年には手が回るんじゃ……
そういえば、Programming Rubyの第三版に1.9対応リファレンスが付くのかね?
143:デフォルトの名無しさん
08/11/01 11:54:12
ほんと青木さんとるりまチームには頭が下がるな。
頑張って欲しい。
144:デフォルトの名無しさん
08/11/01 18:31:41
なにさまだよ
145:デフォルトの名無しさん
08/11/01 19:24:52
るりまです
146:デフォルトの名無しさん
08/11/01 19:59:51
そっか、「がんばって欲しい」は「ご苦労さま」と同じか。
147:デフォルトの名無しさん
08/11/02 13:38:43
設計の基本ができてねぇなぁ!!!!!
よいツール教えたる
これでガンバリなぁ
URLリンク(www.digitalassist.co.jp)
148:ATOK
08/11/03 17:22:43
ジャストシステム、スクリプト言語で「ATOK 2008」を拡張できる開発キット
Perl/Ruby言語でプラグインを開発し、外部のソフトやWebの情報を直接利用可能に
URLリンク(www.forest.impress.co.jp)
開発キットには、サンプルスクリプトや簡易的なスクリプトデバッガーなどが含ま
れており、Perl/Ruby言語を一通り習得したユーザーならば、比較的容易に“ATOKダ
イレクト”用のプラグインを作成可能だ。スクリプトの実装方法も同梱のPDFファイ
ルや同社サイト上で参照できる。
ATOKダイレクト API for Perl/Ruby とは?
URLリンク(www.atok.com)
ATOKがRubyやPerlで拡張可能に - @IT
URLリンク(www.atmarkit.co.jp)
「ユーザー自作のプラグインを作り、」~「入力・変換するだけで情報を表示できる。」参照
149:デフォルトの名無しさん
08/11/03 18:31:56
>>148
試み自体は面白いと思うんだが
実際にプラグインで、どんな楽しいことができるのかピンとこない
150:デフォルトの名無しさん
08/11/03 18:53:40
分野辞書をオンラインインストールとか
151:デフォルトの名無しさん
08/11/03 18:56:52
アドレス帳を叩いて名前の読みから住所とか引っ張れるのかな。
152:デフォルトの名無しさん
08/11/03 20:57:19
>>148
動作確認済みのPerl 、Ruby について
【Ruby】
Ruby 186-25
こんなバージョンのRubyは存在しないwwww
153:デフォルトの名無しさん
08/11/03 21:54:07
>>152
One-Click Ruby Installerのバージョンだね
perlもActivePerlなんだし、そう明記すれば問題ないのに
154:デフォルトの名無しさん
08/11/03 23:36:03
>>153
それはないだろwww
186-25なんて1.8.6がリリースされた直後のバージョンでまともに動かなかったはずwww
155:デフォルトの名無しさん
08/11/03 23:44:48
>>154
URLリンク(rubyforge.org)
55万ダウンロードで、歴代2位だ
pathlevel 0 と表示される Windows 版 Ruby 1.8.6 を使っている人はまだ多い
156:デフォルトの名無しさん
08/11/04 04:08:26
>>155が的確すぎてわろた
157:デフォルトの名無しさん
08/11/04 21:49:51
ruby 1.9.1 preview1が出たけどruby-langのニュースにはならないの?
なんでもいいから更新しないと停滞してると思われるよ
158:デフォルトの名無しさん
08/11/04 22:09:05
previewやRCは下手に話題にすると変な人が手を出してネガキャンになってしまうので…
159:デフォルトの名無しさん
08/11/04 22:21:41
しかしユーザーが増えないとバグが取れて安定しないような
160:デフォルトの名無しさん
08/11/04 22:28:36
変な人はバグ報告なんてしません
Firefoxのアルファやベータが一般人に広まっても一般人はバグ報告などしなかった
ある一定以上の経験と知見を持った人間が使ってくれないとバグ報告は増えないというのが悲しい事実
161:159
08/11/04 22:32:07
なるほど。失礼した
そういえばFirefoxも普通のソフトになっちゃって、
コミュニティが苦労してるなんて話を聞いたような聞かないような
162:デフォルトの名無しさん
08/11/05 02:19:20
1.8系列って1.8.7でディスコン?いつまで{メンテされる|新しいリリースが出る}の?
163:デフォルトの名無しさん
08/11/05 09:13:02
>>160
いいかげんな報告が増えるだけでも困るけどな
164:デフォルトの名無しさん
08/11/05 20:01:16
「自分の身に起こったことを、簡潔かつ客観的に説明する」
というのは、実のところ選ばれた一部の人間にしかできない行為だからな。
165:デフォルトの名無しさん
08/11/05 20:37:12
そのへんは学校で習わないから仕方がないねえ
大学でいいゼミやいい一般教養にぶち当たると訓練になるんだけど
166:デフォルトの名無しさん
08/11/06 02:32:11
見知らぬ人間に道を尋ねられて「私の家から北に100mです」って答えるみたいな説明を
本気でする奴がいるからな。
167:デフォルトの名無しさん
08/11/06 02:51:25
そんな極端な底辺を例えに出す奴もどうかと思うがな
168:デフォルトの名無しさん
08/11/06 08:51:26
>>167
「極端な底辺」ではなく、「まずあり得ないやりとり」としての例ね。
現実に居ることはまったく想定してない。
状況Aにおいて頻繁に見られる性質Bを、Bがまず起きない状況Cに置き換えて
「状況Cでいうなら、つまりこういう光景に等しいよね」と説明することで、
状況Aの中だけで語ってると、頻度が高すぎてそのダメさが大したことじゃないように思えてくる
ニュアンスを消したかった。
169:デフォルトの名無しさん
08/11/06 10:35:30
なんだ、いないのか。
ちょっと面白いと思ったのにw
170:デフォルトの名無しさん
08/11/06 14:07:45
バグレポートする際に
たとえ話はなんの役にも立たない
171:デフォルトの名無しさん
08/11/06 14:08:49
しかしつまらんスレだな
172:デフォルトの名無しさん
08/11/07 00:48:33
ActiveRecordってどんな基礎理論から出来てるの?
O/Rっていってもいくつか種類とか制約あってそれぞれ
違うようですが
173:デフォルトの名無しさん
08/11/07 02:56:36
>>171
Rubyがつまらないんだからしょうがない。
174:デフォルトの名無しさん
08/11/07 04:47:24
Ruby/Pangoって絶賛放置中?
175:デフォルトの名無しさん
08/11/07 11:35:05
>>172
マッパーそれ自体に理論ってあったっけ?
RDBとオブジェクト指向のモデルにはズレがあって・・・・・・ってな話は
オブジェクト指向データベースの書籍とかで取り扱われてたような記憶がある
176:デフォルトの名無しさん
08/11/07 12:29:00
>>172
基礎理論というほどではないが、ActiveRecordというそのものずばりなpatternもとにしている。
ちなみにDataMapper patternをもとにしたのがDataMapperというライブラリ。
URLリンク(datamapper.org)
ActiveRecord patternやDataMapper patternについては
URLリンク(capsctrl.que.jp)
URLリンク(capsctrl.que.jp)
をみるのがよかろう。
177:デフォルトの名無しさん
08/11/07 19:09:18
やっぱりこれファウラーさんが最初なの?
Railsの影響でPHPでもしばらく前にブームってたが、今ひとつわからんので放置
こればっかりではないが、連想配列のある言語と、Java等のオブジェクトでの
理論・概念の融合が今ひとつ上手く行ってない感じがして仕方がない
178:デフォルトの名無しさん
08/11/07 22:23:45
はいはい
179:デフォルトの名無しさん
08/11/08 00:56:10
Django使ってる人いますか?
180:デフォルトの名無しさん
08/11/08 12:42:18
ふつうGAE使うだろ
181:デフォルトの名無しさん
08/11/08 15:53:30
URLリンク(modruby.net)
mod_rubyの新しいのがリリースされてる
これ何ですか?
182:デフォルトの名無しさん
08/11/08 16:00:22
> これ何ですか?
大雑把な疑問だなオイ
書いてあるそのまんまだと思うぞ
自分の環境が該当するものでないのなら無理に導入しなくてもいい
1.9サポートって言っても文法エラー取り除いた程度だと予想
183:デフォルトの名無しさん
08/11/08 18:31:41
ついったーの様子だと、
とりあえず1.9で動くようにした程度かな。
twitter.com/shugomaeda
184:デフォルトの名無しさん
08/11/08 23:18:23
mod_ruby も、スクリプトごとにRubyインタプリタ起動すれば使う気になるのに。
185:デフォルトの名無しさん
08/11/09 00:11:15
>>182
> 1.9サポートって言っても文法エラー取り除いた程度だと予想
もっといろいろ大変だったんだよ
つーか昨夜リリースできたのは驚異的
186:デフォルトの名無しさん
08/11/09 00:14:36
>>184
MVMが実装されるまで待て。
187:デフォルトの名無しさん
08/11/09 01:22:56
RubyキモいよRuby www
188:デフォルトの名無しさん
08/11/09 01:35:22
>>184
mod_rubyの意味ないじゃんじゃん?
189:デフォルトの名無しさん
08/11/09 15:01:28
>>184
>mod_ruby も、スクリプトごとにRubyインタプリタ起動すれば使う気になるのに。
それはCGIのことか?
190:184
08/11/09 16:16:31
>>189
スクリプトというか、アプリケーションごと?
インタプリタはリクエストごとに起動するわけではなく、
Apacheとともに常駐するんだけど、
全部のスクリプトでそのインタプリタを共有するわけじゃなくて、
スクリプトごとに固有のインタプリタがあると良い。
191:デフォルトの名無しさん
08/11/09 16:28:55
グローバルな状態をアプリケーション単位で分けたいということですかね。
>>186が言うようにMVM待ちかなぁ。
192:デフォルトの名無しさん
08/11/09 16:42:41
FastCGI等のプロセス常駐じゃだめなの?
よくわからんけど
193:デフォルトの名無しさん
08/11/09 18:59:13
FastCGIはたしかにスクリプトごとにパーシステンスプロセスを起動するね。
CGIと違ってリクエストごとには起動しない。
>>184のやりたいことはこれかなあ。
194:デフォルトの名無しさん
08/11/09 20:09:18
Ruby 的には mod_ruby と FastCGI とどっちがおすすめなんでしょうか。
mod_ruby って実は mod_php や mod_perl とかと相性悪かったりしない?
195:デフォルトの名無しさん
08/11/09 21:07:16
rubyは汎用なんでおすすめApacheモジュールとか言われても困るんじゃないの。
オススメはwebrickかmongrel
196:184
08/11/09 22:10:00
うん、だからFCGIやmongrel使うことになって、
mod_ruby を使いたいんだけど使えないなあと。
ほんとは mod_wsgi みたいに mod_rack が欲しい。
197:デフォルトの名無しさん
08/11/09 22:49:25
Phusion Passengerってのが別名mod_rack/mod_railsらしいけど詳細は知らない
198:デフォルトの名無しさん
08/11/10 00:32:36
アプリがrackやrailsだったらpassengerが希望のものかと。
199:デフォルトの名無しさん
08/11/10 14:04:46
>>148
日本語SPAMフィルターでrubyのやつがあったね
そういえば
200:デフォルトの名無しさん
08/11/13 14:08:08
rubyのコードを書けるコマンドラインのリネーマーツールってない?
rren -recurse *.txt "$_.upcase!"
で
aaa.txt
bbb.txt
が
AAA.TXT
BBB.TXT
になるようなのでもっと至れり尽くせりなやつ。
201:デフォルトの名無しさん
08/11/13 14:13:02
>>200
> もっと至れり尽くせりなやつ。
単に ruby でワンライナー書くのが一番至れり尽くせり。
202:デフォルトの名無しさん
08/11/13 14:20:37
定型処理には、ワンライナーは不便かもしれない。
rename [-g "グロブ記述"] "正規表現"
くらいのインターフェイスでコマンドを書けばいいんじゃね?Rubyで。
203:デフォルトの名無しさん
08/11/13 14:55:57
for filename in *.txt; do echo $filename `mv $filename | ruby -n -e 'print $_.upcase'`; done
ファイル名に空白とか入ってておかしなことになっても知らん
204:デフォルトの名無しさん
08/11/13 14:56:49
あ、間違えた
for filename in *.txt; do mv $filename `echo $filename | ruby -n -e 'print $_.upcase'`; done
205:デフォルトの名無しさん
08/11/14 18:33:16
>>203 は、echo で一回テストしてみる慎重な人。
206:デフォルトの名無しさん
08/11/14 18:53:48
mv はよく痛い目に遭うから。
mv <パターン> <ディレクトリ> で、ディレクトリを入力し忘れたら、パターンに
マッチしたファイルが2つで、2つめのファイルが消えちゃったとか。
207:デフォルトの名無しさん
08/11/14 21:42:08
echo で試した後、ヒストリ戻って | sh と付けたりする。
208:デフォルトの名無しさん
08/11/15 07:04:10
1.9.1-preview1のバグ?
subの第二引数にSJISの文字列を渡すと、2バイト目の\に反応しちゃってる
>ruby19 -Ks -ve "puts 'test'.sub(/test/,'表0')"
ruby 1.9.1 (2008-10-28 revision 19983) [i386-mingw32]
付est
「+暗が gsub できない」のブログエントリを見て
そりゃあJISコードを直接扱うのは無理があるだろっ
でもSJISも2バイト目に\が来たら、-Ksとかでちゃんと$KCODEをSJISにしておかないと引っかかるよなぁ
だがしかし、1.9ならば文字列のエンコードさえしっかりしておけば無問題だぜ!
>ruby19 -Kn -e "puts 'test'.sub(/test/,%!\x95\x5c0!.force_encoding('SJIS'))"
付est
だめじゃんorz
209:デフォルトの名無しさん
08/11/15 08:09:14
Rangeに
x < first ? first : x > last ? last : x
なメソッドってないもんかね。あってもよさそうな気がするのだが。
210:デフォルトの名無しさん
08/11/15 09:31:27
いい名前がないからじゃないかな
ぴったりな名前ある?
211:デフォルトの名無しさん
08/11/15 13:02:14
limit か bound 辺りかな?
(1..10).limit(11) => 10
212:デフォルトの名無しさん
08/11/15 13:25:05
俺は以前、こんなメソッド定義してた
(1..10).fold(11) #=> 10
11.fold_in(1..10) #=> 10
213:デフォルトの名無しさん
08/11/15 14:27:05
なんか fold っていうと inject を思い出すな
214:デフォルトの名無しさん
08/11/15 16:59:52
>>209-213
自分はclampってのを使ってるけど、何故その名前を
使い始めたか思い出せない。合ってるのか?
215:デフォルトの名無しさん
08/11/15 20:21:02
>>214
いまいちな感じ
━ n., vt. 締め金(で締める); (駐車違反車を)車輪止め(wheel ~)を掛けて動かせなくする.
* clamp down (on) (…を)押えつける; (…を)厳重に取締る.
* clamp・down 取締り.
216:デフォルトの名無しさん
08/11/15 20:41:36
以下カードキャプター禁止
217:デフォルトの名無しさん
08/11/15 20:49:25
>216
Holicやツバサなら良いのか
218:デフォルトの名無しさん
08/11/15 22:48:26
>>208
thx
珍しく田中さんのバグかと思ったらまつもとさんだった。
219:デフォルトの名無しさん
08/11/17 00:02:19
Range#clip とか。clipping の clip。
220:デフォルトの名無しさん
08/11/17 02:00:14
clipだと、される側が値じゃなくて範囲のように思える。
221:デフォルトの名無しさん
08/11/17 02:09:57
imprison は?てかclampよくね
222:デフォルトの名無しさん
08/11/17 03:17:36
>>211のboundでいいと思うがなー。
bindの過去分詞じゃなくてboundaryのほうの動詞型だよな?
223:デフォルトの名無しさん
08/11/17 21:40:25
以下のようなコードなのですが
ruby -v
#=>ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mswin32]
<--
$KCODE='s'
t = <<TEXT
\"<src>\"
TEXT
t.sub!('<src>',"C:\\うた\\01.txt")
p t
-->
#=>"\"C:\\うた<src>1.txt\"\n"
となってきちんと置換されません。
"C:\\うた\\01.txt"の部分は起動時の引数を
考えています(運用時に変化する)
どのようにすれば
#=>"\"C:\\うた\\01.txt\"\n"
のように置換できるでしょうか?
224:デフォルトの名無しさん
08/11/17 21:46:48
URLリンク(www.ruby-lang.org)
>注意: gsub の項には sub/gsub を使用する上での注意点が書かれています。
>置換文字列 replace 中の \& と \0 はマッチした部分文字列に、
>\1 ... \9 は n 番目の括弧の内容に置き換えられます。
というわけで。
t.sub!('<src>'){"C:\\うた\\01.txt"}
225:デフォルトの名無しさん
08/11/17 22:51:46
文字列をevalすると中を評価してしまう副作用があるけど、
評価しないで文法エラーがあるかどうかだけ知る方法はないだろうか。
1.9ならripperでやれると思うのだが、あいにく1.8。
いま考えているのは ruby -w をforkして標準入力から流し込む。
226:デフォルトの名無しさん
08/11/17 22:56:26
eval("if false \n"+ program +"\n end")
で例外が起きなければ多分正しい気がする
227:デフォルトの名無しさん
08/11/17 23:00:56
>>226
なるほど3Q
228:デフォルトの名無しさん
08/11/17 23:05:43
eval "proc {" + program + "}" とかでもいいのかな。
229:デフォルトの名無しさん
08/11/17 23:15:04
おれも eval "proc { #{program} }" 派だ。
begin
eval "proc { #{program} }"
rescue SyntaxError => ex
puts ex.message
end
230:デフォルトの名無しさん
08/11/17 23:16:52
program='end;exit;begin'
とかやるとexitしちゃうので信頼できないソースにやるのは駄目だな
231:デフォルトの名無しさん
08/11/18 01:14:49
>>225
そっちでいくなら ruby -c で終了コードを見た方が。
> ruby -ce 'p 0' || echo error
Syntax OK
> ruby -ce 'p 0.' || echo error
-e:1: syntax error, unexpected $end
error
232:デフォルトの名無しさん
08/11/18 03:35:41
お前ら、ちょっとくらいソースのぞいてみろ。
sample/test.rbにそのまんまのがある。
def valid_syntax?(code, fname)
code = code.sub(/\A(?:\s*\#.*$)*(\n)?/n) {
"#${"\n" if $1 && !$2}BEGIN{return true}\n"
}
eval(code, nil, fname, 0)
rescue Exception
puts $!.message
false
end
233:デフォルトの名無しさん
08/11/18 11:23:07
がんばってみたけどやっぱりダメみたいだ。
ごめんなみんな。
234:223
08/11/18 13:02:24
>>224
レスありがとうございます
思った通りに処理できるようになりました
235:デフォルトの名無しさん
08/11/19 03:03:37
国籍法改正案について語ろうぜ
236:デフォルトの名無しさん
08/11/19 03:29:00
>>235
URLリンク(mamono.2ch.net)
237:デフォルトの名無しさん
08/11/19 03:30:35
+(笑)
238:デフォルトの名無しさん
08/11/20 21:28:32
Ruby-Gnome2にはお世話になってるので、GUIに関するアンケートに答えたけど、
英語が苦手なのできつかった。。
239:デフォルトの名無しさん
08/11/20 23:16:02
what?
240:デフォルトの名無しさん
08/11/20 23:30:32
これこれ
URLリンク(blade.nagaokaut.ac.jp)
241:デフォルトの名無しさん
08/11/22 09:47:40
thanks. (あれ?一度レスしたつもりだったが、してなかったか)
242:デフォルトの名無しさん
08/11/25 11:09:42
メソッド呼び出しの括弧を省略したらProcオブジェクトが
とれるようにしようぜ
今みたいに関数オブジェクトを名前で指定するって
ダサすぎね?
243:デフォルトの名無しさん
08/11/25 11:58:49
それは何を中心に考えるかによるからなあ。プロパティ指向と考えれば今のもあり。
それより、
Rubyって関数とかブロックとかクロージャ類の扱いがなにげに冷遇されてるというか
あんまりきちんと整理されていないというか。
他の言語でクロージャ使って書くつもりのことがRubyだとすんなり書けないね。
表層的には
・ブロックが関数と同等でない(ブロックをとれないなど)
・内部関数(Schemeのinternal defineみたいの)を書けない
Rubyという言語の設計において、クロージャ類は従属的な存在なんだと思う。
244:デフォルトの名無しさん
08/11/25 13:03:31
>242
名前っつーか、そのためのシンボルのハズなんだが
ちとシンボルと実体が疎に過ぎる気はするなあ。
>243
Rubyに純粋な意味での「関数」は無いからね。
文の塊をつくる手段は所属するオブジェクトが必要な「メソッド」と
オブジェクトそのものである「ブロック/Proc」の2種類。
PythonやJavaScriptみたいな設計は
「publicな属性が存在する」ことが前提。
「メソッドはpublicな属性に、クロージャが入ったもの」という感じ。
この設計では、関数もメソッドも似たような存在。
ところがRubyはpublicな属性をいきなり排除して
「オブジェクトの属性にはメソッドを通してしかアクセス出来ない」
としてるから、その設計が出来ない。
というのもRubyで「メソッド=クロージャ」…としてしまうと
public属性にアクセスできない=クロージャにもアクセスできなくなるんだよね。
だからRubyがpublic属性を否定する限り
メソッドは特別な存在でなければならず、クロージャではありえない。
…お陰で、相対的にクロージャの地位が下がっちゃってる。
245:デフォルトの名無しさん
08/11/25 13:07:21
ただ、もう少しProcとメソッド双方歩みよって
「違うけど、似たように扱える」仕組みがあっても良いとは思う。
246:デフォルトの名無しさん
08/11/25 20:25:17
メソッド呼び出しの括弧の省略を許す限りなかなか難しいだろうなあ
247:デフォルトの名無しさん
08/11/25 23:20:48
フリーの統合開発環境「NetBeans 6.5」正式版リリース
248:デフォルトの名無しさん
08/11/26 02:07:28
メソッドをProcにするのなんか、
x = proc {obj.foo}
でいいんじゃね?
249:デフォルトの名無しさん
08/11/26 04:22:24
1.9だと ブロック引数にデフォルト値の指定ができるし、ブロックも渡せる
block=lambda{|a,b=2,&c| p [a,b,c.yield]}
block.call(1){'block'} #=> [1,2,'block']
もう、いっそのこと {|| ~} って書いたら、それはProcとして扱ったらいいんじゃね?
250:デフォルトの名無しさん
08/11/26 04:41:37
あと、素人の浅知恵&妄想だが
selfを省略した括弧付きのメソッド呼び出しに限定して
メソッドが存在しない時に、同名の変数があって
それがProcオブジェクトなら call する
同名変数が存在しないか、変数がProcオブジェクトでなければ method_missing
今だって
def a;'def a';end
a = 'var a'
なんてしたときは 字面の a だけをみても変数なのかメソッドなのかわからんのだし
p a, a()
で、呼び分けるんだから a()がメソッド呼び出しなのか
変数aのProcオブジェクトをcallしてるのか判らなくてもいいんじゃね
a = lambda{'proc a'}
p [a, a(), a.call] # => [#<Proc:~ (lambda)>, "def a", "proc a"]
で呼び分けれるし
251:デフォルトの名無しさん
08/11/26 04:49:18
で、
alias func lambda
などとすれば
x = func{p 'function'}
x()
あらまぁ、もはや関数と見分けがつかない
なんちゃって
252:デフォルトの名無しさん
08/11/26 05:54:47
>selfを省略した括弧付きのメソッド呼び出しに限定して
selfじゃなくてレシーバの省略だった
おまけで
__proc__みたいな感じでProc自身が取れたりすると
Procの再帰がさせやすくなったり
253:デフォルトの名無しさん
08/11/26 15:42:42
>>250
> 今だって
> def a;'def a';end
> a = 'var a'
> なんてしたときは 字面の a だけをみても変数なのかメソッドなのかわからんのだし
これはメソッドaの有無にかかわらず常にローカル変数になるんじゃないか?
254:デフォルトの名無しさん
08/11/26 16:47:35
代入があればローカル変数
そうでなければメソッドaの呼び出し
255:デフォルトの名無しさん
08/11/27 12:30:01
先生、アンケートです。
あるデータから引数に該当するオブジェクトを検索抽出するメソッドがいくつかあります。
該当が無かった場合は nil やら空配列 [] やらが返ります。
で、このメソッドはブロックをとります。
data.search(cond){|e|
e.process
}
こんな感じで、抽出したオブジェクトのメソッドを使った処理をブロック内でしたいです。んで、このブロックは
・ 該当オブジェクトを探せなかったときには何もしないで処理を継続させる(抽出失敗はここではわからない)
・ 該当オブジェクトを探せなかったときにも nil を渡して NoMethodError でそれを報せる
のどっちがいいかな?
String#match なんかは前者で、ブロック内で作った変数が空かどうかでマッチの成功失敗を調べたりするよね
256:デフォルトの名無しさん
08/11/27 12:38:10
>>255
前者はエラートラップ不要で手軽。
後者は込み入った処理ができる。どっちもどっちだと思う。
そのメソッドの用途によるけど、マッチしなかったときの処理が
重要になるかどうかで決めつけていいんじゃない?
257:デフォルトの名無しさん
08/11/27 12:54:51
うん、どっちも採用理由があるなあ、とは思った。
どっちにしても、失敗検知用の if 文みたいなのはいるなーとか。
いや、これ、他人様のライブラリの便利メソッドの挙動なんだよね。
現行は後者なんだけど、前者のほうが便利なんじゃないかという気がひしひしと…。
「偽や空が渡ったら規定の例外を吐くブロック」とかないかなあ。
ああ、この便利メソッド自体が nil だったとき特定の「DataNoMatchError」とか吐けばいいのか。
場合によっては抽出失敗はしょっちゅう起こるし、そんな細かい例外も面倒だなあ。
でも「nil がどっかで出た結果、あのへんの処理が滞りました」としかわからない現状よりは、
特定の例外でエラー情報がわかったほうが便利なのかも。
…ありがとう。ちょっと考えてみる。
ちなみに、HTML から特定の要素や属性を抽出するメソッドです。サーバの HTML が変わって要素が無くなったら nil。
258:デフォルトの名無しさん
08/11/27 13:05:52
「そんなん見ればわかるわボケ」という例外はイライラする
捕捉する機会があれば便利なのかもしれないが、普通の人はこんなん捕捉しないだろうな、みたいな
259:デフォルトの名無しさん
08/11/27 19:57:39
Ruby/DBI のプリペアドステートメントで使える変数の個数に制限ってありますか?
変数9個の場合なんですが、
mysql = DBI.connect(ry
mysql.execute("SET NAMES utf8")
mysql.execute("INSERT INTO example_table (a, b, c, d, e, f, g, h, i) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)", var1, var2, var3, var4, var5, var6, var7, var8, "ENCRYPT(var9)")
というような文を実行すると、
Too many SQL parameters (RuntimeError)
from /usr/lib/ruby/1.8/DBD/Mysql/Mysql.rb:569:in `execute'
from /usr/lib/ruby/1.8/dbi.rb:893:in `execute'
というエラーになります。
また、Ruby/DBI を使う上でのドキュメントを探しているのですが、
Ruby DBI モジュールを使う
URLリンク(www.jiubao.org)
以外でおすすめがあったら教えてください。
260:デフォルトの名無しさん
08/11/27 21:04:55
>>257
searchって名前で検索抽出するのに、抽出失敗時にもブロック呼ぶの?
変だろうそれは。
探すのと辿るのでは目的が違うんだから、全部辿って何かしたいなら
foreach とか scan とか search_all とか、そんな名前にすると思うけど。
261:デフォルトの名無しさん
08/11/27 21:12:55
>>259
実は MySQL の制限だったりしないかと思ったりしつつ。
irb(main):005:0> db = DBI.connect("dbi:sqlite3::memory:")
irb(main):006:0> db.do("create table tt (a1 integer, a2 integer, a3 integer, a4 integer, a5 integer, a6 integer, a7 integer, a8 integer, a9 integer, a10 integer, a11 integer, a12 integer)")
=> 0
irb(main):007:0> db.do("insert into tt values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", *(1..12))
=> 1
irb(main):008:0> db.select_all("select * from tt")
=> [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]
262:デフォルトの名無しさん
08/11/27 21:39:49
search って名前ではないだろう、さすがに
いやわからんけど
263:デフォルトの名無しさん
08/11/28 15:09:38
便利メソッドだってのがポイントかね
Array#findでなんとかなるけどこれを使うと何か便利、みたいな
264:デフォルトの名無しさん
08/11/28 17:29:39
data.traverse do |t|
t.match do |e|
e.process
end
t.failure do |e|
...
end
end
みたいなインタフェースはどうだろう。
自分で言うのも何だけど、match/failureって名前でいいのかとは思うがそれは置いといて。
265:デフォルトの名無しさん
08/11/28 17:59:25
ちょいと質問。
HTMLのリンクとか面倒な部分をカンタンな記述→複雑なデータのように自動で変換記述する自分用スクリプト作ってます。
Wiki の [[キーワード]] みたいなやつ。
pstore の DB つきで、[[hoge-12]] と書いたら DB 内の Hoge の 12 項の説明文つきリンクで置き換わる、みたいな。
で、置換なんだけど、一般的に、ファイル全体に対して置換ワードごとに何度も gsub するしかない?
266:デフォルトの名無しさん
08/11/28 18:02:03
>>265
str.gsub(/\[(.*)\]/) {|s| table[s] }
こんな感じ。
267:デフォルトの名無しさん
08/11/28 18:03:00
てきとーに書きすぎたw
リファレンス見ながら察して。
268:デフォルトの名無しさん
08/11/28 18:08:16
初めのころはgsubで書いて、
そのうちcase文とかif文とかの使用を考えて、
大量の一時状態保持変数とバカみたいに複雑な分岐処理で破綻して、
結局gsubに戻ってくる
正規表現をワードタイプの通知も含めて複雑にするか([[~]]と<<~>>は違う、みたいな)、
ワードタイプごとにgsubを分けて何度もgsubするかは好みと処理時間で
269:デフォルトの名無しさん
08/11/28 18:21:40
あ、一時保持変数で思い出した
[[hoge-13]] だとHogeの13なんだけど、[[-13]] だと、その [[-13]] が言及してる文章のセクションの13項目なんだよね
ファイル名とかで区別できるんじゃなくて、文章の中の、HTML でいうとこの
<h1 class="about_hoge">Hoge について</h1>
リンクだよ→ [[-11]]
<h1 class="about_mage">Mage について</h1>
リンクだよ→ [[-12]]
で、[[-11]] は [[hoge-11]] で、[[-12]] は [[mage-12]] なんだよ
gsubと相性悪いなあと思う
270:デフォルトの名無しさん
08/11/28 18:48:56
>>269
そんな表現認めたほうが悪いというのはさておきw
そこまでコンテキスト依存度高くしたら、スキャナで頭から舐めるか
構文木みたいな内部表現にしてから処理と出力するしかないんじゃ?
271:デフォルトの名無しさん
08/11/28 19:23:45
strscanでスキャナ書いてしまうのが楽。
272:デフォルトの名無しさん
08/11/29 14:03:45
break と next と continue と return の使い分けがわかりません。
273:デフォルトの名無しさん
08/11/29 14:07:56
>>272
break:ループ全体を打ち切り
next:ループ1回分だけ打ち切り
continue:なにそれ?
return:関数を打ち切り
274:デフォルトの名無しさん
08/11/29 14:08:27
continue じゃなくて retry でした
275:デフォルトの名無しさん
08/11/29 14:12:23
retryはループを振り出しに戻して最初からやり直す
276:デフォルトの名無しさん
08/11/29 14:15:21
たいていの解説には嬉々として例が載ってるはずなんだけどな
277:デフォルトの名無しさん
08/11/29 14:27:11
def foo(&x)
@x = x
end
def bar()
@x.call
end
foo{
if $hoge
xxxx 1
else
xxxx 2
end
}
xxxxに何を入れたらいいかわかりません
278:デフォルトの名無しさん
08/11/29 14:33:17
>>275
retryってループそのもののやり直しだったのか
ループのその回をやり直しっていうキーワードはないの?
279:デフォルトの名無しさん
08/11/29 14:35:04
つーかここ初心者スレじゃないじゃん。
>>277
たぶんbreak。だめならreturn。irbで叩いてみ。
>>278
リファレンス嫁。
280:デフォルトの名無しさん
08/11/29 15:14:54
retryはhttp扱ってるときに503を返しやがったときに使うわ。
rescue節でちょとsleepしてからretry
281:デフォルトの名無しさん
08/11/29 15:25:52
>>278
redo
微妙なネーミングだなあ
282:デフォルトの名無しさん
08/11/29 16:17:10
>>277
exit
283:デフォルトの名無しさん
08/11/29 17:22:56
>>277
別に何も入れなくていいんじゃね
直接値だけを書いておけば
あえて書くなら next
なんか、ものすごく直感に反するが
284:デフォルトの名無しさん
08/11/29 23:37:49
クロージャを抜けるのがnextっつーのがなんとも
285:デフォルトの名無しさん
08/11/30 01:27:57
クロージャの次の処理へ進む、という意味に捕らえれば良い
元々は次の繰り返しへ進む、だけど
286:デフォルトの名無しさん
08/12/01 12:42:24
余計な苦労じゃ
287:デフォルトの名無しさん
08/12/02 08:39:58
Ruby 1.9.1 Preview 2 アゲ
288:デフォルトの名無しさん
08/12/02 08:51:12
>>277
ruby 1.7 以降なら、breakに返り値をつけられる
289:デフォルトの名無しさん
08/12/03 18:23:06
rubyをrudyと間違えるのはデフォだよな
290:デフォルトの名無しさん
08/12/03 18:30:19
RUbyとはしょっちゅう書く
IME2000の設定がね
291:デフォルトの名無しさん
08/12/04 06:57:24
RPGツクールのRGSSって
ruby使えるやつならわざわざツクールなんかに頼るとは到底思えない
292:デフォルトの名無しさん
08/12/04 07:14:51
どうして使ってもいないものを批判するの?
293:デフォルトの名無しさん
08/12/04 11:14:56
[
["String", int foo, int bar],
["String", int foo, int bar],
["String", int foo, int bar],
...
]
というオブジェクトがあって、bar をキーにソートして
printf "%d, %s, %d", bar, str, foo,
という風に出力したいんですが、何かいい方法はありますか?
DBを使うかデータ構造を考え直したほうがいいんでしょうか?
294:デフォルトの名無しさん
08/12/04 11:15:31
ruby勉強しようと思ったけどもうちょっと普及してからでいいな
295:デフォルトの名無しさん
08/12/04 11:21:27
sort_byを使う
$data =
[
["foo", 1, 2],
["bar", 2, 1],
["bozh", 5, 0],
]
$data.sort_by{ |x| x[2] }.each{|x| printf "%d %s %d", x[2], x[0], x[1]}
296:デフォルトの名無しさん
08/12/04 13:03:50
>>292
まあ、RGSS使った人間の台詞ではないな
297:デフォルトの名無しさん
08/12/04 13:06:26
>>295
ありがとうございます。
というか、初心者スレがあったんですね。
失礼しました。
298:デフォルトの名無しさん
08/12/05 14:27:23
いつも思うだけど最近の言語っていわゆるjmp命令ってないよね。
昔9801でマシン語で組んでた時の癖があるからループ制御中にもう1つブレイク判定用チェツク入れてしかも入れ子分考慮してブレイク数考えるとか、
書き物がみづらくなるは、めんどくさいはでいつも思いながら使ってる。
299:デフォルトの名無しさん
08/12/05 14:31:43
つ 例外
つ catch throw
300:デフォルトの名無しさん
08/12/05 14:34:00
まあ、例外だな
301:デフォルトの名無しさん
08/12/05 14:43:56
jmp considered harmful
302:デフォルトの名無しさん
08/12/05 14:51:23
つ callcc
303:デフォルトの名無しさん
08/12/05 15:04:29
マシン語世代は例外とかの高級言語概念が理解できないことがあるのでマジ困る
304:デフォルトの名無しさん
08/12/05 15:06:29
本物のマシン語世代なら、ああ、割り込みのようなものね、と
サクッと理解できるはずだと思うんだが。
305:デフォルトの名無しさん
08/12/05 15:10:26
例外と割り込みは全然違うだろ
306:デフォルトの名無しさん
08/12/05 15:14:04
>>304
その理解だと割り込みとして使いやがるぞ
307:デフォルトの名無しさん
08/12/05 15:21:36
>>306
いやそれは無理だろ
別物過ぎて話にならん
308:デフォルトの名無しさん
08/12/05 15:40:28
解説とサンプルと実行結果を見て理解できないならプログラミングは向いてないよ。
~みたいなものという不正確な比喩で何かを理解した気分に浸れたところで何がどうなるわけでもない。
309:デフォルトの名無しさん
08/12/05 15:52:38
関数のようなもの
310:デフォルトの名無しさん
08/12/05 15:55:31
パールのようなもの
311:デフォルトの名無しさん
08/12/05 16:00:29
バイブのようなもの
312:デフォルトの名無しさん
08/12/05 22:15:26
>>298
jump命令が使いたくなるようなコードを出してみよう。
そうすれば貴殿の主張も説得力を持つようになる。
313:デフォルトの名無しさん
08/12/05 22:47:35
RubyForgeのログインクッキーがすぐなくなるような気がする
めんどくさいからログインやめようかなという
314:デフォルトの名無しさん
08/12/08 21:38:55
Ruby 1.8系のMatrixの不具合?
>ruby18 -rmatrix -ve "p Matrix[[1,3,4],[3,1,2],[4,2,3]].det"
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mingw32]
24
>ruby19 -rmatrix -ve "p Matrix[[1,3,4],[3,1,2],[4,2,3]].det"
ruby 1.9.1 (2008-12-01 revision 20438) [i386-mingw32]
(matrix.rbでブロック引数が外部のローカル変数を遮蔽してる警告多数 省略)
(4/1)
ruby19の方があってる
どう書く?org の「行列式の計算」を解いていて発見
Matrix#determinant の定義をみると 1.9では割り算が / から .quo になってるので
1.8ではIntegerの割り算で端数が切り捨てられてる
FloatのMatrixだと大丈夫
>ruby18 -rmatrix -ve "p Matrix[[1.0,3.0,4.0],[3.0,1.0,2.0],[4.0,2.0,3.0]].det"
ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-mingw32]
4.0
315:デフォルトの名無しさん
08/12/09 01:24:20
そういうガチっぽいのはredmineに登録してください・・・
316:デフォルトの名無しさん
08/12/09 01:56:20
パッチとテストを書いてください
317:デフォルトの名無しさん
08/12/10 23:22:58
Windows の Mingw版ruby 1.9.1-preview2ですが
>cat てすと.rb
p [$0,$0.encoding]
p [__FILE__,__FILE__.encoding]
p $0 == __FILE__
>ruby19 -v てすと.rb
ruby 1.9.1 (2008-12-01 revision 20438) [i386-mingw32]
["てすと.rb", #<Encoding:Windows-31J>]
["\x82\xC4\x82\xB7\x82\xC6.rb", #<Encoding:US-ASCII>]
false
-Ksつけるとか、ファイル冒頭のマジックコメントで
Windows-31J を指定すると大丈夫なんですが
ファイルの中身のEncodingと
ファイル名のEncodingは無関係のような気もするし
どうしたもんでしょうね
Windowsだと ARGVや$0はWindows-31Jなので
__FILE__も同じでいいような
318:デフォルトの名無しさん
08/12/10 23:26:10
め、めんどくせえ…
319:デフォルトの名無しさん
08/12/11 15:53:44
>>317
>Windowsだと ARGVや$0はWindows-31Jなので
>__FILE__も同じでいいような
ぜんぜんよくないだろう。。。
しかしどうしたもんでしょうね
320:デフォルトの名無しさん
08/12/11 16:19:04
>>319
横からすまん。よくないってどういうこと?
$0と__FILE__のエンコーディングを揃えるのはごく自然に思えるんだが。
321:デフォルトの名無しさん
08/12/11 18:01:07
>>320
$0と__FILE__のエンコーディングは揃うべきだと思うが、ARGVは違うでしょ。
ARGVはコンソールで指定されるからWindows-31Jになるので、これはOK。
$0と__FILE__のエンコーディングはファイルシステムのエンコーディングになるのが一番自然だろうと思う。
だからってUTF-16で渡されても嬉しくないけどね。
322:デフォルトの名無しさん
08/12/12 20:59:22
| > ruby -v
| ruby 1.9.1 (2008-12-01 revision 20438) [i386-mingw32]
|
| > ruby -r Win32API -e 'Win32API.new("msvcrt.dll", "_wmkdir", "p", "i").call("あいうえおかきくけこ".encode("utf-16le"))' & dir /b
| あいうえおかきくけこ(ゴミ文字が続く)
|
| > ruby -r Win32API -e 'Win32API.new("msvcrt.dll", "_wmkdir", "p", "i").call("あいうえおかきくけこ".encode("utf-16le").force_encoding("binary") + "\0")' & dir /b
| あいうえおかきくけこ
| あいうえおかきくけこ(ゴミ文字が続く)
文字列の終端記号がUTF-16/32などでも常に1バイトしか付加されません
UTF-16ならば2バイト、UTF-32ならば4バイトの終端記号が付加されるのを期待します
323:デフォルトの名無しさん
08/12/12 21:03:45
WindowsのネイティブでRubyをまともに使えるようにしようという努力は、どれくらい実のあることなんだろうか
324:デフォルトの名無しさん
08/12/12 21:59:53
世の中のクライアントPCのほとんどがWindowsであることを考えると、非常に重要で意味のあること。
問題はmatzにその気がまったく無いことだよな。Ruby捨てるのが早かったりして。
325:デフォルトの名無しさん
08/12/12 22:02:12
>>322
つ URLリンク(redmine.ruby-lang.org)
つ ruby-dev ML
326:デフォルトの名無しさん
08/12/12 23:50:03
1.8.6 では ruby -e 'p p 1' とかやると、
warning: parenthesize argument(s) for future version
と言われたけど、1.8.7 では warning が出なくなってる。
括弧なしも正式にOKになったってことなのかな。
327:デフォルトの名無しさん
08/12/13 10:27:54
>>322
ruby19 -rwin32api -e "Win32API.new('user32.dll','MessageBoxW','ippi','i').call(0,('あいうえおかきくけこ').encode('utf-16le'),'メッセージボックス'.encode('utf-16le'),0)"
でMessageBoxを表示させると確かに後ろにごみがつきますね
ワイドキャラクタって文字サイズ分の終端記号が必要なのか
Win32APIやdlでは文字列の引数を pack('p')でポインタに変換してるようなので
UTF16やUTF32をpack('p')するときは終端記号が文字幅分付加されればいいのですかね
とりあえず、自前で終端記号をつけておけば動きますけど
ruby19 -rwin32api -e "Win32API.new('user32.dll','MessageBoxW','ippi','i').call(0,('あいうえおかきくけこ').encode('utf-16le')<<0,'メッセージボックス'.encode('utf-16le')<<0,0)"
328:デフォルトの名無しさん
08/12/13 20:19:53
金光ですっ。どもっ。
329:デフォルトの名無しさん
08/12/18 16:24:29
>>327
> Win32APIやdlでは文字列の引数を pack('p')でポインタに変換してるようなので
> UTF16やUTF32をpack('p')するときは終端記号が文字幅分付加されればいいのですかね
packで終端記号を付けているわけではない。
というかそもそも、常にNUL終端されていることが保証されているわけではない。
保証されているのは、StringValueCStr()を呼んだ場合に終端されることだけ。
ワイドキャラクタ以外でNUL終端されているように見えるのは、歴史的経緯と実装上の都合による偶然。
でもdlとかWin32APIって入力文字列か出力バッファかなんて気にしてないんだよなぁ。
330:デフォルトの名無しさん
08/12/19 22:36:03
勝手な想像では
Stringは内部ではNULL終端されたCのバイト列で文字列を保持していて
その直後には文字列の拡張に備えたある程度のバッファの残りがあり
実際の文字列長や、バッファ全体の大きさ等がセットになった構造だろうと思ってました
Cのバイト列として直接扱えるようにNULL終端されてないと
ちょっとしたミスでバッファオーバーフローしやすいのでまずいだろう
それゆえに、pack('p')では特に終端の処理はしてないのではないかとも思ってました
なので、pack('p')されたら、とりあえず引数で渡されたString内部の
文字列直後のバッファを\x0\x0\x0\x0で埋めとけばいいと思うのです
もしバッファがぎりぎりで余裕が無くても、バッファを拡張してでも埋めればいい
バッファとして使うのなら、いちいち4byteものNULL終端するのは無駄かもしれませんが
文字列としてか単なるバッファとして使われるのか区別がつけられないので
安全側に振っておけと
331:デフォルトの名無しさん
08/12/19 22:41:59
Rubyで書くなら
引数のstring.concat(0).chop!
NULLを連結しておいて、それを切り詰めると
文字列直後のバッファには文字幅分のNULL終端が
残ってるだろう
たまたま現在の実装ではそうなるだけかもしれませんが
Ruby本体が内部でやるとするなら文字のエンコーディングと関係無しに
4byteNULL終端することにすれば少しは速度の低下を抑えられるのではないかと
そのように、NULL終端していることをRubyが保証するようにしてほしい
ま、pack('p')なんてdlでしか使われないだろうし
dlを使ってる時点でパフォーマンスなんて気にしても仕方ないので
それくらいやっちゃってもいいんじゃないかと
332:デフォルトの名無しさん
08/12/20 18:50:54
RUBYOPT=-rubygems の問題はどうなったん?
ユーザーに環境変数を設定させるのが妥当?
require 'rubygems' を(配布)スクリプト側で書くのが妥当?
333:デフォルトの名無しさん
08/12/20 19:03:42
> pack('p')
顔に見えて仕方が無い
334:デフォルトの名無しさん
08/12/20 19:16:54
require 'rubygems' を書くのが「正しい」
というか、これを書かずにスクリプト作る奴の意味がいまいちわからん
gem で配布しておきながら LoadError 起こすようなコマンドつけてるライブラリはソースコード印刷して燃やせ
335:デフォルトの名無しさん
08/12/20 19:47:22
begin
require 'rubygems'
rescue LoadError
end
require 'wx'
336:デフォルトの名無しさん
08/12/20 21:59:33
>>332
require rubygemsと書かないとgemsでインストースしたものが使えないのが大問題
337:デフォルトの名無しさん
08/12/20 23:05:44
>>330
> 勝手な想像では
> Stringは内部ではNULL終端されたCのバイト列で文字列を保持していて
> その直後には文字列の拡張に備えたある程度のバッファの残りがあり
> 実際の文字列長や、バッファ全体の大きさ等がセットになった構造だろうと思ってました
昔はそうだったんだけど、前田さんがstringをcopy-on-writeにしようといって変更になった
はず。俺の記憶が正しければ。
> なので、pack('p')されたら、とりあえず引数で渡されたString内部の
> 文字列直後のバッファを\x0\x0\x0\x0で埋めとけばいいと思うのです
> もしバッファがぎりぎりで余裕が無くても、バッファを拡張してでも埋めればいい
terminatorをmin len確保する、というのも考えたんだけど
StringValueCStr()とpack('p')だけ、というのもありかもね。
338:デフォルトの名無しさん
08/12/21 10:45:03
>>336
>>335
339:デフォルトの名無しさん
08/12/24 18:12:39
URLリンク(up2.viploader.net)
340:デフォルトの名無しさん
08/12/25 00:28:50
今年の聖夜はなにがリリースされるの?
341:デフォルトの名無しさん
08/12/25 01:46:48
そういうのあったな
あんまり静かなんで忘れてた
342:デフォルトの名無しさん
08/12/25 02:04:46
RCのリリースは30日に延期か
ささださんの仕事がもう少しかかる?
URLリンク(blade.nagaokaut.ac.jp)
343:デフォルトの名無しさん
08/12/25 06:39:08
確かに静かだな
そもそも正式版が1月に控えてるから、あまり気にされていないのかもしれない
344:デフォルトの名無しさん
08/12/25 10:19:44
うおおい、Ubuntuでビルドできねえぞ!
どうなってんだ!コラァ!
gcc -O2 -g -Wall -Wno-parentheses -I. -I.ext/include/i686-linux -I./include -I. -DRUBY_EXPORT -o sprintf.o -c sprintf.c
sprintf.c: In function ‘rb_str_format’:
missing/vsnprintf.c:1185: sorry, unimplemented: inlining failed in call to ‘snprintf’: redefined extern inline functions are not considered for inlining
sprintf.c:803: sorry, unimplemented: ここから呼ばれました
345:デフォルトの名無しさん
08/12/25 10:27:46
URLリンク(www.ruby-forum.com)
ぐぐったらこれか
FreeOSの中で圧倒的なシェアを誇るうぶん厨様を冷遇するとは・・・・
Rubyistたちはどうやら俺たちとやる気らしいな・・・
346:デフォルトの名無しさん
08/12/25 12:59:42
[ruby-dev:37585]
鼻から悪魔吹いたんだけどこのパッチどういうことなの
単純にコピペミスか何か?
347:デフォルトの名無しさん
08/12/25 13:52:38
>>346
どのへんで噴いたの?
日本語化メッセージ?
348:デフォルトの名無しさん
08/12/25 14:51:56
>>347
[ruby-dev:37595]ですでに言われてるけど、uninitializedな値を代入してどうすんだってこと
[ruby-dev:37592]でもせっかく取得したskの値を上書きしてるし(これはすぐ直りそう)
一体どうしてしまったんだろう・・・
349:デフォルトの名無しさん
08/12/25 15:57:53
[ruby-dev:37595]の人ってなんでこんな上から目線で偉そうなの?死ぬの?
350:デフォルトの名無しさん
08/12/25 16:03:18
>>349 べつにふつうだと思うが?
351:デフォルトの名無しさん
08/12/25 17:33:11
これが上から目線だったら、U氏はどうなってしまうのかと小一時間
352:デフォルトの名無しさん
08/12/25 17:35:37
いわゆるゴッド
353:デフォルトの名無しさん
08/12/25 19:51:14
>>349
上から目線というよりは相手を馬鹿にしてるように見える
354:sage
08/12/26 01:58:49
「テストしてからコミットすると,気づきやすくなると思います」
とmatzを諭している人が
「どこでも通用する再現ケースを示しても、報告者が確認しないとダメですか」
と突っ込まれるようなことをしてしまったからなあ
355:デフォルトの名無しさん
08/12/26 02:00:42
sage間違えた orz
356:デフォルトの名無しさん
08/12/26 14:06:47
>>353
馬鹿にしてるというよりはいじられキャラだから
357:デフォルトの名無しさん
08/12/26 18:23:30
ええと、iconv 対応外部ライブラリがあって、引数で iconv なエンコーディング文字列を渡したいです。
しかし、ガイジンさんも使うスクリプトなので require 'iconv' も require 'kconv' もしたくないです(たった1回のために遅くなるのは避けたい)。
外部ライブラリが依存してるので、/usr/bin/iconv か、 /usr/lib/ruby/1.8/i486-linux/iconv.so の2つは存在するんだけど、
この段階で、 Ruby の変数に格納されてるデータの文字エンコードを調べる方法はありますか?
358:デフォルトの名無しさん
08/12/26 18:33:53
require 'rubygem' で文字コード関連のライブラリ読まれなかったっけ
しれっと gem にしてしまうというのはどう
359:デフォルトの名無しさん
08/12/26 18:49:53
それ多分requireの100倍くらい重いよね
360:デフォルトの名無しさん
08/12/26 20:43:48
iconv は推測ができないんじゃなかったっけ?
from と to が必ず必要だった気がする
guess したければ NKF 使うことだね
2008年にもなってまだ NKF か
やってらんねーな
361:デフォルトの名無しさん
08/12/26 21:24:39
つーかそもそも
require 'iconv'
も
require 'kconv'
も、読み込みコストは無視していいほど軽いと思うぞ
気にせずiconv読み込んじゃえよ
362:デフォルトの名無しさん
08/12/26 21:52:33
ぼくはrequire "kconv"ちゃん!
363:デフォルトの名無しさん
08/12/27 06:31:20
使うところでrequire
364:デフォルトの名無しさん
08/12/27 06:35:04
>>345
そんなにシェアがあるとは知らなかったが、
初心ン厨のsnprintf()は一体どう定義されてるんだ?
365:デフォルトの名無しさん
08/12/27 19:02:54
GNU Debianと同じはずなのだが
366:デフォルトの名無しさん
08/12/27 19:10:20
Ubuntuユーザてdevな人たちにいないのかな?
皆さんDebianを使ってるのか?
367:デフォルトの名無しさん
08/12/27 20:35:06
皆さんはどうだかわからんけど、数あるLinuxでDebianが
優先されてるのはmatzが普段使っているものだから(だよな?)。
NaClが日医のORCAの会社だから、てのは関係あるのかな。
368:デフォルトの名無しさん
08/12/27 20:44:26
いや、こういうのでLinuxのうち対応するの1個選べと言われたらDebianだろ普通
CentOS用のを他のディストリに対応させるのは面倒な可能性があるが、
Debianで動作するなら必要ライブラリとかの問題はゼロだろ
369:デフォルトの名無しさん
08/12/27 20:47:02
それ以前に、今の今まで動いてたんだからパッチの書き方が下手糞なんだろう
しょぼいコントリビュータがいるからこうなる。Cを知らない奴に開発させるなよ
370:デフォルトの名無しさん
08/12/28 02:18:02
文句言うなら自分でやるべきでは?
371:デフォルトの名無しさん
08/12/28 08:13:51
問題になったそのパッチってどれよ
372:デフォルトの名無しさん
08/12/28 10:59:59
nokogiriエンジンのmechanizeを1.9で動かすと
hpricotをつかったものを1.8で動かすのに比べて大分早くなるんだなー
これで心置き無く1.9に移行できる
373:デフォルトの名無しさん
08/12/28 13:25:40
いやそれ1.9ほとんど関係ないから
libxml2が速いだけだから
むしろMechanize自体はEncodingの存在無視してるから1.9向きではない
374:デフォルトの名無しさん
08/12/28 14:41:03
>Encodingの存在無視してるから1.9向きではない
kwsk
$KCODE='UTF-8'ってやらないと?だらけになるとかそういうのですか?
375:デフォルトの名無しさん
08/12/28 14:51:51
1.9 は $KCODE 使えないだろ
376:デフォルトの名無しさん
08/12/28 14:53:34
だから対応して欲しければ文字エンコードをもった文字列の扱い方の解説特設ページとか公式に作れ
377:デフォルトの名無しさん
08/12/28 14:55:08
ライブラリ作者は別に1.9に完全対応とかをやりたくないってわけじゃないんだ(いや面倒度にもよるが)
ただ、どう対応して追従するのがベストなのか、情報が散逸してさっぱりわからんからスルーしてるだけなんだ
378:デフォルトの名無しさん
08/12/28 15:16:35
スルーじゃなくて保留なんですね
言い方大事ですね
379:デフォルトの名無しさん
08/12/28 18:54:44
書こうと思ってるけど、どういうのがほしいの?
URLリンク(doc.okkez.net)
とは違うんだよね
1.8 のスクリプトを 1.9 に対応させるベストプラクティス的なものがほしいのかな
380:デフォルトの名無しさん
08/12/28 19:02:28
まあ、移行ガイドみたいなもんになるんだろうね
1.9を視野に入れるなら使わないほうがいい記法とか
あなたは知らないだろうけどこの世には日本語文字というものが以下略みたいな
381:デフォルトの名無しさん
08/12/28 22:26:20
>>344-345
修正されたお
382:デフォルトの名無しさん
08/12/29 18:24:38
中の人GJ
383:デフォルトの名無しさん
08/12/29 23:37:43
>>367
Ruby自体Debianしか正式サポートしてないからね
384:デフォルトの名無しさん
08/12/30 13:42:50
早く開発者変わってWindowsがリードプラットフォームにならねーかな。
どう見ても一番将来性あるわけだし。
オプソ周りはもう不況で金集まらないだろ。
385:デフォルトの名無しさん
08/12/30 13:54:21
>>384
お前Windowsで開発したことないな
386:デフォルトの名無しさん
08/12/30 16:15:31
卜部を「とぶ」と読んでいたのは俺だけではないはずだ
387:デフォルトの名無しさん
08/12/30 19:24:02
懺悔すると、「とべ」と呼んでた
全国の卜部さん、ここ見てたらごめんなさい
388:デフォルトの名無しさん
08/12/30 19:27:42
>>386
それはない
とべならまだわかる。
389:デフォルトの名無しさん
08/12/30 21:43:38
Rubyを「るびぃ」と読んでいるのは俺だけではないはずだ
390:デフォルトの名無しさん
08/12/31 12:48:20
>>384
それはまずあり得ないな。
開発環境でもLinuxのほうが便利。
WindowsのIDE使う場合でも、sambaでLinuxのディレクトリをマウントして
コーディングするほうがいいよ。
コマンドの実行はTeraTermか何かでsshログインすれば良いし。
特に本番環境となればWindowsサーバという選択肢はあり得ない。
Webアプリケーションを作る場合だけどね。
391:デフォルトの名無しさん
08/12/31 13:01:16
最後の一行を最初に持ってこないのはインチキだと思います先生
392:390
08/12/31 15:15:14
>>391
確かにそうだな。
すまなかった。
393:デフォルトの名無しさん
08/12/31 17:58:23
>>390が素人な件について。
394:デフォルトの名無しさん
08/12/31 22:06:41
>>349
>[ruby-dev:37595]の人ってなんでこんな上から目線で偉そうなの?死ぬの?
どんだけすごいんだろうと思ってみてみたら・・・
最近のゆとりは、こんなのも上から目線と感じるのか。
つきあいにくいなあ。
395:デフォルトの名無しさん
09/01/01 01:02:00
ライブラリの力を自分の実力と勘違いしている香具師は邪魔
396:デフォルトの名無しさん
09/01/01 11:27:46
Ruby 初心者スレッド Part 23 の 846には
Nokogiri::HTML(open(url), nil, 'SHIFT_JIS')みたいに
第3引数で文字エンコードをしてできるようですが、
Mechanizeから文字コードを指定できますか?
つまりWWW::Mechanize.new.get(url)とするとき
getするhtmlのエンコードを決め打ちして取得できるのかどうか。
WWW::Mechanizeクラスの定数にも属性にもそれっぽいものが見つからなくて質問させてください。
Mechanizeは0.9、Rubyは1.8.7です。
397:デフォルトの名無しさん
09/01/01 11:34:29
Ruby 初心者スレッド Part 23
スレリンク(tech板)
埋まった。次スレ立てられなかったので誰か頼む。
398:デフォルトの名無しさん
09/01/01 11:34:31
>>396
でいつRuby 初心者スレッドの次スレを立てるの?
399:デフォルトの名無しさん
09/01/01 11:46:17
399
400:デフォルトの名無しさん
09/01/01 11:47:04
400
401: 【吉】 【265円】
09/01/01 11:48:36
○
/⌒\ (__)
\●/(__)/⌒\
∩ ( ・ω・ )\●/ あけましておめでとうございます
Y  ̄ ||y||  ̄`''φ
Lノ /ニ|| ! ソ >
乂/ノ ハ ヽー´
`ー-、__|
ことしもよろしくね☆
402:デフォルトの名無しさん
09/01/01 13:20:13
■次スレ
Ruby 初心者スレッド Part 24
スレリンク(tech板)
403:デフォルトの名無しさん
09/01/01 13:21:52
2.0マダー?
404:デフォルトの名無しさん
09/01/01 15:17:09
>>396
WWW::Mechanize::Chain::BodyDecodingHandlerにmonkey patch!
405:396
09/01/01 17:30:52
>>404
正月早々レスありがとうございます。でも
モンキーパッチの当て方(書き方)がわからん。
参考も見つけられなかった。
ソース読んでもいまいちピンときてないし。
body.readの部分で,iconvあたりでutfに変換してやるだけなんじゃないかななどと楽観的に考えてるのですが。
あるいはlib/www/mechanize/page.rbで
@parser = Mechanize.html_parser.parse(html_body)
のところでエンコードを指定してやればいいはずだが
そもそもパッチの書き方がわからないorz
406:デフォルトの名無しさん
09/01/01 19:24:43
やっぱりデビアン前提?
窓環境で動くアプリをrubyで作るのは無謀だろうか。
407: 【1739円】 【大吉】
09/01/01 20:01:18
>>406
無謀とまでは言わないけど苦労は多いんじゃないか?
408:407
09/01/01 20:02:08
お、大吉だったw
409:デフォルトの名無しさん
09/01/01 20:06:23
>>406
visuarubyで作ったけど時間かかった
wxPythonで作り直したらあっさりできた
410:デフォルトの名無しさん
09/01/02 03:59:23
>>406
RubyとGUIライブラリの相性が悪すぎる。
RailsをWindowsアプリとして動かすのが一番楽
411:デフォルトの名無しさん
09/01/02 09:20:44
ここでvrubyでしかrubyを使わない人の登場です。(vbicで拡張してるけども)
自分で使うときはcuiでいいけども、人に渡すときはexerbで固めて渡してる。
粗大なデータを表示するエディタや、ペイント系の処理をするのでなければ、vrubyで十分だけどなぁ?
基本はボタンやプルダウン、ドラッグ&ドロップをトリガーとして各クラスなりdefにアクセスできればいい
ので、cuiで書いたコードをそのまま使えるし…
gemでsshとscp、rmagick、mysql、sqliteを使ってる物をポイっとgui付でexe化して他人に渡せるのは
メリットだと思ってる。
俺は逆にwxPythonだとsshで躓き、exe化する時にdllが多大にできたり単独ファイルにできないのが
辛かった。
412:デフォルトの名無しさん
09/01/02 09:39:30
>>406
CUIにせよGUIにせよ、今のRubyなら余裕
VisualuRubyあるし、今ならwxRubyもWindowsできちんと動くしな
diffとかlsとか、基本的なコマンドラインツールも探せばすぐに揃うし
個人的にWindowsでRubyするときの一番の問題はエディタ(or開発環境)
413:デフォルトの名無しさん
09/01/02 14:18:16
Windowsの場合、エンコーディングがUTF-8だとコンソールが文字化けすると思うんだけど対策とかあるの?
chcpで文字コード変えるとirbとscript/consoleが動かないんだよね。
414:デフォルトの名無しさん
09/01/02 14:22:04
>>413
マルチいくない
【Ruby】Ruby on Rails Part6
スレリンク(php板)l50
こっちで質問してるくせにマルチって人間失格だね
415:デフォルトの名無しさん
09/01/02 14:38:51
すまなかった。
あっちで聞いて来るのでこちらの質問は取り消す。
416:デフォルトの名無しさん
09/01/02 16:33:59
ファイルにYAML形式で複数のオブジェクトを書いた場合
どのようにして全てのオブジェクトをRubyのオブジェクトに変換できるのでしょうか。
load_fileが先頭しか変換しないとかアホじゃねーの?
417:デフォルトの名無しさん
09/01/02 16:55:36
ドゴォォォォン!!
; ' ;
\,,(' ⌒`;;)
(;; (´・:;⌒)/
/⌒ヽ(;. (´⌒` ,;) ) ’
Σ(;^ω^)((´:,(’ ,; ;'),`
⊂ ⊂ / ̄ ̄ ̄/__
\/___/
418:デフォルトの名無しさん
09/01/02 19:58:27
複数のオブジェクトなら配列として書き出しているはずだが。
419:デフォルトの名無しさん
09/01/02 21:43:34
ドゴォォォォン!!
; ' ;
\,,(' ⌒`;;)
(;; (´・:;⌒)/
/⌒ヽ(;. (´⌒` ,;) ) ’
Σ(;^ω^)((´:,(’ ,; ;'),`
⊂ ⊂ / ̄ ̄ ̄/__
\/___/
420:デフォルトの名無しさん
09/01/02 21:52:15
Matzって何ですか
421:デフォルトの名無しさん
09/01/02 21:56:46
YAMLって空の改行入ってても大丈夫?
422:デフォルトの名無しさん
09/01/02 23:24:57
>>416
>load_fileが先頭しか変換しないとかアホじゃねーの?
YAML.load_documents か YAML.load_stream をつかえばいいんじゃないかな。
参考:
URLリンク(jp.rubyist.net)
423:デフォルトの名無しさん
09/01/04 01:41:47
結婚式2週間前、IPA勤務の新郎がつこうた
スレリンク(news板)
仁義なきキンタマ ウイルス情報 Part80
スレリンク(download板:546番)
546 :[名無し]さん(bin+cue).rar :sage :2009/01/04(日) 00:24:59 >>500
報告する時は、詳しく的確に、一部だけ報告しないでお願いね
[殺人] Administrator(20081230-101522)のキンタマ.zip 2,263,376,860 09ed98f10653c3fc2555621ceeed6bc33e8f6228
[殺人] Administrator(20081230-101522)のメール.zip 59,426,579 4da9459b30eec31f58b86530dbb48d1cf86ef4be
[写真集][IV] Administrator(20081230-101522)のアルバム.zip 2,205,946,474 9d87cc0e08dc0e3afd959fcead6c48d569787cee
膨大な量のファイル数キンタマ ファイル数 13508 フォルダ数2381
以前勤めてた会社の資料など多数 独立行政法人情報処理推進機構などの資料など無いと思うが
有るかも知れない、あまりにも数が有り過ぎる、メールなどは、古いものばかりメルマガなど膨大な量
個人情報などは、披露宴主席者などの住所、名前、電話、メール 数十人分しかしエロばっかり落としてるな
ちなみに ハメ撮りscr 踏んだみたいね
早稲田実業学校中等部卒業
早稲田実業学校高等部卒業
早稲田大学政治経済学部政治学科卒業
卒論「知的財産権とインターネット技術」
当時の同大学理工学大学院の大川功 賞佳作を受賞
コンピュータ関連会社に入社ソフトウェア開発の仕事を経て
2005年に独立行政法人情報処理推進機構に入社
ソフトウェア・エンジニアリング・センター企画グループに配属
同グループ主任 岡田さん33歳
2009年1月19日結婚式・・・