Elixir Advent Calendar 2014 23日目です. 動的型付け言語である Erlang で,静的に型エラーをチェックするためのツール Dialyzer というものがあります. 日本語で Web 上に公開されている情報だと33. 型仕様とErlangが一番わかりやすいでしょう. この文章では Dialyzer を Elixir で使う方法をいくつか紹介すると同時に,Dialyzer がどんなものか雰囲気がつかめることを願って書いています. 手動で設定する Programming Elixir という Elixir を始めるとっかかりにするにはとても良い本があります. その中の Appendix 2 に Type Specifications and Type Checking という章があり,Elixir で Dialyzer を使う方法を紹介しています.試してみましょう
[翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて
Elixir では Stream モジュールを使って、遅延評価と無限リストを扱うことができるがそれによりエラトステネスのふるいを、Haskell と同じように無限リストを使った記述ができるか・・・というのが今回の試み。結果としては、カッとなれば、できる。 以下、Stream の解説も交えてお届けする。 Enumerable プロトコルと Enum および Stream Elixir の Enum モジュールには map/2 や filter/2 や zip/2 など、コレクション操作に必要な関数が多数実装されている。以下はそのドキュメントの例である。Functions のところに Enum の関数が列挙されているのが分かる。 ちなみにこのドキュメント閲覧は Dash の画面。自分は主に iOS 開発のドキュメント閲覧によく使っているが、見ての通り Elixir のドキュメント参照にも便利。
連絡先リストの役割を果たすJSON APIをビルドしてみましょう。ElixirとPhoenixを使って書きます。 Phoenix はElixirベースのフレームワークで、記述の高速化と、低遅延のWebアプリケーションをできる限り楽しく作成する目的で作られています。ElixirやPhoenixのインストール手順についてはここでは触れません。まず初めに Phoenixのガイド を読んでください。 なぜElixirとPhoenixなのか Erlangは、ポンコツの板金にくるまれたフェラーリのようなものです。ものすごいパワーを持っていますが、見た目が悪いと感じる人が多いのです。WhatsAppはこれを使って膨大な数の接続を処理していますが、見慣れないシンタックスとツールの不足のせいで多くの人が苦労しています。 Elixir はそこを改善したものです。Erlang上に構築されていますが、美しくかつ楽
あの Dave Thomas が書いた『Programming Elixir』を買ったのでぼちぼち読んでいる。 Chapter 1. に Elixir の特徴を巧みに表現した文章があってカッとなったので、引用しておきたい。 Object orientation is not the only way to design code Functional Programming need not be complex or mathematical. The foundations of programming are not assignments, if statements, and loops. Concurrency does not need locks,semaphores, monitors, and the like. Processes are not necessaril
Erlang Factory London 2011 http://www.demonware.net/ Erlang and First-Person Shooters 10s of millions of Call of Duty Black Ops fans loadtest Erlang Malcolm Dowse Demonware, Dublin Erlang Factory London 2011 http://www.demonware.net/ Overview • History of Demonware – Who are we and what we do? – Why we switched to Erlang 4-5 years ago • Our server-side architecture – How we use Erlang now • What w
これは Swift Tweets の発表をまとめたものです。イベントのスポンサーとして Qiita に許可をいただいた上で、このような形(ツイートの引用)で投稿しています。 Twitterのハッシュタグはこちら Swift Tweetsオーディエンスの皆様こんばんは!Tweetupという新しい試みに参加させていただきとてもワクワクしています。本日は「Swift時代に悩ましいUIViewControllerをどう扱うか」についてご紹介させていただきます。よろしくお願いします。 #swtws pic.twitter.com/JWfOjH0E1W — susieyy (@susieyy) 2017年1月14日 まずは自己紹介から。杉上洋平と申します。iOSの開発は日本でiPhoneが販売されたときに、嫁が早速手に入れてアプリがないので作ってほしいと言われたのをきっかけに、2008年からアプリを作
Elixir/Erlang concurrency model is based on the actor pattern which runs on top of BEAM(Erlang Virtual Machine) instead of running directly on Operating System. The actor pattern’s actor is an “Elixir Process” in Elixir programming language. Anatomy of an actor (Elixir/Erlang Process)An Elixir/Erlang Processruns on top of BEAM (Erlang Virtual Machine)has an address (pid)is a completely isolated pr
Welcome, adventurer!¶ This is the collection of easy to read (ELI5) articles as well as in-depth knowledge such as VM internals, memory layout, opcodes etc. The project is work in progress, so come back soon! Github repository for pages https://github.com/kvakvs/beam-wisdoms Latest¶ 2019-03-03 Binary match opcodes added to the instruction list 2018-12-30 Try/catch opcodes added to the instruction
It’s common that our first experience with debugging in a new language is by printing values to the terminal. Elixir isn’t different: we can use IO.puts/2 and IO.inspect/2. However, Elixir also provides other approaches to debugging. In this blog post, we’ll show you other 2 options: IEx.pry/0 and :debugger. IEx.pry The name “pry” is an old friend in the Ruby ecosystem but it has a different behav
Using with Elixir Specify your Mix dependencies as two-item tuples like {:plug, "~> 1.1.0"} in your dependency list, Elixir will ask if you want to install Hex if you haven't already. Using with Erlang Download rebar3, put it in your PATH and give it executable permissions. Now you can specify Hex dependencies in your rebar.config like {deps, [hackney]}. Getting started Fetch dependencies from Hex
ここ最近、 [翻訳] Elixir - 次に来る大物Web言語 - Qiita とか 超高速なJSON APIをElixirフレームワークのPhoenixでビルドしてテストしよう | POSTD を読んで気になっていたので、勉強していた。 前提: 自分はシングルページアプリケーションに特化したフロントエンドエンジニアであり、サーバサイドのプロダクション運用にはそこまで強くない。あとこれはここ2日の勉強した日記でもあり誤解や勘違いも多々あると思う。 リアルタイムウェブアプリケーションのためのサーバー Railsの次の時代、リアルタイムウェブの為のウェブフレームワークがあるとしたら、次のような特長をもつと思う。 HTTP, HTTP/2. WebSocket等のプロトコル対応と抽象化 JSON APIに特化 認証系 キャッシュ管理 Viewに関心がない リアルタイムウェブは、その言葉をどう定義
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く