ALGYAN x Seeed x NervesJPハンズオン！に向けた開発環境の準備方法 → これからの開発環境についても追記

この記事は[ #NervesJP Advent Calendar 2020 ](https://qiita.com/advent-calendar/2020/nervesjp)の1日目です．
今年も完走目指して，れっつじょいなす！！

[![NCJP_Logo3_V2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/5ef22bb9-f357-778c-1bff-b018cce54948.png)](https://nerves-jp.connpass.com)

# はじめに

どうもこんにちわ
[Nerves](https://nerves-project.org/)とは，関数型言語ElixirにてIoTシステム開発を実現するフレームワークです．
『ElixirでIoT』の世界に革新をもたらします！

詳細な解説は[IoT ALGYANで実施したWebinar](https://algyan.connpass.com/event/180192/)のこちらの資料や動画もご笑覧ください．

- [SlideShare: ElixirでIoT！？ ナウでヤングでcoolなNervesフレームワーク](https://www.slideshare.net/takasehideki/elixiriotcoolnerves-236780506)
- [Webinar動画 on YouTube](https://www.youtube.com/watch?v=UpJ4VewZdRY)


**さぁ皆さん！今すぐにでもNervesやりたくなってきたでしょ！？？**

そんな皆さんにお誂え向きなイベントが<font color="red">**12月27日(日)**</font>に開催されまっした！（参加いただいた皆さま，あざまっした！！

- [IoT ALGYAN主催！ 豪華プレゼント付！Elixir/Nerves(ナーブス)体験ハンズオン！](https://algyan.connpass.com/event/197306/)

IoTを学べる最強コミュニティ[ IoT ALGYAN ](https://algyan.connpass.com/)と，みんなのものづくりのミカタな[ Seeed K.K. ](https://www.seeed.co.jp/)より，ちょっと遅めのクリスマスプレゼント！
ということで，ラズパイ４本体はじめすぐにNerves始められるぜってなアイテムを太っ腹にプレゼントしました！！

ということでこの記事では，こんな素敵なハンズオン企画に参加するための開発環境の準備方法について紹介します．当日の内容を復習したい方／いまから自習したい方も，ぜひに！！

## 更新履歴

- 2020/12/04
    - [fwupのインストール](https://qiita.com/takasehideki/items/79d4ba3f95b1463105f8#fwup%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)を追加
- 2020/12/15
    - <b><font color="red">重要！</font> [dev-containerの更新](https://qiita.com/items/79d4ba3f95b1463105f8#dev-container%E3%81%AE%E6%9B%B4%E6%96%B0)を追加</b>
    - [Docker Desktopのバージョンアップ](https://qiita.com/takasehideki/items/79d4ba3f95b1463105f8#docker-desktop%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)について追記
- 2020/12/27
    - [これからの開発環境](https://qiita.com/takasehideki/items/79d4ba3f95b1463105f8#%E3%81%93%E3%82%8C%E3%81%8B%E3%82%89%E3%81%AE%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83)について追加
    - ハンズオン動画のYouTubeアーカイブへのリンクを掲載

## TL;DR

今回のハンズオンはオンラインなので，皆さんの開発環境を揃えるためにDockerとVisual Studio Code（VS Code）を利用します．WindowsでもmacOSでももちろんLinuxでも大丈夫です．
すでにNerves開発をされている方も，ハンズオン参加時には本環境を整えてください．めちゃ便利です．

作業内容の要点は，次のとおりです．

- [Docker Desktop](https://www.docker.com/products/docker-desktop)をインストール
- [Visual Studio Code](https://code.visualstudio.com/download)をインストール
- VS Code拡張機能 [Remote - Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) をインストール
- 本ハンズオン向けの[dev-container](https://github.com/NervesJP/nerves-algyan-devcontainer)をダウンロードしてきて，そこを "**Remote-Containers: Open Folder in Container...**" として開く．

それではそれぞれの詳細をご紹介します．
分からないところ詰まったところ思わぬエラーが出たら，この記事にコメントいただくか，Twitterにて[ #NervesJP のハッシュタグ ](https://twitter.com/hashtag/nervesjp?f=live)を付けてつぶやいてください．どこからともなくお助けマンが馳せ参じます！！

# Docker Desktopのインストール

2020/12/15 追記：
12月11日にDocker Desktop 3.0.0が正式リリースとなりました．
新しいものはより良いはずです．NervesJPハンズオンでは，アップロード後でも問題ないことを確認済みです．すでにDocker Desktopを導入済みの方は，ぜひアップロードしてください．

## 要件の確認

Dockerを使用するには，PCにいくつかのシステム要件があります．
[公式ページの案内（Windows版）](https://docs.docker.com/docker-for-windows/install/)を参照いただくのが最も正確ですが，代表的なものを挙げます．

- 共通
    - 64-bitのIntel or AMDなプロセッサ
    - 4GB以上のメモリ
- Windows 10 Professional （[公式ページの案内の要件](https://docs.docker.com/docker-for-windows/install/#system-requirements)）
    - 64-bit版
    - [Hyper-Vの有効化](https://docs.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v)
- Windows 10 Home （[公式ページの案内の要件](https://docs.docker.com/docker-for-windows/install-windows-home/#system-requirements)）
    - version 1903以上（May 2020 Updateの適用．詳細は後述）
- macOS
    - 2010以降のハードウェア
    - 10.14（Mojave）以降
    - ArmなM1（Apple Silicon）はムリっす^^;

下記ページも参考になります．

- [Docker Desktop のシステム要件をどうやって確認したらいいの？ | ultra code](https://futureys.tokyo/how-can-i-check-system-requirements-for-docker-desktop/)

### Windows 10 Homeの方へ

最近のアップデートによって，Windows 10 Homeでもトラブル少なく動作するようになりました．ただし，Windows 10 Version 2004 / OS build 19018以上に対応するMay 2020 Updateの適用が必須となります．
これが適用されているかは，【設定 > システム > バージョン情報】で確認してみてください．

Homeの場合:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/d1724216-a726-19e2-ca0e-50595ce573da.png)

Professionalの場合:
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/a2376370-569e-f35b-2bfa-eff29245078b.png)

Windows 10 May 2020 Updateは，お使いのデバイスに応じて，更新のお知らせが順次で通知されるようです．さすがに今となっては皆さんのデバイスにお知らせが来ているかと思いますが， もしかしたら[更新プログラムの確認] にMay 2020 Updateのお知らせがまだ来ていないことがあります．その場合は，この辺りを参考にしてみてください．

- [｢Windows 10 May 2020｣を確実にインストールする3つの方法 | ライフハッカー［日本版］](https://www.lifehacker.jp/2020/06/how-to-install-the-windows-10-may-2020-update-if-its-m.html)

## インストール

それではDocker Desktopをインストールしましょう．
インストーラの入手は下記ページの［Get Docker］から．

- Windowsの方: https://hub.docker.com/editions/community/docker-ce-desktop-windows/
- Macの方: https://hub.docker.com/editions/community/docker-ce-desktop-mac/

Windowsの場合は，インストーラを実行時の下記の画面で，いずれの項目も**チェックを入れたまま**にしてください．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/bd9290e0-23e8-aacf-bcd2-7587df523ede.png)

Winな方もMacな方も，Dockerのインストール後はPCを再起動しましょう．

## (Homeのみ)WSL 2 Linux Kernelのインストール

Homeの方は，再起動後にDockerが実行されてから，下記の画面が表示されることがあります．
（ここでは「Restart」も「Cancel」もまだクリックしないでください）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/6f43bf78-0ad8-b4d4-5019-5cfbffdde5db.png)

この画面が表示された場合は，WSL 2 Linux Kernelをインストールする必要があります．WSL 2自体の導入は不要です．

- [WSL 2 Linux カーネルの更新 | Microsoft Docs](https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel)

「最新の WSL2 Linux カーネル更新プログラム パッケージをダウンロード」のところをクリックしてパッケージをダウンロードして，インストーラを実行してください．
直リンクはコチラ↓
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

WSL 2 Linuxをインストールできたら，先ほどの画面の「Restart」をクリックして（あるいは手作業で），またもういちどPCを再起動しましょう．


# Visual Studio Code

次はIDEなVS Codeのインストールです．

下記からダウンロードしてインストールしてください．

- [Download Visual Studio Code - Mac, Linux, Windows](https://code.visualstudio.com/Download)

## 日本語化パッケージのインストール

VSCodeの初期設定は英語表示で，ぐえっ！となります．やはり日本語でおけとしたいところです．
Webブラウザで下記のページを開いてください．

- [Japanese Language Pack for Visual Studio Code - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=MS-CEINTL.vscode-language-pack-ja)

緑色の【Install】をクリックします．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/b12650b7-a572-640c-1479-216b7f31d5bc.png)

Visual Studio Codeに移動します．そして，下記のような画面が表示されます．
また緑色の【Install】をクリックします．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/94471461-af64-d167-3a87-fc5a5a077f4e.png)

拡張機能のインストールが完了したら，右下に
"In order to use VS Code in Japanese, VS Code needs to restart."
というメッセージが表示されます．
【Restart Now】をクリックし，VS Codeを再起動します．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/5bb7acec-b5a2-6f50-e11b-e8a284adb721.png)

VS Codeが再起動して，無事に表示が日本語になったことが確認できるはずです．

## 拡張機能のインストール

今回のハンズオンでは，VS Codeの拡張機能である"Remote - Containers"を使用します．
devcontainerとは，その名のとおり，開発（development）に使うDockerコンテナ（container）です．VS Codeの拡張機能では，設定用のフォルダ・ファイルを開くだけで，定義されたDockerコンテナを構築して良い感じにフォルダをマウントしたりVSCodeから操作することができるようになります．

先ほどと同じように，Webブラウザで下記のページを開いて，緑色の【Install】を2回クリックして，インストールしていきます．

- [Remote - Containers - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/c5663486-ff6d-e5a4-ecdd-fac20807f512.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/384498d4-703e-af7f-3d45-63ec7d40eec5.png)

インストールできたら，左下のところに緑で<b><font color="green"> >< </font></b>なマークが表示されます．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/74c9bdf5-57be-8adf-f42f-23c31e2724c1.png)


# 開発環境の構築！

今回のハンズオンはオンラインなので，皆さんの環境を揃えるために，GitHubに用意してある開発環境を利用します．

- [NervesJP/nerves-algyan-devcontainer: ALGYANハンズオンセミナ＠2020/12/27のNerves開発環境 (VS Code dev-container)]( https://github.com/NervesJP/nerves-algyan-devcontainer)

## ディレクトリ一式のダウンロード

Gitに慣れている方は，下記のように`clone`してください．

```shell-session
git clone https://github.com/NervesJP/nerves-algyan-devcontainer
```

そうでない方は，次のURLから環境をまるごと直接ダウンロードしてきてください．
https://github.com/NervesJP/nerves-algyan-devcontainer/archive/main.zip

## 開発環境の展開

VS Codeを開いて，左下の緑の<b><font color="green"> >< </font></b>なところをクリックしてください．
すると上部にコマンドパレットという窓が開きますので，
**Remote-Containers: Open Folder in Container...**
を選択してください．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/f0f2c410-dd31-dce4-e266-df293d8541b1.png)

`git clone`してきたディレクトリである `nerves-algyan-devcontainer/` を選択してください．
直接ダウンロードしてきた方は，アーカイブを解凍して展開したディレクトリ `nerves-algyan-devcontainer-main/` を選択してください． 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/ca57b07f-8dae-4565-a693-252264c92a60.png)

ビルド済みのDockerイメージをダウンロード（pull）してきて，よしなに展開されます．PCスペックとネットワーク環境によりますが，10分ほど掛かることがあります．

うまくいかない？場合は，Docker Desktopのアプリが起動していないことが考えられます．
Windowsだと，デスクトップ右下のタスクトレイにこんな感じのクジラのアイコンが表示されているか確認してください（Macだとメニューバーにいてます）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/a3100d08-4068-e25f-9ef4-f6ecbc0c0a99.png)

ちゃんと進んでいるか気になる方は， 右下の青字の "<font color="blue">Starting Dev Container (show log)</font>" をクリックすると，進捗のログが表示できます．

ということで，こんな感じに出来上がりっ♪
左下の緑色なところが
<b><font color="green"> >< Dev Container: NCJP-ALGYAN_v2</font></b>
な表示になっていることを確認してください．
（画像は途中で "<font color="blue">Starting Dev Container (show log)</font>" をクリックして進捗を表示した場合のものです）

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/d55276d5-044c-d6e2-2ff4-b89d2999b3a7.png)

ここで，左下の緑色なところが
<b><font color="green"> >< Dev Container: NervesJP-ALGYAN</font></b>
な表示になっている場合（`NCJP-ALGYAN_v2`ではなく`NervesJP-ALGYAN`になっている場合）は，[dev-containerの更新](https://qiita.com/items/79d4ba3f95b1463105f8#dev-container%E3%81%AE%E6%9B%B4%E6%96%B0)が必要です．

## fwupのインストール

fwupとは，Nervesのファームウェアの構築とmicroSDカードへの書き込みのためのユーティリティです．
https://github.com/fhunleth/fwup

今回のハンズオンでは，ファームウェア書込み済みのmicroSDカードを参加者の皆さんに配布しますので，使用することはありません．ですが，今後のNerves開発を続けていくためにも，ホストPCにインストールしておきましょう．

### Windowsの場合

[Chocolatery](https://chocolatey.org/)を使われている方は，下記でインストールできます．

```shell-session
choco install fwup
```

そうでない方は，下記からバイナリを直接ダウンロードして，ダウンロード先に[Path環境変数を設定](https://www.atmarkit.co.jp/ait/articles/1805/11/news035.html)してください．
https://github.com/fhunleth/fwup/releases/download/v1.8.3/fwup.exe

### macOSの場合

[brew](https://brew.sh/index_ja)でインストールできます．

```shell-session
brew install fwup
```

### Linuxの場合

プラットフォームに合わせて，パッケージのダウンロードとインストールを行ってください．
https://github.com/fhunleth/fwup#installing



## dev-containerの更新

2020/12/15 22:40にdev-containerをアップデートしました．その更新作業を説明します．
特にこの記事の公開後すぐに開発環境を整えられた方，本当に申し訳ないですm(_ _)m
ただし，このアップデートはbug fixではありませんので，更新しなくてもハンズオンの内容自体には支障はありません．

左下の緑色なところが
<b><font color="green"> >< Dev Container: NervesJP-ALGYAN</font></b>
な表示（下図参照）になっている方は，dev-containerの更新を行ってください．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/3ed3464d-c637-b8f8-3e9f-336f7825dc95.png)

更新方法です．
Gitに慣れている方は，下記のようにcloneしてきたディレクトリに移動して，`git pull` をしてください（別のところに `git clone` するのでも構いません）

```shell-session
cd <cloneしてきたディレクトリ>/nerves-algyan-devcontainer
git pull
```

そうでない方は，次のURLから環境を，改めてまるごと直接ダウンロードしてきてください．
（元々のディレクトリ環境は削除して構いません）
https://github.com/NervesJP/nerves-algyan-devcontainer/archive/main.zip

その後，VS Codeのコマンドパレットから，
**Remote-Containers: Open Folder in Container...** 
でディレクトリを選択し直してください．

ディレクトリ位置が変わっていない方（`git pull`された方）は，
**Remote-Containers: Rebuild Container**
でも更新できます．


## 注意事項

今回の開発環境は幾つかcheatをしています．
ちゃんとまともな開発環境の準備方法はハンズオン当日にもご案内しますが，メモ書きとしても残しておきます．


- NervesではファームウェアのmicroSDカードへの書き込みを，少なくとも最初の１回は行う必要があります．これはDocker開発環境ではいかんともできません．ということで今回は,,, ファームウェア書き込み済み！のmicroSDカードを皆さまにお届けします．
- Nervesの開発では `${MIX_TARGET}` という変数がかなり大事で，これによって開発対象とするIoTボードの品種を指定します．今回はラズパイ4をプレゼント！ということで， `~/.bashrc` にて `rpi4` として固定化しています．
- Nervesでのラズパイとのネットワーク通信では，SSH鍵による認証を行います．この公開鍵／秘密鍵は，なんと今回はGitHubに晒していて，皆さん同じものを使うように共有していますｗｗ もちろんtoo dangerousなので，良い子はマネしないでください^^;
- 当日のネットワーク負荷を削減するために，幾つかの設定ファイルやアーカイブをDockerイメージ内に取り込んでいます．ちょっとイメージのサイズが大きくなっていますが，当日は楽になりますのでご容赦くださいませ．

# これからの開発環境

ハンズオンおつかれさまでした！！（という想定で追加した項目です^^;
前記のとおり，この記事で解説している開発環境は，ハンズオン向けに特化して仕込みをしています．特にSSH鍵を皆さんで共有しているのは，セキュリティ上のリスクがあります．ご自身で作成されたSSH鍵を利用していただく必要があります．

ということでこの項目では，これからもNerves開発やっていくぞっ！という方向けに案内します．

## dev-containerを使用する開発環境

コチラに詳細をまとめています．

- [ElixirでIoT#4.1.2：[使い方篇] Docker(とVS Code)だけ！でNerves開発環境を整備する - Qiita](https://qiita.com/takasehideki/items/27005ba9c0d9eb693ea9)

今回の記事でDocker DesktopとVS Code，あとfwupは導入済みのはずです．
差分は下記のとおりです．

- dev-containerのディレクトリは，コチラをご利用ください．<br>
https://github.com/NervesJP/nerves-devcontainer
- 初回の起動後に，SSH鍵をご自身で作成してください．<br>
`ssh-keygen -t rsa -N "" -f .ssh/id_rsa`
- Nervesの開発ターゲットを環境変数 `MIX_TARGET` というもので指定する必要があります．デフォルトは `rpi3` にしていますので，必要に応じて変更してください．<br>
`echo "export MIX_TARGET=rpi4" >> ~/.bashrc`

## WSL 2のみを使用する開発環境

dev-containerは，DockerコンテナとホストPCのファイルシステムをbindします．この性能があまりよろしくないため，Nervesのビルド等に時間が掛かります．頻繁に開発をやっていきたい！という場合は，Windowsの方は，WSL 2のShellで開発環境を構築するのをオススメします．

コチラの記事で詳細を紹介しております．

- [ElixirでIoT#4.1.1：WSL 2でNerves開発環境を整備する - Qiita](https://qiita.com/takasehideki/items/b8ea8b3455c70398178a)

ちょっと手間が多く詰まることがあるかもしれません．
分からないところ詰まったところ思わぬエラーが出たら，この記事にコメントいただくか，Twitterにて[ #NervesJP のハッシュタグ ](https://twitter.com/hashtag/nervesjp?f=live)を付けてつぶやいてください．
やっぱりどこからともなく，お助けマンが馳せ参じます！！ :sunglasses:  

## macOS/Linuxの方向けの開発環境

macOSやLinuxをホストPCとして使用されている方は，コチラの記事をご参照ください．

- [ElixirでIoT#4.1：Nerves開発環境の準備 - Qiita](https://qiita.com/takasehideki/items/88dda57758051d45fcf9)

## ファームウェアの作成方法

プレゼント枠の皆さまには，ファームウェア書込み済みのmicroSDカードをお送りしました．
最初からやり直したい！自分のSSH鍵で準備してやるぞっ！という方は，下記のように行ってください．

```shell-session
$ git clone https://github.com/NervesJP/nervesjp_basis
$ cd nervesjp_basis
$ git checkout v1.0
$ export MIX_TARGET=rpi4
$ mix deps.get
$ mix firmware
```

`_build/rpi4_dev/nerves/images/nervesjp_basis.fw` というのがハンズオンのスタートラインとなっているNervesファームウェアです．こちらをmicroSDカードに書き込みます．

dev-containerの方は，ホストPC上で，`fwup`を実行します．

```shell-session
$ fwup _build/rpi4_dev/nerves/images/nervesjp_basis.fw
```

WSL 2やmacOSでネイティブに環境構築された方は，このとおりです:fire: 

```shell-session
$ mix burn
```

## おまけ：ハンズオンで使用する機材

今回のハンズオンで使用している機材を紹介しておきます．

- RasPi4 4GBモデル
- [Grove Base HAT for RasPi](https://jp.seeedstudio.com/Grove-Base-Hat-for-Raspberry-Pi.html)
- [Grove Button(P)](https://wiki.seeedstudio.com/Grove-Button/)
- [Grove Green LED](https://wiki.seeedstudio.com/Grove-Red_LED/)
- [Grove AHT20 I2C (温湿度センサ)](https://wiki.seeedstudio.com/Grove-AHT20-I2C-Industrial-Grade-Temperature%26Humidity-Sensor/)
- AC-DCアダプタ（Type-C, 5V3A）
- microSDカード（16GBくらいあればよい）

どうでしょうか皆さん？いろいろNervesでつくりたくなってきていませんか？？

みんなでワイワイやっていきましょう．NervesJPにぜひご参加ください！！

[![NCJP_Logo3_V2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/5ef22bb9-f357-778c-1bff-b018cce54948.png)](https://nerves-jp.connpass.com)

この内容を自習してみた！とか，違うGroveを使ってなんか作ってみた！とか，ワイガヤしませんか？？
2021年の１発めは"新年LT回"です．よろしくどうぞっ！！
https://nerves-jp.connpass.com/event/199455/

[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/fe1ecd17-3a05-5e92-f04a-4043d3ea6854.png)](https://nerves-jp.connpass.com/event/199455/)

<font color="purple">$\huge{Nervesならできるもん！}$</font>

れっつじょいなす！！


# おわりに

[ALGYAN x Seeed x NervesJPな体験ハンズオン](https://algyan.connpass.com/event/197306/)，
NervesJPのメンバ一同でもりもりっと鋭意準備中です！！ :snowflake::snowflake::snowflake::snowflake:
→ そして12/28(日)に成功裏に開催！あざまっした！！

[![ncjp_members.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/b97ece53-72e7-11b3-de6b-1a3d1534e487.png)](https://algyan.connpass.com/event/197306/)


[![phx_sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/b1743949-1e37-e027-aee6-796f95b52644.png)](https://drive.google.com/file/d/1u4hgGZ3ob_Hk7-G848i9NWNH99I11mFG/view?usp=sharing)


動画アーカイブが公開されていますので，機材を揃えて自習復習にぜひとも！
https://www.youtube.com/watch?v=A1AiQZR7UFQ

[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240349/a0cd5219-ba2a-616b-e4c1-fe1c51aef302.png)](https://www.youtube.com/watch?v=A1AiQZR7UFQ)



# 参考ページ

- [WindowsでNervesやるならWSL2+Docker+VSCode](https://qiita.com/matsujirushi/items/f0bde41400e45e309df2)
- [最新のアップデート｢Windows 10 May 2020｣を確実にインストールする3つの方法](https://www.lifehacker.jp/2020/06/how-to-install-the-windows-10-may-2020-update-if-its-m.html)
- [Visual Studio Codeで日本語化する方法[Windows] - Qiita]( https://qiita.com/nanamesincos/items/5c48ff88a4eeef0a8631)

---

[ #NervesJP Advent Calendar 2020 ](https://qiita.com/advent-calendar/2020/nervesjp)の2日目は，@kentaro さんの[「ウェブチカでElixir/Nervesに入門する（2020年12月版)」](https://qiita.com/kentaro/items/e8df79aa93b9fe9a567e)です．
ものっそい丁寧な解説記事！ これからNerves始める方もすでに慣れてる方も，この記事を写経するだけでめっちゃんこいろいろ学べます！！