Net Beans 6.5 でRails利用した動作レポート

(バグレポート報告済み)


動作確認環境

製品バージョン: NetBeans IDE Dev (Build 200810041417)
Java: 1.6.0_05; Java HotSpot(TM) Client VM 10.0-b19
システム: x86 上で動作する Windows XP バージョン 5.1; MS932; ja_JP (nb)

Net Beans 6.5でRuby on Railsを利用していく中で気づいた点をメモ

1. Rubyプラットフォーム変更に伴い、InvocationTargetExceptionが発生する件

プロジェクトプロパティ> Rubyプラットフォームを「組み込み JRuby 1.1.4」から別途インストールしたRubyを参照するように切り替えると、InvocationTargetExceptionという例外が発生します。発生した後もソース編集やWEBRickの起動が正常に動作するので、影響範囲はNet Beans 6.5内のように見受けられます。



2. boot.rb(line 58)の警告が表示される件

動的コンパイルの結果、「誤った代入」?(if x = y でなく x == y)という警告が表示されます。
厳密にはbegin 〜 rescue で実装するべきなのでしょう。
いずれにせよ、変数 version への代入失敗した場合は例外となり、Gem::LoadErrorとなります。
Rails 1.2.5まで遡って確認した限り、変更された形跡がないため気にしない方がいいと思います)

def load_rails_gem
if version = self.class.gem_version
gem 'rails', version
else
gem 'rails'
end
rescue Gem::LoadError => load_error
$stderr.puts %(Missing the Rails #{version} gem. Please ・・・(省略)
exit 1
end

どうしても警告が気になるのであれば、自己責任の範囲で以下のように書きかえてください。

 def load_rails_gem
begin
if version == self.class.gem_version
gem 'rails', version
else
gem 'rails'
end
rescue Gem::LoadError => load_error
$stderr.puts %(Missing the Rails #{version} gem. Please ・・・(省略)
exit 1
end
end

GitHubの現状を見て、t-wadaさんの言葉を振り返る

現在、Ruby on Railsを使用したシステム開発が進行中にあり、gemからの参照設定であったり、プラグインの振る舞いを理解するためにGitHubを利用する機会が増えました。
実際に触れていく中で色々思うところがあり、この場で少し意見を述べたいと思います。

gitとは

gitとは分散した環境下でバージョン管理を実現したシステムです。

問題はgitじゃない。GitHubで起こりつつあるんだ

 GitHubとはgitのホスティングサービスです。無料でできるディスクスペースが提供されていることもあり、自由に利用されています。それ自体を否定するつもりはないし、活性化も期待できるので積極的に利用していくといいと思います。
 先日、「Restful」でGitHubで検索したら、接尾辞の異なる「Restful Authentication」が6件位ヒットしました。また、Rails2.1からgemからgit://を参照できるようになったので、URIを登録すると900件近いインデックスが新規に作成されました。

 すべてが有益であれば問題視しませんが、亜種も含まれてくると推測すると、Rails本体の魅力がプラグイン層の複雑性・多岐性で半減し、結果的として初めて触れる方へ敷居を高くしている可能性が懸念されます。

自由であるがゆえ、テストコードを書きませんか?

 ひと通り参照した結果、せっかくの良いソースコード、または、プラグインを組合せたテンプレートが、テストコードや説明がないために第3者に振る舞いが伝わらず、結果として似たようなコード、リポジトリがアップされているようです。ディスクスペースの心配より、この類似した存在、亜種の存在が全体の検索性を損ねていくのは非常に残念でなりません。


 Railsはテストコードのテンプレートが自動生成されます。それなら、テストコードを書いて活用する事を意識しませんか?
 
 機能概要を説明する仕様書はソースコードが担えます。別途、仕様書を作成すると、ソースとの整合性を維持していくのが難しいので、必要可否は述べません。

 ただ、テストコードは違います。対象を機械的に評価することができるし、要求を満たしているか判断する指標として非常に有益な資産です。

「分散開発環境」を広義に捉え、共有できるメリットを享受しましょう。

 顔を見たこともない相手とソースコードを共有できる可能性、これはひと昔前では考えられなかったことです。もし開発者として余裕があるのであれば、一から開発する発想から、良い仕組みは共有して育てていく考えに発展させてみませんか。
 今までは特定のメンバーにロールを割り当てて、専用の管理サーバを構築していた事が、GitHubで自由度の高い構成が実現できます。共有できることはメンターの負荷も分散できるしメリットです。メンテナンス対象のリポジトリが絞られていけば、新たな良いソースコードと出会える機会が増えると期待します。

何が言いたいのか?

 現状のGitHubを「既にカオス」と見るか、「自由な空間」と捉えるかは個人差があると思います。ただ、現状のWeblogが置かれている状況と同様に、情報過多により貴重な情報・資産が他の情報に埋もれている、検索しても欲しい情報にたどり着くまで時間がかかるいったことが、GitHubにも目の前に迫っているのではないかと危惧します。
 「RubyForgeに飽きた技術者がGitHubに移動しただけ」とか、「Railsの終焉がせまっているから関係ない」とか、切ないことを考える前に、今一度、より良い方向で末永く利用できるように意識してみませんか?

 せっかく良いソースコード、気に入った言語や技術について、情報が整備されないが故に浸透されなかった現実を目の当たりにしたのは一度ならずともあるはずです。偏った意見かもしれませんが、情報が整備されているが故に好みでない技術が結果的に生き残り、ライセンス料や対価を支払って利用し続けることになるかもしれません。

 などと考えているときに、東京Ruby会議01のt-wadaさんのセッションを思い出しました。


TDDと黄金の回転は、他の言語からの移植シナリオだけに適用されるわけではありません。


 IT業界に関っている者としては、無用なHackはなるだけ避けて、できる事なら家に帰ってビールをHackしたいなと。ただそれだけなんです。(おわり)

NetBeans 6.5 開発版(最新版)を入れてみる。

プロジェクト進行中につき、Net Beans6.1上で開発を進めていますが、Katagaiさんのブログを見て6.5 on Railsの動作レポートについてメモを残していきたいと思います。


  ※利用される方は、開発ビルドは以下からダウンロード可能です。
  * http://bits.netbeans.org/download/trunk/nightly/latest/ml

  ※可能であれば動作レポートを報告してみるといいと思います(私はBeta版で報告済み)
  * http://wiki.netbeans.org/JaNetBeansInstallReport65


動作確認環境

製品バージョン: NetBeans IDE Dev (Build 200810041417)
Java: 1.6.0_05; Java HotSpot(TM) Client VM 10.0-b19
システム: x86 上で動作する Windows XP バージョン 5.1; MS932; ja_JP (nb)

NetBeans IDE Build 200810041417とNetBeans 6.5 Betaの違い

なにより、一番異なるのは「日本語化」がされていることです。
 [目に見えて変更(日本語化)されている点]

  • メニュー
  • 各種メッセージ
  • ブログのリンク

現状


現在利用している環境

Net Beans 6.1

JRuby1.1.4

Ruby on Rails 2.1.1
上記環境からプロジェクトをインポートしたので、ピュアに6.5上で開発はしてません。 現状、移行に起因する弊害は出ていません。このまま問題が出ないようであれば、Rails開発者は、Destroy機能が追加されている6.5に切り替えて良さそうです。  

警告レベルの精度が上がった?

  リリースノートを読んでないので新機能か確認してませんが、文法について相当数の警告が表示されます。
  ざっと見る限りJavaScriptが主で警告を受けているみたいですね・・・
  ※もう少し調べてからまとめます。

 

僕らは翻訳する

12日のRuby講座も無事務め、がむしゃらに教材作成してた生活から一息。
Katagaiさんから頂いた、NetBeansの『Grobal Translation Team』Tシャツを試着してみた。
(本当は、日の明るいうちにと外で思ったんですが、予想以上に前日までの疲労が・・・。)



メタボ

人の和が広がって見えるのは仕様です。


和が広がるのは、翻訳プロジェクトにとって幸先いいことだと思います。


NekoBeanを想像すると、えらいことになると思われます。

多分、苦しんでます。

NetBeans 日本語サイト Wiki

http://wiki.netbeans.org/JaNetBeans
日本語のページは英語の Wiki ページに Ja を最後につけた名前です。

この活動以外にも、PHP フレームワークについて何を組み込むか投票で決定したり、
ユーザーの意見を取り入れて、より良いものにする動きが直感的で素敵です。


何はともあれ

唯一最高!

KatagaiさんTシャツありがとうございました
これからもよろしくお願いします。

 

 サマリー

 1.今までのブラウザとは大きく雰囲気が変わる
 2.(ベータ版だから)他のブラウザと同じ振る舞いを期待した時に違和感がある。
 3.ブックマークのインポートが提供されているので、移行は簡単。

UIが個性的、好み分かれる?

 まず、他のブラウザと大きく異なるのがファイルメニューがなく、いきなりTABから開始すること。人によっては不要だったり、最近流行のeeepc等で表示する場合は1行分稼げるから便利かもしれません。また、ウィンドウ下部にステータスエリアがなく、横スクロールが枠線に接する形で表示される点が、個人的に苦手です。

 FireBug同等ではないように見受けられますが、HTMLの解析ツールが標準で付いています。

他のブラウザより速い?

 定量的な測定をしていないので、体感での感想ですが「少しはやいかもしれない」程度。
 ※新しいものに触れた期待感が「はやい」と感じさせたのかもしれません。
  後はFirefoxからインポートしたのですが、URL入力中の候補絞込みが利用するデータまで
 Google Chromeに移行されてました。(便利)

操作した範囲で期待した動きとことなること

 ・ウィンドウリサイズの振る舞いが期待と異なる。
  →サイズの異なるデュアルディスプレイを利用しているためか、小さいサイズでリサイズを
   試みるともう一方のモニタに割り込んで表示されます。
  →Firefox等は、ウィンドウが表示されたモニタ枠内におさまるように表示される。
 ・キャッシュのされ方が異なる
  →はてなにログインし、過去の日記を編集しようとすると、タイトルに「編集」
   のリンクが表示されません。あわせて、ログインを要求されます。
  →Firefox等は、ブラウザを閉じるまでログイン情報が有効。再ログイン不要

所感

  うわさのJavaScript エンジン V8とか、技術的な検証を試みていないので、もう少し使って
 改めてまとめる必要があると考えます。操作感だけで感想を述べると、セッションの引き継ぎ
 がされない点に強い違和感がありました。(設定?)それ以外はシンプルでいいと思います。
  タスクマネージャでメモリ使用量を確認した際、Firefoxの半分程度だったので軽いかと
 期待しましたが、起動時にchrome.exeが2プロセス立ち上がるので何ともいえません。

  設定を変更したため表示されないのですが、ガジェットっぽくアクセス回数の多い順に
 表示する機能があります。(インストール時の設定では表示されてます。)ローカルの
 ブックマークは管理しないと登録順に並ぶので意外と便利かもしれません。


  まずは様子見ながらもう少し使ってみたいと思います。

WindowsにRuby1.9.0-4(2008-08-26 revision 18849)をインストール

東京Ruby会議01 その2Windows環境へRuby1.9をインストールすると決意したので、コンパイルからインストールまでを試みました。
(慣れない作業で思ったより解決に時間がかかりました。)

必要なソフトウェア(今回使用したツール)

  1. Microsoft Visual C++ 2008 Express Edition
  2. Ruby1.9.0-4

あると便利なソフトウェア
  ・wget.exe(GnuWin32)
    http://sourceforge.net/project/showfiles.php?group_id=23617
  ・SVN
    http://www.collab.net/downloads/subversion/
    補足)SVNリポジトリ(最新版)
    http://svn.ruby-lang.org/repos/ruby/trunk
    ※最新版をコンパイルするには、Ruby(1.8系)が必要

今回の作業環境

  OS      : Windows XP SP2(2008-08-30時点のUpdateを適用済み)
  作業ディレクトリ: c:\tmp

作業前に確認した方がいいこと

http://www.ruby-lang.org/ja/の「ダウンロード」からはSVNリポジトリの紹介しかなく(2008-08-30時点)、1.9.0-4のスナップショット版がftpでリリースされている情報に辿りつくまで時間がかかりました。
今回は作業終わった後に、「Ruby 1.9.0-4」で検索して事実を知る。

作業メモ

1.ruby1.9.0-4.zipを取得し、c:\tmpに解凍
2.Visual Studio 2008 コマンドプロンプトを起動
3.Makefile作成


C:\tmp>cd c:\tmp\ruby-1.9.0-4
C:\tmp\ruby-1.9.0-4>win32\configure.bat --prefix=c:/ruby19
4.nmake から バージョン確認まで

C:\tmp\ruby-1.9.0-4>nmake
C:\tmp\ruby-1.9.0-4>nmake install
C:\tmp\ruby-1.9.0-4>c:\ruby19\bin\ruby -v
5.zlib取得
 wgetを利用。http://www.zlib.net/zlib123.zipでダウンロード可能

C:\tmp\ruby-1.9.0-4>cd ../
C:\tmp>wget http://www.zlib.net/zlib123.zip
 c:\tmpに解凍
6.zlibにマニフェストを埋め込み、rubyのbinフォルダへコピー
 補足)http://msdn.microsoft.com/ja-jp/library/ms235591.aspx

C:\tmp>cd zlib123
C:\tmp\zlib123>nmake -f win32\Makefile.msc
C:\tmp\zlib123>mt -manifest zlib1.dll.manifest -outputresource:zlib1.dll;2
C:\tmp\zlib123>copy zlib1.dll c:\ruby19\bin
7.zlib.so のビルド

C:\tmp>cd ruby-1.9.0-4\ext\zlib
C:\tmp\ruby-1.9.0-4\ext\zlib>c:\ruby19\bin\ruby.exe extconf.rb --with-zlib-include=c:\tmp\zlib123 --with-zlib-lib=c:\tmp\zlib123
8.nmakeとinstall

C:\tmp\ruby-1.9.0-4\ext\zlib>nmake
C:\tmp\ruby-1.9.0-4\ext\zlib>nmake install

所感

インストーラ偉大!とはいえば終わってしまいます。
しかし、コンパイルから試みることで失敗をきっかけに色々知ることができました。
 ・ライブラリ読込エラーでつまずき、GnuWin32の存在に辿りついた。
 ・メーリングリストの重要さに気づいた。
 ・正誤含め、ブログでは情報が散在しているため、正解に辿りつくのは難しい。
  ruby-dev@ruby-lang.orgを購読した方がいい。
 ・検索する中で毎月25日リリースの話や、色々な技術情報を知るきっかけを得られた。


遠回りも意外と重要


さて、次はTokyoRubyKaigiの持ち帰りを検証するとしよう。