ECFのReal-time Shared Editingデモ

一見の価値があると思います。ECFの新機能Real-time Shared Editingのデモ

インターネットを介して二人がSkypeで話しながら共通の.javaファイルを同時に編集するデモを見ることができます。

デモを見ながら、このReal-time Shared Editing中にUndo/Redoリファクタリング機能を使用したりするとどうなるんだろう?と思いました。是非試してみたいものです。

これを使えば、遠隔地からEclipseプラグイン開発勉強会に密に参加できるかも?

openArchitectureWare 4.3のGeneric EMF Editorを試す

前回のエントリで書いたように、oAW 4.3のリリースに合わせて発表されたGeneric EMF Editorを入手できます。早速使ってみます。

何か適当なメタモデルを、.ecoreファイルとして作成します。そして、このエントリで紹介したように、そのメタモデルのルートクラスの上で右クリックし「Create Dynamic Instance...」というメニュー項目を選択して、そのメタモデルインスタンスを作成します。すると、.xmiファイルが作成されReflective Ecore Model Editorが起動します。一旦このEditorを閉じ、この.xmiファイルを右クリックし「Open with」メニューを選ぶと、以下のように「Generic Editor」を選択できます。

このGeneric Editorを選択すると、以下のようなEclipse UI formベースのEditorでメタモデルインスタンスを編集することができます。

Eclipse UI formのMaster/Details Blockで実装されています。画面上部のモデルツリーのノードを選択すると、Details Blockにそのノードに対応するインスタンスの属性の入力画面が表示されます。

使っていてすぐ気がつくのは、org.eclipse.emf.databindingが利用されていることです。Details Blockで属性として例えば文字列を入力するとき、一文字入力するごとに画面上部のモデルツリーのノードのラベルが即座に更新されます。

openArchitectureWare 4.3のGeneric EMF Editorを手に入れる

http://www.eclipse.org/gmt/のサブプロジェクトのひとつ、openArchitectureWare4.3がリリースされました

このリリースで気になったのは、"Generic EMF Editor"の追加です。

従来よりEMFには、"Reflective Ecore Model Editor"というエディタが付属していて、メタモデルを定義する.ecoreファイルから同メタモデルインスタンスを編集可能なエディタをEMFで自動生成することなく、.ecoreファイルから直接そのインスタンスを編集することができます。
このReflective Ecore Model Editorは、エディタ領域にインスタンスをツリー表示し、各ノードの属性はProperties Viewで編集します。

oAW 4.3で提供される"Generic EMF Editor"は、上記"Reflective Ecore Model Editor"と同じく、任意のメタモデルインスタンスを編集可能なエディタで、Eclipse UI formsを用いて実装されています。(以下、oAWのヘルプにあるスクリーンショット

ちなみに、私が開発中のReflective Ecore Model Diagram Editorも、上記"Reflective Ecore Model Editor"と同じく、任意のメタモデルインスタンスを編集可能なエディタで、GMFを用いて実装されています。(といっても、まだ.ecoreファイルからインスタンスを編集することはできず、.xsdファイルからですが。。。)

というわけで、"Generic EMF Editor"が非常に気になったわけです。

Generic EMF Editorはどこ?

早速、openArchitectureWare 4.3を以下のサイトからダウンロードしインストールしました。ヘルプにはGeneric EMF Editorのページも含まれているのですが、いくら探してもGeneric EMF Editorが含まれていません。

http://www.eclipse.org/gmt/oaw/download/

現状、上記サイトからダウンロードできるSDKにはGeneric EMF Editorは含まれていませんでした。

Generic EMF Editorの入手方法

というわけで、CVSリポジトリの中に見つけました。

  • Protocol: pserver
  • Host: architecturware.cvs.sourceforge.net
  • Repository: /cvsroot/architecturware
  • Login: anonymous
  • Password: no password required.

上記リポジトリロケーションの、以下のパスにありました。

/oaw_v4/generic/org.openarchitectureware.emf.generic.editor

BEST SOFTWARE WRITING

BEST SOFTWARE WRITING

BEST SOFTWARE WRITING

この本は、あのJoel Spolsky氏による著書ではなく、Joel氏が読んできた中で最高のものを選んだエッセイ集です。各エッセイについて、最初にJoel氏による1ページ前後の紹介文があり、次に本文がくるという構成になっています。もちろん、各エッセイは独立しているので、エッセイごとに読み進めることができます。

各エッセイで取り上げられるテーマはもちろんソフトウェアに関するもので、例えば「プログラマアウトソーシングの落とし穴」「強い型付け vs. 強いテスト」「すごいハッカーとは」「情熱」「チームへの報酬」「採用の危険」などなど。

全て原文は英語であり、この本はその日本語訳版です。Joel氏による序文において、ソフトウェア開発者における文章能力の重要さが訴えられていて、そういう観点でエッセイが選ばれているので、そういう意味では原文のまま読みたいな、と思いました。

内容ですが、細かい技術的なことを学べるわけではないですが、「うんうん、そうだよなー」とうなづけるような教訓や愚痴が綴られており読んでいてとても楽しかったです。ソフトウェア開発者としての心構え、みたいなエッセイもあり、今後のキャリアに役に立ちそうなものもありました。

本書は気軽に読めるもので、技術書ばかり読んでいる人にとっては、息抜きになるのではないでしょうか。

What is Eclipse?

Eclipse Foundationのエバンジェリスト、Wayne Beaton氏によるEclipse概要紹介資料が公開されました。

http://www.eclipse.org/resources/resource.php?id=420

Eclipseが公開された当初はJavaIDEでしたが、現在は大いなる進化を遂げ、Eclipseは以下のような側面を持っています。そしてこの資料は以下の側面について1ページづつ使って紹介しています。

  • Java IDE
  • Plug-in Architecture
    • 様々な言語のIDEプラットフォーム
    • ツール開発用プラットフォーム
  • リッチクライアント開発用プラットフォーム
  • 実行環境

そして現在、次世代Eclipseであるe4、すなわちEclipse 4.0の方向性が議論されています。将来的には、Webブラウザ内でEclipseを利用できるようにすることを目指すとされています。明らかにRAP(Rich Ajax Platform)が発端ですね。以下からEclipseCon2008でのe4に関するTalkのスライドをダウンロードできます。

http://wiki.eclipse.org/images/4/4a/EclipseCon_2008_e4_talk.zip

確かに、Webブラウザ内でEclipseが動作するようになれば、インストールが不要となるなど、多くのメリットがありそうですが、はたして。。。

Ganymede M6以降で、Classic Updateを復活させる

Ganymede M6からプラグインのインストール/アンインストール等の管理がp2に移行しました。今のところp2の評判はあまりよろしくないということで、以下のようにGanymedeにおいて従来のプラグイン管理UI(Classic Update)を復活させることができます。

「Preferences」メニューから「General」-「Capabilities」を選択し、「Classic Update」にチェックを入れます。

すると、「Help」-「Software Updates」メニューが新たに現れます。

このメニューを選択すると、馴染みのあるプラグインインストールUIを利用することができます。

ちなみに、このバグに登録されているように、上記設定がセッションをまたいで保存されないという不具合があります。Ganymedeを起動するたびに上記設定をしなければなりません。p2を定着させるための作戦?