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
110
『推し』で仕事をする
pojiro
May 18, 2022
Tweet
Share
More Decks by pojiro
See All by pojiro
分野に潜むツールの紹介
pojiro
1
470
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
28
Elixir/NervesでどこまでできるのIoT?
pojiro
1
280
OSSを全面利用して商用プロダクトを作る
pojiro
2
910
Other Decks in Technology
See All in Technology
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
150
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
元旅行会社の情シス部員が教えるおすすめなre:Inventへの行き方 / What is the most efficient way to re:Invent
naospon
2
340
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
The Rise of LLMOps
asei
7
1.4k
いざ、BSC討伐の旅
nikinusu
2
780
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
AIチャットボット開発への生成AI活用
ryomrt
0
170
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
334
57k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Side Projects
sachag
452
42k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
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#で開発 パターンマッチを使うことで、受信電 文に対する応答を生成するサー バーを楽に作ることができた!! ソフトウェアのリプレースが仕事