mieki256's diary



2013/12/16(月) [n年前の日記]

#1 [anime] 境界の彼方、黒の世界、を視聴

最後のあたり、良かった…。 曲・歌詞の使い方が、イイ…。グッときました…。もうねえ…コレ、理想形ですわ。まるでお手本のようですわ。素晴らしい。これは素晴らしい。

「キャンディキャンディをイメージしながら作りました」みたいなソレじゃなくて、ホントに良かったなあ…。そういうアレだったら、こうはできない…。

この 、幸せ者だなあ…。仲間外れにされなかった。本編と一緒にスゴイ勢いで飛んで行けた。監督さんに 音楽の力を信じてもらえた。いやー、良かったなあ。こういう使い方を見ると、嬉しくなるなあ。素晴らしい。とにかく素晴らしい。

#2 [dxruby][ruby] DXRuby開発版がRuby2.0.0以降にのみ対応する方針と知ってちょっと困ったり

DXRuby 1.5.8dev版が公開されたようなので、試してみようと DXRuby Wiki を開いてみたら、Ruby 1.9.x 用が無くて「あうっ」てな状態に。改めて作者様のblogを追いかけていくと、DXRuby は今後 Ruby 2.0.0 のみ対応していく方針らしくて。

うーむ。困った。個人的には、困った。

自分は時々、NetBeans 使って、Ruby + DXRuby スクリプトのデバッグをすることがありまして。妙な動作になる原因がどうしても分からん時、ブレークポイント設定して、そこで止めて、変数覗いて、みたいな作業をするのです。

しかし、NetBeans 上で Ruby のデバッガを使おうとすると、これが Ruby 1.9.3 までしか対応してませんで…。 *1 NetBeans 上で、Ruby 2.0.0 を選んでしまうと、もはやデバッガを動かせないわけですよ。かといって、この時代に、CUIでデバッガ使うとか、printfデバッグとか、そんなの勘弁願いたいし。

てなわけで、さあ、困ったぞ、と。

以前もこういうことがあったなと。 :

昔、Ruby 1.8 が主流で、Ruby 1.9 がじわじわ普及し始めた頃、やっぱり Ruby 1.9 ではデバッガが動かなくて困ってしまって。

ただ、当時の DXRuby は、Ruby 1.8 にも 1.9 にも対応していたので…。
  • デバッグ時は、デバッガが使える Ruby 1.8 上で動かす。
  • 最終的な実行は、処理速度が劇的に改善された Ruby 1.9 上で動かす。
そういう形で、どうにかしのいでいたのです。

現行世代のほうが性能は上がってるけど、一世代前のほうが開発環境はえてして整ってる・使える武器が多いわけで。それを考えると、現行世代と一世代前の二つに対応してるライブラリは、ある種、いいとこどりができる部分もあるよなあ、と。

デバッガの規格って無いのかな。 :

NetBeans のソレは、Ruby 1.8 時代の仕組みしか考えてない設計なのが問題だったりするのだろうけど。

このあたりって、規格を決められないのかしら。その規格に沿ったやり取りをすることにしておけば、言語・環境のバージョンが変わっても問題になりにくいのでは、という気もするけれど。言語の内部仕様に食い込むような部分もあって、なかなか決められないところもあるのかしら。

*1: Fast Debugger だか ruby-debug-ide19 だかを導入しないといかんのですが、それらは Ruby 2.0.0 以降は対応してない。 Fast Debugger ではなく、 Classic Debugger なるものを使えば動くかと思いきや、例外が発生してフリーズしちゃう…。

#3 [ruby] Ruby2.0.0+IDEでデバッガは使えないのかな

そろそろ Ruby 2.0.0 以降でも使えるデバッガ+IDEを見つけないといけない、ということなのだろうなと思えてきたので、この際、ちゃんと探してみようかなと。

Aptana Studio 3 を試してみたり。 :

NetBeans なんぞ使ってるからあかんのや、他のIDEを使うべし、という状況なのかもしれないか…。では、Aptana Studio はどうだろう。ググってみたけど、解説されてるソレは、Ruby 1.9.x 時代の情報ばかり。うーん。コレもダメなんじゃないか? まあ、試しにインストールしてみるか…。

結論を先に書いておくと、Aptana Studio は NetBeans より酷くて、Ruby 1.8.7 でしかデバッガが使えなかったです。うーん。

とりあえず、導入手順をメモ。以下の記事を参考にインストール。

_フリーの高機能HTMLエディタ「Aptana Studio3」の日本語化と「Zen-Coding」のインストール方法 | 便利なツール
_Aptana Studioを使ったRuby/RoR開発

スタンドアローン版の、Aptana_Studio_3_Setup_3.4.2.exe をDLしてインストールしてみたり。

日本語化は、以下から pleiades.zip (1.4.x) をDLして、中に入っている features、plugins フォルダを、Aptana Studio インストールフォルダに上書きコピー。

_Pleiades - Eclipse プラグイン日本語化プラグイン | MergeDoc Project

Aptana Studio をインストールしただけではダメで、Ruby開発ツールもインストールしないといかんらしい。

_Ruby開発ツールのインストール - Aptana Studioを使ったRuby/RoR開発

インタプリタの指定を Ruby 2.0.0 にして、Rubyプロジェクトを作り。簡単なスクリプトを書いて、ブレークポイントを設定して、デバッグを実行してみた。…うむ。「ruby-debug が必要じゃい」と言われた。だからさあ、ソイツは Ruby 2.0.0 で動かんのだってば。

設定を眺めてたら、Ruby → デバッグ → エンジン、の項目で、デバッグエンジンを指定できるらしく。ここがデフォルトでは、「高速 Ruby デバッガー(ruby-debug)」になっていた。「Ruby組み込みデバッガー」もあるので、そちらに変更。

よく分からないエラーが大量に出た。ダメっぽいな…。

デフォルトの Ruby インタープリタを、Ruby 2.0.0 から 1.9.3 に切り替えてみた。これもダメ。組み込みデバッガではエラーが出るし、高速デバッガでも「ruby-debug が必要じゃ」と言われる。変だな。巷の解説記事では、ruby-debug19 が入ってれば動くと書いてあるのに…。

もしかして…。 Ruby 1.8.7 に切り替えてみた。うむ。これはブレークポイントで止まるな…。組み込みデバッガも、高速デバッガも使える。

すると、Aptana Studio 上でデバッガを使おうとすると、Ruby 1.8.7 までしか対応してない、ってことになるのかな。

_Eclipse Community Forums: Dynamic Languages Toolkit (DLTK) ≫ Debugging Ruby on Eclipse を眺めると、「Ruby 1.9 でデバッガ使えないよう」「この拡張の中身を見たけど、ハードコーティングされてるぞ。なんじゃこりゃ」云々のやり取りが。ダメっぽいな…。

Ruby 2.0.0対応のデバッガ情報 :

ググった範囲でメモ。

_Ruby 2.0 向けのデバッガー byebugについて - Qiita [キータ]
_[ruby-list:49324] Re: 1.9 から 2.0 への移行にあたって 困ったこととかありました?
_cldwalker/debugger
_2013/08/02/ruby2.0時代のデバッガはこれだ - ヽ(´・肉・`)ノログ

どうにも情報が少なくて。困った。

Ruby 2.0.0 上では、debugger、byebug というデバッガが使えるらしいので、一応どちらも入れてみたのだけど、ただ、どっちも、CUI なわけで。えー。21世紀にもなってそりゃねえよ、どんな拷問だよ、という気もするんですけど…。どうにかならんのかな。

emacs+デバッガの組み合わせもあるらしいけど。 :

Rubyのデバッガと、emacsを連携して、ということもできるらしいので調べてみたけど。それら解説記事も、ruby-debug の文字が書いてあったので、おそらく状況は、NetBeans や Aptana Studio と同じなんじゃないかと予想したり。

_EmacsをつかったRubyのデバッグ | アルミナ解析室 を眺めると、CUIのデバッガを呼び出して、ということができるらしいのだけど。ていうか、自分の ~/.emacs にも設定が書いてあって目が点になったのだけど。何時頃書いたんだろう。完全に忘れてる。

さておき、NTEmacs上で使ったら、CUIのデバッガらしきものは出てきたものの、操作方法が分からず。DOS窓上で使った時のように、nを押せば次に進む、というわけでもないような。うーん。もしかして、*NIX や Mac なら、スンナリ動くのかしら。

eclipseを試した。 :

もしかすると eclipse + Aptana Studio の組み合わせなら使えたりしないかなと思えてきたので試してみたり。

インストール済みだった eclipse 4.2 を久しぶりに起動。更新の確認をしていったら、Android 関係の SDK も更新しないといかんと言われたので、この際それも更新。

気づいたら、eclipse 4.3 が公開されてたようで。せっかくだからそっちもインストール。 _日本語化 Eclipse 4.3 Kepler ケプラー | MergeDoc Project から、32bit版 Ultimate をDL。パスの短いフォルダに移動させて、展開先フォルダ名も短い名前にして解凍。そうしないと、パスが長過ぎて解凍できないファイルが出てくるので、ここは要注意ですぞ。

以下をインストール。
  • Aptana Studio 3
  • RDT(Ruby用の拡張)
  • ADT(Android SDK用の拡張)
  • ETEE
他に入れてた拡張はあったかな…。まあいいや。とりあえずここまでで試すことに。

Ruby 1.9.3 で、高速デバッガを指定したけど、これはダメ。組み込みデバッガを指定したら…。お? ブレークポイントで止まった。

Ruby 2.0.0 にしてみた。組み込みデバッガを指定。…おお。ブレークポイントで止まってくれた。

全変数の中身が覗けないのが気になるけど、監視ウインドウを出して変数名を登録してみたら、登録した分だけは一応覗けた、ように見える。…でも書き換えができないな。うーん。

ステップ実行するとエラーが発生するのも気になる。どうも監視ウインドウの中に空行があるとエラーが出るらしい。

それでも、Ruby 2.0.0 を使っていて、GUIでデバッガを使えそうなのはありがたい。CUIでどうにかするしかないのかなと、かなり暗い気持ちになってたわけで。それと比べたら、はるかにマシ。

ということで、スタンドアローンの Aptana Studio はよろしくないけど、eclipse + Aptana Studio + RDT なら、もしかすると Ruby 2.0.0 でもデバッガが使えるのかもしれず。

_Bug 345976 - Debugger is looking for ruby-debug gem when it should look for ruby-debug19 を眺めると、Ruby 1.9.3 でも Ruby 2.0.0 でも debugger との組み合わせで動いてるという報告らしきものがあるのだけど。それが本当なら、ruby-debug-ide19 を要求してくるNetBeans を使うのを諦めて、eclipse に移行したほうがいいのだろうか。うーん。

NetBeans上でも変数の値を書き換え出来なかった。 :

NetBeans 上で動作を確認してみたら、そちらも、値を見れるだけ、だったのですね…。もしかして、値を書き換えるのは、また別のツールなのだろうか。

大昔、MC68000使用のハード上で、ガンガン値を書き換えながら動作確認してた気もするんだけど、あの時使ってたツールは、一体何だったんだろう。アレをデバッガと呼ぶものと思い込んでたんだけどな…。

それはともかく、Ruby 1.9.3 上でも debugger その他をインストールしておかしくなってしまったので、gem uninstall 〜 で、ごっそりアンインストール後、ruby-debug-base19等をインストールし直し。以下のページが参考になりました。ありがたや。

_Ruby1.9.3の実行環境とデバッグ環境の整備 | Dear プログラマー
_Windows7でRails3 + NetBeans + デバッガー が動かない - 同じにやっても動かない
_exabugsの雑記帳 Eclipse(Aptana3) で Ruby1.9.3 をデバッグする

lib/ruby/gems/1.9.1/gems/ruby-debug-ide19-0.4.12/lib/ruby-debug/xml_printer.rb の修正を忘れて、変数ウインドウを表示すると途端に落ちるという不具合に見舞われ、首を傾げてました。
class String
  def is_binary_data?
    ( self.count( "^ -~", "^\r\n" ).fdiv(self.size) > 0.3 || self.index( "\x00" ) ) unless empty?
  end
end
を追加する修正をしておかないといかんのですな…。

それにしても、NetBeans 上のソレって、やたらフリーズするなあ…。ruby-debug*19 は、もうメンテナンスされてないという話も見かけたし。どうしたもんか。

この記事へのツッコミ

Re: Ruby2.0.0+IDEでデバッガは使えないのかな by monsieur_murah    2014/09/26 14:57
Ruby開発環境としてRDEを愛用してましたが、Ruby2.0ではデバッグできないので、乗り換えようと模索しておりましたが、なかなかまとまった情報がなく、
非常に参考にさせていただきました。
Eclipse + Ruby2.0.0 + RDT + 内蔵デバッガはうまくいきましたが、
唯一、メソッドのキーワード引数を認識してくれず、アウトライン機能がうまくいかなかったので諦めました。どうもRDTは最近の更新が止まっているようで、
使い続けるのは少々ためらいを感じました。
NetBeans(8.0.1) + Ruby2.0.0 + Ruby and Rails Pluginは、デバッガとしてインストールするgemを
ruby-debug-ide-0.4.22.gem(お尻に19とか書かれていないやつ)
debase-0.0.9.gem(2.0用らしいです。ruby-debug-ide-0.4.22/lib/ruby-debug-ide.rbの8行目でご指名されてます。)
とすれば、ブレークポイントで止まって変数の中身を見る事ができています。
(xml_printer.rbの追記は相変わらず必要みたいですが。)
私のような迷える子羊さん達の参考になれば、と投稿させていただきました。

#4 [dxruby] Ruby 1.9対応版の DXRuby が欲しいな…

開発版はともかくとしても、せめて、DXRuby 1.5開発版をバックポート(?)した DXRuby 1.4.1 は、Ruby 1.9対応版も欲しい…と思えてきたり。もちろん、技術的に難しいとか、対応がめっちゃ大変、という話なら、仕方ないのですけど。
*1

DXRuby 1.4.0 には、フルスクリーン表示がおかしくなるバグが ―― ゲームアプリ制作においては、結構クリティカルなバグがあった記憶が。 *2 そんなバグ持ちバージョンを、Ruby 1.9 対応の最後のバージョンにされてしまうと、ちと自分は困るので。「DXRubyオススメ」と言えなくなる。もにゃもにゃしてきちゃう。

「Windowsオンリーと言う制限はあるものの、誰でも手軽に使えるのが DXRuby の売り」と自分は思っているのですけど。もし、「Ruby 2.0.0以降のみ対応」という方針になると…。興味を持った方が導入してる Ruby のバージョンによっては、いきなり門前払い食らわせることになるよなと。DXRubyが持っていた、「誰でも手軽に」が無くなっちゃう。

かといって、「Ruby 1.9上で使いたい人は DXRuby 1.4.0 を使って」と言われてしまうと、それはバグ持ちバージョンであることが自分は分かってるから、オススメだの宣伝だのはしにくくなるし。

初心者向けも考慮したい、あるいは、お試しから本格利用まで間口を広げておきたいなら…。Ruby 1.8 はサポート終了してるからともかくとしても、Ruby 1.9 までは、まだ、今のうちは、あくまで当面は、対応しといたほうがいいのでは、と思うのですけど。せめて、バグを取った正式版は、二世代分に対応していただけないものかと。

とは言え現行版にのみ対応するメリットもありそうで。 :

  • Ruby はバージョンが上がるたびに処理速度が改善されてる。リアルタイムゲームを作るなら処理速度が速いほうが望ましい。現時点で最速の環境にのみ対応、という考え方も、ライブラリの性質からしてアリなのかも。
  • 今後 DXRuby が、Ruby 2.0.0 以降で追加された機能を積極的に活用するつもりなら、Ruby 1.9.x に対応し続けるのは技術的に難しい。
  • Ruby 1.9.x を導入してある環境でも、pik を使えば Ruby 2.0.0 がインストールできるので、「お試しインストール」も不可能ではない。そもそも、スターターキットだってある。
  • DXRuby は将来的に OpenGL もサポートする、という話もあり…。すると、Windows 限定ではなくマルチプラットフォーム対応のライブラリに変貌していくのかなと。他ライブラリが放置状態の中、DXRuby だけが、最新Rubyに対応済みの2Dゲーム制作ライブラリになり、存在意義が変わってくる可能性も。古いRubyを切り捨てて失うユーザ数より、マルチプラットフォーム対応にリソースを集中して新規獲得できるユーザ数のほうが多い、という展開もありえる。
前世代を切り捨てる理由を、自分もスラスラ思いついちゃうあたりが、なんというか。うーん。

余談。 :

このあたり考えていくと、 _Shoes_Processing 、 あるいは _HSP のように、「そこで一旦全てを閉じてしまう」方針も、なんだか理解できちゃいますな…。

根幹技術がアップグレードした際に、自分達まで右往左往する状況を回避したい、となると、根幹技術のバージョンを固定して同梱したり、開発に必要なエディタを同梱して強制したり…。そういった手段は有効なのかなと。その代り、開発環境を丸ごと提供し続ける形になるので、開発リソースが分散して、全体の作り込みは今一つになりそうですが。

Processing のエディタの表示バグを眺めてると、「そこはもう、本来 Processingが担当する領域じゃないけど、こういうパッケージングしてるからには、そこにもリソース割かないといかんよな…」と思えてきて、なんとも難しいなと。

*1: DXRuby 1.6.0 が出てくる頃には、Ruby 2.0.0 を取り巻く環境も変わっているでしょうから、DXRuby 1.6.0 からは Ruby 2.0.0 以降で、という方針は構わないのですけど。
*2: そのバグがあると分かってたら、アプリ側で、フルスクリーン表示可にする仕様を入れるわけにはいかない・入れてあっても削る選択肢しかないので…。アプリ側で努力して解決できる問題ならクリティカルじゃないけれど。ライブラリを差し替えないと直せない症状はクリティカルな部類じゃないかと。

以上、1 日分です。

過去ログ表示

Prev - 2013/12 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project