Using Metaprogramming for Architecting Flow in Elixir 09 Apr 2018 // posted in Architecting Flow in Elixir TL;DR You can adapt the ideas presented in the last article to any kind of application. Macros can be used to build a Plug-like DSL for your specific use-case. But be careful: Use metaprogramming wisely and only where it’s a good fit. Do not try to build the “Plug for everything”. In the last
ここ2年程のelixir人気に伴い, BEAM (つまりerlangとelixir) を使う人が増えました. しかし, let it crashという思想は誤解を残したまま世に広まったように感じています. 郷に入っては郷に従え. let it crashの思想をしっかり理解して実装していきたいものです. 前置き 大層なことを書きましたが, あくまでも個人的な見解であり, ポエムです. Erlang/OTPチームの見解とは異なる可能性がある点に気をつけてください. また, ご意見があればコメント欄に頂ければ幸いです. なお, Elixirのタグも付けていますが, 記事中のコードは全てErlangです. Elixirを書いている人にも知って欲しい, 「届けこの想い!」ということでタグは付けています. これらの点をご承知起きの上で読んで頂ければ幸いです.m(_ _)m let it crashの
Elixirの「パターンマッチ」と「パイプ」、各種ライブラリを使って、JSON APIを叩き、JSONをパースするアプリをサクっと書いてみます
Journeys of a not so young anymore Software Engineer Software Engineering, Humans, Ruby, Elixir, the web People like to argue about programming languages: “This one is better!” “No this one!”. In these discussion, often the performance card is pulled. This language is that much faster in these benchmarks or this company just needs that many servers now. Performance shouldn’t matter that much in my
The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
URLYou can post either your article on Qiita or your blog post. About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)
The Qiita Advent Calendar 2017 is supported by the following companies, organizations, and services.
Erlangを触って半年程度の若輩者が、学んだことを可能な限りアウトプットする Advent Calendar です。
背景 ErlangVM は堅牢だといわれています。 実際社内で運用している Erlang 製のゲーム課金・認証基盤は弊社の全ゲームからのアクセスを数年間落ちずにさばいています。 ここまで頑丈だと逆にどうやれば落とすことができるのかに興味が行くのは自然なことです。 今回は ErlangVMの落とし方を学ぶため、実際に落とすためのアプリケーションを Elixir で書いてみます。 Supervisorの再起動制限 Supervisor の起動時オプションには max_restarts と max_seconds というオプションがあります。 max_restarts: 制限時間内に再起動する回数の上限 デフォルトは3 max_seconds: max_restartsを指定する制限時間 デフォルトは5 どうやら再起動回数には上限があり、デフォルトでは5秒以内に3回再起動したら Supervis
吐かせる方法には以下の方法があります. VM上でerlang:halt("slogan")を実行する kill -SIGUSR1 ${PID} でVMを殺す CrashDumpは読める Erlangのcrash dumpは人間が割と読めますが, 問題発見を早める為に以下のツールが有用です. CrashDumpViewer erl_crashdump_analyzer 自分がよく使うのは後者です. 前者はGUI環境が必要なので運用している環境だと辛いかもしれません. また, 後者は最初に知りたいであろうことしか出力しないので迷うことがないと思います. 細かい部分は直接dumpを読むので私は困りませんでした. binary部分を読む必要がある場合は, binppのfrom_str/1を使っても良いかもしれません. 8割方メッセージキューが詰まる時が問題が起きる時 私の経験上の話です. ログは一
-module(httpd_tcp_listener). -export([start_link/0]). start_link() -> Pid = spawn_link(fun init/0), {ok, Pid}. init() -> Port = 8888, Backlog = 10244, Options = [binary, inet6, % support both ipv4 and ipv6 {active, false}, {reuseaddr, true}, {backlog, Backlog} ], {ok, Listen} = gen_tcp:listen(Port, Options), accept(Listen). accept(Listen) -> case gen_tcp:accept(Listen) of {ok, Socket} -> {ok, Pid}
And why you should too, unless you want to become a maintenance programmer. Background: I’ve spent the past 6 years building web applications in Ruby and the Rails framework. I’ve flirted with new programming languages as they came out, but Elixir is the first language that has been able to captivate me. Ruby Crushed It!The ruby language and the Rails framework completely changed the way web appli
ここ最近、 [翻訳] Elixir - 次に来る大物Web言語 - Qiita とか 超高速なJSON APIをElixirフレームワークのPhoenixでビルドしてテストしよう | POSTD を読んで気になっていたので、勉強していた。 前提: 自分はシングルページアプリケーションに特化したフロントエンドエンジニアであり、サーバサイドのプロダクション運用にはそこまで強くない。あとこれはここ2日の勉強した日記でもあり誤解や勘違いも多々あると思う。 リアルタイムウェブアプリケーションのためのサーバー Railsの次の時代、リアルタイムウェブの為のウェブフレームワークがあるとしたら、次のような特長をもつと思う。 HTTP, HTTP/2. WebSocket等のプロトコル対応と抽象化 JSON APIに特化 認証系 キャッシュ管理 Viewに関心がない リアルタイムウェブは、その言葉をどう定義
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く