2012年12月28日金曜日

EATOPについて

最近少しだけ、eclipse auto IWGで出てきたEATOPについて簡単に調べてみました。



簡潔にいうと


  • EAST-ADLツールフレームワークを作成する。
    • EAST-ADLはアーキテクチャ記述言語
  • 共通部分を非競争領域のためオープンソースとしてメンテナンス
  • 競争領域はツールベンダががんばるところ。
  • AUTOSARとEAST-ADLのツールフレームワークを共通化
    • AUTOSARは車載システムの共通化
  • M2Mでシームレスに開発ができる。
    • EDONAの話


2012年12月8日土曜日

EuGENiaを使って簡単なGMFの作成

Eclipse Modeling勉強会で知ったEuGENiaを早速使ってみました。
設定手順を簡単にまとめました。


epsilon開発環境のダウンロード


epsilonのダウンロードサイトからEclipseの環境をダウンロードします。
EuGENiaやemfatic変換などのプラグインが入っています。

ecoreファイルの作成

空のEMFプロジェクトを作成します。modelフォルダ内にecoreを作成します。
今回のモデルは勉強会で作成したecoreと同じです。














ecoreからemfaticファイルへ変換

ecoreファイルを選択して、右クリックをして、"Generate Emfatic Source"を選択します。
拡張子emfファイルが作成されます。

















gmfannotationの設定


拡張子emfファイルを開いて、下記のようなgmfのannotationを追加します。


@namespace(uri="http://network/1.0", prefix="network")
@gmf(foo="bar")
package network;

@gmf.diagram(foo="bar")
class Network {
  val Node[*] nodes;
  val Link[*] links;
}

@gmf.node(label = "name")
class Node {
  attr String name;
}

@gmf.link(source="source", target="target",target.decoration="arrow", style="dot", width="2",name="name")
class Link {
  ref Node[1] source;
  @gmf.link(target.decoration="arrow", style="dash")
  ref Node[1] target;
  attr String name;
}



GMF Editorの自動生成

拡張子emfファイルを選択し、右クリックメニューで、Eugenia > Generate GMF editorを選択します。下記拡張子のファイルが自動生成&ソースコード生成まで行ってくれます。
これにて、GMFの設定は完了です
  • gmfgen
  • gmfgraph
  • gmfmap
  • gmftool


















動作確認

右クリックでEclipse Applicationを指定して、起動します。ウィザードでExamplesカテゴリのNetworkDiagramを作成します。GMF用のエディタで開くと下の図のようなものが書ける画面が作成されます。
これで完了!!!












GMFというと非常に色々設定しなければ行けないというイメージがあって、取っ付きにくかったという印象があったので、上記対応だけ行えば、GMFの設定が自動設定されるというのは非常に素晴らしく、GMFを使う機会が増えるのではないかと思う。
プロトタイプ等を作成するときには非常に有効だと思う。



2012年12月7日金曜日

Eclipse Modeling勉強会に行ってきました

Eclipse Modeling 勉強会があったので、参加してきました。

場所は機械振興会館。目の前に東京タワー。
勉強会終わったあと外でたら綺麗だったので、みんなカメラで撮っていました。

EMFの勉強会って、札幌であったのは覚えているが、東京でEclipse Modeling系の勉強会は初めてだったかな。EMFを使用している身としては参加しない訳には行かないだろうと思って参加しました。


スライド一覧




所感としてモデリングという題材として、このような議論、情報共有できる場
が開催された事は非常にうれしい事でした。
うちの会社のメンバーも参加させて、モデリングという意識が強められるようになるといいなぁと思いました。メタモデルの概念が分かる人が多くないだろうし。

また、次回はこんなツールがあって、色々使ってみましたというプラクティス的な
発表があると面白いかなあと思った。

2012年12月5日水曜日

Macのxmindの日本語入力について

自分は仕事とかでmindmapを作成する場合にはXmindを使っています。
会社では最新版(2012/12/05現在の最新版はv3.3.0)をインストールしてやっています。
  • スプラッシュ画面の画像変わった
  • mindmapのテンプレートが用意されている。
  • ローカルヒストリが使える。

ローカルヒストリ機能が非常に有用だったので、自宅でもインストールしてみようと
やってみました。
インストール自体の問題はないのですが、日本語入力すると無視される。。。。。
Windowsでは入力できるが、Macだとできないようで。。。。。。。

ver.3.2.1をインストールしたら正しく日本語が入力できた。
ver.3.2.1は日本市場向けということで、日本語入力がうまくサポートしているのだろうか。
できたらv.3.3.0もちゃんと日本語入力サポートされたxmindがあればもっと使えるようになるんだろうなぁ。


2012年11月4日日曜日

eclipse_orionを試してみた。

eclipse orionが2012/10/29にver.1.0のリリースの発表がされたようです。
実際ダウンロードサイトを見るとビルドログは2012/10/19にver.1.0はビルドされていたようです。

eclipse orionってなによ?ってことで

  • Webブラウザで開発が行える統合開発プラットーフォーム
    • WebブラウザをIDEとして使える。
    • JavaScriptでエディタを実装。コード補完などもJavascriptで実装。
  • どこでもコーディングできる
    • ソースコード等はorion内で管理しているためorionにログインすればどこでもコーディング可能。
  • OrionはWebサービスとして動作しているIDE
    • jettyで動いています。
  • OSGiにて拡張が可能
  • デスクトップIDEの模造ではない。
  • orionhubってところで管理およびIDEが使えるが、ローカルにorionをダウンロードして使う事が可能。
  • orion上でフォルダ、ファイルの追加などもブラウザからも操作できる。
  • git との連携もできる。
  • 検索、リソース比較もできる。



軽い動作確認:
  • ローカルにorionを入れて動作させてみる。
    • Windows動作確認
      • orionをダウンロードし、展開、orion.exeを実行
      • localhost:8080にアクセスしても、レスポンスデータが空で戻ってくる。
      • 原因は不明だが調査している。。。。
    • Mac動作確認
      • orionをダウンロード、展開、orionを実行
      • localhost:8080にアクセスするとログイン画面が出てきた。
      • アカウント作成し、ログインするとnavigator画面が表示される。
      • HTMLエディタを使ってみたが、選択した場所からずれるという現象があったりするため、ちょっと不安定なイメージが。
      • Shellはhelpを打ってみると分かるが5種類のコマンドしかなく、いまいちな感じ。
        • cd , ls , edit , pwd, help だけ。
        • cdの移動はorionのフォルダのみ移動可能。

今回はこんな程度のまとめ、orionのプラグインを作成して、拡張してみる。
日本語資料がほとんどないので、英語よまないとなぁ。


2012年7月14日土曜日

Playframework勉強会#3まとめ

とりあえず、毎回playframework勉強会のスライドまとめを書いているので、今回も書いておこうかなあと思います。
(現在更新中です。)



時間発表者タイトル
14:30~14:50@ikeike443 Playアップデート
14:50~15:20@i2key さん
MediaTechnologyLabsの紹介
 Play2.0+JavaでAPIサーバを開発しているiPhoneアプリの紹介 
15:25~15:55@tototoshi さん Play20 + Scala について
16:00~16:30@kara_d さん
16:35~17:05@daiksy さん Play2.0 + Scala での開発事例



発表者タイトル
@garbegetown さん
@masahito さん
 ドキュメント翻訳について
 Play2.Xドキュメント翻訳について
@seratch さん plugin 開発の導入
@たけぞう さん Play1.2.X系+Scalaの話
@gakuzzzzさん Play20-auth の話か DDD on Play20 みたいな話
@puriketu99 さん おしべめしべシステムからplayをはじめよう




2012年6月3日日曜日

scala.sys.Processのシンタックスシュガーでコンパイルエラー

簡単な運用スクリプトをscala移行をおこなっていて、ちょっと悩み中。
scala.sys.Processを使っていて、下記のようなコードを書きました。
import scala.sys.process._
val result ="df -k"!!
println(result)

コンパイルしてみると、
> compile
[info] Compiling 1 Scala source to /Users/kazuhiro/work/scala/sbt_project/sample_project/target/scala-2.9.0-1/classes...
[error] /Users/kazuhiro/work/scala/sbt_project/sample_project/src/main/scala/Sample.scala:28: recursive value result needs type
[error]  println(result)
[error]          ^
[error] /Users/kazuhiro/work/scala/sbt_project/sample_project/src/main/scala/Sample.scala:28: type mismatch;
[error]  found   : Unit
[error]  required: scala.sys.process.ProcessLogger
[error]  println(result)
[error]         ^
[error] two errors found
[error] {file:/Users/kazuhiro/work/scala/sbt_project/sample_project/}default-fc0f5b/compile:compile: Compilation failed
[error] Total time: 2 s, completed 2012/06/02 11:22:44
次に以下のように!!の行に一行あけてみると。
import scala.sys.process._
val result ="df -k"!!

println(result)
コンパイルが問題なく通る。 シンタックスシュガーに改行が必要だとシンタックスシュガーにならんじゃないの? REPLで上記コードを入力した場合は、問題なく実行されるので、本来ならば問題はないんだろうなぁ。。 環境は
mac OS X 10.7.4
scala-2.9.0-1
追記:2012/06/05

とりあえず謎の空行の対策としては、セミコロンを入れればコンパイルエラーはなくなる事が判明。 うぅーん。なぞだ。

2012年2月20日月曜日

ソフトウェアテストの教科書読了

先月に出版された本ですが、バルテスというテストをメインとする会社の人が著者らしいです。

読んだ感想は

  • テスト設計、実施、モニタリングというテストフェース全体を網羅する内容を明解に記述
  • テスト技法についても結構なページを割いて説明をしていたため分かりやすい内容
    • 新人とかに読ませるとよいのかなと思います。
  • テストケースの内容が組み込み系にマッチング
  • テストケースを少なく効率的にテストする思想があった。
  • テスト設計書は重要!!!
    • 追跡性、関連性(関連ドキュメントやドキュメントIDなど必須)
    • テストの定義を記載
      • なにを目的とするテストなのかを記述
      • レビューする人が分かるレベルに記述。
        • 後々なんでこんなテストしたの?ってわからなくならないようにする。
    • テスト項目対象外も記載。
      • これもなんでテストやってないの?ってなってしまうので。


個人的にはすごい読みやすい本だと思いました。
ってかテストの本を読んだの初めてかもしれない。。。。。。ほかのテストの本を読んでみて、比較してみます。
今までこんなテストを実施する立場にはあまりいなかったので。



まぁ、この本を読んだのは、現在プロジェクトで既にあるコードから設計書作成して、
再テストを行うという泥臭い仕事をしているんですが、

  • ドキュメントフォーマットが揃っていない。
  • テストプロセス、テスト実施方法が決まっていない。
    • テスト項目洗い出し方法等もまとまっていない。
という結構やばい状況だったので、それを脱出すべく本から知識を拝借しようと思い読みました。



2012年1月13日金曜日

Java API for JSON Processingについて

JSR 353: JavaTM API for JSON Processingをさくっと 読んでみました。
JSR353ではJSONのデータを扱うAPIの仕様について明記しています。今年に入って正式に標準化が決まったようです。
APIが入れられるパッケージはjavax.jsonとのことです。

この仕様のゴールは以下のAPIが開発されることです。
  • Produce and consume JSON text in a streaming fashion(similar to StAX API for XML)
  • Build a Java object model for JSON text using API classes(similar to DOM API for XML)
以下のことは仕様のゴールには含まれない。
  • Binding of JSON text to Java objects and vice versa.


既存のJSONデータを扱うパッケージは以下のようなものがあります。

Jacksonは以下のような簡単にPOJOで扱える仕組みです。

ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally
User user = mapper.readValue(new File("user.json"), User.class);
public class User {
    public enum Gender { MALE, FEMALE };

    public static class Name {
      private String _first, _last;

      public String getFirst() { return _first; }
      public String getLast() { return _last; }

      public void setFirst(String s) { _first = s; }
      public void setLast(String s) { _last = s; }
    }

    private Gender _gender;
    private Name _name;
    private boolean _isVerified;
    private byte[] _userImage;

    public Name getName() { return _name; }
    public boolean isVerified() { return _isVerified; }
    public Gender getGender() { return _gender; }
    public byte[] getUserImage() { return _userImage; }

    public void setName(Name n) { _name = n; }
    public void setVerified(boolean b) { _isVerified = b; }
    public void setGender(Gender g) { _gender = g; }
    public void setUserImage(byte[] b) { _userImage = b; }
}
{
  "name" : { "first" : "Joe", "last" : "Sixpack" },
  "gender" : "MALE",
  "verified" : false,
  "userImage" : "Rm9vYmFyIQ=="
}

2012年1月2日月曜日

Sphinxへ移行

Wikiを使っていたが、やはり最近Sphinxへの移行を考え始めました。
理由は以下の点です。


  • ローカルでの作業が多いこと
    • viでがりがり記述が可能であるため、楽。
  • html以外でのドキュメントでも変換が可能であること。
    • PDF変換可能ということはプレゼン資料も作成可能


導入方法は以下手順。



今後Sphinxの使い方をまとめていく予定です。
まとめるというよりは自分の使いやすいようにリンクなどを張っていけば、今後役に立つ人はいると思うので。。。。