Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
■ ElixirのConcurrent Programmingについてまとめた過去記事 Elixir Concurrent Programming(1) - Spawn - Qiita Elixir Concurrent Programming(2) - GenServer - Qiita Elixir Concurrent Programming(3) - Supervisors - Qiita Elixir Concurrent Programming(4) - Task and Agent -Qiita ElixirのプログラムはBEAMと呼ばれるVM上で走ります。そしてElixirにはConcurrent Programmingという特徴がありますが、これは特有の軽量プロセス(BEAMプロセス)を使って実現されます。一つのプロセスには基本的に数KBしか必要とされません。またひとつの
module ApplicationCable class Connection < ActionCable::Connection::Base identified_by :current_session_user def connect self.current_session_user = find_session_user end protected def find_session_user session_user = env['warden'].user(scope: :operator) return reject_unauthorized_connection unless session_user session_user end end end
前回 またいつかと言っていたPlugの話です。 Plug Plugは、Webアプリケーション間で構成可能なモジュールの仕様です。 …とりあえずgoogle翻訳してみましたけど、良くわかりませんね。 とりあえずこんな理解をしておけば良さそうかと思ってます。 Plug.Connという構造体を通じて処理を行う仕組み Plug.Connを受け取ってPlug.Connを返すという仕組みに則り、処理を組み合わせることが出来る plug HogePlug と書くことで順に実行される 仕組み的な話はいったん置いておきます。 …メタプログラミング勉強しないと。 Function Plug 関数によるPlug。 これまでの例ではRouterに plug HogePlug を書いてたけど、Controllerにも書けます。 Controllerに書くことで、Controller内での共通処理のようなものが実装で
defmodule NifLlvm.MixProject do use Mix.Project def project do [ app: :nif_llvm, version: "0.1.0", elixir: "~> 1.6", compilers: [:nif_llvm] ++ Mix.compilers, start_permanent: Mix.env() == :prod, deps: deps() ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:asm
$ iex Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] Interactive Elixir (1.6.6) - press Ctrl+C to exit (type h() ENTER for help) iex(1)> bs = << 3 :: size(2) >> <<3::size(2)>> iex(2)> is_bitstring(bs) true iex(3)> is_binary(bs) false iex(4)> byte_size(bs) 1 iex(5)> bs = << 0 :: size(2), 1 :: size(2), 2 :: size(2), 3 :: size(2)>> "\e" iex(6)> is_bitstring
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 有限状態マシン(finite state machine: FSM)をクリアしましょ。とにかくクリアしましょ。 関数型パラダイムとFSM はじめてなElixir(7)に書いたことの繰り返しです。「関数型言語でFSMってどうよ」って思ってます。 FSM用のモジュール とわいえ、表現できないことには仕事にならないのでやるっきゃない。そこで @nishiuchikazuma さんに愚痴ると erlang になんかあるとの情報。どれどれ。 gen_fsm モジュール (erlang) ググるとこんなのが出てきました。 Finite State
はじめに この記事の発端は,ピュアElixirとElixir+Rustlerの実行速度がどれくらい違うのか,ベクトル演算を行うコードで比較してみようという感じで書かれています. シリーズとしてはElixirありきでRust(Rustler)を使う人をメインに据えています. 今回は Rust, Rustler の仕様について触れていきます. 開発環境 OTP-21.0.9 Elixir(1.7.3) Rustler(0.18.0) Rust(1.28.0) 事前調査と方針 Rust で行列演算を行うライブラリはすでにいくつかあります. Rusty-machine (rulinalg): Machine Learning library for Rust ndarray : Arrays inspired by numpy. nalgebra : Low dimensional linear
今回はプログラミング環境を整えます。 なんか先週末頑張りすぎたせいか前頭葉が痛いような気がしますし、楽に楽に… なお、繰り返しますが、私自身、初学者です。良い子は真似してはいけません。 これまでの環境 私は 11インチの MacBook Air (MacOS 10.13.6) を使ってます。これ、フライトなんかで前の方がリクライニングをガッツリしてきたときにぶつからない大きさなんで重宝してます。でも、いまは売ってないんですよね… 11インチの MBA は。 さすがにこれだけだと画面小さくて苦しいので、自宅と職場には Cinema Display を置いて、でかい画面で作業してます。「プログラミングElixir」は書籍と Kindle 版と両方購入してまして、kindle 版は移動中にも使えるようにと買ったのですが、kindle で読むと字が小さすぎてつらすぎです。結局 Cinema dis
はじめに ZACKYこと山崎進です。 整数の加減乗算のオーバーフローを検出する方法がわかりましたので,報告します。 「ZEAM開発ログ 目次」はこちら 整数のオーバーフローを検出する方法 __builtin_*_overflow という関数を使います。 符号付き64ビット整数だったら,__builtin_saddl_overflow になります。 ドキュメントはこちら。 Clang Language Extensions — Clang 4 documentation C言語のコードはこんな感じです。 static ERL_NIF_TERM asm_1_nif_ii(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { long a, b; if(__builtin_expect((enif_get_int64(env, argv[0
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ようやくそもそもやりたかったIoTに突入します。 先週末の無限リスト遊び はじめてなElixir(6) は脱線しすぎました。 注: 2019.02.16 この記事をベースに Elixir を使うようになった経緯 〜電力システム制御の現場から〜 という記事を書きました。こちらもご参照ください。 背景 次に行く前に自分のやりたいことを整理しておきます。 なぜElixirか 仕事で制御モノを作ったのですが、まあ今どきですから、マシンの観測データをクラウドに打ち上げたり、ネット側で操作したらマシンに伝わってよろしく動いたり止まったりするようにし
ってな表があるとして、これを全部くまなく覆うように旅をすると、こういう列ができたりします。 $\frac{1}{1}$ $\rightarrow$ $\frac{1}{2}$ $\rightarrow$ $\frac{2}{1}$ $\rightarrow$ $\frac{1}{3}$ $\rightarrow$ $\frac{2}{2}$ $\rightarrow$ $\frac{3}{1}$ $\rightarrow$ $\frac{1}{4}$ $\rightarrow$ $\frac{2}{3}$ $\rightarrow$ $\frac{3}{2}$ $\rightarrow$ $\frac{4}{1}$ $\rightarrow\ldots$ 2次元空間だけど1次元空間にマップできます。どんな分数でもこの列のどこかに出てきます(正に限るけど)。 対角ルートをなぞる これを El
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く