2016/01/30 ~ 31で行われたScalaMatsuriに行ってきました。
去年からしっかりScala触るようになったので、前回よりは内容がわかるようになった気がしました。
体調悪くて1日目の午後から行きました。
見逃してしまったのは、ニコ生で見ようかなと思います。
ScalaMatsuri 2016 1日目 メイントラック - 2016/01/30 09:40開始 - ニコニコ生放送
ScalaMatsuri 2016 2日目 メイントラック(アンカンファレンス) - 2016/01/31 10:00開始 - ニコニコ生放送
全講演が公開される予定らしいので、そっちで見なおしてもいいかなと思ったんですが、
さっさと見ないと多分なかなか見ないので早めにニコ生で見ようかと思ってます。
後日、全講演をインターネットにて公開する予定です。見逃したセッションがございましたらそちらもご利用ください。 #ScalaMatsuri 2016
— scala_jp (@scala_jp) 2016, 1月 30
もらったノベルティグッズたち!
(Scalaパズルは買ったものです)
講演
ちょくちょく休憩してたんですが、聞いた講演のメモとかから簡単にまとめてみました。
間違っていたら指摘いただけると幸いです。
1日目
ScalaコードはJVMでどのように表現されているのか
とても読み易いclassファイル開いてみるところから始まり、
読めない人のためのコマンド javap
コマンドの紹介とjavapによって出力されるJVMの命令の説明が入りました。
元々JVMの命令は200ちょい(?)で初め出てから追加されたのが少ない(1個だったっけ・・・?調べよう)らしく、
初期設計からとても優秀だったようでした。
その説明後、javacとscalacでコンパイルした結果のclassの比較をしてどう表現されるのかという話でした。
scalacの方が出力するclassファイルが多く、Scalaのコンパイラは少ない記述から多くの命令を出力しているという話でした。
あなたのScalaを爆速にする7つの方法
EC2インスタンス上でsbt-jmhを利用して、ある7つのケースで処理のベンチマークを取った時の結果をクイズ形式で紹介されていました。
自分のクイズ結果は4/7(´・ω・`)
理由含めて完全にわかった奴はすごく嬉しくなりましたが、外した奴は悲しくなりました・・・でも楽しかったw
あ、これSICPでやったやつだ!とかなったりしてけど、中でArrayが使われてるとか知らなくて外したりしました(言い訳
あと正規表現は正直わからんかった。
The Zen of Akka
www.slideshare.net
Akka全く仕事で使ったこと無くて、なんとなく動かしたことあるくらいだったんですが、それでも聞いていてそういう使い方をするんだなぁみたいな気持ちになれました。
あと絵が好き。Akkaの禅がわかった気がします(雑
特に心に残っているのは、 BackoffSupervisor
と Cluster Gossip Convergence
。
BackoffSupervisor
は例えば、Actorが利用しているDBが死んだ時にどれくらいの時間を置いてリトライをするかという責務を担うもので、
Cluster Gossip Convergence
は、クラスタ内の全てのノードの状態が観測し得るときに新規のノードがクラスタ内に参加できると理解しました。
障害時にどうなるという部分が考えられていてすごいなぁと思いました(小並感
2日目
2日目はアンカンファレンスで、
1日目の時点でTwitter上や会場のホワイトボードに貼られた案を元に参加者の人が発表するみたいな形式でした。
ちなみに、ホワイトボードにはこんなのもあったりしました
phq!php! #ScalaMatsuri pic.twitter.com/oXj9Z5QkGZ
— あら松 (@ara_ta3) 2016, 1月 30
(phq・・・
ScalaとSparkによる日本語テキストマイニング
入門者向けということもあって、テキストマイニングの基礎の部分からでした。
Featureとは例えばメールにはfromとtoがあるが、そのfromのこと。
Labelとは予測したいもの(?)例えばメールであれば、スパムであるかスパムでないかということ。
Modelとは学習結果のこと。
などの説明から始まり、機械学習は基本的にFeature Engineeringだという話されてました。(前処理大変ですよね
形態素解析器としてはKuromojiやMecabがあるが、Kuromojiの方がMavenレポジトリで公開されているのもあり、Java Scalaのプロジェクトであればインストール容易とのこと。
その後、自分に来るメールのテキストを元に作業依頼なのか他のタスクなのかを判定するデモ(?)をされていました。
2時間前に始めたプログラムがまだ終わらず一部結果が見せられないと聞いて大変ですよね・・・って思いました。
Scala.js コンパイル・パイプライン
Scala.jsのコンパイラの話でした。
Scalaのコードからどういう過程でJavaScriptになっていくのかという話でした。
めっちゃ面白かったんですが、知識と頭がついていきませんでした・・・
資料が見つかったらまた見たいと思います。
別の発表(LT)ですが、Scala.jsといえばこちらも興味深かったです。
UIと切り離したロジック部分をScala.jsで書くという方針と懇親会の時聞いて、完全にUIが存在しない部分のjsのコードのaltJsとしてScala.jsを利用するみたいな話をして、それならまだ行けるのかもしれないと思いました。
昔こんな記事書いてから追ってなかったので追おうかなと思いました。
Vue.jsに入門しようと思ってScala.jsでVue.jsのサンプル書いてみた。 - 日頃の行い
Scalaエンジニアの年収w
ScalaMatsuri来場者の年収分布(左端列が海外) #ScalaMatsuri #sm_h pic.twitter.com/9ZKPAwqp1r
— りあくてぃぶ (@nyamngo) 2016, 1月 31
(ちなみに左端は一番上は少なくとも海外の方で、基本的には言語が書いていない無効票に記載された金額でした。