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
480
Raspberry Pi Mouse を Nerves で動かしてみた
pojiro
0
1.1k
Raspberry Pi で試す 組み込みLinux⼊⾨ Nerves の場合
pojiro
2
360
おいでよ! Nerves JP!
pojiro
1
220
描画ライブラリScenic紹介
pojiro
0
120
Circuits.GPIOはいかにテストされているか
pojiro
0
72
Nerves tips, /bin/sh & nerves_heart
pojiro
0
28
Elixir/NervesでどこまでできるのIoT?
pojiro
1
300
OSSを全面利用して商用プロダクトを作る
pojiro
2
930
Other Decks in Technology
See All in Technology
大幅アップデートされたRagas v0.2をキャッチアップ
os1ma
2
520
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
370
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.2k
DevOps視点でAWS re:invent2024の新サービス・アプデを振り返ってみた
oshanqq
0
180
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
生成AIをより賢く エンジニアのための RAG入門 - Oracle AI Jam Session #20
kutsushitaneko
4
220
Wantedly での Datadog 活用事例
bgpat
1
420
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
NW-JAWS #14 re:Invent 2024(予選落ち含)で 発表された推しアップデートについて
nagisa53
0
250
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
130
社内イベント管理システムを1週間でAKSからACAに移行した話し
shingo_kawahara
0
180
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
A Tale of Four Properties
chriscoyier
157
23k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Agile that works and the tools we love
rasmusluckow
328
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Gamification - CAS2011
davidbonilla
80
5.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
28
900
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
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#で開発 パターンマッチを使うことで、受信電 文に対する応答を生成するサー バーを楽に作ることができた!! ソフトウェアのリプレースが仕事