#author("2020-06-15T15:05:39+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/]] -[[Elixir を使うようになった経緯 〜電力システム制御の現場から〜:https://qiita.com/kikuyuta/items/96c3f91a850e9274b0e9]] -[[はじめてなElixir(0):https://qiita.com/kikuyuta/items/3c1798d15508040ccaaf]] *概要 [#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開発環境を整備する: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] ***LiveView [#edc2fcd9] *IoT [#h42546f0] -[[耐障害性が高くマルチコア性能を最大限発揮できるElixir(エリクサー)を学んでみよう:https://zeam-vm.github.io/zeam-SWEST-2018-pr/#/]] -[[組込みに使うプログラミング言語について語ろう! Elixir (エリクサー) 編:https://speakerdeck.com/zacky1972/zu-ip-minishi-upuroguraminguyan-yu-nituiteyu-rou-elixir-erikusa-bian]] -[[関数型言語ElixirのIoTシステムへの導入に向けた基礎評価:https://www.slideshare.net/takasehideki/elixiriot-103564783]] -[[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]] **[[GRiSP:https://www.grisp.org/]] [#e0f627d0] *コミュニティ [#geb45889] -[[fukuoka.ex:https://fukuokaex.connpass.com/]] *求人 [#w3895477] -[[『Elixir』を使ったIoTサービスの自社フレームワーク開発エンジニア:https://hrmos.co/pages/access-company/jobs/0000056]]