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

2011年12月22日木曜日

形式手法について勉強したいなぁ。

形式手法は前々から知っていて、興味は持っていました。
勉強しようと思うが、どのように業務にいかせるかな?っておもって手を出していなかったのですが、@ITMONOistでISO26262の開発手法が掲載されていました。
形式手法は組み込みでも使われているので、今やっている業務に適用できるかな?って思ったので、勉強してみようと思っています。

Alloy, Z , VDMなどはあるけど、Alloyが本があって読みやすいかな?とは思うので、
買ってみようと思います。


一応形式的手法とは

計算機科学における数学を基盤としたSW,HWのシステムの仕様記述、開発、検証の技術。
開発行程でエラーが入り込まないことを保証する。
要求仕様レベル、機能仕様レベルでは特に効果的であるが、実装レベルでも形式主義開発は可能。

2011年11月28日月曜日

SWTBotのantからの起動

SWTBotを自動化するためにantから起動できる方法を簡単に調べてみました。
eclipse.junit4.headlessのlibrary.xmlのantfileを起動するだけということ。
あとは、引数やプロパティを設定するだけという簡単な仕組みらしいです。
ふぅ〜ん。簡単じゃん。
でもMac動かないよw
Win環境がないから、プロパティが悪いのか、macのバグなのかわからない。
macはSWTのバグが結構多いらしいので、ちょっと踏んでる可能性があるからなぁ。
一応-XstartOnFirstThreadは渡しているから大丈夫なはず。
会社で調べてみるか。。。



 
 
 
 
 
 
    
            description
    
 
  
  
  
   
   
   
   
   
   
   


  
  
 
 
 
  
    
    
        
    

    
    
    



2011年11月22日火曜日

RCPのdropins機能をつける


  1. 以下プラグインをdependencyに追加
    1. org.eclipse.equinox.p2.reconciler.dropins
    2. org.eclipse.equinox.ds
  2. 製品構成ファイルのconfigurationタブでスタートレベルを設定する。
    1. 以下プラグインはautoStartをtrueに
  3. 製品構成ファイルと同じディレクトリにp2.infファイルを作成する。ファイル内容は下記内容
  4. この設定によってRCPのエクスポートを行うとdropinsディレクトリが作成されている。そのため、dropinsにプラグインを配置すると自動的に読み込んでくれる。
<configurations >
<plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
<plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
<plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
<plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="5" />
<plugin id="ph.jpn.calm.rcp.sample" autoStart="false" startLevel="6" />
</configurations >

instructions.configure=\
mkdir(path:${installFolder}/dropins);

2011年11月20日日曜日

Apache Geronimo 3.0βリリース

Apache Geronimoは使ったことはないけど、ちょっと気にはかけているアプリケーションサーバです。JBoss,Weblogic,Glassfishが強いイメージですが、日本でどのくらい利用されているかは残念ながら知りません。

とりあえずJava,Groovyのみでできているアプリケーションサーバで、今回注目なのはOSGi対応になったらしくApache Felix Karafが組み込まれたということです。
今までのプラグイン機能を実現していたGBeanという機能が完全にOSGiのフレームワークに則ったシステム構成になるということです。


本家サイト:
http://geronimo.apache.org/
日本語サイト:
http://www.geronimo-users.jp/

2011年10月11日火曜日

ニュートリノの光速超えについて

色々今巷で話題になっているので、ちょっとぼやいておこうかなぁと。

スラド での記事をみたのですが、時計の進みのずれが光速を超えたニュートリノの観測
になった可能性があるそうですね。

そこまで、重力の差異で影響はでるとは思っていませんでした。
でも、なんでスイスーイタリア間をニュートリノを飛ばして、そんな厳密なテスト
を行おうと思ったのだろうか?
経度が変わることにより重力に差異が出ることはわかっているはずなのに。。。
K2Kだって、ちゃんと経度があまり変わらない方向に打ち込んでいるはず。

時間の進みに補正をかけるということは誤差が出てその誤差が実際の測定の誤差になる誤差の伝搬が発生してしまうのではないかな。

業界から離れた人間がごたごたいってもしょうがないので、じっくり検証結果を待つとしよう。