(You can read this article in English.) Ruby の開発版にパイプライン演算子(pipeline operator)が試験的に導入されましたが、いろいろあってプチ炎上になっています(チケット)。 せっかくの機会なので、パイプライン演算子の歴史を調べてみました。付け焼き刃の調査なので、間違ってたら教えてください。 パイプライン演算子とは こんな感じのものです。 x |> f |> g |> h # h(g(f(x))) と同じ意味 h(g(f(x))) という関数適用の式は、関数が呼ばれる順序(f→g→h)と、プログラムの字面上の順序(h→g→f)が逆でわかりにくいとされます。この問題は、特に、関数が大きくなったときに顕著になります。 wonderful_process_h( marvelous_process_g( fantastic_process
Elixir のプロセスを学習する際, 予めプロセス関連のモジュール郡の関係性を大雑把に理解していた方が, 記憶定着が良いであろうと考え, このスライドを作成しました. 主に, Task, GenServer, Agent, Supervisor, DynamicSupervisor, Task.Supervisor, Registry などを解説しています.
Today’s post marks the first in a new series bringing you the latest changes to the Elixir language. We’d love to hear from you about what you’d like to see in future posts so join the conversation on the Elixir Forum thread. So what’s in master? Let’s have a look: Disagreements about formatting are a thing of the past! As part of 1.6 we’ve added a code formatter to Elixir. The formatter is availa
Free and open communication for everyone. Pleroma is social networking software compatible with other Fediverse software such as Misskey, Pixelfed, Mastodon and many others. For a friendly introduction to Pleroma and the Fediverse, check The Big Pleroma and Fediverse FAQ and read What is Pleroma? Getting Started Start using Pleroma by joining an existing Pleroma instance or check the installation
Releases, Offers & More Be the first to hear about our newest content, best promotions and upcoming events. Plus get 25% off your next purchase. Newsletter Sign Up Download Accounts Your email address is your account identifier. You can create a password, or just download from the links sent via email. My Orders (Resend order emails) How We're Different Hands-on instructions Solutions to real-worl
The Erlang VM is great at many things, but quick access to large shared data is not one of them. Storing data in a single process results in overloading the process, using an ETS table gets more expensive to read as the data gets larger, and both require copying data to the calling process. If you have large infrequently changing data that needs to be accessed by thousands of processes there is a
Phoenix で、受け取った URL をどうやってディスパッチしているのか気になったので、mix phoenix.new hello_world で生成したプロジェクトから、順番に読んでいった。 HelloWorld.start/2 hello_world/lib/hello_world.ex: defmodule HelloWorld do ... def start(_type, _args) do ... children = [ # Start the Ecto repository supervisor(HelloWorld.Repo, []), # Start the endpoint when the application starts supervisor(HelloWorld.Endpoint, []), ] opts = [strategy: :one_for_on
2017年4月1日、秋葉原コンベンションホールにて「ElixirConfJapan 2017」が開催され、300人を超す参加者が集まり大盛況となりました。その模様をレポートします。 オープニングの模様 オープニングキーノートセッション ―José Valim氏 オープニングキーノートはElixirの作者であるJosé Valim氏による講演です。2017年1月で5歳になるElixirの歴史と今後の展望について発表しました。 José Valim氏 何故Elixirを作ろうとしたのか 2011年、並行処理の重要性が高まりから、その課題解決のアプローチとして、関数プログラミングに注目したとJosé氏は語り始めました。 RubyやPython等のオブジェクト指向プログラミング言語では、複数のスレッド間で並行的にオブジェクトの状態操作を行うのは難しいという問題があります。そこで、関数プログラミング
Webアプリにリアルタイムの双方向通信が必要な場合、WebSocketを選ぶのは自然なことだと思います。では、どのツールでWebSocketサーバを構築すべきでしょうか。パフォーマンスは重要ですが、開発のプロセスも見過ごしてはなりません。パフォーマンスを基準にするだけでなく、開発のしやすさも考慮に入れるべきでしょう。今回の大合戦では、Clojure、C++、Elixir、Go、NodeJS、Rubyのそれぞれの言語によって慣用的な手法で実装されたシンプルなWebSocketサーバを比較したいと思います。 テスト内容 サーバに実装するのは、 echo と broadcast の2つのメッセージのみを扱う非常に単純なプロトコルです。echoは送信クライアントに返され、ブロードキャストは全ての接続クライアントに送信されます。そしてブロードキャストが完了すると、結果メッセージが送信者に返されます。
On a recent Elixir project, I needed to test some asynchronous behaviour. Doing so led me to learn about the basics of special processes in OTP. Our project was using Phoenix Channels and had a need to keep track of all connected socket processes. We could have used the upcoming Phoenix presence feature, but we didn’t quite need all of its features. We settled on using a simple GenServer process t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く