きしだのはてな このページをアンテナに追加 RSSフィード

2015-10-28(水) JavaOne2015サンフランシスコ-4日目

[][]JavaOne2015サンフランシスコ-4日目 04:04 JavaOne2015サンフランシスコ-4日目 - きしだのはてな を含むブックマーク

※12/13公開

今日は遠足の日。

f:id:nowokay:20151028094828j:image


だけど雨が降ってました。


The New HTTP Client API, Including HTTP/2 and WebSocket [CON2709]

HTTP/2やWebSocketに対応したHTTP Client APIの話。

f:id:nowokay:20151213033740j:image


まずHTTP/2とHTTP1の違い。大きいのは、ひとつのセッションで複数の送受信ができること。

f:id:nowokay:20151213033741j:image


それから、優先度がつけれるとかヘッダ圧縮ができるとか。

f:id:nowokay:20151213034805j:image


そして、CompletableFuture。Java 8で導入されたAPIですが、HttpClientで使われているよう。

f:id:nowokay:20151213033742j:image


HTTP Client APIでのサンプル

f:id:nowokay:20151213034803j:image


そしてWebSocket対応を示しておわりました。

f:id:nowokay:20151213034804j:image


New and Noteworthy in Jersey 2 [CON2882]

Jersey2の話。

f:id:nowokay:20151028112847j:image


パフォーマンスがよくなったという話と、

f:id:nowokay:20151213035511j:image


Weld対応した話と

f:id:nowokay:20151213035512j:image


Androidで動くよという話と、

f:id:nowokay:20151213035513j:image


Jersey3で非同期対応とかいう話と。

f:id:nowokay:20151213035854j:image


新しい仕様の話はJAX-RSMVCのほうでやられてるので、そこまで面白い話はなかったですね。

デモのソース

https://github.com/PetrJanouch/JavaOne2015-Weld-SE-demo

https://github.com/jersey/jersey/tree/master/examples/reload


ランチ

今日もParc55でのランチ。

f:id:nowokay:20151028121834j:image


JavaOneランチには珍しく、完食できました。

f:id:nowokay:20151028122254j:image


Understanding Java Garbage Collection [CON6936]

GCの話

f:id:nowokay:20151213040124j:image


前のGCと同じ人のセッションだった。

f:id:nowokay:20151213040125j:image


新しい情報もあるよ、とのことだったのだけど。

やはりGCの話を英語で聞くのは、人類には早すぎた。

クボタさんのGCの資料で勉強しましょう。


An Introduction to JVM Performance [CON1517]

Javaパフォーマンスの話

f:id:nowokay:20151028162922j:image

だけど、パラメータチューニングとかじゃなくて、どのようにJavaコードがネイティブコンパイルされるかという話だった。


ところで、今回のJavaOneでは、Safe Harvorのところで、「私はウソツキなので信用しないように」って言う人が多かったのだけど、明示してたのは初めて。しかし流行りなんだろうか。

f:id:nowokay:20151208022520j:image


こんな感じでいろいろとJVMでの最適化の話がありました。

f:id:nowokay:20151208022521j:image


けど、「Javaパフォーマンス」読むのがいいなーと思いながら聞いてました。


トレジャーアイランド

ということで、今日のセッションは終わって、夕方からは遠足です。

晴れました。

f:id:nowokay:20151028175244j:image


みんなでバスにのっていきます。

f:id:nowokay:20151028185544j:image


トレジャーアイランド!

f:id:nowokay:20151028193947j:image


ダウンタウンが対岸に見えます。

f:id:nowokay:20151028194449j:image


観覧車もあります。横に見えてるのは月です。

f:id:nowokay:20151028200012j:image


無限ビール!

f:id:nowokay:20151028200221j:image


無限ゲーム!

f:id:nowokay:20151028204215j:image


エルトン・ジョン!(有限)

f:id:nowokay:20151028205952j:image


食べ物!

f:id:nowokay:20151028213222j:image


エルトン・ジョンにあわせておどるおねえさん、かわいい。

f:id:nowokay:20151028220529j:image


そして、Beck

f:id:nowokay:20151029003453j:image


ビール飲んでるときに横にいた人が、なんかボートに乗って生活してる人で、Beck最後まで一緒に聞いて帰りました。

今回は携帯なくさなかったし、ホテルの近くを通るバスにちゃんと乗ったんだけど、結局バスで寝てしまってモスコニセンターまで行ってしまいました。


ということで、また明日。

2015-10-27(火) JavaOne2015サンフランシスコ-3日目

[][]JavaOne2015サンフランシスコ-3日目 05:11 JavaOne2015サンフランシスコ-3日目 - きしだのはてな を含むブックマーク

3日目。

※11/16公開

今日はJava SE系が主です。Java SE系は、Hiltonが会場です。

f:id:nowokay:20151027103014j:image


Moving to G1 GC [CON5823]

G1GCの話。

英語でGCの話を聞くのは、人類には早すぎた。

f:id:nowokay:20151113025757j:image


いろいろG1GCの動作を解説してくれたり

f:id:nowokay:20151113025758j:image


いろいろログ系のスイッチを教えてくれたり

f:id:nowokay:20151113025759j:image


してたのですけど、Javaパフォーマンス本を読み直そうとずっと思ってました。


とりあえずjClarity便利そう。

f:id:nowokay:20151113025800j:image


ランチと展示

今日のランチはHiltonのを取りにいきます。Hiltonでは展示も行われています。

展示で写真とってると、JRebelで有名なZEROTURNAROUNDの人たちが手をふってくれました。

f:id:nowokay:20151027120907j:image


ランチは展示の奥に積んであります。

f:id:nowokay:20151027120759j:image


で、Hiltonすぐ横のTaylor Streetをふさいで設営されているDuke's Cafeで食べます。

f:id:nowokay:20151027121253j:image


今日のはこんなので、全部食べるのにはちょっとしたガマンが必要でした。あと、風が吹いて寒い。

f:id:nowokay:20151027121455j:image


JDK 9 Language and Tooling Features [CON11284]

JDK9の話です。

f:id:nowokay:20151113030300j:image


jshell。コマンドラインJavaが試せるやつ。

f:id:nowokay:20151113030256j:image


JavaDocHTML5対応。

f:id:nowokay:20151113030257j:image


言語の微妙な変更

f:id:nowokay:20151113030258j:image


try-with-resourceでfinalか実質的finalならtryの前に初期化できる。

final Resource r = new Resource();
try(r){
  ...
}

これ、catch句とかでリソースを使いたいときに便利になります。


匿名クラスでもダイヤモンド推論ができるようになる。

Map<String, String> m = new HashMap<>{
  {
    put("a", "apple");
    put("b", "banana");
  }
}

地味すね。

ただ、不可解に変なコードを書く必要がなくなってよいです。


型推論が効率よく。

C<String> cs = new C<>(
                   new C<>(
                       new C<>(
                           new C<>(
                               new C<>()))));

とかやってると、指数オーダーだったのが

f:id:nowokay:20151113030259j:image


ゆるやかに。

f:id:nowokay:20151113030301j:image


ということで、全体に地味な調整って感じですね。

資料はこちら

https://blogs.oracle.com/darcy/resource/JavaOne/J1_2015-jdk9-langtools.pdf


Effective Java Streams [CON7066]

Streamの使い方。実はこれは唯一概要にValhallaという言葉があったセッション。

で、まずパターン。

f:id:nowokay:20151114015208j:image


3つのStreamを結合するとします。

Stream<String> a = String.of("a");
Stream<String> b = String.of("b");
Stream<String> c = String.of("c");

Streamを結合しようとすると、concatというメソッドがありますが、ふたつのStreamしか結合できません。

Stream.concat(a, Stream.concat(b, c))

ということで、flatMapを使います。

Stream.of(a, b, c).flatMap(s -> s)

なるほど。


あと、OptinalのStreamから値があるものだけを抜き出すとき。

f:id:nowokay:20151114015209j:image

Stream<String> optionals = Stream.of(
    Optional.of("a"), Optional.empty(), Optional.of("b"))

こんな感じになります。

optionals
  .filter(o -> o.isPresent())
  .map(o -> o.get())

これが、こう書けるようになります。

optionals.flatMap(Optinal::stream)

って、いつの間にかJava9の話になっている。


あと、NetworkInterfaceとか、Enumerationを返してたところにStreamを返すものを追加。

f:id:nowokay:20151114015210j:image


Stream.takeWhile/dropWhile便利そう!

f:id:nowokay:20151114015211j:image

あと、Files.linesの並列時に速くなったとか。

collect(toList())の並列性をよくするとか


そして、どういう文脈だったか忘れたけど、IntStream <: Stream<int>だったらいいねって話。ここが今回のJavaOneのハイライトだった。

f:id:nowokay:20151114015212j:image


ここで試せる

http://hg.openjdk.java.net/valhalla

f:id:nowokay:20151114015213j:image

パッケージはjava.anyutil.streamだそうな。


なんでzipメソッドがないか。

f:id:nowokay:20151114015214j:image

zip(Stream, Stream)だけじゃなく、zip(Stream, IntStream)とかzip(IntStream, Stream)とかいろいろ用意する必要があってちょっと大変。

Valhalla待ち。

ライブラリも言語仕様も全部Valhalla待ちになってて、これ遅れるとヤバそう。


Ask the Architects [CON6826]

Javaのえらい人たちがいろいろ話すセッション。

f:id:nowokay:20151114014710j:image


唯一の資料

f:id:nowokay:20151114014708j:image


と、唯一のアニメーション(と言っていた)

f:id:nowokay:20151114014709j:image


資料もなく英語で自由に話す人たちについていくのは、人類には早すぎた。

Valhallaとかの話はなかった気がする。


The sun.misc.Unsafe Situation [CON7076]

Unsafeの話。

f:id:nowokay:20151115010631j:image


Unsafeは名前のとおり、あんまり安全じゃないけど内部でよく使われているAPIで、これを置き換えようという動きがあります。

f:id:nowokay:20151115010632j:image


内部では、reflectionやserialization、その他いろいろ使われています。

f:id:nowokay:20151115010633j:image


そして、外部でも、HadoopやSparkのようなデータ処理プラットフォームから、ScalaJRubyなど言語処理系まで、幅広く使われてます。

f:id:nowokay:20151115010634j:image


で、まあチェーンソーをジャグリングしてるような危なさがあると。

f:id:nowokay:20151115010635j:image


実際のメソッド

利用例 Unsafe
並列化プリミティブ Unsafe.compareAndSwap*
シリアライゼーション Unsafe.allocateInstance
メモリ管理、レイアウト Unsafe.allocate/freeMemory
JVM外とのやりとり Unsafe.get*/put*

それに対応する機能。ここでPanamaデスヨ!

利用例 機能
並列化プリミティブ JEP 193 Variable Handles
シリアライゼーション JEP 187 Serialization
メモリ管理、レイアウト Project Panama, Project Valhalla, Arrays 2.0
JVM外とのやりとり Project Panama, JEP 191 FFI

で、ここでマーク・ラインホルド氏がなにやら。

f:id:nowokay:20151115010636j:image

何の話だったか覚えてない・・・


Java9では

利用例 機能
並列化プリミティブ JEP 193 Variable Handles
シリアライゼーション  
メモリ管理、レイアウト 配列の境界チェックやアクセスの改善
JVM外とのやりとり  

Closer to the metal、ハードウェアに近づこう、というのがPanamaのテーマですね。

f:id:nowokay:20151115010637j:image


まとめ

f:id:nowokay:20151115010638j:image

  • UnsafeはJava 9で凍結されるけど利用可
  • Java9でちょっとした対応
  • Project ValhallaやPanamaでのサポートに超期待

資料はこちらで公開されてます。

http://cr.openjdk.java.net/~psandoz/conferences/2015-JavaOne/j1-2015-unsafe-CON7076.pdf


Duke's Cafe

夕方、Taylor StreetのDuke's Cafeでは、ビールが出てました。

f:id:nowokay:20151027184240j:image


あと、バンド演奏。よくわからないけど、たぶんJavaエンジニアで構成されているバンドだと思います。

f:id:nowokay:20151027184538j:image


カニ(その1)

で、今日は学生時代のバイト先の方々がサンフランシスコに来てるということだったので、いっしょにメシ。

f:id:nowokay:20151027193559j:image


そう、カニです。

f:id:nowokay:20151027194119j:image


15年ぶりとかそんくらいに会った人たちと、カニでした。JavaOneメンバーじゃない人たちとカニというのも、なんか新鮮でした。

2015-10-26(月) JavaOne2015サンフランシスコ-2日目

[][]JavaOne2015サンフランシスコ-2日目 02:27 JavaOne2015サンフランシスコ-2日目 - きしだのはてな を含むブックマーク

※11/8 公開

JavaOne、今日からが本番ですね。

主にJava EE 関連のセッションを聞きました。

会場はHiltonとParc55に別れているのですけど、Java EE関連はParc55のほうです。

f:id:nowokay:20151026100114j:image


ホテルの中のエスカレーターにもDukeが貼ってあります。

f:id:nowokay:20151026182346j:image


Java EE 8 Work in Progress [CON2554]

Java EEのえらいひと、リンダのセッション。

f:id:nowokay:20151026105123j:image


ちなみに、目の前は大きい人だったので、結構大変。

f:id:nowokay:20151102104152j:image


あと、クラウドマイクというのを使って質問ができる、ということだったのだけど、あまり有効に使われなかった気がする。ちょっとだけ使われたのかな。

f:id:nowokay:20151109003002j:image


内容は大きく3部にわかれてて、これまでのコミュニティアンケートの結果、今後の仕様と、開発への参加方法などの話がされていました。

今後の仕様としては、HTML5対応として、JSON・Server Send Event・MVC・HTTP2があげられていました。

JSON Patch便利そう。

それと、SecurityがWork in progressとか、JMS2.1とか、EJB2とかJAX-RPCのような廃止仕様の話とか。


気になったのは、ロードマップが出なかったことです。このセッションだけではなく、テクニカルキーノートなど他のセッションでも出なかったと思います。7月時点では2017年前半ということになっていましたが。

発表にはなかったのですが、2018年になる、という話をきいたという人もいました。しかしながら、2018年というのはちょっと遅すぎる気がします。

そもそも、Java EEというのは複数のAPIのバージョンを統合するための、バージョン管理システムでいうところのタグのようなもののはずで、Java EEがバージョンアップするまでそこに含まれるAPIをバージョンアップしちゃいけないというものでもない気がします。

せめて、Servletのような低レイヤーとMVC/JSFのようなアプリケーションフレームワーク、管理機能やセキュリティなど、レイヤーが違うものは別々にリリースしていいんじゃないかなーと思ったり。


ランチ

JavaOneでは、毎日ランチボックスが用意されています。

このチケットが引換券ですね。

f:id:nowokay:20151026120750j:image


今日はこの3種類。数箇所でランチを配ってるんですが、Parc55ではこんな感じでディスプレイされててオシャレ。

f:id:nowokay:20151026120946j:image


しかし、まあ中身はこんなんですけど。ただ、JavaOneランチにしては比較的おいしく食べれました。

f:id:nowokay:20151026121438j:image


CDI 2.0: What’s in the Works? [CON2391]

CDI2.0について。

こちらはロードマップがでていて、2016年にリリース、ということでした。

f:id:nowokay:20151102103133j:image


仕様アンケートの結果も。会場の人に、参加した人がいるか聞いていたのですけど、2人くらいでさびしそうだった。

f:id:nowokay:20151109003004j:image


CDI2.0で大きなものは、CDIJava SE対応です。SwingやJavaFXアプリケーション、バッチなどで、サーバーサイドと同じ構造が使えるようになります。もちろんテストでも。

f:id:nowokay:20151109003005j:image


ということで、CoreとSEとEEにわかれる感じになります。

f:id:nowokay:20151109003006j:image


さらに、モジュール化されて、それぞれLiteとFullにわかれる、とか。

f:id:nowokay:20151109003007j:image


できることが増えるというより、使いやすくなる・使いどころが増える、という感じですね。


What’s Next for JAX-RS 2.1? [CON4192]

JAX-RS2.1について。

f:id:nowokay:20151102104153j:image


次の4点があげられていました。

  • Reactive
  • Non-Blocking I/O
  • Server-Sent Events
  • JSON-B and MVC

ちゃんとまとめるのは後日ということにして、ReactiveというのがJava標準においても重要になってくるという気配を、JavaOne通してひしひしと感じました。


JavaOneで聞いたのではなくて、あとでkojilinさんに教えてもらったのだけど、JDK9でも、Flowというクラスが導入されるようです。

http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/6e50b992bef4/src/java.base/share/classes/java/util/concurrent/Flow.java


議論としてはこのあたりですかね。

concurrency-interest-jdk9 Candidate classes Flow and SubmissionPublisher


あとで読む。


おやつ

JavaOneでは、15時ごろにジュースなどが出てきます。

f:id:nowokay:20151026151808j:image


ビールも飲み放題です。昼から。

f:id:nowokay:20151102103134j:image


あと、シルクスクリーンでTシャツをプリントしていました。

f:id:nowokay:20151026100733j:image


What’s New in the Java API for JSON Processing?

JSON Processing、略してJSON-Pの話。

JSON操作のAPIです。

f:id:nowokay:20151026155441j:image


中でも、JSON形式でJSON操作を記述・適用するJSON Patchというのが興味ぶかかったです。

f:id:nowokay:20151109020415j:image


あとでまとめたい。


What’s New in Java API for JSON Binding (JSR 367) [CON6155]

JSON Binding、略してJSON-Bの話。

JSONJava Objectの対応付けですね。

f:id:nowokay:20151102103135j:image


細かい対応付け規則とか、あとでまとめたい。


ところでデモ。ってジェイソン違いやろー!

f:id:nowokay:20151109020416j:image


晩メシ

今日は長丁場でごはん食べにいく余裕がなく、BOFに入ると15分休憩になるので、最後の30分休憩の間になにか食べにいきます。

ということで、近所の和食屋、堂島庵

f:id:nowokay:20151026182822j:image


かきあげソバをたべますよ。

f:id:nowokay:20151026185322j:image

かきあげもソバも量がおおく3人分くらいあるので、おなかいっぱい。


JSF 2.3: Continued Return on Investment with Incremental Innovation [BOF3658]

JSFの話。

f:id:nowokay:20151102103136j:image


エコシステムとして、さまざまなコンポーネントセットを紹介してました。

f:id:nowokay:20151109020417j:image


BootsFacesとHighFaces知らない。

  • PrimeFaces
  • OmniFaces
  • BootsFaces
  • HighFaces
  • ButterFaces

検討中の内容として、WebSocket対応とか、Java Time対応とかがあげられてました。

f:id:nowokay:20151109022223j:image


<f:socket> がどうなるかわからないけど、これは楽しそうです。


あとは、すんまそん、覚えてない・・・

やはりブログはがんばって当日書かないとだめです。


Using Type Annotations to Improve Your Code [BOF4390]

Type Annotationsを使って信頼性高いコード書こうぜという話

f:id:nowokay:20151102103137j:image


Checker Framework便利、という話でした。


Annotation Processing 101 [BOF7811]

なんか、アノテーション操作の話。

f:id:nowokay:20151026211234j:image


と思ってたら、ふつうにアノテーション定義とかの話してたので、退出。


Advanced PrimeFaces [BOF3245]

PrimeFacesの話。

f:id:nowokay:20151102103138j:image


特に新しい話とかは なかったなー。


おわり

帰る途中で、なんか安心できそうなパッケージのお菓子を発見。

f:id:nowokay:20151026224333j:image

ということで、長い一日が終了。またあした。

2015-10-25(日) JavaOne2015サンフランシスコ-一日目

[][] JavaOne2015サンフランシスコ-一日目 05:37  JavaOne2015サンフランシスコ-一日目 - きしだのはてな を含むブックマーク

今年もJavaOneの季節です!

f:id:nowokay:20151025135842j:image


今回は、China Airlineの台北経由で来たのだけど、2万円くらい多く払うとプレミアムエコノミーになって快適なので、来年からもそうしようかと思います。ANAだとプレミアムエコノミーにするのに15万円くらいかかって倍になるので。

台北で4時間くらいの待ちがあってヒマだけど。成田乗り換えだと両替とか出国手続きとかで時間がつぶれるけど、台北経由ならすでに出国してしまっててやることないし。

ただ、荷物の受け取りはカオスでした。ひっかかった荷物からバキバキという音が・・・

f:id:nowokay:20151024201848j:image


レジストレーション

ちょっと体調わるかったので、昼から。まずはレジストレーションにヒルトンまで来ます。

なんか、ヒルトンのロビーが改装中でした。

f:id:nowokay:20151026094601j:image


ビックリしてたら、レジストレーションはあっちだよーってサンフランシスコ弁で言われたので、そっちに移動。

f:id:nowokay:20151025141059j:image


特になにごともなく、スムーズにバッヂもらえました。

f:id:nowokay:20151025141108j:image


OracleOpenWrold/JavaOne期間中は、これをぶら下げている人が街中をたくさんうろうろすることになります。


Java Keynote [KEY8049]

キーノートはMoscone Centerであるので、移動します。

いつもどおり、ヨットがかざあってある。

f:id:nowokay:20151025142941j:image


そしてMosconeの前は道路を封鎖してくつろぎ会場に。

f:id:nowokay:20151025143122j:image


キーノート会場に降りていきます。

f:id:nowokay:20151025143224j:image


すげー寒い(物理)。

f:id:nowokay:20151025143748j:image


内容も・・・で外に出ていく人が多くて、さらに寒くなっていきました。

楽天の岩崎さんとArshallが登壇してたのが驚きだった!

f:id:nowokay:20151025153836j:image


スコットマクネリが出てきたのがサプライズだけど、会場の半分くらいは、だれこのオッサンとか思ってたんじゃなかろうか。


ということで、特に新しい情報はなく終了

f:id:nowokay:20151025155857j:image


GlassFish Performance Tuning: Tips from the Field [UGF11182]

GlassFishのパフォーマンスチューニングのセッション

f:id:nowokay:20151027152653j:image


ということだったけど、なんかプロファイラとかそういうツールの説明ばっかりしてた、ような気がする。

途中で寝落ちた。


Evolving Java EE [UGF10283]

JavaEEの歴史のセッション

f:id:nowokay:20151027141150j:image


EJBのLocalInterfaceとかHomeInterfaceの話から始まって、JavaEEがどう進化したかということを話してた、ような気がする。

途中で寝落ちた。


WildFly, Hadoop, JavaFX, and HTML5 in the Enterprise [UGF10306]

なんかHadoopの話ばかりしてた、ような気がする。

f:id:nowokay:20151027141151j:image

途中で退出


Building Nanoservices with Java EE and Java 8 [UGF10284]

隣の部屋にきたら、なんか寺田さんのような人がいるなーと思ったら、寺田さんだった。

f:id:nowokay:20151027141152j:image


すごく自信たっぷりに、日本語メッセージの動画を流していたので、全日本人に希望を与えた。

f:id:nowokay:20151027141153j:image


ということで終了

f:id:nowokay:20151027141154j:image


Oracle Appliciation Event

外に出ると、なんかイベントが始まってました。

f:id:nowokay:20151025192949j:image


ビールもあります。

f:id:nowokay:20151025193139j:image


けど、ここでは飲まずに移動。


GlassFish, NetBeans, Payara Party

今年もThirsty Bearでパーティーです。

f:id:nowokay:20151025195349j:image


ここで醸造したビールが飲めます。

f:id:nowokay:20151025201744j:image


たくさん人がいます。

f:id:nowokay:20151025223352j:image


寺田さんはいろいろ抱き付いて写真をとってもらってました。

f:id:nowokay:20151025225640j:image


そして連行。

f:id:nowokay:20151025231522j:image


おつかれさまでしたー


英語

英語は結局ぜんぜんわからないけど、何を言われるのかがわかっているので推測して反応するって感じでした。

ということでまた明日。


と思ったら、cero_tが近所の居酒屋に行くというのでうどん食ってきました。

f:id:nowokay:20151026004025j:image

Javaやってる人が2ブロック先に住んでて夜中にふらっとうどん食いに行くとか、日本じゃできませんね。JavaOneならでは。

f:id:nowokay:20151026002653j:image