2014/10/31 このエントリーをはてなブックマークに追加 はてなブックマーク - 【そんなBigDecimalで大丈夫か】Javaシステムの計算処理について

【そんなBigDecimalで大丈夫か】Javaシステムの計算処理について






Twitterの話題に乗っかって、内容をまとめてみようと思います。


私自身の考えではなく、様々な意見を整理したいなという試みです。僕には知識はありません。
B○zzNews並みに頑張ろうと思います。





基本的に、Javaを中心として、その周辺についても少し触れるぐらいのアプローチで書こうと思います。
ポイントとしては、以下の3点です。
※無意識に利用している部分(基礎的で普段意識しないところ)ではありますが、とても重要な話です。

1.Javaではあたり前のように計算処理にはBigDecimalが使われている
2.ではなぜ、BigDecimalではないといけないのか
3.どういった計算ならBigDecimalを利用するのか/利用しないのか



※本記事は演算誤差についてあまり厳密に的確な内容ではない可能性があります。
Java内の演算処理方法としてベターな方向の提示を目的としていますが、「誤差」や「精度」などに関して、
誤解を招く可能性があり、申し訳ないです。
BigDecimal以外もそうですが、100%誤差の無いものではなく、 それぞれの言語仕様、型仕様、小数点数方式、有効桁数、実行環境etc...によって精度は変わってくるという認識です。


精度などについては言及せず、以下のURL参照という形でお願いします。


参考:浮動小数点数の限界
BigDecimal 基本編
Javaプログラマーのためのjava.math.BigDecimalまとめ












2014/10/24 このエントリーをはてなブックマークに追加 はてなブックマーク - 【PrimeFaces】JSF + PrimeFaces環境でjQueryを使いたい

【PrimeFaces】JSF + PrimeFaces環境でjQueryを使いたい









最近、JavaEE環境でJSF2.xとPrimeFacesを触る事が増えてきましたので、
これからそういった構成でシステムを構築する方のために記録として書いておきます。
先に釘を刺しておきますが、JSF環境ではJavaScriptを多用する事はオススメしません。



   JSF



JSFはJavaEE標準機能のモジュールドリブンなMVCフレームワークです。
JSF2系になり、かなり実用性が増していると思います。
JSF1.xのバージョンではxmlベースでのマッピングであるのに対し、
2系ではアノテーションベースで簡易に関連付けが出来るようになっています。




    PrimeFaces



PrimeFacesはJSFを前提にして、リッチなUIライブラリを提供するものです。
基本的にJSFのタグライブラリを全てラップするような形でPrimeFacesのタグライブラリが作られています。
PrimeFacesのjarの内部には関連するJavaクラスとjs、cssが内包されています。
JavaScriptでは内部的にjQueryが利用されています。



多分、説明するより、ソースを見た方が早いですね。
GitHubにソースが上がっています。META-INF内にJsファイルは格納されています。
GitHub - primefaces/primefaces

独自にjQueryのjsファイルをダウンロードしてきて、xhtml上から読み込もうとすると、
conflict(衝突)します。
では、どうしたらいいのでしょう。









2014/10/20 このエントリーをはてなブックマークに追加 はてなブックマーク - 【JavaOne】JavaOne 2014 サンフランシスコ報告会 Tokyoに参加させていただきました #j1jp

【JavaOne】JavaOne 2014 サンフランシスコ報告会 Tokyoに参加させていただきました #j1jp





毎年行われており、今年で19回目を迎えるJavaOneの報告会、
JavaOne 2014 サンフランシスコ報告会 Tokyoに参加してきました。


togetterはこちら - 2014/10/18(#j1jp)JavaOne 2014 サンフランシスコ報告会 Tokyo

もうすでに、皆さん詳しく書かれています。



関連レポート
・きくたろーさん
JavaOne 2014 サンフランシスコ報告会 Tokyoに参加しました #j1jp
・みけさん
JavaOne2014報告会Tokyoに参加してきた #j1jp
・のた犬 (id:notainu)さん
のた犬のうまい猫めし
・yuji0316さん
Yuji Blog


発表者の実際の現地レポート的なものもみつけました
JavaOne 2014 SF レポート集



発表スライド等はすでにweb上に上がっていますので、直接僕が話を聞いた中で印象的だったところ、
スライドからは読み取りにくいところを中心に書いていこうと思います。

では、発表を順々に振り返っていこうと思います。








2014/10/15 このエントリーをはてなブックマークに追加 はてなブックマーク - Clojure夜会に参加させていただきました #Clojureyakai

Clojure夜会に参加させていただきました #Clojureyakai






Clojure夜会に参加してきました








僕はClojureはずぶの素人です。


なぜ参加したかというと、next Javaという口説き文句があったのと、
挑戦的なSIerの@kawashimaさんのLTが見てみたいというのが大きな理由でした。
kawashimaさんのこの記事にまんまとつられたのです(笑)。

SIerを退職する前に身につけておきたいスクショの撮り方



あと、ついでに一生懸命がんばってる@syobochim(しょぼちむ)さんを生暖かく見守ろうかなというのも。少し。




会場提供はリクルートテクノロジーズさん。とりあえず、ビル綺麗だし、デカすぎてびびった。


以下、セッションとLTを振り返っていきます。



2014/10/09 このエントリーをはてなブックマークに追加 はてなブックマーク - 【Android】AndroidAnnotations3.1でジェネリクスが使えなかった話

【Android】AndroidAnnotations3.1でジェネリクスが使えなかった話



AndroidAnnotationsより引用




一応、備忘録として。




  • AndroidAnnotationsを使用している
  • AndroidAnnotationsのアノテーションをHogeクラスに付与すると、Hoge_というクラスがジェネレートされる(ビルド時に自動生成)




  • @Transactionalを付与したメソッドの戻り値をList<Map<String, String>にすると、
    ジェネレートされたクラス側でコンパイルエラー

    実際のコードは、以下のような感じ。