ElixirConf JP 2019 Kokurajo レポート

# ElixirConf JP 2019 Kokurajo
fukuoka.exで活動してます、面白法人カヤックの[koyo](https://twitter.com/koyomiyamura)です

2019年9月7日に福岡県北九州小倉で行われた[ElixirConf JP 2019 Kokurajo](https://fukuokaex.fun)に参加してきました！

ElixirのみでIoTデバイス/アプリ開発ができ、クラウド越しにファームウェア更新までできる革新的プロジェクト「Nerves」のコアメンバーである[Justin Schneck](https://twitter.com/mobileoverlord)氏が来日しての基調講演など面白いコンテンツばかりでした！

[Compassページはこちら](https://fukuokaex.connpass.com/event/138846/)資料などもアップロードされると思うのでぜひこちらも見てみてください！

ハッシュタグ[#ElixirConfJP](https://twitter.com/hashtag/ElixirConfJP)で当日の盛り上がりを体験できるでこちらも是非！

# 第1部

## 13:00 ~ 13:10【開会のパターンマッチ】 fukuoka.exビルダー/司会 「古賀 祥造」
「Build the future with Elixir and YOU」 コンセプトに始まりました！
また、「fukuoka.ex祭り」の締めくくりとしても位置付けられた「南原神楽」さんの舞台講演もあったりワイワイするイベントになりそう！

## 13:10 ~ 13:20 【ElixirConf JP 開催のお礼とご挨拶、スポンサー企業様のご紹介】 ElixirConfJP2019オーガナイザ 「森 正和」
２年前に比べるとElixirの人口はどんどん増えてるみたいです！
プラチナスポンサーの「寿興産」「日本ゲーミフィケーション協会」「ドリコム」「コイシ」をはじめ、「YOCTO.LLC」「カラビナテクノロジー」「合同会社 ザワッグル」「コワーキングスペース秘密基地」「有限会社 ナインレイヤーズ」さんの紹介
寿興産さんは 「Elixir Collage」 開校するそう！
Elixirコミュニティを支えていただけるスポンサーがいらっしゃるのはありがたいですね！

## 13:20 ~ 13:40 【今、ElixirConfJPを小倉城で開催する歴史的な背景と価値とは？超並列高速処理系「Hastega」とNerves、そしてElixirが作る未来】 北九州市立大学国際環境工学部准教授 / ナッジ社会実装研究センター 「山崎 進」

これまで海外の Elixir Conf で発表されていたHastegaについての発表
大まかな流れとしては 「CPUの速度が上がらない → 並列コンピューティングが求められる → しかし従来のプログラミング言語では破壊的更新を許容しているので非常に難しい → Elixirは全てをイミュータブルで並列に向いている → 山崎先生はこれをさらに加速する Hastega 改め Pelemay の開発」
みたいな感じですね
更になんとHastegaを改名するという発表がここで行われました！
令和という年号が古典から引用していることに倣い、宮本武蔵の五輪書から引用し**Pelemay**となったそうです！

## 13:40 ~ 14:00 【並列ライブラリ「Flow」の破壊的パラダイムシフトとデータ処理の未来】 カラビナテクノロジー株式会社執行役員 / AIジョブカレ福岡代表「森 正和」
入門向けにElixirはExcelやSpreadSheetと同じような感覚で考えることができるという紹介
[Excelから関数型言語マスター](https://qiita.com/piacerex/items/6714e1440e3f25fb46a1)をベースに説明されていました！

また以下の記事の紹介も
- [【本番構築Gigalixir編①】Elixir／Phoenixの初期PJリリースまでの手順](https://qiita.com/piacerex/items/1a9cbcc740ca3707eaec)
- [Elixir＋Keras＝手軽に高速な「データサイエンスプラットフォーム」 ～Flowでのマルチコア活用事例～](https://qiita.com/piacerex/items/c1af7b6ce472db83cff6)

## 14:00 ~ 14:15 【日本最古 Elixir コミュニティが黎明期の Elixir から現在の進化までを語る】 Shinjuku.ex主催 「塚本 朗仁」
2011年ごろからElixirをウォッチしている [@tsuka](https://twitter.com/tsuka) さんによる発表
mixがElixir本体にない頃なんて想像できない・・・笑
記法の変遷も色々あったみたい！

## 14:15 ~ 14:35 【再生可能エネルギー発電所でIoT！？ Elixir で叶える「仮想発電所」技術 リアルワールドも Elixir のごとく地域分散・協調社会へ】 合同会社クラウドグリッド CTO / 高知工科大学 特任教授 「菊池 豊」
[@kikuyuta](https://twitter.com/kikuyuta)先生による発表
産業界との連携も期待されますね！
Elixirは再生エネルギーの役にも立ちそう

FA（ファクトリ オートメーション）という比較的に閉じた業界から見たElixirコミュニティのオープンさに言及されていたのが印象的でした

## 14:35 ~ 14:55 【なぜ、Elixir 採用で製品の質が上がると言い切れるのか！（私たちが戦っている「複雑さ」とは何か？Elixirだとどうなるか？）】 株式会社gumi CTO / Japan Elixir Association理事「幾田 雅仁」
先日行われたCEDECでもElixirの話があったみたい
主に「なぜElixirなのか」をテーマにお話しされていました
採用と持続に必要なのは「信頼」「共感」「論理」とのことで、今回は「論理」にフォーカスされていました

ソフトウェア開発者の願い「製品リリース時の事故をなくしたい」「安定して寝たい」
→ ビジネスが大きくなるたびに「複雑さ」と戦わなければいけなくなる
→ Erlang や Elixir の特性を活かすべき
という話を詳細に行っていたことが印象的です

Erlang の 「安全 > 速度」 という思想はかなり印象的でした

そしてErlangの書きにくさを補い、Webフレームワークを持っているElixirを使うべき！という感じでした
すごく面白かったので資料公開されてたらぜひ見てみてください！

## 15:05 ~ 15:20 【ベガコーポレーションで Elixir を導入したきっかけと現在までの1年半を振り返ってみた】 株式会社ベガコーポレーション基盤開発部 R&Dグループ グループ長「宮末啓吾」
大量の家具データはあったが、それが分散したり信用性がなかったりして困っていたので新しいシステムを作ることにしたそう
関数型に興味があり中心になるシステムなので処理速度を重視した結果Elixirになったとか
さらに採用を考えると「既にElixirに興味のあるエンジニアは強いエンジニアが多いのではないか」という観点は面白かったです
更にElixir / Phoenix でAPI作って負荷試験したらすごいスコア出て採用に踏み切れたらしい（すごい）

## 15:20 ~ 15:55 【LT大会】
- 【「Elixir School」の翻訳について】 [@starfish0206](https://twitter.com/starfish0206)
  - 英語力よりElixir的におかしいかどうかを大事にしている
  - Nervesページも翻訳したそう！
  - モチベーションは恩返し！いい話だ・・・！
- 【Phoenix LiveView のお話】 黒田　努[@tkrd_oiax](https://twitter.com/tkrd_oiax)
  - Phoenix LiveViewで製品開発を行っている話でした
  - Vue.js / Rails 構成と比較しているのが印象的でした！
  - 状態が「ブラウザ」に保管されるか「サーバ」に保管するされるかが大きな違いとのこと
  - 更に js が不要 / アプリ実装が不要 というメリットが特徴
- 【DATA STRUCTURE IN ELIXIR】[@masatam81](https://twitter.com/masatam81)
  - QUEUEを題材にElixirでの実装を説明されていました
  - 従来の考え方だとElixirの特性を活かせないこともあるというのは興味深い話でした
- 【Elixir newbie】ハウインターナショナル 山内さん
  - 全部英語発表という面白い発表でした
  - 絵文字のダウンロードを題材に、Flowを活用事例を紹介
  - ミュージカルみたいな発表で楽しかったです笑
- 【Elixirアプリケーションをコンテナ化してk8s上で動かして監視する話】[@ne_sachirou](https://twitter.com/ne_sachirou)
  - [ex_komachi_heartbeat](https://github.com/ne-sachirou/ex_komachi_heartbeat) というライブラリの紹介
  - ここら辺の運用周りの知見はなかなか日本語で見つからないのですごいありがたいです
- 【怖くないヨ Elixir/Phoenix】[@uenno](https://twitter.com/uenno)
  - [発表スライド](https://www.slideshare.net/studio23c/elixirphoenix-169850888)
  - 小規模な企業でのElixir採用事例
  - 採用経緯と壁
    - 今までPHPだったが、社運がかかっていたため真剣に考えてみることに
    - ステークホルダーからの反発
    - fukuoka.exの資料で説得と情熱
  - 10ヶ月経ってみて

## 15:55 ~ 16:00 【Erlang Ecosystem Foundation -Let's Grow Together-】 「高瀬 英希」
Erlang Ecosystem Foundation というコミュニティの紹介
高瀬先生も会員になっているみたい
まだ立ち上がったばっかりとのことで期待が高まりますね！

## 16:00 ~ 16:20 【”fukuoka.ex祭り” 締め括り祭事 「南原神楽」舞台講演】 「南原神楽 のみなさま」
カンファレンスで神楽を見るのは初めてでしたw
伝統芸能をみたのは久しぶりで、すごい迫力で感動しました

## 16:20 ~ 16:35 【スペシャルスポンサーセッション「みんな」と「全体」を考える優秀な人がこれからの土木を導いていく】 株式会社コイシ 代表取締役 「小原文男」
異業種から見たElixirの話が聞けるのは面白いですね！
大分の企業だそうで、業界で珍しく女性の多いとのこと。お母さんたちに寄り添った経営をされているみたいです！

Elixirには「使えば使うほど技術が身につくソフト」を期待しているそう
Youtube や 3Dカメラを導入するなど、すごく先進的な取り組みしていてすごかったですね！

## 16:35 ~ 16:50 【登山プラットフォームYAMAPでの Elixir 導入事例 2.5年間の Elixir 運用で実感した安定性、高速レスポンス、省メモリ】 株式会社YAMAP エンジニアリングマネージャ「松本 英高」
貴重な運用の知見の発表です！
サジェストAPIのお話では、リクエスト数が多くレスポンス速度が求められるため、Elixir/Phoenixを選んだそう！
あまりに安定していたので存在を忘れるほどだったとか笑
EC2 の t2.small で運用できてリソースの節約につながったそうです
写真のアップロードAPIでは元々遅くてメインAPIと密結合していたので、疎結合であるようにPhoenixで作り変えたそう
リリースして半年で特に問題は発生していないとか

## 17:05 ~ 17:10 写真撮影タイム
休憩を挟んで写真撮影タイム！

## 17:10 ~ 17:25 【Cockatrice: A Hardware Design Environment with Elixir】 京都大学大学院情報学研究科 助教 / 科学技術振興機構（JST）さきがけ研究者「高瀬 英希」
先日海外で行われたElixirConfで登壇した内容のミニマム版！
https://www.youtube.com/watch?v=BJbXpwS-g1A

FPGAをプログラミングする際にElixirを使いたい！ということで
Cockatrice というプロジェクトでElixirで書かれたコードをFPGAに落とし込むことを目指しているみたいです

## 17:25 ~ 17:45 【アルケミストとD/OX(developer/operation experience) 少人数チームがElixirとマネージドサービスで気持ちよく幸せになる為に】 株式会社ドリコムプラットフォーム開発1部 部長 / Japan Elixir Association理事 / tokyo.ex主催「大原 常徳」
※アルケミスト：Elixirに親しむ人を指す愛称、PHPで言うペチパーに相当
[発表資料](https://speakerdeck.com/ohr486/ox)

D/OX(developer/operation experience)にまつわる話と、なんとElixir界隈では貴重な「デプロイ」の話とのこと！

D/OXを改善するためには「自動化」と「良いアーキテクチャ」が大事とのこと

デプロイの話ではErlang/Elixirとコンテナ/k8sの思想の違いでつまづくことがあるみたい
実際に計測して計測することが大事みたい
あとHotCode スワップは辛いらしい笑
デプロイの種類まとめてもらってるの最高にありがたい・・・

# 第２部
台風の影響でタイムテーブルの乱れなどありましたが、無事運営されていました

## 18:30 ~ 18:35 【第2部イントロダクション】 「山崎 進」
歴史になぞらえて、なぜJustinを呼んだのかを解説してくださいました

## 18:35 ~ 19:35 【Elixir IoT開発プラットフォーム 「Nerves」コアメンバー Justin Schneck氏	ElixirConf JP prologue 2019基調講演】 「Justin Schneck」
Twitter [Justin Schneck](https://twitter.com/mobileoverlord)

「We are Engineer」で始まった基調講演
まず独立した小さな機能の組み合わせでソフトウェアが表現されることを解説し、これは組み込みでもWebでも全く同じと捉えることができるという概念を共有してくれました

組込みシステムが必要とする要件は以下とのこと

- Resilient
  - コピーを2つ用意して、片方のノードが死んだらもう片方を採用する
  - Nervesのスケーラビリティがこれを実現する
- Reproducible
  - 再現性を担保するにはイミュータブル性が重要
- Reasonable
  - 必要な部品をリストアップして組み合わせることで実現

これらの要件を備えたメンテナンス性が高い組み込みシステムをどう作るか？
OSとしてLinux Kernel と Elixir の組み合わせを提案し、アプリケーションロジックはなんの言語でも実現可能なアーキテクチャを提案したい

Nerves と Nerves Hub を使っていかにそれを実現するかを解説してスネークゲームを題材に、デモをしてくれました（大盛り上がり）

Nervesは組込みLinuxカーネルが動く環境であれば何でも導入可能！
GPIOなどいろんなIOもサポート

リモート実行するのでセキュリティが気になる人もいると思いますが、Socket通信またはHTTP通信が使えるので問題ないとのこと

Nerves key に暗号化されたカギをパッケージしたものをラズパイなどに装着することで、Nerves Hub と安全に通信できる仕組みなので高いセキュリティを担保している！

ファームウェアをリモートアップデートできる Nerves Hubはトライアルプランがあるのですぐ利用できるみたいです
OSSでコンテナも公開されているみたいなのでAWSに自前の Nerves Hub を建てることもできるようです
OpenCVエンジンと相性がいいらしいので画像処理を行う組込みシステムを開発することもできるみたいです！（ジャスティンは自宅の家庭菜園で使っているそう）
夢が広がりますね！！

## 19:35 ~ 19:45 【「ElixirでIoT」が描いている未来予想図 ～Nerves PJを受けて～】 「高瀬 英希」

Nerves トレーニング用のデバイスを開発したとのこと！
そしてNervesの実現する未来とご自身の研究計画について、述べていただきました
Elixirさえ使えれば全てのIoTシステム開発が行える未来はワクワクしますね！

## 19:45 ~ 19:55 【Elixir、そしてあなたと共に歩む道 ～世界へ進出し、産業を変革する3年間～】 fukuoka.exオーガナイザ 「森 正和」
最後にこの会を支えてくれた人々にお礼を述べつつこの会を締めくくりました
12年前の世界を振り返りつつ、４倍速で進むfukuoka.exを踏まえて、次の３年を一緒に作りましょうというメッセージを述べていただきました
とてもエモいフィナーレで感動しました・・・！！

## 19:55 ~ 20:00 【閉会のパターンマッチ、懇親会のご案内、天守閣での写真撮影】 「古賀 祥造」
最後は拍手で締めくくられました！

# 懇親会 @小倉城 海外 Elixir エンジニア、都心・各地 Elixir プレイヤーと共に
主催のpiacereさんを始め、みなさん大騒ぎ！
プレッシャーから解放されたせいか、piacereさんが普段より３倍くらいテンション高かったです笑

懇親会では[Justin Schneck](https://twitter.com/mobileoverlord)と（拙い英語ですが）お話しさせていただきました
Justinは本当に紳士で成熟した人で、話していてとても楽しかったです！（これだけでも参加した価値があった）

さて、印象的だった話が2つ
まず **「NervesはWebアプリケーションエンジニアを組込みシステム開発の世界に連れて行くことを目指している」** （要約）というようなお話がありました
基調講演を聞いて、確かにNervesのエコシステムはWebアプリケーション開発と同じフローで行うことができると感じていました
これは意図してやっているそうで、PhoenixのChannelを通じ、WebエンジニアがIoTや組込みの世界に来て欲しいとのこと！Elixirさえ書ければWebだけじゃなく組込み開発のチャンスも得られる未来が見えてきますね！

次にコミュニティについて **「日本のElixirコミュニティの結びつきはすごい！USでこの人数を集めるには色んな人に声をかけなければならないが、日本ではたった一人に声をかければいい」** とのこと（その一人はpiacereさんか山崎先生か高瀬先生のいずれかですね笑）
僕もfukuoka.exで何かしら貢献していきたいですね！

# 最後に
主催のpiacereさんを始めとした運営の皆様、本当にありがとうございました！
初の日本での Elixir Conf を多様で情熱的なメンバーと行えたのは本当に素敵なことだなと思います！
僕も鎌倉のプレイヤーとしてちょっとずつ活動していきたいですね！

直近では[9月に行われる技術書典](https://techbookfest.org/event/tbf07)でカヤック合同誌の１テーマとして「たのしいElixir」と題してElixirの入門書を書きました（25ページくらい頑張って書いた笑）
是非遊びに来てください！