hotch-potch, Note to self

いろいろ作業記録

Elixir

Elixirでステートマシンをつくる ~ gen_statem

1.はじめに 産業機械をPLCなどを使って制御する際に、 ラダーやST言語などを使って、シーケンスプログラムを書きます。 Elixir言語でシーケンスプログラム=ステートマシンを実現したい場合に、何か便利な仕組みがないか探していたところ、erlangのgen_sta…

Elixirでロボット「カチャカ」とgRPC通信

1.はじめに 自律移動ロボット「カチャカ」との通信にgRPCが使えるので、Elixirからの通信を試してみました。 kachaka.life 今のところ、カチャカのステータスを取得するところまでできました。運転命令を送るところができていないので、次回の課題です。 …

リモートのsyslogにログを送信

1.はじめに Elixirの動作ログをsyslogに送信します。 localhostに向けて送信するには、既存の下記ライブラリが使えます。 ex_syslogger | Hex elixir_rsyslog_backend | Hex logger_syslog_backend | Hex 今回はリモートホストに送信する必要があったので…

言語比較文化~ラムダ式

1.はじめに プログラム言語ごとの”文化”とも言える構文の違いを比べると、非常に興味深い知見が得られます。 今回は、ラムダ式(言語によってはフィルタ、イテレータと呼称)の書き方をまとめてみました。 1.はじめに 2.コード C Sharp Elixir Go Rust…

言語比較文化~ForEach構文

1.はじめに 色々なプログラミング言語を使う機会が増えてきて、同じことを他の言語で実装するときに、「どうだったかな?」と調べる機会が増えてきました。 そうする中で、プログラム言語ごとの”文化”とも言える構文の違いを比べると、非常に興味深い知見…

Elixirでネットワーク越しのプロセス通信

1.はじめに Elixirを使った2ホスト間の通信例です。 ホストで用意した関数を、ゲストから実行する2つの例です。 例1 ゲストのiexから、直接ホストの関数を呼び出して結果を得る 例2 ゲストのiexから、ホストのiexに入り込んで、ホストの関数を呼び出し…

Elixir, Note to self

1.はじめに プログラム言語 Elixir を普段使いする機会が増えてきたので、頻繁に行う内容を覚え書きしてます。(随時追記) 1.はじめに 2.インストール・アップデート (1)ビルドに必要なパッケージをインストール Ubuntu Linux asdfに必要なもの as…

Elixir by Example - 3.Variables

3.Variables Elixirには、変数宣言がありせん。 変数の型もないので、一つの変数にいろいろな型の値を代入することができます。

Elixir by Example - 2.Values

2.Values Elixirには、文字列、整数、浮動小数点数、ブール値、アトムなど、さまざまなデータ型があります。 ここでは、いくつかの基本的な例を示します。

Elixir by Example - 1.Hello World

1.Hello World 最初のプログラムは、古典的な「こんにちは世界」メッセージを表示します。

Nerves講義ノート・始めてみる回

1.はじめに Elixirでの組込開発環境「Nerves」のハンズオンに参加しました。 nerves-jp.connpass.com 実は、昨年のfukuoka.ex以来、Nervesに触れていないという(!)、NervesJP立ち上げメンバとしては非常にけしからん状況だったのですが・・・ 今回久し…

ElixirでGUI・Scenic チュートリアルチャレンジ

1.はじめに 20年6月に「ElixirConf EU Virtual」が開催されました。 私は参加していなかったのですが、オンライン参加していたNervesJP勢のみなさんが興味を持っていた話題の一つがこちら。 Kry10 GitHub - boydm/scenic: Core Scenic library ElixirでGUIア…

mix local.hexが失敗するときの処置

1.はじめに mix deps.getを実行すると、mix local.hexの処理でコケました。 (下記の例は、circuits_i2cを使う時の例) 「function :inets.stop/2 is undefined」とのことですが・・・ このときの処置についてメモを残します。 $ mix deps.get Could not find H…

Visualixirの導入とsystemdで自動起動

1.はじめに Visualixirをsystemdによる自動起動に対応させます。 GitHub - koudelka/visualixir: A process/message visualizer for BEAM nodes.💪👁

チュートリアル チャレンジ・gRPC on Elixir

1.はじめに 最近興味を持っているgRPCをElixirでも試してみました。 所々ハマリどころがあったので、備忘録としてまとめます。

Elixir CircuitsをCLIで使ってみたい

■本記事は未解決です■ 1.はじめに 先に書いた記事について、最近はやり(?)のescriptを使ってCLIとして実行するのを試しました。 hotch-potch.hatenadiary.jp ところが、mix経由ではうまく動くのですが、escriptで生成した実行ファイルからだと、エラーが…

Elixir CircuitsでIOエキスパンダ(MCP23017)を動かす

1.はじめに 仕事&趣味柄、RaspberryPiを活用した支援機器を作っています。 情報量の多いPythonを中心に開発をしていますが、それ以外の言語での実装もチャレンジしています。 今回は、Elixirと、ElixirでのGPIO制御ライブラリElixir Circuitsを使って、IOエ…

PowerShellからiexを使いたい

<覚え書きシリーズ> 1.はじめに Windows版のElixirでiexを使う時に、 コマンドプロンプトからはきちんと立ち上がりますが、 PowerShellから起動すると、Invoke-Expressionが発生します。 ここでは、PowerShellから正常に起動できるようにする手順をまとめ…

Nerves開発環境の準備・VM+Ubuntu環境でErlang & Elixirをパッケージインストール

■はじめに 7月に開催された「Nervesトレーニング in福岡」を受講してきました。 fukuokaex.connpass.com 事前に指示のあった環境構築での不備で色々詰まってしまい、ハンズオン前半の時間を浪費してしまったので、ハマリどころと回避策をまとめました。 こ…