2010年8月12日木曜日

eclipse SDK 4.0の利用開始ということで

http://www.eclipse.org/org/press-release/20100728_eclipse4release.php
にそんなことが書いてあったので、ちょこっと和訳してみました。

やはりポイントはUIのブラッシュアップとAJAXっぽく動作させる方向性なのかなと。




-------------------------------------------------------------
コミュニティ公報
2010/07/28にEclipse Foundationは時期Eclipse PlatformのEclipse SDK 4.0の利用開始をアナウンスした。
EclipseはRCPアプリケーション開発者とプラグイン提供の膨大で、成功したエコシステムである。
Eclipse4.0の新しいフィーチャを紹介する。
エコシステムのメンバーがEclipseプラグイン、RCPアプリケーションを組み込んだり、作成したりするのを簡単にする新しいフィーチャを紹介する。

Eclipse4.0で導入される新しいフィーチャの幾つか

・アプリケーションユーザインタフェースでのウィジェットを指定に対して、モデルベースユーザインタフェースフレームワーク。
これは開発者にモダンなUIデザインをよりフレキシブルにする。RCPアプリケーションなどに導入される'IDE-ness'を取り除く。

・新しくCSSベースの宣言メカニズムをアプリケーションスタイルに適用し、CSSスタイルシートを使ったアプリケーションのスキンを変更できるようになる。

・サービス志向のプログラムモデルがEclipse platformによって提供されるサービスを使って簡単にできるようになる。

eclipse 4.0はEclipse Technologyのアダプタに対してである。
プラグインやRCPの開発者が4.0platformへの移行を強く勧める。
Eclipse3.xのフルバイナリ互換APIは可能な限り簡単に移行が行える。

Eclipseツール(JDTなど)のユーザは現時点ではEclipse4.0への移行はの利点は期待できない。
ユーザはEclipse4.0で新しいUIの改良から利点がある。
しかし、ツールやプラグインがeclipse4.0 platformに移行したプロジェクトによって提供されるプラグインやツール
を待つ必要がある。



eclipse e4インキュベーションプロジェクトは幾つかの新しい技術をリリースしている。

・XWT宣言のUIデザインツール

・モデルベースユーザインタフェースの作成のヘルプツール

・セマンティックファイルシステム、プラットフォームリソースモデルに接続するメカニズム。
これによりRESTスタイルAPIを使って無防備なリソースを削除することができる。

・JavaScriptとリッチクライアントのビューベースのOpenSocialの統合のサポート



Eclipse 4.0についての情報はeclipse.org/eclipse4にある。
Eclipse e4のインキュベーションプロジェクトはp2リポジトリからダウンロードできる。
http://download.eclipse.org/e4/updates/2010

2010年7月31日土曜日

やっぱり組み込みにもクラウドだよね。

日立ソフト、組み込み開発向けSaaS型サービスを提供

やはり組み込み業界にもクラウドなんだよねー。
クラウドにすれば、環境も同じにできて、環境依存などもなくなっていくだろうし。
ライセンスの問題も安く済むだろうし。

会社で作っている製品もクラウド化したいとは熱望しているだけど、
だれもふーんって感じでしか見ていないため、もったいない。
組み込みでクラウドをやれば、結構先進的な感じで話題になるんだけどなぁ。
でも、問題点は結構あると思う。

・組み込み業界はネットワークにつながらない環境だったり、制限が多かったりする。
・クラウドのよさなどをわかってくれないお堅い人が多い。
・変化を好まない。
・組み込み業界の会社にクラウド環境作成のノウハウが少ない

上記項目さえ解決すればどんどん開発しやすい環境になっていくのかなぁ。

2010年7月24日土曜日

scalaについてちょっと学んでみる

先日オブジェクト倶楽部というイベントに行ってきまして、イベントの懇親会の最後に
いろんな本のプレゼントというのがあり、ついついscala本を手に取ってしまいました。

事前の知識としてはscalaは
・オブジェクト指向&VMで動作
・Javaとの互換あり
・関数型言語

しかありませんでした。でも会社の後輩が興味もって本を買っていた
のでちょこっと興味がそそられてしまって持って帰りました。


面白そうと思ったところ

・XMLを直接プログラム内部に記述が可能
・クロージャ
・インタプリタかつコンパイラ
・並列処理が強そう(Actor)。まぁ、Scalaの語源となったスケーラビリティの思想だもんなぁ
http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%A2%E3%83%87%E3%83%AB

気になった点
・Javaと文法が結構異なる。
  groovyみたいにほとんど同じでも記述できますだと移行が簡単だが、これはJavaからの移行は考えられていなさそう。


でも非常に楽しそうな言語ではあるが、自分の業界に完全にアンマッチだろうなぁ。。。

2010年7月4日日曜日

RCPの自動エクスポート化

RCPを自動でエクスポートできるとよいねーってことなので、antでやってみようと思いました。

ProductConfigurationのExportセクションのEclipse Product Export Wizardの作業の自動化です。

ほとんどやり方は英語サイトに記述されているのですが、日本語化されていないのでまとめておきました。

参考サイト


基本的にサイトから取得してきた、情報を編集する方法での手順をまとめます。
1.buid.xmlとbuild.propertiesを作成(取得)する。配置はプロジェクト直下がよいです。
2.deltaPackを取得する。
3.buid.propertiesのproduct,archivePrefix,buildIdを編集する。
4.Target Platformの変更
Window->Preference->Plug-in Development->Target Platform
Add->Defaultで取得してきたdeltaPackを追加するしたTargetPlatformを作成する
5.上記設定したTargetPlatformでbuild.xmlを実行
もちろんeclipseのantの環境を使うため、実行構成でJREをワークスペースのJREを使うのラジオボタンを選択。

上記手順だけでプロジェクト直下にzipファイルが作成されているはずです。

productBuild.xmlを実行しているだけですが、中身では色々やっているので調査してみようと思います。

2010年5月2日日曜日

ChromeOSをインストールしてみる

SoftwareDesing5月号にChomreOSについての記事があったため、VirtualBoxにインストールを
してみて動作確認。

まぁ、いまさらかよ!っていうのはあるけど、使う使わないにせよちょっと触ってみるかな?
と思いました。

インストール方法の覚書
1.下記サイトから仮想アプライアンスファイルのTorrentをダウンロード
http://geeklad.com/download-the-google-chrome-os-virtual-machine

自分は面倒だったため、FirefoxのFireTorrentを使って直接ダウンロードしました。
そうするとダウンロードした下記ファイルがダウンロードされます。
chromiumos.ovf
chromiumos.vmdk

2.VirtualBoxの仮想アプライアンスファイルのインポートをする。
chromiumos.ovfをインポートすると、かってに仮想マシンを作成してくれます。

これでVirtualBoxにChromeOSのインストールが完了。

色々試してみた結果
・gmailで添付ファイルをダウンロード
 ダウンロードファイルは開けない。
 chrome://downloads/という場所に置かれるらしい。
 そこの部分にどのようにアクセスしているのか?
・動作が非常に不安定
 カーソルは動作するが、クリックが聞かなくなる。VirtualBoxが原因?
・コンソールモードが開かない?
 なぜか?もうちょっと調査の必要があるかなと。

その他の面白そうな機能があれば試してみようと思います。

2010年4月30日金曜日

SoftwareDesignの記事について

オブジェクト指向についての記事が書いてありました。

情報隠蔽とカプセル化の違いについてが述べられていました。
オブジェクト指向を説明している本などの資料で情報隠蔽=カプセル化という
説明が多いような気がする。
オブジェクト指向では情報隠蔽(information hiding)は抽象化をすることにより
実装を隠すという意味である説明が少ないような気がします。
このメソッドを呼び出せばオッケーです!っていうもの。

これを説明している本は少ないような気がする。。。。。

結論からすると
カプセル化:外部からのアクセス制限
情報隠蔽:抽象化により具体処理などの処理ロジック(実装)の情報隠蔽
となるようです。あっているかな?


情報隠蔽に関する論文が下記リンクだそうです。
http://campus.hesge.ch/Daehne/2008-2009/Module625/Algo/Documents/01-Article%20original%20de%20Parnas.pdf

2010年4月21日水曜日

Groovyでデコンパイル

groovyをデコンパイルしてgroovyの実装を確認してみる。
package ph.jpn.calm.sample.groovy;

class Book {
private String title

}



非常に簡単なクラスをデコンパイルすると以下のようなコードになる。
コンストラクタにメタクラスが存在する。このメタクラスを使っている
ことにより、スクリプトような動作を実現しているという。
時間があればもっと調べてみます。


package ph.jpn.calm.sample.groovy;

import groovy.lang.GroovyObject;
import groovy.lang.MetaClass;
import org.codehaus.groovy.runtime.ScriptBytecodeAdapter;
import org.codehaus.groovy.runtime.callsite.CallSite;

public class Book
implements GroovyObject
{
private String title;

public Book()
{
Book this;
CallSite[] arrayOfCallSite = $getCallSiteArray();
MetaClass tmp12_9 = $getStaticMetaClass();
this.metaClass = ((MetaClass)ScriptBytecodeAdapter.castToType(tmp12_9, $get$$class$groovy$lang$MetaClass()));
tmp12_9;
while (true)
return;
}

static
{
tmp10_7 = new Long(0L);
__timeStamp__239_neverHappen1271781713015 = (Long)tmp10_7;
tmp10_7;
tmp28_25 = new Long(1271781713015L);
__timeStamp = (Long)tmp28_25;
tmp28_25;
return;
while (true)
return;
}
}