初心者だけど #ScalaMatsuri に参加したら楽しかった件
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

初心者だけど #ScalaMatsuri に参加したら楽しかった件

2016-02-01 00:18
    以前、SkinnyFramework Meetup に参加したという話を書きました。

    それとちょうど同じぐらいのタイミングだったのですが、ScalaMatsuriと呼ばれるイベントが1月30,31日にあるらしい、去年も楽しかったらしいというのを見て、おそらく数ヶ月後にはもう少しScalaのことを分かっているだろうと、大枚はたいてポチッと申し込んでいたのです。

    てわけではるばるお台場へ行ってきました。

    実際、Skinnyのおかげもあって、何となくScalaでモノを書けるようになってきていたので、ちょうど良いタイミングだったかなと思います。


    忘れないうちに(といいながら既に忘れかけていますが)、参加したセッションごとに簡単に自分が思ったことを書いておきます。

    Refactoring in Scala (スライドがくぞ氏
    Type Alias, Tagged Type, Value Class, Phantom Type, Iso and Prism と、いろいろ間違ったときにコンパイラが教えてくれる方法。コレは便利。

    Scalac の深みへダイブ (スライドChris Birchall氏
    Scalaコンパイラは27個のステップがある。そのステップを紹介。
    この後のScala.jsの話とか、JVMバイトコードを読む話とかに繋がったので聞いて良かった。

    リアクティブ・マイクロサービス (スライド)Christopher Hunt
    リアクティブの中で何が一番大事かと言えば、耐障害性。システム落ちたらそれ以外何の意味も無い。ということでTypesafe社の製品 Conductorの紹介でした。Dev版は無料だけどプロダクションは有料。

    バッチを Akka Streams で再実装したら100倍速くなった話(スライド根来 和輝氏
    既存のバッチとかリファクタリングできるのうらやましい。

    sbt-awsプラグインを使って簡単デプロイ(スライド)かとじゅん氏
    正直言うと自分にはこのセッションはまだ早すぎた・・・。

    ScalaコードはJVMでどのように表現されているのか スライド阪田 浩一氏
    「cafe babe」もう忘れない。
    JVMのマシン語は開発当時から1つしか拡張されてないのはすごい

    レジリエンスが無ければ、他は無いも同じ (スライドJonas Bonér氏
    耐障害性は、何かあっても自動で正常に戻ること。
    動物に学ぶ、社会に学ぶ。
    Errorはユーザに返す。FailureはSupervisorに返す。

    The Zen of Akka (スライドKonrad Malawski氏
    これもちょっと自分には早すぎた感あるけどその通りだなと思ったのは覚えてる。

    実戦Scalaz-Stream: 既存のバッチシステムを置き換える (スライドMathias Sulser氏
    バッチの書き方。後で使いそう。

    2日目アンカンファレンスは覚えてるものだけ。

    Spark入門
    この後のSpark日本語テキストマイニング入門の導入に役立った
    ちょっと自分でも触れそうな気がしてきた。
    テキストのログをSplitしてカラムとりだしてreduceByKeyでカウントして並び替える。
    cacheコマンド大事。

    ScalaとSparkによる日本語テキストマイニング (スライド) Eduardo Gonzalez氏
    Kuromojiというのを使う。あとGoogleの作った300ベクトルに変換するWord2Vec
    https://github.com/wmeddie/spark-text
    でも日本語テキストが少ないと変な学習してしまう。

    IntelliJ IDEA で Scala をマスターする (スライド) Alexander Podkhalyuzin氏
    まずIntelliJ IDEAの使い方。プレゼンテーションモードてのがあって、押したキーボードショートカットを画面に出してくれる。
    また、邪魔防止モードがあって、コードを全画面表示してくれるんだけど、そこからマウスを使わずにキーボードショートカットだけで作業が完結する。
    alt-Enterでいろいろ直してくれる。alt-矢印で選択範囲、コマンドEで最近使ったファイル

    Scala.js コンパイル・パイプライン
    Tobias Schlatter氏
    Scalaからjavascriptを作れてしまうすぐれもの。
    死ぬほど遅くはない。早いときもある。遅くても一桁倍。
    Longは中でintを2つ使う等、結構大変なこともしている。
    コア部分を別だししてcdnから読ませるとかは、結局それぞれのコードで使われる部分が違うから意味ないし、最適化で呼び出ししないで中に取り込んでいる部分もあるから難しいとのこと。

    パネルディスカッション:社内でのScala教育について
    はてな、ドワンゴ、Wix(イスラエル)、ChatWorkの社内事例。
    うーん。何か考察を述べられるほど議論が深まらなかったというか、自分も理解できていないので。。。Better Java -> Functional -> Pure Functionaというステップなのではという意見に対して、そういう一直線ではなくて、両方理解しなければならない、Better java的な書き方と関数的な考え方どっちに重点を置くかはその会社の状態にもよる(って言ってた気がする)
    あと、Wix社では下記のオンラインコースをやらせてみたと。当初は社内で教えることもしていたけど教える人を出すのも大変だった。
    Stairway to Scala (http://www.escalatesoft.com/training)
    社内教育といったときに、何を教えるかってのは確かに気になる。というか、どうしても最終的にはノイマン型マシンの上で動かさないと行けなくて、スタック積み過ぎないようにとか、裏でWhileに書き換えるとか、何かしらの制約の上でプログラムしたり、うまくコンパイラが取り持っている事があって、最低限手続き型言語の動き、できればアセンブリレベルで何となくコンピュータが何しているのか分かっていないとどっかで詰まる気がする。で、はてなとかドワンゴ教科書は、コードの書き方は載ってるけど関数型言語への導入部分はぱっと見無かった気がして、社内にbetter java的な書き方をする人と関数型的書き方をする人がいたらどうやってコードレビューとかするんだろうか、むしろ書き方の違いでもめたりするんじゃないんだろうかと思ってしまった。(初心者の感想です)


    最後に、いくつか感想をば。

    運営の皆様大変お疲れ様でした。数百人規模のイベントを片手間でやることはすごく大変だったと思います。人手の足りなさもあったでしょうし。

    同時通訳の評判が良かった。自分は2日ともレシーバもらい忘れたので聞けなかったけど、ネイティブ英語をカタカナ英語にするだけでもかなり理解度が上がるのでそういうことだったのかなと思ったりした。細かい所だとツイート見ている限り説明しきれてない部分も合った感じ。最後のパネルディスカッションでも話がかみ合わないときもあった。英語話者のプレゼンでは細かい質問が日本人からでなかった。それでも途切れずに訳してらしたのでかなりレベルの高い方々だったんだと思う。毎回終わる度に通訳さんありがとうって言われていたのはすごく良いなと思った。
    今回が大きなプログラミング系カンファレンス初めてなので、他はどうなのか知らないけど、同時通訳の使い方(事前資料超大事とか、マイクに向かってしゃべるのを徹底させるとか)は、ノウハウとして広く共有して欲しいなと思った。

    アンカンファレンス、post-itとTwitterを併用したけど、うまくその間を取り持てていなかった感じ。一人1日目からモデレータ置いてTwitterから転記したり、1日目の夜にテキストでまとめてブログに載せて貰うとかできればよかったのかも。
    朝会では最前列でもpost-itの内容が読めなかったので、途中からgoogle docsに勝手にスケジュールまとめてた。初めてのオープンソースコミュニティへの貢献?その後で公式が内容をforkしてくれたので自分の野良スケジュールは閉じた。その後は定期的に更新してくれて助かった。本当は最初から準備しておいてくれればよかったなぁなんて。
    アンカンファレンスのスケジュール作成用のWebサービスとか作ったら便利そう
    (誰でもトピックを提案できる、だれでもそれに投票できる、管理者は類似トピックをまとめられる、朝会でD&Dでスケジュールを作れる、等)

    海外の方はもちろんゲストスピーカが多いのでかなりレベルが高いのだけど、国内の参加者は私みたいな初心者もちらほらいて、レベルのギャップがあった。私は刺激になったけど、海外の人達はどうだったのだろう。
    投票で決まったセッションに比べて、アンカンファレンスの方が初心者向けセッションが多くて助かったんだけど、もしかしてお金払った人とそれ以外の人で見たいセッションが違っていたのでは仮説。

    行動規範のビデオのクオリティがとても良かった。売れる。

    2日目の最後に、もう一回会場Aに集まって終わりの会ができれば場が締まってよかったかも。

    ニコ生は直接コメントとやりとりしてなんぼ。スクリーンもう1台用意してコメント表示とかできたら面白かったかも。ニコ生だけじゃなくてgitterとかtwitterのコメントもだせたら更に可。

    同時通訳音声をニコ生できなかったのは権利上の問題?直前に決まったから?

    英語スライドに日本語字幕はよかった。でも既存のスライドを使うひとは下の部分が隠れちゃって困ったみたい。

    日本人にも外国の方にもバイリンガル多くてすごいなぁと思った。

    知り合いほぼいないし、コミュ障なので懇親会とかあまり話せなかった。似たような人をもう一人Twitterで見かけた。
    もしそういう人が多ければ、話しかけて下さいブースとか作ってくれませんか。
    2日目のお昼はがんばって海外のスピーカの人にアタックしてみた。ちょっとだけ話せた。

    全体の参加者の女性率にくらべて、サンプル少ないけど企業ブースの女性率が高かった。D社の女子マネージャの話を思い出した。

    焼き肉弁当おいしかった。甘酒もおいしかった。

    総評

    楽しかった。また行きたい。その頃には周りと話が合うくらいスキルアップしていたい。
    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。