Slide 1

Slide 1 text

マーケティングに強いCTOが語る技術未来とElixir 第6回 Lonestar ElixirConf 2019 から知る世界のElixir事情 2019/03/01 ver 0. 5作成 2019/04/15 ver 0. 9作成 2019/04/17 ver 1. 0作成

Slide 2

Slide 2 text

1 1. Lonestar ElixirConf 2019概要 2. 前夜 (トレーニング、スピーカーディナー) 3. 各セッションの紹介 (Day1) 4. 各セッションの紹介 (Day2) 5. 世界のElixir事情を直接、体験した結果… 目次

Slide 3

Slide 3 text

2 1. Lonestar ElixirConf 2019概要

Slide 4

Slide 4 text

3 Lonestar ElixirConf 2019とは? 「Lonestar ElixirConf 2019」は、オースティンで開催される、 「ElixirConf US」「ElixirConf EU」に次ぐ規模のカンファレンス

Slide 5

Slide 5 text

4 えっと、そもそも、オースティンってどこ? 「オースティン」が、どこにあるかご存知ですか?(どんな場所かも) アメリカの南側、テキサス州にある都市です 日本からは、10,000Km以上、離れた場所にあります 私達も、あまりオースティンや テキサスのことを知らなかったの ですが、ご存知無い方に、 どんなイメージか聞いてみたい です (たとえば、気温とか…)

Slide 6

Slide 6 text

5 オースティンの冬の最低気温は日本と同じ…つまり寒い テキサス/オースティンは、最低気温は、日本の平均気温と同じ、 最高気温も日本の夏の最高気温とあまり変わらない…といった 感じで、実は日本と比べ、すごく暖かい…ということは無いです (更に曇りの日が多く、南の場所な感じは、全くしませんでした) 「テキサスだから暑い」みたいなイメージで、厚着をしてこなかった ざっきーさんは、かなり寒そうでした(^^u 到着した翌日昼の 気温は、6℃と、 日本より寒く、 このライトダウンは なかなか厳しい…

Slide 7

Slide 7 text

6 福岡からオースティンまでの移動は…23時間! 福岡から飛行機で23時間 (3つの便をノンストップ乗り継ぎ)

Slide 8

Slide 8 text

ちなみに、ざっきーさんの スライドは福岡空港で…

Slide 9

Slide 9 text

なんと、ゼロページw (いつものfukuoka.ex MeetUp とおんなじノリやー)

Slide 10

Slide 10 text

そんな訳で、 空港で怒涛のスライド 共同作成開始(^^u

Slide 11

Slide 11 text

10 オースティンの空港からElixirConf公式ホテルまで オースティン・バーグストロム国際空港からElixirConf公式ホテル の「HAYTT PLACE」に到着したときは、すっかり夜中で、ホテル のルームサービスも終わってたけど、フロントのお兄さんが、フレンド リーで、イヤな顔1つせず、巨大バーガーをデプロイしてくれました 空港までの移動は Uver大活躍

Slide 12

Slide 12 text

11 ホテルの周りは、ショッピングセンターくらいしか無い… オイルマネーで潤った後、ハイウェイでバイパスされた?(冗談) 近所のマックは、直線距離で 10分なのに、ハイウェイ横断 ができず45分…車社会ねぇ

Slide 13

Slide 13 text

12 Lonestar ElixirConf 2019の会場 「Norris Conference Center」という、ホテルから車で10分の ところにあるカンファレンス会場 (レストランが近くに並んでいます) 行きは送迎あるけど 帰り道はUver大活躍 (日本で実感し切れない Uverの偉大さを知る) 歩くと54分… 公式ホテルがそんなに遠いとは (やっぱ車社会だからだろうか)

Slide 14

Slide 14 text

13 Lonestar ElixirConf 2019トレーニングプログラム Confに先立って、講師7名による、 5種類のトレーニングを開催 好きな開発技術を丸一日 (1.5時間 x 4コマ) ハンズオン形式でガッツリ学べる 一番人気は 約40名も参加 高瀬さんは約20名の仲間と 共にNervesトレーニング参加

Slide 15

Slide 15 text

14 Lonestar ElixirConf 2019セッションプログラム Day1 Day2

Slide 16

Slide 16 text

15 2. 前夜 (トレーニング、スピーカーディナー)

Slide 17

Slide 17 text

16 高瀬さんが参加した、「Device to the Cloud with Nerves and NervesHub」は、ラズパイ等のIoTボードでElixirアプリの 稼働を可能にする「Nerves」のトレーニングでした Nervesアプリ/ファームの開発方法を、 コア開発者のFrank Hunleth (ConfではLT参加)、Justin Schneck (Confでは オープニングキーノートを担当) から直接学べる贅沢なセッション トレーニングプログラムの様子 高瀬さんとFrank Hunleth 高瀬さんとJustin Schneck 本日の高瀬さんセッション でミニ再現にチャレンジ! ハンズオン資料と機材を譲り受けて 内容を展開する許可を頂きました!

Slide 18

Slide 18 text

17 スピーカーディナーの様子 スピーカー特権として、Conf前夜には、トレーナー、スピーカー、 スポンサー、スタッフが参加の特別ディナー会が催されました 世界中のアルケミスト (Elixir使いを指す言葉、PHP使いのこと を「ペチパー」と言うのと同じ) とフランクに交流できるのが、現地 参加ならではの醍醐味です ↓ざっきーさんと私、 Frank Hunlethの席 (シカゴのグループは500名もいる!) ↓高瀬さんと Chris Freezeの席

Slide 19

Slide 19 text

18 3. 各セッションの紹介 (Day1)

Slide 20

Slide 20 text

19 Conf開始前の会場の様子 200名収容の会場は満席で、開始前に、無料の朝食を提供 日本人の参加は、どうやらfukuoka.exの3名だけのようです (アジア人は10名未満で、韓国や台湾の人がチラホラ…) 記念Tシャツ に着替えて ゴキゲンw

Slide 21

Slide 21 text

20 Nerves Project Nervesプロジェクト共同創始者で、ElixirConf 2018でもキー ノートも務めた Justin Schneck から、Nervesの最新版での 1.8対応やビルドターゲット複数対応、NervesHubを紹介 ホストからssh接続してstdio表示、RingLoggerでgrep検索、 push over sshでファームウェア更新と、ライブデモ満載でした Nervesの詳しい 内容は高瀬さんの セッションにて https://www.youtube.com/watch?v=ItIv2ndtzFM

Slide 22

Slide 22 text

21 Socrates and Distributed State on the BEAM SalesLoftのエンジニア、Dan Dresselhaus から、分散環境 の状態管理の課題と、解決策としてのElixir実装「Raft」を解説 https://github.com/toniqsystems/raft ※Raftは、論文で紹介されるアルゴリズム名と同じ 分散状態保持について、6つの観点で、複数GenServer/ Erlangクラスタ/Delta CRDT/Redis/Kafkaといった分散 環境と、Raftの挙動の違いを、アニメーション付で理解できます https://www.youtube.com/watch?v=-7WCKKhuhfY

Slide 23

Slide 23 text

22 Cadre: Building reliable distributed stateful systems in Elixir TimexやDistilleryを手掛け、ElixirConfのスポンサー企業、 DockYardにも所属している Paul Schoenfelder が、ラージ スケールするサービスをElixirで構築する際のポイントを解説 分散ステート管理の課題と、解決策であるETS/Registry/ Mnesiaが抱える課題、それを解決できる「Cadre」の紹介 https://www.youtube.com/watch?v=xSOuB5P_mk0

Slide 24

Slide 24 text

23 Ecto Without a DB ElixirConf 2014からスピーカーを務める、Greg Vaughnが、 Ectoの4つのコンポーネント (下記URL) のうち、DB無しで独立 して利用できる「Schema」「Changeset」 を、iexでライブデモ https://hexdocs.pm/ecto/Ecto.html Schemaの構造解析を、inspectのstructs OFFでmap表示 したり、DB無の検索IFにおける入力チェック例は、貴重な内容 https://www.youtube.com/watch?v=k_xDi7zAcNM

Slide 25

Slide 25 text

24 Things you might not have tried with Ecto オースティンでDockYardに勤務し、Ectoのコミッターも務める Luke Imhoff が、EctoのDB無時のChangeset/Typeと、 DB有時の様々な操作 (主キー、Join、Index、タイムスタンプ、 制約、バルク操作) についてテクニカルなEctoの利用を披露 「Type」で文字列をElixirネイティブ型に変換したり、バルク操作 4種類を分類する様は、なかなか日本で手に入りにくい情報 https://www.youtube.com/watch?v=3EyDkiDzbj8

Slide 26

Slide 26 text

25 The Business Case for Elixir DockYardのCEO、Brian Cardarella は、Elixirを企業内に プロモートする方法について、9つの説得ポイントで解説 (Apple やMOTOROLA、Adobe、スクエニが導入済企業として紹介) これから自社にElixir導入される方には、ぜひ動画を見て欲しい https://www.youtube.com/watch?v=jIwWsLTCC4s

Slide 27

Slide 27 text

26 Linguistic Domination and Translation as a Counter-hegemonic Practice アトランタで、Elixir MeetUpを主催している Osa Gaius が、 OOPや「the four」が展開する言語の覇権 (Hegemony) に ついての状況を説明した後、関数型プログラミングであるElixirで それらを翻訳していくと、随分シンプルになる…という主張を展開 GoFをElixirに翻訳する中で、関数パターンマッチがいかに強力 で、覇権には存在しないパラダイムシフトであることを改めて認識 (ビデオがアップされていない…残念)

Slide 28

Slide 28 text

27 Happy Hour & Lightning Talks Conf両日のセッション終了後には、スポンサー提供の「Happy Hour」ありました (日本で言うハッピーアワーと同じ意味です) 話題は、各国のElixir技術動向から、仕事の内容やお困りゴト、 Elixir以外に好きな言語、あと好きなFinalFantasyのシリーズ ナンバー…とか 更に、Day 1のHappy Hour後には、LTタイムが あり、5分LT一本が一般応募受付されていました (当日にGoogleフォームで申込み)

Slide 29

Slide 29 text

28 バリエーション豊富なElixirを知る「Lightning Talks」 Nerves、MMO、Telemetry、機械学習など、ネタが豊富 https://www.youtube.com/watch?v=QKMqnHQ85A4 https://www.youtube.com/watch?v=jAfSrissuXg https://www.youtube.com/watch?v=WsUym0ewM_8 https://www.youtube.com/watch?v=jTTgdsLaleU https://www.youtube.com/watch?v=DvwgGz_5D5I https://www.youtube.com/watch?v=XwcmEX7LHeY https://www.youtube.com/watch?v=AjYHt6qs7lQ

Slide 30

Slide 30 text

29 LTが始まってもロビーから帰ってこない人達(^^u… Happy Hourから戻らず、閑散としてても、フランクにLT始まる かくいう私も 長旅の疲れと 英語でCPU利用 100%でグッタリ

Slide 31

Slide 31 text

この後、怒涛の スライド修正とリハーサル で1日目終了(^^u

Slide 32

Slide 32 text

31 4. 各セッションの紹介 (Day2)

Slide 33

Slide 33 text

32 Phoenix LiveView Phoenixメインコミッター、Chris McCordからは、昨年から待ち 続けた、革新的フロント技術「LiveView」の解説とデモでした スピーチ後、「普通にファン」として突撃してきて、 Phoenix+Vue.jsで作ったEsunaを見せたり、 LiveViewでEsunaを再構築する話をしてきました LiveViewで 何ができるかは 古賀さんの セッションにて (ビデオがアップされていない…残念) とてもフレンドリー

Slide 34

Slide 34 text

33 The Factory of the Future with Elixir, Phoenix, and Nerves Clark Kampfe は、モノづくりの歴史の例として、「エンジン」と、 作るための道具が、改善や品質向上され、プログラミングが出現 し、「気にしなくても上手くやってくれる事」が増えた結果、ポインタ もデータ破壊も無いElixirが、いま私達の手にある流れを解説 Elixir/OTP/Phoenix/Nervesといった素晴らしいツールが あっても魔法では無いので私達がデザインすることが大事と強調 https://www.youtube.com/watch?v=0Cn_n76qTIQ

Slide 35

Slide 35 text

34 Building a smart sprinkler controller with Nerves 「風呂モニターでおうちハック」や「駐車場モニター」等から、IoTの エンジニアをスタートしたTodd Resudekからは、IoTデバイス群 と、それらのUI薀蓄、その後Nervesでスプリンクラーの実装解説 Nervesでの実践的なコードが示され、ビジュアルも楽しい登壇 https://www.youtube.com/watch?v=qklciKp7sD8

Slide 36

Slide 36 text

35 Monitoring Your Elixir Application with Prometheus (プレゼン準備で観れず、YouTubeで視聴…ElixirConf多謝) LTでも紹介された「ExVenture」を開発する、SmartLogicの Eric Oestrichは、モニタリングツール「Prometheus」にElixir からカスタムログを出したり、Elixirにアタッチする例を交えて解説 中でも、Phoenix 1.4でも導入されたDI的存在「Telemetry」 を監視系にアタッチして使う例は、あまり例が無いので貴重でした https://www.youtube.com/watch?v=ETUD9SaRCjY

Slide 37

Slide 37 text

36 Bringing Elixir to Production (プレゼン準備で観れず、YouTubeで視聴…ElixirConf多謝) SalesLoftのSteve Busseyから、Elixirをプロダクション利用/ 運用するにあたって、他言語との連携をどう取るかや、言語習得 のメンタリングと新言語のパラダイム/エコシステムの習得、性能 の確保、リリースの組み方など、網羅性高い珠玉の経験値共有 これからElixirをプロダクション採用検討する方は、ぜひご覧を (そして、いつかfukuoka.exでも共有してください) https://www.youtube.com/watch?v=sXyA4ztG1A4

Slide 38

Slide 38 text

37 Hastega: Challenge for GPGPU on Elixir 我らが、fukuoka.exカーネルハッカー、ZACKYさんの登壇です 初日セッションも通して、もっとも会場が盛り上がったセッションで、 登壇後には、Elixir創始者 José Valim との、Elixir本体にも 影響出そうな会談が繰り広げられました (この議論は、今も続いています) 本日、本登壇内容をZACKYさん のセッションで皆さんと共有します https://www.youtube.com/watch?v=lypqlGlK1So Hastegaの 実装に興味津々

Slide 39

Slide 39 text

38 The River (changed from Elixir.next) Phoenixコミッター Bruce Tate から、川の始まりや成長、変化 になぞらえて、Elixirという流れが José と Plataformatec から 始まり、様々なプレイヤーや企業が関わり、現在のElixirの姿に なり、これからどのような変化や動きが訪れるかが解説されました José自身のElixir完了宣言が引用され、彼曰く、自らのパート は終わり、私達が何を担い、投票するかが、今後の流れとのこと https://www.youtube.com/watch?v=KW85rW6-PgI

Slide 40

Slide 40 text

39 KeyNote①: Erlang Ecosystem Foundation Elixir創始者 José Valim からKeynote2つが披露されました 1つ目は、「Erlang Ecosystem Foundation」で、Elixirと Erlangの技術開発やOSSプロジェクトを支援する団体の設立と、 5つの初期ワーキンググループの役割が発表されました https://www.youtube.com/watch?v=qCA-Qu-TPoM

Slide 41

Slide 41 text

40 KeyNote②: The Road to Broadway 2つ目は、GenStageの後継機能として、耐障害設計に焦点が 充てられた「Broadway」についての解説でした GenStageで未達成の「スーパーバイザツリー設計」「データ消失 回避シャットダウン」「障害時イベント消失軽減」を実現する実装 https://www.youtube.com/watch?v=a3FtBNMzMxM

Slide 42

Slide 42 text

この後、HappyHourに 参加し、それから23時間 の飛行機旅で帰国し…

Slide 43

Slide 43 text

帰国後、mixiで懇親会、 Akatsukiで帰国報告会 まさに弾丸スケジュールw

Slide 44

Slide 44 text

43 5. 世界のElixir事情を直接、体験した結果…

Slide 45

Slide 45 text

44 世界のElixir事情を直接、体験した結果… ➢ テクノロジー面 • 私自身、世界のElixirの動きは追っており、知っていること も多かったが、一方で、それがどのくらいのスピードや勢いで 進化しているのかの「肌感」は、まぁまぁズレていた感触 • ElixirConfのビデオ配信で、この感覚は分からない? • 国内Elixir事情、「世界と同期できてない感」、高まる… ➢ 交流面 • コミッターやスピーカーと直接会うことで、意見交換可能に • 現地に行って、拙いながらも会話したり、セッションを聞くと、 Elixir仲間ばかりの環境と内容で、かなりモチベートされる ➢ 体験した後の「マインドと行動の変化」 • MeetUpの動画配信は、Elixir布教に重要かも知れない • 来年のElixirConfで壇上に上がりたい • 会場やTwitter/Slackでもっと会話できるようになりたい

Slide 46

Slide 46 text

最後に覚える言語は、 Elixirのつもりだったけど…

Slide 47

Slide 47 text

実は、 だった (^_^u…

Slide 48

Slide 48 text

Elixirのためなら マスターするのも厭わない いま毎日、修行中… ・英語で書かれた英文法本をパワポにまとめ中 ・英文コラム読み (Elixirに限らず) ・海外エンジニアとほぼ毎日チャット ・海外Elixirエンジニアを積極フォロー ・海外のElixir質問に英語で答える ・英語圏向けツイート (今回MeetUpも)

Slide 49

Slide 49 text

Elixirへの愛の高さは https://speakerdeck.com/cooldaemon/erlang-falsele-sisatoxin-sa 鉄人にも負けてない(^^)

Slide 50

Slide 50 text

加えて、 来年のElixirConf に向けて…

Slide 51

Slide 51 text

50 FBトップ画面で鼓舞 (≒プレッシャーをかけているw) ZACKYさんの リハーサル時に それっぽいのを コッソリ撮影

Slide 52

Slide 52 text

こんな感じで…

Slide 53

Slide 53 text

52 「世界のElixirの波」に巻き込まれたい方、絶賛募集中 2019/8/27~30開催のElixirConf USに行ってみませんか? まだ一般参加の募集 は始まっていませんが、 イベント告知のメール 通知は受付開始して いますので、気になる ようであれば下記から 登録してみてください https://elixirconf.com/2019

Slide 54

Slide 54 text

53 「世界はハードルまだ高い…」という方に向けては… 2019/6/1東京開催のErlang & Elixir Festはお手軽です https://elixir-fest.jp/

Slide 55

Slide 55 text

そして、 未だオフレコですが、 fukuoka.exも… (スミマセン、会場限定のネタです)

Slide 56

Slide 56 text

ご清聴ありがとうございます