My External Storage

ソフトウェアエンジニア向けTips。Qiitaにもメモ

Java Day Tokyo 2013メモ

下記カンファレンスへの参加メモ。

Java Day Tokyo 2013
2013年5月14日(火)
秋葉原UDX(アキバ・スクエア、UDX GALLERY、UDX GALLERY NEXT)


【KeyNote】

Java7はオラクルとなってから初のリリース。
OSXもサポートしたし、Embeddedにも注力した。

java8は2014、2月正式版リリース予定。
オラクルとしては今後も2年おきのリリースを目指す(2016にjava9)

Java8はコアライブラリ、JVMにも大幅な変更が入る予定。
Lambda式、関数オブジェクト、closureは最もたる特徴。
これまでのコレクションにも変更が入る。
forEachインターフェースなどが追加される。
しかし、Java7以前との対応はしっかりサポートしているので、心配なく。

Test Pilot Wanted
Early Accessはもう公開しているし、DLできるよ。
みんなの感想や意見を聞かせてほしい。
いつDLするべきか?
イツヤルカ?
イマデショ!!


JavaFX2.0
JavaFXはSwingの発展系。
アンサンブルがApp Storeにリリースされている。
オープンソース化することも視野に入っており、確約する。
openJDKでソースコードにアクセスできるようにすることを予定。
LinuxARM上でも動くようになっている。
リリース計画はJava8と同じ予定


JavaFX 3Dデモ
Win8とサーフェスでデモ
3DモデルはMayaで作成している。
3D球(Shape)程度のデモコードならば、5、6ステップで作成できる。

テクスチャフォーマットもいろいろ用意してあるので、凹凸を再現したりできる。
#モデル自体を凹凸にしているわけではない。
テクスチャをどのようにShapeに貼り付けるのか?
実装ではマテリアルクラスで作るだけで簡単にできる。
光源もクラスで用意してあるので、座標や色を簡単に設定・変更できる。


Java Embedded
これからはモノ同士がインターネットに接続される時代。
-ユースケース
都市の自動化、交通情報のネット化
交通渋滞や駐車場情報などを管理できる

産業への組み込み
貯蔵タンクなど、デバイス自体がデータを処理してインテリジェンスなデータ処理
自販機の在庫状況や港の貨物情報のモニタリングなども。
医療文化の在宅提供もできる
スマートホームの家電連携もまさにJava Embeddedの出番である。

こういったインフラへの組み込みで重要になるのはセキュリティである。
多くのアーキテクチャがネットワークに接続されている中で、それぞれを切り分けることができるのが大切。
さまざまなI/Oにも対応しなければいけない。
そしてリモートDL、アップデートができなければならない。
日常の小さなデバイスがIT化していけばしていくほど、
それぞれのメンテに要員を出す暇はなくなる。

Java ME
マイコンが入っているのには最適
JAva MEのリリース計画もJDKと同じ。

java embededd suit
ゲートウェイなどに最適

Java EE
エンタープライス向けのリリース
Java EE7ではhtml5、JSONやWeb Sokcketをサポート

それぞれは全てJava8のリリース予定と同様である。


Java Community
Javaの分野を3つで考える
・オラクルスチュアードシップ オラクルのリーダーシップ
・イノベーション 新しい機能からまた新しい機能が生まれる。
・参加 利用者の声からまた新しい機能が生まれる。

まず最初は学習すること。
オラクルはさまざまな学習・教材を提供している。
Javだけじゃなくて他も学ぼうねー。
学習の次は参加すること。
ツイッターとかで対話すること。そして新しいインスピレーションが生まれる。
jug.orgにみんな参加してねー。

JJUG参加方法

・なぜコミュニティにはいるのか?
デベロッパーとして成長するため。
普段いろいろな情報が公開されている。Javaに詳しい人がいる。
悩みを共有して解決のきっかけにする。
会社にいても古いコードだとかプロジェクトに縛られてしまう。

活動内容
クロスコミュニティカンファレンス 年2回1日イベント
ナイトセミナー 月1回の夜二時間のイベント
週末ハンズオン 週末半日から1日の持込で実装してみる。

JJUG今年の活動内容
Java SE 8/EE7の情報
第4水曜日 オラクル青山でやるよー。

情報の入手方法
ツイッター @JJUG
java-users.jpでメーリス登録できるよー


JavaOneカンファレンスがあるからきなよー
サンフランシスコ 9/22-26

Javaとは何か
革新そのもの。ただしみなさんの参加があれば。
コミュニティとは何か。それはみなさんです。
みんなで学習し、がんばりましょう。


【B1 Raspberry Pi NightHacking (Java SE / JavaFXを楽しもう)】

シンテリオン(Sintelion?綴りメモできず)
 ワイヤレスネットワークにマウントするチップ。
 Java ME(Micro Edition)で組まれている。
 実用例
 保護区の木一本一本をシンテリオンで管理し、森林伐採を監視したり。。。

 

 Raspberry PI
 さまざまなI/Oがついている小型コンピュータ。
 USB、GPU、カメラ、タッチパネルさまざまなI/Fを用意している。
 Piの設定方法
  Linuxをインストールする。
  Java 8 for ARM EA
  Javaアプリをデプロイして実行する。
 みなさんできますよね?じゃあ使えるじゃん!

 その後の話は途中おねむで離脱。。。

 

【E2 Java IDE の最新トレンド】

 マイナビニュースで「イマドキのIDE事情」など執筆している方など。
 あまり表題のテーマの話はせず。
  Eclipse
なぜ発展したのか?
 ユーザーがプラグインを開発して機能拡張していく、エコシステムがうまく働いた。
   InteliJ IDEA
無償版もあるけど、英語版しかない。
チェコ発のIDE
InteliJは簡単にGroovy、Scala、PureJavaのハイブリッドプロジェクトを作成できたりできる。
   NetBeans
 他のIDEと比べ、設定が容易。最少手順で準備・実装ができる。
 JavaEE系の補完は一番対応している。
 JavaEE7などに対応しているのはNetBeansだけ。
html5+javaScriptphp作るのに便利!

 ----------------------------  

【B3 Groovy, Clojure, Scala, VisageでのJavaFX活用】

JavaFX2.0について
リッチGUIhtml5、3Dをサポートする。
Early Accessでjava8(JavaFX2.0)つかって3Dをやってみようぜ。
https://jdk8.java.net/download.html

新しい言語を使ってみよう
新しいことに興味をもとう。
新しい言語JVMランゲージは簡単にJavaFXラップできるよ。

以下各JVMランゲージでVanishing circlesデモアプリを実装
LOCなどを比較
Vanishing circlesの詳細、比較内容の詳細はこちらの英文参照。

pure java8の場合
40行、1299文字で実装できる
  利用クラス:circle、Bindings、Duration etc...

GroovyFX
GroovyはなJVMランゲージ
29行、671文字で実装できる。
SceneGraphBuilderで簡略化できるよ
みんなの心を鷲つかみ。アニメでたとえるならばルパンIII世

Clojure
シンタックスが独特、括弧がおおい。
シンタックスシンボルが少ない、すぐ言語仕様を覚えられるのがClojureの便利なところ。
オブジェクト指向ではないので、オブジェクトに対応するにはファンクションコールしなければならない。
シンプルですごい簡単におわる。アニメでたとえるならば、ワンパンマン

Scala
Haskkelから来ている。
シンタックスルールはXMLなどに近い。
33行 591文字で実装できるよ。
ScalaFXのシンタックスはGrrovyFXと似ている ものすごい勢いで機能が充実している。アニメでたとえるならばグレンラガン

Visage
35行 487文字で実装できる。
デフォルトパラメータによって、コード量を少なくできる。
NULLチェックディファレンス、
新しいBindingもサポートしている。
ScalaFX, GroovyFXと似ている。
Visageが実現する未来的ビジュアルは、たとえるならばエヴァだよ

その他、Gosu、Mirah、Fantom(.NETとも連携できる)などでもJavaFXは使えるよ。

でもここは日本だね!ということはRubyでしょ!

jRubyFX
33行 800文字くらい
ボクはあまり得意ではないので、もっと最適化できるはず。
ブログでコード公開するからjRubyハッカーのみんなのコメントを募集しているよ。
http://steveonjava.com/

質問:コーディング量の比較はわかったがパフォーマンスの比較は?
パフォーマンスといえばpureJava。
他でやるとやはり便利なぶん、オーバーヘッドはすごい。
#どこのオーバーヘッドだったかはメモとれず。。。

質問:javaFX2.0の実行環境は?
Java7のランタイムが入っていれば使える。
やる気ならばハイブリッドプログラミング(html5)もできる。


【E4 帰ってきたJavaパズラー】

Lambda激押しすぎてJava8言語仕様を知らないと答えられないクイズ多し。


【A5 Java The Night】

RICOH & Java™ Developer Challenge Plus 2012の参加者などもいました。
http://www.ricoh.co.jp/javachallenge/result/#2012

その他、パワポではなくJavaFXを利用しているプレゼン多し。