![RustによるElixirインターフェースを用いたパフォーマンス改善 - DIscordの事例](https://cdn-ak-scissors.b.st-hatena.com/image/square/d23e6fa47e4b07440098f4f874385323cab2d91e/height=288;version=1;width=512/https%3A%2F%2Fcdn.infoq.com%2Fstatics_s1_20231003070353%2Fstyles%2Fstatic%2Fimages%2Flogo%2Flogo-big.jpg)
(この記事は、「fukuoka.ex(その2) Elixir Advent Calendar 2017」の24日目、および「ディープラーニングのエンジニアリング Advent Calendar 2017」の6日目です) 昨日は、@tuchiroさんのElixirでSI開発入門 #9 Railsからのモデルの移行2(DDLをパースする)でした 前回までElixirからRustlerを経由して外部言語インターフェースのさまざまな可能性を探ってきました。 今回はGCPの公式コンテナである「Cloud Datalab」にElixirをインストールして、ElixirのTensorFlowバインディングである「Tensorflex」を試してみます。 前回までの記事は、以下になります ElixirのGenStageに入門する #1 |> ElixirのGenStageに入門する#2 バックプレッシャーを
ニコニコ動画/ニコニコ生放送を支えるシステム Dwango Media Cluster (DMC)。 DMC とその周辺システムは主に Erlang/Elixir で開発されています。 今回はその設計・開発・運用や Erlang/Elixir の強みと、一方で実際に大規模運用する中で遭遇した想定外のヒヤリハットをお話します。。
EEx v1.6.5 EEx View Source EEx stands for Embedded Elixir. It allows you to embed Elixir code inside a string in a robust way. iex> EEx.eval_string "foo <%= bar %>", [bar: "baz"] "foo baz" API This module provides 3 main APIs for you to use: Evaluate a string (eval_string) or a file (eval_file) directly. This is the simplest API to use but also the slowest, since the code is evaluated and not comp
目的 Windows 8.1 + Cmd.exe で iex を叩けて Elixir に触れられる環境を整える ついでにPhoenixも入れておく Windows利用者にも布教しやすいやり方を覚える 流れ Chocolateyを入れる cinst nodejs, cinst npm, cinst elixir, cinst erlang mix で phoenix 入れる 環境変数パスを通す こまかーい流れ 1. Chocolateryを入れる コマンドプロンプト(管理者)を開いて下記を投げ込む C:\> @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))"
最近話題の(?)Elixir + Phoenixを現在関わっているプロジェクトの検証・評価目的に使ってみます。 なお自分自身全くの初心者なので初心者向けの内容になる予定です。 Elixirとは Elixir公式サイトから引用します Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded softwar
最近Elixirが盛り上がってるっぽいのでちょっと試してみることにした 流れ Erlang入れる Elixir入れる Phoenix入れる Hello Phoenix!! 残念ながらCentOSのリポジトリに無いのでソースからビルドして入れていきます Erlang入れる ソースの取得 Erlang公式 - downloadに最新版ソースのtarballがあるので、取ってきて解凍 cd /usr/local/src wget http://www.erlang.org/download/otp_src_18.0.tar.gz tar zxvf otp_src_18.0.tar.gz cd otp_src_18.0 依存ライブラリインストール Erlang公式のインストールガイドに依存関係の説明があったので入れておく GNU C Compiler OpenSSL ncurses JDK fop
Elixir にあって Ruby や JavaScript のような言語にない特徴といえば 軽量プロセス (+ OTP周り) パターンマッチ の2点が大きく、その他の部分というのはだいたい「あの言語のこれだな」という風に対応させて理解できる(パターンマッチを実装した他の関数型言語になれてる人にとっては別かもしれないが)。 特に後者のパターンマッチの方は Elixir の文法の多くの部分の基礎になっている。従って、主観的にはパターンマッチさえ理解できれば Elixir の半分以上は理解できたと思っていいんじゃないかと思っていたりする。 というわけでカッとなってパターンマッチについて書いてみる。 パターンマッチとは パターンマッチの例で、いきなり {x, y} = {1, 5} とかいう例を見せられても「変数扱うのに便利な記法か何かですかね? (ES6 の Destructuring assi
[翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く