Developers Summit 2019 にて, Web エンジニアの皆様向けに Elixir の紹介をした際に使用したスライドです. https://event.shoeisha.jp/devsumi/20190214/session/1996/ デブサミ 2019 年テーマ「SHAR…
挑戦! Elixirによる並行・分散アプリケーションの作り方【第二言語としてのElixir】 「第二言語としてのElixir」、いよいよ後編では、処理を並行に扱う方法を紹介します。Elixirでは、なぜ並行処理が書きやすく、分散アプリケーションをシンプルに記述できるのでしょうか。 プログラミング言語Elixirの大きな特徴は、並行処理が書きやすく、分散アプリケーションをシンプルに記述できることです。 その背景となる「ErlangのVMにおけるプロセスをベースにした考え方」と「Erlang/OTP」については、前回の記事で説明しました。さらに、Elixirのプロジェクト管理ツールであるmixについても解説しました。 いよいよ今回は、こういったElixirの基礎知識をふまえて、Elixirで処理を並行に扱う方法を紹介します。 Elixirで並行処理を書きやすいわけ Elixirの並行処理に挑戦
ニコニコ動画/ニコニコ生放送を支えるシステム Dwango Media Cluster (DMC)。 DMC とその周辺システムは主に Erlang/Elixir で開発されています。 今回はその設計・開発・運用や Erlang/Elixir の強みと、一方で実際に大規模運用する中で遭遇した想定外のヒヤリハットをお話します。。
最近話題の(?)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のWebフレームワーク Phoenixの入門 環境構築についてです。 公式Docの Up And Running · Phoenix Adding Pages · Phoenix に載っているものを簡略化 & 日本語化したものです。 Elixir Elixirについての詳しい概要はこちらの記事が参考になります。 qiita.com 入門書はこちらの書籍が非常に面白かったです。というか他の日本語書籍は現時点で存在しないと思います。 プログラミングElixir 作者: Dave Thomas,笹田耕一,鳥井雪出版社/メーカー: オーム社発売日: 2016/08/19メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る Install 公式ページにいろいろ載ってますが、Mac + Homebrewの場合は $ brew install elixir でInstal
最近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 Schoolへようこそ! Elixir SchoolはElixirを学び、マスターするための最高の場所です。 ベテランの方も、初めての方も、レッスンや補助教材で必要なものが見つかるはずです。 ボランティアの方々の努力により、Elixir Schoolは多くの言語に翻訳されています。その中には次のような翻訳があります: বাংলা, Deutsch, Ελληνικά, Español, Bahasa Indonesia, Italiano, 日本語, 한국어, Bahasa Melayu, Norsk, Polski, Português, Русский, Slovenčina, Türkçe, ภาษาไทย, Українською, Việt ngữ, 简体中文 と 繁體中文. elixirschool/elixirschoolに参加することで、私たちと一緒にElix
何これ? 皆さん、おはこんばんちは。 前回の記事、CentOS + Erlang + Elixir + PhoenixのDockerイメージで今日から始めるElixir on Phoenix入門に引続き、Elixir/Phoenixについての入門記事です。 入門なのに中級編です。 今回は前回の予告通り、deployとci周りをやっつけます。 これができれば、Elixir/PhoenixでHello Worldは卒業して、 実際の開発をしていけると思います。 ゴールは、 プルリクでCI回してテストする プルリクをmasterにマージする リリースビルド作る GitHub Releases使って、tag切って実稼働用のバイナリ上げる ホットコードスワップ(ホットデプロイ)本番環境を無停止で更新する という一連の流れを全てGitHubのプルリクとマージだけで行うことです。 Jenkinsのように
John Bohnさんのブログ記事 Elixir Process Architecture or: How I Learned to Stop Worrying and Love to Crashの翻訳です。 Elixir(とそのベースになっているErlang)のプロセスは生成のためのコストが小さいため「下手にエラー処理するコードを書いてプロセスを維持するよりはさっさとクラッシュさせて、それに続く処理の中で対策して再起動したほうがよい」という思想があります。それを実際に適用してみたという話です。なお説明を簡単にするために多少端折ってるとのこと。 ところでこのタイトルは某古典的スラップスティックSF映画のアレですね… "クラッシュさせちまえ" それは私が聞かされ続けてきたことだ。正直言ってそのセリフの意味するところを理解するまで少々時間が必要だった。その考え方がピーンと来るにはProcess
Elixir にあって Ruby や JavaScript のような言語にない特徴といえば 軽量プロセス (+ OTP周り) パターンマッチ の2点が大きく、その他の部分というのはだいたい「あの言語のこれだな」という風に対応させて理解できる(パターンマッチを実装した他の関数型言語になれてる人にとっては別かもしれないが)。 特に後者のパターンマッチの方は Elixir の文法の多くの部分の基礎になっている。従って、主観的にはパターンマッチさえ理解できれば Elixir の半分以上は理解できたと思っていいんじゃないかと思っていたりする。 というわけでカッとなってパターンマッチについて書いてみる。 パターンマッチとは パターンマッチの例で、いきなり {x, y} = {1, 5} とかいう例を見せられても「変数扱うのに便利な記法か何かですかね? (ES6 の Destructuring assi
Elixirは並行処理能力に優れたRubyライクなシンタックスを持つ関数型言語です。 前回のエントリではElixirの概要やシンタックスの紹介を簡単にしました。 今回はElixirの複数プロセスを使ったプログラミングについて書いていきます。 Elixirにはプロセス周りの実装をサポートしてくれるOTPというライブラリがあるのですが、まずはOTPを使用しないプログラミングを扱います。 軽量プロセス Elixirのプロセスは軽量プロセスと言われていて、OSのプロセスやスレッドではなくGreenスレッドです。 カーネルではなくVMでスケジューリングされるので軽量、コンテキストスイッチが発生しないという利点があります。 1軽量プロセスで約300ワードです。 プロセス生成 Elixirで新しいプロセスを生成するのは簡単です。 spawn関数を呼び出し、戻り値に生成したプロセスIDを受け取ります。 d
前々回の記事は「Phoenix環境のセットアップから、静的ページを作成し、表示」させました。 前回の記事では、「Phoenixで認証機能を実装」しました。 今回の記事では、入門最後として「Phoenixでチャット機能を実装」します。 Phoenixでソケット、チャネル、トークン、API作成、モデルのアソシエーションなどを行っていきます。 サンプル ChatPhoenix - Heroku ChatPhoenix - GitHub 目次 ソケットの基礎用語 チャット機能の追加 チャット機能をログイン機能と統合 チャットメッセージの永続化 動作確認 Erlang 7.1 Elixir 1.1.1 Phoenix 10.0.3 Hex 0.9.0 node.js 0.12.7 npm 2.14.2 PostgreSQL 9.4.4 1. ソケットの基礎用語ソケットの基本的な用語について簡単に記載
じゃんけんをシミュレートしてみる。練習問題だ。 人間を五人ほど作り、グー/チョキ/パーのなにを出させるかをそれぞれに決めさせ、勝負する。引き分けを考慮し、勝者が最後の一人になるまで繰り返す。 せっかくElixir (Erlang) でつくるのだから、各人間をプロセスにしてみる。 まずPersonモジュールをstructにする。Elixirはstructが入って大変便利になった。それまではrecoedを使ってゐたもので、プロセスの関数を含むモジュールとrecordのモジュールは別にしなければならなかった。Ruby人間としてstructは助かる。 spawnしてPersonを五人作る。PersonのプロセスIDが得られるので、これで話しかけられる。 さて、五人に手を出してもらう。そして五人が何の手を出したか確認せねばならない。おお。五人全員の手が揃わなければならないのだ。四人で勝ちを決めても五
Phoneixとは、elixer(※1)という言語で書かれたWebフレームワークです。 最近のiOSやAndroidアプリやSPI(シングルページアプリケーショん)が普及してきたため、サーバーサイドはAPIやリアルタイムストリーミングの機能を提供することが増えてきました。 Phonixは一般的なWebのMVCに加え、デフォルトでAPIやソケットによるリアルタイムストリーミング機能を提供していて、このようなニーズに対応しやすくなっています。 レイテンシーがとても低く、Phoenixのレスポンスタイムはミリセカンドの代わりにマイクロセカンドで表示されるぐらい早さが段違いと言われています。 また、Railsのコントリビュータが作っているだけありかなりRailsの仕組みに似ているので、RailsなどのMVCフレームワークに触れている方には、かなり理解しやすいと思います。 若干、elixirの独特な
CentOS + Erlang + Elixir + PhoenixのDockerイメージで今日から始めるElixir on Phoenix入門ErlangCentOSElixirPhoenix 何これ? 皆さん、おはこんばんちは。 4月になりましたね。 新しく何かを始めるには良い季節です。 ということで、やろうやろうと思っていたであろうElixir/Phoenix、そろそろ始めまちゃいましょう。 という記事になります、ご確認下さい。 息を吸うようにDockerで入門しちゃいましょう 楽です。そして、速い。 四の五の言わずにまずはdocker run。 やり方はDockerのイメージプロジェクト作ったんで、そのreadme見てください。 先程DockerHubにも登録したので、上記のRequirementにあるboot2dockerが起動している人は下記を実行するとPhoenixまで立ち上
Ken Mazaikaさんの2015年1月31日付のブログ記事、Why I’m betting on Elixir And why you should too, unless you want to become a maintenance programmer.の翻訳です。 [翻訳] Elixir - 次に来る大物Web言語もそうでしたがなんかRailsのプログラマさんたちがやたらアツく語ってるんですね、Elixirを。 メンテナンスプログラマになりたくなければ1、なんてタイトルからして挑発的です。私の3つ前の仕事はまさにそういう保守系でしたけど。 あんまりアツいんで皆さんとアツさを共有したくて翻訳しました。 なおQiitaのCentOS + Erlang + Elixir + PhoenixのDockerイメージで今日から始めるElixir on Phoenix入門の追記のところでも
連絡先リストの役割を果たすJSON APIをビルドしてみましょう。ElixirとPhoenixを使って書きます。 Phoenix はElixirベースのフレームワークで、記述の高速化と、低遅延のWebアプリケーションをできる限り楽しく作成する目的で作られています。ElixirやPhoenixのインストール手順についてはここでは触れません。まず初めに Phoenixのガイド を読んでください。 なぜElixirとPhoenixなのか Erlangは、ポンコツの板金にくるまれたフェラーリのようなものです。ものすごいパワーを持っていますが、見た目が悪いと感じる人が多いのです。WhatsAppはこれを使って膨大な数の接続を処理していますが、見慣れないシンタックスとツールの不足のせいで多くの人が苦労しています。 Elixir はそこを改善したものです。Erlang上に構築されていますが、美しくかつ楽
elixir-lang.org のトップページを翻訳しました. 翻訳の誤りなどあればご指摘お待ちしております. Elixir is a dynamic, functional language designed for building scalable and maintainable applications. Elixir はスケールしやすくメンテナンスしやすいアプリケーションを作るための動的な関数型言語です. 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 software domain
Lau Taarnskovさんの2015年4月19日付のブログ記事、Elixir - The next big language for the webの翻訳です。 ElixirはErlangのVM上で走る、Rubyにちょっと似た(というのも作者(José Valim)がRuby on Railsのcoreチームメンバーなので)関数型言語です。 2012年に登場していてQiitaでもAdvent Calendarなどが既にあるようですがまだあまり知られていないですね。ElixirとPhoenix Frameworkを組み合わせたものがマイクロ秒のオーダーで反応が帰る爆速だそう(ホントかな~)で興味を持ちました。 しかしほんの10年前ぐらいの話がもう遥かな昔話に聞こえますね…。 (追記:実際にプログラムを書いてみました → Elixirで試しに何か書いてみる(その1) Elixirで試しに何
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く