1 名前:デフォルトの名無しさん [2008/03/02(日) 23:03:46 ] オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。 Ruby Home Page www.ruby-lang.org/ja/ = 前スレ Rubyについて Part 30 pc11.2ch.net/test/read.cgi/tech/1200106073/ 過去スレ・関連スレは >>2-
321 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:19:57 ] >>320 最近のrubyistは「アムダールの法則」も知らんかorz
322 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 21:34:53 ] (´・ω・`)知らんがな
323 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:03:20 ] アムダールの法則という名前では知らない可能性が高い 「1割しか使われない部分を10倍高速化しても全体としてはたいして速くならん」 ということだと説明されれば結構な人が知ってる 計算式まで知ってる人はいないけどな
324 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:05:45 ] そもそもマジレスしてるのがおかしい
325 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:10:47 ] あれだろ、どんなルビ厨は90%は屑ってやつだろ
326 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:12:42 ] とはいえ時々素で思ってるっぽい人がいるのも事実 ・YARVでRubyは非常に速くなる ・Ruby1.9がRuby2.0になる この誤解はかなり多い
327 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 22:45:03 ] > ・Ruby1.9がRuby2.0になる なにこれ? 初めて聞いたぞ。
328 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:20:09 ] >>321 湿原の保存に関する国際条約がなんでRubyに関係あるんだよ。
329 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 23:51:02 ] >328 はいはいラムサールラムサール
330 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 02:34:19 ] コーシー・アダマールの法則
331 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 14:53:13 ] >>323 そういえば1.9ではネイティブスレッドに対応できたんだっけ? これできなくちゃあ高速化したくても大したことできん。
332 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:07:44 ] ビルド時のオプションによる
333 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 22:46:19 ] ジャイアントロックなのでそう速くはならないんじゃない
334 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:16:46 ] それよりは、Copy on WriteフレンドリーなGC採用でforkしまくる方が、実質的な効率が良さげな気がする。
335 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 00:50:14 ] refe2になって、ロケールでよきように取り計らってくれるようになったのは ありがたい。 まあ、ソースをちょっと書き換えりゃいいだけだったんだけど。
336 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 01:17:39 ] 2.0の計画は今のところnamed argumentやGCへの変更とかが入るって以上は特に決まってなかったような
337 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 02:53:11 ] 何をするかにもよるけどforkするとプロセス間の通信が面倒そうだなあ
338 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:39:47 ] MVMって2.0?
339 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:12:29 ] Lightweightと呼ぶにはリソース食いすぎると思う。
340 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:30:21 ] Light-weightには使用リソースが少ないなどという意味は込められてない
341 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:54:35 ] リソース食わないLLが使いたければForthにするのが良いと;思う。 >339
342 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:56:12 ] いやこめられてるだろう
343 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:22:09 ] >>339 「Lightweight」ってプログラマの負担のことだろ? アイデアを実装する負担が少なければ、あれこれ試す余裕が出来る。 リソースが少ないだけならアセンブラ。
344 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:27:11 ] 最終的にパフォーマンスチューニングに手間を割かざるを得ないRubyはLLとは言いがたい
345 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:55:35 ] >>344 ハイパフォーマンスが必須な案件で使える、チューニング不要の言語があったっけ? 言語の問題ではない場合でも、ハード、OS、ミドルウェアに手を入れるよりも コーディングで回避した方がローコストな場面によく出くわしたが。
346 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:15:36 ] >>345 記憶が確かならLLという区分はプロトタイピングの道具として 注目されたことに起源があるから パフォーマンスが必要ならより速い言語(主にC/C++)で書き換えろ というのが共通した答えになると思う。 それ以前に抽象的なパフォーマンス論議は全く意味が無いと思うのだが。
347 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:40:26 ] >>346 「パフォーマンス」の意味を実行速度(ある変数を1から10^10までカウントupなど) に限るなら、論議の成果も限られたものになると思う。 実際の開発収支への影響を無視出来ない要因は、実行速度以外にも、 言語習得コスト、アイデア実装の容易性、他システムとの整合性などあるから 確かに、前提条件抜きでの「xxx言語のパフォーマンス」は無意味だけど。 > パフォーマンスが必要ならより速い言語(主にC/C++)で書き換えろ > というのが共通した答えになると思う。 もしくは最近の実装に多い、Cソース生成機能を使うかだよな。 Schemeではそういうのを見るけど、Rubyではどうなんだろ?
348 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 13:43:13 ] ようするにプロトタイピングツールで実運用する奴はアフォってことですね。
349 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:55:54 ] >>348 否定をする理由はない パフォーマンスと規模とコストを無視してRuby(特にRoR)に固執し続けるのはバカ Twitterのような部分置き換えはRuby視点としては卒業生輩出ってことで喜ぶべきだと思うぜ
350 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:58:05 ] 楽天の例が絶対言われると思うが、アレは言語開発者引き込んでるから少し特殊だ もしまつもとゆきひろがいなかったら指差して笑っていいと思う
351 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 15:36:08 ] とっくに指さして笑ってるけど?
352 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:41:17 ] >>348 LLとして確立する際に、 プロトタイプでも十分使えるならそのまま実運用したら安く上がる、 もし使えなくてもプロトタイプがあれば始めから書くより早い、 という主張がついてきたと記憶している。 いずれにしても道具をきちんと理解して使いこなせない奴は アフォということに変わりはない。
353 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:24:18 ] GW明けからRoRでプロトタイピングするおいらがやってきましたよっと。 てか、Rubyって使ったこと無いからとりあえずググったらここを見つけたんですけどwwですけどww 情報すくねーww集積されてねーーwwwうぇうぇw おれ涙目RoR プロトタイプの理由 ・動いてるの見なきゃ分かんない人がいるから ・見積もり?そんなの後でいいからとりあえず作れ ・ものが良ければ後で人突っ込んでやっからwww RoR(Ruby)の理由 ・社内にノウハウなっしんぐ!俺も経験なっしんぐ! ・ノウハウげっとで会社もハッピーおれもハッピー ・なんか短期間でできるって噂じゃん?
354 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:29:54 ] Ruby慣れしてない……御愁傷様 RoRの理由とやらはRuby慣れしてなきゃ全部幻想だ 使っていくうちの細部については、結局RoR自体のソース追う人も多いんじゃねえかな。 とりあえずノウハウ本経費で落として凌げ
355 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 18:32:07 ] >>353 Ruby使ったことさえ無いのに「RoRでプロトタイピングする」と決めてしまうのは無謀だと思うが とりあえずやる気なら、web上で情報探すより本読んだ方がいいと思う
356 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 19:34:21 ] なんというデスマーチ予備軍
357 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 20:08:13 ] Rubyをシュミや俺ツールで使ってた人が「うおー仕事でも使い物になるー」と喜んだのがRoR 少なくともRubyをシュミや俺ツールで使えるようなレベルの人向けだな 半年か1年くらいかけてRubyをそこそこ習得後に始めたなら、そりゃプロトタイプとしての生産性は高いかもしれん 個人的には自分が今使える言語でプロトタイピングを学んだほうが全員幸せになれると思う 仕事として新たにRubyを学ぼうというのは現状無謀というかある意味馬鹿
358 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 20:11:42 ] RubyってJavaと同程度には敷居高いよね
359 名前:353 mailto:sage [2008/05/06(火) 20:17:58 ] RoRでプロトタイピングってのは政治レイヤーで決まったこと。 あれだね、RoR使えば超早くできるって刷り込まれてるんだろうね。 まぁ、おいらっち多言語プレイヤーだから初めての言語でもモウマンタイ。 >>353 で言いたいのは、プロトタイプの名のもとにスケーリング無視無視でとりあえずやっちゃえーって事もあるってこと
360 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 01:31:05 ] PHPとSQLでサイト作ったことあるひとならAWDwR読むだけで 割とサクサクRails使えると思うけどなあ。
361 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 05:21:48 ] 英語を読み書きできても、皆がハムレットを書けるわけでもないし。 売れなかったからって、フランス語で書いてもやはり売れないぞ。
362 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:40:53 ] なに、無限のサルにコンピュータを与えればいつかはハムレットができるさ
363 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 12:49:16 ] ボゴソートの存在を知ったときには笑いが止まらなかったな
364 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 22:26:34 ] >>360 Perl、PHP、MySQL使いの俺だったがRailsに慣れるまで大分かかった。。 あのブラックボックスに慣れにくい人もいると思。 ところで、Ruby Way 第2版ってどう? リファレンスが手元に欲しくてプログラミングRuby買おうとして見つけたんだが。
365 名前:361 mailto:sage [2008/05/08(木) 23:11:34 ] やっぱり、サルが出てきた. 有名だから。 星の寿命より長生きのサルが必要なのも知ってるよね。 「無限の」ってのは、そういうことだから。 もとは、「タイプライター」なので、それも指摘しておく。 当時は、パソコンなかったから。
366 名前:デフォルトの名無しさん mailto:sage [2008/05/08(木) 23:34:51 ] ネタに全力でマジレスするスレがあると聞いて飛んできます田
367 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:01:10 ] ピントずれてるしな 「無限のサル」ってはじめから書いてあるじゃん
368 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:06:00 ] 無限のサルには無限のコンピュータを与えないといけないけどな
369 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:15:36 ] refe2で $ refe aaa はno such class: aaaって返してくれるけど $ refe Object aaa は /home/mona/doc/rubyrefm/bitclust/lib/bitclust/completion.rb:146:in `try': undefined method `empty?' for nil:NilClass (NoMethodError) って例外が上がってくるのは意図したとおりなのかな。 ここはno such method: aaaって返すのが自然な感じがするんだけども。
370 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 00:15:58 ] ヒルベルトホテル思い出した。
371 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 11:21:32 ] >>369 多分不具合。 BitClust::Completin#expand_method_name内の return nil を return [] にすれば例外は発生しなくなるけど、 表示メッセージがまだおかしい。ちゃんと修正する必要あり。 no such method in : aaa 本当は no such method in Object: aaa と表示されるはず。
372 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 12:29:50 ] >>366-367 「自分だけわかってる」ログを残したかった人が、他人に「ついて来られちゃった」ときに、 よくこういう「だからそう言ってんじゃん」的な無駄な解説をするんですよ。知性のアピールとして。
373 名前:369 mailto:sage [2008/05/09(金) 18:13:02 ] >>371 ありがとう。 漏れも簡単に修正できるかなとソースちょっと見てたけど、 no such method in : aaa にはなるけど、きちんと表示されないね。
374 名前:デフォルトの名無しさん mailto:sage [2008/05/09(金) 20:29:12 ] >>371 に加えて database.rbの394行目 >raise MethodNotFound, "no such method in #{loc}: #{pattern.method}" を raise MethodNotFound, "no such method in #{pattern.klass}: #{pattern.method}" にすれば no such method in Object: aaa にはなるけども、 $ refe hoge fuga no such method in hoge: fuga になって、まだ変だな。多分、no such class: hogeが先に出るのが 正しい気がする。
375 名前:デフォルトの名無しさん [2008/05/11(日) 19:41:00 ] で、'bar'[3, 1] #=> '' はバグなの?仕様なの?
376 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 00:23:13 ] 仕様。
377 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 01:04:27 ] >>375 初心者スレで出てた話か。誤爆? 普通に考えればバグだと思うけど 「仕様変更があって、リファレンスの方が更新されてないだけ」というのも Rubyなら普通にありえるから困る
378 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 01:08:10 ] ChangeLogに無ければバグ なんだが、いつのバージョンならマニュアルのように動作するんだかよーわからんな
379 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 02:18:51 ] MLで聞けばよろし ぶっちゃけ、 Matzが気に入る→仕様 Matzが気に入らない→バグ なんだから。
380 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 07:39:19 ] 見つけた Modified Mon Feb 19 09:15:27 2001 UTC (7 years, 2 months ago) by matz Original Path: branches/ruby_1_6/string.c File length: 58792 byte(s) Diff to previous 1166 * string.c (rb_str_substr): "a"[1,2] should return ""; need rubicon upgrade.
381 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 08:17:01 ] matzというバグを発見しました
382 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 09:30:06 ] >>380 じゃあマニュアルのミスだな
383 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 10:04:49 ] ぜんぜんうれしくない仕様
384 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 10:22:00 ] >>380 それは指定した切り出し長(2)が、文字列の長さ(1)を越えているときの動作だろ? 上で言われてるのは、インデックス(3)が文字列の長さ(3)に等しいときの動作だ 参考(ruby1.8.6 mswin32) "a"[1,2] #=> "" "a"[1,3] #=> "" "bar"[2,1] #=> "r" "bar"[3,1] #=> "" "bar"[4,1] #=> nil
385 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 10:24:48 ] 開始位置が文字列の長さと等しい時じゃないかな?よくしらんけど
386 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 10:42:45 ] if (beg == RSTRING(str)->len && len > 0) return Qnil; これを削った
387 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 10:45:35 ] そんで、これで長さ0の文字列にってことか if (beg + len > RSTRING(str)->len) { len = RSTRING(str)->len - beg; }
388 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 13:25:53 ] >>384 > それは指定した切り出し長(2)が、文字列の長さ(1)を越えているときの動作だろ? 違う。切り出し長は関係ない。 インデックス(1)が文字列の長さ(1)に等しいときの動作。 だからずばり上で言ってること。
389 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 19:13:58 ] YARVで、あるベンチマークが * 「100%速くなった」というのは、時間が半分になったということ? * 「200%速くなった」というのは、時間が1/3になったということ? * 「25%速くなった」というのは、時間が20%減ったということ? ( 1 / (1-0.20) = 1.25 ) 初心者スレでなんの反応も無かったので、教えてえらいひと。
390 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:12:54 ] そーゆーのに興味のある人は実際に使ってる人よりITマスコミだろうしな。
391 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:59:33 ] >>389 そんなの話者やベンチマークの内容によって違うし。 その場その場で自分で解釈しなよ。 まあ、「25%速度うpしますた!」といって速度が1/4になってたりするってことはないと思う。
392 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:58:29 ] >>391 >そんなの話者やベンチマークの内容によって違うし。 冗談でしょ?
393 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 23:22:19 ] 質問でお茶を濁さず、自分の意見を言おうな。
394 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 08:17:56 ] ベンチマーク内容やベンチマーク結果が話す人によって異なるのは当然だが >* 「100%速くなった」というのは、時間が半分になったということ? >* 「200%速くなった」というのは、時間が1/3になったということ? >* 「25%速くなった」というのは、時間が20%減ったということ? ( 1 / (1-0.20) = 1.25 ) これが話す人によって異なるわけがない。
395 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 09:13:24 ] 気になるならささだに問い合わせて 同じベンチを自分で回してみりゃいいだろ
396 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 13:01:20 ] >>394 「話す人」が全員が正しければね。
397 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 02:22:58 ] 既存のRSSのファイルを開いて新しいアイテムを追加する時に RSSを開く → アイテム部分だけ記述して追加 → RSS保存 で行ってみましたがうまくいきませんでした。 具体的には p rss.items なら要素が追加されているのですが p rss.to_s をすると追加した要素が反映されませんでした アイテムを追加したいだけの場合でも maker で channel 要素を再度指定して作りなおすものなのでしょうか? 環境は RSS1.0、Ruby1.8 です
398 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:22:03 ] >>397 「環境」がイミフw
399 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 09:42:11 ] とりあえず、どのライブラリでRSS1.0をパースしたのか?
400 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 19:45:50 ] >>398 Ruby 1.8 の環境で RSS のバージョン 1.0 でファイルを作りました。 すいません、私何か勘違いしてますか…? >>399 標準添付の RSS::maker を使いました メーリングリストの方が言及されていた validate で確認したところ about 属性が抜けていたのが問題だとわかり解決しました スレ汚し失礼いたしました。
401 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 01:03:06 ] ML見てたけど、Kimさんちょっと笑えるなw
402 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 12:31:15 ] www.atmarkit.co.jp/news/200805/16/ipa.html ささださんオメ しかし、リズム君のほうは14歳なのに老けてるなあ
403 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 13:27:52 ] >「Ruby 1.9は1.8より平均5倍速い」、YARV笹田氏 ナ、ナンダッテーΩΩ Ω
404 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 15:15:04 ] りずむ君は純粋な日本人だよね? すごい名前だ・・・
405 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 15:22:18 ] 自称「〜倍速い」は絶対信用しねえ
406 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 20:08:53 ] DQN命名親の被害者世代がIPA絡みの記事に掲載される時代か あと10年もすると命名感覚がらっと入れ替わるのかもな トメとかがばーさんの名前になったようにな 笹田さん痩せた?
407 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:48:53 ] >>405 赤い奴は三倍速い も?
408 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 07:56:59 ] ピンクなら許す
409 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 09:13:48 ] ピンクは淫乱
410 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 17:20:38 ] 淫乱と聞いて飛んできますた。なんの話?
411 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 17:49:15 ] 淫乱だからといって黒ずんでいるとは限らないという話。
412 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:44:55 ] 最近日記の更新がなくて寂しい。
413 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:16:41 ] 開発が順調という証だよ 開発が行き詰まってくると「webをなめるな」とかlispユーザに喧嘩を 売ったりするようになる
414 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 21:22:04 ] >>413 おまえスルドイなw
415 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 04:02:14 ] 今までrubyは他のスクリプト言語より5倍くらい遅かったから 本当にそれくらい早くなっていてもおかしくない
416 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:49:27 ] Matz is nice, so we are nice.
417 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:19:39 ] rubykaigiでグぐると2007と2006年のみで、2008のページが出てこないのは なんとかならんのか。 ruby会議だと一応2008がでるけど、2007の方が最初に出てくるのも。
418 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:41:48 ] >>417 www.google.co.jp/search?hl=ja&q=rubykaigi&as_qdr=m6
419 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:51:44 ] いつになったらruby1.9でrailsが動くの? ずっと待ってるんだけど。
420 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:08:00 ] >>419 1.9.1が出てからです
421 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:13:01 ] オープンソースの世界でも、「ただ待つ」自分に権威を感じ、「待たされる」ことに理不尽を感じる奴は居るんだよな。