ScalaMatsuri 2016

概要

ScalaMatsuri 2016に参加した感想です。

scalamatsuri.org

DAY 1

Refactoring in Scala

  • Tagged Type便利そう。
  • IsoやPrismの概念、関数型っぽい。
  • 確かにLong型よりもUserId型(Value Type)を定義すると分かりやすかったりbugの埋め込みを減らせる気もするけれども、それが原因でDBとの境界に気を使ってコード量を増やしたりパフォーマンスに気を使ったする箇所を増やしたりするのトレードオフだなって感じだった。

なぜリアクティブは重要か

  • okapiesさんのスライドわかりやすい。
  • Reactiveなシステムって文脈をProgramming model, Runtime Engine, Architectureに分けて説明したの良かった。
  • Reactiveなシステムの設計の概要とそこにおけるApache Dataflowのポジションがクリアーになったのが良かった。これから標準化がどう進むのか見ものだ。
  • 分散処理系はまだまだ発展の余地があってとても話を聞いていて楽しい。
  • WebサービスオーケストレーションにもReactiveなシステムの適応余地があるのでは?って話の詳細聞こうと思っていたけど忘れてた。
  • この発表聞いていたおかげでTypesafeメンバーのパネルディスカッションの話も分かりやすくなったと思う。

猫という考え方

  • トークの最初にHardとSoftの話半分くらいしますと言っていたように、環境を含めたCatsの概要を理解するのに良かった。
  • 「softwareは真空状態にあるものではない」
  • Scalaで関数型で行うための障壁を取り除くのがCatsの目標。それは技術的な複雑さ、職場で未知への恐怖、社会的な障壁。 長期的で協力的なコミュニティを促進していく。
  • スライド中に猫が箱に頭突っ込んでいる画像が頻出するのウケた。
  • 最初に聞いたとき、型を指定しないことで実装が制限させるところがよくわからなかった。
  • Constraints Liberate, Liberties Constrainが印象的。制限と自由の話、Typesafeの人が好んで使っていた。

バッチを Akka Streams で再実装したら100倍速くなった話

  • TISとTypesafeの関係知らなかった。
  • レガシーなバッチ処理をAkka Streamsで置き換えたら295倍になったとのこと。
  • これ別にAkka Streamsじゃなくても100倍とかにはなっていたんじゃないかという気はするけれどまあご愛嬌。

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

  • javapの話。
  • バイトコード読んだ経験特になかったのでまあ勉強になった。
  • こんな使い方するとのこと。他にどんなとき読みたくなるんだろうか。パフォーマンスとか気にするとき?

レジリエンスが無ければ、他は無いも同じ

  • TypesafeのCTOのトークが今回一番印象深かった。システム論っぽい感じ。思想的。
  • ドメイン知識がシステムそのものなんだろうなって感じ。
  • レジリエンスは設計方針。
  • Actorとベンディングマシーンの例わかりやすかった。(よく使われる例なのだろうか?)
  • 造船時の防水隔壁パターンの話。タイタニックは障害のカスケーディングの典型例。事故の原因は故障した部品ではなく、部品どうしの関係性にある。
  • システムのレジリエンスをどうやって実現するかって話。actorごとにboundaryを設けて、障害の伝搬を防ぐ。threadでもmachineでも良い。
  • トークの最初と最後にロッキーのテーマを流してたけど好きなのかな。

The Zen of Akka

  • Zen。味があるトークだった。
  • Akkaのロゴを山水画の山に透過させて描いていたのウケたんだけど、ロゴの由来だったりするの???
  • Actorは1つの責務に特化させるべし。他と強調して動くべし。
  • Errorビジネスロジックの問題。Failureはインフラの問題。
  • Akka Clusterの話も一般的な問題の話っぽくて面白かった。
  • AkkaはFrameworkではなくToolkit。適切に使え。
  • Constraints Liberate, Liberties Constrain(制限は私達を自由にする。自由は私達を制限する)
    • 元ネタ
  • Happy HAkking, Community!

DAY 2

Kafka Tuning

  • ドワンゴの社内マイクロサービス基盤?ではAt Least Once。Exactory Onceや順序保証はなし。
  • RabbitMQやめた理由。そこまでスケールを意識していない設計になっている?
  • 既存のクライアント(Reactive-kafkaとか)は要件を満たさず使っていない。
  • 通信は独自のバイナリプロトコル。httpアダプタを自作。既存のhttpアダプタは無いの?コンフルエントが出しているけれど、機能少ないという判断で使うの辞めた。
  • kafka 0.8当時consumerのjarが作りかけなのにmaven centralにpublishされていた…?(ガクブル)
  • コードの辛みと運用の設定値チューニングの辛み。ブログとかMLとか読み込んだとのこと。
  • 最後の質問でクラウドサービスは検討しなかったの?って聞いたら、オンプレあるししなかったって言われた。ですよね。

Scalaz入門

リアクティブシステム入門

  • 昨日のJonas氏のトークを日本語で要約した感じ。Reactive Platformのコンポーネントのその中での役割をちょっと具体的に説明している。
  • デモ。ソーラーファームを運営しているお客様。一万枚のパネルの発電状況をモニタ。故障検知。1msも無駄にしたくない。リアルタイムで。MQTT, Akka, Play, WebSocket。
  • TISはSIでもTypesafe Reactive Platformを適用出来ないか頑張っているとのこと。すばらし。

Typesafeの人にリアクティブについて聞こう/Reactive adoption with Typesafe members

  • Typesafeの四人が登壇して、質問に答える形式。
  • 質問:金融とかクリティカルなとこではどうなの?
  • 質問:GoogleもDataflowとか標準化しようとしているけれどどう戦ってくの?
  • okapiesさんのReactive Streamに関する質問とスライド使ったファシリテーション素晴らしかった。
  • これ期待
  • 録画見てちゃんと理解したい。

Scala.js コンパイルパイプライン

  • どうやってScalaのコードをJSに理解させるコードに置き換えているかの講義だった。
  • 後半はよくわからなかった。
  • 同じ感想。いきいきと話す人だった。

パネルディスカッション:Scala社内教育

  • Scalaは色んなレベルの人が色々な書き方が出来るので、その人の背景とかレベルに応じた教育方針がそれぞれあって面白かった。
  • 一日目にドワンゴの新人研修資料が公開された。
  • hatenaの新人研修資料は最初の年に海外の秋採用の新人を使ってdebugしたとのこと。 github.com

大学教育とScala

Scala 転職・年収

  • 各社の年収状況

全体の感想とまとめ

Typesafe

  • Typesafeの方々のトークを直に聞けたのがとても良かった。
  • またeed3si9nさんにTypesafeの概要とかの話を聞けたのも良かった。

運営

  • 一日目の最初に技術カンファレンスの行動規範についてののビデオが流れたけれどもとても良く出来ていた。
  • スライドの日英対訳、同時通訳とても素晴らしかった。
  • 国際化対応や行動規範、投票制のトーク選定、アンカンファレンスなどから垣間見れる運営のScalaコミュニティを尊重している態度とても良いなあって思った。
  • とても有意義な二日間になりました。関係者の方々、本当にお疲れ様でした。ありがとうございました。

2015年に飲んだビールまとめ

一年でビール何銘柄程度飲めるか

二年位前からビールが好きになったので、去年は100銘柄ビールを飲もうという目標を立てました。

年始は張り切って人を誘ってビアバー巡ってましたが、年の後半はお金も使いたくないので食事誘われたらビアバーを提案するくらいのペースに落としました。 ビールが好きだと言っているとお誘いやお土産の引き合いがあってそれはそれで楽しい一年でした。

以下の一覧では写し疲れたので100で辞めましたが、記録していない銘柄もあるのでだいたいユニーク銘柄数は120-130位でしょうか。 銘柄被りや居酒屋で飲む日本のラガーを合わせれば3倍くらい飲んでそうなので、一杯平均して350mlだとすると大体100Lくらい飲んだ計算になるでしょうか。 ちなみに東京人の平均ビール消費量は35L程度だそうです。

1人あたりのビールの消費量の都道府県ランキング - 都道府県格付研究所

美味しかったビール

初めにビールを好きになった頃はホワイトビールが好きでした。特にハーブ感が強いエーデルワイスをよく飲んでいました。

安っ!って思ったけど+開栓料

A photo posted by satoshihirose (@satoshihirose) on

この企画を始めた頃はIPAが好きでした。DirtWolfのDouble IPAが香り高くて良かったなと印象に残っています

dirtwolf

A photo posted by satoshihirose (@satoshihirose) on

途中からポーターが好きになりました。開栓直後の反射炉ビアポーターは感動的な美味しさでした。

#67 反射炉ビア ポーター

A photo posted by satoshihirose (@satoshihirose) on

また最近は大麦と小麦を混ぜたビールの味がとても美味しく感じたので探っていきたいなと感じています。

#25 フランツェスカーナヴァイスドュンケル

A photo posted by satoshihirose (@satoshihirose) on

ビールの美味しさはその時の体調や気分や開栓からの期間だったりに左右されてしまうので、体験の質を上げるのもまた良いと思います。 うすはりグラスでよく冷えたビールを飲んだり、

京都岡山街道麦酒ケルシュ #22

A photo posted by satoshihirose (@satoshihirose) on

桜を見ながら外でビールを呑んだり

昼から桜を観ながら贅沢している。

A photo posted by satoshihirose (@satoshihirose) on

#30 EFES Dark

A photo posted by satoshihirose (@satoshihirose) on

好きな女の子とビールを飲んだりですね。 2016年も楽しんでいきましょう。

印象に残っているビアバー

tabelog.com

訪れたのは一昨年なのですが、とても印象に残っています。たぶんデートには使えません。

映画配給会社の店舗の一角を使った飲食店とは思えない狭い店内。 映画配給で日本行脚するツテで、日本の地方ブリュワリーからビールを仕入れてお店にしているという変わった出自のお店。 そのオーナー?の方がずっと日本のビール醸造の今昔話をしてくれてとても興味深かった記憶があります。

今はどうなっているかわかりません。

2015年飲んだビール銘柄一覧

  • レフ・ブロンド
  • レフ・ブラウン
  • ティママン・ブランシェのランビックホワイト
  • オーストリアエーデルワイス
  • ウェストマール・トリプル
  • ステラアルトワのラガー
  • キルケニーのレッドエール
  • ベアードビール修善寺ヘリテッジヘレス
  • ベアードビールシングルテイクセッションエール
  • ベアードビールスルガベイインペリアルIPA
  • 栃木プレストンエールのIPA
  • 栃木プレストンエールのブラウンエール
  • 北海道フルーツブルーイング チェリー&ベリー
  • BREWDOG BREWERYのパンクIPA
  • 北海道ノースアイランドビールのヴァイツェン
  • 北海道ノースアイランドビールのコリアンダーブラック
  • アサヒレーベンブロイ
  • サッポロ月夜のデュンケル
  • サッポロ那須の森ビールデュンケル
  • カールスバーグ
  • ハートランド
  • Dreher
  • 長野諏訪浪漫
  • 長野善光寺浪漫
  • 長野安曇野浪漫
  • 日本ビール有機農法ビール
  • ブルマーブルーイングのゴールデンエール
  • ブリマーブルーイングのバーレーワイン
  • 軽井沢浅間高原ビールクリア
  • 京都岡山街道麦酒ケルシュ
  • シュパーテンのオクトーバーフェストビア
  • フランツェスカーナのヘフェヴァイスビア
  • フランツェスカーナのヴァイスドュンケル
  • フレンスブルガーのヴァイス
  • TECATE
  • オリオンのシークワーサービール
  • ピッツァポートブリューイングポントセッショナブルIPA
  • イギリスFuller's Organic Honey Dew
  • オーストラリアVictoriaBitter
  • スペインエストレージャガリシア
  • 那須高原地ビールヴァイツェン
  • 八海山泉ビールIPA
  • サンクトガーレンのロンドンコーリングIPA
  • イギリスアボットエール
  • YONAYONAのTOKYO BLACK
  • YONAYONAのインドの青鬼
  • YONAYONAの僕ビール君ビール
  • YONAYONAの東京ピクニック
  • 伊勢角屋ブラウンエール
  • 伊勢角屋スタウト
  • 伊勢角屋ペールエール
  • ガッフェルのケルシュ
  • ツムユーリゲのアルトビール
  • 栃木うしとらブルワリーIPA
  • 栃木うしとらブルワリー赤苦
  • あくらICウィンドセッションIPL
  • しもつまビールヴァイツェン
  • サントリーラドラー
  • SOCブルーイングのハスカップブロンド
  • 常陸野ネストだいだいIPA
  • 常陸野ネスト塩梅
  • 常陸野ネストジャパニーズクラシックエール
  • Victory BrewingのHeadwaters Pale Ale
  • Victory BrewingのStorm King Stout
  • みちのく福島路ビール黄金桃のリッチエール
  • みちのく福島路ビールピーチエール
  • 馨和のRouge
  • Wolf 8
  • Mad River BrewingのCompany Steelhead
  • 日本ビールレモンビール
  • 伊豆韮山ビール反射炉ビヤポーター
  • メキシコデイ・オブ・ザ・デッドIPA
  • Bisonオーガニックビールのハニーバジル
  • リーフマンスのオン・ザ・ロック
  • 舞浜ハーヴェストムーンサマーバケーションエール
  • 志賀高原ビールインディアンサマーセゾン
  • Samuel AdamsのStony Brook Red
  • スペインイネディット
  • ハーベストの丘 こだわりやさかい ライラガー
  • 群馬吾つま恋し麦の酒のエール
  • サッポロエーデルピルス
  • SPRING VALLEY BREWERYの496×Galaxy Hop
  • 田沢湖ビールアルト
  • Gigantic BrewingのCider Riot!
  • いわて蔵ビール金蔵
  • 小樽麦酒アンバーエール
  • 銀河高原のペールエール
  • 石川グランアグリ
  • オーストラリアンブルワリーTHE PALE ALE
  • Bear BeerのDark Weat
  • サントリーThe Pumpkin
  • サッポロCraft Label 柑橘香るペールエール
  • キリン取手作り
  • キリンGALAXY HOP
  • BIG WAVE
  • ヒューガルデンのロゼ
  • イタリアムンダカペールエール
  • Houblon Chouffe Dobbelen IPA Tripel
  • T.Y HARBOR BREWINGのスタウト
  • T.Y HARBOR BREWINGのIPA

2015年振り返りと2016年目標

2015年の振り返り

自己組織化するシステムを作る

  • ルールベースのプリミティブなものでしかないけど、まあ可。今後Breakdownしてやっていくかは微妙。
  • 機械学習を使った仕組みは導入できていないけれど、一年やってみてまあそういう段階まではもうちょっとだなって認識になっている。

データストアの勉強をする

  • AWS(SQS, RDS, ElastiCache、DynamoDB)、Redis、MongoDB、HBaseとか試したり使ったりしていたので可。
  • DynamoDBに触れて、もっと分散処理周りの勉強したいなと思えた。
  • あとSQS便利だけどいくつか不便な仕様も見えてきてKafka導入考えたいなと思った。

システムを止めない

  • サービスイン時の失敗があったりしたので、不可。やっぱり余裕がなくなると視野が狭くなってダメね。
  • その他大きな障害は無いが、システムテストが不十分だったり書きやすいコードになってなかったりするのはダメな感じ。

ブランドに対する知見、人が興味を抱くきっかけについて知見を溜める

  • 取り組まなかった。必要無い。

ビール100銘柄、新規ビアバー10店舗

  • これはいい感じの数値的目標だったので、無理せず達成出来た。楽しかったし人と交流するツールにもなったし、ビールに対する知見も溜まった。また後で2015年飲んだ銘柄まとめる。

その他

  • 生活にKindleを導入し始めたが、Webに転がっているpdf取り込んで手軽に読めるとか重宝している。頭から順に読んでいくような読み方にはfitするけど、zappingして気になるチャプターだけ読むような読み方には向いていないなという感じ。UIの改善頼む。

2016年の目標

英語を使いこなせるようになる

  • 昔から英語コミュニケーションが苦手であることがコンプレックスになっている気はしていたのだが、解消しといた方が良いんじゃないかと思い始めた。
  • 日常的にPodcast聴くとかCourseraを受講するとかはし始めた。
  • 定性的目標は、エンジニアとしてビジネスユースで使えるレベルまで鍛える。
  • 定量的目標は、TOEFLでいい感じの点数を取るって感じにしておいてもいいかもしれない。
  • これとか気になっている。 表参道から徒歩5分!英会話を学ぶならCLUB CUE英会話ラウンジ | 株式会社CUE

OSSへのcommit

  • 出来るか分からないけど一応意識しておきたい。

年収

  • 3年後に800万って煽られたので考えていく。

人生の進捗を出す

  • 2015年はありませんでした。2016年は何かしら成果を出したい。

入社一年👏

10月で現職に就いて一年が過ぎた。

一年間でやったこと

  • アイテムレコメンド用のデータパイプラインの設計と実装
    • SQSやRedisやSpray何かを使った。現状の計算はルールベースのアルゴリズムを使っているので、機械学習ベースのものに置き換えてパフォーマンス上がるか試行したいのだが未だ出来ていない。
  • HBase導入のための調査
    • CDH on EC2とかMapR on EMRとか見たけれど結局運用を含めコストを考えると今は必要ないという結論になった。このあたりの知識は今Spot的に使っているSparkベースのバッチスクリプトなんかに生きている。データソースがS3とか分散処理に適したものなら手軽にEMR何かでスケール出来るしSparkサイコーという感じである。
  • 広告の配信用のAPIを設計・実装
    • 動画も配信出来るはずだがその機能は結局一度も使われていない。
  • 画像処理するCLIツールGolangで実装
    • OpenCVとか試したりしたけれど結局ピクセル操作に落ち着いた。成り行き上Goで実装することになったけれど使ってみてGoは苦手な感じだと分かった。
  • PHPを使ったAPIの改修・開発
    • 既存のWebアプリにAPI追加したりした。PHP徐々に慣れてきて随分楽に書けるようになったけれどやっぱりScalaの方が書いていて気持ちが良いなと思う。
  • 採用活動
    • 求人票を作成して面接をし始めた。エンジニアが一人入社が決まったのでやったかいがあったと感じている。求人もアプリデザインと一緒で飽きられる前に刷新していかないとダメっぽい。
  • インターン指導
    • データサイエンス系に興味がある学生で、データエンジニアリング系の僕と良い相乗効果を生みながらお互い成長できれば良いなと感じている。人と相対している中での学びは多い。
  • 読書会
    • 最近になってD氏とはじパタ読み始めた。週一で今半分くらい。誰かと読むと読み進めなきゃというプレッシャーになって捗る。既にその次何読もうか考えている。
  • 新しいタイムラインの設計・実装
    • 仕掛り中の仕事。抜本的に設計から変更してCVRを最大化する。DynamoDBとか使ってfanout方式にする予定。

雑感

世の中には昼休みの時間を自由に取れなかったりScalaで実装出来ると聞いて入社したらPHPを書かされる等といった悩みを抱えている人間がいる一方で、ある程度の裁量があって生活を決められる僕はずいぶん気が楽に生きられているなという感慨もあったりする。職場は近い方が良い。最近はどうやったら今の満足度のまま年収が倍になるだろうかということばかり考えている。

また、最近は年に一度くらい来る米国で働きたい欲求期なので英会話やビザについて調べたりしているけれど、H1Bには学位が微妙だし博打っぽいしもし真剣に考えるならばL1を狙うべきなのかしら。

次の一年も頑張っていきましょう。

2014年美味しかったランチベスト3〜東京・神田・日本橋編〜

前職では東京駅前のビルに通っていた。

1. ブッチャーブラザーズ

贅沢にも昼から牛・豚のステーキを最高のコスパで食べることが可能だったので、食べていた。

ブッチャーブラザーズ - 神田/バル・バール [食べログ]

2. 築地寿司清 日本ビル店

会社の入っていたビルの地下で寿司食べていた。寿司は、美味い。

築地寿司清 日本ビル店 (つきじすしせい) - 東京/寿司 [食べログ]

3. 日本橋 お多幸本店

味付き豆腐がご飯の上に乗った「とうめし定食」が良い。

日本橋 お多幸本店 (にほんばしおたこうほんてん) - 日本橋/おでん [食べログ]

2014年美味しかったランチベスト3〜南青山編〜

現職のオフィスは南青山の閑静な住宅街にある。 今までの3ヶ月間は毎日ランチに外に出るって感じではなかったが、行った所の中でのチョイスした。

1. 赤月

揚げたてサクサクのとんかつ

南青山 とんかつ 赤月 - 外苑前/とんかつ [食べログ]

2. 鶏味座

だしの利いた「究極の親子丼」

鶏味座 青山 本店 (とりみくら) - 表参道/焼鳥 [食べログ]

3. 青山すし泉

最初に社長に連れて行って貰ったお店

青山すし泉 (あおやますしせん) - 外苑前/寿司 [食べログ]

2014年振り返りと2015年目標

2014年の振り返り

転職

2013年に引き続き、2014年も職場を変えた。10月からなので働き初めて丁度3ヶ月。 2015年は転職の年にはしないようにしたい。 現在も相変わらずScalaを使って開発をしている。 前職でお世話になったIさんAさんHさんKさんOさんSさんには本当に感謝している。 現職でお世話になっているみなさんにも本当に感謝している。

海外旅行

2013年の年末から去年の年初はドイツの友人宅に友人らと訪れた。そのままフランスの山、スイスへの旅行して年越しをした。 去年の春には現地のシンクタンクで働いている友人を訪ねてシンガポールへ遊びに行った。 去年の夏には現地のIT企業で働いている友人を訪ねてベトナムへ遊びに行った。 一年で三度渡航したのは初めてで、とても刺激的な年だった。 海外に行く度に日本は最高だなと思う。

2015年の目標

自己組織化するシステムを作る

今開発している推薦システムに自己フィードバックする仕組みを入れて精度の向上をする。 未だに評価方法が確立されていないので、それが先。 あとは、時代に取り残されないように機械学習を使っていく余地を探る。

データストアの勉強をする

新しく使い出したサービスやミドルウェアAWS(SQS, RDS, ElastiCache)、Redis、MongoDBあたりで、年明けにはたぶんHBaseを実践投入出来るか試す。 contents deliveryにおいてデータをどう保持しておくと効率が良いか徐々に特徴を掴んできたので、引き続き幅を広げていく。

システムを止めない

システムを組んだは良いが監視やテストが不十分な感は否めないので充足させる。

ブランドに対する知見、人が興味を抱くきっかけについて知見を溜める

作っているサービスの特性上必要を感じる。

ビール100銘柄、新規ビアバー10店舗

ビア好きマンな目標を立てたいと思ったので、100銘柄10店舗を記録にでも付けていこうかと思う。

まとめ

引き続き宜しくお願いします。