nFact

n!

JavaOne 2016 報告会に参加してきました

今日はJavaOne 2016の報告会があったので参加してきました!
昼過ぎ(13:30)からの開始だったのですが毎度のごとく普通に寝坊して遅刻しそうな感じでした。

イベントページはこちら。

jjug.doorkeeper.jp

今年のJava Oneのテーマは「Java Your Next(Cloud)」とのこと。 わざわざ括弧付けなくて良いでしょ!っていう突っ込みが的確すぎましたw

報告会のアジェンダ

  • Java SE フィードバック
  • Java EE フィードバック
  • Duke's Choice Award 受賞記念 HeapStats講演
  • LT大会

Java SEフィードバック

発表は久保田さん(@sugarlife)

JavaOne 2016 Java SE Feedback #jjug #j1jp

www.slideshare.net

トピック

  • Java SE 9のリリースが延期(2017/3/23から7/23に)
  • アップデート内容は去年までに発表されているものと大差なし、ただし細かい変更があるので最新の情報を。
  • Java SE 8→9へのアップデートは結構影響がありそう

The Flow APIは(自分が見逃してただけなのかわからないですが)新しめのやつはそれだけで、
ほかは去年までの発表と大差なさそうでした。
ただ、コマンドラインで指定するオプション?とか細々としたところは
かなり変わってる上に日本語のヘルプも古いみたいなので英語のドキュメントを当たる必要がありそうです。

Java EEフィードバック

発表は寺田さん(@yoshioterada)

JavaOne 2016 Report for JavaEE

docs.com

トピック

  • 今後のJava EEも期待できそう
  • 本当に出来るのか?

OracleJava EEとかを手放すんじゃね?みたいな話がありましたが
そんなことは無かったみたいな感じでした。
スライド見る限り魅力的な機能も少なくないので、
ロードマップどおりに着々と進めていって欲しいなぁと思います。

MVCのドロップ(まだ確定じゃないのかな?)とかも結構衝撃的でどうなるのかなと思いましたが
マイクロサービス向けの機能の実装に注力するとのことでした。
こちらはSEの発表と違って結構新しい話題がたくさん出てきて全然追えてなかったので調べて見たい感じ。

懇親会+LT大会

LT大会の後のじゃんけん大会でJava EE GuardiansのTシャツ頂きました!改めてありがとうございます!!
ぼっち参戦で序盤とか特につらかったので来年は誰か一緒に行きましょう( ;∀;) f:id:noko_k:20161015203328j:plain

まとめ

JavaOne報告会は初めて参加したのですが楽しかったです。 ぼっち懇親会はつらいので誰か一緒に行きましょう(大事なので2回)

Scala Matsuriに参加してきました

お久しぶりです。 30〜31日の2日間で開催されたScala Matsuriに参加してきました。
Java系以外のイベントに出るのは初めてかつ
普段がっつりScalaいじっていない私でしたが楽しめました!
運営の方々、楽しいイベントを開催していただきありがとうございます!
お弁当も美味しかったです!!

参加したセッション

1日目

  • Refactoring Scala
  • Scalaの深みへダイブ
  • 猫という考え方
  • バッチをAkka Streams で再実装したら100倍(295倍)速くなった話
  • ScalaコードはJVMでどのように表現されているのか
  • 実用関数型アーキテクチャのパターン
  • Playソースコード完全マスターの道

2日目(アンカンファレンス)

印象に残ったもの

Refactoring Scala

Scalaの表現力すごい(小並感)
Type AliasとかはJavaに導入するのそこまで難しそうに思えないのですが、
何で入んないんでしょうねぇ...。
これ以上言うとなんか後でものすごい
マサカリが飛んできそうなのでこれ以上は言わないことにしますw

スライド上のソースも読みやすく、楽しめました!後で資料としても活用出来そうですね

Scalacの深みへダイブ

これだけでもScala Matsuri参加してよかった!という気分になれました。
Scalacがどんな処理の流れでFoo.scalaからFoo.classを作るのか?がメインでしたが、
過去の歴史等も含めて触れていました。

REPL上でASTを表示させているスライドがありましたがこれがめっちゃ便利

REPLで

import scala.reflect.runtime.universe._

してから、

val tree = q"a + b"
showRaw(tree)

をタイプするとScalacが生成したASTがさくっと見れるっぽいことがわかりました。
(今までScalaのASTを見たい時はずっとscalac -Ybrowse:typer Main.scalaしてました。。。)
showRaw使えば見たいところだけ見れて便利ですね。
全体を俯瞰したいときは今までの方-Ybrowse:typerしたほうが良さそうですが。

ちなみに上のを実行すると、

scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._

scala> val tree = q"a + b"
tree: reflect.runtime.universe.Tree = a.$plus(b)

scala> showRaw(tree)
res0: String = Apply(Select(Ident(TermName("a")), TermName("$plus")), List(Ident(TermName("b"))))

このようになります。

+演算子$plusに変換されているのとか関数適用のApplyとかいろいろ見れて楽しいですね。

ScalaとSparkによる日本語テキストマイニング

初心者向けのセッションで、機械学習を理解するための前提となる キーワードの解説から説明があったのでだいぶ分かりやすかったです。

英語はスペースなどの区切り文字があるため、
それで区切ってから処理をするのに対し、
日本語はそのような区切り文字が無いため、
形態素解析で確率的なアプローチをしてから処理を始める違いがあることがわかりました。
ただそれで分けられたところで「ヤバい」などの単語があった時に
プラスの意味でもマイナスの意味でも取れるので機械学習難しいと言ってましたw

機械学習をするのはライブラリ側のコードを呼び出す1行で済んでしまい、
事前準備のコードがほとんどでした。

Word2vecはこの事前準備が必要ないようですが未知のデータを渡した時の動作が
事前に渡したデータセットにかなり依存するので
どんなデータを渡すかが非常に重要になりそうです。

そのほか

あとこれ私でした。1日目はWiFiの存在に気づかず
しばらくテザリングしてましたすみませんw