Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
『推し』で仕事をする
Search
pojiro
May 18, 2022
Technology
1
100
『推し』で仕事をする
pojiro
May 18, 2022
Tweet
Share
More Decks by pojiro
See All by pojiro
分野に潜むツールの紹介
pojiro
1
450
Raspberry Pi Mouse を Nerves で動かしてみた
pojiro
0
1.1k
Raspberry Pi で試す 組み込みLinux⼊⾨ Nerves の場合
pojiro
2
340
おいでよ! Nerves JP!
pojiro
1
210
描画ライブラリScenic紹介
pojiro
0
110
Circuits.GPIOはいかにテストされているか
pojiro
0
71
Nerves tips, /bin/sh & nerves_heart
pojiro
0
27
Elixir/NervesでどこまでできるのIoT?
pojiro
1
270
OSSを全面利用して商用プロダクトを作る
pojiro
2
900
Other Decks in Technology
See All in Technology
小規模に始めるデータメッシュとデータガバナンスの実践
kimujun
3
600
コンテナのトラブルシューティング目線から AWS SAW についてしゃべってみる
kazzpapa3
1
100
WINTICKETアプリで実現した高可用性と高速リリースを支えるエコシステム / winticket-eco-system
cyberagentdevelopers
PRO
1
190
Vueで Webコンポーネントを作って Reactで使う / 20241030-cloudsign-vuefes_after_night
bengo4com
4
2.5k
カメラを用いた店内計測におけるオプトインの仕組みの実現 / ai-optin-camera
cyberagentdevelopers
PRO
1
120
20241031_AWS_生成AIハッカソン_GenMuck
tsumita
0
110
生成AIと知識グラフの相互利用に基づく文書解析
koujikozaki
1
150
来年もre:Invent2024 に行きたいあなたへ - “集中”と“つながり”で楽しむ -
ny7760
0
480
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
6
1.1k
[AWS JAPAN 生成AIハッカソン] Dialog の紹介
yoshimi0227
0
150
グローバル展開を見据えたサービスにおける機械翻訳プラクティス / dp-ai-translating
cyberagentdevelopers
PRO
1
150
「視座」の上げ方が成人発達理論にわかりやすくまとまってた / think_ perspective_hidden_dimensions
shuzon
2
6.1k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.2k
The World Runs on Bad Software
bkeepers
PRO
65
11k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
150
Building an army of robots
kneath
302
42k
Designing for humans not robots
tammielis
249
25k
Happy Clients
brianwarren
97
6.7k
Practical Orchestrator
shlominoach
186
10k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
Transcript
『推し』で仕事をする ElixirImp#20Elixir生誕10周年で新装!Elixirお仕事2022春 2022/05/18
自己紹介 • twitter: pojiro3 • web: https://www.tombo-works.com
経歴 エンジンベンチSE 出向 シャシダイ開発管理 A社 埼玉県 2010/04 - 2014/03 T社
豊田市 2014/04 - 2017/03 http://www.orientec.co.jp/products/ S社 名古屋市 2017/03 - 2019/10 組み込みLinux屋さん プログラマー Tombo Works 岡崎市 2020/06-現在 エンジニア
『推し』is Elixir & Nerves !!
『推し』, Elixir & Nerves, で仕事する 2019年後半から Elixir/Nerves を学び始め、 • 2021年後半から
Phoenix での SaaS開発 ◦ 株式会社DigiDock Consulting • 2022年前半に Nerves のポーティング・ライブラリ(の土台)開発 ◦ さくらインターネット株式会社 として, 『推し』, Elixir & Nerves, で仕事する ことができました!感謝!
今日話すこと • どうやってElixir, Phoenix, Nervesを学習したか • どんな活動が仕事につながったか 私個人のケースになりますが、紹介してみようと思います。
『推し』で仕事するまでにやってきたこと 2022 2021 2020 Pocket LANcher の開発, 20/7-21/7 Nervesポーティング, 21/5
Phoenix本, 20/9 技術書典 9 Phoenix開発 Nerves開発 プログラミングElixir 19/7 Programming Phoenix 19/11 Qiita 学習output 19/11-20/3 NervesJP に参加開始 19/12 fukuoka.ex に参加開始 19/10 TomboWorks 20/6-
2年の学習期間, 19/8 - 21/8 2022 2021 2020 Pocket LANcher の開発,
20/7-21/7 Nervesポーティング, 21/5 Phoenix本, 20/9 技術書典 9 Phoenix開発, 21/9開始 Nerves開発 プログラミングElixir 19/7/28 Programming Phoenix 19/11 Qiita 学習output 19/11-20/3 NervesJP に参加開始 19/12 fukuoka.ex に参加開始 19/10
Enumを通してElixirの基礎を学ぶ • map/reduce に慣れることが最初の課題 ◦ Enumモジュールを自分なりに実装するというトレーニング https://github.com/pojiro/oreore_implementation_of _myenum ◦ ※実際のEnumモジュールは、マクロやErlangを使ってい
ますが、Elixirだけで組んでいます
Phoenixを学ぶ • WebフレームワークのPhoenixを学ぶのがダイブ辛かった ◦ 分かってしまえば、リクエストからレスポンスまでをconn を通して扱うデータフローのフレームワーク ◦ ですが、、Webフレームワークをちゃんと学ぶのははじめ てで、Phoenixのルールを、一人かつ英語で学ぶのはだ いぶ辛かった💦
• その学習した内容をまとめて書いたのが 「データフローで学ぶPhoenix」 本としては拙い部分が多いのですが、Phoenixのデータの流れ を学ぶことができます。 ◦ いまでもたまに売れます。700円、お買い得!!
Nervesを学ぶ 組み込みLinux を Elixir でできるフレームワーク • 作って学ぶNerves、BBBでCO2計測 ◦ 最初は懐疑的だったが、さわるほどに一推しに! ◦
Linuxのカスタマイズをしない限り、組み込みLinux であることを意識せずに Elixir の Application 開 発ができるのが超良いです • コミュニティ, Nerves JP, に参加して継続的に学びました
2年の学習期間, 19/8 - 21/8 2022 2021 2020 Pocket LANcher の開発,
20/7-21/7 Nervesポーティング, 21/5 Phoenix本, 20/9 技術書典 9 Phoenix開発, 21/9開始 Nerves開発 プログラミングElixir 19/7/28 Programming Phoenix 19/11 Qiita 学習output 19/11-20/3 NervesJP に参加開始 19/12 fukuoka.ex に参加開始 19/10
装置例) PLC HTTP(S)/SSH サーバー TCPアプリ 内蔵の機器 装置 LAN ケーブル モバイル
WiFi 192.168.1.1 192.168.1.10 PC What’s Pocket LANcher 社内 現場 装置はPCでもPLCでも、 LANケーブルでつなぐことができれば 同一LANにいるものとして扱えます つまり 社内PCと現場装置をつなげられます! OSSに支えられる特徴 • レイヤー2のVPNを張ることができるので、 Ethernetのパケット転送ができる • ファームウェアの配信機能があり、 PLBのバージョンアップができる
Pocket LANcherのシステム構成 装置 LAN ケーブル モバイル WiFi 192.168.1.1 192.168.1.10 PC
社内 現場 Nerves Hub Web VPN Server
継続と運で点と点がつながって仕事へ 2022 2021 2020 Pocket LANcher の開発, 20/7-21/7 Nervesポーティング, 21/5
Phoenix本, 20/9 技術書典 9 Phoenix開発, 21/9開始 Nerves開発 プログラミングElixir 19/7/28 Programming Phoenix 19/11 Qiita 学習output 19/11-20/3 NervesJP に参加開始 19/12 fukuoka.ex に参加開始 19/10 NervesJPで myasu と知り合い 可能に!! 20/6頃のノートに piacereさんと mokichiさんから チーム開発を学ぶ という希望を書い てる
『推し』で仕事する、につながるポイントは何であったか? • 身も蓋もないけど、今回は運の要素がすごく大きい! ◦ Phoenix開発:仕事の募集がタイミングよくかかり、応募できた ◦ Nerves開発:声をかけてもらえた 共通点は • 人とのつながりが仕事につながった
◦ コミュニティに参加する ◦ 自分が何者であるか何が提供できるかを分かりやすくする ▪ 学んだこと・作ったものを記事にする/発表する • 継続的に時間を集中投下し、下地を作っていた
Nerves in Production • ExiBee & PLB in 小水力発電所 発電所でのNerves,
ExiBeeの活用 は、5/20(fri) NervesJP #25 #kochiex がなんかええもんつくったらしい回 で 紹介されるのでぜひご参加あれ!
他言語の仕事でも、Elixirを絡ませる(無理なく 装置実機 Windows Desktop App PC シミュレータ Windows Desktop App
PC Application Supervisor circuits_uart GenServer シリアル通信 シリアル通信 C#で開発 パターンマッチを使うことで、受信電 文に対する応答を生成するサー バーを楽に作ることができた!! ソフトウェアのリプレースが仕事