読者です 読者をやめる 読者になる 読者になる

日頃の行い

個人的な日頃の行いをつらつら書いてます\\\\ ٩( 'ω' )و ////

#ScalaMatsuri 2016 に参加してきました。

2016/01/30 ~ 31で行われたScalaMatsuriに行ってきました。

scalamatsuri.org

去年からしっかりScala触るようになったので、前回よりは内容がわかるようになった気がしました。
体調悪くて1日目の午後から行きました。
見逃してしまったのは、ニコ生で見ようかなと思います。

ScalaMatsuri 2016 1日目 メイントラック - 2016/01/30 09:40開始 - ニコニコ生放送

ScalaMatsuri 2016 2日目 メイントラック(アンカンファレンス) - 2016/01/31 10:00開始 - ニコニコ生放送

全講演が公開される予定らしいので、そっちで見なおしてもいいかなと思ったんですが、
さっさと見ないと多分なかなか見ないので早めにニコ生で見ようかと思ってます。

もらったノベルティグッズたち!

Scalaパズルは買ったものです)

f:id:arata3da4:20160131194714j:plain

講演

ちょくちょく休憩してたんですが、聞いた講演のメモとかから簡単にまとめてみました。
間違っていたら指摘いただけると幸いです。

1日目

ScalaコードはJVMでどのように表現されているのか

とても読み易いclassファイル開いてみるところから始まり、
読めない人のためのコマンド javap コマンドの紹介とjavapによって出力されるJVMの命令の説明が入りました。
元々JVMの命令は200ちょい(?)で初め出てから追加されたのが少ない(1個だったっけ・・・?調べよう)らしく、
初期設計からとても優秀だったようでした。
その説明後、javacとscalacでコンパイルした結果のclassの比較をしてどう表現されるのかという話でした。
scalacの方が出力するclassファイルが多く、Scalaコンパイラは少ない記述から多くの命令を出力しているという話でした。

あなたのScalaを爆速にする7つの方法

x1.inkenkun.com

EC2インスタンス上でsbt-jmhを利用して、ある7つのケースで処理のベンチマークを取った時の結果をクイズ形式で紹介されていました。
自分のクイズ結果は4/7(´・ω・`)
理由含めて完全にわかった奴はすごく嬉しくなりましたが、外した奴は悲しくなりました・・・でも楽しかったw
あ、これSICPでやったやつだ!とかなったりしてけど、中でArrayが使われてるとか知らなくて外したりしました(言い訳
あと正規表現は正直わからんかった。

The Zen of Akka

www.slideshare.net

Akka全く仕事で使ったこと無くて、なんとなく動かしたことあるくらいだったんですが、それでも聞いていてそういう使い方をするんだなぁみたいな気持ちになれました。
あと絵が好き。Akkaの禅がわかった気がします(雑
特に心に残っているのは、 BackoffSupervisorCluster Gossip Convergence
BackoffSupervisor は例えば、Actorが利用しているDBが死んだ時にどれくらいの時間を置いてリトライをするかという責務を担うもので、
Cluster Gossip Convergence は、クラスタ内の全てのノードの状態が観測し得るときに新規のノードがクラスタ内に参加できると理解しました。
障害時にどうなるという部分が考えられていてすごいなぁと思いました(小並感

2日目

2日目はアンカンファレンスで、 1日目の時点でTwitter上や会場のホワイトボードに貼られた案を元に参加者の人が発表するみたいな形式でした。
ちなみに、ホワイトボードにはこんなのもあったりしました

(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を利用するみたいな話をして、それならまだ行けるのかもしれないと思いました。

speakerdeck.com

昔こんな記事書いてから追ってなかったので追おうかなと思いました。
Vue.jsに入門しようと思ってScala.jsでVue.jsのサンプル書いてみた。 - 日頃の行い

Scalaエンジニアの年収w

(ちなみに左端は一番上は少なくとも海外の方で、基本的には言語が書いていない無効票に記載された金額でした。

感想

  • たのしかった!
  • モナドとかよくわかってないからといって色々避けてしまった
  • なので、FP in Scalaをちゃんと読み終えたい
  • Actorモデル(というかAkka)面白そう
  • 同時通訳めちゃくちゃすごかったです!おかげで英語の発表も臆すること無く聴きに行けました。
  • おつかれJavaでした!