Nerves大好きな僕が2021年にしたこと

前日は @32hiro の「[オレオレハード＋Nervesの設計モデルを考えて実装したよ！](https://qiita.com/32hero/items/58c9d7d37786cb1fcd43)」でした！

---

怒涛の勢いで2021年が終わろうとしています。みなさま、いかがお過ごしでしょうか？
僕はPCの前ではありますが、忙しく駆けずり回っております。

去年のNervesアドベントカレンダーでは、「[なぜ僕はNervesに期待するのか](https://qiita.com/pojiro/items/99a60dc8a4427b79ddc7)」という記事を書きました。
背伸びをして書いた記事です💦

2021年は、その期待するNervesに対し、ただ期待をするだけでなく、以下の活動をしてきました。

* 活用する
* コントリビュートする
* 布教（Nervesいいぜ！と紹介）する

本記事ではその活動について書いてみます。

---

# 時系列できごと

以下のことをしてきました。

* 01月 
    * 第3回 FA設備技術勉強会オンライン(1/16)、「[出張の多い現場エンジニアをサポートするデバイスの開発](https://speakerdeck.com/pojiro/chu-zhang-falseduo-ixian-chang-enziniawosapotosurudebaisufalsekai-fa)」を発表
* 04月 
    * [nerves_hub_web](https://github.com/nerves-hub/nerves_hub_web)の動向調査・研究開始
* 05月
    * [nerves_hub_web](https://github.com/nerves-hub/nerves_hub_web)を自身でホストする方針決定（5/3）
    * [横河電機製汎用OS対応CPUモジュール, F3RP70](https://www.yokogawa.co.jp/solutions/products-platforms/control-system/real-time-os-controller/rtos-cpu/rtos-osfree-cpu/)へのNerves移植チャレンジ（5/10に**成功**）
        * リポジトリ：https://github.com/pojiro/nerves_system_f3rp70
        * Qiita記事：[産業用堅牢ハードでElixir：e-RT3にNervesポーティング](https://qiita.com/pojiro/items/81f3aafb77eed47f3baa)
        * 移植過程で見つけたBuildrootの改良点の[PR](https://git.buildroot.net/buildroot/commit/?id=f46e13f05fa04a180a416876cf1dd4252dd841ad)作成(5/19にマージ)
* 06月
    * [nerves_hub_web](https://github.com/nerves-hub/nerves_hub_web)を自身でホスト開始
    * FA設備技術勉強会 in ROBOMECH(6/6)で「[ラダーを使わないコントローラ](https://speakerdeck.com/pojiro/radawoshi-wanaikontorora)」を発表
* 07月
    * 日本初Nerves搭載製品 「[Pocket LANcher](https://www.pocket-lancher.com/)」の提供開始
* 09月
    * [SWEST23](https://swest.toppers.jp/SWEST23/program/)(9/2,3)で、「[【NervesJPプレゼンツ】SBCの使い方の新しいカタチ](https://swest.toppers.jp/SWEST23/program/s2b.html#s2)」の講師を担当
    * 第6回FA設備技術勉強会(9/4)で、「[出張の多い現場エンジニアをサポートするデバイス](https://speakerdeck.com/pojiro/chu-zhang-falseduo-ixian-chang-enziniawosapotosurudebaisu)」を発表
* 12月
    * WWEST(12/18,19)で、@takasehideki の「ハイブリッドなNervesハンズオン」をサポート

この時系列をふりかえりつつ、書いていきます。


# 活用する

* Nervesを移植
* Nervesを使った製品をリリース

しました。いずれもNervesの経験値が上がりましたし、やはりNervesはイケる！の思いを強くしました。



## Nervesの移植

半導体製造ラインで使用される横河電機製の産業用堅牢ハードへ移植するというアイデアを @myasu が持ってきてくれました。
情報共有し、調査・作業を進めることで移植することができました。



今は nerves_system_f3rp70 としてメンテナンスしています。（メーカー様から写真をいただくことができ、リポジトリトップに表示しています。

https://github.com/pojiro/nerves_system_f3rp70

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369713/4e00b507-f6fd-f553-ab5a-c42194c19ec9.png)

以下が表示されたときはとても嬉しかったです！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369713/d8235f9d-792c-288e-4b14-82f6d97beb93.png)


移植方法の記事も書きました。

日本語

https://qiita.com/pojiro/items/81f3aafb77eed47f3baa

英語

https://dev.to/pojiro/elixir-on-industrial-hardware-porting-nerves-to-e-rt3-7k1

移植したマシンのFAでの活用アイデアはFA設備技術勉強会で「[ラダーを使わないコントローラ](https://speakerdeck.com/pojiro/radawoshi-wanaikontorora)」として発表しました。

https://speakerdeck.com/pojiro/radawoshi-wanaikontorora

この移植経験により、（複雑な構成でなければ）Nervesを移植できるという自信がつきました。今後の活用にいきそうです。

ちなみに、日本で一番最初にNervesを移植したのは残念ながら僕ではなく、観測では [@xoxyuxu](https://twitter.com/xoxyuxu) さんです。（僕より一年くらい早かったと思います。

### ちょっと余談

移植の過程で[Buildroot](https://buildroot.org/)を学び、PRを一つ出すことができました。この経験はとても新鮮で学びが多かったです。

Buildrootはメーリングリストとパッチにより開発が進められているプロジェクトでPRを出すのも一苦労だったのですが、メールのやり取りの中で「Buildrootのコードを良いものにする」というメンテナー[^1]の強い意思（プロフェッショナリズム）を感じました。

メンテナーかくあるべきのようなものを見た気がします。僕もそうなろう、精進しよう、と思うすごい機会でした。

[^1]: 対応してくださったBuildrootのメンテナーは Yann さん、超かっこいい、心の中の師匠です。


## Nervesを使った製品のリリース

Pocket LANcherという製品をリリースしました。
製造現場等に出張の多いエンジニアをサポートするVPNボックスをNervesを使って開発しました。
（何ができるか等については以下のサイトに記載していますので、ぜひ見てみてください！

https://www.pocket-lancher.com/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369713/1355c235-7775-3550-c4cf-7a576797de50.png)


製品のために、nerves_hub_web[^2]も自身でホストしており、ユーザーはnerves_hub_webを介しファームウェアをアップデートすることができます。（製品基板には[nerves_key](https://github.com/nerves-hub/nerves_key)を組み付けています。

https://github.com/nerves-hub/nerves_hub_web

（以下はユーザーは見ることがないPocket LANcherのコンソールです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369713/161bda97-2833-ed3c-1b96-841546fe6230.png)



[^2]: nerves_hub_webの体験版サービスである、 https://www.nerves-hub.org/ はクローズが予定されており、ジャスティンがいる [Very](https://www.verypossible.com/)社 により 別のサービスとして生まれ変わる予定です。コードベースはnerves_hub_webとは分かれるようなので、nerves_hub_webがどのようにメンテナンスされていくかは分かりません。


# コントリビュートする

「[なぜ僕はNervesに期待するのか](https://qiita.com/pojiro/items/99a60dc8a4427b79ddc7)」で触れた

https://qiita.com/pojiro/items/99a60dc8a4427b79ddc7

> もしNervesに興味をもって使うようになったらフリーライダーにならないで欲しい、時間かお金でコントリビュートして欲しい。

は自身はどうであったかを振り返ってみます。


## 時間

2021年に投げてマージされたNervesに関わるPRを数えてみました。
どれも小粒のPRで申し訳ないですが、合計10個でした。

* [nerves-time/nerves_time_zones](https://github.com/nerves-time/nerves_time_zones) 1
* [nerves-project/nerves_system_br](https://github.com/nerves-project/nerves_system_br) 2
* [nerves-networking/vintage_net_wifi](https://github.com/nerves-networking/vintage_net_wifi) 1
* [nerves-hub/nerves_hub_web](https://github.com/nerves-hub/nerves_hub_web/graphs/contributors) 6


## お金

> 僕は今 5$/月 のBackerでNervesでお金を稼いで将来的にはSponsorになりたいと思ってる

去年同様、Open Collective のNerves ProjectのBackerをしています。目指せSponsor！の思いも変わりません！！💪

https://opencollective.com/nerves-project

# Nervesいいぜ！を紹介する

2021年の紹介の場は、「[FA設備技術勉強会](https://fa-study.connpass.com/)」と組み込みの勉強会「[SWEST](https://swest.toppers.jp/)」でした。

https://fa-study.connpass.com/

https://swest.toppers.jp/

1. Nervesを移植したF3RP70を使った産業用コントローラのアイデア
2. Nervesを使ったIoTのアイデア

で Nervesいいぜ！を紹介しました。

アイデアに対する反応はすごく良かったと思うのですが、実際に投入されるには敷居があるように感じました。

2021年は、「組み込みやFAよりの人」への紹介になったので、来年以降は「Webよりの人」への紹介もできたら、また「違った反応が得られるかも」と書きながら思っています。

以下はWWESTの集まりで、 tweet が @myasu で一枚目の写真に @takasehideki と 僕 @pojiro が写っています。

https://twitter.com/etcinitd/status/1472363957881286662

WWESTでは初日にNervesハンズオンがオンライン・オフラインのハイブリッドで成り立つかを実際にやることで検証しました。
@takasehideki とは初めてオフラインでお会いすることができ、Nervesやっていくぜ！の気持ちがまた強くなりました！！


# 2022年に向けて

最近、にわとりーたまごサイクルを達成したものの強さをふんわりと思うようになりました。
どういうことかというと、すごく雑なんですが、

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369713/10edb1e0-aeef-48c8-fdd3-4d08a81a92a0.png)


* Joseやfrankのような情熱と技術を持った起点となる人がいて
* その情熱や技術に影響を受けた日本なら @piacerex や @takasehideki がいて（他にもいっぱいいるけど挙げきれないから:pray:）
* さらにその人たちから影響を受けた人（僕のような）がいて

その人たちの貢献が輪っかになることができるとそれはなかなか止まらない輪になるのではないかなと思っています。

この輪はすでにできていると思いますが、大きな輪っかの中に小さな輪っかが幾重にもあるだろうとも思うので、そのどこか一部を担い　pay forward -> pay forward -> pay forward が 最終的に pay back として戻る輪の一部に、自身もなれたらいいなと思っています。

なので、ElixirとNervesでお金を稼ぎ・時間を捻出し、ElixirとNervesにお金と時間を還元するを目指したいと思います。※もっと時間、コードを書くこと、でコントリビュートできるようになりたいです。

2021年は「[苦節二年の時を経て職業錬金術師になれた話](https://qiita.com/pojiro/items/e4a724934feae93180b0)」に書いたように

https://qiita.com/pojiro/items/e4a724934feae93180b0

Elixirでお金を稼ぐの一歩を踏み出すことができました。

また、2021年の活動により、**2022年はNerves開発のお仕事が決まっています**🎉🎉🎉

活動をしてきたこともありますが、幸運により功を奏したとおもっています。
以下は、ElixirもNervesも仕事が決まっていない時に作成した、僕、Tombo Worksの名刺の左半分です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/369713/9ee70931-14e2-063c-a4e5-3226c599fcf8.png)

2022年はPoweredされるだけでなく、コントリビュートすることを意識してやっていきたいと思います💪💪💪

2022年もElixirとNervesやっていきます！やっていきましょう！！