5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Rubyについて Part 15

1 :デフォルトの名無しさん:05/02/12 06:58:04
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。

Ruby Home Page
http://www.ruby-lang.org/ja/

= 前スレ
: Rubyについて Part 14
http://pc5.2ch.net/test/read.cgi/tech/1103997158/

2 :デフォルトの名無しさん:05/02/12 06:59:47
= 過去スレ
: むーんうるふ Part13 【Rubyについて】
http://pc5.2ch.net/test/read.cgi/tech/1100533226/
: Rubyについて Part 12
http://fun.kz/test/read.cgi/tech/1100199861/
: Rubyについて Part 11
http://fun.kz/test/read.cgi/tech/1097984684/
: Rubyについて Part 10
http://fun.kz/test/read.cgi/tech/1095004337/
: Rubyについて Part 9
http://fun.kz/test/read.cgi/tech/1087999575/
: Rubyについて Part 8
http://fun.kz/test/read.cgi/tech/1079975637/
: Rubyについて Part 7
http://pc2.2ch.net/test/read.cgi/tech/1074235226/
: Rubyについて Part 6
http://pc2.2ch.net/test/read.cgi/tech/1067623825/
: Rubyについて Part 5
http://pc5.2ch.net/tech/kako/1063/10630/1063028224.html
: Ruby について Part 4
http://pc5.2ch.net/tech/kako/1056/10569/1056944114.html
: Ruby について Part 3
http://pc5.2ch.net/tech/kako/1042/10420/1042004759.html
: Rubyについて Part 2
http://pc3.2ch.net/tech/kako/1028/10289/1028906179.html
: Rubyについて
http://pc3.2ch.net/tech/kako/1012/10120/1012096319.html

3 :デフォルトの名無しさん:05/02/12 07:08:58
= 関連リンク
: ruby-doc
http://www.ruby-doc.org/
: リファレンスマニュアル
http://www.ruby-lang.org/ja/man/
: Ruby hotlinks
http://www.rubyist.net/~kazu/samidare/
: 日本Rubyの会
http://jp.rubyist.net/
: Rubyist Magazine
http://jp.rubyist.net/magazine/
: RCRchive
http://www.rcrchive.net/
: RAA - Ruby Application Archive
http://raa.ruby-lang.org/
: RubyForge
http://rubyforge.org/
: Ruby Garden Wiki
http://www.rubygarden.org/ruby
: Matzにっき
http://www.rubyist.net/~matz/
: Matz 日記(linux.com分室)
http://japan.linux.com/~matz/diary/

4 :デフォルトの名無しさん:05/02/12 07:11:20
= 関連スレ
: Ruby初心者質問スレPart2
http://pc5.2ch.net/test/read.cgi/tech/1107799347/
: 【Ruby】RubyでCGI(WebProg板)
http://pc5.2ch.net/test/read.cgi/php/988948655/
: 【最高言語】 Rubyist Magazine創刊 【ルビま!】
http://pc5.2ch.net/test/read.cgi/tech/1094825807/
: Python厨とRuby厨が仲直りするスレッド
http://pc5.2ch.net/test/read.cgi/tech/1099804004/
: Jython、Groovy、JRuby - どれが一番効率的?
http://pc5.2ch.net/test/read.cgi/tech/1100563765/
: 【因縁の】DelphiVSHSPVSRuby【対決】
http://pc5.2ch.net/test/read.cgi/tech/1101498622/

5 :1:05/02/12 07:17:06
他、テンプレに追加するべきURLはありますか?

6 :デフォルトの名無しさん:05/02/12 07:25:18
乙です。

7 :デフォルトの名無しさん:05/02/12 08:44:23
http://www.moonwolf.org/

8 :デフォルトの名無しさん:05/02/12 09:34:31
おつかれーしょん

9 :デフォルトの名無しさん:05/02/12 09:58:09
>>5
=関連リンク
Ruby のバグ(勝手に)トラッカー
http://mput.dip.jp/rubybugs/

=関連スレ
RUBYの宿題教えてください。
http://pc5.2ch.net/test/read.cgi/tech/1106572657/

10 :デフォルトの名無しさん:05/02/12 10:02:23
(>>9の続き)
=Windows版バイナリ
: One-Click Ruby Installer
http://rubyinstaller.rubyforge.org/wiki/wiki.pl
: cygwin, djgpp, mingw
http://ftp.ruby-lang.org/pub/ruby/binaries/
: Ruby-mswin32 (ja)
http://www.garbagecollect.jp/ruby/mswin32/ja/
: ActiveScriptRuby
http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/

#今「Microsoft Windows版のビルト環境による違い」を見に行ったら全文削除されていた…
http://www.ruby-lang.org/ja/install.cgi?cmd=view;name=Microsoft+Windows%C8%C7%A4%CE%A5%D3%A5%EB%A5%C8%B4%C4%B6%AD%A4%CB%A4%E8%A4%EB%B0%E3%A4%A4


11 :デフォルトの名無しさん:05/02/12 10:05:31
で前スレからの続きで、「Ruby関連(の書籍)はやはり一時期の乱発&共倒れのせいで
すっかり各出版社の扱いが冷えきってしまっている」(by ムトゥ神)件について。

12 :デフォルトの名無しさん:05/02/12 10:09:26
むーん氏をいれろよ。おつ

13 :デフォルトの名無しさん:05/02/12 10:23:59
スレ立て乙。あのまま1000越えするんじゃないかと思ったよ。

>>11
実務で使われそうに無い言語の解説書だから、出版社サイドも、けっきょくオタクの余暇を紛らわせる程度の暇つぶし本扱いしかしなかったんだろうな...。
んで、イカもの扱いがヒートアップした、と。

14 :デフォルトの名無しさん:05/02/12 10:31:45
でも別にいらないんじゃないかと。本は。
どっちかというとウェブ上のリファレンスが
充実していけば充分だろう。
(公式じゃなくても構わない)
ttp://www1.tf.chiba-u.jp/~shin/tutorial/とかもあるけど。

あとは、フリーで配布されるCGIを需要を無視して過剰供給して、
さも「RubyでCGIはナウい、つーか当たり前な」感じを醸し出す。
女子が食いつくキャッチーなビジュアルは大事ですぞ。

15 :デフォルトの名無しさん:05/02/12 10:33:06
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40616
白井さん、おつかれさまです!

16 :デフォルトの名無しさん:05/02/12 10:34:00
このスレみている女子、いらっしゃいましたら挙手願います。

17 :デフォルトの名無しさん:05/02/12 11:13:28
日経BPが夢想本をだして一人前

18 :デフォルトの名無しさん:05/02/12 11:15:12
  / ̄ ̄ ̄ ̄\
  | ┌──┐ |
  | ┝┛┗┥ |
  |  |(・)..(・) |  |
  |  | =   = |  |
  /  |ヽ、3 ノ  |
  |  | | ̄ ̄| i |
 ノ(⌒| ノV~V| |⌒)
 | |^|| | ノ◎i | ||^|
 | | .|| |ノ ◎ i| || .|
┌┤├┐.∧ | || |
└┴┴┘ノ i | |〇、
 | λ Vノ ∧iVノ |
ノ ノ | ノ ノ i i‘  |
X .LL...L....LL......l
    | | | |
  (⌒  )( ⌒)
     ̄ ̄  ̄ ̄
参考
ttp://www3.nhk.or.jp/anime/ojaru/charactor/chara/usui.html

19 :デフォルトの名無しさん:05/02/12 11:21:35
amritaで、<dl><dt><dd>の繰り返しってどうやるの?
<dl>
<dt id="text">foo</dt>
<dd id="desc">bar</dd>
</dl>
これで<dt>と<dd>だけ繰り返したい。ダミータグでも使うのかな。

20 :デフォルトの名無しさん:05/02/12 12:00:52
じゃあruby書籍でおすすめはどれ?

21 :デフォルトの名無しさん:05/02/12 12:03:54
ピカチュウ本と抹茶本
どっちも外人orz

22 :デフォルトの名無しさん:05/02/12 12:19:59
話を突きつめていくと出版業界の体質の問題に帰結しそうな悪寒

23 :デフォルトの名無しさん:05/02/12 12:55:03
こんなページ作りました。
http://ruby-lang.org/ja/man/?cmd=view;name=%BB%B2%B9%CD%CA%B8%B8%A5%A1%A6%A5%B5%A5%A4%A5%C8

追加ヨロ

24 :デフォルトの名無しさん:05/02/12 14:11:11
>19
ダミータグだろうねぇ
テンプレートがHTMLに準拠しなくなるけど。

25 :デフォルトの名無しさん:05/02/12 14:36:50
>>19
<dl id="list">
<dt id="text">foo</dt>
<dd id="desc">bar</dd>
</dl>

として、

model[:list] = []
model[:list] << {:text=>'foo', :desk=>'bar'}
model[:list] << {:text=>'foo', :desk=>'bar'}...

とするのが正解。

26 :デフォルトの名無しさん:05/02/12 14:39:40
>>20
オブジェクト指向言語Ruby
たのしいRuby
Rubyソースコード完全解説
ぐらいかなぁ。安心して勧められるのは。

27 :928:05/02/12 15:12:31
>26
ウソツクナ
よりによって「オブジェクト指向言語Ruby 」かよ……

28 :デフォルトの名無しさん:05/02/12 15:17:34
>25
<dl> <dt>foo1</dt><dd>bar1</dd> </dl>
<dl> <dt>foo2</dt><dd>bar2</dd> </dl>
となりますな……

29 :デフォルトの名無しさん:05/02/12 15:41:17
>>26
RHGはrubyの本じゃないよ。Cとかインタプリタの本じゃん
おすすめは256本の極道編と言ってみるテスト(XPだけに)

30 :前スレ928:05/02/12 15:55:24
>19
そう言えばそんなのもあったなぁ
オレテンプレートでもWeb::Templateみたいに
独自マークアップを使えるようにしとくかな

31 :デフォルトの名無しさん:05/02/12 16:45:47
>>30
それでそのオレテンプレートはいつ公開されるんですか


32 :デフォルトの名無しさん:05/02/12 17:57:07
IPAや地元ではIT活性化の振りをして素人にLinux/Ruby使わせたり、推進のポーズ。
しかし本音はわかるやつだけ使えればいいような発言。
その辺りが出版にも現れてるのかも

33 :デフォルトの名無しさん:05/02/12 18:11:52
>>31
名前欄 (の元レス) にばっちり書かれてるような気がするのは俺の気のせいか?

34 :前928:05/02/12 20:57:49
>31
ああ、ごめん。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/sikiwiki/siki/lib/RAA/xml/siki-template.rb?rev=HEAD&content-type=text/vnd.viewcvs-markup
http://www.fiercewinds.net/siki/cgi/index.cgi?Command=Show;Target=%2FRuby%2FApplication%2FSikiTemplate%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AB%E3%82%88%E3%82%8B%E8%A7%A3%E8%AA%AC
興味あったらコメントちょうだい
独自マークアップ実装しました。

35 :デフォルトの名無しさん:05/02/12 21:31:24
>>34
thx。すでに公開してたのね

>>33
そんなとこみてなかったよ ヽ(`Д´)ノウワーン

36 :デフォルトの名無しさん:05/02/12 21:58:35
>>32
属性値の命名規則がややこしくて書く気がおこりません…

37 :36:05/02/12 21:59:22
>>34 の間違い
siki-templateへのコメントです。

38 :デフォルトの名無しさん:05/02/12 22:05:33
>>29
いや、RHGはRubyの本としてこれ以上のものは無いくらい良い本だよ。


39 :前928:05/02/12 22:28:29
>36
確かになぁ。ただAmritaでサポートしていない
・XHTML、XMLに準拠(id属性以外を使用して指定できる)
・デフォルト値を指定できる
・要素と属性を等価に処理する
・テンプレートからのフィルター処理指定をサポート
 :
 :
とか高度化してったら、あんな風になっちゃった。

……まあ、あれでも「良くあのルールであの機能を押し込めたなぁ」と
自分で感心しているぐらいだしね……

でも、簡単に使うのなら、
・要素を変更するときは、適当な属性の値を“$(Rubyで指定するラベル)”にする
・属性を変更するときは、その属性の値を“@(Rubyで指定するラベル)”にする
・それ以外はオマケ
ぐらいで大丈夫だよ。

40 :デフォルトの名無しさん:05/02/12 23:09:19
>>39
Amritaでも
テンプレート内のマーキングを"id"以外に変更することは可能
Amrita alteredなら
要素と属性を等価に処理することも可能


41 :デフォルトの名無しさん:05/02/12 23:13:23
>>38
いいというか、定数のスコープの話とかちゃんと書いてあるのって RHG くら
いな気がするね。特異メソッドとか特異クラスの話もそう。
でも Ruby の本として、というとちょっと違うよな。やっぱり C についての本だと思う。

42 :前928:05/02/12 23:28:56
>40
へぇ、どうやるの?……というか、ドキュメントどこよ……
http://amrita.sourceforge.jp/docs/Tour.ja.html
には大したこと書いていないし。

Amrita alteredはここですな。
http://www.nslabs.jp/amrita-altered.rhtml


43 :デフォルトの名無しさん:05/02/13 00:48:51
>>42
amrita_id

44 :前928:05/02/13 01:25:50
>43
なんだ……テンプレートごとに1つだけか……
class, title属性で指定できるのは進歩だけど、痛し痒しだなぁ

45 :デフォルトの名無しさん:05/02/13 02:04:53
>>44
テンプレートに複数指定できてなにかメリットがあるの?
そもそも、classやtitleとか正規な属性を使っちゃうのはまずいと思うんだが

46 :前928:05/02/13 02:42:26
>45
>テンプレートに複数指定できてなにかメリットがあるの?

全てのタグで(必要に応じて)デフォルト値を設定できる、とかかな。
あと、(validにこだわるなら)要素の種類によって使える属性が違うから、
複数指定できると柔軟性が上がるよね。
#まあ、class, title, idあたりなら、ほとんど全ての要素にあるけどね……


>そもそも、classやtitleとか正規な属性を使っちゃうのはまずいと思うんだが

まあねぇ。

ただ、テンプレートをvalidなものにすることにこだわるなら、これぐらいしか使えないのよ。
#classはelementの属するクラスを、titleはelementの付加情報を示すための
#ものだから、idよりはまだ安全に使えるよね。

47 :デフォルトの名無しさん:05/02/13 05:35:45
>>34
リンク先より。

> <span class="$$@title@$id" />
> <span class="$$title@title" />
> <title id="test_title" class="test_title"></title>

これがよくわからん。
#技術的じゃなくマーケティング的な意見ですまんが、
#紹介ページに載せる例は、もっとわかりやすいものにしたほうがいいぞ。
#じゃないと、これをみただけだと使う気をなくす。


> t = Template.new("オレは<span id="@type">リンゴ</span>が食べたい" )
> t.parse({ :target => 'food' })
> # => "オレは<span id="food">リンゴ</span>が食べたい"

@typeと:targetがどうつながるのかわからん。:typeの間違い?


48 :デフォルトの名無しさん:05/02/13 07:55:29
なんだよー、おもしろいネタやってるじゃんか。

>>45
> そもそも、classやtitleとか正規な属性を使っちゃうのはまずいと思うんだが

しょうがねーだろ、HTMLじゃあ「ツールが自由に使ってよい属性」がないんだから。
XHTMLが普及してnamespace使えるようになるまでは、idとかclassとか使ってしのぐしかないんだよ。
しかも使いたい属性が人によってidだったりclassだったり独自の属性だったりするんだから、
「ツールが解釈する属性名」を指定できるのはいいことだろ。

>>46
> #まあ、class, title, idあたりなら、ほとんど全ての要素にあるけどね……

あとはstyleな。styleにCSSではない記述をするとブラウザでは単に無視されるだけだから、デザイン上問題なく使える。
あとは「CSSの設定をぜんぶclass属性とタグ名とCSSファイルで設定する」ということに、デザイナーが納得してくれるかどうか。

でもtitleという技があったのな。参考になった。さんくす。


49 :45:05/02/13 08:58:40
>>48
>HTMLじゃあ「ツールが自由に使ってよい属性」がない
んなら、テンプレート用のマーカーなんて埋める時点で、
validなHTMLではないか、validであっても変なHTMLにはなっちゃうわけだろ?
じゃあ、どのへんに落としどころを作るのが現実的なのか、ってのが気になってる。

ひとつの現実的な基準はブラウザで正常に表示されるかどうかだと思うんだが、、
適当にくっつけた変な属性(例えばhogeとか)がはいってるだけで、変になっちゃうもん?
idやらclassやらに記述するほうがよほどまずいことが起こりそう。
styleだと、まずい処理は起こらなくてもstyle属性を使えなくなるデメリット結構でかいでしょ。
HTML規格外の適当な属性値でっちあげて一つ決め打つほうがすっきりしそーなもんだけど。

で、そーゆーこと考えてると、>>46
>あと、(validにこだわるなら)要素の種類によって使える属性が違うから、
>複数指定できると柔軟性が上がるよね。
の柔軟性ってほんとに使いどころあんのか?という疑問もわくんだよね。

ブラウザの挙動とかオーサリングツールの挙動とかに詳しくないんで、
おかしなこと言ってるかもしれんが、どうよ?

50 :デフォルトの名無しさん:05/02/13 10:29:55
自然言語処理系の海外の学会に参加した時に、スペイン人と、ドイツ人から
Rubyを薦められました。わたしはOSX10.3.7ユーザーですが、最初からRuby
がインストールされているのにも、驚きました。

初歩的な質問で恐縮ですが、Rubyの言語自体を開発、保守している中心的な
メンバーは、何人程度なのでしょうか? 中心となるような研究機関などはご
ざいますか?

51 :デフォルトの名無しさん:05/02/13 10:49:41
研究機関で開発、保守される実用的な言語ってどんな言語があるの?


52 :デフォルトの名無しさん:05/02/13 11:12:04
ruby-list に投げようかと思ったけど、微妙に場違いな気がしたからやっぱりやめた。

Just Another RD Site http://www2.pos.to/~tosh/ruby/rdtool/ja/ って今でも管理されてるの?
"rd ruby" で検索すると google で先頭に出てくるんだけど、
リンク切れだらけでどうなっているのか分からない。

53 :デフォルトの名無しさん:05/02/13 12:48:42
へーirbに
irb(main)000:0> help :inject
なんてのがあるのか、便利になったものだなあ〜と思ってやってみたら、
それ以降のエコーバックが消えちゃうんですが、どうすりゃいいんだろ。
rdoc/ri/rI_display.rbがpopenとreopenで端末制御やってんのはわかるけど、そのへん詳しく知らないんだよね。
誰かわかる人いる?



54 :前928:05/02/13 13:07:42
>47
>これがよくわからん。

確かに……これはわからんな……ちょっとバラして&コメント入れて書くと、
<span class="$$@title@$id" /> #弟タグのid属性にtitleというキーを指定
<span class="$$title" />     #弟タグの要素にtitleというキーを指定
<span class="$$@title" />    #弟タグのclass属性にtitleというキーを指定
<title id="test_title" class="test_title"></title>

ということです。
#いいかげん推敲しないとなぁ

>@typeと:targetがどうつながるのかわからん。:typeの間違い?
間違いです。修正しました。



55 :デフォルトの名無しさん:05/02/13 13:25:27
                |
                |>>50
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'

56 :デフォルトの名無しさん:05/02/13 13:29:53
>>51
OCamlとか言ってみるテスト(実用的かなぁ)。

57 :デフォルトの名無しさん:05/02/13 13:38:36
sikiって、AmritaのAmrita::ExpandByMemberみたいに
Hashじゃないオブジェクトをモデルデータにすることはできるの?

58 :前928:05/02/13 13:40:31
>48
そういやXHTMLだとnamespaceが使えるね。
XHTML前提にしているならnamespace使えばいいのか
……DTDが使いものにならなくなるけど

>49
落としどころは難しいよね。

結局、デザイナーの使うブラウザとかオーサリングツールによって
決まってくる話で、ライブラリ実装者(プログラマ)が決めることは
できないんだよね。
ある程度妥協せざるをえないけど、できるだけ決定する自由を
デザイナーに残しとかないとね。

ちなみにSikiTemplateでは独自タグを実装して
[[[{{{ class="$$@title@$id" /}}}]]]
[[[{{{ class="$$title" /}}}]]]
[[[{{{ class="$$@title" /}}}]]]
  #^スペース重要
<title id="test_title" class="test_title"></title>

とすりゃ良くなったので、どうでも良くなったけどね。




59 :前928:05/02/13 13:58:52
>57
Template.use_execute = true
とすることで、Executeというクラスデータを使えるようになります。
ただ、セキュリティの問題があるので、
・モデルデータでは、Hashで明示的に指定する必要がある
・テンプレートでは、「キー.コマンド」というように指定する必要がある
というふうにAmritaよりも制限が強いです。



60 :デフォルトの名無しさん:05/02/13 14:33:13
>>50

1. http://www.ruby-lang.org/
2. ruby-dev にはいる
3. 同じ質問を投げる


61 :48:05/02/13 15:59:56
>>49
> んなら、テンプレート用のマーカーなんて埋める時点で、
> validなHTMLではないか、validであっても変なHTMLにはなっちゃうわけだろ?

だからamritaが人気なんだろ。

> 適当にくっつけた変な属性(例えばhogeとか)がはいってるだけで、変になっちゃうもん?
> idやらclassやらに記述するほうがよほどまずいことが起こりそう。

だからid属性だけですむamritaが人気なんだろ。あとはHTMLコメントを使う方式かどっちか。

> HTML規格外の適当な属性値でっちあげて一つ決め打つほうがすっきりしそーなもんだけど。

それはプログラマーの都合をデザイナーに押し付けてるだけ。
自分でプログラムもHTMLも両方書くなら、規格外の属性つかおうが何しようがだれも文句いわねーよ。
でもそんなものを使うとブーたれるやつらと一緒だから困ってんじゃねーか。

規格外の適当な属性をでっちあげてDWとかGLが使えなくなると、大変問題なの。
Java使いからEclipse取り上げるようなもん。

> の柔軟性ってほんとに使いどころあんのか?という疑問もわくんだよね。

自分が使わん機能をとやかくいうな。
独自属性つかうくらいならidやclassやstyleを選ぶ人間もいるんだよ。
そんなときは属性名を切り替える機能は必要。

> ブラウザの挙動とかオーサリングツールの挙動とかに詳しくないんで、
> おかしなこと言ってるかもしれんが、どうよ?

おかしいとはいわんが、考察が浅い。
つーかそんなにいうなら、デザイナーが文句たれないすばらしいテンプレートエンジンをおまえがつくってくれ。


62 :デフォルトの名無しさん:05/02/13 17:22:45
中心的なメンバーというか、ChangeLog を書いた回数が多い人のリストを
どっかの日記で見たんだけど、どこだったっけ?

リストが見たきゃ
$ ruby -e 'ARGF.inject(Hash.new(0)){|r,j| r[$1]+=1 if j.match(/\A\w.*<(.*@.*)>/); r}.collect{|a| a.reverse}.sort.each{|a| puts a.join("\t")}' ChangeLog doc/ChangeLog-1.8.0
とでもすればすむんだけど。


63 :デフォルトの名無しさん:05/02/13 19:12:18
>>62
日記つうか matz 氏が ruby-dev に。

64 :45:05/02/13 19:14:34
>>61
>>規格外の適当な属性をでっちあげてDWとかGLが使えなくなると、大変問題なの。
そういうオーサリングツールやブラウザの挙動に詳しくないので、
なにをするとどう使えなくなるのか具体的なところが知りたい。
デザイナーがどこに文句いうか、でもいいや。

つまり正規属性をテンプレートにつかって変な文字列つっこんじゃうのと、
hoge属性をテンプレートに使うのと、どちらのほうがオーサリングツールに優しいのか。

あ、そんなのオーサリングツール依存なんだから、選択肢ふやしとけよってだけの話?
だれもそのへん真面目に検証してないの?
深い考察をキボンヌ

65 :63:05/02/13 19:31:34
>>62
これね。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/25627

66 :デフォルトの名無しさん:05/02/13 19:52:22
>>64
HTMLの仕様書よめ。それにはんするものはエラーがでる。それだけだ。
・id属性やclass属性に「@」とか記号いれる → エラー
・style属性に記号 → セーフ
・独自属性→とうぜんエラー
・独自タグ→とうぜんエラー

ただしDWはPHPやJSPに対応しているので、そのモードでやれば<?php ... ?>や${...}がエラーにならん。くやしい。
つか、DWの体験版ダウンロードして自分で検証しろ。

67 :デフォルトの名無しさん:05/02/13 19:59:48
>>66
> ・独自属性→とうぜんエラー
> ・独自タグ→とうぜんエラー
このへんは単に無視されるってのは最近のHTMLでは成り立たなくなったの?


68 :デフォルトの名無しさん:05/02/13 20:07:58
DW って何?オーサリングツールのことを DW っていうの?

69 :前928:05/02/13 20:25:12
>66
class属性はCDATAじゃなかったっけ?
id属性は確かに記号が使えないな……
http://www.w3.org/TR/html401/index/attributes.html


70 :デフォルトの名無しさん:05/02/13 22:13:58
>>67
そりゃブラウザのはなしだろ。デザインツールは違うわい。

71 :デフォルトの名無しさん:05/02/13 22:37:59
つまりホームページビルダーとかでテンプレート作るってことだよね。

学生で趣味プログラマの僕から見ると、なんかすごく不安。

72 :デフォルトの名無しさん:05/02/13 22:50:11
ナニが不安やねん。

73 :デフォルトの名無しさん:05/02/13 23:04:31
予想外のテンプレートとか与えられそうで。
テキストレベルで予想できないというか。

74 :前928:05/02/13 23:07:30
>61
>あとはHTMLコメントを使う方式かどっちか。

それいいね。
[[[{{{タグ}}}]]]だけじゃなくて<!--[[[{{{タグ}}}]]]-->にも対応するようにしました。

75 :デフォルトの名無しさん:05/02/13 23:59:27
>>68
Macromedia Dreamweaverのことかな?

76 :デフォルトの名無しさん:05/02/14 00:00:10
質問です。
vmware で socket 関数が使えないことって
ありますか?
エラーメッセージが
`initialize': getaddrinfo: Name or service not known (SocketError)
と出ます。

77 :デフォルトの名無しさん:05/02/14 00:01:44
あとGLというのはAdobe GoLiveのことだと思ふ。

78 :デフォルトの名無しさん:05/02/14 01:16:57
>>76
ゲストOSが何かしらんが、うちのFreeBSD5.3-STABLEでは使えてるよ。

79 :デフォルトの名無しさん:05/02/14 01:20:24
WEBrickすげーな。なんかasahi-netが規制受けてるんで、
シェルアカウント持ってる別のところにこいつでproxy作ってやったらすぐに動いた。
こんなに簡単にできちゃうのね。

うちのIPからしかリクエスト受け付けないからopen proxyでもないし、便利便利。

80 :デフォルトの名無しさん:05/02/14 01:25:07
>>79
スクリプト希望

81 :デフォルトの名無しさん:05/02/14 02:14:39
>>80
殆どるびまに載ったまんまなんだけど、IP見て例外を上げるようにしたのと、
proxy特有のヘッダを出さないようにしたところが違うくらい。
こんなもん。すげー簡単。

CLIENT_HOST='your.ip.address.here'

auth_proc = Proc.new do |req, res|
raise WEBrick::HTTPStatus::Unauthorized unless req.peeraddr.include?(CLIENT_HOST)
end

s = WEBrick::HTTPProxyServer.new({
:Port => 8080,
:ProxyAuthProc => auth_proc,
:ProxyVia => false
})
Signal.trap('INT') do
s.shutdown
end

s.start


82 :デフォルトの名無しさん:05/02/14 03:43:14
へー。簡単なんだね。
さんくす。

83 :デフォルトの名無しさん:05/02/14 06:31:13
setup.rb で、インストール時にシンボリックリンクをはることはできますか。
つまり、
/usr/bin/foo_1.2.3
/usr/bin/foo -> foo_1.2.3
みたいなこと。
setup.rbに手をいれないとだめ?

84 :デフォルトの名無しさん:05/02/14 17:42:30
Amritaのドキュメントの無さはどうにかしてほしい。
というかリファレンスマニュアルが欲しい。切実に。
未知のメソッドがあまりにも多すぎる。

過去にリファレンスがあったような形跡はあるのに……

85 :デフォルトの名無しさん:05/02/14 18:18:38
まずRDoc使うところから。

86 :デフォルトの名無しさん:05/02/14 20:19:38
Kwartz はどうですか
個人的にはプレゼンテーションロジックが独自言語じゃなかったら理想に近い気がする

独自言語で萎えるんでオレは試してないが、試した人いる?


87 :84:05/02/14 23:55:44
>>85
もちろん使ってはみたが、せいぜいメソッドの一覧止まり。
解説が少なすぎて、クラスやメソッドの把握にはほとんど役に立たなかった(安定版で確認)。

もしかして「ソースがドキュメントだ。バグも完全に記述されている」の体現なのか

>>86
ロジックが(見た目)CSSっぽいな。
ちょっと興味がわいたので、これから試してみます。

88 :76:05/02/15 00:55:09
>>78
redhat9 です。

89 :デフォルトの名無しさん:05/02/15 01:35:08
>86
「オレはRubyで加工したいんだ!!」とか言いたくなるよね……

Kwartzのどのへんが気に入った?

90 :デフォルトの名無しさん:05/02/15 01:43:40
>>88
何動かしてる?ソース晒したら?

とりあえず考えついた可能性を確率高そうな順に並べると、
1. スクリプトに問題がある
2. VMWareかゲストOSの設定に問題がある
3. rubyのSocketライブラリがバグってる
4. ruby本体がバグってる
5. VMWareかゲストOSがバグってる

少なくともVMWareであるがゆえにrubyが動かないってことは
あんまないんじゃないかな。

91 :デフォルトの名無しさん:05/02/15 04:44:48
Mac OS XのRubyが1.6.8から1.8に上がるのって、やっぱりTigerからなんだろうか。
まあソースから入れりゃいいんだけど。


92 :デフォルトの名無しさん:05/02/15 05:59:57
ウワァァ━━━━━。゚(゚´Д`゚)゚。━━━━━ン!!!!
http://www.itmedia.co.jp/enterprise/articles/0502/14/news016.html
Rubyの名前がないよぉう

93 :デフォルトの名無しさん:05/02/15 06:10:54
>>86
正直すまんかった。
独自言語やめてJavaScriptライクな文法にしたバージョンを、ちょうどきのうリリースした。
つーか、タイミングよすぎる。ジサクジエンかと思った。

>>89
プレゼンテーションロジックをRubyで書けるバージョンも作っていたが、ポリシーにあわんと判断してやめた。

> Kwartzのどのへんが気に入った?
そりゃこっちがききたい質問じゃ。

>>91
Finkとかのパッケージなら、すでに1.8はあったと思う。


94 :デフォルトの名無しさん:05/02/15 06:15:48
>>91
これだ
http://fink.sourceforge.net/pdb/package.php/ruby
ほかのパッケージはしらん。

そういや、MacOS Xはgccが入っていなくて、DeveloperKitをいれないとだめなんだっけ。
じゃあ一般人に「ソースからコンパイルしろ」とはいいにくいな。

95 :デフォルトの名無しさん:05/02/15 08:48:05
>>94
> そういや、MacOS Xはgccが入っていなくて、DeveloperKitをいれないとだめなんだっけ。
インストーラがハードディスクに入ってるし、パッケージ版OSの
CDにも収録されているから、ダブルクリック一発で入りますよ。


96 :デフォルトの名無しさん:05/02/15 12:38:08
一般人のレベルに対する意識の相違だな

97 :86:05/02/15 14:28:37
>>93
なんてタイミングだ!

98 :デフォルトの名無しさん:05/02/15 15:08:40
>>96
コンパイルといってもキーボード打つだけじゃん。
打たなくても展開先に移動してから./configure && make && make installをコピペしてくれでもいいし。
別にソース読めと言っているわけじゃなし。
まあインストーラがあるに越したことはない気はするが。

でもインストーラがあってもDLLのバージョンせいで動かないとか辛すぎ。
MinGWのデフォルトランタイムライブラリがmsvcr71になれば直るが、今のone-click installerと
ebanさんとこの拡張ライブラリに互換性がないのはちょっと気が遠くなるな。


99 :デフォルトの名無しさん:05/02/15 16:56:45
一般人のレベルに対する意識の相違だな

100 :デフォルトの名無しさん:05/02/15 17:23:14
なんだRubyってDLLHell問題抱えてるのかウンコだな

101 :デフォルトの名無しさん:05/02/15 18:03:08
それっていわゆるDLLHell問題とは別物のような。

102 :デフォルトの名無しさん:05/02/15 18:25:09
単に憶えたての単語「DLLHell問題」を使いたかっただけでしょ。

103 :デフォルトの名無しさん:05/02/15 18:37:42
>>99
甘やかしすぎだ。

だいたいconfigure && make installも出来ないのにone-click installerでRubyをインストールしたところで
Ruby製のアプリケーションを使えるとは全く思えないのだが。


104 :デフォルトの名無しさん:05/02/15 18:40:53
なんだまたbot厨か

105 :86:05/02/15 21:09:58
>>93
> 独自言語やめてJavaScriptライクな文法にしたバージョンを、ちょうどきのうリリースした。
> つーか、タイミングよすぎる。ジサクジエンかと思った。

いや新しいバージョンが RAA に登録されてたので見に行って、独自言語か〜と思った。
最近ここでテンプレートライブラリが話題になってたしね。

以前のバージョンでも良さそうだけど独自言語が・・・と思った記憶はある。
新しいバージョンは、いわれてみれば確かに Javascript ライクだけど、どうせなら Ruby で完結して欲しい。


> >>89
> プレゼンテーションロジックをRubyで書けるバージョンも作っていたが、ポリシーにあわんと判断してやめた。
>
> > Kwartzのどのへんが気に入った?
> そりゃこっちがききたい質問じゃ。

RubyでWebアプリを書いてる視点から見て Kwartz の良さそうなところは、テンプレートが eruby 形式に展開されるので
それなりの速度が期待できるところとか、ドキュメントが整備されているところとか、テンプレートとプレゼンテーションロジック
を容易に分けれるところとかかなあ。


106 :86:05/02/15 21:10:21
つづき。

テンプレートとプレゼンテーションロジックの分離は意識すれば自分でできるけど、あらかじめその仕組みが
用意されているのは嬉しい。Presentation Pattern Catalog なんかがまとめられているのも素晴らしい。まあ、
コンテキストとか適用範囲とかの説明がないのでパターンというよりイディオムっぽい気もするが。

プレゼンテーションロジックを独自言語でやってるのは、いくつかの点でメリットがあるのは確かだと思う。
でも、Ruby で Web アプリを作っていて、Java や PHP を使う予定のない俺からすれば、独自言語を使う
のは余計なコストでしかない。いや、独自言語といっても十分すぎるほど簡単だけど、頭のモードを切り替え
ないといけないからね・・・
コロンとかつけ忘れそうだし。

Java とか PHP で Web アプリを作る人も同じように感じるんじゃないかな。


107 :デフォルトの名無しさん:05/02/15 22:33:54
>86
俺は独自言語でもいいと思っているけど。
テンプレートに特化してるなら覚えなければならないことはたかが知れてるし。
それにKwarzの場合はJava版やPHP版もあるから、独自言語にしておけば例えば
PHPからJavaに乗り換えるなんて場合にコストがかからなくて済むでしょ。

話は変わるけどRubyist Magazine 0005号出てるね。

108 :デフォルトの名無しさん:05/02/15 22:50:20
* 巻頭言
* Rubyist Hotlinks 第 5 回 増井俊之さん
* Ruby ではじめるプログラミング 第 4 回
* Rubyist が知りたいかもしれない RGSS の世界
* CGIKit、TapKit を利用した Web アプリケーションの作成
* 続・RubyOnRails を使ってみる
* Ruby Library Report 第 4 回 win32utils 日本語版 (英語版)
* lily でブログカスタマイズ 第 3 回
* Win32OLE 活用法 第 3 回
* RubyNews
* RubyEventCheck
* 編集後記

109 :デフォルトの名無しさん:05/02/15 23:05:29
増井さんのインタビュー記事中にakrさんが出ている件について

110 :86:05/02/15 23:27:46
>>107
> それにKwarzの場合はJava版やPHP版もあるから、独自言語にしておけば例えば
> PHPからJavaに乗り換えるなんて場合にコストがかからなくて済むでしょ。

そういったメリットがあることは確かだし、それを否定するつもりはないよ。
ただ、その乗り換えがどの程度発生するのかかなり疑問でもある。

独自言語のほかに、Ruby や Java や PHP でプレゼンテーションロジックが
書けるといいんだけど。そうすれば、1つの言語で閉じたいやつはその言語
を使えばいいし、将来の乗換えを気にするやつは独自言語を使えばいい。

たとえば、Ruby でプロトタイピングして、製品は Java で作る場合とかなら
独自言語は嬉しいかもしれない。でも、それ以外なら YAGNI ってこと


111 :デフォルトの名無しさん:05/02/15 23:56:11
>>91
[ruby-list:40616]

112 :前928:05/02/16 00:42:53
>107, 110
XSLTチックなのはどうなのかな……
まあ、イビツだと思うけどね。


113 :デフォルトの名無しさん:05/02/16 00:45:24
>>109
出てこない方が気味が悪い気がするけど?

114 :前928:05/02/16 01:06:33
そういえば、Kwartzってこういうイメージでいいのかな?

Kwartz
−デザイン−− |−−ロジック−−|−−データ
プレゼンデータ |プレゼンロジック |  コード

プログラム側にデータしか任せないのは珍しいよね。



115 :デフォルトの名無しさん:05/02/16 01:13:04
nilぽ

116 :デフォルトの名無しさん:05/02/16 01:28:15
>>109
拝見しましたがMWさんのインパクトには到底敵いませんな。

117 :前928:05/02/16 01:38:12
Kwartzがらみでもうひとつ。
プレゼンロジックとデータが(テンプレートの仕組みとして)
分離しているのって便利だと思う? > ALL

SikiWikiでも仕組みを用意しようかねぇ……


118 :デフォルトの名無しさん:05/02/16 02:37:47
http://www.mnet.ne.jp/~tnomura/algorithm.html
Ruby でアルゴリズム

119 :デフォルトの名無しさん:05/02/16 07:05:07
>>105
なんだ、内部関係者かと思ったのだが違うようだな。

> 独自言語を使うのは余計なコストでしかない。
> いや、独自言語といっても十分すぎるほど簡単だけど、頭のモードを切り替えないといけないからね・・・

おまえはRDBを使うか?もし使うなら、SQLを使うだろ。あれこそ本当に頭のモードを切り替えなきゃいけないぐらい
まったく違う言語だ。あれを使いこなせるなら、プレゼンテーションロジックが独自言語でも問題なく使えるはず。

SQLの宣伝文句のひとつに、「プログラミング言語が変わってもデータにアクセスする部分は変える必要がない」
というのがある。しかしこれは逆にインピーダンスミスマッチを引き起こしている原因でもあり、OODB主義者が
批判するネタでもある。OODBならメインプログラムで使っている言語でデータアクセスとデータの保存ができるからね。

86がRDBを使わずOODBのみを使うのであれば、86の主張はよくわかる。おまえは正しい。
しかしRDBを使ってSQLを書いているのであれば、プレゼンテーション層でだけ独自言語を否定するのはおかしい。
独自言語なら「プログラミング言語が変わってもプレゼンテーション層は変える必要がない」からな。


>>106
> Java とか PHP で Web アプリを作る人も同じように感じるんじゃないかな。

そうでもない。JavaでもVelocityやJSTLがあるが、あれだって十分な独自言語だ。
PHPでもSmartyが使われるが、それも独自言語だ。
独自言語でも、メジャーになれば使われる。Kwartzはマイナーだから使われない。それだけだ。


120 :デフォルトの名無しさん:05/02/16 07:15:50
つづき:

それからJavaScriptじゃなくてRubyやPHPで書きたいというのは、プログラマーの発想。
でもKwartzが目指しているのはデザイナーにとって使いやすいテンプレートシステム。
デザイナーからしてみれば、RubyやPHPで書くのはたいへん苦痛なんだよ。100歩譲ってJavaScript。
Ruby使いがRuby以外で書くのを嫌がるように、デザイナーも自分が知ってる言語以外で書くのは嫌なの。

またプログラマーはたいてい1つか2つの言語を知っていれば間に合うし、ほかの言語の仕事なら断るだろうが、
デザイナーはそうもいかず、PHPを使うプロジェクトならPHPを使わなくちゃいけないし、
Javaを使うプロジェクトならVelocityやJSP、最近ならStrutsのカスタムタグを覚えなくちゃいけない。

これってバカバカしくないか?なんでプログラマーの都合にデザイナーが合わせなきゃいけないんだよ。
amritaのように素のHTMLが使えるテンプレートシステムを使ってくれりゃいいのに、プログラマーの都合で
やれ<?php ... ?>を埋め込んでくれだとか、やれ#foreach()を使ってくれだとか、そんなのばっか。
しかもそれがプロジェクトごとにバラバラで、せっかく使い方を覚えたころにはもう終わり、
別のプロジェクトが始まればまた新しいやり方を押し付けられる。んなもんやっとれるかい。

そんなプログラマーの都合を押し付けるようなことはやめて、プログラマーとデザイナーとが
ほんとうに気持ちよく共同作業できるような仕組みが必要なはずなんだよ。
そしてそのためには、プログラマーがちょっとだけ歩み寄ってJavaScriptなり独自言語を受け入れるだけでよい。
デザイナーがRubyやPHPをマスターするより、プログラマーがJavaScriptをマスターするほうが
圧倒的にコストが低いからな。
またJavaScriptにしてやればデザイナーが自分でプレゼンテーションロジックを書いたり変更したり
してくれるから、実はプログラマーの負担も減るんだよ。あまり気づかれていないけど。


121 :デフォルトの名無しさん:05/02/16 07:16:58
つづき:

だた、デザイナーとの共同作業なんかしないであろう86のためにいっておくと、
KwartzではRubyコードやPHPコードを直接埋め込む機能がある(というかあった)。
以前のバージョンなら
:element(members)
 ::: members.each_with_index { |member, i|
  @stag
  @etag
  @cont
 ::: }
:end
みたいに書くことができた。けどだれも使わんかったので削った。


122 :デフォルトの名無しさん:05/02/16 07:35:30
>>110
> 独自言語のほかに、Ruby や Java や PHP でプレゼンテーションロジックが
> 書けるといいんだけど。そうすれば、1つの言語で閉じたいやつはその言語
> を使えばいいし、将来の乗換えを気にするやつは独自言語を使えばいい。

その考えは間違ってない。実際、PHP版ではそれをやった。プレゼンテーションロジックを、
独自言語とPHPとを混在させて書けるようにしていて、「:」で始まる文は独自言語、
そうでなければPHPのコードとみなして処理をしていた。
ttp://www.kuwata-lab.com/kwartz-php/reference.ja.html
でも実際にやってみると、コードとドキュメントがかなり複雑になるのに比べて、得られるメリットが少ないんだよ。
これでメリットがあるのはプログラマーだけで、デザイナーからみればこんなのメリットでもなんでもない。
デザイナーにしてみればRubyやPHPで書けるよりも、JavaScriptで書けるほうがずっとうれしい。
#このことを去年のうちに気づいていればよかったんだが。

プレゼンテーションロジックなんて、しょせん条件分岐と繰り返しと代入ぐらいしかないんだから、
そのくらいJavaScriptだろうと独自言語だろうと書けるだろ、おまえらプログラマーならそのくらいできるだろ、
ということにしといてくれ。


> たとえば、Ruby でプロトタイピングして、製品は Java で作る場合とかなら
> 独自言語は嬉しいかもしれない。

おれはまさにこのパターンなんだよ。
自分のアイデアを説明するためのプロトタイプはRubyでサクッと作るんだけど、
それをチームで開発しましょうとなると、Javaを使わないといけない。シクシク。


123 :デフォルトの名無しさん:05/02/16 07:42:13
つづき:

「Rubyでプレゼンテーションロジックが書ける」といったとき、86は
(a) Rubyのプログラムをパースする。出力先に応じてPHPやJSPに変換してやる。
(b) Rubyのプログラムはパースせず、そのまま出力するだけ。PHPやJSPへの変換はあきらめる。
のどっちを意識している?
はっきりいって、Rubyの文法は複雑すぎるから(a)はムリ。Rubyのサブセットにするしかないけど、
そうなると(a)のメリットはあまりない。

(b)ははっきりいって楽。>>121で書いた機能はまさにそのまんま。
しかしこれだと、複雑なプレゼンテーションロジックだと文法エラーが非常に見つけにくくなる。
というのも、Kwartzではテンプレートを出力用スクリプトに変換するから、(b)の場合だと
変換したあとの出力用スクリプト(例えばeRubyスクリプト)でデバッグしなきゃいけない。
複雑なeRubyスクリプトで文法エラーがあると、原因を見つけるのはかなり困難。
(やってみればわかる。というか、楽な方法があったら教えてほしい)。
これは、Kwartzに限らず、トランスレータ一般につきまとう問題。
例えばJSPもそう。Servletに変換されたあとでコンパイルエラーが報告されても、
もとのJSPの何行目でエラーになっているのかわからん。

これを防ぐには、やはりプレゼンテーションロジックをちゃんとパースして、文法エラーが
あればプレゼンテーションロジックのレベルでエラーを指摘するしかないと思ってる。
そしてちゃんとパースするには、Rubyの文法は複雑すぎ、というかバリエーションありすぎ、
ついでにいうと、プレゼンテーションロジックごときではRubyの文法はオーバースペック。
JavaScriptとかPHPぐらいSyntaxが簡単なら、パースできるんだけどね。


124 :デフォルトの名無しさん:05/02/16 07:42:31
Kwartzの人の言ってることには共感するだけどなぜ喧嘩腰?


125 :デフォルトの名無しさん:05/02/16 07:55:46
さいご:

あとプレゼンテーションロジックをまじめにパースすると、いろんな小細工ができる。
例えば「グローバル変数とローカル変数を解析する」機能とか。
ttp://www.kuwata-lab.com/kwartz/users-guide.ja.04.html#topics-analyze

ほかには「ローカル変数の名前を "_var" のように変えちまう」機能とか。
これは、プレゼンテーションロジックで定義した変数名が、メインプログラムで使っている
変数名とかぶってしまうと、メインプログラムのデータを意図せずに変更してしまうという
問題を解決するための方法。まだ未実装だけと、「グローバル変数とローカル変数を解析する」
という機能がすでにあるから、そんなに難しくはない。たぶん次のリリースぐらいでは載るはず。

もちろん、いろんな言語の出力用スクリプトが生成できるというメリットもある。
Rubyしか使ってないとわからんかもしれんが、複数のプロジェクトを相手にしなきゃいけない
弱小デザイン会社だと、これは泣けるほどありがたい。
#というかStruts死んでほしい。カスタムタグなんて、デザイナーをばかにしてるとしか思えん。



というわけで、Rubyを直接記述することのデメリットと、独自言語をまじめにパースすることの
利点を挙げてみたのだが、どうっすか。
それでもRubyを使いたいというのはあるかもしれんが、そこをちょっと我慢するだけで
いろんな利点があることだけは知っといて。

早朝から長いかきこみですまん。


126 :デフォルトの名無しさん:05/02/16 08:00:48
>>124
けんかにみえたらすまん。知り合いのデザイナーの愚痴がうつっただけだ。というか、デザイナーの気持ちの代弁?

127 :デフォルトの名無しさん:05/02/16 08:06:40
>>126
ですます調にして、語尾をたまに伸ばすと
受ける印象が柔らかくなりますよー。

128 :デフォルトの名無しさん:05/02/16 09:31:34
個人的にいろいろと苦労があるようですね

129 :デフォルトの名無しさん:05/02/16 09:44:19
>>126
rubyスレだと共感は得られにくいのは仕方ない。
基本的にここ(というかruby界隈全部なんだけど)は他の言語と比べても信者の割合が高いからね。

どうでもいいけど、
kwartz -l eruby -p example1.plogic example1.html > example1.rhtml
これをするのがめんどくさい。なんとかならん?


130 :デフォルトの名無しさん:05/02/16 11:57:04
>>126
力説乙。こーいう本気汁たっぷりなのは大歓迎だ。
自分が知らん現場での様子が観れて楽しいしな。(御苦労は察するに余りあるが)


131 :デフォルトの名無しさん:05/02/16 13:23:05
>>129
make

132 :デフォルトの名無しさん:05/02/16 14:24:19
>>129
ant

133 :デフォルトの名無しさん:05/02/16 14:54:26
>>129
ほのぼのrake

134 :デフォルトの名無しさん:05/02/16 16:02:16
ロジック内に書けるのが@stag, @cont, @etag, @elementだけみたいだけど、
外部のplogicファイルが指定できたら便利じゃないかな。

たとえば<html><head>...</head>と
<address>...</address></html>の部分なんかは
title以外全てのファイルで共通にしたいとかあるわけで。

header_and_footer.html
<html><head><title id='title' /></head><body id='body /><address>hoge@tare</address></html>

に対して

plogic: {
@include('header_and_footer.html', 'header_and_footer.plogic', {'title' => 'hoge', 'body' => @cont})
}

みたいな。文法カッコワルイ。

135 :デフォルトの名無しさん:05/02/16 17:08:48
Gemをはじめて使ってみようと思ったのだけど、
--remote でインストールしようとすると
Updating Gem source index for: http://gems.rubyforge.org
から先に進んでくれません。

何が起こっているのでしょうか?

一度、Ctrl-C したときは
yaml/baseemitter.rb:175:in `map' : Interruput ....
てなことになりました。

136 :86:05/02/16 20:23:44
んー、kwartz の中の人は、使いたくないなら使うなって思ってるかもしれませんが。

>>119
SQLは使うけど、それはしかたないから使ってるのであって好きで使ってるわけでもない。
本当は PStore ですむならそれだけにしておきたいよ。
目的を達成するのに必要なら SQL でも Java でも PHP でも C++ でも C# でも使う。
そんなのあたりまえだよね。kwartz の独自言語も kwartz が必要なら使うと思う。
でも、それが嬉しいかというと、嬉しくないといってるだけ。

> 独自言語でも、メジャーになれば使われる。
だから独自言語でもいい、というのはおかしいと思うけど。
Velocity や JSTL や Smarty を使ってるプログラマな人たちは、みんな喜んで使ってるの?
HTML を直接出力するのに比べればはるかに楽だけど、もっと楽な方法を求めてははだめなの?
よく使われてるというのと、使ってて気持ちがいいのとは違うんじゃないかな。
メジャーだっていうのを選択基準にするなら、そもそも Ruby は使ってないよ。


137 :86:05/02/16 20:24:47
> これってバカバカしくないか?なんでプログラマーの都合にデザイナーが合わせなきゃいけないんだよ。
まったくだね。
でもそんなことを言われると、なんでデザイナの都合にプログラマがあわせないといけないんだよ、っていいたくなるよ。
そんな対立こそバカバカしいんだから、kwartz の良さをアピールしたいなら、そんな言いかたは避けたほうがいいような気がする。
未踏でやったからしかたなく公開してるっていうならともかく。

プログラマがあわせるほうがコストが低いというのは現実的な解だと思うよ。
でも、あわせる必要がないときまであわせなくてもいいという選択肢を用意するのも、現実的な解の1つじゃないかな。
難しいから無理っていうわけでもないみたいだし。

> amritaのように素のHTMLが使えるテンプレートシステムを使ってくれりゃいいのに
amrita を使う場合はプレゼンテーションロジックは Ruby で書くことになるよね。ここで amrita を
引き合いに出すなら、それこそ、プレゼンテーションロジックは Ruby でいいじゃんって思ってしまうわけですが。

もちろん、amrita はプレゼンテーションロジックのコードをビジネスロジックのコードと簡単に
混ぜることができるので、そのへんはいまいち。テンプレートと、>121 みたいな不自然なコードじゃなくて、
普通の *.rb から eruby 形式を生成できるのが理想なんだけど。
eruby 形式を生成できれば、オーサリングツールでテンプレートを作って Ruby on Rails とかでも使える嬉しさがあるしね。


138 :86:05/02/16 20:25:25
前にも書いたけど、kwartz のように独自言語を使うのにもメリットがあると思ってるし、それは最初から否定してないよ。
ただ、俺にはそのメリットの大半はいらないから Ruby で書ければなってだけで。

まあ、kwartz の中の人がいろいろ書いてくれたおかげで、少なくとも、kwartz はデザイナ優先で
プログラマは妥協しないとだめっていうポリシーだというのはわかった。それはそれでありだと思う。
独自言語を気にしない人とか、妥協の結果得られるものが嬉しい人も少なからずいると思うし。

個人的には、デザイナ優先だけじゃなくて、デザイナとプログラマの両方が妥協せずに
もっと幸せになれる方法はないのかなって思うけどね。


139 :デフォルトの名無しさん:05/02/16 20:30:55
>>135
はじめて gems で何かをインストールしたときは、かなり待たされた記憶がある。
マシンのスペックとかにもよるのかもしれないけど。


140 :前928:05/02/16 20:33:23
>126
Application-Oriented Languageの利点はわかるけど……


−デザイン−− |−−ロジック−−|−−データ
プレゼンデータ |プレゼンロジック |  コード
デザイナー    |       プログラマー

という守備範囲のうちは、ロジックとデータを別の言語体系で
扱うのは面倒だなぁ


−デザイン−− |−−ロジック−−|−−データ
プレゼンデータ |プレゼンロジック |  コード
   デザイナー     |     プログラマー

というのなら、ロジックを扱うのにシンプルな言語体系を採用しても
仕方無いかな、と思う。

いっそのこと全然雰囲気の違う(&XMLベースの)XSLTチックな
方が使う気になるけど、デザイナーはXSLTよりもJavaScriptの
方が慣れてるかな……


141 :デフォルトの名無しさん:05/02/16 20:45:40
>>139
One-Click Ruby Installerの最新版が出たばかりの頃にダウソして、
gemを使ったことがあるけど、特に問題はなかったよ。

142 :デフォルトの名無しさん:05/02/16 20:56:27
> 俺にはそのメリットの大半はいらないから Ruby で書ければなってだけで。

> 俺には

これが全てを物語ってる気がした。

俺には、この話題は興味ないからどうでも良いけど。

143 :デフォルトの名無しさん:05/02/16 21:08:05
>>142
kwartz が提供するといっているメリットをすべての人が欲しいわけじゃないってだけだろ


144 :デフォルトの名無しさん:05/02/16 21:22:39
お前にはな

145 :デフォルトの名無しさん:05/02/16 22:16:24
86のいいたいことはわかった。
>>136
> だから独自言語でもいい、というのはおかしいと思うけど。
>>137
> でも、あわせる必要がないときまであわせなくてもいいという選択肢を用意するのも、現実的な解の1つじゃないかな。

↑ ここらへんはちゃんと筋が通ってるし、いってることは正しい。

おれは「プレゼンテーションロジックをRubyやPHPで直接書く」という方法をPHP版で実験してみて
思ったようなメリットが出せなかったし、もう気力もないから、今の仕様が変わることはない。
もし86が理想に燃えるなら、ぜひ作ってみてくれ。

ちなみに、途中まで実装して捨てたバージョンでは、プレゼンテーションロジックファイルを次のような感じで記述するはずだった。

module members ## element declaration

 def initialize()
  @value = member
  @attr = { "bgcolor" => color }
 end
 
 def plogic()
  member_list.each do |member|
   @stag
   @body
   @etag
  end
 end

end

最初はすばらしいアイデアだと思ったが、デザイナーのことを考えて結局やめた。

146 :デフォルトの名無しさん:05/02/16 22:20:16
つづき:

もし今の仕様のままで、Rubyでもプレゼンテーションロジックを書けるようにするとなると、たぶんこんな感じになる。

#members {
plogic: {
<% member_list.each do |member| %>
@stag;
@cont;
@etag;
<% end %>
}
}

これはPHP版でもやってた仕様。こんな仕様でよければ実装は難しくない。
これで86が満足するかはしらんが。


147 :デフォルトの名無しさん:05/02/16 22:24:10
さいご:

あと、これは誤解だから訂正させてくれ。

>>137
> amrita を使う場合はプレゼンテーションロジックは Ruby で書くことになるよね。ここで amrita を
> 引き合いに出すなら、それこそ、プレゼンテーションロジックは Ruby でいいじゃんって思ってしまうわけですが。

amritaは「素のHTMLが使えるテンプレート」の例としてだしたのであって、ここではプレゼンテーションロジックのことは関係ない。
「amritaやXMLCのように」と書けばよかったか。


> そんな言いかたは避けたほうがいいような気がする。

いや、2ちゃんでそんなこといわれても・・・

>>134
おもしろい。Zope PageTemplateのmetalみたいなものか。
実はその機能はDreamweaverにはあって、テンプレートシステム側ではなくてHTML作成時にDreamweaverにやらせることができるんだよね。
だから今まで困ってなかったのか。
ちょっと考えてみる。

148 :86:05/02/16 23:08:55
>>145
> 最初はすばらしいアイデアだと思ったが、デザイナーのことを考えて結局やめた。
素晴らしいアイディアだったのに (´Д⊂ヽ

別に理想に燃えてはいないが、気がむいたらやってみるよ


149 :デフォルトの名無しさん:05/02/17 02:20:44
要は「デザイナーは馬鹿だからプログラマの都合を押しつけるわけにはいかない」
ということですよね。なんかそういう考えもちょっとどうかなあと思うけど。

150 :デフォルトの名無しさん:05/02/17 03:38:00
編集ツールしか使えなくてHTML自体理解してないデザイナーなんかも多いぞ。

151 :デフォルトの名無しさん:05/02/17 04:26:29
>>149
どうやったらそんなまとめになるのか。
「デザイナーはプログラマーの都合を押し付けられて困ってる」とか
「デザイナーはRubyやPHPを使いたがらない。それはプログラマーがJavaScript使いたがらないのと同じ」とかは書いているが。
馬鹿がいるとしたら勝手な解釈するやつのことだろ。


152 :デフォルトの名無しさん:05/02/17 09:44:54
>>147
> いや、2ちゃんでそんなこといわれても・・・
「便所の落書き」だからといって、どんな口調(論調?)でもいいというわけではない
丁寧語を使えとは言わないが、見る人間のことを考えた書き方は大事だよ。

153 :デフォルトの名無しさん:05/02/17 10:00:58
いや、それは便所の落書きだと思ってないからだろ。

154 :デフォルトの名無しさん:05/02/17 22:36:33
いいえ、それはお便所の落書きだと思ってらっしゃらないからでしょう。

155 :デフォルトの名無しさん:05/02/17 23:23:34
いえいえ、それこそはお便所様のお落書きだと思わしであそばせないからでござりますことでしょう。

156 :デフォルトの名無しさん:05/02/17 23:31:47
>>134
仕様を考えてみた。

まずページ全体のデザインを担当するテンプレートを用意する。

page.html:
  <html lang="ja">
   <head><title id="value:title">...</title></head>
   <body>
    メニュー:
    <div id="replace:menu">
     ・メニュー1<br>
     ・メニュー2<br>
    </div>
   </body>
  </html>


157 :デフォルトの名無しさん:05/02/17 23:33:08
つづき:

コンテンツデータを表すテンプレートを用意する。

contents.html:
  <html><body>
   <ol id="menus">
    <li id="value:menu">メール</li>
   </ol>
  </body></html>

contents.plogic:
  #menus {
   plogic: {
    @stag;
    foreach (menu in menu_list) {
     @cont;
    }
    @etag;
   }
  }


158 :デフォルトの名無しさん:05/02/17 23:36:03
つづき:

これを、こんなかんじでコンパイルする。
$ kwartz -c contents.html -p contents.plogic page.html > page.rhtml

contents.htmlのうち、id="..." がついたエレメントだけが使われ、<html><body></body></html>は捨てられる。

出力用スクリプトはこれ。

page.rhtml:
  <html lang="ja">
   <head><title><%= title %></title></head>
   <body>
    メニュー:
    <ol id="menus">
  <% for menu in menu_list do %>
     <li><%= menu %></li>
  <% end %>
    </ol>
   </body>
  </html>

これでいけるんじゃないかと思うが、どうだろう。
実装するのはまだ先になるけど。

159 :デフォルトの名無しさん:05/02/18 00:25:38
>156
プレゼンテーションデータの統合なら、SSIを真似して

<!--#include kwartz_file="パス" -->

とかの方が理解しやすいと思います。

160 :デフォルトの名無しさん:05/02/18 01:48:46
PageTemplate
http://coolnamehere.com/products/pagetemplate/

161 :134:05/02/18 05:33:41
>>156
<div id="replace:menu">は<div id="replace:menus">のミス?
その仕様だと多重に埋め込めなくないかな。

たとえばサイトの構造が
<サイト全体><コンテンツ種別><コンテンツ /></コンテンツ種別></サイト全体>
みたいになってる場合は

page.html
<html><head>...</head><body><div id="replace:content_type" /></body></html>
content_type.html
<html>...<body><div id="content_type">...<div id="replace:content" />...</div></body></html>
content.html
<html>...<body><div id="content">...</div></body></html>

とかやりたいと僕は思う。
idのマッチングをするのはデザイナー向けっぽくてまた賛否両論かも。でもおもしろい。
replace:...のidがマッチされずに残った場合警告でも出るんですかね。

ただ、デザイナーさんがオーサリングツール使って全種のテンプレートを
作ってくれちゃうシチュエーションをメインターゲットにして、
趣味プログラマが個人サイト作るのに使うのを意図しないのであればそもそも不要な機能かもね。

>>159
ネタかもしらんが今回の目的にそれは全く意味ない。

そろそろスレ違いだと叩かれそうだ。ゴメソ

162 :デフォルトの名無しさん:05/02/18 07:13:14
>>161
> <div id="replace:menu">は<div id="replace:menus">のミス?
そのとおり。すまん。

> その仕様だと多重に埋め込めなくないかな。
できると思う。頭の中にある設計なら、これでいけるはず。
kwartz -c content_type.html,content.html page.html > page.rhtml

> replace:...のidがマッチされずに残った場合警告でも出るんですかね。
でる。現バージョンでも出るはず。

>ネタかもしらんが今回の目的にそれは全く意味ない。
その通りだが、>>159のいう機能は、これはこれで需要がある。今回も正式リリース時には実装しているはず。
ただ前のバージョンではプレゼンテーションデータファイルとプレゼンテーションロジックファイルの両方を読み込めたんだけど、
今回のバージョンでは仕組みが変わったのでプレゼンテーションデータファイルしか読み込めないと思う。

強引に2/14にリリースしたから、未実装の機能がけっこう残ってる。すまない。
updateしても特にアナウンスはしないから、RAAをチェックしといてくれ。


163 :デフォルトの名無しさん:05/02/18 07:32:44
今気づいたのだが、もしかして>>86はRailsユーザか?ならRubyで書くことにこだわるのはわかるような気がする。

Railsはまだ試してないが、eRubyを使うんじゃなかったっけ?
そして、もしテンプレートに複雑なRubyコードを埋め込まないといけないのなら、もしかしたら現行のKwartzでは力不足なのかもしれん。

おれには、86はただのRubyユーザではなくて「デザインのわかるRubyユーザ」のようにみえたのだが、
それにしてはJavaScriptを拒絶してたから、なんか違和感があった。
自分でデザインもやる人間ならJavaScriptぐらいできるはずで、そんなやつが「Rubyで書きたい」というのは
むりやりクレームをつけようとしているのかと思った。
しかし、もしRailsユーザだとすれば、その要求は理解できる。謎はとけた?

もしこの仮説が正しいとして、そうならそうといってほしかった。
「Rubyで書きたい」というのと「Rubyで書けないと困る」というのでは、議論の前提条件がまったく違うからな。

ちょっと時間をとってRailsを勉強してみる(とれるのか?)


164 :デフォルトの名無しさん:05/02/18 08:23:56
独自にテンプレート言語をつくるのが楽しいのはわかるんだけど、
実務上はDWの吐いたライブラリとテンプレートも読み込めないと使いにくい。

あと、id属性は使わないほうがいいんじゃないかな。
オーサリングツールがJavaScriptを吐くことがあるから名前の衝突を気にしないといけない。
DOMはクライアントサイドが扱うけど、テンプレート適用はサーバーサイドの出来事だし、
テンプレート言語はコメントにおくのが無難のような。

165 :デフォルトの名無しさん:05/02/18 21:39:20
amrita2はどうよ

166 :デフォルトの名無しさん:05/02/18 22:00:01
>>164
過去ログ読め。それらの意見に対する返答は一通り書かれた。
kwartzはDWとかの吐いたテンプレートを使う状況を
主なターゲットにしてる(んだと思う)。

しかしスレタイ変えた方がいいな。

167 :デフォルトの名無しさん:05/02/18 22:39:13
>>163
Jamisタソ(Needleとかやってる人)がRails-Amritaブリッジを作ったらしい。
ttp://dev.rakusui.jp/diary/?date=20050217#p03

168 :前928:05/02/18 23:16:58
>166
>164の内容は新たな指摘だと思うけど……


>164
SikiTemplateでこんなの実装したナリよ。どう?
かっこがウザいのは仕様です。(これなら重複しないだろう……どうにかしたいけど)

require 'xml/siki-template'
t = Template.new(
'<!--[[[{{{dummy class="$$title_text" /}}}]]]-->'+  #弟タグの要素にtitle_textというキーを指定
'<!--[[[{{{dummy class="$$@title@$id" /}}}]]]-->'+ #弟タグのid属性にtitleというキーを指定
'<!--[[[{{{dummy class="$$@title" /}}}]]]-->'+   #弟タグのclass属性にtitleというキーを指定
'<title id="test_title" class="test_title"></title>' )

#dummyはなくても可

r = t.parse( { :title => 'Title', :title_text => 'Text' } )
p r #<title class="Title" id="Title">Text</title>

>165
もうリリースされたっけ?


169 :デフォルトの名無しさん:05/02/18 23:39:36
>>168
来週らしい。
http://one.textdrive.com/pipermail/rails/2005-February/003186.html

170 :前928:05/02/18 23:59:52
>169
来週か……プログラムの構造はHackしやすくなっているかな?

passive template APIはおもしろそうだね。


171 :デフォルトの名無しさん:05/02/19 00:26:35
VisualuRuby使いたいんだけど、
最新版は自分でswin.soをコンパイルしないといけないっぽい。

だれか、コンパイルしてアップしてくださいm( __ __ )m

172 :デフォルトの名無しさん:05/02/19 00:52:00
Amrita2がRubyForgeに登録されてますた。
http://rubyforge.org/projects/amrita2/

173 :デフォルトの名無しさん:05/02/19 01:15:31
amrita2 って何が変わったの?

174 :デフォルトの名無しさん:05/02/19 01:21:23
>>164
> 独自にテンプレート言語をつくるのが楽しいのはわかるんだけど、
> 実務上はDWの吐いたライブラリとテンプレートも読み込めないと使いにくい。
それも検討したのだが、必ずしも必要ではなくて「できたらいいね」ぐらいの要求であることと、
今の実装だとタグとコメントの両方を解析するのが面倒なため、パスしてる。
ちなみに、DWのテンプレートを解釈するようなテンプレートエンジンは今までみたことないんだが、あったら教えてくれ。

> あと、id属性は使わないほうがいいんじゃないかな。
> オーサリングツールがJavaScriptを吐くことがあるから名前の衝突を気にしないといけない。
id属性は「HTMLファイルで重複してはいけない」から、オーサリングツールで容易にチェックできるため、かえって向いていると思うのだが。
どうしてもいやなら、使用する属性を設定またはコマンドオプションで変更してくれ。

> DOMはクライアントサイドが扱うけど、テンプレート適用はサーバーサイドの出来事だし、
> テンプレート言語はコメントにおくのが無難のような。
前半と後半とのつながりがわからん。コメントを使う方式では、ほんとうにHTMLタグをコメントするときに困る(HTMLではコメントのネストができないから)。

>>166
> kwartzはDWとかの吐いたテンプレートを使う状況を主なターゲットにしてる(んだと思う)。

んなことはない。

とりあえず、こっちで議論しないか。amrita2やRailsの話題も含めて。
【Ruby】RubyでCGI
http://pc5.2ch.net/test/read.cgi/php/988948655/


175 :前928:05/02/19 01:43:57
>174
おお、そういうスレあったのね。

では皆さん、さようなら〜
Amrita2のベンチは向こうに貼り付けます。

176 :デフォルトの名無しさん:05/02/19 02:35:08
>>119
>おまえはRDBを使うか?もし使うなら、SQLを使うだろ。あれこそ本当に頭のモードを切り替えなきゃいけないぐらい

Kwartzを独自言語じゃなくてSQLにしろってことね。




>独自言語でも、メジャーになれば使われる。Kwartzはマイナーだから使われない。それだけだ。


177 :デフォルトの名無しさん:05/02/19 11:10:04
>独自言語でも、メジャーになれば使われる。Kwartzはマイナーだから使われない。それだけだ。

こういう怠惰な現状肯定を認めてしまうと、
技術者は予め与えられた道具を黙って使っていればいい
ということになって、イノベーションの可能性を阻害する。

178 :デフォルトの名無しさん:05/02/19 12:53:44
まあRubyも安定期に入ったってことだ
いつまで創業期黎明期じゃまずいだろ



179 :デフォルトの名無しさん:05/02/20 00:39:34
Hikiにはユーザー用のMLってないの?


180 :デフォルトの名無しさん:05/02/20 03:01:18
>>179
ないみたいだねえ






ユーザML なら自分で作るという手もある


181 :デフォルトの名無しさん:05/02/20 07:30:07
少し前にこのスレでも話題になっていたが、変数に関数オブジェクトを入れて
そのまま () をつけたら関数呼び出しになる変更を検討中だそうだ。

ttp://www.rubyist.net/~matz/20050218.html#p01


182 :デフォルトの名無しさん:05/02/20 08:04:47
>>177

現状を述べたまで。努力を放棄したとはどこにも書いてないだろ。
しかしどうやったらこんな解釈をするのか。

183 :デフォルトの名無しさん:05/02/20 13:32:34
>>181は以前試したが、標準添付の中でも動かなくなるのがあったり、
かなり影響大きそう。
ところで、ツッコミにもある野分さんの案はどうよ?
ruby的にはこっちのほうが合ってるような気もするんだが…

184 :前928:05/02/20 13:51:12
>174, 177, 182
なんだよ、こっちに戻ってきてるの?
誘導するならサマリの作成&誘導をちゃんとやりなさい。

>174
>id属性は「HTMLファイルで重複してはいけない」から、オーサリングツールで
>容易にチェックできるため、かえって向いていると思うのだが。

複数箇所に同じデータを代入するようなケースに対応できませんが……
#ページのタイトルと大見出しを同じにするとか

>コメントを使う方式では、ほんとうにHTMLタグをコメントするときに困る

タグのコメントもリスク高いですな(合法だけど)
HTMLタグをコメントするケースって多いのかしらん?

>177
>こういう怠惰な現状肯定を認めてしまうと、

手間をかける以上のイノベーションがあるのが前提だけどね。
JavaScriptライクなの作成中とのことだけど、そっちの方がデザイナーの
学習コストが少なくていいかもね。繰り返しになるけど、XSLTもいいと思う
#デザイナーにロジックをいじらせるつもりならだけど


185 :デフォルトの名無しさん:05/02/20 13:53:43
>>184
|複数箇所に同じデータを代入するようなケースに対応できませんが……
|#ページのタイトルと大見出しを同じにするとか
alias

186 ::05/02/20 13:55:46
>183
前にruby-devに投稿したときは
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/24302
あまり芳しい反応はなかったからなぁ。
ClosureとObjectを等価に扱えるようになって便利なんだけどね。

RubyからProcを修正できるけど、Quick Hackの感は否めないし……


187 :前928:05/02/20 14:01:52
>185
それはプログラム側で対応しろということかな?Kwartzには無いよね?
「同じデータを使いたい」というのは、デザイン側の問題であることが
多々あるので(上記の例とか)、プレゼンテーションデータ側で処理したい
ケースとかあると思うけど。


188 :デフォルトの名無しさん:05/02/20 15:29:51
>>186
lambdaに対して何らかのメソッド呼び出しするのが違和感あるんだよね。
「.callだから嫌」というわけじゃないと思う。

でも、
>関数的呼出しの関数名部分がローカル変数のときには、そのローカル変数の値に「call」メソッドを適用する
って解決はすごくださいなぁ…。

189 :デフォルトの名無しさん:05/02/20 18:08:55
>>184

テンプレートシステムと関係ない点へのつっこみだから、こっちに書いたまでだ。よくよめ。

190 :デフォルトの名無しさん:05/02/20 20:09:04
>>186
[ruby-dev:24313]でまつもとさんも書いてるように、
単純だけどすごく強力そうだしねぇ。
影響がどの程度になるか予想しがたい。

ちなみに、Module.newはブロックを受け取るから、sendを使う必要はない。
特異メソッドでも可。
 super()
 (class << self; self; end).class_eval {
  method_name.each {|i| alias_method i, :call}
 }
 self

191 :デフォルトの名無しさん:05/02/20 20:36:19
>>188
schemeなんかだと変数と呼び出しは構文的に分かれてるからいいけど、
rubyじゃそうもいかないし。

どういう感じがいいわけ?

192 :デフォルトの名無しさん:05/02/21 00:42:39
だからこういう感じ。
f = lambda{|x| p x}
f(12)
どういうアプローチで実現するのが綺麗かは思いつかない。
()を[]同様メソッドにするのがいいと思うんだけど、
引数無しメソッドの扱いが困るのもわかる。

193 :デフォルトの名無しさん:05/02/21 01:21:37
メソッド呼び出しで()を省略できないようにすれば
何とかなるんだろうが仕様変更が大きすぎるだろうね。

194 :デフォルトの名無しさん:05/02/21 02:10:26
2.0で変えりゃいいじゃん

195 :デフォルトの名無しさん:05/02/21 03:44:45
Rubyでは、こういう時は、こういう風に書くっていうのを勉強したくて、
いくつか、プログラムのソースを読もうと思うのですが、
Rubyらしく書いてあるプログラムって、どんなのがありますか?

webrickとか、tDiaryとか、どうなんでしょうか?

196 :デフォルトの名無しさん:05/02/21 05:37:09
>>195
レシピブック。
著者の青木さんのWikiも漁ってみんさい。ttp://i.loveruby.net/w/RubyPages.html

197 :デフォルトの名無しさん:05/02/21 06:41:28
「あおきにっき」でぐぐれ


198 :デフォルトの名無しさん:05/02/21 06:49:56
みてどうするの?

199 :デフォルトの名無しさん:05/02/21 12:02:31
>>198
アルゴリズムをパクる、、,じゃ無くて、真似る(学ぶ)。

この人のソースも結構きれいだとおもうんだけど。
http://cgi.2lbox.org/

各種言語(RubyをはじめPerl,PHPなど)のBBSプログラムを比較検討したりと、けっこう私は勉強させてもらっています。

あれ、既出?

200 :デフォルトの名無しさん:05/02/21 13:33:00
>>199
なんか特に見るところもないソースだな
つーか配布するならライセンスくらい書こうぜ

201 :195:05/02/21 16:25:36
レシピブックって、
初心者が、リファレンスみたいに使うのかと思ったら、
よく考えたら、これをサラッと書けるようになれば、
中級者くらいになれそうですね。

レシピブックやってみます。

ありがとうございました。

202 :デフォルトの名無しさん:05/02/21 16:38:23
あんなので中級者なのか? (´Д`)

203 :デフォルトの名無しさん:05/02/21 16:49:25
まあ初級中級上級のクラス分けなんて相対的なもんやし。

204 :デフォルトの名無しさん:05/02/21 18:19:05
>>193
それはattr_readerで困る。

205 :デフォルトの名無しさん:05/02/21 19:37:24
>>192 みたいな変更ってそんなに影響範囲大きいの?
既存のコードが動かなくなったりする?

206 :デフォルトの名無しさん:05/02/21 20:33:08
>>204
Perlからtieを借りてくればいい。


207 :デフォルトの名無しさん:05/02/21 23:02:09
>>199
全体的に良くまとまってて、きれいなソースだとは思う
だが、parse_tagtokatext(タグとかテキスト)というメソッドの命名はどうなんだ

208 :デフォルトの名無しさん:05/02/22 01:16:54
>>207
...........まぁ、いいんじゃなかろか。わかりやすいし。

209 :デフォルトの名無しさん:05/02/22 01:18:35
>207
どうせなら
yomotoru_tagu_toka_tekisuto
くらいテッテ的にやってもらいたい

210 :デフォルトの名無しさん:05/02/22 02:07:57
>>209
みんな忘れてると思うが、Ruby は日本語の識別子が使える
だから、

def タグとかテキストを解析(文字列)
end

でいこうぜ


211 :デフォルトの名無しさん:05/02/22 02:24:21
>>210
やだ。

212 :デフォルトの名無しさん:05/02/22 02:27:35
日本語の文字って大文字と見做されるんじゃなかったっけ?
だから漢字とかで識別子をはじめると定数扱いになったような。

213 :デフォルトの名無しさん:05/02/22 02:36:34
>> 210
きもち悪いことに、本当にできた。試してみるもんだ。

#!/usr/bin/ruby -Ke
def こんな場合の気分って(こんなとき)
case こんなとき
when "恋したとき"
return "もんもん"
when "デスマーチ","阪神が負けた"
return "てんぱってる"
when "猫にそっぽを向かれた"
return "それはないよね"
end
end

print こんな場合の気分って('阪神が負けた')
exit

なにもここまで自由度が高く無くても(*_*;;)、と。
呆れるやら、..待て、なんかこれ結構使い道あるんじゃねぇか?と企ててみたり。

214 :デフォルトの名無しさん:05/02/22 02:48:35
>>212
ちゃうよ。小文字と同じ。だから直接こういうのはできない。
class くらす; end

215 :デフォルトの名無しさん:05/02/22 03:02:10
識別子に日本語が使えるのは別にrubyの特権でもなかろう。
VBでもJavaでも使えるぞ。

216 :デフォルトの名無しさん:05/02/22 03:50:49
>>214
逆だったか。サンキュー。

とは覚えていても使わない豆知識だなこれはw

217 :デフォルトの名無しさん:05/02/22 03:51:48
>>213
printもaliasしようよー

218 :デフォルトの名無しさん:05/02/22 10:31:11
>>205
動かなくなるのもある。
method = method(arg)
みたいなの。

添付ライブラリにも2,3ヵ所あるが、一般にどの程度影響があるかまでは調べてない。

219 :デフォルトの名無しさん:05/02/22 12:08:07
>>206
本末転倒のような。

220 :デフォルトの名無しさん:05/02/22 12:34:22
>>218
うーん、それで既存のコードが動かなくなることは無いように思えるのですが、
添付ライブラリの2,3ヶ所ってどこらへんでしょうか?

221 :192:05/02/22 13:46:58
俺が言ってたのは、
class << foo
 def bar(*a); yield a; end
 def baz; [3,2,1]; end
end

foo.bar 1, 2, 3 do |a| p a; end #=> [1,2,3] これはOK
foo.baz.sort #=> NoMethodError: undefined method `sort' for #<Proc:...>
なんてことになりそうなこと。

これだけでも多くの既存のコードが動かなくなると思うが、
>>193はすべてのメソッド呼び出しでカッコ省略不可にしようと言ってるのかな。
だとしたら上のfoo.barも通らなくなってさらに多くの既存コードが動かなくなるね。

attr_readerで困るのはカッコ完全省略不可の場合?
method = method(arg)はそれはそれで困るが、互換性という意味では上記の問題の方が大きいと思う。

222 :デフォルトの名無しさん:05/02/22 20:33:28
IORCC(International Obfuscated Ruby Code Contest)
ttp://iorcc.dyndns.org/


223 :デフォルトの名無しさん:05/02/23 00:53:25
>>220
代入の左辺でmethodという変数ができるから、右辺のmethod()はその変数への
呼び出しと見なされてしまう。

> 添付ライブラリの2,3ヶ所ってどこらへんでしょうか?
sample/test.rbとtest/ruby/test_iterator.rbの
lambda = lambda{44} とか marity_test あたり。


224 :デフォルトの名無しさん:05/02/23 02:40:05
f.(2)とかかれたら
f.call(2)と同義とするとかで、いいんじゃないか
にんげんだもの

225 :初心者:05/02/23 10:23:36
文字列を作るときに、%Qとか、%qって使ってる人いるんですか??

なんか、微妙に使いにくいというか、何をエスケープしたら十分なのかよくわからん。

%Q(abc(def)はエラーで、%q(abc(def))は通るんですよね。
なんか、不思議だ。

226 :& ◆RdmUjfVKqQ :05/02/23 10:38:15
改行っていうのと、行末$の関係がよくわからないので、以下のようにしてみたら
どちらも同じ結果になってしまいました。
改行と$って、違う概念なんでしょうか??

test = "abc\ndef\nghi\n\n"
test.each{|line|
p line =~ /$\n/
}
でも
test = "abc\ndef\nghi\n\n"
test.each{|line|
p line =~ /\n$/
}

227 :デフォルトの名無しさん:05/02/23 11:03:28
>>225
"や'や#{}が混ざってる時に使う。
そうじゃなけりゃ""や''で十分。

225の例のように括弧を含む文字列をわざわざ%Q()や%q()で書こうとするのは
はっきり言って無意味。

228 :デフォルトの名無しさん:05/02/23 11:21:54
>>226
p "s" =~ /\n/
p "s" =~ /$/


229 :デフォルトの名無しさん:05/02/23 11:51:35
「行末」は「位置」で、「改行」は「(「改行」という) 文字」、っていう違いかな。

230 :デフォルトの名無しさん:05/02/23 13:00:39
229に補足すると、行末は文字列の最後か改行の前。幅をもたない。

231 :デフォルトの名無しさん:05/02/23 15:44:32
>>225
%Q(abc(def))はエラーにならんのだけど。
カッコの対応が取れてないのはtypoではなくソースでもそう書いたのか?

>何をエスケープしたら十分なのかよくわからん。
気持ちわかる。俺もあまり自信ないが、
%qはシングルクォートを書きたいとき\'ではなく'と書く(書かなくてはならない)、ほかは''と同じ、
\Qはダブルクォートを書きたいとき\"ではなく"と書ける(\記法が有効なので\"と書いてもいい)、ほかは""と同じ、
じゃないかな。

>>227
#{}って関係ある?

232 :デフォルトの名無しさん ◆m7YeytgDFE :05/02/23 15:50:07
>>227
下記のような違いがあるということかな?
%Q( #{ Time.now } ) # => " Wed Feb 23 15:48:08 JST 2005 "
%q( #{ Time.now } ) # => " \#{ Time.now } "

233 :デフォルトの名無しさん ◆m7YeytgDFE :05/02/23 15:53:58
>>232
あ、これは"〜"と'〜'の違いっていうだけか。
良く分かってませんでした。失礼しました...。

234 :デフォルトの名無しさん:05/02/23 16:12:09
ただ単に文字列中に ' を入れたいなら " でくくればいいし、
ただ単に文字列中に " を入れたいなら ' でくくればいいのだが、
文字列中に #{} と " の両方を入れたいなら " でくくるのはちょっと、
という話ではないだろうか。

235 :デフォルトの名無しさん:05/02/23 16:26:33
>>231
%Q(abc(def) が通らないっていうのはすごくヘンだと思うぞ。なんで文字列の
中でカッコのマッチングをわざわざ取ってるんだ?
%Q|abc(def| とか、他の記号を使うとオーケーなのにね。
%記法をつかうなら中に入らない文字を使えってことかな。


236 :デフォルトの名無しさん:05/02/23 16:33:46
ヘンとか言われてもそういう仕様なので・・・

つーか、
> %記法をつかうなら中に入らない文字を使えってことかな。
という認識は、きっと逆で、
中でかぶらない任意の文字を区切り文字として使いたい、
という場合に%記法を使うのが正しい使い方と思われ。

237 :231:05/02/23 18:09:39
>>235
確かに不思議な仕様ではあるね。
なんとなく%Q(()) => "()"としたかったのかな。
他の言語(Perlとか)からごっそり取り込んだだけの仕様だったりする?

ところでもし>>225==>>235なら、
>%Q(abc(def)はエラーで、%q(abc(def))は通るんですよね。
でわざわざ%Qと%qを使った理由を教えてくれ。

238 :226:05/02/23 18:34:01
>>228-230
$が、改行の前か、文字列の最後ってことは、色々調べて書いてあったんですが、
その上で、226を実行すると、/\n$/っていうのがabc\nにマッチしてしまう理由がわからないのです。
$が改行の前なら、マッチして欲しくないんですが。

239 :225:05/02/23 18:37:54
225!=235
あ、今知ったんですが、%qとか%Qって、括弧()じゃなくてもつかえるんですね!!
これなら、便利かも。

ところで、やっぱり、変な仕様である気はしますね。%q(()のエラー。

240 :デフォルトの名無しさん:05/02/23 18:56:47
>>238
/\n$/ は「\n の後に行末(または文字列の末尾)が来るもの」という意味になるよね。
"abc\n"は \n の後に文字列の末尾が来るから問題ないじゃん。

ちょっと見てみるとこれは 1.8 からの仕様変更で、 Perl の挙動に合わせたものらしい。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=trap%3A%3ARegexp


241 :デフォルトの名無しさん:05/02/23 19:00:45
>>239
それを知らなかったのなら仕方ないか。
%記法は、括弧のときだけ特別に中身の対応をチェックするようになっている。
親切なような、余計なお世話のような。

%Q'文字列中に"をエスケープなしで'
%q"文字列中に'をエスケープなしで"

とか書いたりもするなあ。

242 :225:05/02/23 19:32:26
>>240
なるほど。わかりました。

243 :デフォルトの名無しさん:05/02/23 19:41:51
でもさ
# Perl では $ は改行の前と文字列末尾にマッチする

とあるけど

print "true\n" if "\n" =~ /$\n/;

はperlでマッチしないのね。
でもrubyだとマッチする。

244 :デフォルトの名無しさん:05/02/23 20:06:46
http://www.namikilab.tuat.ac.jp/~sasada/diary/vote.cgi?no=54&mode=show

245 :デフォルトの名無しさん:05/02/23 20:15:27
>>243
Perlでは$は、改行文字そのものとマッチするが後方参照しても文字列が取り
出せないもの、としているということなのかな。

perl -e 'print "true\n" if "\na" =~ /$a/;' # => 改行の後にaだから真
ruby -e 'print "true\n" if "\na" =~ /$a/;' # => 改行の直前の後にaだから偽

となるね。

"\na" =~ /^a/ が Perl では成立しないが Ruby では成立するとか、この辺はいろいろ面倒だな。


246 :デフォルトの名無しさん:05/02/23 20:21:12
質問です。
["a", "b"] → "["a", "b"]" のように
Array クラスを String クラスにしたいんですが、どうすればいいでしょうか?

247 :デフォルトの名無しさん:05/02/23 20:26:19
>>245
"\na" =~ /^a/は複数行モードの問題じゃね?
"\na" =~ /^a/mにすればperlもrubyもマッチする

248 :デフォルトの名無しさん:05/02/23 20:28:51
>>246
["a", "b"].inspect

249 :デフォルトの名無しさん:05/02/23 20:32:49
>>247
Ruby はデフォルトで複数行モードがセットされてるってこと?

250 :246:05/02/23 20:33:06
>>248
サンクス。inspect覚えておきまつ。

251 :デフォルトの名無しさん:05/02/23 20:43:39
>>249

http://www.kt.rim.or.jp/~kbk/perl-5.8/perlreref.html#___z_q
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/7960
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB#a.c0.b5.b5.ac.c9.bd.b8.bd.a5.ea.a5.c6.a5.e9.a5.eb

rubyはさいしょからperlのm相当でrubyのmはperlのs相当ってことなんかね


252 :デフォルトの名無しさん:05/02/23 20:59:02
>>251
マジで?

Ruby には s なんて無い (Shift_JIS モードになるオプションに当てられてる) わけだけど、
どうやって単行モードにするの?

253 :デフォルトの名無しさん:05/02/23 21:15:45
make test-all は make install が済んだことが前提でしょうか?
/usr/local/bin/ruby が存在しなくてエラーになりまくりなのですが。

254 :デフォルトの名無しさん:05/02/23 21:37:47
>>248
日本語は?

255 :デフォルトの名無しさん:05/02/23 21:39:10
>>254
-K オプションを指定すれば?

256 :デフォルトの名無しさん:05/02/23 21:47:12
>>255
・・・知らなかった、サンクスorz
$KCODE= = 'SJIS'にしてみた

257 :デフォルトの名無しさん:05/02/23 21:55:23
res256.gsub!(/\$KCODE= = 'SJIS'/,"$KCODE = 'SJIS'") # orz

258 :デフォルトの名無しさん:05/02/23 23:16:33
>>252
そんなモードいらん

259 :226:05/02/24 00:05:30
p "abc\n" =~ /$\n$/ #=> 3
p "abc\n" =~ /$$$\n$$$/ #=> 3
なるほど。

260 :デフォルトの名無しさん:05/02/24 00:59:19
Rubyの初心者スレとかあるけど。
http://pc5.2ch.net/test/read.cgi/tech/1107799347/

261 :デフォルトの名無しさん:05/02/24 01:10:19
>258
むしろNオプションでネコミミモード
……どんなモードやねん、と自分で突っ込んでおく

262 :デフォルトの名無しさん:05/02/24 01:11:56
いまRuby-listにも主催者(でいいんだよね)Todd NathanからPOSTされた。
http://www.rubyist.net/~matz/20050222.html#p01
これ、だれかやるの?


263 :デフォルトの名無しさん:05/02/24 09:49:34
>>262
されてないんだけど、ruby-talk の間違い?

264 :デフォルトの名無しさん:05/02/24 10:33:09
>>263
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40638
これ?

265 :デフォルトの名無しさん:05/02/24 11:18:14
spam判定されてた。スマソ OTL

266 :デフォルトの名無しさん:05/02/24 11:45:27
Railsを使ってみようと思って、Ruby one click installer 1.8.2final(windows)
をインストールして、ruby gemsを使ってみたんですが、
indexをupdateするってところで、とまってしまいます。
どうしても無理みたいなので、

ActiveScriptRubyをインストールして、gemsもインストールして使うことにしました
ruby install.rbでインストールは成功したのですが、
実際使おうとすると、

C:\Documents and Settings\Toshihiro>gem
ruby: No such file or directory -- C:/Program (LoadError)

ってなります。
このエラーって、どのレベルのエラーでしょう。。
どうもパスにスペースが入ってるところに問題があるみたいです。
実は、gemsって、Windowsではそのまま使えなかったりするんでしょうか??

ところで、one click installerでみなさん、使えてるのでしょうか??

267 :266:05/02/24 11:53:06
ActiveScriptRubyを、c:\rubyにインストールして解決です。
やはり、パスにスペースが入ってるとうまくいかないようです。>gems

デフォルトで、RubyGems添付になって、
RAAに登録されているのは、Gem形式で配布されればいいのに。。

268 :266:05/02/24 12:00:09
Gems動くようになったけど、
updating gem source index for: http://gems.rubyforge.org
ってところから進まないぞぉー

269 :266:05/02/24 13:17:41
誰か、gems使わないrailsのインストール方法教えてください。
るびま見たら、actionmailとか必要みたいなので、インストールしようと思ったら、
RAAにないし。。

RAAからrailsだけとってきて、インストールしたらいいのかな??

270 :デフォルトの名無しさん:05/02/24 13:43:37
>>266
updating gem source index for: http://gems.rubyforge.org
と表示されてから完了するまでかなりの時間(2、3分)かかるので、
すぐにやめずに少し待ってみては。

271 :266:05/02/24 19:18:53
ちょっと、気になったんですけど
僕のインストール方法は、
ruby setup.rb を実行しただけなんですよ。
それで、同じフォルダに
post-install.rb ってあって、それを実行したら、
C:/Documents and Settings/Toshihiro/デスクトップ/rubygems-0.8.4/rubygems-0.8.4/post-install.rb:40:in `install_windows_batch_files': uninitialized constant Config (NameError)
from C:/Documents and Settings/Toshihiro/デスクトップ/rubygems-0.8.4/rubygems-0.8.4/post-install.rb:72
Completed(1)
こう出てしまいます。ここに問題があるんでしょうか。。


あと、ruby gemsのインストールマニュアルって見つからないんですが、どこかにあります??
http://rubygems.rubyforge.org/wiki/wiki.pl?RubyGems

それと、updating gem source ..... って出た後、10分くらい待ってみたけどだめでした。

272 :デフォルトの名無しさん:05/02/24 20:29:56
(???: ??????????? ??) <-- translated online

翻訳してくれ。

273 :デフォルトの名無しさん:05/02/24 20:52:02
(これ: 文字化け ?) <-- translated online

274 :デフォルトの名無しさん:05/02/24 22:16:41
Amrita2 initial releaseキタ━━━━━━(゚∀゚)━━━━━━!!
http://one.textdrive.com/pipermail/rails/2005-February/003444.html

275 :デフォルトの名無しさん:05/02/24 22:18:55
>>271
インストールマニュアルというか、
http://rubygems.rubyforge.org/wiki/wiki.pl?UserGuide
の「Installing the RubyGems library」がインストール作業の全説明だと思う。
post-install.rbはsetup.rbから呼び出されるもので、直接呼び出す必要はないから、
そのエラーは気にしなくてもよいです。

あと、手元のCygwinでgem list --remoteを試したら50秒弱で終わりました。


276 :デフォルトの名無しさん:05/02/24 22:59:38
質問です。
[1, a, 2, b, 3, c] → [[1, a], [2, b], [3, c]]
としたいのですが、何かイイ方法ありませんか?
初心者でスマソ。

277 :デフォルトの名無しさん:05/02/24 23:05:10
効率とか考えずに。
Hash[*[1, a, 2, b, 3, c]).to_a

278 :デフォルトの名無しさん:05/02/24 23:07:15
ary = [1, a, 2, b, 3, c]
Hash[*ary].to_a # => [[1, a], [2, b], [3, c]]


279 :277:05/02/24 23:07:52
あ、これじゃあ順番が保存されない可能性があるか。ゴメン。

280 :278:05/02/24 23:12:14
負けた……orz

もういっちょ。
ary = [1, a, 2, b, 3, c]
ary2 = Array.new(ary.length/2)
ary2.length.times { |i| ary2[i] = [ary[i*2], ary[i*2+1]]}

美しくないですが。


281 :277:05/02/24 23:20:51
ary2, a = [], nil
ary2 << [a, ary.shift] while a = ary.shift

282 :276:05/02/25 01:00:55
>>277, >>278
ありがとうございました。Rubyならwhileやfor文を使わなくても
きれいに書けるかなと思ったんですが、なかなか難しいみたいですね。


283 :デフォルトの名無しさん:05/02/25 01:06:56
欝になるほど汚いコードコンテストの会場はここですか?

284 :デフォルトの名無しさん:05/02/25 01:16:47
>>282
> Rubyならwhileやfor文を使わなくても
そーいや、ここしばらくイテレータ以外で繰り返し処理かけてないな。


285 :Py厨:05/02/25 01:42:31
>>> ary = [1, 'a', 2, 'b', 3, 'c']
>>> zip(ary[::2], ary[1::2])
[(1, 'a'), (2, 'b'), (3, 'c')]


286 :デフォルトの名無しさん:05/02/25 01:43:53
もうRubyだめだな
汚すぎる

287 :デフォルトの名無しさん:05/02/25 08:14:11
そこだけ見て判断するのはどうかと思うが、Pythonのスライスは便利だよな。rangeと共に重宝してます
Pythonだと a[1:] とかけるのが、Rubyでは a[1,a.size-1] と書かなければいけない、など
細かい事言えば、どちらも得意/不得意な事はあるんだけど

(0...a.length/2).map{|i| a.values_at i*2,i*2+1 }
(0...a.length/2).map{|i| a[i*2,2] }

Rubyの場合、特異クラスでメソッド追加出来るので、汚い部分はメソッドのなかに閉じ込めて、


288 :デフォルトの名無しさん:05/02/25 08:27:37
>>287
>Rubyでは a[1,a.size-1] と書かなければいけない
a[1..-1]

289 :デフォルトの名無しさん:05/02/25 18:12:10
Rubyで "[a,b]" を [a, b] と評価する関数ってあったっけ?

290 :デフォルトの名無しさん:05/02/25 18:39:52
Proc オブジェクトをそのまま文字列にマーシャリングしたいんですが、
うまいやり方とかあるでしょうか。

proc = Proc.new do |foo|
...
end

みたいな proc があったとき、

proc.to_s
#=> "Proc.new do |foo|
...
end

みたいにソースコードをそのまま取り出したいんですが・・・


291 :デフォルトの名無しさん:05/02/25 19:25:12
>>289
eval
>>290
無理。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40330


292 :290:05/02/25 20:37:59
無理なのか・・・
>>291
どうもありがd


293 :デフォルトの名無しさん:05/02/25 21:20:53
> 276
ary.values_at(*(0..ary.length-1).select{|a| a%2==0}).
zip(ary.values_at(*(0..ary.length-1).select{|a| a%2!=0}))

294 :デフォルトの名無しさん:05/02/26 02:01:24
ぱっと見て何をやってるかわからない1行よりは、素直な5行のほうがいいコード
5行がいやならメソッドに切り出せばいいし

295 :デフォルトの名無しさん:05/02/26 02:16:04
RubyにCとかで言うところのマクロはありますか?


296 :デフォルトの名無しさん:05/02/26 02:20:18
プリプロセッサに直接対応するものはない。
でもプリプロセッサの個々の機能に対応するRubyの機能はないとは限らない。

297 :デフォルトの名無しさん:05/02/26 02:47:51
>>294 と、素直な5行のコードも書けない奴がほざいております。

298 :294:05/02/26 03:54:04
じゃあ5行で。

array = [1, 'a', 2, 'b', 3, 'c']
result = []
while e = array.shift do
result << [e, array.shift]
end

まあ、やってることは >281 とかわらんが。


299 :デフォルトの名無しさん:05/02/26 03:58:06
どうでもいいが、インデント修正。

array = [1, 'a', 2, 'b', 3, 'c']
result = []
while e = array.shift do
 result << [e, array.shift]
end

300 :デフォルトの名無しさん:05/02/26 10:52:59
>>298
>>299
Nice post!!

トリッキーなのも
「一行書き捨て、今後もう使わんだろー」っていうスクリプトならいいけど、
プログラムとして継続的につかい、しかも他人との共同作業であればなおさら、
ちょっとわかりやすすぎるし、ちょっと長いけど、単純な記述のほうが
あとあとうれしいもんだ〜ね。

........聞いてるかっ福沢!<だれやねん。

301 :デフォルトの名無しさん:05/02/26 10:54:58
ソースが仕様書 なRubyなのになにをいまさら.

302 :デフォルトの名無しさん:05/02/26 11:09:34
>>300
自分突っ込みは痛いんで、もう死んだほうがいいと思うよ?

303 :デフォルトの名無しさん:05/02/26 12:01:09
Rubyでヘンだと思うところは
empty_array = []
empty_hash = {}
みたいな空データを作ってから、そのあと
<< で要素を追加していくところ。


304 :デフォルトの名無しさん:05/02/26 12:16:13
副作用を利用したコードって、わかりやすい?

305 :デフォルトの名無しさん:05/02/26 12:31:47
ary = [1, a, 2, b, 3, c]
ary2 = ([[,]])ary

306 :デフォルトの名無しさん:05/02/26 12:42:31
http://www02.so-net.ne.jp/~greentea/pre.html

バカが往くのひとはどこの誰に切れたんですか?

307 :デフォルトの名無しさん:05/02/26 12:49:41
>>304
def mkpair(cs)
if cs.nil? || cs.length < 2; []
else ; [[cs[0],cs[1]]] + mkpair(cs[2..-1]) ; end
end
p mkpair([1, 'a', 2, 'b', 3, 'c'])

副作用もループもなしで

308 :デフォルトの名無しさん:05/02/26 13:27:26
tail recursionきたー

309 :デフォルトの名無しさん:05/02/26 13:44:13
しかしRubyの汚く詰めて書いたほうが勝ちって風潮はいったいどこから来てるんだろう

310 :デフォルトの名無しさん:05/02/26 13:53:35
Matzが1行プログラム好きだから

311 :デフォルトの名無しさん:05/02/26 13:58:15
>>309
それはあなたの思い込みでしょう。
そもそもそんな風潮なんてないし、
そもそも詰めて書いたら汚いなんてこともないし、
そもそも勝ち負けなんてないし。

312 :デフォルトの名無しさん:05/02/26 14:45:55
>>308

def mkpairs(cs)
def loop(rs,cs); (cs.nil? || cs.length<2) ? rs : loop(rs+[[cs[0],cs[1]]], cs[2..-1]); end
loop([],cs)
end
p mkpairs([1, 'a', 2, 'b', 3, 'c', 4])

>>307 は tail recursion じゃないと思われ。こっちの方がシンプルか?

def mkpair(cs)
(cs.nil? || cs.length<2) ? [] : [[cs[0],cs[1]]] + mkpair(cs[2..-1])
end
p mkpair([1, 'a', 2, 'b', 3, 'c', 4])


313 :デフォルトの名無しさん:05/02/26 14:56:50
>>307
>>312
どちらも
[[[1, 'a']], [[2, 'b']], [[3, 'c']]]
こうなってしまいませんか?


314 :デフォルトの名無しさん:05/02/26 16:15:01
>>313
実行してみると、きちんと [[1, "a"], [2, "b"], [3, "c"]] が出てくるけど。

315 :デフォルトの名無しさん:05/02/26 20:26:37
>>300
祥子お姉さま、お呼びになりましたか?

316 :デフォルトの名無しさん:05/02/26 21:59:35
ruby/tkの使い方がよくわからず、こまっとります
たとえば変数aを1秒間に10回監視しa=1の時、正方形の中身を赤
2の時は青、それ以外の時黒に塗るというのはどう書けばいいのでしょうか?

317 :デフォルトの名無しさん:05/02/27 00:52:28
>315
ごきげんよう。

318 :デフォルトの名無しさん:05/02/27 05:37:53
>>285
pythonやyorickの添え字増分は便利だねえ。rubyでまねるならこうかな。

class Array
alias_method(:aref, :[])

def [](*a)
range, by = *a;
return aref(*a) unless a.size == 2 and range.is_a?(Range)
tmp = aref(range)
tmp.values_at(*(0..(tmp.size-1)/by).map{|i| i*by})
end
end

ary = [1, 'a', 2, 'b', 3, 'c']
p ary[0..-1, 2].zip(ary[1..-1, 2])

319 :デフォルトの名無しさん:05/02/27 05:53:49
>>316
tkに限らず、1秒に10回と正確に指定するのは無理だと思う。
ためしに sleep 0.1 のループを別の忙しいループと並べて走らせたら、
100回で1割程度の遅れがでた。

320 :デフォルトの名無しさん:05/02/27 06:21:06
>正確に
論点はそこではないだろ

321 :デフォルトの名無しさん:05/02/27 07:51:59
誰が見てもわかりやすい、メンテしやすいコーディングという面から考察した場合
イテレータを使うというのはどうなんだろう・・

rubyらしいコーディング・・ かぁ・・・・ むーん

322 :デフォルトの名無しさん:05/02/27 09:32:29
とりあえず、何でrubyが読みやすい言語ってことに
なっている(売りにしている)のかがよくわからん。
慣れれば書きやすいとは思うが読みやすいとは全然思わない。


323 :デフォルトの名無しさん:05/02/27 10:52:07
perlより、というプリフィックスをつけるんだ!

324 :デフォルトの名無しさん:05/02/27 12:27:24
無駄にいろんな機能を使いこなそうとせずに
普通に書いてる分にはきれいで読みやすいと思うけどね。

325 :デフォルトの名無しさん:05/02/27 13:31:17
>>321
イテレータって問題なの?
Rubyを知らない人にはわからんだろうけど。

>>322
じゃあ例えば何なら読みやすい?

326 :デフォルトの名無しさん:05/02/27 13:34:03
lisp

327 :デフォルトの名無しさん:05/02/27 14:51:25
んー、確かにRubyがよくわかってる人なら問題ないのかもしれないけれど

「ん、 なんだ この識別子は・・」 ->defってるところを探す
「ふむ・・ ここか・・ なになに?・・」

ここで思考停止になるパターン多そうな気がしない?

yield、イテレータの引数、渡されるブロック、ブロックパラメータ・・・
「んん?? これが・・ こうなって・・あれれ?」


328 :デフォルトの名無しさん:05/02/27 15:12:46
インタフェイスを複雑にしない
適切な名前をつける

329 :デフォルトの名無しさん:05/02/27 15:43:04
>>328
例えば、String型のデータを作るとき。

str_test01 = ""

とせずに、

str_test02 = String.new("")

とすると、大量な文字の羅列が積み重なるファイルの中では
ひとつひとつの行では、一見わずかな効果しか無いようだが、
積み重なったとき、実感できるほどに「見通し」が良くなるような気がする。

タイプの量は増えるけど、後々を考えると、どうだろう。

330 :デフォルトの名無しさん:05/02/27 15:49:55
イテレータの使い方とか表面的なことすらわかってない人を
「Rubyをちょっとはわかっている人」と言えるのか?
いや、イテレータの理論とかは俺も知らないが。

他の有名な言語ではあまり見ないfeatureだから
他の言語を知っている(特に手続き型な言語しか知らない)Ruby初学者には
直感が働かないところかもしれないけどね。

しかしそんなやつにRubyのソースをメンテさせたりするな。
Cしか知らないやつにC++のソースをメンテさせるのと同じくらい無茶だ。

331 :デフォルトの名無しさん:05/02/27 16:00:26
>>329
言いたいことが全然伝わってこない。
例が""じゃString.newを書き足しても冗長なだけに見える。
さらに変数名がstr_だったら普通Stringだと伝わるだろう。
これはまさに>>328の言うとおり。

多分例が悪いんだと思う。それともまた型の話か?

332 :デフォルトの名無しさん:05/02/27 16:22:21
>>303
> 名前: デフォルトの名無しさん Mail: sage 投稿日: 05/02/26 12:01:09
> Rubyでヘンだと思うところは
> empty_array = []
> empty_hash = {}
> みたいな空データを作ってから、そのあと
> << で要素を追加していくところ。

え? Hashって、<< で要素を追加できたっけ?

333 :デフォルトの名無しさん:05/02/27 18:58:35
[]=といいたいんだろう。たぶん。

334 :デフォルトの名無しさん:05/02/27 19:47:28
>303
ケースによるけど、Array の場合は
* ブロック付きの Array.new
* Enumerable#collect
などで、空データに追加していく形式を避けることができるかもしれない。

Hash の方は
enum.inject({}){|h,k| h[k] = yield(k); h}
とか
enum.inject({}){|h,args| k, v = *yield(*args); h[k]=v; h}
みたいなことをしてくれる初期化メソッドが用意されててもいい気がする。

--
というか、>>303がヘンじゃないと思うのがどういう書き方なのか
教えてもらえるとありがたい。

335 :デフォルトの名無しさん:05/02/27 20:27:24
コレクションを新しく作ったら中が空なのは自然だと思うが。

Java で
ArrayList arrayList = new ArrayList();
arrayList.add("java");
とやるのが変じゃないと思うなら、
[] とか << を使うのが変ってことなんだろうね。

336 :デフォルトの名無しさん:05/02/27 21:02:17
Announcing RubyGems 0.8.5
http://rubyforge.org/forum/forum.php?forum_id=2474

337 :デフォルトの名無しさん:05/02/27 21:34:49
>>334
純関数型言語的書き方でない?

338 :デフォルトの名無しさん:05/02/27 22:10:30
>>321
お前もうずっとCOBOL使っとけ。
「お前の望むような形での誰が見てもわかりやすい」言語だぞ。


まともなプログラマは吐き気を覚えるけど。

339 :デフォルトの名無しさん:05/02/27 22:26:01
イリテータを使うのは、むかつく

340 :デフォルトの名無しさん:05/02/27 23:13:29
array = [1, 'a', 2, 'b', 3, 'c']

require 'enumerator'
p array.enum_for(:each_slice,2).to_a
# => [[1, "a"], [2, "b"], [3, "c"]]

341 :デフォルトの名無しさん:05/02/27 23:21:17
>339
まぁ、いらいらするだろうなぁ。
http://dictionary.goo.ne.jp/search.php?MT=irritate&kind=ej

342 :デフォルトの名無しさん:05/02/28 00:53:11
ヤボだなあ

343 :デフォルトの名無しさん:05/02/28 01:04:01
>>338
COBOL-Rubyのブリッジを作ったら松江の会社に雇ってもらえるかも。

344 :デフォルトの名無しさん:05/02/28 02:25:07
>>338
イテレータの使用はわかりやすいとして
定義は わかりやすい、見やすい書式だ と思うか?


345 :デフォルトの名無しさん:05/02/28 02:39:37
通りすがりだけど、
yieldというキーワードがちょっとわかりにくいのをのぞけば、
十分わかりやすいと思うよ。

346 :デフォルトの名無しさん:05/02/28 02:41:27
ルビオタにそんなこと聞いたら答えは明らかだろ。
Rubyに初心者が寄り付かないのはHSPが大盛況である理由と正反対の理由だから。

347 :デフォルトの名無しさん:05/02/28 02:47:18
HSP みたいな普及はしなくていいよ。

348 :デフォルトの名無しさん:05/02/28 04:22:53
そうか、 yield のおかげで初心者が寄り付かなくなってくれていたのか。
yield 様様だな。

349 :デフォルトの名無しさん:05/02/28 08:19:22
yieldがいやなら、&blockで受けて、block.callしとけ。

350 :デフォルトの名無しさん:05/02/28 10:42:43
イテレータってメソッド毎に最大1つしか渡せず、
変数のスコープがちょっと変な無名高階関数だと思ってるけど間違ってる?

手続き型言語と関数型言語のいいとこどりをめざした感じで
個人的には結構好き。この2つの制限がなければもっと嬉しいけど。

351 :デフォルトの名無しさん:05/02/28 13:41:26
> メソッド毎に最大1つ
これは文法的に動かないだろうな。

> 変数のスコープ
こっちはたぶんRuby2で変わるはず。

352 :デフォルトの名無しさん:05/02/28 14:24:28
最近、イテレータブロックを複数渡すようにする話があったようななかったような。

353 :デフォルトの名無しさん:05/02/28 15:17:25
素直にlambdaにすりゃいいのに

354 :デフォルトの名無しさん:05/02/28 15:20:20
クロージャネストさせるとデバッグできないって某shiroさんも言ってたぞ

355 :デフォルトの名無しさん:05/02/28 15:30:45
>>352
ポインタきぼん。
どう渡してどう区別するんだ?

hoge() foo:{...} bar:{...}
def hoge
foo:yield
end

356 :デフォルトの名無しさん:05/02/28 15:38:26
メッセージパッシングモデルのOOPがレシーバ1つに特化したのと同じで、
クロージャ1つに特化したイテレータ文法はそれなりに成功してると思うけどなあ。
複数わたすなら明示的に普通の引数の一つとした方がよいだろうね。
ブロックとProcオブジェクトの微妙過ぎな違いもなくして統一し、
{ |a,b| ... } をRubyにおけるlambda式の表現としてどこにでも書けるように
するのがいいと思う。


357 :デフォルトの名無しさん:05/02/28 17:59:33
その場合、|引数|を必須にするってこと?
今のparse.yで実装できるかなぁ。

358 :デフォルトの名無しさん:05/02/28 18:12:16
Ruby2って今のparse.yを使うの?

359 :デフォルトの名無しさん:05/02/28 18:58:30
イテレータって名前がいやらしいよね

360 :デフォルトの名無しさん:05/02/28 22:24:08
>>358
ん? >>356は1.9じゃなくてRuby2での話?


361 :デフォルトの名無しさん:05/02/28 23:05:35
イレテーナ?


362 :デフォルトの名無しさん:05/02/28 23:40:20
>>361
アリゲータ
              ヴッ!

363 :デフォルトの名無しさん:05/03/01 09:47:22
>>360
>>356>>356の意見でしょ。ロードマップにあるわけではなく。
>>358は「Ruby2で全部書き直すならそれもありじゃん?」ってことじゃないかな。

んで、Ruby2って全部書き直すんだっけ。大幅な改造だと思ってた。
だって1.9が2の実験版だとしたら、
1.9から1.8に頻繁にバックポートされてるのがちょっと不思議だし。

364 :デフォルトの名無しさん:05/03/01 11:10:46
バックポートされてんのは、だいたいバグフィックスでない?
>>356は以外と簡単だな。パッチで100行もいかなかった。

365 :デフォルトの名無しさん:05/03/01 23:01:34
>>364
なかださん?

366 :デフォルトの名無しさん:05/03/01 23:12:56
>>365
そういうこと聞かないの。

367 :デフォルトの名無しさん:05/03/01 23:14:22
>>365
聞かなくても分かることは聞かないの。

368 :デフォルトの名無しさん:05/03/01 23:19:25
1.10マダー?

369 :デフォルトの名無しさん:05/03/01 23:45:47
>>368
次は 1.a.0 になります。

370 :デフォルトの名無しさん:05/03/02 14:22:46
>>365-367
100行越えてたぞ。

371 :デフォルトの名無しさん:05/03/03 12:15:58
pack と unpack で「レシーバの型はどっちだったっけ?」と毎回リファレンスマニュアルを引いてるのは漏れだけ?

372 :デフォルトの名無しさん:05/03/03 15:50:28
packとunpackはテンプレート文字列が覚えられないので自らは使わない。
あんなのはPerlの悪習さ!(負け惜しみ)

373 :デフォルトの名無しさん:05/03/03 15:52:51
互換性のない型への型変換を行うほぼ唯一の方法だったりするわけだが。
しかし、packとunpackでレシーバの型を悩む理由がよくわからん…

374 :デフォルトの名無しさん:05/03/03 16:01:39
型変換に使うもんなのか。
バイナリ文字列の生成/パースと簡易Marshalくらいの用途しか考えてなかった。
素人でスマソ

375 :デフォルトの名無しさん:05/03/03 17:21:19
もちろん普通はそういう用途に使うわけだけどね

376 :デフォルトの名無しさん:05/03/03 17:26:47
Array#pack => String, String#unpack => Array

だっけ。
どうしてpackがArrayのメソッドなんだろうって、変換する要素がひとつの時に悩む。

>>374
自分も同じ。型ってこの場合chatとかbyteの事だと思う。

データ構造定義するときに一度wrapper method定義してしまえば、
あとは、pack/unpackを直接呼ぶ事は少ないけどね。

377 :デフォルトの名無しさん:05/03/03 19:39:11
Time.parse("aaaaa") とかが例外にならないのって意図された動作なの?

378 :デフォルトの名無しさん:05/03/03 19:59:21
>>377
意図された動作だと思う。例外を出すコードも見当たらないし。
Time.parseはParseDate.parsedateの結果を元にTimeオブジェクトを
用意するけど、足りない部分は第二引数(省略時はTime.now)で補われる。

ParseDate.parsedate("aaaaa")
# => [nil, nil, nil, nil, nil, nil, nil, nil]

この結果から、結局Time.nowと同じ結果が得られる。

これが望まれた動作かどうかは別の話だけど。


379 :278:05/03/03 20:20:22
>>377
"aaaa".to_i が 0 になったりするあたり、 Ruby ではこのテのメソッドは原
則的に「パースできるとこまでパースして、その結果をもとに値を決定する」
というポリシなのでは。


380 :デフォルトの名無しさん:05/03/03 20:29:40
単に C の atoi() や strtol() の仕様を継承してるだけのような。

381 :デフォルトの名無しさん:05/03/03 20:40:28
nkf を捨てる時期に来ていることに気づく人がそろそろ出て来てもいいんですよ。

382 :デフォルトの名無しさん:05/03/03 20:46:19
>>379
Integer("aaaa")
# => ArgumentError: invalid value for Integer: "aaaa"


383 :デフォルトの名無しさん:05/03/03 20:53:50
aString.to_i と Integer(aString) は別物なんだよね。

384 :デフォルトの名無しさん:05/03/03 21:44:03
TimeとDateとDateTimeとrequire "time"したあとのTimeで
いつも悩む。rfc2822メソッドはどれだっけとか。


385 :デフォルトの名無しさん:05/03/03 22:59:07
>381
基本的に同意。まるで外部プロセスを起動するかのような使い方がもにょって仕方がない。
こないだから半分冗談でJcode.pmをRubyにベタ移植したらどうだろうとかやってるが
仕事がしんどくて10%の進捗のまま半月放置中さ´`,、(´∀`)´`,、
……誰かがんがってくれぇ(つ´д`;)

386 :デフォルトの名無しさん:05/03/03 23:09:11
>>385
いや、界面の設計は割とどうでもいいと思ってるのよ。
問題はもっと別のところにあるわけなのだが・・・

387 :デフォルトの名無しさん:05/03/03 23:49:33
ruby-icu キボンヌ

388 :デフォルトの名無しさん:05/03/03 23:59:59
>386
そうなのか。ヘタレな同意でスマンカッタ

389 :デフォルトの名無しさん:05/03/04 00:52:39
>>386
どんな問題?
個人的にはインタフェース(と動作)がまともなら中身はどうだっていいんだが

・・・いや、nkf のインタフェースがいけてるという意味じゃないよ?

390 :デフォルトの名無しさん:05/03/04 01:46:25
PerlIOみたいな文字コード変換はどうよ

391 :デフォルトの名無しさん:05/03/04 04:13:16
>>376
chat型 ハァハァ


392 :デフォルトの名無しさん:05/03/04 09:31:36
インターフェースも動作もいけてない、それで中身がまともならよかったけど
中身もまともじゃない、ということでは。

念のために言うと、nkfをライブラリとして使ってることによる問題なのであって、
コマンドとしてのnkfがどうこう、という話ではないよ。

393 :デフォルトの名無しさん:05/03/04 10:53:23
syckとnkfは読む気にならんな。

394 :デフォルトの名無しさん:05/03/04 19:15:56
YAML は仕様からして糞なので。 spec 読んだら XML の方がマシと思えるよ。マジで。

395 :デフォルトの名無しさん:05/03/04 19:18:39
>>394
YAML::StoreみたいなXML::Storeってあったっけ?
あるならそちらに乗り換えたい。


396 :デフォルトの名無しさん:05/03/04 20:35:14
spec とか読まずにフィーリングでさくさく書いてるやつ (=俺) には
YAML のほうがあってるってことかな。
Rubyist はこういうやつが多いと思ってたけどそうでもないんだな。

個人的には結構 YAML 使ってるけどまだ妙な仕様にはまったことはない。
使い方が足りないだけか。

397 :デフォルトの名無しさん:05/03/04 20:53:33
他言語間でデータやりとりし始めると死にたくなってくるから。マジで。

398 :デフォルトの名無しさん:05/03/04 21:33:18
>>396
俺も使っているし自分で書いたりもするけど、
Ruby 1.8.2までに少しずつ出力結果や入力時の解釈が変わってきているので、
YAML(syck)のバージョンを跨いで同じデータを扱う時には
注意が必要だった。なかなか気付けない事が多いけどorz


399 :デフォルトの名無しさん:05/03/04 22:18:53
>>397
具体的にきぼん。

400 :デフォルトの名無しさん:05/03/05 03:49:46
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/40644
これ見て思ったんですが、
__FILE__

File.expand_path(__FILE__)
これって、違いってあります??

どちらも、絶対pathの気がするんでうすが。

401 :デフォルトの名無しさん:05/03/05 04:41:55
違う。
__FILE__の仕様読み返せヴォケ。

402 :デフォルトの名無しさん:05/03/05 13:15:59
るbyさいこう

403 :デフォルトの名無しさん:05/03/05 14:15:13
Ruby再考!!!!!!

404 :デフォルトの名無しさん ◆m7YeytgDFE :05/03/05 19:42:13
>>400
実際に試しましたか?
カレントディレクトリに下記のスクリプトをtest.rbとして置いて、
カレントディレクトリで"ruby test.rb"を実行すると分かるのでは?

puts( __FILE__ )
puts( File.expand_path( __FILE__ ) )

下記のリファレンスマニュアルには該当する記述がないんですね。
ttp://www.ruby-lang.org/ja/man/?cmd=view;name=%CA%D1%BF%F4%A4%C8%C4%EA%BF%F4


405 :デフォルトの名無しさん:05/03/05 21:36:14
marshalに格納されているデータを更新日順に並べることってできませんか?
例えば5万件以上含まれているとき、古い方から1万件削除、とかそういうことをやりたいのですが

marshal使うのやめてテキストにはき出して処理するしか方法がないんですかね

406 :デフォルトの名無しさん:05/03/05 22:24:18
>>405
テキストかmarshalかは関係ないと思うけど?
更新した時刻のデータが入ってるならそれ見ればいいし、入ってないなら無理だ。

具体的にmarshalをどんな使い方してるのかが分からないと何とも。

407 :デフォルトの名無しさん:05/03/05 22:48:32
>>406
hashに単語の登場回数を1対1で記録しています

処理させるデータの変遷によって、最近は見なくなったな〜
というような単語に関しては古い方に回していって消えてくれる
といった処理をさせたいのですが。

どうしたものでしょ

408 :デフォルトの名無しさん:05/03/05 23:13:48
marshalどこ?

409 :デフォルトの名無しさん:05/03/05 23:17:05
>>408
hashをmarshalにdumpしてるのです

410 :デフォルトの名無しさん:05/03/05 23:20:33
marshal はまったく関係ないような気がするんだけど、気のせいかな。

411 :デフォルトの名無しさん:05/03/05 23:31:06
ttp://raa.ruby-lang.org/announce20050304.html

> In reaction to a discussion on ruby-talk ML, raa-admin checked links of
> whole RAA projects today (Mar 4 2005). In what follows, you can see the
> result. Please find your project and check the result.

412 :デフォルトの名無しさん:05/03/05 23:36:37
ところで、なんでわざわざ英語で書くんだろうね。
馬鹿?

413 :デフォルトの名無しさん:05/03/05 23:38:51
…?

414 :デフォルトの名無しさん:05/03/05 23:42:01
米礼讃主義だからだ。
所詮戦争に負けた国だ。

415 :デフォルトの名無しさん:05/03/05 23:52:36
日本人にフィードバックしても得るところがないからだよ。戦争とかは関係ない。

416 :デフォルトの名無しさん:05/03/05 23:54:39
まつもとが日本人嫌いだからに決まってんじゃん

417 :デフォルトの名無しさん:05/03/06 00:06:00
ていうか英語で書けば世界中の人が読めるのに
わざわざ日本語で書く理由が分からない

418 :デフォルトの名無しさん:05/03/06 00:12:14
>ていうか英語で書けば世界中の人が読めるのに
ちゃんと読める英語を書ければね。
もはやネタに近いが、お米の国の人との交渉の席で
「マイ・フェイス、ドント・スタンド!!」
とのたまったお役人が居たそうで……

419 :デフォルトの名無しさん:05/03/06 00:20:37
で、その役人と何の関係があるんだい?低脳君

420 :デフォルトの名無しさん:05/03/06 00:23:28
最近、米語が世の中で一番単純な言葉のような気がしてきた。
三単現は理不尽だから止めて欲しいけど……

421 :デフォルトの名無しさん:05/03/06 00:28:22
オタ向けの貧相な技術文書だけ読んでればそう勘違いしてしまっても不思議ではない

422 :デフォルトの名無しさん:05/03/06 00:31:23
>419
ん。だから、藻前さんのように、ちゃんと読める英語を書ける香具師なんて
日本にそうそういねーよ、って話。

423 :デフォルトの名無しさん:05/03/06 00:36:30
だから何?

424 :デフォルトの名無しさん:05/03/06 00:57:25
もうラテン語で書けばええやん

425 :デフォルトの名無しさん:05/03/06 01:15:09
Rubyを勉強しようと思うんですが、おすすめの本はありますか?

426 :デフォルトの名無しさん:05/03/06 01:28:08
世界宝石百科

427 :デフォルトの名無しさん:05/03/06 01:30:00
http://www.amazon.co.jp/exec/obidos/ASIN/4873112087

428 :デフォルトの名無しさん:05/03/06 01:32:59
>425
つ[http://www.rubycentral.com/book/]

429 :デフォルトの名無しさん:05/03/06 01:36:11
Ruby のどんなことを勉強したいのか書かないと。
とりあえず気楽に読み書きできるようになりたいだけなら、
ある程度 C とか他言語の知識があれば Web で十分じゃないかな。

430 :デフォルトの名無しさん:05/03/06 01:38:02
日本語訳は http://www.pearsoned.co.jp/washo/prog/wa_pro44-j.html ね。
256本では遂に出なかった「王道編」ですな。


431 :デフォルトの名無しさん:05/03/06 01:38:34
たけーよ

432 :425:05/03/06 01:40:20
まったくの初心者なのでわかりません。
おすすめの言語みたいなので勉強しようと。

433 :デフォルトの名無しさん:05/03/06 01:40:33
この手の本としては普通くらいじゃね?

434 :430:05/03/06 01:40:43
>431
>428ならフリーだぞ。

435 :デフォルトの名無しさん:05/03/06 01:57:39
256倍を乱発してこけまくったせいで
各出版社がRubyに関する本を出すのに躊躇するようになったって話だ

436 :デフォルトの名無しさん:05/03/06 01:57:41
言い返せない>>431に萌え

437 :デフォルトの名無しさん:05/03/06 03:09:53
>>412-424
たくさん釣れてよかったね。>>412

438 :デフォルトの名無しさん:05/03/06 04:04:44
仕事でネットワーク管理やっているんだけど,net/ipaddr が非常に使いづらい。
で,RAA を探したら net/netmask なんてものがあった。

RAA - netmask
http://raa.ruby-lang.org/project/netmask/

これが異常に使いやすくて,必要な機能が全部入っている (IPv4 だけだけど)。
個人的には net/netmask が標準ライブラリになってほしいんだけど,
なんで net/ipaddr が標準ライブラリになっているの?

This library is deprecated if you are using 1.8.0,
which includes the much more complete 'ipaddr' library.

とか書かれているけど,ipaddr は全然 complete じゃないよなあ。

439 :デフォルトの名無しさん:05/03/06 05:27:23
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/50946
で2002/09にnetmask.rbが公開されるも、激しく放置。
そうこうしてるうちに2002/12にipaddr.rbが登場。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/19009
最初から標準ライブラリ入りが決定気味で、実際同月に取り込まれた。

どうも比較検討されたわけじゃないっぽいね。存在が知られてなかっただけ?
確かにnetmask.rbのほうがかなり使いやすそう。Danタンショボーン。

440 :デフォルトの名無しさん:05/03/06 07:59:10
>>420 >>424
エスペラントという選択肢もあるぞ

>>425
プログラミングに馴染みがないなら、とりあえず「たのしいRuby」で。
他には上で挙がってた「プログラミングRuby」なんかもお薦め。

256倍シリーズはお薦めできない。いい本と悪い本がごちゃ混ぜになってるから

441 :デフォルトの名無しさん:05/03/06 10:17:17
>>440
ありがとうございます。プログラミングRubyでやってみます。

442 :デフォルトの名無しさん:05/03/06 12:32:12
rubyごときで本買う気が起きない。

443 :442:05/03/06 12:47:23
Perl様の為なら喜んで大人買いするがな。

444 :デフォルトの名無しさん:05/03/06 12:54:04
静的なスコープってなに?

445 :デフォルトの名無しさん:05/03/06 13:18:40
Perlはラクダ本がオライリージャパンお得意の分冊になったのがショボーン

446 :デフォルトの名無しさん:05/03/06 13:43:14
>>437
それを釣りというならお前も釣られてんな

447 :デフォルトの名無しさん:05/03/06 14:47:40
>>444
変数と値の対応関係とか(スコープ)が実行時ではなく、コンパイル時に決定さ
れていること。 Lisp の話だけど、
http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/comparison.html
の中程で動的スコープと静的スコープの説明をしているのがわかりやすいかも。

Ruby で説明すると、
a = 10
l = lambda { a }
def m(a, l)
l.call()
end
m(30, l) # => 静的なら10、動的なら30になる

つまり、コンパイルする段階で、 l の中の a が何を指しているか決まってい
るので、どこで実行しても参照先が変わることはない。これが静的スコープ。
動的なら、実行時にaの対応先を調べることになり、mの第一引数が該当するか
ら結果が30になる。

448 :デフォルトの名無しさん:05/03/06 15:57:30
>変数と値の対応関係とか(スコープ)が実行時ではなく、コンパイル時に決定さ
>れていること。
この説明ってよく見るけど不正確じゃない?
動的スコープの言語がコンパイルできないみたいな印象を受けるよ。

449 :444:05/03/06 20:10:00
>>447
すごいよくわかった。さんくす。
つまり、Procオブジェクトlの中で変数aが現れたとき、それがコンパイル時点で決まっていれば静的スコープ、コンパイル時には決まっていなくて実行時に探索するのが動的スコープなのね。

447の説明ではlambdaというかProcオブジェクトを使っていて、この話はブロックでも同じことだとおもうけど、メソッド定義内でのローカル変数でも似たような話になるのかな。
あと、静的スコープと動的スコープはどっちがいいの?直感的には、動的スコープはわかりづらくデバッグしにくいように思うんだけど。


450 :438:05/03/06 23:29:45
>>439
情報ありがd。ちょと不透明だね。
しかし Dan タンの放置っぷりはすさまじいな……。合掌。

451 :447:05/03/07 00:10:45
>>449
メソッド定義内でも同じように議論もできるんだけど、 Ruby の現在の実装だ
とメソッド内は完全に別世界だから例として上手くないかな、と思ったので
Proc にした。たとえば、
a = 10
def x()
a
end
っていう時の a は Ruby だとエラーになっちゃうからね。 Scheme みたいな
レキシカルスコープな言語で似たようなことを書くと、 a は 10 を指してエ
ラーにならない。とはいえ、後ろの m をメソッドじゃなくて Proc にした方
が簡単だったかな。

ちなみに、動的スコープだと、たとえば再帰関数で毎回同じ引数を渡したりと
かいったことを省略して大域的に書いたり、ということを比較的容易に書ける
らしい。実は漏れもよくは知らない。でも、現状で動的スコープ言語が今では
ほとんどないということからして、やっぱりわかりづらいんだと思う。


452 :デフォルトの名無しさん:05/03/07 04:28:45
EmacsLispが動的スコープだっけ。


453 :デフォルトの名無しさん:05/03/07 04:47:39
あと Perl の local かな、有名所では。

>>448 でも指摘されているが
>>447 の説明と >>449 の理解は間違っていると思うぞ。
コンパイルがどうこうは定義じゃない。
そういう実装が多い (気がする) だけ。

今更だがこういう話をするのに Ruby は不適切じゃないか?
そもそもかなりのスレ違いだと思うが…。

454 :449:05/03/07 07:48:40
>>453
じゃあ正しく説明してくれ。「コンパイル時」を「構文解釈時」にすりゃOKなんて逃げはなしで。

>そもそもかなりのスレ違いだと思うが…。
某松日記にでてたんで。

455 :デフォルトの名無しさん:05/03/07 14:27:03
>>453じゃないですが。
例をあげられるくらいには理解できてるつもりだけど、
人に説明できるほど理解できてないので参照だけ。
http://ja.wikipedia.org/wiki/%E9%9D%99%E7%9A%84%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97
http://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97
ここもほとんど例だけだけどね。

本質はあってるんだからいい過ぎじゃない?>>453
知ったかを責められて開き直るのかこわるい>>454
などといいつつちゃんと説明できない漏れ


456 :デフォルトの名無しさん:05/03/07 14:31:04
動的スコープってキモイな・・・

457 :デフォルトの名無しさん:05/03/07 14:49:16
たまーに便利なこともあるよ。

458 :デフォルトの名無しさん:05/03/07 15:04:17
文脈依存スコープと呼べば無問題

459 :デフォルトの名無しさん:05/03/07 16:16:55
言葉の定義については、実行時か実行前程度でいいんじゃない?それはともかく

>>451
mをprocにすると結果が変わってくる。
メソッドないのブロックではスコープが隔離されてるだけなので
これを以て動的/静的スコープと判断するのは不適切なのでは?
>>447の場合、aの値が伝搬されてないだけとも言える。

a = 10
l = lambda{|b| eval "a", b}
def m(a,l)
l.call binding
end
m 30, l

もっと単純に

a = 10
l = lambda { a }
a = 20
l.call

> でも、現状で動的スコープ言語が今ではほとんどないということからして、
Pythonも動的スコープ, rubyも動的スコープだと思ってたんだけど?
静的だとしたら上のコードの実行結果と矛盾しませんか?

>>449
有効な利用方法は、クロージャ、遅延評価。

460 :デフォルトの名無しさん:05/03/07 16:39:50
書いてから勘違いにきがついた。
>>459はスルーよろしく

461 :デフォルトの名無しさん:05/03/07 18:22:37
matzって、なんて読むの?

462 :デフォルトの名無しさん:05/03/07 21:05:09
魔ッ

463 :デフォルトの名無しさん:05/03/07 21:48:38
orz

464 :デフォルトの名無しさん:05/03/07 22:39:52
魔ッ蔵?

465 :デフォルトの名無しさん:05/03/07 23:21:06
ま゛

466 :デフォルトの名無しさん:05/03/08 00:14:53
マットゼット

467 :デフォルトの名無しさん:05/03/08 00:30:14
ザット

468 :デフォルトの名無しさん:05/03/08 02:45:54
まっつん

469 :デフォルトの名無しさん:05/03/08 07:28:54
[ruby-talk:127803]
> Matz once told me that "matz" is Japanese for "pine"!


470 :デフォルトの名無しさん:05/03/08 08:49:19
パイン?

471 :デフォルトの名無しさん:05/03/08 09:22:03
>>470
辞書ひけ無脳。

472 :デフォルトの名無しさん:05/03/08 10:16:10
トミーと

473 :デフォルトの名無しさん:05/03/08 11:02:42
クロノと

474 :デフォルトの名無しさん:05/03/08 12:40:37
ケンサンバ

475 :デフォルトの名無しさん:05/03/08 12:40:56
ゆうべからeval.cが要C99になってる。
あと、pp.rbのInspectKeyが古いまんま。

つーか、スレッドローカル変数いじっただけで[BUG]ってのは、
厳しすぎるんでは。

476 :デフォルトの名無しさん:05/03/08 12:52:16
> ゆうべからeval.cが要C99になってる。
いろんな環境でコンパイルできなくなると思うが、なんか意味あんの?

477 :デフォルトの名無しさん:05/03/08 14:00:15
>>475,476
eval.cについては、そういうことじゃなくて、単なるバグでは。
もう直されたみたいだけどね。

478 :デフォルトの名無しさん:05/03/08 16:11:38
>>475
関係ないけど、関数定義(の引数)のスタイルはいい加減、C89にならんもんかいね。1.9とかで。
何かにつけては結局規格を頼りにしてんのだから、そろそろやめません?

479 :デフォルトの名無しさん:05/03/08 16:13:12
Cは可読性低いからLispかHaskellで書き直して欲しいよ。

480 :デフォルトの名無しさん:05/03/08 16:16:03
そんな事より[ruby-list:40650]の意図をつかみかねて夜も眠れないのは漏れだけですか、そうですか。

481 :デフォルトの名無しさん:05/03/08 16:17:30
>>480
Rubyネタの振りをしたspamだと思えばよいかと


482 :デフォルトの名無しさん:05/03/08 16:35:09
単に実行するだけでいいんだから随分質の低い募集だな。


483 :デフォルトの名無しさん:05/03/08 17:07:16
あのセンスがわかるかどうかが一次選考の決め手なのかな。

484 :デフォルトの名無しさん:05/03/08 17:14:26
あのプログラムの可読性はどうよ?

485 :デフォルトの名無しさん:05/03/08 18:14:02
取り立てて良くも悪くもないんじゃない?

486 :デフォルトの名無しさん:05/03/08 18:32:20
俺は105点だった。実行はしてないけど。

487 :デフォルトの名無しさん:05/03/08 20:27:28
必要とするスキルをお持ちで無いようです。

488 :デフォルトの名無しさん:05/03/08 21:29:24
>>478
規格を頼りにするのと関数定義スタイルを変えるのになんの関係が。
K&Rスタイルが規格違反になったわけでもないのに。

489 :デフォルトの名無しさん:05/03/08 22:11:12
>>488
ANSI-Cを頼りにする→処理系の前提としてANSI-Cがある→K&Rスタイルを貫くことに互換性の面では意味がない→ANSIスタイルにしたってええやん

ってつもりでした。

490 :デフォルトの名無しさん:05/03/08 22:16:43
互換性のためにやってるんじゃなくて、単に作者の好み

491 :デフォルトの名無しさん:05/03/09 01:20:10
[ruby-core:3518] (From: Matz)
> | What is holding back a conversion of the K&R code
> | to use prototypes ?
>
> My preference. I like prototypes. But I dislike the new style
> argument list, especially when the list becomes large with type
> names.


# blade で ruby-core は検索できないのね……。

492 :デフォルトの名無しさん:05/03/09 13:04:53
規格をベースに考えるというのと、規格(の一部)以外は無視する
というのは違う。

規格非対応処理系ってのは、結構あるわけで。
現にまた一つ-devに出てるとこだし。

493 :デフォルトの名無しさん:05/03/09 18:54:26
ハァ?
何がチミの心の琴線に触れて瞬間沸騰してしまったのかは知らないが
ちっとは落ち着けよwwwwwww

何に対して具体的事例を示して欲しいんだい?
こうやって「僕は頭が悪くないんです!」と言いたいだけなのは分かるが
指針もロクに示さずに「低能」「脳ミソの内部がショート」「薄っぺらな知識」
「現実を無視して揚げ足取り」と罵詈雑言を弄してるだけじゃ「頭が悪い」と思われても仕方が無いぞワラ


494 :デフォルトの名無しさん:05/03/09 19:37:10
>>493
誤爆どんまい…

495 :デフォルトの名無しさん:05/03/09 19:58:41
すとやんって日本人なん?

496 :デフォルトの名無しさん:05/03/09 21:23:50
>>493
ハァ?
何がチミの心の琴線に触れて瞬間沸騰してしまったのかは知らないが
ちっとは落ち着けよwwwwwww

497 :デフォルトの名無しさん:05/03/09 22:26:47
誰でも良いから心の琴線で何かが瞬間沸騰したところを見せてくれ(−−;

498 :デフォルトの名無しさん:05/03/10 01:10:09
今日の使えるフレーズ

「何がチミの心の琴線に触れて瞬間沸騰してしまったのかは知らないが
 ちっとは落ち着けよ」 ――― 493

499 :デフォルトの名無しさん:05/03/10 01:45:52
-talk:133197に日本人がいないことについて

500 :デフォルトの名無しさん:05/03/10 01:53:24
日本人は絶滅しますた

501 :デフォルトの名無しさん:05/03/10 10:40:51
思えば少子化が酷かったしね

502 :デフォルトの名無しさん:05/03/10 11:43:27
子供のときに川でねずみ食べてる日本人を見たことあるよ

503 :デフォルトの名無しさん:05/03/10 11:50:04
ttp://shugo.net/ruby/mlsearch.rbx?query=%22%E6%AC%A1%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%A8+core+%E3%82%92%E5%90%90%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%22

504 :デフォルトの名無しさん:05/03/10 20:16:57
>>503
w

505 :デフォルトの名無しさん:05/03/11 23:54:16
http://redhanded.hobix.com/redesign2005/

506 :デフォルトの名無しさん:05/03/12 02:05:13
Ruby2.0のブロックローカル変数の書き方があんまりきれいじゃない件について

507 :デフォルトの名無しさん:05/03/12 02:43:56
ブロックのパラメータ変数って、なんで||で囲む必要があるの??
2.0から、()で囲むようにすればいいじゃん。


508 :デフォルトの名無しさん:05/03/12 03:25:10
>>507
こんなかんじ?
foo do (bar, baz)
...
end
foo {(bar, baz) ... }


509 :デフォルトの名無しさん:05/03/12 07:51:35
>>507
Smalltalkからアレンジした書き方じゃなかったかな。

510 :デフォルトの名無しさん:05/03/12 11:39:39
>>507
式はカッコで括れるから、引数一個の時にコンフリクトするんじゃね?

511 :デフォルトの名無しさん:05/03/12 18:52:52
Windows CEでrubyやりたいんだけど、CE版 ruby見当たらないよ。

512 :デフォルトの名無しさん:05/03/12 19:05:55
1.8以降ではwinceディレクトリがあるだろ。
バイナリなら……シラネ。

513 :デフォルトの名無しさん:05/03/13 05:14:52
URI で infoseek なんかでよくあるアンダースコアが付いたホスト名でエラーになるのはどうにかならないかなあ?

514 :デフォルトの名無しさん:05/03/13 05:51:47
それで正常だと思うが。

どうしてもそういうのを処理する必要があるならuri/common.rbをコピって
アンダースコアを追加して、先にrequireするようにしたらいいんじゃない?


515 :デフォルトの名無しさん:05/03/13 11:46:33
URI といえば。以下は仕様なのかな。バグなのかな。

URI.extract("http://") #=> ["http//"]
URI.parse("http://") #=> URI::InvalidURIError: bad URI(absolute but no path): http//

気持ち的には extract で返される uri は必ず parse が通って欲しいんだけど。

a = []
URI.extract($_).each { |u| a.push(URI.parse(u)) } while io.gets

みたいのではまるんだよね。

516 :デフォルトの名無しさん:05/03/13 11:59:25
>アンダースコアが付いたホスト名
RFC違反だからinfoseekに通報白

517 :デフォルトの名無しさん:05/03/13 12:07:07
>>510
ブロックのパラメータ変数を||で括ってると、
|を含んだ式が中に書けないっていうのは、
そこでブロックのパラメータ変数部分が終わってしまうように見えるからじゃないの?

式の中で出てくる括弧は、(で始まって、)で終わるから、パラメータの終わりと間違うことはない。

つまり、始まりと終了で、違う記号(対応する記号)な記号を使えば、
問題ないと思うけど。


518 :デフォルトの名無しさん:05/03/13 12:19:39
k「phルウィyvフィvlヴィyvlんんぃうlgんぅgんぅgんぃうgんぅgflgぃうfぅ

519 :デフォルトの名無しさん:05/03/13 12:51:49
>>517
> 式はカッコで括れる
a = 1
(a) => # 1

> 引数一個
block{(a)} # => パラメータ変数? カッコでくくった式?

520 :デフォルトの名無しさん:05/03/13 15:23:34
>>519
なるほど。

521 :デフォルトの名無しさん:05/03/13 20:52:48
こうしてRubyは無計画な構文を作りまくってグダグダになった

522 :デフォルトの名無しさん:05/03/13 21:12:09
はい、ジャンガジャンガジャンガジャンガ〜

523 :デフォルトの名無しさん:05/03/13 22:32:11
WebアプリケーションフレームワークのDivって使いたいんですけど、
これって、ドキュメントないみたいですね。

使い方の書いたページも探したけど見つからないんですけど、
どこかにあれば教えてください。

524 :デフォルトの名無しさん:05/03/13 22:41:33
>>523
↓こっちのスレに多少情報がある

【Ruby】RubyでCGI
http://pc5.2ch.net/test/read.cgi/php/988948655/

525 :デフォルトの名無しさん:05/03/14 02:21:37
rubyって構文だけじゃなくて意味論も無計画だよね…。

[ruby-list:40519] What is singletonclass.superclass ?や
[ruby-dev:25808] break & retry in blockや
[ruby-dev:25866] Re: conflict method and local variableあたりを見てると、
「オブジェクト指向の中心に近い意味論をそんなフィーリングで実装してたのっ!?」とか
「深遠だと言われていたイテレータの理論もそんなフィーリングでっ!?」とか叫びたくなってくる。

確かに、理論的なモデルそのままに実装したら今以上に遅くなるし、
理論を極めようとしたらHaskellみたいになって一般人には使えなくなるから
どこかで折り合いつけるのは必要なんだろうけど…。

そろそろRuby10年の経験を元に、新しい言語を再設計する神に期待。

526 :523:05/03/14 02:23:08
>>524
サンクス。
dRuby本か、divipのソース、付属のサンプル読むくらいみたいですね。
2003-9のUNIX USERと。古いなぁ〜

527 :デフォルトの名無しさん:05/03/14 04:31:28
>>525
ttp://www.kmonos.net/alang/d/

528 :デフォルトの名無しさん:05/03/14 04:47:49
↑ブラクラ

529 :デフォルトの名無しさん:05/03/14 10:11:20
↑大嘘書くな。
しかし、URLを見たときは、alangという人の日記かと思ってしまった。

530 :デフォルトの名無しさん:05/03/14 13:44:21
↑グロ

531 :デフォルトの名無しさん:05/03/14 14:09:01
↑春厨

532 :デフォルトの名無しさん:05/03/14 18:49:53
            /;;;::::---,::::::::::::::::::::::::::::::ヽ
           /:/    ヽ;;;;;;:::::::::::::::::__:::::ヽ
.          {/  ,..---_   ヽ:::;:-'"r''ヾ、:ヽ  ,_._   
           l   r=''"     `'   }= ノ.l:::::', {.'ヽi __
           ,!,,、  '          ´ ,..ノ:::::::l,.>-‐!l `` ヽ、
.          i r,i  ヽ.._        `'"  l;:-'''ll ,.- !l ヽ--._ヽ,....,
           〉~l  =..ノ`ヽ、     _....-'ニ-t-l"il...--''-.| _,...ニ--'‐''''
.          i ヽイ r、ゥマフ`     '''""´ /-!、/;;;;;;;;;;;;;Y
           ヽ ヽ`f_/ ノ     ,.....,/rァ 〃-、;;;_;;;;;;;`、
            \ヽ  /     /r'ア/ / /| .:::/ |\::::`、
              \       /〃//,..-‐''!::::`、. ヽ ヽ:::::`、
               ヽ .,_    ノ// /   ,..`、‐l  `、 ヽ'"`、
    -==ニ二二二二二二二二二二二二二ニ二 ``'''ー-、-`-‐`'''l'''''"
       `'''''''''''''''ー―==、--...  ______.....>---‐~''=、-....二> [■
  -==三三三三ニニニニニ''-`=-`=-、  ,ニ、'''ー-ニニ=--`'  `ー―┴―
        `~~~''''''''''''ーニニニニー=- ,,,,,,ヽ三三ゝヽ 二二 ̄ ̄~ヾヽ
             ,.../ f;;;;;|  `~~""'''ー、;;;;;;;;;;;;;;;;;`~"'''ー--....-<"ヾ
           /    l;;;;;;;l         `~"ー-:::::__;ヘ;;;;;::::::::::二二
         r'''"     l;;;;;;;l                `ー'    `、
        /        l;;;;;;;l   

533 :デフォルトの名無しさん:05/03/14 20:50:13
↑だれ?

534 :デフォルトの名無しさん:05/03/14 21:44:50
↑おまえ

535 :デフォルトの名無しさん:05/03/14 22:13:00
↑だるだ?

536 :デフォルトの名無しさん:05/03/14 22:24:30
      //
    / .人
    /  (__)
   / ∩(____)  
   / .|( ・∀・)_
  // |   ヽ/
  " ̄ ̄ ̄"∪

537 :デフォルトの名無しさん:05/03/14 22:27:42
   ∩∩                 人            V∩              
  (7ヌ) 人       人      (_ )     人    (/ /              
 / / (_ )     (_ )    (__)    (_ )    ||              
/ /  (__)     (__)  _(・∀・ )   (__)   ||              
\ \( ・∀・)―--( ・∀・ ) ̄      ⌒ヽ(・∀・ ) //              
  \       /⌒   ⌒ ̄ヽ、    /~⌒    ⌒ /                
   |      |ー、      / ̄|    //`i     /                  
    |     | |     / (ミ   ミ)  |    |                  
   |    | |     | /      \ |    |                  
   |    |  )    /   /\   \|       ヽ                 
   /   ノ | /  ヽ ヽ、_/)  (\    ) ゝ  |                 
   |  |  | /   /|   / レ   \`ー ' |  |  /                  

538 :デフォルトの名無しさん:05/03/14 22:29:38
        人      +                                      
       (__)                                            
.  +   (__∧_∧                                        
      (  (     )                                      
    /⌒'/⌒'   ~ `)     +                               
. +  (  く(  く ノ | イ                                       
    ヽ,_'ァヽ,_'ァ   , .|    +                                  
 +    .ノヽ.ノヽ ._λ_ )      +                               
     ./ ./   ノ|  ノ                                      
     (  ( -く  |ー(                                      
     \ \ └,.| .)   +                                  
      / /,┘/ (__)                                      

539 :デフォルトの名無しさん:05/03/14 22:31:23
         n    人     人     n                        
       (ヨ )  (_ )   (_ )   ( E)                       
       / |  (__)   (__)   | ヽ                      
       \人/( ・∀・)∩(・∀・ )ヽ/  人                      
   _n    (_ )u    ( ⌒)   uu)∩_  (_ )                    
  ( l   (__)    ./,. 人     i ,,E)__)                    
   \ \ (・∀・ )   / /_)   ./ .ノ( ・∀・ )    n               
    ヽ___ ̄ ̄  )   / /____) ,/ ./ ̄    \    ( E)             
    / ̄| .  人 / / ・∀・)  / フ 人  ./ヽ ヽ_//               
    |  |. (__)       /   (__)   \_///               
    |  |. (__)\  人 ヽ    (__)    / /人              
  ,―    \( ・∀・)  (__)    ∩ ・∀・)∩  ./   .(__)             
 | ___)   |  ノ   (__)    〉    _ノ  / ∩(__)             
 | ___)   |)_)  (,,・∀・)   ノ ノ  ノ   / .| ( ・∀・)_            
 | ___)   |      ( O┬O   .し´(_)  .// |    ヽ/            
 ヽ__)_/  ≡ ◎-ヽJ┴◎                               

540 :デフォルトの名無しさん:05/03/14 22:35:51
        \          人        /                    
      //  \       (__)     /  人                  
    / .人   \     (____)    /  (__)                 
    /  (__)    \   ( ・∀・)  /(祭)(__)                 
   / ∩(____)     \ ∧∧∧∧/  Y ( ・∀・)                 
   / .|( ・∀・)_   <        >   Φ[_ソ__y_lつ                
  // |   ヽ/    <     .   >     |_|_| |                
  " ̄ ̄ ̄"∪     <        >     し'´J ,*′               
 ─────────<        >──────────          
    人     ||||||||||||<        >    人                    
   (__)    |     <        >    (__)                  
  (____)    |      /∨∨∨∨\    (__)  ∩ミ              
  (・∀・,,)     |    /  人      .\ ⊂(・∀・,,⊂⌒ヽつ              
  ( O┬O   |  .../  (__)      .\                        
◎-ヽJ┴◎   | /   (__)       .\                      
          / (>=◎( ・∀・)  (´⌒(´⌒;; \                    
             /_./ 〉⊂_ノ`  (´⌒(´≡                         
           〈/ )/__,ミ ≡≡≡(´⌒;;;≡≡                       
           (_/^´  (´⌒(´⌒;;                             

541 :デフォルトの名無しさん:05/03/14 22:40:09
曼荼羅

542 :デフォルトの名無しさん:05/03/14 22:49:02
                                                   
                                                  
                                                  
                                                  
                                                  
                                                   
                                                  
                 おいら「おいすー^^」                   
                                                  
                                                  
                                                  
                                                  
                                                   
                                                  
                                                   


543 :デフォルトの名無しさん:05/03/14 23:17:56
また鬱期に入ったのか。とりあえずsage進行で。

544 :デフォルトの名無しさん:05/03/14 23:39:14
もしかしてMF?

545 :デフォルトの名無しさん:05/03/15 00:24:53
しもんきん 陛下 めどい おちんちんランド 必殺仕事人 ゆめりあ 曙 赤提灯 メイデン系(水銀燈、雛苺、水銀灯… くそみそ、オンドゥル ガンダム ディアッカ 二次裏 マジか ちょいあ 双葉
うほっ 性欲を持て余す 痔悪化、ウホ・・・ 虹裏 仮面ライダー E&E タートルズ img 種 沙耶 としあき プリキュア
Me dat鯖 img鯖 「」 ふたなり ふたば 双葉 わはー むすー ちょいあー 足コキ みさくら 戦隊 やらせて ハリケンジャー
響鬼 アスラン アムロ サスケ ハットリくん スリーサイズ教えて 赤影 下乳 富野 生きろっ リュミーン
キタ━━━━━━(゚∀゚)━━━━━━ !!!!!  童貞 クリボー スパイダーマン ブレイド アージュ最高
誰このじじぃ すっちゃ フェラ 泣くな シャア 若本 通常のザクの3倍 いまか 無職童貞 もう寝なさい  アッガイ ハロワ
ニート 東京プリン キリコ デスノート 中の人 ダディ 剣山尖った NARUTO マリオ ルイージ 添い寝 俺の嫁
スネーク 生きろ GJ ハァハァ マクロス おちんちんランド ドラえもん ホリえもん ライブドア DS PSP ひどい
エヴァ エヴァンゲリオン  2k イデオン 性欲をもてあます 好きだ ユーゼス もへっ orz 若本規夫にも反応したよ
バストは何cm?スパロボ 泣かないで ララァは私のお母さんになった人かもしれんのだ ハンター×ハンター ジオンの残光 キモい
萌え 結婚して シャア 姫さま 月姫 ジオング 緑はいらない子 ゼノサーガ ピッタン♪ ガトー ギレン 好きだ 好き
ソニー ガンキャノン リンファ H ジョジョ 特攻野郎Aチーム マツケンサンバ マツケン けばい カミーユ ジュドー ウッソ



546 :デフォルトの名無しさん:05/03/15 00:29:16
むーん氏降臨か?

547 :デフォルトの名無しさん:05/03/15 01:24:33
↓これ、縁起悪いから名前変えた方がいいと思う。
http://raa.ruby-lang.org/project/muravey-web/

548 :デフォルトの名無しさん:05/03/15 20:27:45
ruby on rails をインストールしました。インストールはすんなりいきましたが、
activerecordのテストをしようとして、
http://jp.rubyist.net/magazine/?0004-RubyOnRails
の ruby -I "connections/native_mysql" base_test.rb
を実行したら以下のようなエラーになりました。
何が駄目?
./../lib/active_record/base.rb:212:
uninitialized constant ActiveRecord::Base::ClassInheritableAttributes (NameError)


549 :デフォルトの名無しさん:05/03/15 21:42:07
ルヴィって読むのな。なぜか自分でも分からんがラヴィって読んでたよ。

550 :デフォルトの名無しさん:05/03/15 22:01:43
ルビーだが?

551 :デフォルトの名無しさん:05/03/15 22:27:07
ルゥビだが?

552 :デフォルトの名無しさん:05/03/16 00:31:43
Rubyの読み方決定戦が、始まる・・・!


553 :デフォルトの名無しさん:05/03/16 01:14:15
>>548
RoR 関係のライブラリはバージョンアップが激しいので
4号のプログラムは最新版では動かないんじゃないかな。
こっちじゃだめ?
http://jp.rubyist.net/magazine/?0005-RubyOnRails

554 :デフォルトの名無しさん:05/03/16 01:25:05
  ∩∩⌒ヽ∩
  (゚x゚)((ノ))ソ         | |
  ソ从i|゚ ヮ゚从 < 天罰!  | |  ドガッ
.    ⊂).合f )         人
.    Zくんl,/         <  >__Λ∩
      し//      // V`Д´)/ >>549
       //             /
.    Z//Z 彡
    (。x。)
    U U

555 :デフォルトの名無しさん:05/03/16 02:15:28
http://www.yamdas.org/column/technique/wikiphiliaj.html

ドキュメンテーションという雑用に直面した際、最近 Wiki 病に感染した人の典型的な抗弁は、
「おい! そのドキュメント Wiki に置こうよ!それがクールだって!」である。そうして Wiki の
インストール作業が、面白くないドキュメント作成作業を先延ばしにする手になるわけだ。


556 :デフォルトの名無しさん:05/03/16 09:44:48
>>555
そのページの主張は、至極もっともだと思うけれども
「楽しいからWikiを使う」という観点が抜けているのが気になる。

557 :デフォルトの名無しさん:05/03/16 15:09:05
Rubyの場合はドキュメント書きたくないってことだからな。
ツールは関係ない。

558 :デフォルトの名無しさん:05/03/17 01:30:33
Rubyのドキュメント?
PickAxeサイトとrdocがあるじゃん
あれで十分だよ
英語読めないやつはなでしこでも使ってろ

559 :デフォルトの名無しさん:05/03/17 02:17:55
>PickAxe
王道編ですな。邦訳本があるがな。


560 :デフォルトの名無しさん:05/03/18 11:09:31
>>553
どうもgemのインストールの仕方か使い方が間違っていたようで、
gemを使わずにインストールしたらあのエラーは出なくなりました。


561 :デフォルトの名無しさん:05/03/18 20:43:00
WEBrick::HTTPProxyServer を使っているのですが、
* ある特定の URL なら本物のサーバにアクセスせずに別のコンテンツを返す
* URL に応じて上流のプロキシサーバを変える
といったことはできるでしょうか?

ProxyContentHandler より前に handler hook があると良さそうなんですけど。

あと、コンテンツがでかいと危険な気がしなくもないんですが、これは気のせいですね。

562 :デフォルトの名無しさん:05/03/18 23:07:10
ところで、RAAにgonzuiを採用して、RAAに登録されてるコードを
検索できるようにするという話はないの?

563 :デフォルトの名無しさん:05/03/19 12:37:33
>>562
そういう発想は出てこないようなんだよねえ。やってもらえるとありがたいんだけど。
CPANにすらあるのに。

564 :デフォルトの名無しさん:05/03/19 12:58:03
せっかくのアーカイブも勿体ないよね・・・。

565 :デフォルトの名無しさん:05/03/19 13:41:41
ってかRAAに使うっていうのはgonzuiのようなものなら絶好のアピールでしょ。
bladeのコードを出せ出せというのが時々あるのを見ればわかる。
しょぼかったときはしょぼさ加減もアピールされてしまうけどさ。


566 :デフォルトの名無しさん:05/03/19 15:18:41
未踏縛りとかあるんかねえ?
あと今のところバージョナップ毎に db 作り直さなきゃいけないとかがちょっと。

つーか、誰か自分の鯖持ってるひとが試験的に上げてみるとかはないの?

567 :デフォルトの名無しさん:05/03/19 15:59:48
単純にまだベータ版だからじゃないの

568 :デフォルトの名無しさん:05/03/19 16:37:07
>>567
いいわけだろ。
少しは見習え。
http://cpansearch.bulknews.net/

569 :デフォルトの名無しさん:05/03/19 20:19:00
>>568
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.
Reason: Could not connect to remote machine: Connection refused

とか出てるよ?だからまだやめといた方がいいんじゃね?

570 :デフォルトの名無しさん:05/03/19 22:02:52
>>565
そう思うなら自分でやったら。
プログラムより先に言葉が出てくるのは老化の証拠だ。

571 :デフォルトの名無しさん:05/03/19 22:19:13
はあ?


572 :デフォルトの名無しさん:05/03/19 23:43:21
MoonWolfがまだ生きていたら同じことを言うだろうなぁ。
(死んでません)

573 :デフォルトの名無しさん:05/03/19 23:50:15
つか、リソースは確保できるのか?
CPANと違って専用のダウンロードサイトすら用意されていないわけだが。

574 :デフォルトの名無しさん:05/03/20 00:22:03
馬鹿な質問だったらごめん。
CPANとかRAAとかでgonzui使ってなにか嬉しいことあるの?

ある特定のプロジェクト内でソースコード検索したくなる理由はわかるんだけど、
こういうプロジェクト集めましたってところで
READMEとかだけでなく敢えてソースコード全体の検索をする理由がよくわからない。

従来の検索をなくすわけでないなら、あって困ることはないだろうけどね。

575 :デフォルトの名無しさん:05/03/20 00:33:26
例えばあるクラスの使い方がわからない時に検索。
そのクラスを実際に使ってるコードが見つかる。

576 :デフォルトの名無しさん:05/03/20 00:39:11
>>575
それすごくいいなあ

577 :デフォルトの名無しさん:05/03/20 00:46:15
>>574
リファレンスが糞な事を言い訳できる効果があります

578 :574:05/03/20 03:44:50
つまりCPANやRAAをサンプルプログラム集として使うってこと?

579 :デフォルトの名無しさん:05/03/20 03:46:20
>>578
こういうやつって必ずいるよな。

580 :デフォルトの名無しさん:05/03/20 05:11:21
http://moulon.inra.fr/ruby/bdb.html
これのインストールってどうやるんですか?

マシンには Berkeley DB 4.2 が入っているのですけど、REAdMEに書いてあるとおりのコマンドを打つと、
127で途中で終了してしまいます。


581 :デフォルトの名無しさん:05/03/20 10:39:48
>>561
HTTPProxyServer は HTTPServer のサブクラスなんで
WEBrick::HTTPServer の :RequestCallback が使えると思います。

582 :デフォルトの名無しさん:05/03/20 11:05:39
>>580
エラーメッセージをコピペすれ。

583 :デフォルトの名無しさん:05/03/20 18:24:25
>>580
rubyってcvs head?
だとしたらruby extconf.rbで常にえらーメッセージが出るように
なっているんだよねぇ。面倒だから報告してないけど。
それかな?

584 :デフォルトの名無しさん:05/03/20 23:01:48
>>583
ムカつくextconf.rbだな。
別ディレクトリでコンパイルできんじゃないか。

--- bdb-0.5.4/extconf.rb.orig2004-12-30 19:10:31.000000000 +0900
+++ bdb-0.5.4/extconf.rb2005-03-20 22:57:46.000000000 +0900
@@ -15,6 +15,6 @@
end

-subdirs = Dir["*"].select do |subdir|
- /\Abdbxml/ !~ subdir && File.file?(subdir + "/extconf.rb")
+subdirs = Dir.entries($srcdir).select do |subdir|
+ /\Abdbxml/ !~ subdir && /\A\./ !~ subdir && File.file?(File.join($srcdir, subdir, "extconf.rb"))
end

@@ -60,8 +60,9 @@
test: $(DLLIB)
EOF
- Dir.foreach('tests') do |x|
+ Dir.foreach(testdir = $srcdir + '/tests') do |x|
next if /^\./ =~ x || /(_\.rb|~)$/ =~ x
+ x = File.join(testdir, x)
next if FileTest.directory?(x)
- make.print "\t-#{CONFIG['RUBY_INSTALL_NAME']} tests/#{x}\n"
+ make.print "\t-#{CONFIG['RUBY_INSTALL_NAME']} -C \"$(srcdir)\" tests/#{x}\n"
end
ensure


585 :デフォルトの名無しさん:05/03/20 23:02:09
@@ -71,6 +72,14 @@
subdirs.each do |subdir|
STDERR.puts("#{$0}: Entering directory `#{subdir}'")
+ Dir.mkdir(subdir) unless File.directory?(subdir)
Dir.chdir(subdir)
- system("#{CONFIG['RUBY_INSTALL_NAME']} extconf.rb " + ARGV.join(" "))
+ if $srcdir == '.'
+ srcdir = ''
+ elsif (srcdir = File.expand_path($srcdir)) == $srcdir
+ srcdir = "#{$srcdir}/#{subdir}/"
+ else
+ srcdir = "../#{$srcdir}/#{subdir}/"
+ end
+ system("#{CONFIG['RUBY_INSTALL_NAME']} #{srcdir}extconf.rb " + ARGV.join(" "))
Dir.chdir("..")
STDERR.puts("#{$0}: Leaving directory `#{subdir}'")


586 :デフォルトの名無しさん:05/03/21 00:33:41
>>583
> rubyってcvs head?
ruby 1.9.0 (2005-02-16) [i686-linux]

> だとしたらruby extconf.rbで常にえらーメッセージが出るように
> なっているんだよねぇ。面倒だから報告してないけど。
> それかな?

そうかもです。

一応、ログはこんな感じです。

extconf.rb: Entering directory `src'
checking for db_version() in -ldb-4.3... no
checking for db_version_4003() in -ldb-4.3... no
checking for db_version() in -ldb43... no
checking for db_version_4003() in -ldb43... no
checking for db_version() in -ldb-4.2... yes
creating Makefile
extconf.rb: Leaving directory `src'
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.


587 :デフォルトの名無しさん:05/03/21 00:35:45
src/mkmf.logの最後の個所
--------------------

have_library: checking for db_version() in -ldb-4.2... -------------------- yes

"gcc -o conftest -I/usr/lib/ruby/1.8/i686-linux -I/usr/lib/ruby/1.8/i686-linux -I/usr/include
-O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall -Wall -fno-strict-aliasing -fPIC conftest.c -L"/usr/lib" -L"/usr/lib"
-lruby-static -ldb-4.2 -ldl -lcrypt -lm -lc"
conftest.c: In function `t':
conftest.c:4: warning: implicit declaration of function `db_version'
checked program was:
/* begin */

/*top*/
int main() { return 0; }
int t() { db_version(); return 0; }
/* end */

--------------------
これでmkmf.logは終了

588 :デフォルトの名無しさん:2005/03/21 03:46:13(月)
>>586
それだね。
Makefileはちゃんとできているから気にせずmakeするべし。

172 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)