#author("2020-06-13T14:00:35+00:00","default:admin","admin")
#author("2020-06-14T06:56:55+00:00","default:admin","admin")
[[Elixir:https://elixir-lang.jp]]

[[Elixir School:https://elixirschool.com/ja/]]

-[[最速で知る! ElixirプログラミングとErlang/OTPの始め方【第二言語としてのElixir】:https://employment.en-japan.com/engineerhub/entry/2017/06/12/110000]]
-[[挑戦! Elixirによる並行・分散アプリケーションの作り方【第二言語としてのElixir】:https://employment.en-japan.com/engineerhub/entry/2017/06/19/110000]]
-[[今 Erlang を選択すべきなのか:https://medium.com/@voluntas/%E4%BB%8A-erlang-%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%99%E3%81%B9%E3%81%8D%E3%81%AA%E3%81%AE%E3%81%8B-c04293468f5e]]

-[[「Elixir Conf Japan 2017」全セッションレポート ~ 日本での活用事例が増えているElixir/Erlang:https://codezine.jp/article/detail/10071]]
-[[生みの親が語るElixirのこれまでとこれから ―「ElixirConfJapan 2017」参加レポート:http://gihyo.jp/news/report/2017/04/1001]]

-[[次世代プログラミング言語ElixirとElmでCRUD:https://qiita.com/ababup1192/items/e751cd33314c80b93e77]]

-[[プログラミングElixir:https://tatsu-zine.com/books/programming-elixir-ja]]

-[[【Ruby エンジニア必見】Ruby エンジニアが次に学ぶべき Elixir 技術の最新トレンドを解説!:https://press.forkwell.com/entry/2018/05/09/125349]]
-[[日本で Erlang/OTP や Elixir を利用している会社一覧:https://github.com/voluntas/japanese-erlang-elixir-companies]]

-[[RISC-V on FPGA と Elixir で究極のマルチコアシステムを構築しよう!:https://qiita.com/zacky1972/items/05a1f4b340721605bfed]]

-[[Elixir試飲録 (1) – 今、プログラミング言語を選ぶということ: Scala, Go, Elixir:https://ubiteku.oinker.me/2015/12/22/elixir%E8%A9%A6%E9%A3%B2-1-%E4%BB%8A%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%82%92%E9%81%B8%E3%81%B6%E3%81%A8%E3%81%84%E3%81%86%E3%81%93/]]
-[[Elixir試飲録 (2) – カルチャーショックに戸惑う: 並行指向プログラミング:https://ubiteku.oinker.me/2015/12/22/elixir%E8%A9%A6%E9%A3%B2-2-%E3%82%AB%E3%83%AB%E3%83%81%E3%83%A3%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%83%E3%82%AF%E3%81%AB%E6%88%B8%E6%83%91%E3%81%86-%E4%B8%A6%E8%A1%8C%E6%8C%87%E5%90%91%E3%83%97/]]
-[[Elixir試飲録 (3) – マルチコア危機によるパラダイムシフト: オブジェクト指向から並行指向へ:https://ubiteku.oinker.me/2016/01/13/elixir%E8%A9%A6%E9%A3%B2%E9%8C%B2-3-%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B3%E3%82%A2%E5%8D%B1%E6%A9%9F%E3%81%AB%E3%82%88%E3%82%8B%E3%83%91%E3%83%A9%E3%83%80%E3%82%A4%E3%83%A0%E3%82%B7%E3%83%95/]]
-[[Elixir試飲録 (4) – オブジェクト指向と関数型の違い:https://ubiteku.oinker.me/2016/01/14/elixir%E8%A9%A6%E9%A3%B2%E9%8C%B2-4-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A8%E9%96%A2%E6%95%B0%E5%9E%8B%E3%81%AE%E9%81%95%E3%81%84/]]
-[[Elixir試飲録 (5) – Elixir/Phoenixのホットデプロイ完全自動化(2016年1月版):https://ubiteku.oinker.me/2016/02/08/elixir-phoenix-auto-hot-deploy/]]
-[[Elixir試飲録 (6) – exrm で hot upgrade すると static assets のパスが古いバージョンのまま更新されない問題への対処:https://ubiteku.oinker.me/2016/02/15/hot-deployment-static-assets/]]
-[[Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか?:https://ubiteku.oinker.me/2016/08/09/how-do-erlang-microprocesses-work-internally/]]
-[[Elixir/Phoenix と Elm による関数型 Web 開発環境の構築:https://ubiteku.oinker.me/2016/11/28/elixir-phoenix-and-elm/]]
-[[Kubernetes で実現する Phoenix/Elm アプリのホットデプロイ自動化完全詳解(2016年12月版):https://ubiteku.oinker.me/2016/12/05/kubernetes-elixir-phoenix-elm-auto-hot-deploy/]]

*概要 [#gd87c03a]
-Elixirは、José Valim氏によって開発されているプログラミング言語
-ErlangのVM上で動作し、Erlangのモジュールを利用できる
-ErlangのVM上で動作することから、Elixirには次のような特徴が備わっている
--耐障害性
--高可用性
--分散アプリケーションの構築のしやすさ
-Erlangでは「プロセス間のメッセージパッシング」というErlang独自の概念をうまく使うことで、びっくりするくらいあっさりとこれらの特徴を実現している

**メッセージパッシング [#d2afc726]
-[[並行性 - Elixir School:https://elixirschool.com/ja/lessons/advanced/concurrency/]]
-[[Elixirで遠隔PCに侵入#1風「プロセス生成、メッセージパッシング」:https://qiita.com/piacerex/items/96398166f72fc2d921e9]]
-[[スレッドとメッセージパッシング:https://qiita.com/hharu/items/91d667a70f934e6bf7c2]]

**マクロ [#r198a23b]

**プロトコル [#l076c01e]

*環境構築 [#d7fced4f]
-[[ElixirでIoT#4.1:Nerves開発環境の準備(2020年4月版):https://qiita.com/takasehideki/items/88dda57758051d45fcf9]]
-[[Windows環境にElixirをインストールする:https://npnl.hatenablog.jp/entry/2019/12/11/190955?utm_source=feed]]
-[[Elixir をインストール:https://elixir-lang.jp/install.html]]

**[[asdf:https://asdf-vm.com/]]のインストール [#ha6425d5]
 $ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.8
 $ echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.bashrc
 $ echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
 $ . .bashrc
 $ sudo apt install automake autoconf libreadline-dev libncurses-dev libssl-dev libyaml-dev libxslt-dev libffi-dev libtool unixodbc-dev unzip curl

 $ sudo apt install make libncurses5-dev
 $ sudo apt install build-essential automake autoconf git squashfs-tools ssh-askpass pkg-config curl
 $ sudo apt install fop xsltproc libxml2-utils

**Erlang, Elixirのインストール [#l8546963]
 $ asdf plugin-add erlang
 $ asdf plugin-add elixir

 $ asdf install erlang 22.3.2
 $ asdf install elixir 1.10.3-otp-22
 $ asdf global erlang 22.3.2
 $ asdf global elixir 1.10.3-otp-22 

-これはまだ早そう
 $ asdf install erlang 23.0.1
 $ asdf install elixir 1.10.3-otp-23
 $ asdf global erlang 23.0.1
 $ asdf global elixir 1.10.3-otp-23

**バージョン確認 [#ie7e99bf]
 $ iex
 Erlang/OTP 23 [erts-11.0.1] [source] [64-bit] [smp:12:12] [ds:12:12:10] 
 [async-threads:1] [hipe]
 
 Interactive Elixir (1.10.3) - press Ctrl+C to exit (type h() ENTER for help)
 iex(1)>
-Ctrl+C を2回連続で入力して終了

**Phoenixのインストール [#sd393a73]
 $ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
 $ sudo apt-get install -y nodejs
 $ sudo npm install npm@latest -g
 $ mix local.hex --force
 $ mix local.rebar --force
 $ mix archive.install hex phx_new 1.5.1 --force

**Nervesのインストール [#z6675a89]
 $ mix archive.install hex nerves_bootstrap
 
 $ sudo apt install build-essential automake autoconf git squashfs-tools ssh-askpass
 $ wget https://github.com/fhunleth/fwup/releases/download/v1.7.0/fwup_1.7.0_amd64.deb
 $ sudo dpkg -i fwup_1.7.0_amd64.deb

***WSLの場合 [#p7b07823]
-[[ElixirでIoT#4.1.1:WSL 2でNerves開発環境を整備する:b8ea8b3455c70398178a]]
-[[ElixirでIoT#4.1.1:WSL 2でNerves開発環境を整備する:https://qiita.com/takasehideki/items/b8ea8b3455c70398178a]]

*OTP(Open Telecom Platform) [#u2af207c]
-[[Elixir初心者がOTPって結局なんなのか調べてみた:https://qiita.com/kaonash/items/d3678d5635e9d1e57ccf]]
-[[Elixir/OTPを使った分散アプリケーション:https://dev.classmethod.jp/articles/classmethod-with-elixir-and-otp/]]

-Erlangのライブラリ集
-それらを用いた並行プログラミングをしていくためのフレームワーク/デザインパターン

*Webフレームワーク [#qe5308fc]
-[[ElixirでPhoenix以外のWEBフレームワークを使ってみる(Webmachine編):https://qiita.com/sudix/items/f92315f0d3d54be0fa79]]
-[[Elixir+Phoenixが早い理由と、これでDB処理を作った時のデッドロックについて:https://teratail.com/questions/142942]]
-[[Elixir/Phoenix と Elm による関数型 Web 開発環境の構築:https://ubiteku.oinker.me/2016/11/28/elixir-phoenix-and-elm/]]
-[[Elixir+PhoenixとSpread.Viewsでリアルタイムな出勤管理アプリを作ろう:https://codezine.jp/article/detail/10594]]

**[[Phoenix:https://phoenixframework.org]] [#x75ff556]

*IoT [#h42546f0]
-[[ElixirでIoT:連載目次:https://qiita.com/takasehideki/items/8f43f1853ce88cbbe82e]]
-[[基調講演 Nerves Project: Performant, Scaleable, and Fault Tolerant Embedded Systems:https://swest.toppers.jp/SWEST21/program/txt/keynote_minute.html]]

**[[Nerves:https://nerves-project.org]] [#f2e952a7]
-[[NervesHub:https://www.nerves-hub.org/]]
-[[HexDocs. Customizing Your Own Nerves SYstem:https://hexdocs.pm/nerves/customizing-systems.html]]

-[[[翻訳] NervesとBakeを使った組み込みElixir:https://qiita.com/HirofumiTamori/items/e90e665af86888fd7f1c]]

-[[ElixirでIoT#2.1:Nervesって何者?ラズパイでLチカできんの!?:https://qiita.com/takasehideki/items/94820516ec95b85bae32]]
-[[ElixirでIoT#4.1:Nerves開発環境の準備(2020年4月版):https://qiita.com/takasehideki/items/88dda57758051d45fcf9]]
-[[ElixirでIoT#4.2:BeagleBone GreenでNerves/Elixirを動かす:https://qiita.com/takasehideki/items/e7cc1a2d0a4a7140c1cf]]

-[[Nerves - Elixir School:https://elixirschool.com/ja/lessons/advanced/nerves]]
-[[Nervesが開拓する「ElixirでIoT」の新世界:https://www.slideshare.net/takasehideki/nerveselixiriot]]

-[[mix firmware.burn inside WSL:https://github.com/nerves-project/nerves/pull/288]]

***対応CPUボード [#u8fa2eae]
-[[nerves_system:https://hex.pm/packages?search=depends:nerves_system_br]]

***USBガジェットモード [#j3d0db59]
-[[USBガジェットモードでRaspberry Pi 4Bもイケる:https://raspida.com/usb-gadget-mode4rpi4b]]

*組み込み [#q893b1c6]
-[[Embedded Elixir:https://embedded-elixir.com]]

-[[ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~:https://www.slideshare.net/takasehideki/elixiriot-biglittlezynq-94455098]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS