2010年2月1日月曜日

Jet BRAINS IntelliJIDEA9

scalaを触り始めて1ヶ月ちょっと経過してliftもやってみたくなり触り始めましたが、フレームワークは端末&emacsベースでコマンド叩きまくる感じだと個人的にはかなりキツい。jettyもリロード繰り返すとよく落っこちるのでJavaRebel(ライセンス、又は登録が必要)を使おうかどうしようかと迷ってましたが、まずは統合環境からと幾つか試してみました。
eclipseはまだまだ何かscala&liftと噛み合っていない印象を受けました。
Netbeansのscalaプラグインは評判良い感じですが、6.8だとscala2.8系じゃないと駄目なようでうまく動かず、何というか、とりあえずシェルでemacsでmavenでいいかなぁ、という感じでした。
どちらも無償版なので文句言えるシロモンではないですが、物は試しと使った事のないIntelliJを落としてくる事にしました。
IntelliJは商用だったのですが昨年コミュニティエディション(javaのWeb開発関連の機能削除版)がオープンソース化されてます。
日本語化されていないので日本ではマイナーですが、scalaを公式サポートしているらしくプラグインが結構な頻度で更新されています。

Jet BRAINS IntelliJIDEA9

ubuntu上でここ数日、テーマ変えたりフォント変えたり、設定やら何やらあれこれ触ってlfit動かしてましたが、単にIDEとして見た場合、凄く洗練されてる感じです。
見たい物はすぐ見られるし、いらない物はすぐ隠せるし、やりたい事にすぐアクセスできる感じ。ただ、コードのインスペクション機能が鬱陶しいのでそこそこ微調整が必要かもです。
liftプロジェクトをインポートして、mavenプラグインからも選択実行できます。
IDE自体がヒストリ機能をもってますが、Gitプラグインが結構使えるレベルです。
エディタ向けemacsキーバインド機能なんてのもあるし、scalaのコード補完機能も使えて結構完成度高いです。
コーディングとコードリーディングに関しては現状とりあえず十分ですが、今のところ自動コンパイルの方法は分かりません。デバッガは機能していますが、クラスリロードはpom.xmlの”scanIntervalSeconds”を0に設定してメニューからリロード選択置き換えです。

オープンソース化されたのでEclipseの様にこれからIntelliJベースの商用プロダクツが出てくるかもしれないです。JetBrains(チェコの会社なんですね)は有償版も提供し続けるって事です。
とりあえずしばらくIntelliJを使ってみようかと思ってます。

こちらの記事を参照させて戴きました。
■「Googlerも使っているIntelliJ IDEAのOSS版を試す
■「IntelliJがオープンソースに

2010年1月29日金曜日

emacsのgitフロントエンド

emacs23からgitを利用するのに使える「magit」というフロントエンドがあります。
gitを使っていてマメにコミットしたい方は便利かもしれません。

■インストール(ubuntu9.10)
Synapticパッケージマネージャから「magit」をインストールします。

■設定
.emacsの最後辺りに以下を追加します。
;;magit(git front end)
(require 'magit)
■使用方法
  • emacsを起動して「M-x magit-status」を入力するとバッファが現れます。magitのメインエントリポイントです。
  • ステージに追加されていないファイルがあれば一覧表示されます。
  • カーソルを移動し、ステージに上げたいファイルを選択して「s」を入力するとaddされます。
  • 続けて「c」を入力するとコミットログ入力に入り、ログを入力後「C-c」を2回入力するとコミットされます。コミットが完了するまで少し時間がかかります。ミニバッファウィンドウに"Git finished."が表示されるまで待ちます。
  • 他にメインエントリから「l」を入力すると ログが表示されます。「L」を入力すると詳細なログが出力されます。
gitの大体の操作は出来るようです。以下にカンニングペーパ(コマンド一覧)があります。
 「Magit Cheatsheet」(英語)

2010年1月28日木曜日

GUIのjavaデコンパイラ

クラスファイルのデコンパイラにGUIバージョンがありました。
JD(java Decompiler)
上記からダウンロードして解凍し、"jd-gui"ダブルクリックで起動します。




デコンパイルしたいクラスファイルをFileメニューから選択すると、
そのディレクトリにあるclassファイルを全て左ペインに読み込んでくれます。
eclipseプラグインもあり、ダウンロード出来るようです(未検証)。

2009年12月19日土曜日

scala用Yasnippet

scalaを何となく眺めている最中ですが、scala本家にemacsのyasnippetがUpされていて、ちょっと便利そうなのでubuntuに入れてみました。

Scala, Emacs and Yasnippet

基本は上記URLと、SVNから落としたREADMEに書いてある通りですが、ubuntu9.04にemacsが入っていなかったのでそこからスタート。

●ubuntuのSynapticパッケージマネージャで「emacs23」をインストール。
●ubuntuのSynapticパッケージマネージャで「yasnippet」をインストール。
●~/.emacs.d に snippetsディレクトリ作成。
●~/.emacs.d/snippets に scala-mode ディレクトリ作成。
●上記URLに書いてある通り、以下のコマンドでscala用snippetをダウンロード。
  $ svn co http://lampsvn.epfl.ch/svn-repos/scala/scala-tool-support/trunk/src/emacs/
●ダウンロードすると「emacs」というディレクトリが作成されている。面倒くさいので、そのディレクトリの中身を全て、さっき作った「~/.emacs.d/snippets/scala-mode」に放り込む。
●放り込んだら、「~/.emacs.d/snippets/scala-mode」で「make」を実行。
  $cd ~/.emacs.d/snippets/scala-mode

  $make
  (makeは必須ではないですが、makeしとくと読み込みが高速になります。) 


●こんな感じになっていると思います。



●ホームディレクトリに.emacsファイルが無ければ作成し、以下を記述。
;;scala snippet
(add-to-list 'load-path "~/.emacs.d/snippets/scala-mode")
(require 'scala-mode-auto)

(setq yas/my-directory "~/.emacs.d/snippets/scala-mode/contrib/yasnippet/snippets")
(yas/load-directory yas/my-directory)
(add-hook 'scala-mode-hook
        '(lambda ()
                (yas/minor-mode-on)
        ))

●保存してemacs を起動するとsnippetが使えるようになりました。

  doc と入力してTABを押すと、ドロップダウンリストが出てきて・・・


「3」キーを押すと、ファイルのヘッダを書き込んでくれます。


 ●他にも、「main」と入力してTABを押すと、
  def main(args: Array[String]) = {
                                                                   
  }
を作成してくれます。
本家サイトの
http://www.scala-lang.org/node/354
にどんな感じで使えるのか、ビデオがあるので参考になります。

jadの場所

javaクラスバイナリのデコンパイルに便利なjadが落とせなくなっているけど、Internet Archiveから落とせるらしいのでやってみた。


http://web.archive.org/web/20080214075546/http://www.kpdus.com/jad.html#download 

上記サイトの「Download Jad」をクリック。

linux版は以下の2つがある。
Jad 1.5.8e for Linux on Intel platform (214917 bytes).
Jad 1.5.8e for Linux (statically linked) (389972 bytes)

共有ライブラリ版は、libstdc++とかにパス通したりバージョン依存がありそうなので
statically linked の方をダウンロードした。
解凍して /usr/bin あたりに放り込み、動作確認したら、動いてるみたいです。