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

2017-10-05(木) JavaOneサンフランシスコ 2017 5日目

[][][]JavaOneサンフランシスコ 2017 5日目 10:39 JavaOneサンフランシスコ 2017 5日目 - きしだのはてな を含むブックマーク

さて、今日は最終日です。

f:id:nowokay:20171006110521j:image


帰りの会」であるコミュニティキーノートがあったのですが、ちょっと体調がわるかったので、そのあとから。

よこな氏がカンフーマスターだったらしいので見たかったのだけど。


Introduction to Machine Learning with Apache Spark MLlib [CON3165]

SparkとMLlibによる機械学習のセッション

f:id:nowokay:20171006044149j:image


なんか、歌詞からヘビメタかポップかを判別していた

f:id:nowokay:20171006044343j:image


こういったパイプラインが、

f:id:nowokay:20171006044313j:image


Javaコードにそのまま出てますよ、と。

f:id:nowokay:20171006045446j:image


楽しいセッションでした。


Vectors with Values on the JVM [CON4826]

Javaでベクトル計算を行うというセッション。Project Panamaの一部です。

f:id:nowokay:20171006050451j:image


ベクトル計算の場合、ループをアンロールして1ループごとに複数演算を行うということをやります。これをAVX-512などの命令に置き換えるということですね。

f:id:nowokay:20171006052039j:image


Vector APIとしてaddなどのメソッドが用意されています。

f:id:nowokay:20171006052526j:image


パッケージは今のところjdk.incubator.vectorですね。

f:id:nowokay:20171006052730j:image


こんな感じのコードになっています。

f:id:nowokay:20171006053307j:image


128bit以上でハードウェアとの対応ができていません。

f:id:nowokay:20171006054000j:image


で、本来ならValueTypeを使うべきなのだけど、ValhallaとPanamaは別プロジェクトなので、今のところ頼れない、と。

f:id:nowokay:20171006054307j:image


低レベルに対応したAPI呼び出しを、ハードウェア命令にコンパイルするという感じで対応します。

f:id:nowokay:20171006054918j:image


こちらも参照。

http://openjdk.java.net/projects/panama/

https://software.intel.com/en-us/articles/vector-api-developer-program-for-java


How to Make a Project Java 9–Compatible [CON2448]

Java9対応をどうするか、という話。

f:id:nowokay:20171006061740j:image


なんかずっとライブコーディング。

f:id:nowokay:20171006061919j:image

eclipse collectionsでリフレクション使ってるからvmフラグをつけるか新しいバージョンにしましょうね、くらいしか理解できなかった。。。

せめて何に気を付けるべきかというサマリーは1枚資料を作ってほしかった。


Changes to the JDK Release Model [CON8200]

新しいJDKリリースモデルの話。

f:id:nowokay:20171006071158j:image

内容についてはすでにこちらでまとめています。

http://d.hatena.ne.jp/nowokay/20171007#1507284356


6カ月ごとにリリースされて、3年ごとにLTSが出ますよ、という話。

f:id:nowokay:20171006073231j:image


だったのだけど、色が塗り替えられて、LTSはOracleJDKのみと。

f:id:nowokay:20171006073638j:image


あと、Java9が最後のメジャーリリースになる、という話。

f:id:nowokay:20171006074152j:image


今後の動きに要注目でした。

しかし、大事な話なのに、キャパ50人くらいの部屋に35人しか入っていない。気づいてなかったけど、事前にはなくて直前に入ったセッションだったらしい。


カニOne!

最後は日本人参加者が集まってのカニOneです。

f:id:nowokay:20171006114553j:image


今年もお疲れさまでした!

来年は2018/10/28-11/1です。

2017-10-04(水) JavaOneサンフランシスコ 2017 4日目

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

水曜日は遠足の日です。去年からはAT&Tパークになってますけど。ライブとかビールとかあります。

f:id:nowokay:20171005131834j:image


Machine Learning for Java Developers in 45 Minutes [CON2977]

朝、8:30から来てみた。

f:id:nowokay:20171005004624j:image


機械学習とは何か、みたいな話をしていた。

f:id:nowokay:20171005005725j:image


まずCommons Mathで線形回帰。

http://commons.apache.org/proper/commons-math/

f:id:nowokay:20171005011144j:image


それからWekaでロジスティック回帰

https://www.cs.waikato.ac.nz/~ml/weka/index.html

f:id:nowokay:20171005012024j:image


あと最後にDeepNettsでニューラルネット

http://www.deepnetts.com/product.html

f:id:nowokay:20171005012305j:image


これは裏番組のKafka+TensorFlow+H2O.aiのセッションのほうがよさそうだった。


Code Generation with Annotation Processors: State of the Art in Java 9 [CON3282]

APTのJava9対応のセッション

f:id:nowokay:20171005014755j:image


まずアノテーションアノテーションプロセッサの説明

f:id:nowokay:20171005015345j:image


生成されたコードにつける@Generatedアノテーションとか、RoundEnvironmentに追加されたgetElementsAnnotatedWithAnyメソッド、あと、クラス名表記のモジュール対応について。

f:id:nowokay:20171005020606j:image


Scale Up with Lock-Free Algorithms [CON1330]

ロックフリーなアルゴリズムについて。

f:id:nowokay:20171005030309j:image


Stackの実装を、Synchronizeを使ったものからAtomicReferenceを使うものにして、VarHandleを使って、最後にAtomicFUを使うという説明をしていました。

http://github.com/Kotlin/kotlinx.atomicfu


ベンチマークはJMHで。ロックフリーのほうがコア数が増えるにしたがったパフォーマンスが出せている、という話。

http://openjdk.java.net/projects/code-tools/jmh/

f:id:nowokay:20171005033355j:image


お昼

なんかJavaOneランチを取るのも面倒だし、kojilinさんとごはんを食べに。

ハワードのステージで流れてる曲がすごく生々しいと思ったら、ライブしてた。ベースとドラムがめちゃうま。

f:id:nowokay:20171005040224j:image


で、パスタを食べに。

f:id:nowokay:20171005043225j:image


G1GC Concepts and Performance Tuning [CON4577]

G1GCの話

f:id:nowokay:20171005050523j:image


パフォーマンスをFlightRecorderで見て。

f:id:nowokay:20171005051345j:image


チューニングするよ、みたいな。

f:id:nowokay:20171005051635j:image


Full Speed Ahead! (Ahead-of-Time Compilation for Java SE) [CON3738]

事前ネイティブコンパイルの話です。

f:id:nowokay:20171005070106j:image


コンパイル結果を共有するよ、という話。OpenJ9と似てる。

f:id:nowokay:20171005071943j:image


AOTを行うコマンドラインツールjaotcの説明。

f:id:nowokay:20171005072728j:image


その結果を使う実行オプション。

f:id:nowokay:20171005073150j:image


あと、なんでVM設定を同期する必要があるかという話。

圧縮Oop(オブジェクトポインタ)という仕組みがあって、ポインタアドレスを全部保持するのではなくて32ビットだけ保持する仕組みがあります。

http://www.oracle.com/technetwork/jp/articles/java/compressedoops-427542-ja.html


4GBだと下位32ビットだけ。32GBまでだと8byteパディングがあるので下位3ビットを無視すればOK、という話。こういうのがあるからVMオプションを同じにしておかないといけない、ということらしい。

f:id:nowokay:20171005074118j:image



Virtual Reality in Java: Is It Possible? [CON1653]

VRのセッション。

f:id:nowokay:20171005084837j:image


VRがどういうものか説明。

f:id:nowokay:20171005085537j:image


そして、jMonkeyEngine3の話を進めるのかと思いきや。

http://jmonkeyengine.org/

f:id:nowokay:20171005085712j:image


Android!JavaOneでJavaでどうこうというタイトルのセッションでAndroidの話するのすげーな、って思った。

f:id:nowokay:20171005090429j:image


あと、Rajawaliをちょっと紹介。

http://github.com/Rajawali/Rajawali

f:id:nowokay:20171005091207j:image


UnityとかWebVRとかもちらっと見せておわった。

f:id:nowokay:20171005092606j:image


Blockchain? What Is Blockchain? Why Do I Care? [CON2276]

ブロックチェーンの説明のセッション。

f:id:nowokay:20171005095409j:image


普通にブロックチェーンの説明してた。Javaが出てくる気配がないので、隣のセッションに。

f:id:nowokay:20171005095510j:image


Amazon Alexa Skills Versus Google Home Actions: The Big Java VUI Face-off [CON3616]

Google HomeとAmazon Echoでいろいろ動かす話。たのしそうだった。

f:id:nowokay:20171005102629j:image


ライブ!

バスで行きます。

f:id:nowokay:20171005110258j:image


よこな氏の希望により、うまみバーガーを食べに。

f:id:nowokay:20171005111922j:image

f:id:nowokay:20171005114240j:image


AT&T PARKにつきます。

f:id:nowokay:20171005120902j:image


Ellie Gouldingという人のライブをやっていました。

f:id:nowokay:20171005125442j:image


あとビール!

f:id:nowokay:20171005131156j:image


帰りにMosconeの前を通ったら、もう解体が始まっていました。

f:id:nowokay:20171005145138j:image

2017-10-03(火) JavaOne サンフランシスコ 2017 3日目

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

JavaOne3日目です。結構本気の日ですね。

f:id:nowokay:20171004052917j:image

とりあえずメモ書きだけで大変なので、詳しくはあとで書く。


Enabling Java for Persistent Memory Hardware [CON7656]

頑張って9:30からのセッションに来ました。永続メモリをJavaで扱う話。Intelのセッションなので、3D XPointを前提にしている感じ。

f:id:nowokay:20171004015523j:image


最初はたぶん永続メモリの説明をしてた気配があるんだけど、見逃した。座った時にはライブラリの紹介をしていました。

https://github.com/pmem/pcj

f:id:nowokay:20171004020259j:image


PersistentObjectを継承して自分でsetter/getterを書いていく泥臭い感じですね。

f:id:nowokay:20171004021322j:image


ただ、panamaの仕組みでinterfaceでどうにかするみたいなことを言ってた気がする。

f:id:nowokay:20171004021735j:image

http://cr.openjdk.java.net/~jrose/panama/using-interfaces.html


あとは、メモリの区別について。トランザクションなども考える必要があります。

f:id:nowokay:20171004021817j:image


ガベージコレクションはリファレンスカウンタでやるという話だった。テラバイトを扱えるようにする想定なので、スキャンするのは現実的ではないですね。

8ヶ月くらい開発をしていて、年末には安定させたいということを言ってました。

RAMディスクでエミュレートで動かせるようです。

質問した人が「Tremendous Potential!」と叫んでいました。今回のJavaOneで一番未来だった気がする。


Coroutines on JVM with Kotlin [CON1269]

Kotlinのコルーチンの話。

f:id:nowokay:20171004033305j:image


コールバックからfutureまでの仕組みを説明したあとで、コルーチンを使ったところの素敵さを。

メソッドにsuspendをつけてlanch{}で囲むという感じですね。読みやすい。

f:id:nowokay:20171004033000j:image


これはステートマシンにコンパイルされます。

f:id:nowokay:20171004033331j:image


Javaで書かれたFutureを返すライブラリなども対応ができます。

f:id:nowokay:20171004035457j:image


そしてまとめ。

f:id:nowokay:20171004035700j:image


ごはん

ごはんが配られます。

f:id:nowokay:20171004041504j:image


こんな感じ。

f:id:nowokay:20171004041822j:image


あの人も歩いていました。

f:id:nowokay:20171004050312j:image


Let’s Write Our Own Chip-8 Interpreter! [CON3584]

なんか昔のチップのエミュレータを作ろうという話。

歴史とか説明してた。

f:id:nowokay:20171004054058j:image


で、Chip-8の紹介。

f:id:nowokay:20171004053629j:image


エミュレータのデモを出して。

f:id:nowokay:20171004060756j:image


テトリスを動かして。

f:id:nowokay:20171004061027j:image


エミュレータはこんな感じでデザインするよ、と。

f:id:nowokay:20171004062102j:image


よくわかんないけど、楽しそうだった。


展示

なんか1時間の休みがあったので展示にも来てみた。

Questの着ぐるみ

f:id:nowokay:20171004081256j:image


Gradle。目つきの悪いゾウかわいい

f:id:nowokay:20171004063248j:image


レーザーカッターで作られたなにか

f:id:nowokay:20171004063447j:image


なにかをするロボット

f:id:nowokay:20171004063511j:image


そしてIoTビール!Javaで製造管理をしてるっぽい。

f:id:nowokay:20171004081351j:image


ついでもらう。

f:id:nowokay:20171004063936j:image


IPAとかスタウトとかホワイトとかすごく酸っぱいのとかありました。

f:id:nowokay:20171004063705j:image


OpenJ9: Under the Hood of the Next Open Source JVM [CON3573]

OpenJ9の話。

https://adoptopenjdk.net/releases.html

https://github.com/eclipse/openj9

f:id:nowokay:20171004074029j:image


classファイルからROMClassにして

f:id:nowokay:20171004073348j:image


ROMClassからRamClassにして、みたいな感じらしい。

f:id:nowokay:20171004073715j:image


そういったファイルがJVMで共有されることで、フットプリントを軽くしている、と。AoTと同じ方向性ですね。

f:id:nowokay:20171004071521j:image


ベンチマークは?と聞かれたとき、ベンチマークとってるけどフットプリントとアプリケーションのスループットがいいところなので、みたいに言ってました。


Developer Keynote [KEY7383]

DeveloperキーノートはMariotでありました。

f:id:nowokay:20171004082144j:image


こんな感じ。結構いっぱい。Oracle Open Worldの人たちもいるらしい。

f:id:nowokay:20171004082318j:image


ステファンさんとかSlackの人とか出てたけど、ようわからんかった。

f:id:nowokay:20171004083339j:image


Pepperが英語をしゃべってた。

f:id:nowokay:20171004093930j:image


けど、Developer Keynoteの割に開発者向けじゃないなということで、うどん食べに行った

f:id:nowokay:20171004103713j:image


JUnit 5 [BOF7382]

JUnit5の話

f:id:nowokay:20171004111115j:image

@MethodSourceとか便利そう

あと、Dynamic Testとか。

f:id:nowokay:20171004111708j:image


Spring対応の話をして、たりないものはこれ、とか言ってた。

f:id:nowokay:20171004112148j:image


MVC 1.0: Community Involvement Matters! [BOF3293]

MVC1.0の話。

https://www.mvc-spec.org/


5人しかいない

f:id:nowokay:20171004120003j:image


Java EEからDropしてしまったという話

f:id:nowokay:20171004120324j:image


@CsrfValidとかいうアノテーションは、なんか便利そう。

f:id:nowokay:20171004122726j:image


あと、Mavenのdependencyでozark-resteasyになってるところをozard-jerseyにしたりして実装を切り替えて、いろんな実装でちゃんと動くよ、というのを示してました。Spring MVCは なかったけど。

f:id:nowokay:20171004123344j:image


デモコードはこちらに

https://github.com/ivargrimstad/mvc-samples


2Q 2018にリリースすると言っていた

f:id:nowokay:20171004124410j:image


ビール

そしてThirsty Bearでビールを。おつかれさまでした。

f:id:nowokay:20171004134448j:image

2017-10-02(月) JavaOneサンフランシスコ2017 2日目

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

JavaOne、今年も来てます。昨日までのは、あとで書く。

f:id:nowokay:20171003095244j:image


Java EE 8: What’s New in the Java EE 8 Release [CON2661]

リンダのセッション。例年は満員なんだけど。

f:id:nowokay:20171003033248j:image

かなり空いてる。

やはり、3年同じことを話してたら、人も来なくなるか。

JSON-BやCDIなどの話は、特に変わったところはなく。

今回のトピックスとしては、Eclipseに移ったよっていうところでしょうか。

f:id:nowokay:20171003040406j:image


こんなの。今年は飲み物がなかった。

f:id:nowokay:20171003042045j:image


Streaming Solutions for Real-Time Problems [CON6059]

KafkaとRedisをOracle Cloudで動かすよ、という話だった。

f:id:nowokay:20171003051819j:image


身振り手振りが激しい人だった。

f:id:nowokay:20171003050216j:image


Java Keynote [KEY7692]

昨日のロスの事件があったからか、入り口で荷物チェックやってました。

人数は1500〜2000人くらい?

f:id:nowokay:20171003062301j:image


fn projectというのを始めるらしい。

http://fnproject.io/

f:id:nowokay:20171003073331j:image


Mark Reinholdはモジュールの話を何年してるんだと思ったら、Javaのリリースサイクルの話になって、いままで象のように遅かったけどチーターのように速くするよっていいつつ、ぺろっと3月にvarが出るとか言ってた。

f:id:nowokay:20171003081616j:image


で、あと10分くらいになってJShellの話をしていて、今年はValhallaとかPanamaの話をしないのかなと思ったら、16時までのセッションで16時すぎにBrian Goetzが出てきて、AnberとかLoomとかの話が始まった。

Brianは、主にAmberのパターンマッチングについて話をしていた。

f:id:nowokay:20171003082336j:image


退場の様子。

f:id:nowokay:20171003083030j:image


Quantum Computing Exposed: The Fundamentals [CON4984]

量子コンピュータの話。

どうJavaと絡めるのかなーと気になって来てみたけど、普通に重ね合わせとかディラック方程式とか、量子コンピュータの基礎をやってた。

重ね合わせのことをsuperpositionというというのを知ったのが収穫。

f:id:nowokay:20171003090435j:image